2017-10-28 16:54:06 +02:00
|
|
|
[whitespace]
|
|
|
|
1. merge whitespaces
|
|
|
|
2. set ws to alias
|
|
|
|
3. apply whitespace to expressions
|
|
|
|
- a a -> a ws* a
|
|
|
|
- a | b -> a | b
|
|
|
|
- a? -> a{0, 1} -> a{0, 1}
|
|
|
|
- a+ -> a{1,} -> a (ws* a){,}
|
|
|
|
- a* -> a{0,} -> (a (ws* a){,}){,}
|
|
|
|
- root -> ws* root ws*
|
|
|
|
|
2017-06-26 01:21:46 +02:00
|
|
|
error reporting
|
2017-07-15 19:04:04 +02:00
|
|
|
- longest parse
|
|
|
|
- count the lines
|
|
|
|
- print the line
|
|
|
|
- print the deepest non-alias node name
|
|
|
|
- print the documentation of the node name
|
|
|
|
read, with error reporting
|
2017-07-30 05:10:46 +02:00
|
|
|
what was the bug with the large json from eskip?
|
2017-07-15 19:05:15 +02:00
|
|
|
|
2017-06-26 12:39:00 +02:00
|
|
|
[next]
|
2017-07-16 23:15:42 +02:00
|
|
|
optimization
|
|
|
|
why normalization failed
|
|
|
|
why normalization was slower?
|
2017-06-26 01:21:46 +02:00
|
|
|
error reporting
|
2017-06-27 05:58:51 +02:00
|
|
|
coverage
|
2017-06-26 01:21:46 +02:00
|
|
|
custom tokens
|
|
|
|
indentation
|
2017-06-26 02:20:23 +02:00
|
|
|
streaming
|
2017-07-17 04:23:29 +02:00
|
|
|
code generation go:
|
|
|
|
- find things that depend on the syntax input
|
|
|
|
- char matches can be generated into switches
|
2017-06-26 01:21:46 +02:00
|
|
|
code generation js
|
2017-07-17 04:23:29 +02:00
|
|
|
ws and nows flags
|
2017-06-26 12:39:00 +02:00
|
|
|
|
|
|
|
[problems]
|
|
|
|
can the root be an alias? check the commit mechanism
|