Roadmap
marcioAlmada opened this issue · 2 comments
marcioAlmada commented
- Pick a more ergonomic composition identifier (instead of middle dot ·), before the DSL leaves draft state. Done:
$(
and)
- Literal matchers and expansions
- Token type matchers and expansions like
T_TYPE·label
. Ex:T_STRING·name
- Greedy layer matching and expansion
{···label}
,[···label]
,(···label)
- Non dominant macros (macros that only expand if fully matched and never throw errors during matching)
- Macro escaping (cloaking) syntax #9
- Dominant macros (macros that throw syntax errors if not fulfilled after a given entry point) #6
- (Partial) Expansion iteration like
·matched_scope ··· { ·a ·b ·c }
- Make expansion context unpacking become recursive #10
- Maybe allow index access on expansions:
·matched[0] ·matched[2] ·matched[1]
- Maybe allow index access on expansions:
- Allow control of trailing elements during ast unpacking #21
- Disallow infinite recursion by default while expanding macros #2
- Allow macro to refer to itself with
·this
- Macro hygiene #8
- Macro tags #4
-
·recursion
tag to force a macro to be recursive #5 - maybe allow tag parameters, like
·recursion(limit => 3)
-
- Add more high level parsers
-
·expression()
or·exp()
-
·midrule(function($ts){...})
-
·ls(...)
-
·word()
-
·label()
-
·string()
-
·variable()
-
- Add more high level expanders @
-
·stringify(...)
-
·concat(...)
-
·eval()
-
- Allow operator precedence and infix macros declarations
- Allow macro importing between files like
use macro some\file{macro_name}
(right now macros are limited to be local per file) - Global macros #28
- Support user defined parsers and expanders (add proper D.I for DSL lookups)
- Real time mode: pass included files through the preprocessor automatically #11
- Provide a stream wrapper for pre processing inclusion
include 'yay://some_file.php';
- Composer integration
- Make it fast enough
- Disable complex errors by default #7
- Optional: create a goto based parser stack interpreter and try to save tons of function calls
- Provide a stream wrapper for pre processing inclusion
- Write more documentation
chris-kruining commented
have you by any chanche written down somewhere waht you want with the composer integration part? maybe I could help out with that 😄
marcioAlmada commented
@chris-kruining there are two alternatives for composer integration. One is using preprocess and the other is using Xray and loading the preprocessor callback before anything else.