9.2.0 • Published 2 months ago

phptoast v9.2.0

Weekly downloads
29
License
MIT
Repository
github
Last release
2 months ago

PHP-To-AST

Build Status

PHP-to-AST parser.

Defining syntax extensions

Sometimes it can be handy to extend PHP's syntax with custom constructs. You can modify and extend PHPToAST's built-in grammar with the options argument passed to .create(...).

For example:

var phpParser = require('phptoast').create(null, {
    rules: {
        'N_CUSTOM_TRAP_IT': {
            components: [/trap_it/, /@/, {name: 'arg', rule: 'N_EXPRESSION'}, /;/]
        },
        'N_NAMESPACE_SCOPED_STATEMENT': {
            components: {oneOf: ['N_CUSTOM_TRAP_IT', 'N_NAMESPACE_SCOPED_STATEMENT']}
        }
    }
});

console.log(JSON.stringify(phpParser.parse('<?php firstFunc(); trap_it @ 21; secondFunc();'), null, 4));
/**
 * Gives:
 * {
 *    "name": "N_PROGRAM",
 *    "statements": [
 *        {
 *            "name": "N_EXPRESSION_STATEMENT",
 *            "expression": {
 *                "name": "N_FUNCTION_CALL",
 *                "func": {
 *                    "name": "N_STRING",
 *                    "string": "firstFunc"
 *                },
 *                "args": []
 *            }
 *        },
 *        {
 *            "name": "N_CUSTOM_TRAP_IT",
 *            "arg": {
 *                "name": "N_INTEGER",
 *                "number": "21"
 *            }
 *        },
 *        {
 *            "name": "N_EXPRESSION_STATEMENT",
 *            "expression": {
 *                "name": "N_FUNCTION_CALL",
 *                "func": {
 *                    "name": "N_STRING",
 *                    "string": "secondFunc"
 *                },
 *                "args": []
 *            }
 *        }
 *    ]
 * }
 */

Keeping up to date

9.2.0

2 months ago

9.1.1

1 year ago

9.1.0

1 year ago

9.0.2

2 years ago

9.0.1

2 years ago

9.0.0

2 years ago

8.0.1

3 years ago

8.0.0

4 years ago

7.1.0

4 years ago

7.0.0

5 years ago

6.0.5

5 years ago

6.0.4

5 years ago

6.0.3

5 years ago

6.0.2

5 years ago

6.0.1

6 years ago

6.0.0

6 years ago

5.2.3

6 years ago

5.2.2

6 years ago

5.2.1

6 years ago

5.2.0

6 years ago

5.1.0

6 years ago

5.0.0

7 years ago

4.7.0

7 years ago

4.6.0

7 years ago

4.5.0

7 years ago

4.4.0

7 years ago

4.3.0

7 years ago

4.2.0

7 years ago

4.1.0

8 years ago

4.0.1

8 years ago

4.0.0

8 years ago

3.20.0

8 years ago

3.19.0

8 years ago

3.18.1

8 years ago

3.18.0

8 years ago

3.17.0

8 years ago

3.16.1

8 years ago

3.16.0

8 years ago

3.15.1

8 years ago

3.15.0

8 years ago

3.14.0

8 years ago

3.13.1

8 years ago

3.13.0

8 years ago

3.12.0

8 years ago

3.11.0

8 years ago

3.10.0

8 years ago

3.9.0

8 years ago

3.8.0

8 years ago

3.7.0

8 years ago

3.6.0

8 years ago

3.5.1

8 years ago

3.5.0

8 years ago

3.4.0

8 years ago

3.3.1

8 years ago

3.3.0

8 years ago

3.2.0

8 years ago

3.1.0

8 years ago

3.0.0

8 years ago

2.3.0

8 years ago

2.2.0

9 years ago

2.1.1

9 years ago

2.1.0

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.1.0

9 years ago

1.0.0

9 years ago