Package org.stringtemplate.v4

Examples of org.stringtemplate.v4.NumberRenderer


  }

  // --------- get transformed rules ----------------

  public String getArtificialOpPrecRule() {
    ST ruleST = recRuleTemplates.getInstanceOf("recRule");
    ruleST.add("ruleName", ruleName);
    ST ruleArgST = codegenTemplates.getInstanceOf("recRuleArg");
    ruleST.add("argName", ruleArgST);
    ST setResultST = codegenTemplates.getInstanceOf("recRuleSetResultAction");
    ruleST.add("setResultAction", setResultST);
    ruleST.add("userRetvals", retvals);

    LinkedHashMap<Integer, LeftRecursiveRuleAltInfo> opPrecRuleAlts = new LinkedHashMap<Integer, LeftRecursiveRuleAltInfo>();
    opPrecRuleAlts.putAll(binaryAlts);
    opPrecRuleAlts.putAll(ternaryAlts);
    opPrecRuleAlts.putAll(suffixAlts);
    for (int alt : opPrecRuleAlts.keySet()) {
      LeftRecursiveRuleAltInfo altInfo = opPrecRuleAlts.get(alt);
      ST altST = recRuleTemplates.getInstanceOf("recRuleAlt");
      ST predST = codegenTemplates.getInstanceOf("recRuleAltPredicate");
      predST.add("opPrec", precedence(alt));
      predST.add("ruleName", ruleName);
      altST.add("pred", predST);
      altST.add("alt", altInfo);
      altST.add("precOption", LeftRecursiveRuleTransformer.PRECEDENCE_OPTION_NAME);
      altST.add("opPrec", precedence(alt));
      ruleST.add("opAlts", altST);
View Full Code Here


      throw new IllegalStateException(String.format("No %s instance is available.", Tool.class.getName()));
    }

    StringBuilder buf = new StringBuilder();
    for (ANTLRMessage m : all) {
      ST st = tool.errMgr.getMessageTemplate(m);
      buf.append(st.render());
      buf.append("\n");
    }

    return buf.toString();
  }
View Full Code Here

      ATNFactory factory = new ParserATNFactory(g);
      if (g.isLexer()) factory = new LexerATNFactory((LexerGrammar) g);
      g.atn = factory.createATN();

      CodeGenerator gen = new CodeGenerator(g);
      ST outputFileST = gen.generateParser();

//      STViz viz = outputFileST.inspect();
//      try {
//        viz.waitForClose();
//      }
View Full Code Here

    System.out.println(msg);
  }

  @Override
  public void error(ANTLRMessage msg) {
    ST msgST = tool.errMgr.getMessageTemplate(msg);
    String outputMsg = msgST.render();
    if (tool.errMgr.formatWantsSingleLineMessage()) {
      outputMsg = outputMsg.replace('\n', ' ');
    }
    System.err.println(outputMsg);
  }
View Full Code Here

    System.err.println(outputMsg);
  }

  @Override
  public void warning(ANTLRMessage msg) {
    ST msgST = tool.errMgr.getMessageTemplate(msg);
    String outputMsg = msgST.render();
    if (tool.errMgr.formatWantsSingleLineMessage()) {
      outputMsg = outputMsg.replace('\n', ' ');
    }
    System.err.println(outputMsg);
  }
View Full Code Here

    if (lexerAction != null) {
      return action(ID, lexerAction);
    }

    // fall back to standard action generation for the command
    ST cmdST = codegenTemplates.getInstanceOf("Lexer" +
                          CharSupport.capitalize(ID.getText())+
                          "Command");
    if (cmdST == null) {
      g.tool.errMgr.grammarError(ErrorType.INVALID_LEXER_COMMAND, g.fileName, ID.token, ID.getText());
      return epsilon(ID);
    }

    if (cmdST.impl.formalArguments == null || !cmdST.impl.formalArguments.containsKey("arg")) {
      g.tool.errMgr.grammarError(ErrorType.UNWANTED_LEXER_COMMAND_ARGUMENT, g.fileName, ID.token, ID.getText());
      return epsilon(ID);
    }

    cmdST.add("arg", arg.getText());
    return action(cmdST.render());
  }
View Full Code Here

    if (lexerAction != null) {
      return action(ID, lexerAction);
    }

    // fall back to standard action generation for the command
    ST cmdST = codegenTemplates.getInstanceOf("Lexer" +
                          CharSupport.capitalize(ID.getText())+
                          "Command");
    if (cmdST == null) {
      g.tool.errMgr.grammarError(ErrorType.INVALID_LEXER_COMMAND, g.fileName, ID.token, ID.getText());
      return epsilon(ID);
    }

    if (cmdST.impl.formalArguments != null && cmdST.impl.formalArguments.containsKey("arg")) {
      g.tool.errMgr.grammarError(ErrorType.MISSING_LEXER_COMMAND_ARGUMENT, g.fileName, ID.token, ID.getText());
      return epsilon(ID);
    }

    return action(cmdST.render());
  }
View Full Code Here

    // error information possible, but actually writing output files stops
    // after the first error is reported
    int errorCount = g.tool.errMgr.getNumErrors();

    if ( g.isLexer() ) {
      ST lexer = gen.generateLexer();
      if (g.tool.errMgr.getNumErrors() == errorCount) {
        writeRecognizer(lexer, gen);
      }
    }
    else {
      ST parser = gen.generateParser();
      if (g.tool.errMgr.getNumErrors() == errorCount) {
        writeRecognizer(parser, gen);
      }
      if ( g.tool.gen_listener ) {
        ST listener = gen.generateListener();
        if (g.tool.errMgr.getNumErrors() == errorCount) {
          gen.writeListener(listener);
        }
        if (gen.getTarget().wantsBaseListener()) {
          ST baseListener = gen.generateBaseListener();
          if (g.tool.errMgr.getNumErrors() == errorCount) {
            gen.writeBaseListener(baseListener);
          }
        }
      }
      if ( g.tool.gen_visitor ) {
        ST visitor = gen.generateVisitor();
        if (g.tool.errMgr.getNumErrors() == errorCount) {
          gen.writeVisitor(visitor);
        }
        if (gen.getTarget().wantsBaseVisitor()) {
          ST baseVisitor = gen.generateBaseVisitor();
          if (g.tool.errMgr.getNumErrors() == errorCount) {
            gen.writeBaseVisitor(baseVisitor);
          }
        }
      }
View Full Code Here

      column = offendingToken.getCharPositionInLine();
    }
    if ( g!=null ) {
      file = g.getFileName();
    }
    ST st = getMessageTemplate();
    if ( arg!=null ) {
      st.add("arg", arg);
    }
    if ( arg2!=null ) {
      st.add("arg2", arg2);
    }
    return super.toString(st);
  }
View Full Code Here

    String fileName = probe.dfa.nfa.grammar.getFileName();
    if ( fileName!=null ) {
      file = fileName;
    }

    ST st = getMessageTemplate();

    if ( probe.dfa.isTokensRuleDecision() ) {
      // alts are token rules, convert to the names instead of numbers
      for (int i = 0; i < alts.size(); i++) {
        Integer altI = alts.get(i);
        String tokenName =
          probe.getTokenNameForTokensRuleAlt(altI);
        // reset the line/col to the token definition
        NFAState ruleStart =
          probe.dfa.nfa.grammar.getRuleStartState(tokenName);
        line = ruleStart.associatedASTNode.getLine();
        column = ruleStart.associatedASTNode.getCharPositionInLine();
        st.add("tokens", tokenName);
      }
    }
    else {
      // regular alt numbers, show the alts
      st.add("alts", alts);
    }

    return super.toString(st);
  }
View Full Code Here

TOP

Related Classes of org.stringtemplate.v4.NumberRenderer

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.