This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
gazelle / TODO
| dc02e9b3 » | haberman | 2008-06-27 | 1 | ||
| 2 | This is a list of things I definitely want to do. I don't go into too many | ||||
| 3 | specifics, because the specifics change often as I think about the problem | ||||
| 4 | harder. | ||||
| 5 | |||||
| 6 | Core Parsing Algorithm (all changes should have test-cases): | ||||
| 7 | * properly support EOF in lookahead (like s -> "A" | "A" "B"; should predict 1). | ||||
| 8 | * properly support lookahead that predicts a return from a final RTN state | ||||
| 9 | like s -> a "X"; a -> "Y"*; | ||||
| 10 | * try to detect when we are in an infinite loop (requires much thought). | ||||
| 11 | * detect cases where some RTN alternatives have no GLA final state. | ||||
| 12 | * deal with lexer-level ambiguity. longest match will do for now, but | ||||
| 13 | we're not currently detecting s -> "A" | "AB"; | ||||
| 14 | |||||
| 15 | Runtime: | ||||
| 16 | * Richer callback specifiers. | ||||
| 17 | * Bring back slotbufs: a cheap (stack only, no heap) way of saving parse_vals for | ||||
| 18 | the currently-open nodes of the parse tree. | ||||
| 19 | * Provide a buffering layer. | ||||
| 20 | * As the runtime starts to mature: language bindings. | ||||
| 21 | |||||
| 71830569 » | haberman | 2008-06-29 | 22 | Tests! Everything should have tests, as much as possible: | |
| 23 | * all aspects of compilation | ||||
| 24 | * bitcode format (both reading and writing) | ||||
| 25 | * JSON output from gzlparse. Both well-formedness and accuracy. | ||||
| 26 | |||||
| dc02e9b3 » | haberman | 2008-06-27 | 27 | Major design areas that exist only in my head: | |
| 28 | * Embedding Lua to do things only an imperative language can do. | ||||
| 29 | * Operator-precedence parsing using the shunting yard algorithm. | ||||
| 30 | * Parallel parsers (for both embedded languages and things like whitespace/comments) | ||||
| 31 | * Error recovery (basically: just yield to an imperative function). | ||||
| 32 | * Generate imperative bytecode / JIT compile. | ||||
| 33 | * AST-building. | ||||
| 34 | |||||







