Skip to main content

very powerful and optional parser framework for python

Project description

Build Status PyPI version Release Note MIT License

EBNFParser

Parse Many, Any, Every Doc

LR ::= LR 'a' 'b' | LR 'c' | 'd';

Install

  • Python

    • pip

    pip installl -U EBNFParser

    • setup

    git clone https://github.com/thautwarm/EBNFParser
    cd EBNFParser/Python
    python setup.py install

Usage

  • Command Line Tools

    • ruiko.

    ruiko ./<grammar File> ./<output filename>
            [--testTk] # print tokenized words or not
            [--test] # generate test script "test_lang.py"

    Use command ruiko to generate parser and token files, and then you can use test_lang.py to test your parser.

    python ./test_lang.py Stmt " (+ 1 2) " -o test.json --testTk
  • Integrated into your own project

    from Ruikowa.ObjectRegex.ASTDef import Ast
    from Ruikowa.ErrorHandler import ErrorHandler
    from Ruikowa.ObjectRegex.MetaInfo import MetaInfo
    from Ruikowa.ObjectRegex.Tokenizer import Tokenizer
    
    from <your own generated parser module> import <top parser>, token_table
    
    
    import typing as t
    
    def token_func(src_code: str) -> t.Iterable[Tokenizer]:
        return Tokenizer.from_raw_strings(src_code, token_table, ({<the names of tokenizers you would ignore>}, {<the string contents of tokenizers you would ignore>}))
    
    parser = ErrorHandler(<top parser>.match, token_func)
    
    def parse(filename: str) -> Ast:
    
        return parser.from_file(filename)
    
    
    print(parse(<filename of your dsl source code>))

Need more? See the documents.

Examples

Here are some examples to refer:

EBNFParser 2.0

  • Rem The Rem programming language.

Old version(Before EBNFParser 1.1).

  • A DSL for SQL development in Python areas.
  • A full featured modern language to enhance program readability based on CPython.
  • An attempt to making ASDL in CPython(unfinished yet)

Will support F# and Rem.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

EBNFParser-2.1.3-py3-none-any.whl (26.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page