From debd06129fa5ddebdd7f32bd76c6591fe8343047 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 7 Jan 2025 15:19:31 -0500 Subject: [PATCH] CM KCL: numbers must have digits after dot (#4963) Co-authored-by: Matt Mundell --- packages/codemirror-lang-kcl/src/kcl.grammar | 2 +- packages/codemirror-lang-kcl/test/range.txt | 43 ++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 packages/codemirror-lang-kcl/test/range.txt diff --git a/packages/codemirror-lang-kcl/src/kcl.grammar b/packages/codemirror-lang-kcl/src/kcl.grammar index 179d535be..d8d9419b1 100644 --- a/packages/codemirror-lang-kcl/src/kcl.grammar +++ b/packages/codemirror-lang-kcl/src/kcl.grammar @@ -85,7 +85,7 @@ commaSep1NoTrailingComma { term ("," term)* } @tokens { String[isolate] { "'" ("\\" _ | !['\\])* "'" | '"' ("\\" _ | !["\\])* '"' } - Number { "." @digit+ | @digit+ ("." @digit*)? } + Number { "." @digit+ | @digit+ ("." @digit+)? } @precedence { Number, "." } AddOp { "+" | "-" } diff --git a/packages/codemirror-lang-kcl/test/range.txt b/packages/codemirror-lang-kcl/test/range.txt new file mode 100644 index 000000000..b52ae2953 --- /dev/null +++ b/packages/codemirror-lang-kcl/test/range.txt @@ -0,0 +1,43 @@ +# spaced + +a = [0 .. 1] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(Number, + Number)))) + +# compact + +a = [0..1] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(Number, + Number)))) + +# expr spaced + +a = [start .. start + 10] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(VariableName, + BinaryExpression(VariableName, + AddOp, + Number))))) + +# expr compact + +a = [start..start + 10] + +==> +Program(VariableDeclaration(VariableDefinition, + Equals, + ArrayExpression(IntegerRange(VariableName, + BinaryExpression(VariableName, + AddOp, + Number)))))