38 lines
815 B
Plaintext
38 lines
815 B
Plaintext
[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*
|
|
|
|
error reporting
|
|
- 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
|
|
what was the bug with the large json from eskip?
|
|
|
|
[next]
|
|
optimization
|
|
why normalization failed
|
|
why normalization was slower?
|
|
error reporting
|
|
coverage
|
|
custom tokens
|
|
indentation
|
|
streaming
|
|
code generation go:
|
|
- find things that depend on the syntax input
|
|
- char matches can be generated into switches
|
|
code generation js
|
|
ws and nows flags
|
|
|
|
[problems]
|
|
can the root be an alias? check the commit mechanism
|