ant.compiler.gen
Class CodeGenerator

java.lang.Object
  extended byant.compiler.ast.AbstractVisitor
      extended byant.compiler.ast.DFSVisitor
          extended byant.compiler.gen.CodeGenerator
All Implemented Interfaces:
Tree.Visitor

public class CodeGenerator
extends DFSVisitor

Generate Asm statements from an ACP abstract syntax Tree.

License: GPL

Author:
Bernhard Haumacher

Field Summary
(package private)  ExpressionEvaluator evaluator
           
(package private)  Asm next
           
(package private)  Asm result
           
(package private)  AsmSymbols symbols
           
 
Constructor Summary
CodeGenerator(AsmSymbols symbols)
           
 
Method Summary
 Asm getResult()
           
 void reset()
           
 void visit(Tree.Block tree)
           
 void visit(Tree.DropCommand tree)
           
 void visit(Tree.Goto tree)
           
 void visit(Tree.If tree)
           
 void visit(Tree.Label tree)
           
 void visit(Tree.MarkCommand tree)
           
 void visit(Tree.MoveCommand tree)
           
 void visit(Tree.PickUpCommand tree)
           
 void visit(Tree.TurnCommand tree)
           
 void visit(Tree.UnmarkCommand tree)
           
 void visit(Tree tree)
           
 
Methods inherited from class ant.compiler.ast.DFSVisitor
beforeDescend, visit, visit, visit, visit, visit, visit
 
Methods inherited from class ant.compiler.ast.AbstractVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visitBinaryExpression, visitExpression, visitTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

next

Asm next

result

Asm result

symbols

AsmSymbols symbols

evaluator

ExpressionEvaluator evaluator
Constructor Detail

CodeGenerator

public CodeGenerator(AsmSymbols symbols)
Method Detail

reset

public void reset()

getResult

public Asm getResult()

visit

public void visit(Tree.Label tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class DFSVisitor

visit

public void visit(Tree.Block tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class DFSVisitor

visit

public void visit(Tree.If tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class DFSVisitor

visit

public void visit(Tree.Goto tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree.MarkCommand tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree.UnmarkCommand tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree.TurnCommand tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree.MoveCommand tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree.PickUpCommand tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree.DropCommand tree)
Specified by:
visit in interface Tree.Visitor
Overrides:
visit in class AbstractVisitor

visit

public void visit(Tree tree)