Examples of GrammarASTAdaptor


Examples of org.antlr.v4.parse.GrammarASTAdaptor

    for (GrammarAST r : ast.getNodesWithType(ANTLRParser.RULE_REF)) {
      if ( r.getParent().getType()==ANTLRParser.RULE ) continue; // must be rule def
      if ( ((GrammarASTWithOptions)r).getOptionString(PRECEDENCE_OPTION_NAME) != null ) continue; // already has arg; must be in rewritten rule
      if ( leftRecursiveRuleNames.contains(r.getText()) ) {
        // found ref to recursive rule not already rewritten with arg
        ((GrammarASTWithOptions)r).setOption(PRECEDENCE_OPTION_NAME, (GrammarAST)new GrammarASTAdaptor().create(ANTLRParser.INT, "0"));
      }
    }
  }
View Full Code Here

Examples of org.antlr.v4.parse.GrammarASTAdaptor

    return true;
  }

  public RuleAST parseArtificialRule(final Grammar g, String ruleText) {
    ANTLRLexer lexer = new ANTLRLexer(new ANTLRStringStream(ruleText));
    GrammarASTAdaptor adaptor = new GrammarASTAdaptor(lexer.getCharStream());
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    lexer.tokens = tokens;
    ToolANTLRParser p = new ToolANTLRParser(tokens, tool);
    p.setTreeAdaptor(adaptor);
    Token ruleStart = null;
View Full Code Here

Examples of org.antlr.v4.parse.GrammarASTAdaptor

  }

  protected void _createATN(@NotNull Collection<Rule> rules) {
    createRuleStartAndStopATNStates();

    GrammarASTAdaptor adaptor = new GrammarASTAdaptor();
    for (Rule r : rules) {
      // find rule's block
      GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK);
      CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk);
      ATNBuilder b = new ATNBuilder(nodes,this);
View Full Code Here

Examples of org.antlr.v4.parse.GrammarASTAdaptor

    this.tokenStream = ast.tokenStream;

    // ensure each node has pointer to surrounding grammar
    final Grammar thiz = this;
    org.antlr.runtime.tree.TreeVisitor v = new org.antlr.runtime.tree.TreeVisitor(new GrammarASTAdaptor());
    v.visit(ast, new org.antlr.runtime.tree.TreeVisitorAction() {
      @Override
      public Object pre(Object t) { ((GrammarAST)t).g = thiz; return t; }
      @Override
      public Object post(Object t) { return t; }
View Full Code Here

Examples of org.antlr.v4.parse.GrammarASTAdaptor

      "(RULE %name:TOKEN_REF (BLOCK (LEXER_ALT_ACTION (ALT %lit:STRING_LITERAL) (LEXER_ACTION_CALL . .))))",
      "(RULE %name:TOKEN_REF (BLOCK (LEXER_ALT_ACTION (ALT %lit:STRING_LITERAL) . (LEXER_ACTION_CALL . .))))",
      "(RULE %name:TOKEN_REF (BLOCK (LEXER_ALT_ACTION (ALT %lit:STRING_LITERAL) (LEXER_ACTION_CALL . .) .)))",
      // TODO: allow doc comment in there
    };
    GrammarASTAdaptor adaptor = new GrammarASTAdaptor(ast.token.getInputStream());
    org.antlr.runtime.tree.TreeWizard wiz = new org.antlr.runtime.tree.TreeWizard(adaptor,ANTLRParser.tokenNames);
    List<Pair<GrammarAST,GrammarAST>> lexerRuleToStringLiteral =
      new ArrayList<Pair<GrammarAST,GrammarAST>>();

    List<GrammarAST> ruleNodes = ast.getNodesWithType(ANTLRParser.RULE);
View Full Code Here

Examples of org.antlr.v4.parse.GrammarASTAdaptor

  }

  public void buildNormalRuleFunction(Rule r, RuleFunction function) {
    CodeGenerator gen = delegate.getGenerator();
    // TRIGGER factory functions for rule alts, elements
    GrammarASTAdaptor adaptor = new GrammarASTAdaptor(r.ast.token.getInputStream());
    GrammarAST blk = (GrammarAST)r.ast.getFirstChildWithType(ANTLRParser.BLOCK);
    CommonTreeNodeStream nodes = new CommonTreeNodeStream(adaptor,blk);
    walker = new SourceGenTriggers(nodes, this);
    try {
      // walk AST of rule alts/elements
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.