23 lines
918 B
Plaintext
23 lines
918 B
Plaintext
- Document the semantics of the DSL!
|
|
|
|
- Clean up and factor the codegen properly.
|
|
|
|
- Get rid of the expression syntax `<EXPR` in patterns; do a type-dependent
|
|
parse instead where we know the polarity of pattern-term args and parse
|
|
in-args as exprs.
|
|
|
|
- Look into whether optimizations are possible:
|
|
- More in-depth fallibility analysis (avoid failure edges where possible)
|
|
|
|
- Slightly nicer human-readable generated code
|
|
- Include full rule body (S-expression) in comment, not just line number
|
|
- Inline some expressions (no more `let val23 = 1234; ... f(val23);`)
|
|
|
|
- Build inlining and simplification: inline invocations of internal
|
|
constructors, and eliminate ctor-etor or makevariant-matchvariant pairs.
|
|
|
|
- Ideas from discussion with fitzgen
|
|
- Turn arg-polarity and exprs on extractors into purer "InstFormat"
|
|
- Emit two contexts: an immutable context for inputs and a mutable context for
|
|
outputs
|