 | SPrint Exp
 | SWhile Exp Stmt
 | SAssign Ident AssignOp Exp
 | SIter Ident IterOp
 | SCompound [Stmt]
 | SProcCall Ident [Arg]
  deriving (Eq,Ord,Show)

data AssignOp =
   Assign
 | AssignMul
 | AssignDiv
 | AssignAdd
 | AssignSub