very powerful and optional parser framework for python
Project description
EBNFParser
Parse Many, Any, Every
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
Release history Release notifications | RSS feed
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
File details
Details for the file EBNFParser-2.1.3-py3-none-any.whl
.
File metadata
- Download URL: EBNFParser-2.1.3-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9c41cbfba10aec2f1f11a529d3e17c0a039f3a272b7cda18ba3d1a0a51491aa |
|
MD5 | 24a7a3b76261b7ca49269356789619d4 |
|
BLAKE2b-256 | 5a9bb874430f35575908b3ea93a85bf59b23939e74bcb97e6e509106cc3e49da |