From 9c824820b0add0bd840fb559fa4e98afea65986b Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Tue, 12 Mar 2019 16:28:06 -0700 Subject: scan: Accept leading `.` in pp-number --- scan.c | 4 ++++ tests/float-const-leading-dot.c | 1 + tests/float-const-leading-dot.qbe | 1 + 3 files changed, 6 insertions(+) create mode 100644 tests/float-const-leading-dot.c create mode 100644 tests/float-const-leading-dot.qbe diff --git a/scan.c b/scan.c index 8db5136..59861de 100644 --- a/scan.c +++ b/scan.c @@ -336,6 +336,10 @@ again: return TRBRACE; case '.': nextchar(s); + if (isdigit(s->chr)) { + bufadd(&s->buf, '.'); + return number(s); + } if (s->chr != '.') return TPERIOD; loc = s->loc; diff --git a/tests/float-const-leading-dot.c b/tests/float-const-leading-dot.c new file mode 100644 index 0000000..bfed54a --- /dev/null +++ b/tests/float-const-leading-dot.c @@ -0,0 +1 @@ +float x = .5; diff --git a/tests/float-const-leading-dot.qbe b/tests/float-const-leading-dot.qbe new file mode 100644 index 0000000..12ae325 --- /dev/null +++ b/tests/float-const-leading-dot.qbe @@ -0,0 +1 @@ +export data $x = align 4 { s s_0x1p-1, } -- cgit v1.2.3