Clean up notes to reflect current state of affairs
This commit is contained in:
parent
35d398c2e0
commit
7a2fabd131
|
@ -524,35 +524,19 @@
|
||||||
|
|
||||||
(comment "
|
(comment "
|
||||||
Further thoughts/still to do:
|
Further thoughts/still to do:
|
||||||
* Clean up the parsing functions:
|
* AST nodes should include tokens/locations
|
||||||
- use accept-many in blocks and scripts
|
- at current, only atoms do this
|
||||||
- ast nodes should include their tokens (this is added for atoms, which may be fully sufficient)
|
* Improve error handling in hashmap parsing
|
||||||
* Time to start working on parsing errors (poisoned nodes, panic mode, etc.)
|
*
|
||||||
- this now works on atoms, collections, synthetics, blocks, and scripts
|
|
||||||
- add to everything else:
|
|
||||||
- CURRENTLY:
|
|
||||||
* figure out how to parse `if` with similar strategy to `let`
|
|
||||||
* one possibility is to paramterize parse-expr with a sync token:
|
|
||||||
the idea here is that exprs will have different end sync points in different contexts (`}` vs `then` vs `\n`, etc.)
|
|
||||||
* the strategy here will be the same for the rest of the sequential constructs: `let`, `if`, `import`, `fn`, `loop`, etc.
|
|
||||||
|
|
||||||
Other quick thoughts:
|
Other quick thoughts:
|
||||||
* Once I get this far, then it's time to wire up the interpreter (with hard-coded functions, and the beginning of static analysis)
|
|
||||||
|
|
||||||
* Placeholders
|
* Placeholders
|
||||||
* Placeholders may only appear in tuples in synthetic expressions
|
|
||||||
* Each of these may have zero or one placeholders
|
|
||||||
* Does this want to happen in parsing or in analysis?
|
* Does this want to happen in parsing or in analysis?
|
||||||
|
|
||||||
For future correctness checks:
|
For future correctness checks:
|
||||||
* Early (even as part of wiring up the interpreter), begin the static analysis check for
|
|
||||||
- unbound names
|
|
||||||
- re-binding of names
|
|
||||||
* Compound `loop` and `gen` forms must have LHS's (tuple patterns) of the same length
|
|
||||||
* Recur must be in tail position in `loop`s
|
|
||||||
* Tail call optimization for simple recursion
|
|
||||||
* Check arities for statically known functions
|
|
||||||
* Enforce single-member tuple after called keywords
|
|
||||||
")
|
")
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user