Develop the core scripting language for Yamlcord, including lexer, parser and AST.
Want to help improve the project?
Please read our full contribution guide here:
- Implement character-based lexer
- Support single-character tokens (brackets, operators, equals)
- Support multi-character tokens (>=, <=, ==, identifiers, numbers)
- Handle strings and escape characters
- Support whitespace and comments
- Build AST from token stream
- Implement nodes for:
- Identifiers
- Literals (string, number, boolean)
- Binary expressions
- Conditional statements
- Assignments
- Handle syntax errors gracefully with meaningful messages
- Define AST node types and interfaces
- Implement evaluator / interpreter for the AST
- Support conditional expressions (
if,else) - Support simple expressions (
age > 18,state == 'success')
- Implement helper to safely evaluate expressions
- Implement error handling and logging
- Implement optional caching of parsed scripts
- Unit tests for lexer
- Unit tests for parser
- Unit tests for evaluator / conditional rendering
- Edge case tests (empty scripts, invalid syntax, nested conditionals)
- Markdown docs for scripting language syntax
- Examples of conditionals, assignments, and expressions
- Guidelines for extending the language with new nodes