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 details)

Uploaded Python 3

File details

Details for the file EBNFParser-2.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for EBNFParser-2.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a9c41cbfba10aec2f1f11a529d3e17c0a039f3a272b7cda18ba3d1a0a51491aa
MD5 24a7a3b76261b7ca49269356789619d4
BLAKE2b-256 5a9bb874430f35575908b3ea93a85bf59b23939e74bcb97e6e509106cc3e49da

See more details on using hashes here.

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