From d9da35d560abbbc38b907151341bda868bb9ded0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Tue, 10 Dec 2024 20:21:08 -0800 Subject: [PATCH] Allow node-space after slashdash and add a bunch more slashdash tests --- SPEC.md | 2 +- .../expected_kdl/slashdash_escline_before_arg_type.kdl | 1 + .../expected_kdl/slashdash_escline_before_children.kdl | 1 + .../test_cases/expected_kdl/slashdash_escline_before_node.kdl | 1 + tests/test_cases/expected_kdl/slashdash_false_node.kdl | 1 + tests/test_cases/input/slashdash_after_arg_type_fail.kdl | 1 + tests/test_cases/input/slashdash_after_node_type_fail.kdl | 2 ++ ...ash_in_prop_fail.kdl => slashdash_after_prop_key_fail.kdl} | 0 tests/test_cases/input/slashdash_after_prop_val_type_fail.kdl | 1 + tests/test_cases/input/slashdash_before_children_end_fail.kdl | 4 ++++ tests/test_cases/input/slashdash_before_eof_fail.kdl | 1 + tests/test_cases/input/slashdash_before_prop_value_fail.kdl | 1 + tests/test_cases/input/slashdash_before_semicolon_fail.kdl | 1 + tests/test_cases/input/slashdash_escline_before_arg_type.kdl | 2 ++ tests/test_cases/input/slashdash_escline_before_children.kdl | 3 +++ tests/test_cases/input/slashdash_escline_before_node.kdl | 3 +++ tests/test_cases/input/slashdash_false_node.kdl | 2 ++ tests/test_cases/input/slashdash_inside_arg_type_fail.kdl | 1 + tests/test_cases/input/slashdash_inside_node_type_fail.kdl | 1 + 19 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 tests/test_cases/expected_kdl/slashdash_escline_before_arg_type.kdl create mode 100644 tests/test_cases/expected_kdl/slashdash_escline_before_children.kdl create mode 100644 tests/test_cases/expected_kdl/slashdash_escline_before_node.kdl create mode 100644 tests/test_cases/expected_kdl/slashdash_false_node.kdl create mode 100644 tests/test_cases/input/slashdash_after_arg_type_fail.kdl create mode 100644 tests/test_cases/input/slashdash_after_node_type_fail.kdl rename tests/test_cases/input/{slashdash_in_prop_fail.kdl => slashdash_after_prop_key_fail.kdl} (100%) create mode 100644 tests/test_cases/input/slashdash_after_prop_val_type_fail.kdl create mode 100644 tests/test_cases/input/slashdash_before_children_end_fail.kdl create mode 100644 tests/test_cases/input/slashdash_before_eof_fail.kdl create mode 100644 tests/test_cases/input/slashdash_before_prop_value_fail.kdl create mode 100644 tests/test_cases/input/slashdash_before_semicolon_fail.kdl create mode 100644 tests/test_cases/input/slashdash_escline_before_arg_type.kdl create mode 100644 tests/test_cases/input/slashdash_escline_before_children.kdl create mode 100644 tests/test_cases/input/slashdash_escline_before_node.kdl create mode 100644 tests/test_cases/input/slashdash_false_node.kdl create mode 100644 tests/test_cases/input/slashdash_inside_arg_type_fail.kdl create mode 100644 tests/test_cases/input/slashdash_inside_node_type_fail.kdl diff --git a/SPEC.md b/SPEC.md index fbec179..0405823 100644 --- a/SPEC.md +++ b/SPEC.md @@ -905,7 +905,7 @@ 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 := '/-' line-space* +slashdash := '/-' (node-space | line-space)* // Whitespace ws := unicode-space | multi-line-comment diff --git a/tests/test_cases/expected_kdl/slashdash_escline_before_arg_type.kdl b/tests/test_cases/expected_kdl/slashdash_escline_before_arg_type.kdl new file mode 100644 index 0000000..2e98005 --- /dev/null +++ b/tests/test_cases/expected_kdl/slashdash_escline_before_arg_type.kdl @@ -0,0 +1 @@ +node arg2 diff --git a/tests/test_cases/expected_kdl/slashdash_escline_before_children.kdl b/tests/test_cases/expected_kdl/slashdash_escline_before_children.kdl new file mode 100644 index 0000000..dd5fe2e --- /dev/null +++ b/tests/test_cases/expected_kdl/slashdash_escline_before_children.kdl @@ -0,0 +1 @@ +node arg1 diff --git a/tests/test_cases/expected_kdl/slashdash_escline_before_node.kdl b/tests/test_cases/expected_kdl/slashdash_escline_before_node.kdl new file mode 100644 index 0000000..6810417 --- /dev/null +++ b/tests/test_cases/expected_kdl/slashdash_escline_before_node.kdl @@ -0,0 +1 @@ +node2 diff --git a/tests/test_cases/expected_kdl/slashdash_false_node.kdl b/tests/test_cases/expected_kdl/slashdash_false_node.kdl new file mode 100644 index 0000000..8f69eb8 --- /dev/null +++ b/tests/test_cases/expected_kdl/slashdash_false_node.kdl @@ -0,0 +1 @@ +node foo bar diff --git a/tests/test_cases/input/slashdash_after_arg_type_fail.kdl b/tests/test_cases/input/slashdash_after_arg_type_fail.kdl new file mode 100644 index 0000000..edb9250 --- /dev/null +++ b/tests/test_cases/input/slashdash_after_arg_type_fail.kdl @@ -0,0 +1 @@ +node (ty)/-arg1 arg2 diff --git a/tests/test_cases/input/slashdash_after_node_type_fail.kdl b/tests/test_cases/input/slashdash_after_node_type_fail.kdl new file mode 100644 index 0000000..5a27bc3 --- /dev/null +++ b/tests/test_cases/input/slashdash_after_node_type_fail.kdl @@ -0,0 +1,2 @@ +(ty)/-node +other-node diff --git a/tests/test_cases/input/slashdash_in_prop_fail.kdl b/tests/test_cases/input/slashdash_after_prop_key_fail.kdl similarity index 100% rename from tests/test_cases/input/slashdash_in_prop_fail.kdl rename to tests/test_cases/input/slashdash_after_prop_key_fail.kdl diff --git a/tests/test_cases/input/slashdash_after_prop_val_type_fail.kdl b/tests/test_cases/input/slashdash_after_prop_val_type_fail.kdl new file mode 100644 index 0000000..d4a063e --- /dev/null +++ b/tests/test_cases/input/slashdash_after_prop_val_type_fail.kdl @@ -0,0 +1 @@ +node key=(ty)/-val other-arg diff --git a/tests/test_cases/input/slashdash_before_children_end_fail.kdl b/tests/test_cases/input/slashdash_before_children_end_fail.kdl new file mode 100644 index 0000000..83b97ae --- /dev/null +++ b/tests/test_cases/input/slashdash_before_children_end_fail.kdl @@ -0,0 +1,4 @@ +node { + child1 + /- +} diff --git a/tests/test_cases/input/slashdash_before_eof_fail.kdl b/tests/test_cases/input/slashdash_before_eof_fail.kdl new file mode 100644 index 0000000..694173f --- /dev/null +++ b/tests/test_cases/input/slashdash_before_eof_fail.kdl @@ -0,0 +1 @@ +node foo /- diff --git a/tests/test_cases/input/slashdash_before_prop_value_fail.kdl b/tests/test_cases/input/slashdash_before_prop_value_fail.kdl new file mode 100644 index 0000000..de727dc --- /dev/null +++ b/tests/test_cases/input/slashdash_before_prop_value_fail.kdl @@ -0,0 +1 @@ +node key = /-val etc diff --git a/tests/test_cases/input/slashdash_before_semicolon_fail.kdl b/tests/test_cases/input/slashdash_before_semicolon_fail.kdl new file mode 100644 index 0000000..8c57284 --- /dev/null +++ b/tests/test_cases/input/slashdash_before_semicolon_fail.kdl @@ -0,0 +1 @@ +node foo /-; diff --git a/tests/test_cases/input/slashdash_escline_before_arg_type.kdl b/tests/test_cases/input/slashdash_escline_before_arg_type.kdl new file mode 100644 index 0000000..93231ec --- /dev/null +++ b/tests/test_cases/input/slashdash_escline_before_arg_type.kdl @@ -0,0 +1,2 @@ +node /-\ +(ty)arg1 arg2 diff --git a/tests/test_cases/input/slashdash_escline_before_children.kdl b/tests/test_cases/input/slashdash_escline_before_children.kdl new file mode 100644 index 0000000..40a97ee --- /dev/null +++ b/tests/test_cases/input/slashdash_escline_before_children.kdl @@ -0,0 +1,3 @@ +node arg1 /-\ +{ +} diff --git a/tests/test_cases/input/slashdash_escline_before_node.kdl b/tests/test_cases/input/slashdash_escline_before_node.kdl new file mode 100644 index 0000000..f7f7937 --- /dev/null +++ b/tests/test_cases/input/slashdash_escline_before_node.kdl @@ -0,0 +1,3 @@ +/-\ +node1 +node2 diff --git a/tests/test_cases/input/slashdash_false_node.kdl b/tests/test_cases/input/slashdash_false_node.kdl new file mode 100644 index 0000000..5e38eb7 --- /dev/null +++ b/tests/test_cases/input/slashdash_false_node.kdl @@ -0,0 +1,2 @@ +node foo /- +not-a-node bar diff --git a/tests/test_cases/input/slashdash_inside_arg_type_fail.kdl b/tests/test_cases/input/slashdash_inside_arg_type_fail.kdl new file mode 100644 index 0000000..649bcca --- /dev/null +++ b/tests/test_cases/input/slashdash_inside_arg_type_fail.kdl @@ -0,0 +1 @@ +node (/-bad)nope diff --git a/tests/test_cases/input/slashdash_inside_node_type_fail.kdl b/tests/test_cases/input/slashdash_inside_node_type_fail.kdl new file mode 100644 index 0000000..3ed584c --- /dev/null +++ b/tests/test_cases/input/slashdash_inside_node_type_fail.kdl @@ -0,0 +1 @@ +(/-ty)node