Implementation of LL-1 grammar translator generator inspired by ANTLR.
- Tokens supports regular expressions
- Supports synthesized and inherited attributes.
- Recognize left recursion and right branching.
- Visualization of parse tree.
To generate grammar you should do this steps.
- Generate grammar parser with ANTLR placed in ru.ifmo.galkin.antlr4
- Create instance of ru.ifmo.galkin.generator.Generator and run generate method.
grammar logicExpressions
expr: impl exprprime;
exprprime: IMPL impl exprprime | ;
impl : or implprime;
implprime : OR or implprime | ;
or : xor orprime;
orprime : XOR xor orprime | ;
xor : and xorprime;
xorprime: AND and xorprime | ;
and : NOT and | not;
not : ID | LPAREN expr RPAREN;
IMPL : '->';
OR : '|';
XOR : '^';
AND : '&';
NOT : '!';
ID : [a-z];
LPAREN : '(';
RPAREN : ')';
Another grammars examples placed in grammars folder.