pegjs-require-import
Version:
PEG.js Require Extension
54 lines (45 loc) • 1.4 kB
Markdown
# [PEG.js](https://github.com/pegjs/pegjs) Require Extension
A simple require extension for PEG.js that supports importing syntax
*If you're using webpack, it's recommended to use [pegjs-import-loader](https://github.com/phuongduyphan/pegjs-import-loader)*
## Install
`npm install --save-dev pegjs-require-import`
## Usage
### Importing Syntax
*parser.pegjs:*
```js
{
const str = 'This is just an example string';
function concat(a, b) {
return a.concat(b);
}
}
Expression
= head:Term tail:(_ ("+" / "-") _ Term)* {
return tail.reduce(function(result, element) {
if (element[1] === "+") { return result + element[3]; }
if (element[1] === "-") { return result - element[3]; }
}, head);
}
Factor
= "(" _ expr:Expression _ ")" { return expr; }
/ Integer
```
*Import syntax is the same as in [pegjs-import-loader](https://github.com/phuongduyphan/pegjs-import-loader)*
### Generate a parser in JS code using require
```js
const pegjs_require = require('pegjs-require-import');
const parser = pegjs_require('./parser.pegjs', {
format: 'commonjs',
dependencies: {
_: 'lodash'
}
});
const result = parser.parse(content);
```
## API
### pegjs_require(file_path, options)
#### options
Type: object
[See more about PEG.js options](https://pegjs.org/documentation)