diff --git a/SPEC.md b/SPEC.md index 324b99b..0020aea 100644 --- a/SPEC.md +++ b/SPEC.md @@ -910,14 +910,14 @@ unicode-space := See Table (All White_Space unicode characters which are not `ne single-line-comment := '//' ^newline* (newline | eof) multi-line-comment := '/*' commented-block commented-block := '*/' | (multi-line-comment | '*' | '/' | [^*/]+) commented-block -slashdash := '/-' (node-space | line-space)* +slashdash := '/-' line-space* // Whitespace ws := unicode-space | multi-line-comment escline := '\\' ws* (single-line-comment | newline | eof) newline := See Table (All Newline White_Space) // Whitespace where newlines are allowed. -line-space := newline | ws | single-line-comment +line-space := node-space | newline | single-line-comment // Whitespace within nodes, where newline-ish things must be esclined. node-space := ws* escline ws* | ws+ ``` diff --git a/tests/test_cases/expected_kdl/escline_after_semicolon.kdl b/tests/test_cases/expected_kdl/escline_after_semicolon.kdl new file mode 100644 index 0000000..3e545b1 --- /dev/null +++ b/tests/test_cases/expected_kdl/escline_after_semicolon.kdl @@ -0,0 +1,2 @@ +node +node diff --git a/tests/test_cases/expected_kdl/escline_empty_line.kdl b/tests/test_cases/expected_kdl/escline_empty_line.kdl new file mode 100644 index 0000000..64f5a0a --- /dev/null +++ b/tests/test_cases/expected_kdl/escline_empty_line.kdl @@ -0,0 +1 @@ +node diff --git a/tests/test_cases/expected_kdl/escline_in_child_block.kdl b/tests/test_cases/expected_kdl/escline_in_child_block.kdl new file mode 100644 index 0000000..9b05e30 --- /dev/null +++ b/tests/test_cases/expected_kdl/escline_in_child_block.kdl @@ -0,0 +1,4 @@ +parent { + child + child +} diff --git a/tests/test_cases/expected_kdl/escline_node_type.kdl b/tests/test_cases/expected_kdl/escline_node_type.kdl new file mode 100644 index 0000000..c790643 --- /dev/null +++ b/tests/test_cases/expected_kdl/escline_node_type.kdl @@ -0,0 +1 @@ +(type)node diff --git a/tests/test_cases/expected_kdl/escline_slashdash.kdl b/tests/test_cases/expected_kdl/escline_slashdash.kdl new file mode 100644 index 0000000..64f5a0a --- /dev/null +++ b/tests/test_cases/expected_kdl/escline_slashdash.kdl @@ -0,0 +1 @@ +node diff --git a/tests/test_cases/input/escline_after_semicolon.kdl b/tests/test_cases/input/escline_after_semicolon.kdl new file mode 100644 index 0000000..59a4ab8 --- /dev/null +++ b/tests/test_cases/input/escline_after_semicolon.kdl @@ -0,0 +1,2 @@ +node; \ +node diff --git a/tests/test_cases/input/escline_empty_line.kdl b/tests/test_cases/input/escline_empty_line.kdl new file mode 100644 index 0000000..1777a83 --- /dev/null +++ b/tests/test_cases/input/escline_empty_line.kdl @@ -0,0 +1,3 @@ +\ + +node diff --git a/tests/test_cases/input/escline_in_child_block.kdl b/tests/test_cases/input/escline_in_child_block.kdl new file mode 100644 index 0000000..dfbe682 --- /dev/null +++ b/tests/test_cases/input/escline_in_child_block.kdl @@ -0,0 +1,5 @@ +parent { + child + \ // comment + child +} diff --git a/tests/test_cases/input/escline_node_type.kdl b/tests/test_cases/input/escline_node_type.kdl new file mode 100644 index 0000000..fb22096 --- /dev/null +++ b/tests/test_cases/input/escline_node_type.kdl @@ -0,0 +1,2 @@ +\ +(type)node diff --git a/tests/test_cases/input/escline_slashdash.kdl b/tests/test_cases/input/escline_slashdash.kdl new file mode 100644 index 0000000..8cb0956 --- /dev/null +++ b/tests/test_cases/input/escline_slashdash.kdl @@ -0,0 +1,4 @@ +node +\ +/- +node