Package org.antlr.v4.codegen.target
Class CppTarget
- java.lang.Object
-
- org.antlr.v4.codegen.Target
-
- org.antlr.v4.codegen.target.CppTarget
-
public class CppTarget extends Target
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<java.lang.String>badWordsAvoid grammar symbols in this set to prevent conflicts in gen'd code.protected static java.lang.String[]cppKeywords-
Fields inherited from class org.antlr.v4.codegen.Target
gen, targetCharValueEscape
-
-
Constructor Summary
Constructors Constructor Description CppTarget(CodeGenerator gen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddBadWords()protected voidappendUnicodeEscapedCodePoint(int codePoint, java.lang.StringBuilder sb)Escape the Unicode code point appropriately for this language and append the escaped value tosb.java.lang.StringencodeIntAsCharEscape(int v)Assume 16-bit charjava.util.Set<java.lang.String>getBadWords()java.lang.StringgetBaseListenerFileName(boolean header)A given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.java.lang.StringgetBaseVisitorFileName(boolean header)A given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.java.lang.StringgetListenerFileName(boolean header)A given grammar T, return the listener name such as TListener.java, if we're using the Java target.java.lang.StringgetRecognizerFileName(boolean header)Generate TParser.java and TLexer.java from T.g4 if combined, else just use T.java as output regardless of type.intgetSerializedATNSegmentLimit()Gets the maximum number of 16-bit unsigned integers that can be encoded in a single segment of the serialized ATN.java.lang.StringgetVersion()ANTLR tool should check output templates / target are compatible with tool code generation.java.lang.StringgetVisitorFileName(boolean header)A given grammar T, return the visitor name such as TVisitor.java, if we're using the Java target.protected org.stringtemplate.v4.STGrouploadTemplates()booleanneedsHeader()protected booleanvisibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)-
Methods inherited from class org.antlr.v4.codegen.Target
genFile, getAltLabelContextStructName, getCodeGenerator, getElementListName, getElementName, getImplicitRuleLabel, getImplicitSetLabel, getImplicitTokenLabel, getInlineTestSetWordSize, getLanguage, getListLabel, getLoopCounter, getLoopLabel, getRuleFunctionContextStructName, getRuleFunctionContextStructName, getTargetStringLiteralFromANTLRStringLiteral, getTargetStringLiteralFromString, getTargetStringLiteralFromString, getTemplates, getTokenTypeAsTargetLabel, getTokenTypesAsTargetLabels, grammarSymbolCausesIssueInGeneratedCode, supportsOverloadedMethods, templatesExist, wantsBaseListener, wantsBaseVisitor
-
-
-
-
Constructor Detail
-
CppTarget
public CppTarget(CodeGenerator gen)
-
-
Method Detail
-
getVersion
public java.lang.String getVersion()
Description copied from class:TargetANTLR tool should check output templates / target are compatible with tool code generation. For now, a simple string match used on x.y of x.y.z scheme. We use a method to avoid mismatches between a template called VERSION. This value is checked against Tool.VERSION during load of templates. This additional method forces all targets 4.3 and beyond to add this method.- Specified by:
getVersionin classTarget
-
needsHeader
public boolean needsHeader()
- Overrides:
needsHeaderin classTarget
-
getBadWords
public java.util.Set<java.lang.String> getBadWords()
-
addBadWords
protected void addBadWords()
-
encodeIntAsCharEscape
public java.lang.String encodeIntAsCharEscape(int v)
Description copied from class:TargetAssume 16-bit char- Overrides:
encodeIntAsCharEscapein classTarget
-
getSerializedATNSegmentLimit
public int getSerializedATNSegmentLimit()
Description copied from class:TargetGets the maximum number of 16-bit unsigned integers that can be encoded in a single segment of the serialized ATN.- Overrides:
getSerializedATNSegmentLimitin classTarget- Returns:
- the serialized ATN segment limit
- See Also:
SerializedATN.getSegments()
-
getRecognizerFileName
public java.lang.String getRecognizerFileName(boolean header)
Description copied from class:TargetGenerate TParser.java and TLexer.java from T.g4 if combined, else just use T.java as output regardless of type.- Overrides:
getRecognizerFileNamein classTarget
-
getListenerFileName
public java.lang.String getListenerFileName(boolean header)
Description copied from class:TargetA given grammar T, return the listener name such as TListener.java, if we're using the Java target.- Overrides:
getListenerFileNamein classTarget
-
getVisitorFileName
public java.lang.String getVisitorFileName(boolean header)
Description copied from class:TargetA given grammar T, return the visitor name such as TVisitor.java, if we're using the Java target.- Overrides:
getVisitorFileNamein classTarget
-
getBaseListenerFileName
public java.lang.String getBaseListenerFileName(boolean header)
Description copied from class:TargetA given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.- Overrides:
getBaseListenerFileNamein classTarget
-
getBaseVisitorFileName
public java.lang.String getBaseVisitorFileName(boolean header)
Description copied from class:TargetA given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.- Overrides:
getBaseVisitorFileNamein classTarget
-
visibleGrammarSymbolCausesIssueInGeneratedCode
protected boolean visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
- Specified by:
visibleGrammarSymbolCausesIssueInGeneratedCodein classTarget
-
loadTemplates
protected org.stringtemplate.v4.STGroup loadTemplates()
- Overrides:
loadTemplatesin classTarget
-
appendUnicodeEscapedCodePoint
protected void appendUnicodeEscapedCodePoint(int codePoint, java.lang.StringBuilder sb)Description copied from class:TargetEscape the Unicode code point appropriately for this language and append the escaped value tosb.- Specified by:
appendUnicodeEscapedCodePointin classTarget
-
-