Class CodeGenerator

  • Direct Known Subclasses:
    LexGen, ParseGen

    public class CodeGenerator
    extends java.lang.Object
    • Field Detail

      • mainBuffer

        protected java.lang.StringBuffer mainBuffer
      • includeBuffer

        protected java.lang.StringBuffer includeBuffer
      • staticsBuffer

        protected java.lang.StringBuffer staticsBuffer
      • outputBuffer

        protected java.lang.StringBuffer outputBuffer
      • cline

        protected int cline
      • ccol

        protected int ccol
    • Constructor Detail

      • CodeGenerator

        public CodeGenerator()
    • Method Detail

      • genStringLiteralArrayCPP

        public void genStringLiteralArrayCPP​(java.lang.String varName,
                                             java.lang.String[] arr)
      • genStringLiteralInCPP

        public void genStringLiteralInCPP​(java.lang.String s)
      • genCodeLine

        public void genCodeLine​(java.lang.Object... code)
      • genCode

        public void genCode​(java.lang.Object... code)
      • saveOutput

        public void saveOutput​(java.lang.String fileName)
      • saveOutput

        public void saveOutput​(java.lang.String fileName,
                               java.lang.StringBuffer sb)
      • printTokenSetup

        protected void printTokenSetup​(Token t)
      • printTokenList

        protected void printTokenList​(java.util.List<Token> list)
      • printTokenOnly

        protected void printTokenOnly​(Token t)
      • getStringForTokenOnly

        protected java.lang.String getStringForTokenOnly​(Token t)
      • printToken

        protected void printToken​(Token t)
      • getStringToPrint

        protected java.lang.String getStringToPrint​(Token t)
      • printLeadingComments

        protected void printLeadingComments​(Token t)
      • getLeadingComments

        protected java.lang.String getLeadingComments​(Token t)
      • printTrailingComments

        protected void printTrailingComments​(Token t)
      • getTrailingComments

        protected java.lang.String getTrailingComments​(Token t)
      • getGeneratedCode

        public java.lang.String getGeneratedCode()
        for testing
      • genAnnotation

        public void genAnnotation​(java.lang.String ann)
        Generate annotation. @XX syntax for java, comments in C++
      • genModifier

        public void genModifier​(java.lang.String mod)
        Generate a modifier
      • genClassStart

        public void genClassStart​(java.lang.String mod,
                                  java.lang.String name,
                                  java.lang.String[] superClasses,
                                  java.lang.String[] superInterfaces)
        Generate a class with a given name, an array of superclass and another array of super interfaes
      • isJavaLanguage

        protected boolean isJavaLanguage()
      • switchToMainFile

        public void switchToMainFile()
      • switchToStaticsFile

        public void switchToStaticsFile()
      • switchToIncludeFile

        public void switchToIncludeFile()
      • generateMethodDefHeader

        public void generateMethodDefHeader​(java.lang.String modsAndRetType,
                                            java.lang.String className,
                                            java.lang.String nameAndParams)
      • generateMethodDefHeader

        public void generateMethodDefHeader​(java.lang.String qualifiedModsAndRetType,
                                            java.lang.String className,
                                            java.lang.String nameAndParams,
                                            java.lang.String exceptions)
      • getClassQualifier

        protected java.lang.String getClassQualifier​(java.lang.String className)
      • getCharStreamName

        public static java.lang.String getCharStreamName()
      • writeTemplate

        protected void writeTemplate​(java.lang.String name,
                                     java.util.Map<java.lang.String,​java.lang.Object> options,
                                     java.lang.Object... additionalOptions)
                              throws java.io.IOException
        Throws:
        java.io.IOException