public interface Backend {
void invoke(List
args, List sources);
}
STEPS
1. Write a class implements Backend
2. Write method invoke()
in that class
define the
arguments
design necessary
visitors
3. Write
visitors to traverse the ASTs
4.
Add flags to the compiler command-line
public class SimulatorBackend implements Backend {
public abstract void
invoke(List args, List sources) {
List flags =
inspectArguments(args);
Iterator iter =
sources.iterator();
while
(iter.hasNext()) {
CompileUnitNode ast = iter.next();
String code
= ast.accept(new SimulatorVisitor(),flags);
printSimulationCode(code);
}
}
}