Package org.antlr.v4.codegen.target
Class SwiftTarget
- java.lang.Object
-
- org.antlr.v4.codegen.Target
-
- org.antlr.v4.codegen.target.SwiftTarget
-
public class SwiftTarget extends Target
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SwiftTarget.SwiftStringRenderer
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<java.lang.String>
badWords
Avoid grammar symbols in this set to prevent conflicts in gen'd code.java.lang.String
lexerAtnJSON
java.lang.String
parserAtnJSON
protected static java.lang.String[]
swiftKeywords
private static java.lang.ThreadLocal<org.stringtemplate.v4.STGroup>
targetTemplates
The Swift target can cache the code generation templates.-
Fields inherited from class org.antlr.v4.codegen.Target
gen, targetCharValueEscape
-
-
Constructor Summary
Constructors Constructor Description SwiftTarget(CodeGenerator gen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addBadWords()
protected void
appendUnicodeEscapedCodePoint(int codePoint, java.lang.StringBuilder sb)
Escape the Unicode code point appropriately for this language and append the escaped value tosb
.protected void
genFile(Grammar g, org.stringtemplate.v4.ST outputFileST, java.lang.String fileName)
java.util.Set<java.lang.String>
getBadWords()
private java.lang.String
getLexerOrParserATNJson(Grammar g, java.lang.String fileName)
int
getSerializedATNSegmentLimit()
Gets the maximum number of 16-bit unsigned integers that can be encoded in a single segment of the serialized ATN.java.lang.String
getVersion()
ANTLR tool should check output templates / target are compatible with tool code generation.protected org.stringtemplate.v4.STGroup
loadTemplates()
java.lang.String
serializeTojson(ATN atn)
protected boolean
visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
private void
writeFile(java.lang.String content, Grammar g, java.lang.String fileName)
-
Methods inherited from class org.antlr.v4.codegen.Target
encodeIntAsCharEscape, getAltLabelContextStructName, getBaseListenerFileName, getBaseVisitorFileName, getCodeGenerator, getElementListName, getElementName, getImplicitRuleLabel, getImplicitSetLabel, getImplicitTokenLabel, getInlineTestSetWordSize, getLanguage, getListenerFileName, getListLabel, getLoopCounter, getLoopLabel, getRecognizerFileName, getRuleFunctionContextStructName, getRuleFunctionContextStructName, getTargetStringLiteralFromANTLRStringLiteral, getTargetStringLiteralFromString, getTargetStringLiteralFromString, getTemplates, getTokenTypeAsTargetLabel, getTokenTypesAsTargetLabels, getVisitorFileName, grammarSymbolCausesIssueInGeneratedCode, needsHeader, supportsOverloadedMethods, templatesExist, wantsBaseListener, wantsBaseVisitor
-
-
-
-
Field Detail
-
targetTemplates
private static final java.lang.ThreadLocal<org.stringtemplate.v4.STGroup> targetTemplates
The Swift target can cache the code generation templates.
-
swiftKeywords
protected static final java.lang.String[] swiftKeywords
-
badWords
protected final java.util.Set<java.lang.String> badWords
Avoid grammar symbols in this set to prevent conflicts in gen'd code.
-
lexerAtnJSON
public java.lang.String lexerAtnJSON
-
parserAtnJSON
public java.lang.String parserAtnJSON
-
-
Constructor Detail
-
SwiftTarget
public SwiftTarget(CodeGenerator gen)
-
-
Method Detail
-
getVersion
public java.lang.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
-
getBadWords
public java.util.Set<java.lang.String> getBadWords()
-
addBadWords
protected void addBadWords()
-
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()
-
visibleGrammarSymbolCausesIssueInGeneratedCode
protected boolean visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
- Specified by:
visibleGrammarSymbolCausesIssueInGeneratedCode
in classTarget
-
genFile
protected void genFile(Grammar g, org.stringtemplate.v4.ST outputFileST, java.lang.String fileName)
-
getLexerOrParserATNJson
private java.lang.String getLexerOrParserATNJson(Grammar g, java.lang.String fileName)
-
writeFile
private void writeFile(java.lang.String content, Grammar g, java.lang.String fileName)
-
loadTemplates
protected org.stringtemplate.v4.STGroup loadTemplates()
- Overrides:
loadTemplates
in classTarget
-
serializeTojson
public java.lang.String serializeTojson(ATN atn)
-
appendUnicodeEscapedCodePoint
protected void appendUnicodeEscapedCodePoint(int codePoint, java.lang.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
-
-