git @ Cat's Eye Technologies Wagon / 47842ed
Simplify Haste driver, add more example programs, index of same. Chris Pressey 5 years ago
4 changed file(s) with 22 addition(s) and 10 deletion(s). Raw diff Collapse all Expand all
0 examplePrograms = [
1 {
2 "contents": "iis i iiisiss iis r\n",
3 "filename": "reverse0.wagon"
4 },
5 {
6 "contents": "iis i iiisiss i r\n",
7 "filename": "reverse1.wagon"
8 },
9 {
10 "contents": "p@ I I I SII SII\n",
11 "filename": "while.wagon"
12 }
13 ];
0 iis i iiisiss iis r
0 iis i iiisiss i r
00 module Main where
11
2 import Haste
3 import Haste.DOM
4 import Haste.Events
2 import Haste.DOM (withElems, getValue, setProp)
3 import Haste.Events (onEvent, MouseEvent(Click))
54
65 import qualified Language.Wagon.ConcatEval as ConcatEval
76
8
97 main = withElems ["prog", "result", "run-button"] driver
108
11 driver [progElem, resultElem, runButtonElem] = do
12 onEvent runButtonElem Click $ \_ -> execute
13 where
14 execute = do
15 Just prog <- getValue progElem
16 setProp resultElem "textContent" $ show $ ConcatEval.run prog
9 driver [progElem, resultElem, runButtonElem] =
10 onEvent runButtonElem Click $ \_ -> do
11 Just prog <- getValue progElem
12 setProp resultElem "textContent" $ show $ ConcatEval.run prog