aboutsummaryrefslogtreecommitdiff
path: root/crates/syntax
diff options
context:
space:
mode:
authorMarijn Suijten <[email protected]>2020-11-17 19:02:46 +0000
committerMarijn Suijten <[email protected]>2021-01-03 11:05:52 +0000
commit42da26e9597443812da5a59b3fa48bdcbf619666 (patch)
tree8332cb8b91cd04fe0c15eec11f659b6095408112 /crates/syntax
parentcc081b7e1c68360ec157a31fa7fa32a38345e8d6 (diff)
parser,syntax: Add separate parser for stmt with optional semicolon
Adjusting `grammar::fragments::stmt` to Optional or Yes will break original functionality and tests.
Diffstat (limited to 'crates/syntax')
-rw-r--r--crates/syntax/src/lib.rs2
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rast1
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rast11
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rs (renamed from crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rs)0
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rast12
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rs (renamed from crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rs)0
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rast21
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rs (renamed from crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rs)0
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rast21
-rw-r--r--crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rs (renamed from crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rs)0
13 files changed, 66 insertions, 5 deletions
diff --git a/crates/syntax/src/lib.rs b/crates/syntax/src/lib.rs
index 51ae3da07..da151e328 100644
--- a/crates/syntax/src/lib.rs
+++ b/crates/syntax/src/lib.rs
@@ -215,7 +215,7 @@ impl ast::Attr {
215impl ast::Stmt { 215impl ast::Stmt {
216 /// Returns `text`, parsed as statement, but only if it has no errors. 216 /// Returns `text`, parsed as statement, but only if it has no errors.
217 pub fn parse(text: &str) -> Result<Self, ()> { 217 pub fn parse(text: &str) -> Result<Self, ()> {
218 parsing::parse_text_fragment(text, parser::FragmentKind::Statement) 218 parsing::parse_text_fragment(text, parser::FragmentKind::StatementOptionalSemi)
219 } 219 }
220} 220}
221 221
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rast b/crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rast
deleted file mode 100644
index 5df7507e2..000000000
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rast
+++ /dev/null
@@ -1 +0,0 @@
1ERROR
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rast b/crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rast
deleted file mode 100644
index 5df7507e2..000000000
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rast
+++ /dev/null
@@ -1 +0,0 @@
1ERROR
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rast b/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rast
deleted file mode 100644
index 5df7507e2..000000000
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rast
+++ /dev/null
@@ -1 +0,0 @@
1ERROR
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rast b/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rast
deleted file mode 100644
index 5df7507e2..000000000
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rast
+++ /dev/null
@@ -1 +0,0 @@
1ERROR
diff --git a/crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rast b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rast
new file mode 100644
index 000000000..8c186da93
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rast
@@ -0,0 +1,11 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
6 [email protected]
7 [email protected] "foo"
8 [email protected]
9 [email protected] "("
10 [email protected] ")"
11 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rs b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rs
index a280f9a5c..a280f9a5c 100644
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_fn_call.rs
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_fn_call.rs
diff --git a/crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rast b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rast
new file mode 100644
index 000000000..8ab38da21
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rast
@@ -0,0 +1,12 @@
1[email protected]
2 [email protected] "let"
3 [email protected] " "
4 [email protected]
5 [email protected]
6 [email protected] "x"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "10"
12 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rs b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rs
index de8a7f1fc..de8a7f1fc 100644
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_let_stmt.rs
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_let_stmt.rs
diff --git a/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rast b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rast
new file mode 100644
index 000000000..81d6df29a
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
6 [email protected] "m1"
7 [email protected] "!"
8 [email protected]
9 [email protected] "{"
10 [email protected] " "
11 [email protected] "let"
12 [email protected] " "
13 [email protected] "a"
14 [email protected] " "
15 [email protected] "="
16 [email protected] " "
17 [email protected] "0"
18 [email protected] ";"
19 [email protected] " "
20 [email protected] "}"
21 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rs b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rs
index 075f30159..075f30159 100644
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_let_stmt.rs
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_let_stmt.rs
diff --git a/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rast b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rast
new file mode 100644
index 000000000..81d6df29a
--- /dev/null
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
6 [email protected] "m1"
7 [email protected] "!"
8 [email protected]
9 [email protected] "{"
10 [email protected] " "
11 [email protected] "let"
12 [email protected] " "
13 [email protected] "a"
14 [email protected] " "
15 [email protected] "="
16 [email protected] " "
17 [email protected] "0"
18 [email protected] ";"
19 [email protected] " "
20 [email protected] "}"
21 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rs b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rs
index 075f30159..075f30159 100644
--- a/crates/syntax/test_data/parser/fragments/stmt/err/0000_macro_unterminated_let_stmt.rs
+++ b/crates/syntax/test_data/parser/fragments/stmt/ok/0000_macro_unterminated_let_stmt.rs