Package org.antlr.v4.codegen.target
Class DartTarget
- java.lang.Object
-
- org.antlr.v4.codegen.Target
-
- org.antlr.v4.codegen.target.DartTarget
-
public class DartTarget extends Target
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<java.lang.String>badWordsprotected static java.lang.String[]javaKeywordsprivate static java.lang.ThreadLocal<org.stringtemplate.v4.STGroup>targetTemplatesThe Java target can cache the code generation templates.-
Fields inherited from class org.antlr.v4.codegen.Target
gen, targetCharValueEscape
-
-
Constructor Summary
Constructors Constructor Description DartTarget(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()intgetSerializedATNSegmentLimit()Gets the maximum number of 16-bit unsigned integers that can be encoded in a single segment of the serialized ATN.java.lang.StringgetTargetStringLiteralFromANTLRStringLiteral(CodeGenerator generator, java.lang.String literal, boolean addQuotes)Convert from an ANTLR string literal found in a grammar file to an equivalent string literal in the target language.java.lang.StringgetVersion()ANTLR tool should check output templates / target are compatible with tool code generation.protected org.stringtemplate.v4.STGrouploadTemplates()protected booleanvisibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)-
Methods inherited from class org.antlr.v4.codegen.Target
genFile, getAltLabelContextStructName, getBaseListenerFileName, getBaseVisitorFileName, getCodeGenerator, getElementListName, getElementName, getImplicitRuleLabel, getImplicitSetLabel, getImplicitTokenLabel, getInlineTestSetWordSize, getLanguage, getListenerFileName, getListLabel, getLoopCounter, getLoopLabel, getRecognizerFileName, getRuleFunctionContextStructName, getRuleFunctionContextStructName, getTargetStringLiteralFromString, getTargetStringLiteralFromString, getTemplates, getTokenTypeAsTargetLabel, getTokenTypesAsTargetLabels, getVisitorFileName, grammarSymbolCausesIssueInGeneratedCode, needsHeader, shouldUseUnicodeEscapeForCodePointInDoubleQuotedString, supportsOverloadedMethods, templatesExist, wantsBaseListener, wantsBaseVisitor
-
-
-
-
Field Detail
-
targetTemplates
private static final java.lang.ThreadLocal<org.stringtemplate.v4.STGroup> targetTemplates
The Java target can cache the code generation templates.
-
javaKeywords
protected static final java.lang.String[] javaKeywords
-
badWords
protected final java.util.Set<java.lang.String> badWords
-
-
Constructor Detail
-
DartTarget
public DartTarget(CodeGenerator gen)
-
-
Method Detail
-
getTargetStringLiteralFromANTLRStringLiteral
public java.lang.String getTargetStringLiteralFromANTLRStringLiteral(CodeGenerator generator, java.lang.String literal, boolean addQuotes)
Description copied from class:TargetConvert from an ANTLR string literal found in a grammar file to an equivalent string literal in the target language.
For Java, this is the translation
'a\n"'→"a\n\"". Expect single quotes around the incoming literal. Just flip the quotes and replace double quotes with\".Note that we have decided to allow people to use '\"' without penalty, so we must build the target string in a loop as
String.replace(char, char)cannot handle both\"and"without a lot of messing around.- Overrides:
getTargetStringLiteralFromANTLRStringLiteralin classTarget
-
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
-
getBadWords
public java.util.Set<java.lang.String> getBadWords()
-
addBadWords
protected void addBadWords()
-
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()
-
visibleGrammarSymbolCausesIssueInGeneratedCode
protected boolean visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
- Specified by:
visibleGrammarSymbolCausesIssueInGeneratedCodein classTarget
-
loadTemplates
protected org.stringtemplate.v4.STGroup loadTemplates()
- Overrides:
loadTemplatesin classTarget
-
encodeIntAsCharEscape
public java.lang.String encodeIntAsCharEscape(int v)
Description copied from class:TargetAssume 16-bit char- Overrides:
encodeIntAsCharEscapein 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
-
-