View difference between Paste ID: uTywCuLu and RctuvZVT
SHOW: | | - or go back to the newest paste.
1
<!DOCTYPE html>
2
<html>
3
<head>
4
<meta charset="utf-8" />
5
<title>ANTLR Grammar Example</title>
6
<script>
7
var antlr4;
8
var CalcLexer;
9
var CalcParser;
10
11
function print(message) {
12
  var output = document.getElementById('output');
13
  if (!output) return;
14
  var p = document.createElement('p');
15
  if (!p) return;
16
  p.innerHTML = message;
17
  output.appendChild(p);
18
}
19
20
function getInputLine() {
21
  var input = document.getElementById('input');
22
  return (input) ? input.value : null;
23
}
24
25
function parse() {
26
  if (!antlr4 || !CalcLexer || !CalcParser) return;
27
  var inputLine = getInputLine();
28
  if (!inputLine) return;
29
  var chars = new antlr4.InputStream(inputLine);
30
  var lexer = new MyGrammarLexer.MyGrammarLexer(chars);
31
  var tokens  = new antlr4.CommonTokenStream(lexer);
32
  var parser = new MyGrammarParser.MyGrammarParser(tokens);
33
  parser.buildParseTrees = true;
34
  print('Result: ' + parser.eval().value);
35
}
36
37
function init() {
38
  document.body.style.backgroundColor = 'Silver';
39
  print('Import ANTLR...');
40
  antlr4 = require('antlr4/index');
41
  print('Import CalcLexer...');
42
  CalcLexer = require('./CalcLexer');
43
  print('Import CalcParser...');
44
  CalcParser = require('./CalcParser');
45
  print('OK');
46
}
47
</script>
48
</head>
49
<body onload="init()">
50
<div><input id="input" type="text" /></div>
51
<div><button onclick="parse()">Parse</button></div>
52
<div id="output"></div>
53
<script src="lib/require.js"></script>
54
</body>
55
</html>