package compile; import asm.*; import edu.neu.ccs.demeterf.demfgen.lib.*; MainC = E. E : S // Simple (integer) | C // Compound | L // Let | V // Variable | A // Address | I. // If S = int. C = "(" Op *s E *s E ")". V = ident. A = "[#" int "]". L = "(let" *s ident *s "=" *s E *s "in" *s E ")". I = "(if" *s E *s E *s E ")". Op: ArithOp | CompOp | BoolOp. ArithOp: P | M | T | D. CompOp: LT | GT | EQ. BoolOp: AndF | OrF. P = "+". M = "-". T = "*". D = "/". LT = "<". GT = ">". EQ = "=". AndF = "and". OrF = "or".