mirror of https://github.com/lark-parser/lark.git
9cc57abd8a | ||
---|---|---|
.. | ||
relative-imports | ||
standalone | ||
README.md | ||
__init__.py | ||
calc.py | ||
conf_earley.py | ||
conf_lalr.py | ||
custom_lexer.py | ||
error_reporting_lalr.py | ||
fruitflies.png | ||
fruitflies.py | ||
indented_tree.py | ||
json_parser.py | ||
lark.lark | ||
lark_grammar.py | ||
python2.lark | ||
python3.lark | ||
python_bytecode.py | ||
python_parser.py | ||
qscintilla_json.py | ||
reconstruct_json.py | ||
template_lark.lark | ||
turtle_dsl.py |
README.md
Examples for Lark
How to run the examples
After cloning the repo, open the terminal into the root directory of the project, and run the following:
[lark]$ python -m examples.<name_of_example>
For example, the following will parse all the Python files in the standard library of your local installation:
[lark]$ python -m examples.python_parser
Beginners
- calc.py - A simple example of a REPL calculator
- json_parser.py - A simple JSON parser (comes with a tutorial, see docs)
- indented_tree.py - A demonstration of parsing indentation ("whitespace significant" language)
- fruitflies.py - A demonstration of ambiguity
- turtle_dsl.py - Implements a LOGO-like toy language for Python's turtle, with interpreter.
- lark_grammar.py + lark.lark - A reference implementation of the Lark grammar (using LALR(1) + standard lexer)
Advanced
- error_reporting_lalr.py - A demonstration of example-driven error reporting with the LALR parser
- python_parser.py - A fully-working Python 2 & 3 parser (but not production ready yet!)
- python_bytecode.py - A toy example showing how to compile Python directly to bytecode
- conf_lalr.py - Demonstrates the power of LALR's contextual lexer on a toy configuration language
- conf_earley.py - Demonstrates the power of Earley's dynamic lexer on a toy configuration language
- custom_lexer.py - Demonstrates using a custom lexer to parse a non-textual stream of data
- reconstruct_json.py - Demonstrates the experimental text-reconstruction feature