/
roadmap.todo
67 lines (66 loc) · 3.08 KB
/
roadmap.todo
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
just javascript:
✔ function without cont as parameter @done (13-06-28 07:57)
✔ augment assign @done (13-06-17 15:32)
✔ javascript while, do/while @done (13-07-12 06:33)
✔ javascript for, for/in, for/of @done (13-07-12 08:51)
✔ javascript break/continue with label @done (13-07-12 08:51)
✔ switch-case statement @done (13-07-21 18:52)
✔ javascript try/catch @done (13-07-12 06:33)
✔ test @done (13-07-29 19:51)
✔ throw @done (13-06-29 15:03)
✔ javascript's new @done (13-06-22 21:27)
✔ toCode: remove unnecessary parenthesis by using precedence of operator @done (13-07-12 06:03)
# half done: variable, attribute acceess, array index don't have parenthesis
optimization:
✔ assign optimization @done (13-07-21 20:06)
✔ special assign convert to augment assign and inc/dec when toCode. @done (13-07-12 18:24)
✔ v = v, unnessary pure expression statement @done (13-07-03 08:35)
☐ il.if_ optimization
☐ loop optimization: assign, extract computation
✔ loop, while, dowhile, until convert to javascript's while/do-while statement. @done (13-07-14 14:24)
✔ non tail recursive @done (13-07-14 19:18)
# simple recursive: single recursive call, no mutual recursive.
✔ true tail recursive @done (13-07-21 15:51)
☐ mutual tail recursive
✔ il.clamda can replace parmenter v directly @done (13-07-02 16:09)
☐ optimize parser terminal's interlang vop
✔ il.equalcont @done (13-06-23 21:03)
☐ Maybe it is better to do some optimization before cps convert.
# cutcont, parse state, orp, etc.
☐ var declaration need pay more attension
# any(exp, result, template): result2 is not declared.
# removed assign to list2 is declared improperly.
lisp features:
✔ quote, eval @done (13-06-27 18:04)
✔ lamda @done (13-06-27 18:05)
✔ block/break/continue @done (13-06-27 18:04)
✔ catch/throw @done (13-06-18 08:53)
✔ unwind-protect @done (13-06-18 08:53)
✔ callcc @done (13-06-18 10:58)
logic features:
✔ logic var @done (13-06-19 17:56)
✔ unify @done (13-06-19 17:18)
✔ logic or @done (13-06-19 10:32)
✔ fail @done (13-06-19 10:32)
✔ logic negation, repeat @done (13-06-19 15:02)
✔ findall @done (13-06-20 14:04)
✔ once, ifp, etc. @done (13-06-26 21:54)
✔ test @done (13-07-27 13:08)
✔ callfc @done (13-06-26 21:54)
✔ test @done (13-07-27 15:13)
✔ Cons, UObject, UArray @done (13-07-26 22:27)
parser features:
✔ parser state @done (13-06-21 21:32)
✔ test parsetext, settext @done (13-06-23 20:50)
✔ low level primitive @done (13-06-21 21:32)
✔ test @done (13-06-24 11:31)
✔ terminals @done (13-06-22 21:26)
✔ test char, number, literal @done (13-06-23 18:19)
✔ follow, notfollow, parallel, may, any, some, times, seplist @done (13-06-26 18:38)
✔ follow, notfollow, parallel @done (13-06-26 09:50)
✔ any @done (13-06-24 22:19)
✔ test may(normal, lazy, greedy) @done (13-06-24 18:24)
✔ some @done (13-06-25 10:41)
✔ times @done (13-06-25 20:58)
✔ seplist @done (13-06-26 18:38)
✔ dummy var @done (13-06-24 21:21)