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