# 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.advanced.python_parser

## Beginner Examples

Parsing Indentation

Lark Grammar

Handling Ambiguity

Basic calculator

Turtle DSL

Simple JSON Parser

## Advanced Examples

LALR’s contextual lexer

Templates

Earley’s dynamic lexer

Error handling using an interactive parser

Extend the Python Grammar

Reconstruct a JSON

Custom lexer

Transform a Forest

Simple JSON Parser

Custom SPPF Prioritizer

Python 3 to Python 2 converter (tree templates)

Grammar-complete Python Parser

Creating an AST from the parse tree

Example-Driven Error Reporting

Example-Driven Error Reporting

Reconstruct Python

Using lexer dynamic_complete

Syntax Highlighting

# Grammar Composition

This example shows how to do grammar composition in Lark, by creating a new file format that allows both CSV and JSON to co-exist.

We show how, by using namespaces, Lark grammars and their transformers can be fully reused - they don’t need to care if their grammar is used directly, or being imported, or who is doing the importing.

See [`main.py`](main.py) for more details.

sphx_glr_examples_composition_eval_json.py

sphx_glr_examples_composition_eval_csv.py

Grammar Composition

# Example Grammars

This directory is a collection of lark grammars, taken from real world projects.

- [Verilog](verilog.lark) - Taken from https://github.com/circuitgraph/circuitgraph/blob/master/circuitgraph/parsing/verilog.lark

# Standalone example

To initialize, cd to this folder, and run:

```bash

  ./create_standalone.sh

```

Or: ``bash python -m lark.tools.standalone json.lark > json_parser.py ```

Then run using:

``bash python json_parser_main.py <path-to.json> ``

Standalone Parser

Gallery generated by Sphinx-Gallery