flesh out babylon readme
This commit is contained in:
parent
c9aff26824
commit
c44fd54621
@ -6,10 +6,70 @@
|
|||||||
Babylon is a JavaScript parser used in <a href="https://github.com/babel/babel">Babel</a>.
|
Babylon is a JavaScript parser used in <a href="https://github.com/babel/babel">Babel</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
- ES6 enabled by default.
|
||||||
|
- Comment attachment.
|
||||||
|
- Support for JSX and Flow.
|
||||||
|
- Support for experimental language proposals.
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
Heavily based on [acorn](https://github.com/marijnh/acorn) and [acorn-jsx](https://github.com/RReverser/acorn-jsx),
|
Heavily based on [acorn](https://github.com/marijnh/acorn) and [acorn-jsx](https://github.com/RReverser/acorn-jsx),
|
||||||
thanks to the awesome work of [@RReverser](https://github.com/RReverser) and [@marijnh](https://github.com/marijnh).
|
thanks to the awesome work of [@RReverser](https://github.com/RReverser) and [@marijnh](https://github.com/marijnh).
|
||||||
|
|
||||||
Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration,
|
Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration, interspacial parsing and more.
|
||||||
interspacial parsing, comment attachment and more.
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### `babylon.parse(code, [options])`
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
- **allowImportExportEverywhere**: By default, `import` and `export`
|
||||||
|
declarations can only appear at a program's top level. Setting this
|
||||||
|
option to `true` allows them anywhere where a statement is allowed.
|
||||||
|
|
||||||
|
- **allowReturnOutsideFunction**: By default, a return statement at
|
||||||
|
the top level raises an error. Set this to `true` to accept such
|
||||||
|
code.
|
||||||
|
|
||||||
|
- **sourceType**: Indicate the mode the code should be parsed in. Can be
|
||||||
|
either `"script"` or `"module"`.
|
||||||
|
|
||||||
|
- **features**: Object containing names of all the proposed syntax you want
|
||||||
|
to support.
|
||||||
|
|
||||||
|
- **plugins**: Object containg the plugins that you want to enable.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
require("babylon").parse("code", {
|
||||||
|
// parse in strict mode and allow module declarations
|
||||||
|
sourceType: "module",
|
||||||
|
|
||||||
|
features: {
|
||||||
|
// enable experimental async functions
|
||||||
|
asyncFunctions: true
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins: {
|
||||||
|
// enable jsx and flow syntax
|
||||||
|
jsx: true,
|
||||||
|
flow: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- `asyncFunctions`
|
||||||
|
- `doExpressions`
|
||||||
|
- `comprehensions`
|
||||||
|
- `trailingFunctionCommas`
|
||||||
|
- `objectRestSpread`
|
||||||
|
- `decorators`
|
||||||
|
|
||||||
|
### Plugins
|
||||||
|
|
||||||
|
- `jsx`
|
||||||
|
- `flow`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user