esprima2 is a javascript parser written in python. It works for ECMAScript 2024 and has ~1500 unit tests.
- Ariya Hidayat created the original esprima library.
- Kronuz created a python port as esprima-python, line-by-line - faithfully.
esprimalibrary hasn't been updated since ECMAScript 2019 andesprima-pythonsince ECMAScript 2017.- With
esprima2, I added the missing syntax support and now we can parse modern javascript.
- Full support for ECMAScript 2024
- 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)
pip install esprima2Esprima can be used to perform lexical analysis (tokenization) or syntactic analysis (parsing) a JavaScript program.
A simple example:
>>> import esprima
>>> program = 'const answer = 42'
>>> esprima.tokenize(program)
[{
type: "Keyword",
value: "const"
}, {
type: "Identifier",
value: "answer"
}, {
type: "Punctuator",
value: "="
}, {
type: "Numeric",
value: "42"
}]
>>> esprima.parseScript(program)
{
body: [
{
kind: "const",
declarations: [
{
init: {
raw: "42",
type: "Literal",
value: 42
},
type: "VariableDeclarator",
id: {
type: "Identifier",
name: "answer"
}
}
],
type: "VariableDeclaration"
}
],
type: "Program",
sourceType: "script"
}More (and original) documentation is available here: https://esprima.org