* Copy the file simplejava.jj from the previous project into this directory. * Create the file SemanticAnalyzer.java, which implements the interface ASTVisitor.java * Compile with: % javacc simplejava.jj % javac *.java * Test with % java TestSementic Included files: TestParser.java AST definition classes ASTArrayVariable.java 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 TestSemantic.java Class to test the semantic analyzer queens.sjava test1.sjavae test2.sjava test3.sjava test4.sjava test5.sjava test6.sjava test7.sjava