COP5555 HW5 CodeGenVisitor Help:

1. Make sure your HW submission has "cop5555.jar" file in it.
   It should includes: cop5555/Scanner.java, cop5555/Parser.java, cop5555/SyntaxException.java, cop5555/ContextVisitor.java, cop5555/ContextException.java, cop5555/CodeGenVisitor.java

2. If you added fields and methods to the AST nodes, do please submit cop5555_ast package as well,
   but if you did not make any modifications to this package, please do not submit.

3. Don't change cop5555_tokens package or given runtime.jar

4. Don't submit your .class files

5. Make sure Parser.parse(), ContextVisitor.visitProgram(), and CodeGenVisitor.visitProgram() methods are both public.

6. This is a code for simple test. Following table shows expected output.

import java.io.*;
import cop5555.*;
import cop5555_ast.*;

public class CodeGenTest
{
  public static void main(String[] args) throws IOException
  {
   BufferedReader r;
   PrintStream out;
   if (args.length == 0)
   {
    System.out.println("error: missing input file");
    System.exit(1);
   }
   r = new BufferedReader(new FileReader(args[0]));
   Parser parser = new Parser(r);
   Program tree = null;
   try
   {
    tree = (Program) parser.parse();
    ASTVisitor v = new ContextVisitor();
    v.visitProgram(tree, null);
    ASTVisitor gen = new CodeGenVisitor();
    gen.visitProgram(tree,null);
   }
   catch (Exception e)
   { e.printStackTrace(); }
  }
}
Example Input Generated class file Output
program p {write "go gator";} p.class >/depot/c1/JAVA-2007-01/JDK-6/java-6/bin/java p
go gator
program increment {int i; read i; write i+1;} increment.class >/depot/c1/JAVA-2007-01/JDK-6/java-6/bin/java increment
>Enter int:
>1
2
program decrement {
  procedure p(int i) returns int{ return i-1;}
  int x;
  read x;
  write(call p(x));
}
decrement.class >/depot/c1/JAVA-2007-01/JDK-6/java-6/bin/java decrement
>Enter int:
>0
-1


Note: Make sure to test your program at eclipse.cise.ufl.edu machine. We will use this machine to test.

Good luck!