public class JavaTarget extends Target
Modifier and Type | Class and Description |
---|---|
protected static class |
JavaTarget.JavaStringRenderer |
Modifier and Type | Field and Description |
---|---|
protected Set<String> |
badWords
Avoid grammar symbols in this set to prevent conflicts in gen'd code.
|
protected static String[] |
javaKeywords |
targetCharValueEscape
Constructor and Description |
---|
JavaTarget(CodeGenerator gen) |
Modifier and Type | Method and Description |
---|---|
protected void |
addBadWords() |
String |
encodeIntAsCharEscape(int v)
Assume 16-bit char
|
Set<String> |
getBadWords() |
int |
getSerializedATNSegmentLimit()
Gets the maximum number of 16-bit unsigned integers that can be encoded
in a single segment of the serialized ATN.
|
String |
getTargetStringLiteralFromANTLRStringLiteral(CodeGenerator generator,
String literal,
boolean addQuotes)
Convert from an ANTLR string literal found in a grammar file to an
equivalent string literal in the target language.
|
protected org.stringtemplate.v4.STGroup |
loadTemplates() |
protected boolean |
visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode) |
genFile, genListenerFile, genRecognizerHeaderFile, getAltLabelContextStructName, getCodeGenerator, getElementListName, getElementName, getImplicitRuleLabel, getImplicitSetLabel, getImplicitTokenLabel, getLanguage, getListLabel, getLoopCounter, getLoopLabel, getRuleFunctionContextStructName, getRuleFunctionContextStructName, getTargetStringLiteralFromString, getTargetStringLiteralFromString, getTemplates, getTokenTypeAsTargetLabel, getTokenTypesAsTargetLabels, grammarSymbolCausesIssueInGeneratedCode
protected static final String[] javaKeywords
public JavaTarget(CodeGenerator gen)
protected void addBadWords()
public String getTargetStringLiteralFromANTLRStringLiteral(CodeGenerator generator, String literal, boolean addQuotes)
'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.getTargetStringLiteralFromANTLRStringLiteral
in class Target
public String encodeIntAsCharEscape(int v)
Target
encodeIntAsCharEscape
in class Target
public int getSerializedATNSegmentLimit()
Target
getSerializedATNSegmentLimit
in class Target
SerializedATN.getSegments()
protected boolean visibleGrammarSymbolCausesIssueInGeneratedCode(GrammarAST idNode)
visibleGrammarSymbolCausesIssueInGeneratedCode
in class Target
protected org.stringtemplate.v4.STGroup loadTemplates()
loadTemplates
in class Target
Copyright © 1992–2014 ANTLR. All rights reserved.