main var a, b, c,a; // This is an error because one variable is declared twice! { let a<-call InputNum(); let b<-call InputNum(); if a<=b then let c<- d; // If in your parser are not initializing the declared variables, this line becomes an error because variable "d" is used without being initialized call OutputNum(c* call InputNum()); call OutputNewLine(); call OutputNewLine(); call OutputNum(a); call OutputNewLine(); call OutputNewLine(); call OutputNum(b); // This semicolon is an error, if you just implement the grammar you will catch this but just becareful about it else let c<-b; call OutputNum(b); call OutputNewLine() fi; if 1<0 then if 3>2 then call OutputNum(1000000000); let a 4 then call OutputNum(3000000000); call OutputNewLine(); call OutputNum(4000000000); call OutputNewLine() else call OutputNum(5000000000); call OutputNewLine(); call OutputNum(6000000000); call OutputNewLine(); fi fi }.