Use haste-compiler to demo interpreting Quylthulg in a web browser.
Chris Pressey
6 years ago
0 | 0 |
*.hi
|
1 | 1 |
*.o
|
|
2 |
*.jsmod
|
2 | 3 |
bin/*
|
|
4 |
demo/qlzqqlzuup.js
|
18 | 18 |
EOF
|
19 | 19 |
chmod 755 bin/$PROG
|
20 | 20 |
else
|
21 | |
cd src && ghc --make Main.hs -o ../bin/$PROG
|
|
21 |
(cd src && ghc --make Main.hs -o ../bin/$PROG)
|
22 | 22 |
fi
|
|
23 |
|
|
24 |
### haste
|
|
25 |
(cd src && hastec --make HasteMain.hs -o ../demo/qlzqqlzuup.js)
|
|
0 |
<!DOCTYPE html>
|
|
1 |
<head>
|
|
2 |
<meta charset="utf-8">
|
|
3 |
<title>Quylthulg</title>
|
|
4 |
</head>
|
|
5 |
<body>
|
|
6 |
|
|
7 |
<h1>Quylthulg</h1>
|
|
8 |
|
|
9 |
<p>(Qlzqqlzuup.hs compiled to .js by Haste, running in HTML5 document)</p>
|
|
10 |
|
|
11 |
<input type="text" id="prog">
|
|
12 |
|
|
13 |
<pre id="result">
|
|
14 |
|
|
15 |
<script src="qlzqqlzuup.js"></script>
|
|
16 |
</body>
|
|
0 |
module Main where
|
|
1 |
|
|
2 |
import Haste
|
|
3 |
import Haste.DOM
|
|
4 |
import Haste.Events
|
|
5 |
|
|
6 |
import Qlzqqlzuup
|
|
7 |
|
|
8 |
main = withElems ["prog", "result"] driver
|
|
9 |
|
|
10 |
driver [progElem, resultElem] = do
|
|
11 |
onEvent progElem Change $ \_ -> execute
|
|
12 |
where
|
|
13 |
execute = do
|
|
14 |
Just prog <- getValue progElem
|
|
15 |
setProp resultElem "innerHTML" (showRun prog)
|