@@ -37,15 +37,15 @@ print, log, macros and more
37
37
38
38
### Reading notes
39
39
40
+ See [ Open Issues] ( https://github.com/ldemailly/gorepl/issues ) for what's left to do
41
+
40
42
- See the commit history for improvements/changes (e.g redundant state in lexer etc)
41
43
42
44
- [x] interface nil check in parser
43
45
44
46
- [x] Do we really need all these ` let ` , wouldn't ` x = a + 3 ` be enough? made optional
45
- - [ ] remove let entirely ?
46
- - [ ] no let for macros?
47
47
48
- - [ ] Seems like ast and object are redundant to a large extent
48
+ - Seems like ast and object are redundant to a large extent
49
49
50
50
- [x] Introduced errors sooner, it's sort of obviously needed
51
51
@@ -55,49 +55,49 @@ print, log, macros and more
55
55
56
56
- [x] made built ins like len() tokens (cheaper than carrying the string version during eval)
57
57
58
- - [ ] fix up == and != in 3 places (int, string and default)
58
+ - fix up == and != in 3 places (int, string and default)
59
59
60
- - [ ] change int to ... float? number? or rather add float/double (maybe also or big int?...)
60
+ - change int to ... float? number? or rather add float/double (maybe also or big int?...)
61
61
62
- - [ ] use + for concat of arrays and merging of maps
62
+ - [x ] use + for concat of arrays and merging of maps
63
63
64
64
- [x] call maps maps and not hash (or maybe assoc array but that's long)
65
65
66
66
- [x] don't make a slice to join with , when there is already a strings builder. replace byte buffers by string builder.
67
67
68
68
- [x] generalized tokenized built in (token id based instead of string)
69
69
70
- - [ ] Add "extension" internal functions (calling into a go function), with variadic params, param types etc
70
+ - Add "extension" internal functions (calling into a go function), with variadic params, param types etc
71
71
72
72
- [x] Identifiers are letter followed by alphanum*
73
73
74
74
- [x] map of interface correctly equals the actual underlying types, no need for custom hashing
75
75
-> implies death to pointers (need non pointer receiver and use plain objects and not references)
76
76
77
- - [ ] unicode
77
+ - unicode (work as is in strings already)
78
78
79
79
- [x] flags for showing parse or not (default not pass ` -parse ` to see parsing)
80
80
81
81
- [x] file input vs stdin repl (made up .gr for gorepl)
82
82
83
- - [ ] actual name for the language - it's not monkey (though it's monkey compatible, just better/simpler/...)
83
+ - actual name for the language - it's not monkey (though it's monkey ~~ compatible~~ derived , just better/simpler/...)
84
84
85
- - [ ] multiline support in stdin repl
85
+ - multiline support in stdin repl
86
86
87
- - [x] add >= and <= comparaison operators
87
+ - [x] add >= and <= comparison operators
88
88
89
89
- [x] add comments support (line)
90
- - [ ] add /* * / style
90
+ - add /* * / style
91
91
92
- - [ ] line numbers for errors (for file mode)
92
+ - line numbers for errors (for file mode)
93
93
94
94
- [x] use ` func ` instead of ` fn ` for functions
95
95
96
96
- [x] figure out how to get syntax highlighting (go style closest - done thx to viulisti -> .gitattributes)
97
97
98
- - [ ] assignment to maps and arrays
98
+ - assignment to maps keys and arrays indexes
99
99
100
- - [ ] for loop
100
+ - for loop
101
101
102
102
- [x] switched to non pointer receivers in Object and (base/integer) Ast so equality checks in maps work without special hashing (big win)
103
103
0 commit comments