• Roman Alifanov's avatar
    Add optional static typing with TypeScript-style syntax · 5121e024
    Roman Alifanov authored
    - Add TypeAnnotation AST node for type annotations
    - Add ClassField dataclass for typed class fields
    - Extend Parameter, FunctionDecl, Assignment with type_annotation field
    - Add type parsing: parse_type(), parse_type_annotation(), parse_function_type()
    - Support types: string, int, float, bool, any, void, T[], dict[K,V], classes, (A) => B
    - Add type checking at compile time with configurable error handling
    - Add --no-type-check and --warn-types CLI flags
    - Fix callback variable calls (prioritize callback_vars, use $() capture)
    - Document closure limitation (lambdas can't capture outer variables)
    - Add 28 new tests for typing and callbacks (279 total)
    5121e024
ast_nodes.py 7.81 KB