OLD | NEW |
| (Empty) |
1 library petitparser.example.lispweb; | |
2 | |
3 import 'dart:html'; | |
4 import 'package:petitparser/lisp.dart'; | |
5 | |
6 void inspector(Element element, Environment environment) { | |
7 var result = ''; | |
8 while (environment != null) { | |
9 result = '$result<ul>'; | |
10 for (var symbol in environment.keys) { | |
11 result = '$result<li><b>$symbol</b>: ${environment[symbol]}</li>'; | |
12 } | |
13 result = '$result</ul>'; | |
14 result = '$result<hr/>'; | |
15 environment = environment.owner; | |
16 } | |
17 element.innerHtml = result; | |
18 } | |
19 | |
20 void main() { | |
21 var root = new Environment(); | |
22 var native = Natives.import(root); | |
23 var standard = Standard.import(native.create()); | |
24 var environment = standard.create(); | |
25 | |
26 var input = querySelector('#input') as TextAreaElement; | |
27 var output = querySelector('#output') as TextAreaElement; | |
28 | |
29 querySelector('#evaluate').onClick.listen((event) { | |
30 var result = evalString(lispParser, environment, input.value); | |
31 output.value = result.toString(); | |
32 inspector(querySelector('#inspector'), environment); | |
33 }); | |
34 inspector(querySelector('#inspector'), environment); | |
35 } | |
OLD | NEW |