Roadmap¶
Current Status¶
v0.1.0 Alpha -- Core parsing, project tracing, CLI, and website are implemented and tested.
Completed¶
- [x] Core parsing pipeline (scanner, statements, grammar, parser, trace)
- [x] Differential testing infrastructure with golden files
- [x] CLI and Python API
- [x]
#delimit ;mode switching - [x]
///line continuation - [x] Include graph traversal
- [x] Recursive ancestor resolution with cycle termination
- [x] Unresolved block reporting (7 categories)
- [x] Coverage metrics
- [x] Label tracking (opt-in)
- [x] Project-wide tracing with source lines (ordered files, manifests, and deterministic directory discovery)
Planned¶
Cross-cutting Infrastructure¶
-
[ ] Publish
stata-command-registryto PyPI withvariable_effectsupport The registry is currently installed separately from its source repository. A published compatible release would make normal dependency resolution possible while preserving the registry boundary. -
[ ] Stata output snapshot infrastructure for CI differential testing Automate running do2screen (Stata) over the test corpus and comparing output against do2screen-py. Offline golden/snapshot tests already exist; live reference execution currently requires manual Stata execution.
Known Limitations¶
-
Static structural tracer only -- no macro expansion, condition evaluation, or data-dependent wildcard resolution. Macro-built variable targets are reported as
macro_or_loopunresolved blocks rather than guessed. -
User-written
adoprograms are reported asunknown_commandunresolved blocks. -
do2screen (Stata)'s
findandrangemodes are out of scope. -
Delimiter/continuation output reports physical source lines; do2screen (Stata) reports transformed parser-record lines there by design.
Future Directions¶
- Macro expansion for variable name construction
- Data-dependent resolution (evaluating expressions to determine variable names)
findandrangemodes matching do2screen (Stata) behaviour- Improved handling of complex
if/elsecontrol flow - Support for more
#delimitedge cases