Esprima (esprima.org, BSD license) is a high performance, standard-compliant ECMAScript parser written in ECMAScript (also popularly known as JavaScript). Esprima is created and maintained by Ariya Hidayat, with the help of many contributors.
Features
- Full support for ECMAScript 2017 (ECMA-262 8th Edition)
- Sensible syntax tree format as standardized by ESTree project
- Experimental support for JSX, a syntax extension for React
- Optional tracking of syntax node location (index-based and line-column)
- Heavily tested (~1500 unit tests with full code coverage)
API
Esprima can be used to perform lexical analysis (tokenization) or syntactic analysis (parsing) of a JavaScript program.
A simple example on Node.js REPL:
> var esprima = ;> var program = 'const answer = 42'; > esprima; type: 'Keyword' value: 'const' type: 'Identifier' value: 'answer' type: 'Punctuator' value: '=' type: 'Numeric' value: '42' > esprima; type: 'Program' body: type: 'VariableDeclaration' declarations: Object kind: 'const' sourceType: 'script'
For more information, please read the complete documentation.