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)))))