Note

Go to the end to download the full example code.

# Templates

This example shows how to use Lark’s templates to achieve cleaner grammars

    from lark import Lark

    grammar = r"""
    start: list | dict

    list: "[" _seperated{atom, ","} "]"
    dict: "{" _seperated{key_value, ","} "}"
    key_value: atom ":" atom

    _seperated{x, sep}: x (sep x)*  // Define a sequence of 'x sep x sep x ...'

    atom: NUMBER | ESCAPED_STRING

    %import common (NUMBER, ESCAPED_STRING, WS)
    %ignore WS
    """

    parser = Lark(grammar)

    print(parser.parse('[1, "a", 2]'))
    print(parser.parse('{"a": 2, "b": 6}'))

Gallery generated by Sphinx-Gallery