TODO List
M7 Script
- Finish AST cleanup for M7 Script
- Finish porting the original M7 interpreter and make it compatible with new software
- Complete missing data types and constructs
- Ultimate goal: Inline compiler with bytecode generation
JSON Features
- Add pragmas to JSON files for parsing options
- Implement
include
directive to reference other files - Add string interpolation support for `` strings
General Optimization
- Optimize performance (currently slow due to PHP's copy-on-write behavior and passing structs by value instead of reference)
- Consider replacing grammar tables and string comparisons with a more efficient structure or library-based approach
- Optimization is not yet a priority, as the tool is intended to be general-purpose
- Reduce class instantiations to make future C porting easier
Parser Improvements
- Improve descent parser structure for better error reporting
Tokenization
- Clean up and refactor tokenization (currently messy, built quickly)
- Add line numbers to tokenization for improved error reporting
General Tasks
- Finalize interpreter stability
- Improve output consistency
- Expand unit tests for better coverage
Feature Development
- Implement semantic analysis stage
- Add extended JSON parsing support
- Plan future concurrency support
Documentation
- Review and refine README for clarity
- Add detailed examples for command-line options
- Document error handling and debugging strategies
Compatibility & Performance
- Ensure continued compatibility with PHP 5.45+
- Optimize performance for large input files
Community & Contribution
- Set up contribution guidelines
- Establish testing framework best practices
- Define issue reporting and bug tracking workflow