Babylon is a JavaScript parser used in Babel.
- ES6 enabled by default.
- Comment attachment.
- Support for JSX and Flow.
- Support for experimental language proposals.
Credits
Heavily based on acorn and acorn-jsx,
thanks to the awesome work of @RReverser and @marijnh.
Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration, interspacial parsing 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.
-
allowSuperOutsideMethod TODO
-
sourceType: Indicate the mode the code should be parsed in. Can be
either "script"
or "module"
.
-
plugins: Array containing the plugins that you want to enable.
Example
require("babylon").parse("code", {
sourceType: "module",
plugins: [
"asyncFunctions",
"jsx",
"flow"
]
});
Plugins
jsx
flow
asyncFunctions
classConstructorCall
doExpressions
trailingFunctionCommas
objectRestSpread
decorators
classProperties
exportExtensions
exponentiationOperator
asyncGenerators
functionSent