/
check.js
41 lines (39 loc) · 1.05 KB
/
check.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class EventHandlerBase {
reset() {
}
startNonterminal(name,start) {
//console.log("start "+name+" "+start);
}
endNonterminal(name,start) {
//console.log("end "+name+" "+start);
}
terminal(name,start,end) {
//console.log("terminal "+name+" "+start+" "+end);
}
whitespace(start,end) {
//console.log("ws '"+start+"' "+end);
}
}
function setStatus(text) {
var status = document.getElementById("status");
status.innerHTML = "";
status.appendChild(document.createTextNode(text));
}
document.addEventListener("DOMContentLoaded",function() {
document.getElementById("parse").onclick = function() {
console.log("Parsing:");
var text = document.getElementById("xproc").value;
console.log(text);
var parser = new grammar(text,new EventHandlerBase());
try {
parser.parse_XProc();
setStatus("Valid!");
} catch (e) {
if (e.getExpected) {
setStatus(parser.getErrorMessage(e));
} else {
throw e;
}
}
}
},false);