regular tree grammar start Program productions ListStarOfStat0 -> ListPlusOfStat0 ListStarOfStat0 -> () ListStarOfStat0 -> (ListStarOfStat0,ListStarOfStat0) ListPlusOfStat0 -> (ListStarOfStat0,ListPlusOfStat0) ListPlusOfStat0 -> (ListPlusOfStat0,ListStarOfStat0) ListPlusOfStat0 -> (ListPlusOfStat0,ListPlusOfStat0) ListPlusOfStat0 -> (Stat,ListStarOfStat0) ListStarOfExp0 -> ListPlusOfExp0 ListStarOfExp0 -> () ListStarOfExp0 -> (ListStarOfExp0,ListStarOfExp0) ListPlusOfExp0 -> (ListStarOfExp0,ListPlusOfExp0) ListPlusOfExp0 -> (ListPlusOfExp0,ListStarOfExp0) ListPlusOfExp0 -> (ListPlusOfExp0,ListPlusOfExp0) ListPlusOfExp0 -> (Exp,ListStarOfExp0) ListStarOfStrChar0 -> ListPlusOfStrChar0 -> Program -> Program(ListStarOfStat0) Stat -> ProcCall(Id,ListStarOfExp0) Exp -> FunCall(Id,ListStarOfExp0) Stat -> For(Id,Exp,Exp,ListStarOfStat0) Stat -> While(Exp,ListStarOfStat0) Stat -> IfElse(Exp,ListStarOfStat0,ListStarOfStat0) Stat -> IfThen(Exp,ListStarOfStat0) Stat -> Block(ListStarOfStat0) Stat -> Assign(Id,Exp) Stat -> DeclarationTyped(Id,Type) Stat -> Declaration(Id) Type -> TypeName(Id) Exp -> Or(Exp,Exp) Exp -> And(Exp,Exp) Exp -> Neq(Exp,Exp) Exp -> Equ(Exp,Exp) Exp -> Geq(Exp,Exp) Exp -> Leq(Exp,Exp) Exp -> Gt(Exp,Exp) Exp -> Lt(Exp,Exp) Exp -> Sub(Exp,Exp) Exp -> Add(Exp,Exp) Exp -> Mod(Exp,Exp) Exp -> Div(Exp,Exp) Exp -> Mul(Exp,Exp) Exp -> String(String) Exp -> Int(Int) Exp -> Var(Id) Exp -> False() Exp -> True() StrChar -> String -> Int -> Id ->