summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-13 15:34:31 -0500
committerJune McEnroe <june@causal.agency>2021-01-13 15:34:31 -0500
commitf683b3610b07f6de272e13c18dc442a9208f1a59 (patch)
tree13e679996024ff6f51e29bac9bba57f6058bc57c
parentSupport long double in c.sh (diff)
downloadsrc-f683b3610b07f6de272e13c18dc442a9208f1a59.tar.gz
src-f683b3610b07f6de272e13c18dc442a9208f1a59.zip
Fix C lexer to require a digit in a float literal
Otherwise ".l" is matched as Number.
-rw-r--r--bin/c11.l2
1 files changed, 1 insertions, 1 deletions
diff --git a/bin/c11.l b/bin/c11.l
index 21e7d44b..dec4cce5 100644
--- a/bin/c11.l
+++ b/bin/c11.l
@@ -44,7 +44,7 @@ sizeof|(_A|alignof) {
 }
 
 ([1-9][0-9]*|"0"[0-7]*|"0x"[[:xdigit:]]+)([ulUL]{0,3}) |
-[0-9]*("."[0-9]*)?([eE][+-]?[0-9]+)?[flFL]? |
+([0-9]+("."[0-9]*)?|[0-9]*"."[0-9]+)([eE][+-]?[0-9]+)?[flFL]? |
 "0x"[[:xdigit:]]*("."[[:xdigit:]]*)?([pP][+-]?[0-9]+)[flFL]? {
 	return Number;
 }