public static void main(String[] args) {
Stm prog = new CompoundStm(new AssignStm("a", new OpExp(new NumExp(5),
OpExp.Op.PLUS, new NumExp(3))), new CompoundStm(new AssignStm(
"b", new EseqExp(new PrintStm(new PairExpList(new IdExp("a"),
new LastExpList(new OpExp(new IdExp("a"),
OpExp.Op.MINUS, new NumExp(1))))), new OpExp(
new NumExp(10), OpExp.Op.TIMES, new IdExp("a")))),
new PrintStm(new LastExpList(new IdExp("b")))));
System.out.println("First prog:");
prog.interpret();
System.out.println();
prog = new PrintStm(new PairExpList(new IdExp("a"),
new LastExpList(new EseqExp(new PrintStm(new PairExpList(
new IdExp("c"), new PairExpList(new IdExp("d"),
new PairExpList(new IdExp("d"),
new LastExpList(new NumExp(3)))))),
new IdExp("b")))));
System.out.println("Second prog:");
prog.interpret();