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.
- Full support for ECMAScript 2019 (ECMA-262 10th 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 (~1600 unit tests with full code coverage)
Esprima can be used to perform lexical analysis (tokenization) or syntactic analysis (parsing) of a JavaScript program.
A simple example on Node.js REPL:
>varesprima=require('esprima');>varprogram='const answer = 42';>esprima.tokenize(program);[{type: 'Keyword',value: 'const'},{type: 'Identifier',value: 'answer'},{type: 'Punctuator',value: '='},{type: 'Numeric',value: '42'}]>esprima.parseScript(program);{type: 'Program',body:
[{type: 'VariableDeclaration',declarations: [Object],kind: 'const'}],sourceType: 'script'}For more information, please read the complete documentation.