aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_parser/src/syntax_kind
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-12-21 10:47:47 +0000
committerGitHub <[email protected]>2019-12-21 10:47:47 +0000
commit90ef070db3dce0a7acb9cd11d0b0d72de13c9d79 (patch)
treec6fcc8c77fe4948b356e397fb5fe1f8e8ac39037 /crates/ra_parser/src/syntax_kind
parent3ebf15c9b29b1fed6319d04f540ad48cd4bd6995 (diff)
parent4195c0e5f9a3db7646d4df28aa8c77a863c35759 (diff)
Merge #2628
2628: Add macro 2.0 support in parser r=matklad a=edwin0cheng This PR added a new syntax kind : `MACRO_DEF` and a keyword `MACRO_KW` there are two syntax for declarative macro 2.0 : 1. Normal : `macro m { ($i:ident) => {} }` , which handle similar to legacy one. 2. Call like: `macro m($i:ident) {}`, it produces a single token tree which have two child token trees : `($i:ident)` and `{}` Co-authored-by: Edwin Cheng <[email protected]>
Diffstat (limited to 'crates/ra_parser/src/syntax_kind')
-rw-r--r--crates/ra_parser/src/syntax_kind/generated.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs
index fe0fcdb33..afe4ce51a 100644
--- a/crates/ra_parser/src/syntax_kind/generated.rs
+++ b/crates/ra_parser/src/syntax_kind/generated.rs
@@ -100,6 +100,7 @@ pub enum SyntaxKind {
100 TRY_KW, 100 TRY_KW,
101 BOX_KW, 101 BOX_KW,
102 AWAIT_KW, 102 AWAIT_KW,
103 MACRO_KW,
103 AUTO_KW, 104 AUTO_KW,
104 DEFAULT_KW, 105 DEFAULT_KW,
105 EXISTENTIAL_KW, 106 EXISTENTIAL_KW,
@@ -136,6 +137,7 @@ pub enum SyntaxKind {
136 TYPE_ALIAS_DEF, 137 TYPE_ALIAS_DEF,
137 MACRO_CALL, 138 MACRO_CALL,
138 TOKEN_TREE, 139 TOKEN_TREE,
140 MACRO_DEF,
139 PAREN_TYPE, 141 PAREN_TYPE,
140 TUPLE_TYPE, 142 TUPLE_TYPE,
141 NEVER_TYPE, 143 NEVER_TYPE,
@@ -251,7 +253,7 @@ impl SyntaxKind {
251 | SUPER_KW | IN_KW | WHERE_KW | FOR_KW | LOOP_KW | WHILE_KW | CONTINUE_KW 253 | SUPER_KW | IN_KW | WHERE_KW | FOR_KW | LOOP_KW | WHILE_KW | CONTINUE_KW
252 | BREAK_KW | IF_KW | ELSE_KW | MATCH_KW | CONST_KW | STATIC_KW | MUT_KW | UNSAFE_KW 254 | BREAK_KW | IF_KW | ELSE_KW | MATCH_KW | CONST_KW | STATIC_KW | MUT_KW | UNSAFE_KW
253 | TYPE_KW | REF_KW | LET_KW | MOVE_KW | RETURN_KW | TRY_KW | BOX_KW | AWAIT_KW 255 | TYPE_KW | REF_KW | LET_KW | MOVE_KW | RETURN_KW | TRY_KW | BOX_KW | AWAIT_KW
254 | AUTO_KW | DEFAULT_KW | EXISTENTIAL_KW | UNION_KW => true, 256 | MACRO_KW | AUTO_KW | DEFAULT_KW | EXISTENTIAL_KW | UNION_KW => true,
255 _ => false, 257 _ => false,
256 } 258 }
257 } 259 }
@@ -314,6 +316,7 @@ impl SyntaxKind {
314 "try" => TRY_KW, 316 "try" => TRY_KW,
315 "box" => BOX_KW, 317 "box" => BOX_KW,
316 "await" => AWAIT_KW, 318 "await" => AWAIT_KW,
319 "macro" => MACRO_KW,
317 _ => return None, 320 _ => return None,
318 }; 321 };
319 Some(kw) 322 Some(kw)
@@ -628,6 +631,9 @@ macro_rules! T {
628 ( await ) => { 631 ( await ) => {
629 $crate::SyntaxKind::AWAIT_KW 632 $crate::SyntaxKind::AWAIT_KW
630 }; 633 };
634 ( macro ) => {
635 $crate::SyntaxKind::MACRO_KW
636 };
631 ( auto ) => { 637 ( auto ) => {
632 $crate::SyntaxKind::AUTO_KW 638 $crate::SyntaxKind::AUTO_KW
633 }; 639 };