* Copy the file simplejava.jj from the previous project into this directory. * Copy the file SemanticAnalyzer.java from the previous project into this directory * Modify AATBuildTree so that the functions return the appropriate trees (instead of null) * Modify SemanticAnalyzer.java so that it returns the interface ASTVisitor.java * Compile with: % javacc simplejava.jj % javac *.java * Test with % java TestAATBuildTree (to test function calls in AATBuildTree.java) % java TestAssembly (This test program should print out both the AST and AAT for the program , and then run an interpreter on the generated AAT) Included files: AATBuildTree.java AAT defitinion classes AATCallExpression.java AATCallStatement.java AATConditionalJump.java AATConstant.java AATEmpty.java AATExpression.java AATHalt.java AATInterpreter.java AATJump.java AATLabel.java AATMemory.java AATMove.java AATOperator.java AATPrintTree.java AATRegister.java AATReturn.java AATSequential.java AATStatement.java AATVisitor.java ASTArrayVariable.java AST definition classes ASTAssignmentStatement.java ASTBaseVariable.java ASTBooleanLiteral.java ASTClass.java ASTClassVariable.java ASTClasses.java ASTDoWhileStatement.java ASTEmptyStatement.java ASTExpression.java ASTForStatement.java ASTFormal.java ASTFormals.java ASTFunction.java ASTFunctionCallExpression.java ASTFunctionCallStatement.java ASTFunctionDefinition.java ASTFunctionDefinitions.java ASTIfStatement.java ASTInstanceVariableDef.java ASTInstanceVariableDefs.java ASTIntegerLiteral.java ASTNewArrayExpression.java ASTNewClassExpression.java ASTOperatorExpression.java ASTPrintTree.java ASTProgram.java ASTPrototype.java ASTReturnStatement.java ASTStatement.java ASTStatements.java ASTUnaryOperatorExpression.java ASTVariable.java ASTVariableDefStatement.java ASTVariableExpression.java ASTVisitor.java ASTWhileStatement.java Type.java Classes for defining simpleJava types ArrayType.java BooleanType.java ClassType.java IntegerType.java VoidType.java CompError.java Class for reporting compile-time errors FunctionEntry.java Classes for implementing symbol tables FunctionEnvironment.java HashTable.java TypeEntry.java TypeEnvironment.java VariableEnvironment.java VariableEntry.java Label.java MachineDependent.java Register.java TestAATBuildTree.java Main program for testing AATBuildTree TestAssembly.java Main program for testing assembly generator queens.sjava Sample simpleJava programs test1.sjavae test2.sjava test3.sjava test4.sjava