for AST return value tracking
The changes introduce support for tracking return values and labels
across AST nodes. The key changes include:
- Adding ReturnValue type to BaseValue - Adding return_type field to
LoxFunction - Adding label field to Block statements - Creating
middleend crawler module for AST traversal Add return value types to AST
This accurately captures both changes: adding `.idea/` to gitignore and
adding return value types to the AST structure. The changes include
adding return value fields to statement nodes and adjusting the
interpreter logic accordingly.
This initial commit sets up the basic structure for a Rust
implementation of the Lox interpreter, including:
- Lexer for tokenizing source code - Parser for building AST - Basic
interpreter functionality - Environment for variable storage
The core components include source tracking, error handling, and basic
expression evaluation.