Skip to content
This repository was archived by the owner on Nov 12, 2025. It is now read-only.

Commit 50b14e5

Browse files
committed
Add transpile button
1 parent 52803ea commit 50b14e5

2 files changed

Lines changed: 30 additions & 20 deletions

File tree

src/JSMain.hx

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import js.html.ButtonElement;
12
import js.html.TextAreaElement;
23
import js.html.Event;
34
import js.html.InputElement;
@@ -7,25 +8,30 @@ import base.Preprocessor;
78
import base.Tokenizer;
89
import base.Parser;
910

11+
final Preprocessor = new Preprocessor();
12+
final Tokenizer = new Tokenizer();
13+
final Parser = new Parser();
14+
15+
final input_textarea: TextAreaElement = cast Browser.document.getElementById("input");
16+
final output_textarea: TextAreaElement = cast Browser.document.getElementById("output");
17+
18+
final transpile_button: ButtonElement = cast Browser.document.getElementById("transpile");
19+
20+
function transpile() {
21+
try {
22+
final processed = Preprocessor.process(input_textarea.value);
23+
final tokens = Tokenizer.process(processed);
24+
final ast = Parser.process(tokens);
25+
26+
final out_code = base.transpiler.Lua.process(ast);
27+
28+
output_textarea.value = out_code;
29+
} catch(exception) {
30+
output_textarea.value = exception.toString();
31+
}
32+
}
33+
1034
function main() {
11-
final Preprocessor = new Preprocessor();
12-
final Tokenizer = new Tokenizer();
13-
final Parser = new Parser();
14-
15-
final input_textarea: TextAreaElement = cast Browser.document.getElementById("input");
16-
final output_textarea: TextAreaElement = cast Browser.document.getElementById("output");
17-
18-
input_textarea.onkeypress = function(e:Event) {
19-
try {
20-
final processed = Preprocessor.process(input_textarea.value);
21-
final tokens = Tokenizer.process(processed);
22-
final ast = Parser.process(tokens);
23-
24-
final out_code = base.transpiler.Lua.process(ast);
25-
26-
output_textarea.value = out_code;
27-
} catch(exception) {
28-
output_textarea.value = exception.toString();
29-
}
30-
};
35+
transpile_button.onclick = transpile;
36+
input_textarea.onkeypress = transpile;
3137
}

static/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222

2323
<textarea readonly id="output" rows=50> </textarea>
2424

25+
<center>
26+
<button id="transpile">Transpile!</button>
27+
</center>
28+
2529
<script src="out.js"></script>
2630
</body>
2731

0 commit comments

Comments
 (0)