Mercurial > repos > tabletprog
annotate editor.js @ 14:85fb6ba15bc6
Start turning AST into HTML in editor
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 22 Mar 2012 22:52:36 -0700 |
parents | 3d1b8e96f5dc |
children | a5ef5af3df0f |
rev | line source |
---|---|
0 | 1 |
2 | |
14
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
3 object.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
4 var el = newEl('div', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
5 className: 'object', |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
6 innerHTML: '#' |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
7 }); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
8 node.appendChild(el); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
9 for (var i in this.messages) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
10 this.messages[i].toHTML(el); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
11 } |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
12 }; |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
13 |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
14 lambda.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
15 var el = newEl('div', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
16 className: 'lambda', |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
17 textContent: this.args.join(' ') |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
18 }); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
19 node.appendChild(el); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
20 }; |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
21 |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
22 assignment.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
23 var base = newEl('div', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
24 className: 'assignment' |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
25 }); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
26 var varName = newEl('span', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
27 textContent: this.symbol.name + ' <-' |
0 | 28 }); |
14
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
29 base.appendChild(varName); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
30 node.appendChild(base); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
31 this.expression.toHTML(base); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
32 }; |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
33 |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
34 intlit.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
35 node.appendChild('span', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
36 className: 'integer', |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
37 textContent: node.val |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
38 }); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
39 }; |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
40 |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
41 floatlit.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
42 node.appendChild('span', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
43 className: 'float', |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
44 textContent: node.val |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
45 }); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
46 }; |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
47 |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
48 strlit.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
49 node.appendChild('span', { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
50 className: 'string', |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
51 textContent: node.val |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
52 }); |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
53 }; |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
54 |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
55 funcall.prototype.toHTML = function(node) { |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
0
diff
changeset
|
56 }; |