Package org.antlr.v4.tool

Examples of org.antlr.v4.tool.Rule


    return h;
  }

  @NotNull
  public Handle _ruleRef(@NotNull GrammarAST node) {
    Rule r = g.getRule(node.getText());
    if ( r==null ) {
      g.tool.errMgr.grammarError(ErrorType.INTERNAL_ERROR, g.fileName, node.getToken(), "Rule "+node.getText()+" undefined");
      return null;
    }
    RuleStartState start = atn.ruleToStartState[r.index];
View Full Code Here


    boolean stateReachesStopState = false;
    for (int i=0; i<n; i++) {
      Transition t = s.transition(i);
      if ( t instanceof RuleTransition ) {
        RuleTransition rt = (RuleTransition) t;
        Rule r = g.getRule(rt.ruleIndex);
        if ( rulesVisitedPerRuleCheck.contains((RuleStartState)t.target) ) {
          addRulesToCycle(enclosingRule, r);
        }
        else {
          // must visit if not already visited; mark target, pop when done
View Full Code Here

      lexEngine.reset();
      parser.reset();
      lexEngine.setInputStream(new ANTLRInputStream(s));
      CommonTokenStream tokens = new CommonTokenStream(lexEngine);
      parser.setInputStream(tokens);
      Rule r = g.rules.get(startRule);
      if ( r==null ) {
        return parser.getParseInfo().getDecisionInfo();
      }
      ParserRuleContext t = parser.parse(r.index);
//      try {
View Full Code Here

        gen.getTarget().getImplicitSetLabel(String.valueOf(ast.token.getTokenIndex()));
      d = getTokenLabelDecl(implLabel);
      ((TokenDecl)d).isImplicit = true;
    }
    else if ( ast.getType()==ANTLRParser.RULE_REF ) { // a rule reference?
      Rule r = g.getRule(ast.getText());
      String implLabel = gen.getTarget().getImplicitRuleLabel(ast.getText());
      String ctxName =
        gen.getTarget().getRuleFunctionContextStructName(r);
      d = new RuleContextDecl(this, implLabel, ctxName);
      ((RuleContextDecl)d).isImplicit = true;
View Full Code Here

    }
    if ( node.resolver.resolvesToListLabel(x.getText(), node) ) {
      chunks.add(new ListLabelRef(nodeContext,x.getText())); // $ids for ids+=ID etc...
      return;
    }
    Rule r = factory.getGrammar().getRule(x.getText());
    if ( r!=null ) {
      chunks.add(new LabelRef(nodeContext,getRuleLabel(x.getText()))); // $r for r rule ref
    }
  }
View Full Code Here

  }

  @Override
  public void nonLocalAttr(String expr, Token x, Token y) {
    gen.g.tool.log("action-translator", "nonLocalAttr "+x+"::"+y);
    Rule r = factory.getGrammar().getRule(x.getText());
    chunks.add(new NonLocalAttrRef(nodeContext, x.getText(), y.getText(), r.index));
  }
View Full Code Here

  }

  @Override
  public void setNonLocalAttr(String expr, Token x, Token y, Token rhs) {
    gen.g.tool.log("action-translator", "setNonLocalAttr "+x+"::"+y+"="+rhs);
    Rule r = factory.getGrammar().getRule(x.getText());
    List<ActionChunk> rhsChunks = translateActionChunk(factory,rf,rhs.getText(),node);
    SetNonLocalAttr s = new SetNonLocalAttr(nodeContext, x.getText(), y.getText(), r.index, rhsChunks);
    chunks.add(s);
  }
View Full Code Here

      stateNumber = ast.atnState.stateNumber;
    }

    this.name = ast.getText();
    CodeGenerator gen = factory.getGenerator();
    Rule r = factory.getGrammar().getRule(name);
    ctxName = gen.getTarget().getRuleFunctionContextStructName(r);

    // TODO: move to factory
    RuleFunction rf = factory.getCurrentRuleFunction();
    if ( labelAST!=null ) {
View Full Code Here

  }

  public List<Decl> getDeclForAltElement(GrammarAST t, String refLabelName, boolean needList) {
    List<Decl> decls = new ArrayList<Decl>();
    if ( t.getType()==RULE_REF ) {
      Rule rref = factory.getGrammar().getRule(t.getText());
      String ctxName = factory.getGenerator().getTarget()
               .getRuleFunctionContextStructName(rref);
      if ( needList) {
        if(factory.getGenerator().getTarget().supportsOverloadedMethods())
          decls.add( new ContextRuleListGetterDecl(factory, refLabelName, ctxName) );
View Full Code Here

      GrammarAST idAST = pair.a;
      String altLabel = pair.b;
      String label = idAST.getText();
      GrammarAST rrefAST = (GrammarAST)idAST.getParent().getChild(1);
      if ( rrefAST.getType() == ANTLRParser.RULE_REF ) {
        Rule targetRule = factory.getGrammar().getRule(rrefAST.getText());
        String ctxName = gen.getTarget().getRuleFunctionContextStructName(targetRule);
        RuleContextDecl d;
        if (idAST.getParent().getType() == ANTLRParser.ASSIGN) {
          d = new RuleContextDecl(factory, label, ctxName);
        }
View Full Code Here

TOP

Related Classes of org.antlr.v4.tool.Rule

Copyright © 2018 www.massapicom. 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.