9.2.0 • Published 1 year ago

phptoast v9.2.0

Weekly downloads
29
License
MIT
Repository
github
Last release
1 year 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

1 year ago

9.1.1

2 years ago

9.1.0

2 years ago

9.0.2

3 years ago

9.0.1

3 years ago

9.0.0

3 years ago

8.0.1

4 years ago

8.0.0

5 years ago

7.1.0

5 years ago

7.0.0

6 years ago

6.0.5

6 years ago

6.0.4

6 years ago

6.0.3

6 years ago

6.0.2

7 years ago

6.0.1

7 years ago

6.0.0

7 years ago

5.2.3

7 years ago

5.2.2

7 years ago

5.2.1

7 years ago

5.2.0

7 years ago

5.1.0

8 years ago

5.0.0

8 years ago

4.7.0

8 years ago

4.6.0

8 years ago

4.5.0

8 years ago

4.4.0

8 years ago

4.3.0

8 years ago

4.2.0

9 years ago

4.1.0

9 years ago

4.0.1

9 years ago

4.0.0

9 years ago

3.20.0

9 years ago

3.19.0

9 years ago

3.18.1

9 years ago

3.18.0

9 years ago

3.17.0

9 years ago

3.16.1

9 years ago

3.16.0

9 years ago

3.15.1

9 years ago

3.15.0

9 years ago

3.14.0

9 years ago

3.13.1

9 years ago

3.13.0

9 years ago

3.12.0

9 years ago

3.11.0

9 years ago

3.10.0

10 years ago

3.9.0

10 years ago

3.8.0

10 years ago

3.7.0

10 years ago

3.6.0

10 years ago

3.5.1

10 years ago

3.5.0

10 years ago

3.4.0

10 years ago

3.3.1

10 years ago

3.3.0

10 years ago

3.2.0

10 years ago

3.1.0

10 years ago

3.0.0

10 years ago

2.3.0

10 years ago

2.2.0

10 years ago

2.1.1

10 years ago

2.1.0

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago