Metadata-Version: 1.1 Name: esprima Version: 4.0.1 Summary: ECMAScript parsing infrastructure for multipurpose analysis in Python Home-page: https://github.com/Kronuz/esprima-python Author: German M. Bravo (Kronuz) Author-email: german.mb@gmail.com License: BSD License Description: |Donate| |PyPI Version| |PyPI License| |PyPI Format| |PyPI Status| **Esprima** (`esprima.org `__, BSD license) is a high performance, standard-compliant `ECMAScript `__ parser officially written in ECMAScript (also popularly known as `JavaScript `__) and ported to Python. Esprima is created and maintained by `Ariya Hidayat `__, with the help of `many contributors `__. Python port is a line-by-line manual translation and was created and is maintained by `German Mendez Bravo (Kronuz) `__. 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 `__) Installation ~~~~~~~~~~~~ .. code:: shell pip install esprima API ~~~ Esprima can be used to perform `lexical analysis `__ (tokenization) or `syntactic analysis `__ (parsing) of a JavaScript program. A simple example: .. code:: javascript >>> 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" } For more information, please read the `complete documentation `__. .. |Donate| image:: https://img.shields.io/badge/Donate-PayPal-green.svg :target: https://www.paypal.me/Kronuz/25 .. |PyPI Version| image:: https://img.shields.io/pypi/v/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI License| image:: https://img.shields.io/pypi/l/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI Wheel| image:: https://img.shields.io/pypi/wheel/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI Format| image:: https://img.shields.io/pypi/format/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI Implementation| image:: https://img.shields.io/pypi/implementation/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI Status| image:: https://img.shields.io/pypi/status/esprima.svg :target: https://pypi.python.org/pypi/esprima .. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/esprima.svg :target: https://pypi.python.org/pypi/esprima Keywords: esprima ecmascript javascript parser ast Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Topic :: Software Development :: Code Generators Classifier: Topic :: Software Development :: Compilers Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Text Processing :: General Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6