522 B
522 B
DECISIONS (append-only, shared)
D-001: Token representation
Token is a dataclass with kind: str and value (int | float | None).
NUMBER tokens carry their parsed numeric value; operator/paren tokens carry None.
EOF carries None value.
Rationale: parser phases can pattern-match on kind and directly use value without re-parsing.
D-002: Integer vs float distinction
If a number string contains '.' it is parsed as float, otherwise int. Edge cases: '.5' → float(0.5), '10.' → float(10.0), '42' → int(42).