This commit is contained in:
parrt 2016-11-22 14:21:07 -08:00
parent d09276d9fd
commit dc2c9b039e
2 changed files with 12 additions and 6 deletions

View File

@ -37,11 +37,15 @@ import org.junit.Test;
public class TestToolSyntaxErrors extends BaseJavaToolTest {
static String[] A = {
// INPUT
"grammar A;\n" +
"",
// YIELDS
"error(" + ErrorType.NO_RULES.code + "): A.g4::: grammar A has no rules\n",
// INPUT
"grammar A;\n" +
"",
// YIELDS
"error(" + ErrorType.NO_RULES.code + "): A.g4::: grammar A has no rules\n",
"lexer grammar A;\n" +
"",
"error(" + ErrorType.NO_RULES.code + "): A.g4::: grammar A has no rules\n",
"A;",
"error(" + ErrorType.SYNTAX_ERROR.code + "): A.g4:1:0: syntax error: 'A' came as a complete surprise to me\n",

View File

@ -83,11 +83,13 @@ public class SemanticPipeline {
ruleCollector.process(g.ast);
// DO BASIC / EASY SEMANTIC CHECKS
int prevErrors = g.tool.errMgr.getNumErrors();
BasicSemanticChecks basics = new BasicSemanticChecks(g, ruleCollector);
basics.process();
if ( g.tool.errMgr.getNumErrors()>prevErrors ) return;
// TRANSFORM LEFT-RECURSIVE RULES
int prevErrors = g.tool.errMgr.getNumErrors();
prevErrors = g.tool.errMgr.getNumErrors();
LeftRecursiveRuleTransformer lrtrans =
new LeftRecursiveRuleTransformer(g.ast, ruleCollector.rules.values(), g);
lrtrans.translateLeftRecursiveRules();