Macro system done in theory
too afraid to begin debugging, resting for a moment
This commit is contained in:
@@ -17,11 +17,11 @@ Priority numbers are written in hexadecimal normal form to avoid precision bugs,
|
||||
- **32-39**: Binary operators, in inverse priority order
|
||||
- **80-87**: Expression-like structures such as if/then/else
|
||||
- **128-135**: Anything that creates lambdas
|
||||
Programs triggered by a lower priority pattern than this can assume that all names are correctly bound
|
||||
Programs triggered by a lower priority pattern than this can assume that all names are correctly bound
|
||||
- **200**: Aliases extracted for readability
|
||||
The user-accessible entry points of all macro programs must be lower priority than this, so any arbitrary syntax can be extracted into an alias with no side effects
|
||||
The user-accessible entry points of all macro programs must be lower priority than this, so any arbitrary syntax can be extracted into an alias with no side effects
|
||||
- **224-231**: Integration; documented hooks exposed by a macro package to allow third party packages to extend its functionality
|
||||
The `statement` pattern produced by `do{}` blocks and matched by `let` and `cps` is a good example of this. When any of these are triggered, all macro programs are in a documented state.
|
||||
The `statement` pattern produced by `do{}` blocks and matched by `let` and `cps` is a good example of this. When any of these are triggered, all macro programs are in a documented state.
|
||||
- **248-255**: Transitional states within macro programs get the highest priority
|
||||
|
||||
The numbers are arbitrary and up for debate. These are just the ones I came up with when writing the examples.
|
||||
|
||||
Reference in New Issue
Block a user