diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-28 16:08:49 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-28 16:08:49 +0200 |
| commit | 5f557ebafb596755cb3047cbdafa6122166c26ac (patch) | |
| tree | 38311c31975d8cb9c8b211252c3c0865802d2d90 /src/build.h | |
| parent | 946fac7d813f6283c18087a46b9e2ee084852c64 (diff) | |
Refactor _term() by extracting _term_ident(), _term_array_literal(), _term_paren() [SRP]
_term() was ~130 lines mixing literal push, array literal construction,
identifier resolution, parenthesized expressions, and defined/undef/syms.
Extracted three static helpers:
- _term_ident(): resolves TT_IDENT as array access, builtin call,
self-defined function/proc call, or variable/procedure (~90 lines;
acceptable given the complexity of identifier resolution)
- _term_array_literal(): builds an array from [expr, ...] syntax
- _term_paren(): evaluates a parenthesised expression and checks ')'
_term() is now a ~100-line dispatcher. The defined/undef/syms cases
remain inline as they are self-contained ~10-line blocks.
Also fixes a latent double-assignment bug in _term_array_literal():
the original `TokenType tt = tt = p_interpret->tt;` is now `= p_interpret->tt;`.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/build.h')
| -rw-r--r-- | src/build.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/build.h b/src/build.h index fce9d6f..b96d7c4 100644 --- a/src/build.h +++ b/src/build.h @@ -36,7 +36,7 @@ #ifndef BUILD_H #define BUILD_H -#define BUILDNR 9698 +#define BUILDNR 9702 #define OS_LINUX #endif |
