Package org.antlr.codegen
Class CPPTarget
- java.lang.Object
-
- org.antlr.codegen.Target
-
- org.antlr.codegen.CPPTarget
-
public class CPPTarget extends Target
-
-
Field Summary
-
Fields inherited from class org.antlr.codegen.Target
targetCharValueEscape
-
-
Constructor Summary
Constructors Constructor Description CPPTarget()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
escapeChar(int c)
String
escapeString(String s)
Converts a String into a representation that can be use as a literal when surrounded by double-quotes.protected void
genRecognizerHeaderFile(Tool tool, CodeGenerator generator, Grammar grammar, org.antlr.stringtemplate.StringTemplate headerFileST, String extName)
int
getMaxCharValue(CodeGenerator codegen)
Character constants get truncated to this value.String
getTargetCharLiteralFromANTLRCharLiteral(CodeGenerator codegen, String literal)
Convert from an ANTLR char literal found in a grammar file to an equivalent char literal in the target language.String
getTargetStringLiteralFromANTLRStringLiteral(CodeGenerator codegen, String literal)
Convert from an ANTLR string literal found in a grammar file to an equivalent string literal in the target language.-
Methods inherited from class org.antlr.codegen.Target
encodeIntAsCharEscape, genRecognizerFile, getTarget64BitStringFromValue, getTargetStringLiteralFromString, getTargetStringLiteralFromString, getTokenTypeAsTargetLabel, isValidActionScope, performGrammarAnalysis, postProcessAction
-
-
-
-
Method Detail
-
escapeChar
public String escapeChar(int c)
-
escapeString
public String escapeString(String s)
Converts a String into a representation that can be use as a literal when surrounded by double-quotes. Used for escaping semantic predicate strings for exceptions.- Parameters:
s
- The String to be changed into a literal
-
genRecognizerHeaderFile
protected void genRecognizerHeaderFile(Tool tool, CodeGenerator generator, Grammar grammar, org.antlr.stringtemplate.StringTemplate headerFileST, String extName) throws IOException
- Overrides:
genRecognizerHeaderFile
in classTarget
- Throws:
IOException
-
getTargetCharLiteralFromANTLRCharLiteral
public String getTargetCharLiteralFromANTLRCharLiteral(CodeGenerator codegen, String literal)
Convert from an ANTLR char literal found in a grammar file to an equivalent char literal in the target language. For Java, this is the identify translation; i.e., '\n' -> '\n'. Most languages will be able to use this 1-to-1 mapping. Expect single quotes around the incoming literal. Depending on the charvocabulary the charliteral should be prefixed with a 'L'- Overrides:
getTargetCharLiteralFromANTLRCharLiteral
in classTarget
-
getTargetStringLiteralFromANTLRStringLiteral
public String getTargetStringLiteralFromANTLRStringLiteral(CodeGenerator codegen, String literal)
Convert from an ANTLR string literal found in a grammar file to an equivalent string literal in the target language. For Java, this is the identify translation; i.e., "\"\n" -> "\"\n". Most languages will be able to use this 1-to-1 mapping. Expect double quotes around the incoming literal. Depending on the charvocabulary the string should be prefixed with a 'L'- Overrides:
getTargetStringLiteralFromANTLRStringLiteral
in classTarget
-
getMaxCharValue
public int getMaxCharValue(CodeGenerator codegen)
Character constants get truncated to this value. TODO: This should be derived from the charVocabulary. Depending on it being 255 or 0xFFFF the templates should generate normal character constants or multibyte ones.- Overrides:
getMaxCharValue
in classTarget
-
-