Simplify Haste driver, add more example programs, index of same.
Chris Pressey
5 years ago
|
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 | 0 |
module Main where
|
1 | 1 |
|
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))
|
5 | 4 |
|
6 | 5 |
import qualified Language.Wagon.ConcatEval as ConcatEval
|
7 | 6 |
|
8 | |
|
9 | 7 |
main = withElems ["prog", "result", "run-button"] driver
|
10 | 8 |
|
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
|