public String getRecognizerFileName(boolean header) { Target target = getTarget(); if (target == null) { throw new UnsupportedOperationException("Cannot generate code without a target."); } return target.getRecognizerFileName(header); }
public String[][] getSegments() { List<String[]> segments = new ArrayList<String[]>(); int segmentLimit = factory.getGenerator().getTarget().getSerializedATNSegmentLimit(); for (int i = 0; i < serialized.size(); i += segmentLimit) { List<String> currentSegment = serialized.subList(i, Math.min(i + segmentLimit, serialized.size())); segments.add(currentSegment.toArray(new String[currentSegment.size()])); } return segments.toArray(new String[segments.size()][]); } }
public String[][] getSegments() { List<String[]> segments = new ArrayList<String[]>(); int segmentLimit = factory.getGenerator().getTarget().getSerializedATNSegmentLimit(); for (int i = 0; i < serialized.size(); i += segmentLimit) { List<String> currentSegment = serialized.subList(i, Math.min(i + segmentLimit, serialized.size())); segments.add(currentSegment.toArray(new String[currentSegment.size()])); } return segments.toArray(new String[segments.size()][]); } }
public void writeBaseListener(ST outputFileST, boolean header) { Target target = getTarget(); if (target == null) { throw new UnsupportedOperationException("Cannot generate code without a target."); } target.genFile(g, outputFileST, getBaseListenerFileName(header)); }
public StarBlock(OutputModelFactory factory, GrammarAST blkOrEbnfRootAST, List<CodeBlockForAlt> alts) { super(factory, blkOrEbnfRootAST, alts); loopLabel = factory.getGenerator().getTarget().getLoopLabel(blkOrEbnfRootAST); StarLoopEntryState star = (StarLoopEntryState)blkOrEbnfRootAST.atnState; loopBackStateNumber = star.loopBackState.stateNumber; decision = star.decision; } }
public StarBlock(OutputModelFactory factory, GrammarAST blkOrEbnfRootAST, List<CodeBlockForAlt> alts) { super(factory, blkOrEbnfRootAST, alts); loopLabel = factory.getGenerator().getTarget().getLoopLabel(blkOrEbnfRootAST); StarLoopEntryState star = (StarLoopEntryState)blkOrEbnfRootAST.atnState; loopBackStateNumber = star.loopBackState.stateNumber; decision = star.decision; } }
public AltLabelStructDecl(OutputModelFactory factory, Rule r, int altNum, String label) { super(factory, r); this.altNum = altNum; this.name = // override name set in super to the label ctx factory.getGenerator().getTarget().getAltLabelContextStructName(label); derivedFromName = label; }
public List<String[]> getAltLookaheadAsStringLists(IntervalSet[] altLookSets) { List<String[]> altLook = new ArrayList<String[]>(); for (IntervalSet s : altLookSets) { altLook.add(factory.getGenerator().getTarget().getTokenTypesAsTargetLabels(factory.getGrammar(), s.toArray())); } return altLook; }
public SerializedATN(OutputModelFactory factory, ATN atn) { super(factory); IntegerList data = ATNSerializer.getSerialized(atn); serialized = new ArrayList<String>(data.size()); for (int c : data.toArray()) { String encoded = factory.getGenerator().getTarget().encodeIntAsCharEscape(c == -1 ? Character.MAX_VALUE : c); serialized.add(encoded); } // System.out.println(ATNSerializer.getDecoded(factory.getGrammar(), atn)); }
public LexerATNFactory(LexerGrammar g) { super(g); // use codegen to get correct language templates for lexer commands String language = g.getOptionString("language"); CodeGenerator gen = new CodeGenerator(g.tool, null, language); Target target = gen.getTarget(); codegenTemplates = target != null ? target.getTemplates() : null; }
public void writeVocabFile() { // write out the vocab interchange file; used by antlr, // does not change per target ST tokenVocabSerialization = getTokenVocabOutput(); String fileName = getVocabFileName(); if ( fileName!=null ) { getTarget().genFile(g, tokenVocabSerialization, fileName); } }
public void writeVocabFile() { // write out the vocab interchange file; used by antlr, // does not change per target ST tokenVocabSerialization = getTokenVocabOutput(); String fileName = getVocabFileName(); if ( fileName!=null ) { getTarget().genFile(g, tokenVocabSerialization, fileName); } }
public AddToLabelList getAddToListOpIfListLabelPresent(LabeledOp op, GrammarAST label) { AddToLabelList labelOp = null; if ( label!=null && label.parent.getType()==ANTLRParser.PLUS_ASSIGN ) { String listLabel = gen.getTarget().getListLabel(label.getText()); labelOp = new AddToLabelList(this, listLabel, op.getLabels().get(0)); } return labelOp; }
public StructDecl(OutputModelFactory factory, Rule r) { super(factory, factory.getGenerator().getTarget().getRuleFunctionContextStructName(r)); addDispatchMethods(r); derivedFromName = r.name; provideCopyFrom = r.hasAltSpecificContexts(); }
public StructDecl(OutputModelFactory factory, Rule r) { super(factory, factory.getGenerator().getTarget().getRuleFunctionContextStructName(r)); addDispatchMethods(r); derivedFromName = r.name; provideCopyFrom = r.hasAltSpecificContexts(); }
public StructDecl(OutputModelFactory factory, Rule r) { super(factory, factory.getGenerator().getTarget().getRuleFunctionContextStructName(r)); addDispatchMethods(r); derivedFromName = r.name; provideCopyFrom = r.hasAltSpecificContexts(); }
public MatchToken(OutputModelFactory factory, TerminalAST ast) { super(factory, ast); Grammar g = factory.getGrammar(); CodeGenerator gen = factory.getGenerator(); ttype = g.getTokenType(ast.getText()); name = gen.getTarget().getTokenTypeAsTargetLabel(g, ttype); }
public void writeHeaderFile() { String fileName = getHeaderFileName(); if ( fileName==null ) return; if ( getTemplates().isDefined("headerFile") ) { ST extST = getTemplates().getInstanceOf("headerFileExtension"); ST headerFileST = null; // TODO: don't hide this header file generation here! getTarget().genRecognizerHeaderFile(g, headerFileST, extST.render(lineWidth)); } }
public MatchSet(OutputModelFactory factory, GrammarAST ast) { super(factory, ast); SetTransition st = (SetTransition)ast.atnState.transition(0); int wordSize = factory.getGenerator().getTarget().getInlineTestSetWordSize(); expr = new TestSetInline(factory, null, st.set, wordSize); Decl d = new TokenTypeDecl(factory, expr.varName); factory.getCurrentRuleFunction().addLocalDecl(d); capture = new CaptureNextTokenType(factory,expr.varName); } }
public MatchSet(OutputModelFactory factory, GrammarAST ast) { super(factory, ast); SetTransition st = (SetTransition)ast.atnState.transition(0); int wordSize = factory.getGenerator().getTarget().getInlineTestSetWordSize(); expr = new TestSetInline(factory, null, st.set, wordSize); Decl d = new TokenTypeDecl(factory, expr.varName); factory.getCurrentRuleFunction().addLocalDecl(d); capture = new CaptureNextTokenType(factory,expr.varName); } }