From 421e947fb334a847eb43a0acd90dc3076e1a2a16 Mon Sep 17 00:00:00 2001 From: Tab Atkins-Bittner Date: Mon, 28 Apr 2025 12:31:20 -0700 Subject: [PATCH] Clarify what it means for digits to be separated by underscores. --- draft-marchan-kdl2.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/draft-marchan-kdl2.md b/draft-marchan-kdl2.md index 865d13a..6b4aa58 100644 --- a/draft-marchan-kdl2.md +++ b/draft-marchan-kdl2.md @@ -782,6 +782,13 @@ There are five syntaxes for Numbers: Keywords, Decimal, Hexadecimal, Octal, and - They may optionally include a decimal separator `.`, followed by more digits, which may again be separated by `_`. - They may optionally be followed by `E` or `e`, an optional `-` or `+`, and more digits, to represent an exponent value. +In all cases where the above says that digits "may be separated by `_`", +this means that between any two digits, or after the digits, any number of +consecutive `_` characters can appear. Underscores are not allowed *before* the digits. +That is, `1___2` and `12____` are valid (and both equivalent to just `12`), but +`_12` is *not* a valid number (it will instead parse as an identifier string), +nor is `0x_1a` (it will simply be invalid). + Note that, similar to JSON and some other languages, numbers without an integer digit (such as `.1`) are illegal. They must be written with at least one integer digit, like `0.1`.