blob: 3086012aaf3aebc1fc97891c8029347ad956994a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
module SimpleTest
from StdOverloaded import class zero(..), class toString(..)
import Common
import WhileLexer
import Simple
import SimpleParse
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
val :: Var -> Either Error Int
val v = parsed >>= \pgm -> run pgm zero >>= eval (Var v)
|