Skip to main content

esprima2 is a javascript parser written in python. It supports syntax up to ECMA 2025 and has ~1500 unit tests.

Credits

  1. Ariya Hidayat created the original esprima library.
  2. Kronuz created a python port as esprima-python, line-by-line - faithfully.
  3. esprima library hasn't been updated since ECMAScript 2019 and esprima-python since ECMAScript 2017.
  4. With esprima2, I added the missing syntax support and now we can parse modern javascript.

Features

Installation

pip install esprima2

Development

Run the test suite with:

python3 -m test

Usage

Esprima 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

esprima2-6.0.0.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

esprima2-6.0.0-py3-none-any.whl (76.0 kB view details)

Uploaded Python 3

File details

Details for the file esprima2-6.0.0.tar.gz.

File metadata

  • Download URL: esprima2-6.0.0.tar.gz
  • Upload date:
  • Size: 60.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for esprima2-6.0.0.tar.gz
Algorithm Hash digest
SHA256 3a4f045a7171b1027ae770d4b28caf55f987f133436d569d52e221ae313d9f83
MD5 52dbf3a2253a92665d4ecedf2983bd3b
BLAKE2b-256 8bb387832c18ff84010a08ea64e4c0c4c91550e0e28207b835db4849cd0aec81

See more details on using hashes here.

Provenance

The following attestation bundles were made for esprima2-6.0.0.tar.gz:

Publisher: pypi.yml on s0md3v/esprima2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file esprima2-6.0.0-py3-none-any.whl.

File metadata

  • Download URL: esprima2-6.0.0-py3-none-any.whl
  • Upload date:
  • Size: 76.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for esprima2-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0596fae544e0a9d7a07b1243ee9e9016b568812c20f9a06cb8f85bbb7c2ef443
MD5 f834ad1bdcad9e92d4d8008dd5aa661c
BLAKE2b-256 7f10583154299cde5ba31a2818490788398c9a9cbb01292cc485d505e03b5966

See more details on using hashes here.

Provenance

The following attestation bundles were made for esprima2-6.0.0-py3-none-any.whl:

Publisher: pypi.yml on s0md3v/esprima2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

6.0.0 This release

2 files

5.0.2

2 files

5.0.1

2 files

5.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page