public void processNonCombinedGrammar(Grammar g, boolean gencode) { if ( g.ast==null || g.ast.hasErrors ) return; if ( internalOption_PrintGrammarTree ) System.out.println(g.ast.toStringTree()); boolean ruleFail = checkForRuleIssues(g); if ( ruleFail ) return; int prevErrors = errMgr.getNumErrors(); // MAKE SURE GRAMMAR IS SEMANTICALLY CORRECT (FILL IN GRAMMAR OBJECT) SemanticPipeline sem = new SemanticPipeline(g); sem.process(); if ( errMgr.getNumErrors()>prevErrors ) return; // BUILD ATN FROM AST ATNFactory factory; if ( g.isLexer() ) factory = new LexerATNFactory((LexerGrammar)g); else factory = new ParserATNFactory(g); g.atn = factory.createATN(); if ( generate_ATN_dot ) generateATNs(g); if (gencode && g.tool.getNumErrors()==0 ) generateInterpreterData(g); // PERFORM GRAMMAR ANALYSIS ON ATN: BUILD DECISION DFAs AnalysisPipeline anal = new AnalysisPipeline(g); anal.process(); //if ( generate_DFA_dot ) generateDFAs(g); if ( g.tool.getNumErrors()>prevErrors ) return; // GENERATE CODE if ( gencode ) { CodeGenPipeline gen = new CodeGenPipeline(g); gen.process(); } }
ST lexer = gen.generateLexer(true); // Header file if needed. if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(lexer, gen, true); writeRecognizer(lexer, gen, false); ST parser = gen.generateParser(true); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(parser, gen, true); writeRecognizer(parser, gen, false);
ST lexer = gen.generateLexer(true); // Header file if needed. if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(lexer, gen, true); writeRecognizer(lexer, gen, false); ST parser = gen.generateParser(true); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(parser, gen, true); writeRecognizer(parser, gen, false);
CodeGenPipeline gen = new CodeGenPipeline(g); gen.process();
ST lexer = gen.generateLexer(true); // Header file if needed. if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(lexer, gen, true); writeRecognizer(lexer, gen, false); ST parser = gen.generateParser(true); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(parser, gen, true); writeRecognizer(parser, gen, false);
CodeGenPipeline gen = new CodeGenPipeline(g); gen.process();
ST lexer = gen.generateLexer(); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(lexer, gen); ST parser = gen.generateParser(); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(parser, gen);
CodeGenPipeline gen = new CodeGenPipeline(g); gen.process();
ST lexer = gen.generateLexer(); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(lexer, gen); ST parser = gen.generateParser(); if (g.tool.errMgr.getNumErrors() == errorCount) { writeRecognizer(parser, gen);
CodeGenPipeline gen = new CodeGenPipeline(g); gen.process();
CodeGenPipeline gen = new CodeGenPipeline(g); gen.process();