Skip to content
Branch: master
Find file History
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
relative-imports Examples: add import example Mar 3, 2019
standalone Updated standalone example Apr 9, 2019
README.md Docs: Fixup Jan 31, 2019
__init__.py Added examples (calc, json) Feb 5, 2017
calc.py Improved documentation and code style (minor) Jun 27, 2018
conf_earley.py Improved documentation and code style (minor) Jun 27, 2018
conf_lalr.py Improved documentation and code style (minor) Jun 27, 2018
custom_lexer.py Added Token.end_pos, and updated docs regarding recent commits Nov 17, 2019
error_reporting_lalr.py Fixed examples for error reporting Jun 27, 2018
fruitflies.png Improved Readme Nov 2, 2017
fruitflies.py Improved Readme Nov 2, 2017
indented_tree.py Added option to provide a custom lexer (with example) Jul 10, 2018
json_parser.py Improved documentation and code style (minor) Jun 27, 2018
lark.lark Examples: update lark.lark Mar 3, 2019
lark_grammar.py Examples: add import example Mar 3, 2019
python2.lark Trimmed whitespaces and ensured a new line on the end of the file Dec 20, 2018
python3.lark Fixed IMAG_NUMBER in the Python3 grammar (Issue #387) May 22, 2019
python_parser.py Merge branch 'file-ext-change' of https://github.com/RobRoseKnows/lark May 27, 2018
qscintilla_json.py Improved docs Aug 3, 2018
reconstruct_json.py propagate_positions & maybe_placeholders are now true by default, upd… Nov 16, 2019
turtle_dsl.py Earley now uses dynamic lexer by default. Bump to version 0.3.0 Aug 4, 2017

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!)
  • 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
You can’t perform that action at this time.