tree-sitter/todo.md

35 lines
1.3 KiB
Markdown
Raw Normal View History

TODO
====
2014-03-29 19:14:42 -07:00
# flexibility of lexer
- allow for tokens that contain characters in the separator character set
(e.g. newlines in golang and javascript)
- make separator character set configurable, not hard-coded to whitespace
2014-01-29 09:30:40 -08:00
- add special lexical behavior for indentation-aware languages
2014-03-29 19:14:42 -07:00
- add helpers for constructing rules involving infix, prefix, and postfix operators
2014-01-29 09:30:40 -08:00
2014-03-29 19:14:42 -07:00
# validation / robustness of compiler
make the main `compile` function return errors when grammars are invalid
- check validity of regex patterns
- check that all rules that are referenced are also defined
- check that all rules that are defined are also referenced (except the start rule)
- don't require user to use the `err` helper
(right now, generated code doesn't compile if there are no error productions)
# compiler optimization
- implement Pager's [Practical general method](http://link.springer.com/article/10.1007%2FBF00290336)
for reducing the size of the LR(1) parse table
- speed up grammar compilation
2014-01-29 09:30:40 -08:00
2014-03-29 19:14:42 -07:00
# incremental parsing
- implement the remainder of the incremental parsing algorithm: reuse parse
tree after the edit
# node.js wrapper
- create easy way to publish grammars as npm packages
- add simple selector engine for trees
2014-03-29 19:14:42 -07:00
# chores
- make ordering of parse and lex tables deterministic, so that generated
code doesn't keep changing on every commit