зеркало из https://github.com/mozilla/gecko-dev.git
144 строки
6.0 KiB
Plaintext
144 строки
6.0 KiB
Plaintext
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 <http://esprima.org>`__, BSD license) is a
|
|
high performance, standard-compliant
|
|
`ECMAScript <http://www.ecma-international.org/publications/standards/Ecma-262.htm>`__
|
|
parser officially written in ECMAScript (also popularly known as
|
|
`JavaScript <https://en.wikipedia.org/wiki/JavaScript>`__) and ported to
|
|
Python. Esprima is created and maintained by `Ariya
|
|
Hidayat <https://twitter.com/ariyahidayat>`__, with the help of `many
|
|
contributors <https://github.com/jquery/esprima/contributors>`__.
|
|
|
|
Python port is a line-by-line manual translation and was created and is
|
|
maintained by `German Mendez Bravo
|
|
(Kronuz) <https://twitter.com/germbravo>`__.
|
|
|
|
Features
|
|
~~~~~~~~
|
|
|
|
- Full support for ECMAScript 2017 (`ECMA-262 8th
|
|
Edition <http://www.ecma-international.org/publications/standards/Ecma-262.htm>`__)
|
|
- Sensible `syntax tree
|
|
format <https://github.com/estree/estree/blob/master/es5.md>`__ as
|
|
standardized by `ESTree project <https://github.com/estree/estree>`__
|
|
- Experimental support for `JSX <https://facebook.github.io/jsx/>`__, a
|
|
syntax extension for `React <https://facebook.github.io/react/>`__
|
|
- Optional tracking of syntax node location (index-based and
|
|
line-column)
|
|
- `Heavily tested <http://esprima.org/test/ci.html>`__ (~1500 `unit
|
|
tests <https://github.com/jquery/esprima/tree/master/test/fixtures>`__
|
|
with `full code
|
|
coverage <https://codecov.io/github/jquery/esprima>`__)
|
|
|
|
Installation
|
|
~~~~~~~~~~~~
|
|
|
|
.. code:: shell
|
|
|
|
pip install esprima
|
|
|
|
API
|
|
~~~
|
|
|
|
Esprima can be used to perform `lexical
|
|
analysis <https://en.wikipedia.org/wiki/Lexical_analysis>`__
|
|
(tokenization) or `syntactic
|
|
analysis <https://en.wikipedia.org/wiki/Parsing>`__ (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 <http://esprima.org/doc>`__.
|
|
|
|
.. |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
|