aboutsummaryrefslogtreecommitdiff
path: root/src/parse/numbers.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2026-01-19 20:51:26 -0500
committerBruce Hill <bruce@bruce-hill.com>2026-01-19 20:52:23 -0500
commitf905f1e4d1c77410931dc5ebfd8bcf466864a3e2 (patch)
tree32d52ad87f303237e451c90c1a33b12217a1c6e5 /src/parse/numbers.c
parenta36f149d0837f4424aeda1a1853f08c27aeafa44 (diff)
Allow parsing `123.foo()` as `(123).foo()`
Diffstat (limited to 'src/parse/numbers.c')
-rw-r--r--src/parse/numbers.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/parse/numbers.c b/src/parse/numbers.c
index 4e746525..4e7937d9 100644
--- a/src/parse/numbers.c
+++ b/src/parse/numbers.c
@@ -57,6 +57,7 @@ ast_t *parse_num(parse_ctx_t *ctx, const char *pos) {
size_t len = strspn(pos, "0123456789_");
if (strncmp(pos + len, "..", 2) == 0) return NULL;
+ else if (pos[len] == '.' && is_xid_start_next(pos + len + 1)) return NULL;
else if (pos[len] == '.') len += 1 + strspn(pos + len + 1, "0123456789");
else if (pos[len] != 'e' && pos[len] != 'f' && pos[len] != '%') return NULL;
if (pos[len] == 'e') {