Package EDU.purdue.jtb.generate
Class UserFilesGenerator
java.lang.Object
EDU.purdue.jtb.generate.UserFilesGenerator
Class
UserFilesGenerator
contains methods to generate: CODEJAVA
- the (grammar) user nodes classes (genUserXxx, using
UserClassInfo
), - the hook interface and empty class files (genXxxEnterExitHook).
Class maintains a state, and is not supposed to be run in parallel threads (on the same grammar); however it internally uses different threads (streams) to generate the different user classes in parallel.
TESTCASE some to add-
Constructor Summary
ConstructorsConstructorDescriptionUserFilesGenerator
(JTBOptions aJopt, CommonCodeGenerator aCcg, List<UserClassInfo> aClasses) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionint
genEmtpyEnterExitHookFile
(File aHookDir) Generates the genEmtpyEnterExitHookFile (class source) file.int
genIEnterExitHookFile
(File aHookDir) Generates the IEnterExitHook (interface source) file.int
genUserNodesFiles
(File aNodesDir) Generates user nodes (classes source) files.void
Outputs the formatted nodes classes list.
-
Constructor Details
-
UserFilesGenerator
Constructor. Creates the syntaxtree and hook directories if they do not exist.- Parameters:
aJopt
- - the JTB optionsaCcg
- - theCommonCodeGenerator
aClasses
- - the list ofUserClassInfo
classes instances
-
-
Method Details
-
outputFormattedNodesClassesList
Outputs the formatted nodes classes list.- Parameters:
aPw
- - a PrintWriter to output on
-
genUserNodesFiles
Generates user nodes (classes source) files.- Parameters:
aNodesDir
- - the nodes directory File- Returns:
- the number of generated files
- Throws:
Exception
- - on any exception
-
genIEnterExitHookFile
Generates the IEnterExitHook (interface source) file.- Parameters:
aHookDir
- - the hook directory File- Returns:
- OK_RC or FILE_EXISTS_RC
- Throws:
IOException
- - if IO problem
-
genEmtpyEnterExitHookFile
Generates the genEmtpyEnterExitHookFile (class source) file.- Parameters:
aHookDir
- - the nodes directory File- Returns:
- OK_RC or FILE_EXISTS_RC
- Throws:
IOException
- - if IO problem
-