summaryrefslogtreecommitdiffstats
path: root/third_party/python/esprima/README
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/esprima/README')
-rw-r--r--third_party/python/esprima/README117
1 files changed, 117 insertions, 0 deletions
diff --git a/third_party/python/esprima/README b/third_party/python/esprima/README
new file mode 100644
index 0000000000..442fbc7b11
--- /dev/null
+++ b/third_party/python/esprima/README
@@ -0,0 +1,117 @@
+|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