From a9b39aafba4b23f49c8e16cb036d5ac3deb23df9 Mon Sep 17 00:00:00 2001 From: Pierre Wilke <pierre.wilke@centralesupelec.fr> Date: Fri, 6 Mar 2020 20:10:55 +0100 Subject: [PATCH] Nouveaux tests pour commentaires multi-lignes (et meilleure regexp) --- src/e_regexp.ml | 8 +++++--- tests/basic/comment++.e | 5 +++++ tests/basic/comment++.e.expect_14_12_3_8_12 | 1 + tests/basic/comment++.e.expect_1_2_3 | 1 + tests/basic/useless-assigns.e | 6 ++++++ tests/basic/useless-assigns.e.expect_14_12_3_8_12 | 1 + tests/basic/useless-assigns.e.expect_1_2_3 | 1 + 7 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 tests/basic/comment++.e create mode 100644 tests/basic/comment++.e.expect_14_12_3_8_12 create mode 100644 tests/basic/comment++.e.expect_1_2_3 create mode 100644 tests/basic/useless-assigns.e create mode 100644 tests/basic/useless-assigns.e.expect_14_12_3_8_12 create mode 100644 tests/basic/useless-assigns.e.expect_1_2_3 diff --git a/src/e_regexp.ml b/src/e_regexp.ml index a59afbd..4b15681 100644 --- a/src/e_regexp.ml +++ b/src/e_regexp.ml @@ -103,9 +103,11 @@ let list_regexp = fun s -> None); (Cat(keyword_regexp "/*", Cat( - Star (Alt (char_range (List.filter (fun c -> c <> '*') alphabet), - Cat (char_regexp '*', - char_range (List.filter (fun c -> c <> '/') alphabet)))), + Star (Alt ( + char_range (List.filter (fun c -> c <> '*') alphabet), + Cat (Star(char_regexp '*'), + plus(char_range (List.filter (fun c -> c <> '/' && c <> '*') alphabet))) + )), keyword_regexp "*/")), fun s -> None); (Cat (char_regexp '\'', diff --git a/tests/basic/comment++.e b/tests/basic/comment++.e new file mode 100644 index 0000000..b2f50ff --- /dev/null +++ b/tests/basic/comment++.e @@ -0,0 +1,5 @@ +/** /**/ +/** Commentaire ! */ +main(){ + return 23; +} diff --git a/tests/basic/comment++.e.expect_14_12_3_8_12 b/tests/basic/comment++.e.expect_14_12_3_8_12 new file mode 100644 index 0000000..810d9ab --- /dev/null +++ b/tests/basic/comment++.e.expect_14_12_3_8_12 @@ -0,0 +1 @@ +{"output": "", "error": null, "retval": 23} \ No newline at end of file diff --git a/tests/basic/comment++.e.expect_1_2_3 b/tests/basic/comment++.e.expect_1_2_3 new file mode 100644 index 0000000..810d9ab --- /dev/null +++ b/tests/basic/comment++.e.expect_1_2_3 @@ -0,0 +1 @@ +{"output": "", "error": null, "retval": 23} \ No newline at end of file diff --git a/tests/basic/useless-assigns.e b/tests/basic/useless-assigns.e new file mode 100644 index 0000000..d635607 --- /dev/null +++ b/tests/basic/useless-assigns.e @@ -0,0 +1,6 @@ +main(){ + x = 8; + y = 15; + z = 4 * x + y; + return 1; +} diff --git a/tests/basic/useless-assigns.e.expect_14_12_3_8_12 b/tests/basic/useless-assigns.e.expect_14_12_3_8_12 new file mode 100644 index 0000000..91ce1a2 --- /dev/null +++ b/tests/basic/useless-assigns.e.expect_14_12_3_8_12 @@ -0,0 +1 @@ +{"output": "", "error": null, "retval": 1} \ No newline at end of file diff --git a/tests/basic/useless-assigns.e.expect_1_2_3 b/tests/basic/useless-assigns.e.expect_1_2_3 new file mode 100644 index 0000000..91ce1a2 --- /dev/null +++ b/tests/basic/useless-assigns.e.expect_1_2_3 @@ -0,0 +1 @@ +{"output": "", "error": null, "retval": 1} \ No newline at end of file -- GitLab