Class DartTarget


  • public class DartTarget
    extends Target
    • 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
    • Method Detail

      • getTargetStringLiteralFromANTLRStringLiteral

        public java.lang.String getTargetStringLiteralFromANTLRStringLiteral​(CodeGenerator generator,
                                                                             java.lang.String literal,
                                                                             boolean addQuotes)
        Description copied from class: Target

        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 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:
        getTargetStringLiteralFromANTLRStringLiteral in class Target
      • 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 class Target
      • 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 class Target
        Returns:
        the serialized ATN segment limit
        See Also:
        SerializedATN.getSegments()
      • loadTemplates

        protected org.stringtemplate.v4.STGroup loadTemplates()
        Overrides:
        loadTemplates in class Target
      • encodeIntAsCharEscape

        public java.lang.String encodeIntAsCharEscape​(int v)
        Description copied from class: Target
        Assume 16-bit char
        Overrides:
        encodeIntAsCharEscape in class Target
      • 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 to sb.
        Specified by:
        appendUnicodeEscapedCodePoint in class Target