module SimpleTest from StdOverloaded import class zero(..), class toString(..) import Common import WhileLexer import Simple import SimpleParse Start = toString <$> parsed //Start = val "z" where lexed :: Either Error [Token] lexed = lex ['x := 30; z := 0; o := 1; s := 1; while s <= x do (z := z+1; o := o+2; s := s+o)'] parsed :: Either Error Stm parsed = lexed >>= parse ran :: Either Error State ran = parsed >>= \pgm -> run pgm zero val :: Var -> Either Error Int val v = ran >>= eval (Var v)