mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-python
synced 2026-01-15 01:52:56 +01:00
grammar.py: Add grammar_parse_ebnf_tokens()
Add grammar_parse_ebnf_tokens(), to be used by external grammar parsers and grammar_parse_ebnf() Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
860f7d8cab
commit
432d78cdc5
4 changed files with 216 additions and 91 deletions
|
|
@ -1,5 +1,8 @@
|
|||
TOPDIR = ../..
|
||||
|
||||
USE_PROJECT_LIB = true
|
||||
MEMBERS += local.a($(OBJ))
|
||||
|
||||
GENERATED_STD = grammartest.l grammartest.y grammartest.ebnf include/grammartest.h
|
||||
|
||||
# These types are meant to be cut off the tree and turned into hand coded flex
|
||||
|
|
|
|||
|
|
@ -47,12 +47,6 @@ class GrammarCmd(jwutils.grammar.GrammarCmd):
|
|||
with open(args.input, 'r') as infile:
|
||||
contents = infile.read()
|
||||
grammar = jwutils.grammar.grammar_parse_ebnf(contents)
|
||||
|
||||
slog(INFO, "grammar size is", len(grammar))
|
||||
for t in grammar.keys():
|
||||
slog(INFO, "key =", t)
|
||||
slog(INFO, "grammar size is", len(grammar))
|
||||
jwutils.grammar.dump_grammar(INFO, grammar)
|
||||
grammar = super(GrammarCmd, self).processGrammar(args, grammar)
|
||||
self._run(args, grammar)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
'END.' ;
|
||||
identifier = alphabetic character, { alphabetic character | digit } ;
|
||||
number = [ "-" ], digit, { digit } ;
|
||||
string = '"' , { all characters - '"' }, '"' ;
|
||||
string = '"' , { all characters }, '"' ;
|
||||
assignment = identifier , ":=" , ( number | identifier | string ) ;
|
||||
alphabetic character = "A" | "B" | "C" | "D" | "E" | "F" | "G"
|
||||
| "H" | "I" | "J" | "K" | "L" | "M" | "N"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue