Package org.antlr.v4.codegen.target
Class GoTarget
- java.lang.Object
-
- org.antlr.v4.codegen.Target
-
- org.antlr.v4.codegen.target.GoTarget
-
public class GoTarget extends Target
- Author:
- Peter Boyer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
GoTarget.JavaStringRenderer
-
Field Summary
-
Fields inherited from class org.antlr.v4.codegen.Target
gen, targetCharValueEscape
-
-
Constructor Summary
Constructors Constructor Description GoTarget(CodeGenerator gen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addBadWords()
protected void
appendUnicodeEscapedCodePoint(int codePoint, StringBuilder sb)
Escape the Unicode code point appropriately for this language and append the escaped value tosb
.String
encodeIntAsCharEscape(int v)
Assume 16-bit charprotected void
genFile(Grammar g, org.stringtemplate.v4.ST outputFileST, String fileName)
Set<String>
getBadWords()
String
getBaseListenerFileName(boolean header)
A given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.String
getBaseVisitorFileName(boolean header)
A given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.int
getInlineTestSetWordSize()
How many bits should be used to do inline token type tests? Java assumes a 64-bit word for bitsets.String
getListenerFileName(boolean header)
A given grammar T, return the listener name such as TListener.java, if we're using the Java target.String
getRecognizerFileName(boolean header)
Generate TParser.java and TLexer.java from T.g4 if combined, else just use T.java as output regardless of type.int
getSerializedATNSegmentLimit()
Gets the maximum number of 16-bit unsigned integers that can be encoded in a single segment of the serialized ATN.String
getVersion()
ANTLR tool should check output templates / target are compatible with tool code generation.String
getVisitorFileName(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.STGroup
loadTemplates()
protected boolean
visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
-
Methods inherited from class org.antlr.v4.codegen.Target
getAltLabelContextStructName, getCodeGenerator, getElementListName, getElementName, getImplicitRuleLabel, getImplicitSetLabel, getImplicitTokenLabel, getLanguage, getListLabel, getLoopCounter, getLoopLabel, getRuleFunctionContextStructName, getRuleFunctionContextStructName, getTargetStringLiteralFromANTLRStringLiteral, getTargetStringLiteralFromString, getTargetStringLiteralFromString, getTemplates, getTokenTypeAsTargetLabel, getTokenTypesAsTargetLabels, grammarSymbolCausesIssueInGeneratedCode, needsHeader, supportsOverloadedMethods, templatesExist, wantsBaseListener, wantsBaseVisitor
-
-
-
-
Constructor Detail
-
GoTarget
public GoTarget(CodeGenerator gen)
-
-
Method Detail
-
getVersion
public String getVersion()
Description copied from class:Target
ANTLR 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:
getVersion
in classTarget
-
addBadWords
protected void addBadWords()
-
encodeIntAsCharEscape
public String encodeIntAsCharEscape(int v)
Description copied from class:Target
Assume 16-bit char- Overrides:
encodeIntAsCharEscape
in classTarget
-
getSerializedATNSegmentLimit
public int getSerializedATNSegmentLimit()
Description copied from class:Target
Gets the maximum number of 16-bit unsigned integers that can be encoded in a single segment of the serialized ATN.- Overrides:
getSerializedATNSegmentLimit
in classTarget
- Returns:
- the serialized ATN segment limit
- See Also:
SerializedATN.getSegments()
-
getInlineTestSetWordSize
public int getInlineTestSetWordSize()
Description copied from class:Target
How many bits should be used to do inline token type tests? Java assumes a 64-bit word for bitsets. Must be a valid wordsize for your target like 8, 16, 32, 64, etc...- Overrides:
getInlineTestSetWordSize
in classTarget
-
visibleGrammarSymbolCausesIssueInGeneratedCode
protected boolean visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
- Specified by:
visibleGrammarSymbolCausesIssueInGeneratedCode
in classTarget
-
loadTemplates
protected org.stringtemplate.v4.STGroup loadTemplates()
- Overrides:
loadTemplates
in classTarget
-
getRecognizerFileName
public String getRecognizerFileName(boolean header)
Description copied from class:Target
Generate TParser.java and TLexer.java from T.g4 if combined, else just use T.java as output regardless of type.- Overrides:
getRecognizerFileName
in classTarget
-
getListenerFileName
public String getListenerFileName(boolean header)
A given grammar T, return the listener name such as TListener.java, if we're using the Java target.- Overrides:
getListenerFileName
in classTarget
-
getVisitorFileName
public String getVisitorFileName(boolean header)
A given grammar T, return the visitor name such as TVisitor.java, if we're using the Java target.- Overrides:
getVisitorFileName
in classTarget
-
getBaseListenerFileName
public String getBaseListenerFileName(boolean header)
A given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.- Overrides:
getBaseListenerFileName
in classTarget
-
getBaseVisitorFileName
public String getBaseVisitorFileName(boolean header)
A given grammar T, return a blank listener implementation such as TBaseListener.java, if we're using the Java target.- Overrides:
getBaseVisitorFileName
in classTarget
-
appendUnicodeEscapedCodePoint
protected void appendUnicodeEscapedCodePoint(int codePoint, StringBuilder sb)
Description copied from class:Target
Escape the Unicode code point appropriately for this language and append the escaped value tosb
.- Specified by:
appendUnicodeEscapedCodePoint
in classTarget
-
-