pascal_interpreter TODOS expand tests to cover interpreter use typing/type hinting lexer should implement iterator protocol add indentation to AST node __str__ methods for legibility