/** Get list of all delegates from all grammars in the delegate subtree of g. * The grammars are in delegation tree preorder. Don't include g itself * in list as it is not a delegate of itself. */ public List<Grammar> getDelegates(Grammar g) { CompositeGrammarTree t = delegateGrammarTreeRoot.findNode(g); if ( t==null ) { return null; // no delegates } List<Grammar> grammars = t.getPostOrderedGrammarList(); grammars.remove(grammars.size()-1); // remove g (last one) return grammars; }
/** Get list of all delegates from all grammars in the delegate subtree of g. * The grammars are in delegation tree preorder. Don't include g itself * in list as it is not a delegate of itself. */ public List<Grammar> getDelegates(Grammar g) { CompositeGrammarTree t = delegateGrammarTreeRoot.findNode(g); if ( t==null ) { return null; // no delegates } List<Grammar> grammars = t.getPostOrderedGrammarList(); grammars.remove(grammars.size()-1); // remove g (last one) return grammars; }
/** Get list of all delegates from all grammars in the delegate subtree of g. * The grammars are in delegation tree preorder. Don't include g itself * in list as it is not a delegate of itself. */ public List<Grammar> getDelegates(Grammar g) { CompositeGrammarTree t = delegateGrammarTreeRoot.findNode(g); if ( t==null ) { return null; // no delegates } List<Grammar> grammars = t.getPostOrderedGrammarList(); grammars.remove(grammars.size()-1); // remove g (last one) return grammars; }
/** Get list of all delegates from all grammars in the delegate subtree of g. * The grammars are in delegation tree preorder. Don't include g itself * in list as it is not a delegate of itself. */ public List<Grammar> getDelegates(Grammar g) { CompositeGrammarTree t = delegateGrammarTreeRoot.findNode(g); if ( t==null ) { return null; // no delegates } List<Grammar> grammars = t.getPostOrderedGrammarList(); grammars.remove(grammars.size()-1); // remove g (last one) return grammars; }
/** Get all rule definitions from all direct/indirect delegate grammars * of g. */ public Set<Rule> getAllImportedRules(Grammar g) { Set<String> ruleNames = new HashSet(); Set<Rule> rules = new HashSet(); CompositeGrammarTree subtreeRoot = delegateGrammarTreeRoot.findNode(g); List<Grammar> grammars = subtreeRoot.getPostOrderedGrammarList(); // walk all grammars for (int i = 0; i < grammars.size(); i++) { Grammar delegate = (org.antlr.tool.Grammar) grammars.get(i); // for each rule in delegate, add to rules if no rule with that // name as been seen. (can't use removeAll; wrong hashcode/equals on Rule) for (Iterator it = delegate.getRules().iterator(); it.hasNext();) { Rule r = (Rule)it.next(); if ( !ruleNames.contains(r.name) ) { ruleNames.add(r.name); // track that we've seen this rules.add(r); } } } return rules; }
public void defineGrammarSymbols() { delegateGrammarTreeRoot.trimLexerImportsIntoCombined(); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.defineGrammarSymbols(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.checkNameSpaceAndActions(); } minimizeRuleSet(); }
public void createNFAs() { if ( ErrorManager.doNotAttemptAnalysis() ) { return; } List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); //System.out.println("### createNFAs for composite; grammars: "+names); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.createRuleStartAndStopNFAStates(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.buildNFA(); } }
public void createNFAs() { if ( ErrorManager.doNotAttemptAnalysis() ) { return; } List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); //System.out.println("### createNFAs for composite; grammars: "+names); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.createRuleStartAndStopNFAStates(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.buildNFA(); } }
public void createNFAs() { if ( ErrorManager.doNotAttemptAnalysis() ) { return; } List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); List<String> names = new ArrayList<String>(); for (int i = 0; i < grammars.size(); i++) { Grammar g = (Grammar) grammars.get(i); names.add(g.name); } //System.out.println("### createNFAs for composite; grammars: "+names); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.createRuleStartAndStopNFAStates(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.buildNFA(); } }
public void createNFAs() { if ( ErrorManager.doNotAttemptAnalysis() ) { return; } List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); List<String> names = new ArrayList<String>(); for (int i = 0; i < grammars.size(); i++) { Grammar g = (Grammar) grammars.get(i); names.add(g.name); } //System.out.println("### createNFAs for composite; grammars: "+names); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.createRuleStartAndStopNFAStates(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.buildNFA(); } }
public void defineGrammarSymbols() { delegateGrammarTreeRoot.trimLexerImportsIntoCombined(); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.defineGrammarSymbols(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.checkNameSpaceAndActions(); } minimizeRuleSet(); }
public void defineGrammarSymbols() { delegateGrammarTreeRoot.trimLexerImportsIntoCombined(); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.defineGrammarSymbols(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); g.checkNameSpaceAndActions(); } minimizeRuleSet(); }
public void defineGrammarSymbols() { delegateGrammarTreeRoot.trimLexerImportsIntoCombined(); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.defineGrammarSymbols(); } for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); g.checkNameSpaceAndActions(); } minimizeRuleSet(); }
public void translateLeftRecursiveRules() { List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); if ( !(g.type==Grammar.PARSER || g.type==Grammar.COMBINED) ) continue; for (GrammarAST r : g.grammarTree.findAllType(ANTLRParser.RULE)) { if ( !Character.isUpperCase(r.getChild(0).getText().charAt(0)) ) { if ( LeftRecursiveRuleAnalyzer.hasImmediateRecursiveRuleRefs(r, r.enclosingRuleName) ) { g.translateLeftRecursiveRule(r); } } } } }
public void translateLeftRecursiveRules() { List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); if ( !(g.type==Grammar.PARSER || g.type==Grammar.COMBINED) ) continue; for (GrammarAST r : g.grammarTree.findAllType(ANTLRParser.RULE)) { if ( !Character.isUpperCase(r.getChild(0).getText().charAt(0)) ) { if ( LeftRecursiveRuleAnalyzer.hasImmediateRecursiveRuleRefs(r, r.enclosingRuleName) ) { g.translateLeftRecursiveRule(r); } } } } }
public void assignTokenTypes() throws antlr.RecognitionException { // ASSIGN TOKEN TYPES for all delegates (same walker) //System.out.println("### assign types"); AssignTokenTypesWalker ttypesWalker = new AssignTokenTypesBehavior(); ttypesWalker.setASTNodeClass("org.antlr.tool.GrammarAST"); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); try { //System.out.println(" walking "+g.name); ttypesWalker.grammar(g.getGrammarTree(), g); } catch (RecognitionException re) { ErrorManager.error(ErrorManager.MSG_BAD_AST_STRUCTURE, re); } } // the walker has filled literals, tokens, and alias tables. // now tell it to define them in the root grammar ttypesWalker.defineTokens(delegateGrammarTreeRoot.grammar); }
public void assignTokenTypes() throws antlr.RecognitionException { // ASSIGN TOKEN TYPES for all delegates (same walker) //System.out.println("### assign types"); AssignTokenTypesWalker ttypesWalker = new AssignTokenTypesBehavior(); ttypesWalker.setASTNodeClass("org.antlr.tool.GrammarAST"); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = (Grammar)grammars.get(i); try { //System.out.println(" walking "+g.name); ttypesWalker.grammar(g.getGrammarTree(), g); } catch (RecognitionException re) { ErrorManager.error(ErrorManager.MSG_BAD_AST_STRUCTURE, re); } } // the walker has filled literals, tokens, and alias tables. // now tell it to define them in the root grammar ttypesWalker.defineTokens(delegateGrammarTreeRoot.grammar); }
public void assignTokenTypes() throws RecognitionException { // ASSIGN TOKEN TYPES for all delegates (same walker) //System.out.println("### assign types"); AssignTokenTypesWalker ttypesWalker = new AssignTokenTypesBehavior(); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); ttypesWalker.setTreeNodeStream(new CommonTreeNodeStream(g.getGrammarTree())); try { //System.out.println(" walking "+g.name); ttypesWalker.grammar_(g); } catch (RecognitionException re) { ErrorManager.error(ErrorManager.MSG_BAD_AST_STRUCTURE, re); } } // the walker has filled literals, tokens, and alias tables. // now tell it to define them in the root grammar ttypesWalker.defineTokens(delegateGrammarTreeRoot.grammar); }
public void assignTokenTypes() throws RecognitionException { // ASSIGN TOKEN TYPES for all delegates (same walker) //System.out.println("### assign types"); AssignTokenTypesWalker ttypesWalker = new AssignTokenTypesBehavior(); List<Grammar> grammars = delegateGrammarTreeRoot.getPostOrderedGrammarList(); for (int i = 0; grammars!=null && i < grammars.size(); i++) { Grammar g = grammars.get(i); ttypesWalker.setTreeNodeStream(new CommonTreeNodeStream(g.getGrammarTree())); try { //System.out.println(" walking "+g.name); ttypesWalker.grammar_(g); } catch (RecognitionException re) { ErrorManager.error(ErrorManager.MSG_BAD_AST_STRUCTURE, re); } } // the walker has filled literals, tokens, and alias tables. // now tell it to define them in the root grammar ttypesWalker.defineTokens(delegateGrammarTreeRoot.grammar); }