diff options
33 files changed, 377 insertions, 171 deletions
diff --git a/grammar.ron b/grammar.ron index 7c76d595d..d7fea44fb 100644 --- a/grammar.ron +++ b/grammar.ron | |||
@@ -74,6 +74,8 @@ Grammar( | |||
74 | nodes: [ | 74 | nodes: [ |
75 | "FILE", | 75 | "FILE", |
76 | "STRUCT_ITEM", | 76 | "STRUCT_ITEM", |
77 | "ENUM_ITEM", | ||
78 | "ENUM_VARIANT", | ||
77 | "NAMED_FIELD", | 79 | "NAMED_FIELD", |
78 | "POS_FIELD", | 80 | "POS_FIELD", |
79 | "FN_ITEM", | 81 | "FN_ITEM", |
diff --git a/src/parser/event_parser/grammar/expressions.rs b/src/parser/event_parser/grammar/expressions.rs index c81dc6c35..8caaf3553 100644 --- a/src/parser/event_parser/grammar/expressions.rs +++ b/src/parser/event_parser/grammar/expressions.rs | |||
@@ -12,3 +12,9 @@ pub(super) fn literal(p: &mut Parser) -> bool { | |||
12 | _ => false, | 12 | _ => false, |
13 | } | 13 | } |
14 | } | 14 | } |
15 | |||
16 | pub(super) fn expr(p: &mut Parser) { | ||
17 | if !literal(p) { | ||
18 | p.error().message("expected expression").emit(); | ||
19 | } | ||
20 | } | ||
diff --git a/src/parser/event_parser/grammar/items/mod.rs b/src/parser/event_parser/grammar/items/mod.rs index f10fb230b..0a50fffc1 100644 --- a/src/parser/event_parser/grammar/items/mod.rs +++ b/src/parser/event_parser/grammar/items/mod.rs | |||
@@ -9,8 +9,9 @@ pub(super) fn mod_contents(p: &mut Parser, stop_on_r_curly: bool) { | |||
9 | } | 9 | } |
10 | } | 10 | } |
11 | 11 | ||
12 | pub(super) const ITEM_FIRST: TokenSet = | 12 | pub(super) const ITEM_FIRST: TokenSet = token_set![ |
13 | token_set![EXTERN_KW, MOD_KW, USE_KW, STRUCT_KW, FN_KW, PUB_KW, POUND,]; | 13 | EXTERN_KW, MOD_KW, USE_KW, STRUCT_KW, ENUM_KW, FN_KW, PUB_KW, POUND |
14 | ]; | ||
14 | 15 | ||
15 | fn item(p: &mut Parser) { | 16 | fn item(p: &mut Parser) { |
16 | let item = p.start(); | 17 | let item = p.start(); |
@@ -34,6 +35,10 @@ fn item(p: &mut Parser) { | |||
34 | structs::struct_item(p); | 35 | structs::struct_item(p); |
35 | STRUCT_ITEM | 36 | STRUCT_ITEM |
36 | } | 37 | } |
38 | ENUM_KW => { | ||
39 | structs::enum_item(p); | ||
40 | ENUM_ITEM | ||
41 | } | ||
37 | FN_KW => { | 42 | FN_KW => { |
38 | fn_item(p); | 43 | fn_item(p); |
39 | FN_ITEM | 44 | FN_ITEM |
diff --git a/src/parser/event_parser/grammar/items/structs.rs b/src/parser/event_parser/grammar/items/structs.rs index 0934f3d28..6e438413b 100644 --- a/src/parser/event_parser/grammar/items/structs.rs +++ b/src/parser/event_parser/grammar/items/structs.rs | |||
@@ -40,6 +40,40 @@ pub(super) fn struct_item(p: &mut Parser) { | |||
40 | } | 40 | } |
41 | } | 41 | } |
42 | 42 | ||
43 | pub(super) fn enum_item(p: &mut Parser) { | ||
44 | assert!(p.at(ENUM_KW)); | ||
45 | p.bump(); | ||
46 | p.expect(IDENT); | ||
47 | type_param_list(p); | ||
48 | where_clause(p); | ||
49 | if p.expect(L_CURLY) { | ||
50 | while !p.at(EOF) && !p.at(R_CURLY) { | ||
51 | let var = p.start(); | ||
52 | attributes::outer_attributes(p); | ||
53 | if p.at(IDENT) { | ||
54 | p.bump(); | ||
55 | match p.current() { | ||
56 | L_CURLY => named_fields(p), | ||
57 | L_PAREN => pos_fields(p), | ||
58 | EQ => { | ||
59 | p.bump(); | ||
60 | expressions::expr(p); | ||
61 | } | ||
62 | _ => (), | ||
63 | } | ||
64 | var.complete(p, ENUM_VARIANT); | ||
65 | } else { | ||
66 | var.abandon(p); | ||
67 | p.err_and_bump("expected enum variant"); | ||
68 | } | ||
69 | if !p.at(R_CURLY) { | ||
70 | p.expect(COMMA); | ||
71 | } | ||
72 | } | ||
73 | p.expect(R_CURLY); | ||
74 | } | ||
75 | } | ||
76 | |||
43 | fn named_fields(p: &mut Parser) { | 77 | fn named_fields(p: &mut Parser) { |
44 | assert!(p.at(L_CURLY)); | 78 | assert!(p.at(L_CURLY)); |
45 | p.bump(); | 79 | p.bump(); |
diff --git a/src/syntax_kinds.rs b/src/syntax_kinds.rs index b6c281cd5..519326f48 100644 --- a/src/syntax_kinds.rs +++ b/src/syntax_kinds.rs | |||
@@ -76,6 +76,8 @@ pub enum SyntaxKind { | |||
76 | SHEBANG, | 76 | SHEBANG, |
77 | FILE, | 77 | FILE, |
78 | STRUCT_ITEM, | 78 | STRUCT_ITEM, |
79 | ENUM_ITEM, | ||
80 | ENUM_VARIANT, | ||
79 | NAMED_FIELD, | 81 | NAMED_FIELD, |
80 | POS_FIELD, | 82 | POS_FIELD, |
81 | FN_ITEM, | 83 | FN_ITEM, |
@@ -176,6 +178,8 @@ impl SyntaxKind { | |||
176 | SHEBANG => &SyntaxInfo { name: "SHEBANG" }, | 178 | SHEBANG => &SyntaxInfo { name: "SHEBANG" }, |
177 | FILE => &SyntaxInfo { name: "FILE" }, | 179 | FILE => &SyntaxInfo { name: "FILE" }, |
178 | STRUCT_ITEM => &SyntaxInfo { name: "STRUCT_ITEM" }, | 180 | STRUCT_ITEM => &SyntaxInfo { name: "STRUCT_ITEM" }, |
181 | ENUM_ITEM => &SyntaxInfo { name: "ENUM_ITEM" }, | ||
182 | ENUM_VARIANT => &SyntaxInfo { name: "ENUM_VARIANT" }, | ||
179 | NAMED_FIELD => &SyntaxInfo { name: "NAMED_FIELD" }, | 183 | NAMED_FIELD => &SyntaxInfo { name: "NAMED_FIELD" }, |
180 | POS_FIELD => &SyntaxInfo { name: "POS_FIELD" }, | 184 | POS_FIELD => &SyntaxInfo { name: "POS_FIELD" }, |
181 | FN_ITEM => &SyntaxInfo { name: "FN_ITEM" }, | 185 | FN_ITEM => &SyntaxInfo { name: "FN_ITEM" }, |
diff --git a/src/tree/mod.rs b/src/tree/mod.rs index 795f23f42..9ed0504c7 100644 --- a/src/tree/mod.rs +++ b/src/tree/mod.rs | |||
@@ -106,7 +106,19 @@ impl<'f> Node<'f> { | |||
106 | 106 | ||
107 | impl<'f> fmt::Debug for Node<'f> { | 107 | impl<'f> fmt::Debug for Node<'f> { |
108 | fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { | 108 | fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { |
109 | write!(fmt, "{:?}@{:?}", self.kind(), self.range()) | 109 | write!(fmt, "{:?}@{:?}", self.kind(), self.range())?; |
110 | if has_short_text(self.kind()) { | ||
111 | write!(fmt, " \"{}\"", self.text())?; | ||
112 | } | ||
113 | Ok(()) | ||
114 | } | ||
115 | } | ||
116 | |||
117 | fn has_short_text(kind: SyntaxKind) -> bool { | ||
118 | use syntax_kinds::*; | ||
119 | match kind { | ||
120 | IDENT | LIFETIME => true, | ||
121 | _ => false, | ||
110 | } | 122 | } |
111 | } | 123 | } |
112 | 124 | ||
diff --git a/tests/data/parser/err/0000_struct_field_missing_comma.txt b/tests/data/parser/err/0000_struct_field_missing_comma.txt index f59205f55..d94b4fd9e 100644 --- a/tests/data/parser/err/0000_struct_field_missing_comma.txt +++ b/tests/data/parser/err/0000_struct_field_missing_comma.txt | |||
@@ -2,21 +2,21 @@ FILE@[0; 34) | |||
2 | STRUCT_ITEM@[0; 34) | 2 | STRUCT_ITEM@[0; 34) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "S" |
6 | WHITESPACE@[8; 9) | 6 | WHITESPACE@[8; 9) |
7 | L_CURLY@[9; 10) | 7 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 26) | 8 | NAMED_FIELD@[10; 26) |
9 | WHITESPACE@[10; 15) | 9 | WHITESPACE@[10; 15) |
10 | IDENT@[15; 16) | 10 | IDENT@[15; 16) "a" |
11 | COLON@[16; 17) | 11 | COLON@[16; 17) |
12 | WHITESPACE@[17; 18) | 12 | WHITESPACE@[17; 18) |
13 | IDENT@[18; 21) | 13 | IDENT@[18; 21) "u32" |
14 | WHITESPACE@[21; 26) | 14 | WHITESPACE@[21; 26) |
15 | err: `expected COMMA` | 15 | err: `expected COMMA` |
16 | NAMED_FIELD@[26; 33) | 16 | NAMED_FIELD@[26; 33) |
17 | IDENT@[26; 27) | 17 | IDENT@[26; 27) "b" |
18 | COLON@[27; 28) | 18 | COLON@[27; 28) |
19 | WHITESPACE@[28; 29) | 19 | WHITESPACE@[28; 29) |
20 | IDENT@[29; 32) | 20 | IDENT@[29; 32) "u32" |
21 | WHITESPACE@[32; 33) | 21 | WHITESPACE@[32; 33) |
22 | R_CURLY@[33; 34) | 22 | R_CURLY@[33; 34) |
diff --git a/tests/data/parser/err/0001_item_recovery_in_file.txt b/tests/data/parser/err/0001_item_recovery_in_file.txt index 0ac741aa8..ac0760695 100644 --- a/tests/data/parser/err/0001_item_recovery_in_file.txt +++ b/tests/data/parser/err/0001_item_recovery_in_file.txt | |||
@@ -1,16 +1,16 @@ | |||
1 | FILE@[0; 21) | 1 | FILE@[0; 21) |
2 | ERROR@[0; 3) | 2 | ERROR@[0; 3) |
3 | err: `expected item` | 3 | err: `expected item` |
4 | IDENT@[0; 2) | 4 | IDENT@[0; 2) "if" |
5 | WHITESPACE@[2; 3) | 5 | WHITESPACE@[2; 3) |
6 | ERROR@[3; 10) | 6 | ERROR@[3; 10) |
7 | err: `expected item` | 7 | err: `expected item` |
8 | IDENT@[3; 8) | 8 | IDENT@[3; 8) "match" |
9 | WHITESPACE@[8; 10) | 9 | WHITESPACE@[8; 10) |
10 | STRUCT_ITEM@[10; 21) | 10 | STRUCT_ITEM@[10; 21) |
11 | STRUCT_KW@[10; 16) | 11 | STRUCT_KW@[10; 16) |
12 | WHITESPACE@[16; 17) | 12 | WHITESPACE@[16; 17) |
13 | IDENT@[17; 18) | 13 | IDENT@[17; 18) "S" |
14 | WHITESPACE@[18; 19) | 14 | WHITESPACE@[18; 19) |
15 | L_CURLY@[19; 20) | 15 | L_CURLY@[19; 20) |
16 | R_CURLY@[20; 21) | 16 | R_CURLY@[20; 21) |
diff --git a/tests/data/parser/err/0003_C++_semicolon.txt b/tests/data/parser/err/0003_C++_semicolon.txt index 8dd45d2e5..d77c06378 100644 --- a/tests/data/parser/err/0003_C++_semicolon.txt +++ b/tests/data/parser/err/0003_C++_semicolon.txt | |||
@@ -2,22 +2,22 @@ FILE@[0; 40) | |||
2 | STRUCT_ITEM@[0; 39) | 2 | STRUCT_ITEM@[0; 39) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "S" |
6 | WHITESPACE@[8; 9) | 6 | WHITESPACE@[8; 9) |
7 | L_CURLY@[9; 10) | 7 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 21) | 8 | NAMED_FIELD@[10; 21) |
9 | WHITESPACE@[10; 15) | 9 | WHITESPACE@[10; 15) |
10 | IDENT@[15; 16) | 10 | IDENT@[15; 16) "a" |
11 | COLON@[16; 17) | 11 | COLON@[16; 17) |
12 | WHITESPACE@[17; 18) | 12 | WHITESPACE@[17; 18) |
13 | IDENT@[18; 21) | 13 | IDENT@[18; 21) "i32" |
14 | COMMA@[21; 22) | 14 | COMMA@[21; 22) |
15 | NAMED_FIELD@[22; 36) | 15 | NAMED_FIELD@[22; 36) |
16 | WHITESPACE@[22; 27) | 16 | WHITESPACE@[22; 27) |
17 | IDENT@[27; 28) | 17 | IDENT@[27; 28) "b" |
18 | COLON@[28; 29) | 18 | COLON@[28; 29) |
19 | WHITESPACE@[29; 30) | 19 | WHITESPACE@[29; 30) |
20 | IDENT@[30; 36) | 20 | IDENT@[30; 36) "String" |
21 | COMMA@[36; 37) | 21 | COMMA@[36; 37) |
22 | WHITESPACE@[37; 38) | 22 | WHITESPACE@[37; 38) |
23 | R_CURLY@[38; 39) | 23 | R_CURLY@[38; 39) |
diff --git a/tests/data/parser/err/0004_use_path_bad_segment.txt b/tests/data/parser/err/0004_use_path_bad_segment.txt index adc049683..7f43611eb 100644 --- a/tests/data/parser/err/0004_use_path_bad_segment.txt +++ b/tests/data/parser/err/0004_use_path_bad_segment.txt | |||
@@ -6,7 +6,7 @@ FILE@[0; 12) | |||
6 | PATH@[3; 7) | 6 | PATH@[3; 7) |
7 | PATH_SEGMENT@[3; 7) | 7 | PATH_SEGMENT@[3; 7) |
8 | WHITESPACE@[3; 4) | 8 | WHITESPACE@[3; 4) |
9 | IDENT@[4; 7) | 9 | IDENT@[4; 7) "foo" |
10 | COLONCOLON@[7; 9) | 10 | COLONCOLON@[7; 9) |
11 | PATH_SEGMENT@[9; 9) | 11 | PATH_SEGMENT@[9; 9) |
12 | err: `expected identifier` | 12 | err: `expected identifier` |
diff --git a/tests/data/parser/err/0005_attribute_recover.txt b/tests/data/parser/err/0005_attribute_recover.txt index 10f7b2da3..00a534af1 100644 --- a/tests/data/parser/err/0005_attribute_recover.txt +++ b/tests/data/parser/err/0005_attribute_recover.txt | |||
@@ -4,10 +4,10 @@ FILE@[0; 54) | |||
4 | POUND@[0; 1) | 4 | POUND@[0; 1) |
5 | L_BRACK@[1; 2) | 5 | L_BRACK@[1; 2) |
6 | META_ITEM@[2; 17) | 6 | META_ITEM@[2; 17) |
7 | IDENT@[2; 5) | 7 | IDENT@[2; 5) "foo" |
8 | L_PAREN@[5; 6) | 8 | L_PAREN@[5; 6) |
9 | META_ITEM@[6; 9) | 9 | META_ITEM@[6; 9) |
10 | IDENT@[6; 9) | 10 | IDENT@[6; 9) "foo" |
11 | COMMA@[9; 10) | 11 | COMMA@[9; 10) |
12 | ERROR@[10; 12) | 12 | ERROR@[10; 12) |
13 | err: `expected attribute` | 13 | err: `expected attribute` |
@@ -24,7 +24,7 @@ FILE@[0; 54) | |||
24 | WHITESPACE@[18; 19) | 24 | WHITESPACE@[18; 19) |
25 | FN_KW@[19; 21) | 25 | FN_KW@[19; 21) |
26 | WHITESPACE@[21; 22) | 26 | WHITESPACE@[21; 22) |
27 | IDENT@[22; 25) | 27 | IDENT@[22; 25) "foo" |
28 | L_PAREN@[25; 26) | 28 | L_PAREN@[25; 26) |
29 | R_PAREN@[26; 27) | 29 | R_PAREN@[26; 27) |
30 | WHITESPACE@[27; 28) | 30 | WHITESPACE@[27; 28) |
@@ -37,14 +37,14 @@ FILE@[0; 54) | |||
37 | POUND@[34; 35) | 37 | POUND@[34; 35) |
38 | L_BRACK@[35; 36) | 38 | L_BRACK@[35; 36) |
39 | META_ITEM@[36; 41) | 39 | META_ITEM@[36; 41) |
40 | IDENT@[36; 39) | 40 | IDENT@[36; 39) "foo" |
41 | L_PAREN@[39; 40) | 41 | L_PAREN@[39; 40) |
42 | err: `expected attribute` | 42 | err: `expected attribute` |
43 | WHITESPACE@[40; 41) | 43 | WHITESPACE@[40; 41) |
44 | err: `expected R_BRACK` | 44 | err: `expected R_BRACK` |
45 | FN_KW@[41; 43) | 45 | FN_KW@[41; 43) |
46 | WHITESPACE@[43; 44) | 46 | WHITESPACE@[43; 44) |
47 | IDENT@[44; 47) | 47 | IDENT@[44; 47) "foo" |
48 | L_PAREN@[47; 48) | 48 | L_PAREN@[47; 48) |
49 | R_PAREN@[48; 49) | 49 | R_PAREN@[48; 49) |
50 | WHITESPACE@[49; 50) | 50 | WHITESPACE@[49; 50) |
diff --git a/tests/data/parser/err/0006_named_field_recovery.txt b/tests/data/parser/err/0006_named_field_recovery.txt index d3815102b..0437bf2e7 100644 --- a/tests/data/parser/err/0006_named_field_recovery.txt +++ b/tests/data/parser/err/0006_named_field_recovery.txt | |||
@@ -2,15 +2,15 @@ FILE@[0; 74) | |||
2 | STRUCT_ITEM@[0; 74) | 2 | STRUCT_ITEM@[0; 74) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "S" |
6 | WHITESPACE@[8; 9) | 6 | WHITESPACE@[8; 9) |
7 | L_CURLY@[9; 10) | 7 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 21) | 8 | NAMED_FIELD@[10; 21) |
9 | WHITESPACE@[10; 15) | 9 | WHITESPACE@[10; 15) |
10 | IDENT@[15; 16) | 10 | IDENT@[15; 16) "f" |
11 | COLON@[16; 17) | 11 | COLON@[16; 17) |
12 | WHITESPACE@[17; 18) | 12 | WHITESPACE@[17; 18) |
13 | IDENT@[18; 21) | 13 | IDENT@[18; 21) "u32" |
14 | COMMA@[21; 22) | 14 | COMMA@[21; 22) |
15 | VISIBILITY@[22; 31) | 15 | VISIBILITY@[22; 31) |
16 | WHITESPACE@[22; 27) | 16 | WHITESPACE@[22; 27) |
@@ -37,17 +37,17 @@ FILE@[0; 74) | |||
37 | VISIBILITY@[48; 52) | 37 | VISIBILITY@[48; 52) |
38 | PUB_KW@[48; 51) | 38 | PUB_KW@[48; 51) |
39 | WHITESPACE@[51; 52) | 39 | WHITESPACE@[51; 52) |
40 | IDENT@[52; 53) | 40 | IDENT@[52; 53) "x" |
41 | COLON@[53; 54) | 41 | COLON@[53; 54) |
42 | WHITESPACE@[54; 55) | 42 | WHITESPACE@[54; 55) |
43 | IDENT@[55; 58) | 43 | IDENT@[55; 58) "u32" |
44 | COMMA@[58; 59) | 44 | COMMA@[58; 59) |
45 | NAMED_FIELD@[59; 70) | 45 | NAMED_FIELD@[59; 70) |
46 | WHITESPACE@[59; 64) | 46 | WHITESPACE@[59; 64) |
47 | IDENT@[64; 65) | 47 | IDENT@[64; 65) "z" |
48 | COLON@[65; 66) | 48 | COLON@[65; 66) |
49 | WHITESPACE@[66; 67) | 49 | WHITESPACE@[66; 67) |
50 | IDENT@[67; 70) | 50 | IDENT@[67; 70) "f64" |
51 | COMMA@[70; 71) | 51 | COMMA@[70; 71) |
52 | WHITESPACE@[71; 72) | 52 | WHITESPACE@[71; 72) |
53 | R_CURLY@[72; 73) | 53 | R_CURLY@[72; 73) |
diff --git a/tests/data/parser/err/0007_stray_curly_in_file.txt b/tests/data/parser/err/0007_stray_curly_in_file.txt index 04bf17bc7..b4da4464d 100644 --- a/tests/data/parser/err/0007_stray_curly_in_file.txt +++ b/tests/data/parser/err/0007_stray_curly_in_file.txt | |||
@@ -6,7 +6,7 @@ FILE@[0; 31) | |||
6 | STRUCT_ITEM@[3; 14) | 6 | STRUCT_ITEM@[3; 14) |
7 | STRUCT_KW@[3; 9) | 7 | STRUCT_KW@[3; 9) |
8 | WHITESPACE@[9; 10) | 8 | WHITESPACE@[9; 10) |
9 | IDENT@[10; 11) | 9 | IDENT@[10; 11) "S" |
10 | SEMI@[11; 12) | 10 | SEMI@[11; 12) |
11 | WHITESPACE@[12; 14) | 11 | WHITESPACE@[12; 14) |
12 | ERROR@[14; 17) | 12 | ERROR@[14; 17) |
@@ -16,7 +16,7 @@ FILE@[0; 31) | |||
16 | FN_ITEM@[17; 29) | 16 | FN_ITEM@[17; 29) |
17 | FN_KW@[17; 19) | 17 | FN_KW@[17; 19) |
18 | WHITESPACE@[19; 20) | 18 | WHITESPACE@[19; 20) |
19 | IDENT@[20; 23) | 19 | IDENT@[20; 23) "foo" |
20 | L_PAREN@[23; 24) | 20 | L_PAREN@[23; 24) |
21 | R_PAREN@[24; 25) | 21 | R_PAREN@[24; 25) |
22 | L_CURLY@[25; 26) | 22 | L_CURLY@[25; 26) |
diff --git a/tests/data/parser/err/0008_item_block_recovery.txt b/tests/data/parser/err/0008_item_block_recovery.txt index 4bb66f56a..df6a952cd 100644 --- a/tests/data/parser/err/0008_item_block_recovery.txt +++ b/tests/data/parser/err/0008_item_block_recovery.txt | |||
@@ -2,7 +2,7 @@ FILE@[0; 95) | |||
2 | FN_ITEM@[0; 14) | 2 | FN_ITEM@[0; 14) |
3 | FN_KW@[0; 2) | 3 | FN_KW@[0; 2) |
4 | WHITESPACE@[2; 3) | 4 | WHITESPACE@[2; 3) |
5 | IDENT@[3; 6) | 5 | IDENT@[3; 6) "foo" |
6 | L_PAREN@[6; 7) | 6 | L_PAREN@[6; 7) |
7 | R_PAREN@[7; 8) | 7 | R_PAREN@[7; 8) |
8 | WHITESPACE@[8; 9) | 8 | WHITESPACE@[8; 9) |
@@ -12,7 +12,7 @@ FILE@[0; 95) | |||
12 | WHITESPACE@[12; 14) | 12 | WHITESPACE@[12; 14) |
13 | ERROR@[14; 17) | 13 | ERROR@[14; 17) |
14 | err: `expected item` | 14 | err: `expected item` |
15 | IDENT@[14; 17) | 15 | IDENT@[14; 17) "bar" |
16 | ERROR@[17; 18) | 16 | ERROR@[17; 18) |
17 | err: `expected item` | 17 | err: `expected item` |
18 | L_PAREN@[17; 18) | 18 | L_PAREN@[17; 18) |
@@ -24,7 +24,7 @@ FILE@[0; 95) | |||
24 | err: `expected item` | 24 | err: `expected item` |
25 | L_CURLY@[20; 21) | 25 | L_CURLY@[20; 21) |
26 | WHITESPACE@[21; 26) | 26 | WHITESPACE@[21; 26) |
27 | IDENT@[26; 28) | 27 | IDENT@[26; 28) "if" |
28 | WHITESPACE@[28; 29) | 28 | WHITESPACE@[28; 29) |
29 | TRUE_KW@[29; 33) | 29 | TRUE_KW@[29; 33) |
30 | WHITESPACE@[33; 34) | 30 | WHITESPACE@[33; 34) |
@@ -34,7 +34,7 @@ FILE@[0; 95) | |||
34 | WHITESPACE@[45; 50) | 34 | WHITESPACE@[45; 50) |
35 | R_CURLY@[50; 51) | 35 | R_CURLY@[50; 51) |
36 | WHITESPACE@[51; 52) | 36 | WHITESPACE@[51; 52) |
37 | IDENT@[52; 56) | 37 | IDENT@[52; 56) "else" |
38 | WHITESPACE@[56; 57) | 38 | WHITESPACE@[56; 57) |
39 | L_CURLY@[57; 58) | 39 | L_CURLY@[57; 58) |
40 | WHITESPACE@[58; 67) | 40 | WHITESPACE@[58; 67) |
@@ -51,7 +51,7 @@ FILE@[0; 95) | |||
51 | FN_ITEM@[82; 95) | 51 | FN_ITEM@[82; 95) |
52 | FN_KW@[82; 84) | 52 | FN_KW@[82; 84) |
53 | WHITESPACE@[84; 85) | 53 | WHITESPACE@[84; 85) |
54 | IDENT@[85; 88) | 54 | IDENT@[85; 88) "baz" |
55 | L_PAREN@[88; 89) | 55 | L_PAREN@[88; 89) |
56 | R_PAREN@[89; 90) | 56 | R_PAREN@[89; 90) |
57 | WHITESPACE@[90; 91) | 57 | WHITESPACE@[90; 91) |
diff --git a/tests/data/parser/err/0009_broken_struct_type_parameter.txt b/tests/data/parser/err/0009_broken_struct_type_parameter.txt index c6b1adb0c..f329735b6 100644 --- a/tests/data/parser/err/0009_broken_struct_type_parameter.txt +++ b/tests/data/parser/err/0009_broken_struct_type_parameter.txt | |||
@@ -2,7 +2,7 @@ FILE@[0; 43) | |||
2 | STRUCT_ITEM@[0; 12) | 2 | STRUCT_ITEM@[0; 12) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "S" |
6 | TYPE_PARAM_LIST@[8; 12) | 6 | TYPE_PARAM_LIST@[8; 12) |
7 | L_ANGLE@[8; 9) | 7 | L_ANGLE@[8; 9) |
8 | ERROR@[9; 12) | 8 | ERROR@[9; 12) |
@@ -27,16 +27,16 @@ FILE@[0; 43) | |||
27 | err: `expected item` | 27 | err: `expected item` |
28 | L_CURLY@[17; 18) | 28 | L_CURLY@[17; 18) |
29 | WHITESPACE@[18; 23) | 29 | WHITESPACE@[18; 23) |
30 | IDENT@[23; 24) | 30 | IDENT@[23; 24) "f" |
31 | COLON@[24; 25) | 31 | COLON@[24; 25) |
32 | WHITESPACE@[25; 26) | 32 | WHITESPACE@[25; 26) |
33 | IDENT@[26; 29) | 33 | IDENT@[26; 29) "u32" |
34 | WHITESPACE@[29; 30) | 34 | WHITESPACE@[29; 30) |
35 | R_CURLY@[30; 31) | 35 | R_CURLY@[30; 31) |
36 | WHITESPACE@[31; 33) | 36 | WHITESPACE@[31; 33) |
37 | STRUCT_ITEM@[33; 43) | 37 | STRUCT_ITEM@[33; 43) |
38 | STRUCT_KW@[33; 39) | 38 | STRUCT_KW@[33; 39) |
39 | WHITESPACE@[39; 40) | 39 | WHITESPACE@[39; 40) |
40 | IDENT@[40; 41) | 40 | IDENT@[40; 41) "T" |
41 | SEMI@[41; 42) | 41 | SEMI@[41; 42) |
42 | WHITESPACE@[42; 43) | 42 | WHITESPACE@[42; 43) |
diff --git a/tests/data/parser/ok/0001_struct_item.txt b/tests/data/parser/ok/0001_struct_item.txt index f599e9d2c..c280a434f 100644 --- a/tests/data/parser/ok/0001_struct_item.txt +++ b/tests/data/parser/ok/0001_struct_item.txt | |||
@@ -2,7 +2,7 @@ FILE@[0; 13) | |||
2 | STRUCT_ITEM@[0; 13) | 2 | STRUCT_ITEM@[0; 13) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "S" |
6 | WHITESPACE@[8; 9) | 6 | WHITESPACE@[8; 9) |
7 | L_CURLY@[9; 10) | 7 | L_CURLY@[9; 10) |
8 | WHITESPACE@[10; 12) | 8 | WHITESPACE@[10; 12) |
diff --git a/tests/data/parser/ok/0002_struct_item_field.txt b/tests/data/parser/ok/0002_struct_item_field.txt index 58042f6a7..5a7bfbaec 100644 --- a/tests/data/parser/ok/0002_struct_item_field.txt +++ b/tests/data/parser/ok/0002_struct_item_field.txt | |||
@@ -2,14 +2,14 @@ FILE@[0; 25) | |||
2 | STRUCT_ITEM@[0; 25) | 2 | STRUCT_ITEM@[0; 25) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "S" |
6 | WHITESPACE@[8; 9) | 6 | WHITESPACE@[8; 9) |
7 | L_CURLY@[9; 10) | 7 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 24) | 8 | NAMED_FIELD@[10; 24) |
9 | WHITESPACE@[10; 15) | 9 | WHITESPACE@[10; 15) |
10 | IDENT@[15; 18) | 10 | IDENT@[15; 18) "foo" |
11 | COLON@[18; 19) | 11 | COLON@[18; 19) |
12 | WHITESPACE@[19; 20) | 12 | WHITESPACE@[19; 20) |
13 | IDENT@[20; 23) | 13 | IDENT@[20; 23) "u32" |
14 | WHITESPACE@[23; 24) | 14 | WHITESPACE@[23; 24) |
15 | R_CURLY@[24; 25) | 15 | R_CURLY@[24; 25) |
diff --git a/tests/data/parser/ok/0005_fn_item.txt b/tests/data/parser/ok/0005_fn_item.txt index e37129ff1..113359351 100644 --- a/tests/data/parser/ok/0005_fn_item.txt +++ b/tests/data/parser/ok/0005_fn_item.txt | |||
@@ -2,7 +2,7 @@ FILE@[0; 13) | |||
2 | FN_ITEM@[0; 13) | 2 | FN_ITEM@[0; 13) |
3 | FN_KW@[0; 2) | 3 | FN_KW@[0; 2) |
4 | WHITESPACE@[2; 3) | 4 | WHITESPACE@[2; 3) |
5 | IDENT@[3; 6) | 5 | IDENT@[3; 6) "foo" |
6 | L_PAREN@[6; 7) | 6 | L_PAREN@[6; 7) |
7 | R_PAREN@[7; 8) | 7 | R_PAREN@[7; 8) |
8 | WHITESPACE@[8; 9) | 8 | WHITESPACE@[8; 9) |
diff --git a/tests/data/parser/ok/0006_inner_attributes.txt b/tests/data/parser/ok/0006_inner_attributes.txt index d826fb379..7d824d1d8 100644 --- a/tests/data/parser/ok/0006_inner_attributes.txt +++ b/tests/data/parser/ok/0006_inner_attributes.txt | |||
@@ -4,7 +4,7 @@ FILE@[0; 236) | |||
4 | EXCL@[1; 2) | 4 | EXCL@[1; 2) |
5 | L_BRACK@[2; 3) | 5 | L_BRACK@[2; 3) |
6 | META_ITEM@[3; 7) | 6 | META_ITEM@[3; 7) |
7 | IDENT@[3; 7) | 7 | IDENT@[3; 7) "attr" |
8 | R_BRACK@[7; 8) | 8 | R_BRACK@[7; 8) |
9 | WHITESPACE@[8; 9) | 9 | WHITESPACE@[8; 9) |
10 | ATTR@[9; 24) | 10 | ATTR@[9; 24) |
@@ -12,7 +12,7 @@ FILE@[0; 236) | |||
12 | EXCL@[10; 11) | 12 | EXCL@[10; 11) |
13 | L_BRACK@[11; 12) | 13 | L_BRACK@[11; 12) |
14 | META_ITEM@[12; 22) | 14 | META_ITEM@[12; 22) |
15 | IDENT@[12; 16) | 15 | IDENT@[12; 16) "attr" |
16 | L_PAREN@[16; 17) | 16 | L_PAREN@[16; 17) |
17 | LITERAL@[17; 21) | 17 | LITERAL@[17; 21) |
18 | TRUE_KW@[17; 21) | 18 | TRUE_KW@[17; 21) |
@@ -24,10 +24,10 @@ FILE@[0; 236) | |||
24 | EXCL@[25; 26) | 24 | EXCL@[25; 26) |
25 | L_BRACK@[26; 27) | 25 | L_BRACK@[26; 27) |
26 | META_ITEM@[27; 38) | 26 | META_ITEM@[27; 38) |
27 | IDENT@[27; 31) | 27 | IDENT@[27; 31) "attr" |
28 | L_PAREN@[31; 32) | 28 | L_PAREN@[31; 32) |
29 | META_ITEM@[32; 37) | 29 | META_ITEM@[32; 37) |
30 | IDENT@[32; 37) | 30 | IDENT@[32; 37) "ident" |
31 | R_PAREN@[37; 38) | 31 | R_PAREN@[37; 38) |
32 | R_BRACK@[38; 39) | 32 | R_BRACK@[38; 39) |
33 | WHITESPACE@[39; 40) | 33 | WHITESPACE@[39; 40) |
@@ -36,10 +36,10 @@ FILE@[0; 236) | |||
36 | EXCL@[41; 42) | 36 | EXCL@[41; 42) |
37 | L_BRACK@[42; 43) | 37 | L_BRACK@[42; 43) |
38 | META_ITEM@[43; 115) | 38 | META_ITEM@[43; 115) |
39 | IDENT@[43; 47) | 39 | IDENT@[43; 47) "attr" |
40 | L_PAREN@[47; 48) | 40 | L_PAREN@[47; 48) |
41 | META_ITEM@[48; 53) | 41 | META_ITEM@[48; 53) |
42 | IDENT@[48; 53) | 42 | IDENT@[48; 53) "ident" |
43 | COMMA@[53; 54) | 43 | COMMA@[53; 54) |
44 | LITERAL@[54; 58) | 44 | LITERAL@[54; 58) |
45 | WHITESPACE@[54; 55) | 45 | WHITESPACE@[54; 55) |
@@ -55,7 +55,7 @@ FILE@[0; 236) | |||
55 | COMMA@[72; 73) | 55 | COMMA@[72; 73) |
56 | META_ITEM@[73; 85) | 56 | META_ITEM@[73; 85) |
57 | WHITESPACE@[73; 74) | 57 | WHITESPACE@[73; 74) |
58 | IDENT@[74; 79) | 58 | IDENT@[74; 79) "ident" |
59 | WHITESPACE@[79; 80) | 59 | WHITESPACE@[79; 80) |
60 | EQ@[80; 81) | 60 | EQ@[80; 81) |
61 | LITERAL@[81; 85) | 61 | LITERAL@[81; 85) |
@@ -64,7 +64,7 @@ FILE@[0; 236) | |||
64 | COMMA@[85; 86) | 64 | COMMA@[85; 86) |
65 | META_ITEM@[86; 102) | 65 | META_ITEM@[86; 102) |
66 | WHITESPACE@[86; 87) | 66 | WHITESPACE@[86; 87) |
67 | IDENT@[87; 92) | 67 | IDENT@[87; 92) "ident" |
68 | WHITESPACE@[92; 93) | 68 | WHITESPACE@[92; 93) |
69 | EQ@[93; 94) | 69 | EQ@[93; 94) |
70 | LITERAL@[94; 102) | 70 | LITERAL@[94; 102) |
@@ -73,7 +73,7 @@ FILE@[0; 236) | |||
73 | COMMA@[102; 103) | 73 | COMMA@[102; 103) |
74 | META_ITEM@[103; 114) | 74 | META_ITEM@[103; 114) |
75 | WHITESPACE@[103; 104) | 75 | WHITESPACE@[103; 104) |
76 | IDENT@[104; 109) | 76 | IDENT@[104; 109) "ident" |
77 | L_PAREN@[109; 110) | 77 | L_PAREN@[109; 110) |
78 | LITERAL@[110; 113) | 78 | LITERAL@[110; 113) |
79 | INT_NUMBER@[110; 113) | 79 | INT_NUMBER@[110; 113) |
@@ -86,7 +86,7 @@ FILE@[0; 236) | |||
86 | EXCL@[118; 119) | 86 | EXCL@[118; 119) |
87 | L_BRACK@[119; 120) | 87 | L_BRACK@[119; 120) |
88 | META_ITEM@[120; 129) | 88 | META_ITEM@[120; 129) |
89 | IDENT@[120; 124) | 89 | IDENT@[120; 124) "attr" |
90 | L_PAREN@[124; 125) | 90 | L_PAREN@[124; 125) |
91 | LITERAL@[125; 128) | 91 | LITERAL@[125; 128) |
92 | INT_NUMBER@[125; 128) | 92 | INT_NUMBER@[125; 128) |
@@ -98,10 +98,10 @@ FILE@[0; 236) | |||
98 | EXCL@[132; 133) | 98 | EXCL@[132; 133) |
99 | L_BRACK@[133; 134) | 99 | L_BRACK@[133; 134) |
100 | META_ITEM@[134; 154) | 100 | META_ITEM@[134; 154) |
101 | IDENT@[134; 138) | 101 | IDENT@[134; 138) "attr" |
102 | L_PAREN@[138; 139) | 102 | L_PAREN@[138; 139) |
103 | META_ITEM@[139; 153) | 103 | META_ITEM@[139; 153) |
104 | IDENT@[139; 146) | 104 | IDENT@[139; 146) "enabled" |
105 | WHITESPACE@[146; 147) | 105 | WHITESPACE@[146; 147) |
106 | EQ@[147; 148) | 106 | EQ@[147; 148) |
107 | LITERAL@[148; 153) | 107 | LITERAL@[148; 153) |
@@ -115,7 +115,7 @@ FILE@[0; 236) | |||
115 | EXCL@[157; 158) | 115 | EXCL@[157; 158) |
116 | L_BRACK@[158; 159) | 116 | L_BRACK@[158; 159) |
117 | META_ITEM@[159; 172) | 117 | META_ITEM@[159; 172) |
118 | IDENT@[159; 166) | 118 | IDENT@[159; 166) "enabled" |
119 | L_PAREN@[166; 167) | 119 | L_PAREN@[166; 167) |
120 | LITERAL@[167; 171) | 120 | LITERAL@[167; 171) |
121 | TRUE_KW@[167; 171) | 121 | TRUE_KW@[167; 171) |
@@ -127,7 +127,7 @@ FILE@[0; 236) | |||
127 | EXCL@[175; 176) | 127 | EXCL@[175; 176) |
128 | L_BRACK@[176; 177) | 128 | L_BRACK@[176; 177) |
129 | META_ITEM@[177; 190) | 129 | META_ITEM@[177; 190) |
130 | IDENT@[177; 181) | 130 | IDENT@[177; 181) "attr" |
131 | L_PAREN@[181; 182) | 131 | L_PAREN@[181; 182) |
132 | LITERAL@[182; 189) | 132 | LITERAL@[182; 189) |
133 | STRING@[182; 189) | 133 | STRING@[182; 189) |
@@ -139,14 +139,14 @@ FILE@[0; 236) | |||
139 | EXCL@[193; 194) | 139 | EXCL@[193; 194) |
140 | L_BRACK@[194; 195) | 140 | L_BRACK@[194; 195) |
141 | META_ITEM@[195; 213) | 141 | META_ITEM@[195; 213) |
142 | IDENT@[195; 199) | 142 | IDENT@[195; 199) "repr" |
143 | L_PAREN@[199; 200) | 143 | L_PAREN@[199; 200) |
144 | META_ITEM@[200; 201) | 144 | META_ITEM@[200; 201) |
145 | IDENT@[200; 201) | 145 | IDENT@[200; 201) "C" |
146 | COMMA@[201; 202) | 146 | COMMA@[201; 202) |
147 | META_ITEM@[202; 212) | 147 | META_ITEM@[202; 212) |
148 | WHITESPACE@[202; 203) | 148 | WHITESPACE@[202; 203) |
149 | IDENT@[203; 208) | 149 | IDENT@[203; 208) "align" |
150 | WHITESPACE@[208; 209) | 150 | WHITESPACE@[208; 209) |
151 | EQ@[209; 210) | 151 | EQ@[209; 210) |
152 | LITERAL@[210; 212) | 152 | LITERAL@[210; 212) |
@@ -160,14 +160,14 @@ FILE@[0; 236) | |||
160 | EXCL@[216; 217) | 160 | EXCL@[216; 217) |
161 | L_BRACK@[217; 218) | 161 | L_BRACK@[217; 218) |
162 | META_ITEM@[218; 235) | 162 | META_ITEM@[218; 235) |
163 | IDENT@[218; 222) | 163 | IDENT@[218; 222) "repr" |
164 | L_PAREN@[222; 223) | 164 | L_PAREN@[222; 223) |
165 | META_ITEM@[223; 224) | 165 | META_ITEM@[223; 224) |
166 | IDENT@[223; 224) | 166 | IDENT@[223; 224) "C" |
167 | COMMA@[224; 225) | 167 | COMMA@[224; 225) |
168 | META_ITEM@[225; 234) | 168 | META_ITEM@[225; 234) |
169 | WHITESPACE@[225; 226) | 169 | WHITESPACE@[225; 226) |
170 | IDENT@[226; 231) | 170 | IDENT@[226; 231) "align" |
171 | L_PAREN@[231; 232) | 171 | L_PAREN@[231; 232) |
172 | LITERAL@[232; 233) | 172 | LITERAL@[232; 233) |
173 | INT_NUMBER@[232; 233) | 173 | INT_NUMBER@[232; 233) |
diff --git a/tests/data/parser/ok/0007_extern_crate.txt b/tests/data/parser/ok/0007_extern_crate.txt index 902c80f7d..aff70131b 100644 --- a/tests/data/parser/ok/0007_extern_crate.txt +++ b/tests/data/parser/ok/0007_extern_crate.txt | |||
@@ -4,7 +4,7 @@ FILE@[0; 43) | |||
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | CRATE_KW@[7; 12) | 5 | CRATE_KW@[7; 12) |
6 | WHITESPACE@[12; 13) | 6 | WHITESPACE@[12; 13) |
7 | IDENT@[13; 16) | 7 | IDENT@[13; 16) "foo" |
8 | SEMI@[16; 17) | 8 | SEMI@[16; 17) |
9 | WHITESPACE@[17; 18) | 9 | WHITESPACE@[17; 18) |
10 | EXTERN_CRATE_ITEM@[18; 43) | 10 | EXTERN_CRATE_ITEM@[18; 43) |
@@ -12,11 +12,11 @@ FILE@[0; 43) | |||
12 | WHITESPACE@[24; 25) | 12 | WHITESPACE@[24; 25) |
13 | CRATE_KW@[25; 30) | 13 | CRATE_KW@[25; 30) |
14 | WHITESPACE@[30; 31) | 14 | WHITESPACE@[30; 31) |
15 | IDENT@[31; 34) | 15 | IDENT@[31; 34) "foo" |
16 | ALIAS@[34; 41) | 16 | ALIAS@[34; 41) |
17 | WHITESPACE@[34; 35) | 17 | WHITESPACE@[34; 35) |
18 | AS_KW@[35; 37) | 18 | AS_KW@[35; 37) |
19 | WHITESPACE@[37; 38) | 19 | WHITESPACE@[37; 38) |
20 | IDENT@[38; 41) | 20 | IDENT@[38; 41) "bar" |
21 | SEMI@[41; 42) | 21 | SEMI@[41; 42) |
22 | WHITESPACE@[42; 43) | 22 | WHITESPACE@[42; 43) |
diff --git a/tests/data/parser/ok/0008_mod_item.txt b/tests/data/parser/ok/0008_mod_item.txt index 425e3344c..06e11807d 100644 --- a/tests/data/parser/ok/0008_mod_item.txt +++ b/tests/data/parser/ok/0008_mod_item.txt | |||
@@ -2,13 +2,13 @@ FILE@[0; 118) | |||
2 | MOD_ITEM@[0; 8) | 2 | MOD_ITEM@[0; 8) |
3 | MOD_KW@[0; 3) | 3 | MOD_KW@[0; 3) |
4 | WHITESPACE@[3; 4) | 4 | WHITESPACE@[3; 4) |
5 | IDENT@[4; 5) | 5 | IDENT@[4; 5) "a" |
6 | SEMI@[5; 6) | 6 | SEMI@[5; 6) |
7 | WHITESPACE@[6; 8) | 7 | WHITESPACE@[6; 8) |
8 | MOD_ITEM@[8; 19) | 8 | MOD_ITEM@[8; 19) |
9 | MOD_KW@[8; 11) | 9 | MOD_KW@[8; 11) |
10 | WHITESPACE@[11; 12) | 10 | WHITESPACE@[11; 12) |
11 | IDENT@[12; 13) | 11 | IDENT@[12; 13) "b" |
12 | WHITESPACE@[13; 14) | 12 | WHITESPACE@[13; 14) |
13 | L_CURLY@[14; 15) | 13 | L_CURLY@[14; 15) |
14 | WHITESPACE@[15; 16) | 14 | WHITESPACE@[15; 16) |
@@ -17,14 +17,14 @@ FILE@[0; 118) | |||
17 | MOD_ITEM@[19; 67) | 17 | MOD_ITEM@[19; 67) |
18 | MOD_KW@[19; 22) | 18 | MOD_KW@[19; 22) |
19 | WHITESPACE@[22; 23) | 19 | WHITESPACE@[22; 23) |
20 | IDENT@[23; 24) | 20 | IDENT@[23; 24) "c" |
21 | WHITESPACE@[24; 25) | 21 | WHITESPACE@[24; 25) |
22 | L_CURLY@[25; 26) | 22 | L_CURLY@[25; 26) |
23 | FN_ITEM@[26; 52) | 23 | FN_ITEM@[26; 52) |
24 | WHITESPACE@[26; 31) | 24 | WHITESPACE@[26; 31) |
25 | FN_KW@[31; 33) | 25 | FN_KW@[31; 33) |
26 | WHITESPACE@[33; 34) | 26 | WHITESPACE@[33; 34) |
27 | IDENT@[34; 37) | 27 | IDENT@[34; 37) "foo" |
28 | L_PAREN@[37; 38) | 28 | L_PAREN@[37; 38) |
29 | R_PAREN@[38; 39) | 29 | R_PAREN@[38; 39) |
30 | WHITESPACE@[39; 40) | 30 | WHITESPACE@[39; 40) |
@@ -35,7 +35,7 @@ FILE@[0; 118) | |||
35 | STRUCT_ITEM@[52; 64) | 35 | STRUCT_ITEM@[52; 64) |
36 | STRUCT_KW@[52; 58) | 36 | STRUCT_KW@[52; 58) |
37 | WHITESPACE@[58; 59) | 37 | WHITESPACE@[58; 59) |
38 | IDENT@[59; 60) | 38 | IDENT@[59; 60) "S" |
39 | WHITESPACE@[60; 61) | 39 | WHITESPACE@[60; 61) |
40 | L_CURLY@[61; 62) | 40 | L_CURLY@[61; 62) |
41 | R_CURLY@[62; 63) | 41 | R_CURLY@[62; 63) |
@@ -45,7 +45,7 @@ FILE@[0; 118) | |||
45 | MOD_ITEM@[67; 118) | 45 | MOD_ITEM@[67; 118) |
46 | MOD_KW@[67; 70) | 46 | MOD_KW@[67; 70) |
47 | WHITESPACE@[70; 71) | 47 | WHITESPACE@[70; 71) |
48 | IDENT@[71; 72) | 48 | IDENT@[71; 72) "d" |
49 | WHITESPACE@[72; 73) | 49 | WHITESPACE@[72; 73) |
50 | L_CURLY@[73; 74) | 50 | L_CURLY@[73; 74) |
51 | ATTR@[74; 92) | 51 | ATTR@[74; 92) |
@@ -54,19 +54,19 @@ FILE@[0; 118) | |||
54 | EXCL@[80; 81) | 54 | EXCL@[80; 81) |
55 | L_BRACK@[81; 82) | 55 | L_BRACK@[81; 82) |
56 | META_ITEM@[82; 86) | 56 | META_ITEM@[82; 86) |
57 | IDENT@[82; 86) | 57 | IDENT@[82; 86) "attr" |
58 | R_BRACK@[86; 87) | 58 | R_BRACK@[86; 87) |
59 | WHITESPACE@[87; 92) | 59 | WHITESPACE@[87; 92) |
60 | MOD_ITEM@[92; 103) | 60 | MOD_ITEM@[92; 103) |
61 | MOD_KW@[92; 95) | 61 | MOD_KW@[92; 95) |
62 | WHITESPACE@[95; 96) | 62 | WHITESPACE@[95; 96) |
63 | IDENT@[96; 97) | 63 | IDENT@[96; 97) "e" |
64 | SEMI@[97; 98) | 64 | SEMI@[97; 98) |
65 | WHITESPACE@[98; 103) | 65 | WHITESPACE@[98; 103) |
66 | MOD_ITEM@[103; 117) | 66 | MOD_ITEM@[103; 117) |
67 | MOD_KW@[103; 106) | 67 | MOD_KW@[103; 106) |
68 | WHITESPACE@[106; 107) | 68 | WHITESPACE@[106; 107) |
69 | IDENT@[107; 108) | 69 | IDENT@[107; 108) "f" |
70 | WHITESPACE@[108; 109) | 70 | WHITESPACE@[108; 109) |
71 | L_CURLY@[109; 110) | 71 | L_CURLY@[109; 110) |
72 | WHITESPACE@[110; 115) | 72 | WHITESPACE@[110; 115) |
diff --git a/tests/data/parser/ok/0009_use_item.txt b/tests/data/parser/ok/0009_use_item.txt index 63274125d..08ae990d9 100644 --- a/tests/data/parser/ok/0009_use_item.txt +++ b/tests/data/parser/ok/0009_use_item.txt | |||
@@ -5,7 +5,7 @@ FILE@[0; 19) | |||
5 | PATH@[3; 7) | 5 | PATH@[3; 7) |
6 | PATH_SEGMENT@[3; 7) | 6 | PATH_SEGMENT@[3; 7) |
7 | WHITESPACE@[3; 4) | 7 | WHITESPACE@[3; 4) |
8 | IDENT@[4; 7) | 8 | IDENT@[4; 7) "foo" |
9 | SEMI@[7; 8) | 9 | SEMI@[7; 8) |
10 | WHITESPACE@[8; 9) | 10 | WHITESPACE@[8; 9) |
11 | USE_ITEM@[9; 19) | 11 | USE_ITEM@[9; 19) |
@@ -15,5 +15,5 @@ FILE@[0; 19) | |||
15 | PATH_SEGMENT@[12; 18) | 15 | PATH_SEGMENT@[12; 18) |
16 | WHITESPACE@[12; 13) | 16 | WHITESPACE@[12; 13) |
17 | COLONCOLON@[13; 15) | 17 | COLONCOLON@[13; 15) |
18 | IDENT@[15; 18) | 18 | IDENT@[15; 18) "bar" |
19 | SEMI@[18; 19) | 19 | SEMI@[18; 19) |
diff --git a/tests/data/parser/ok/0010_use_path_segments.txt b/tests/data/parser/ok/0010_use_path_segments.txt index d0f2033ce..37e3dfdbf 100644 --- a/tests/data/parser/ok/0010_use_path_segments.txt +++ b/tests/data/parser/ok/0010_use_path_segments.txt | |||
@@ -8,13 +8,13 @@ FILE@[0; 40) | |||
8 | PATH_SEGMENT@[3; 9) | 8 | PATH_SEGMENT@[3; 9) |
9 | WHITESPACE@[3; 4) | 9 | WHITESPACE@[3; 4) |
10 | COLONCOLON@[4; 6) | 10 | COLONCOLON@[4; 6) |
11 | IDENT@[6; 9) | 11 | IDENT@[6; 9) "foo" |
12 | COLONCOLON@[9; 11) | 12 | COLONCOLON@[9; 11) |
13 | PATH_SEGMENT@[11; 14) | 13 | PATH_SEGMENT@[11; 14) |
14 | IDENT@[11; 14) | 14 | IDENT@[11; 14) "bar" |
15 | COLONCOLON@[14; 16) | 15 | COLONCOLON@[14; 16) |
16 | PATH_SEGMENT@[16; 19) | 16 | PATH_SEGMENT@[16; 19) |
17 | IDENT@[16; 19) | 17 | IDENT@[16; 19) "baz" |
18 | SEMI@[19; 20) | 18 | SEMI@[19; 20) |
19 | WHITESPACE@[20; 21) | 19 | WHITESPACE@[20; 21) |
20 | USE_ITEM@[21; 40) | 20 | USE_ITEM@[21; 40) |
@@ -25,12 +25,12 @@ FILE@[0; 40) | |||
25 | PATH@[24; 28) | 25 | PATH@[24; 28) |
26 | PATH_SEGMENT@[24; 28) | 26 | PATH_SEGMENT@[24; 28) |
27 | WHITESPACE@[24; 25) | 27 | WHITESPACE@[24; 25) |
28 | IDENT@[25; 28) | 28 | IDENT@[25; 28) "foo" |
29 | COLONCOLON@[28; 30) | 29 | COLONCOLON@[28; 30) |
30 | PATH_SEGMENT@[30; 33) | 30 | PATH_SEGMENT@[30; 33) |
31 | IDENT@[30; 33) | 31 | IDENT@[30; 33) "bar" |
32 | COLONCOLON@[33; 35) | 32 | COLONCOLON@[33; 35) |
33 | PATH_SEGMENT@[35; 38) | 33 | PATH_SEGMENT@[35; 38) |
34 | IDENT@[35; 38) | 34 | IDENT@[35; 38) "baz" |
35 | SEMI@[38; 39) | 35 | SEMI@[38; 39) |
36 | WHITESPACE@[39; 40) | 36 | WHITESPACE@[39; 40) |
diff --git a/tests/data/parser/ok/0011_outer_attribute.txt b/tests/data/parser/ok/0011_outer_attribute.txt index 0f69b1f66..4839d8e67 100644 --- a/tests/data/parser/ok/0011_outer_attribute.txt +++ b/tests/data/parser/ok/0011_outer_attribute.txt | |||
@@ -4,10 +4,10 @@ FILE@[0; 35) | |||
4 | POUND@[0; 1) | 4 | POUND@[0; 1) |
5 | L_BRACK@[1; 2) | 5 | L_BRACK@[1; 2) |
6 | META_ITEM@[2; 11) | 6 | META_ITEM@[2; 11) |
7 | IDENT@[2; 5) | 7 | IDENT@[2; 5) "cfg" |
8 | L_PAREN@[5; 6) | 8 | L_PAREN@[5; 6) |
9 | META_ITEM@[6; 10) | 9 | META_ITEM@[6; 10) |
10 | IDENT@[6; 10) | 10 | IDENT@[6; 10) "test" |
11 | R_PAREN@[10; 11) | 11 | R_PAREN@[10; 11) |
12 | R_BRACK@[11; 12) | 12 | R_BRACK@[11; 12) |
13 | WHITESPACE@[12; 13) | 13 | WHITESPACE@[12; 13) |
@@ -15,12 +15,12 @@ FILE@[0; 35) | |||
15 | POUND@[13; 14) | 15 | POUND@[13; 14) |
16 | L_BRACK@[14; 15) | 16 | L_BRACK@[14; 15) |
17 | META_ITEM@[15; 21) | 17 | META_ITEM@[15; 21) |
18 | IDENT@[15; 21) | 18 | IDENT@[15; 21) "ignore" |
19 | R_BRACK@[21; 22) | 19 | R_BRACK@[21; 22) |
20 | WHITESPACE@[22; 23) | 20 | WHITESPACE@[22; 23) |
21 | FN_KW@[23; 25) | 21 | FN_KW@[23; 25) |
22 | WHITESPACE@[25; 26) | 22 | WHITESPACE@[25; 26) |
23 | IDENT@[26; 29) | 23 | IDENT@[26; 29) "foo" |
24 | L_PAREN@[29; 30) | 24 | L_PAREN@[29; 30) |
25 | R_PAREN@[30; 31) | 25 | R_PAREN@[30; 31) |
26 | WHITESPACE@[31; 32) | 26 | WHITESPACE@[31; 32) |
diff --git a/tests/data/parser/ok/0012_visibility.txt b/tests/data/parser/ok/0012_visibility.txt index 0e091724d..ed22b265b 100644 --- a/tests/data/parser/ok/0012_visibility.txt +++ b/tests/data/parser/ok/0012_visibility.txt | |||
@@ -2,7 +2,7 @@ FILE@[0; 98) | |||
2 | FN_ITEM@[0; 10) | 2 | FN_ITEM@[0; 10) |
3 | FN_KW@[0; 2) | 3 | FN_KW@[0; 2) |
4 | WHITESPACE@[2; 3) | 4 | WHITESPACE@[2; 3) |
5 | IDENT@[3; 4) | 5 | IDENT@[3; 4) "a" |
6 | L_PAREN@[4; 5) | 6 | L_PAREN@[4; 5) |
7 | R_PAREN@[5; 6) | 7 | R_PAREN@[5; 6) |
8 | WHITESPACE@[6; 7) | 8 | WHITESPACE@[6; 7) |
@@ -15,7 +15,7 @@ FILE@[0; 98) | |||
15 | WHITESPACE@[13; 14) | 15 | WHITESPACE@[13; 14) |
16 | FN_KW@[14; 16) | 16 | FN_KW@[14; 16) |
17 | WHITESPACE@[16; 17) | 17 | WHITESPACE@[16; 17) |
18 | IDENT@[17; 18) | 18 | IDENT@[17; 18) "b" |
19 | L_PAREN@[18; 19) | 19 | L_PAREN@[18; 19) |
20 | R_PAREN@[19; 20) | 20 | R_PAREN@[19; 20) |
21 | WHITESPACE@[20; 21) | 21 | WHITESPACE@[20; 21) |
@@ -31,7 +31,7 @@ FILE@[0; 98) | |||
31 | WHITESPACE@[34; 35) | 31 | WHITESPACE@[34; 35) |
32 | FN_KW@[35; 37) | 32 | FN_KW@[35; 37) |
33 | WHITESPACE@[37; 38) | 33 | WHITESPACE@[37; 38) |
34 | IDENT@[38; 39) | 34 | IDENT@[38; 39) "c" |
35 | L_PAREN@[39; 40) | 35 | L_PAREN@[39; 40) |
36 | R_PAREN@[40; 41) | 36 | R_PAREN@[40; 41) |
37 | WHITESPACE@[41; 42) | 37 | WHITESPACE@[41; 42) |
@@ -47,7 +47,7 @@ FILE@[0; 98) | |||
47 | WHITESPACE@[55; 56) | 47 | WHITESPACE@[55; 56) |
48 | FN_KW@[56; 58) | 48 | FN_KW@[56; 58) |
49 | WHITESPACE@[58; 59) | 49 | WHITESPACE@[58; 59) |
50 | IDENT@[59; 60) | 50 | IDENT@[59; 60) "d" |
51 | L_PAREN@[60; 61) | 51 | L_PAREN@[60; 61) |
52 | R_PAREN@[61; 62) | 52 | R_PAREN@[61; 62) |
53 | WHITESPACE@[62; 63) | 53 | WHITESPACE@[62; 63) |
@@ -64,18 +64,18 @@ FILE@[0; 98) | |||
64 | PATH@[72; 76) | 64 | PATH@[72; 76) |
65 | PATH_SEGMENT@[72; 76) | 65 | PATH_SEGMENT@[72; 76) |
66 | WHITESPACE@[72; 73) | 66 | WHITESPACE@[72; 73) |
67 | IDENT@[73; 76) | 67 | IDENT@[73; 76) "foo" |
68 | COLONCOLON@[76; 78) | 68 | COLONCOLON@[76; 78) |
69 | PATH_SEGMENT@[78; 81) | 69 | PATH_SEGMENT@[78; 81) |
70 | IDENT@[78; 81) | 70 | IDENT@[78; 81) "bar" |
71 | COLONCOLON@[81; 83) | 71 | COLONCOLON@[81; 83) |
72 | PATH_SEGMENT@[83; 86) | 72 | PATH_SEGMENT@[83; 86) |
73 | IDENT@[83; 86) | 73 | IDENT@[83; 86) "baz" |
74 | R_PAREN@[86; 87) | 74 | R_PAREN@[86; 87) |
75 | WHITESPACE@[87; 88) | 75 | WHITESPACE@[87; 88) |
76 | FN_KW@[88; 90) | 76 | FN_KW@[88; 90) |
77 | WHITESPACE@[90; 91) | 77 | WHITESPACE@[90; 91) |
78 | IDENT@[91; 92) | 78 | IDENT@[91; 92) "e" |
79 | L_PAREN@[92; 93) | 79 | L_PAREN@[92; 93) |
80 | R_PAREN@[93; 94) | 80 | R_PAREN@[93; 94) |
81 | WHITESPACE@[94; 95) | 81 | WHITESPACE@[94; 95) |
diff --git a/tests/data/parser/ok/0013_use_path_self_super.txt b/tests/data/parser/ok/0013_use_path_self_super.txt index 2b0934e97..f3dfaba4b 100644 --- a/tests/data/parser/ok/0013_use_path_self_super.txt +++ b/tests/data/parser/ok/0013_use_path_self_super.txt | |||
@@ -9,7 +9,7 @@ FILE@[0; 65) | |||
9 | SELF_KW@[4; 8) | 9 | SELF_KW@[4; 8) |
10 | COLONCOLON@[8; 10) | 10 | COLONCOLON@[8; 10) |
11 | PATH_SEGMENT@[10; 13) | 11 | PATH_SEGMENT@[10; 13) |
12 | IDENT@[10; 13) | 12 | IDENT@[10; 13) "foo" |
13 | SEMI@[13; 14) | 13 | SEMI@[13; 14) |
14 | WHITESPACE@[14; 15) | 14 | WHITESPACE@[14; 15) |
15 | USE_ITEM@[15; 38) | 15 | USE_ITEM@[15; 38) |
@@ -26,7 +26,7 @@ FILE@[0; 65) | |||
26 | SUPER_KW@[26; 31) | 26 | SUPER_KW@[26; 31) |
27 | COLONCOLON@[31; 33) | 27 | COLONCOLON@[31; 33) |
28 | PATH_SEGMENT@[33; 36) | 28 | PATH_SEGMENT@[33; 36) |
29 | IDENT@[33; 36) | 29 | IDENT@[33; 36) "bar" |
30 | SEMI@[36; 37) | 30 | SEMI@[36; 37) |
31 | WHITESPACE@[37; 38) | 31 | WHITESPACE@[37; 38) |
32 | USE_ITEM@[38; 65) | 32 | USE_ITEM@[38; 65) |
@@ -42,12 +42,12 @@ FILE@[0; 65) | |||
42 | SELF_KW@[44; 48) | 42 | SELF_KW@[44; 48) |
43 | COLONCOLON@[48; 50) | 43 | COLONCOLON@[48; 50) |
44 | PATH_SEGMENT@[50; 51) | 44 | PATH_SEGMENT@[50; 51) |
45 | IDENT@[50; 51) | 45 | IDENT@[50; 51) "a" |
46 | COLONCOLON@[51; 53) | 46 | COLONCOLON@[51; 53) |
47 | PATH_SEGMENT@[53; 58) | 47 | PATH_SEGMENT@[53; 58) |
48 | SUPER_KW@[53; 58) | 48 | SUPER_KW@[53; 58) |
49 | COLONCOLON@[58; 60) | 49 | COLONCOLON@[58; 60) |
50 | PATH_SEGMENT@[60; 63) | 50 | PATH_SEGMENT@[60; 63) |
51 | IDENT@[60; 63) | 51 | IDENT@[60; 63) "bar" |
52 | SEMI@[63; 64) | 52 | SEMI@[63; 64) |
53 | WHITESPACE@[64; 65) | 53 | WHITESPACE@[64; 65) |
diff --git a/tests/data/parser/ok/0014_use_tree.txt b/tests/data/parser/ok/0014_use_tree.txt index ca91e63e1..cddaa5462 100644 --- a/tests/data/parser/ok/0014_use_tree.txt +++ b/tests/data/parser/ok/0014_use_tree.txt | |||
@@ -37,7 +37,7 @@ FILE@[0; 81) | |||
37 | PATH@[37; 41) | 37 | PATH@[37; 41) |
38 | PATH_SEGMENT@[37; 41) | 38 | PATH_SEGMENT@[37; 41) |
39 | WHITESPACE@[37; 38) | 39 | WHITESPACE@[37; 38) |
40 | IDENT@[38; 41) | 40 | IDENT@[38; 41) "foo" |
41 | COLONCOLON@[41; 43) | 41 | COLONCOLON@[41; 43) |
42 | STAR@[43; 44) | 42 | STAR@[43; 44) |
43 | SEMI@[44; 45) | 43 | SEMI@[44; 45) |
@@ -48,7 +48,7 @@ FILE@[0; 81) | |||
48 | PATH@[49; 53) | 48 | PATH@[49; 53) |
49 | PATH_SEGMENT@[49; 53) | 49 | PATH_SEGMENT@[49; 53) |
50 | WHITESPACE@[49; 50) | 50 | WHITESPACE@[49; 50) |
51 | IDENT@[50; 53) | 51 | IDENT@[50; 53) "foo" |
52 | COLONCOLON@[53; 55) | 52 | COLONCOLON@[53; 55) |
53 | L_CURLY@[55; 56) | 53 | L_CURLY@[55; 56) |
54 | R_CURLY@[56; 57) | 54 | R_CURLY@[56; 57) |
@@ -61,25 +61,25 @@ FILE@[0; 81) | |||
61 | PATH_SEGMENT@[62; 68) | 61 | PATH_SEGMENT@[62; 68) |
62 | WHITESPACE@[62; 63) | 62 | WHITESPACE@[62; 63) |
63 | COLONCOLON@[63; 65) | 63 | COLONCOLON@[63; 65) |
64 | IDENT@[65; 68) | 64 | IDENT@[65; 68) "foo" |
65 | COLONCOLON@[68; 70) | 65 | COLONCOLON@[68; 70) |
66 | L_CURLY@[70; 71) | 66 | L_CURLY@[70; 71) |
67 | USE_TREE@[71; 72) | 67 | USE_TREE@[71; 72) |
68 | PATH@[71; 72) | 68 | PATH@[71; 72) |
69 | PATH_SEGMENT@[71; 72) | 69 | PATH_SEGMENT@[71; 72) |
70 | IDENT@[71; 72) | 70 | IDENT@[71; 72) "a" |
71 | COMMA@[72; 73) | 71 | COMMA@[72; 73) |
72 | USE_TREE@[73; 75) | 72 | USE_TREE@[73; 75) |
73 | PATH@[73; 75) | 73 | PATH@[73; 75) |
74 | PATH_SEGMENT@[73; 75) | 74 | PATH_SEGMENT@[73; 75) |
75 | WHITESPACE@[73; 74) | 75 | WHITESPACE@[73; 74) |
76 | IDENT@[74; 75) | 76 | IDENT@[74; 75) "b" |
77 | COMMA@[75; 76) | 77 | COMMA@[75; 76) |
78 | USE_TREE@[76; 78) | 78 | USE_TREE@[76; 78) |
79 | PATH@[76; 78) | 79 | PATH@[76; 78) |
80 | PATH_SEGMENT@[76; 78) | 80 | PATH_SEGMENT@[76; 78) |
81 | WHITESPACE@[76; 77) | 81 | WHITESPACE@[76; 77) |
82 | IDENT@[77; 78) | 82 | IDENT@[77; 78) "c" |
83 | R_CURLY@[78; 79) | 83 | R_CURLY@[78; 79) |
84 | SEMI@[79; 80) | 84 | SEMI@[79; 80) |
85 | WHITESPACE@[80; 81) | 85 | WHITESPACE@[80; 81) |
diff --git a/tests/data/parser/ok/0015_use_tree.txt b/tests/data/parser/ok/0015_use_tree.txt index c1975f6cb..10bdef5fe 100644 --- a/tests/data/parser/ok/0015_use_tree.txt +++ b/tests/data/parser/ok/0015_use_tree.txt | |||
@@ -5,12 +5,12 @@ FILE@[0; 55) | |||
5 | PATH@[3; 8) | 5 | PATH@[3; 8) |
6 | PATH_SEGMENT@[3; 8) | 6 | PATH_SEGMENT@[3; 8) |
7 | WHITESPACE@[3; 4) | 7 | WHITESPACE@[3; 4) |
8 | IDENT@[4; 7) | 8 | IDENT@[4; 7) "foo" |
9 | WHITESPACE@[7; 8) | 9 | WHITESPACE@[7; 8) |
10 | ALIAS@[8; 14) | 10 | ALIAS@[8; 14) |
11 | AS_KW@[8; 10) | 11 | AS_KW@[8; 10) |
12 | WHITESPACE@[10; 11) | 12 | WHITESPACE@[10; 11) |
13 | IDENT@[11; 14) | 13 | IDENT@[11; 14) "bar" |
14 | SEMI@[14; 15) | 14 | SEMI@[14; 15) |
15 | WHITESPACE@[15; 16) | 15 | WHITESPACE@[15; 16) |
16 | USE_ITEM@[16; 55) | 16 | USE_ITEM@[16; 55) |
@@ -19,18 +19,18 @@ FILE@[0; 55) | |||
19 | PATH@[19; 23) | 19 | PATH@[19; 23) |
20 | PATH_SEGMENT@[19; 23) | 20 | PATH_SEGMENT@[19; 23) |
21 | WHITESPACE@[19; 20) | 21 | WHITESPACE@[19; 20) |
22 | IDENT@[20; 23) | 22 | IDENT@[20; 23) "foo" |
23 | COLONCOLON@[23; 25) | 23 | COLONCOLON@[23; 25) |
24 | L_CURLY@[25; 26) | 24 | L_CURLY@[25; 26) |
25 | USE_TREE@[26; 32) | 25 | USE_TREE@[26; 32) |
26 | PATH@[26; 28) | 26 | PATH@[26; 28) |
27 | PATH_SEGMENT@[26; 28) | 27 | PATH_SEGMENT@[26; 28) |
28 | IDENT@[26; 27) | 28 | IDENT@[26; 27) "a" |
29 | WHITESPACE@[27; 28) | 29 | WHITESPACE@[27; 28) |
30 | ALIAS@[28; 32) | 30 | ALIAS@[28; 32) |
31 | AS_KW@[28; 30) | 31 | AS_KW@[28; 30) |
32 | WHITESPACE@[30; 31) | 32 | WHITESPACE@[30; 31) |
33 | IDENT@[31; 32) | 33 | IDENT@[31; 32) "b" |
34 | COMMA@[32; 33) | 34 | COMMA@[32; 33) |
35 | USE_TREE@[33; 35) | 35 | USE_TREE@[33; 35) |
36 | WHITESPACE@[33; 34) | 36 | WHITESPACE@[33; 34) |
@@ -46,12 +46,12 @@ FILE@[0; 55) | |||
46 | PATH_SEGMENT@[41; 48) | 46 | PATH_SEGMENT@[41; 48) |
47 | WHITESPACE@[41; 42) | 47 | WHITESPACE@[41; 42) |
48 | COLONCOLON@[42; 44) | 48 | COLONCOLON@[42; 44) |
49 | IDENT@[44; 47) | 49 | IDENT@[44; 47) "foo" |
50 | WHITESPACE@[47; 48) | 50 | WHITESPACE@[47; 48) |
51 | ALIAS@[48; 52) | 51 | ALIAS@[48; 52) |
52 | AS_KW@[48; 50) | 52 | AS_KW@[48; 50) |
53 | WHITESPACE@[50; 51) | 53 | WHITESPACE@[50; 51) |
54 | IDENT@[51; 52) | 54 | IDENT@[51; 52) "x" |
55 | R_CURLY@[52; 53) | 55 | R_CURLY@[52; 53) |
56 | SEMI@[53; 54) | 56 | SEMI@[53; 54) |
57 | WHITESPACE@[54; 55) | 57 | WHITESPACE@[54; 55) |
diff --git a/tests/data/parser/ok/0016_struct_flavors.txt b/tests/data/parser/ok/0016_struct_flavors.txt index 93b16e1b9..d5d3a0183 100644 --- a/tests/data/parser/ok/0016_struct_flavors.txt +++ b/tests/data/parser/ok/0016_struct_flavors.txt | |||
@@ -2,13 +2,13 @@ FILE@[0; 97) | |||
2 | STRUCT_ITEM@[0; 10) | 2 | STRUCT_ITEM@[0; 10) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 8) | 5 | IDENT@[7; 8) "A" |
6 | SEMI@[8; 9) | 6 | SEMI@[8; 9) |
7 | WHITESPACE@[9; 10) | 7 | WHITESPACE@[9; 10) |
8 | STRUCT_ITEM@[10; 22) | 8 | STRUCT_ITEM@[10; 22) |
9 | STRUCT_KW@[10; 16) | 9 | STRUCT_KW@[10; 16) |
10 | WHITESPACE@[16; 17) | 10 | WHITESPACE@[16; 17) |
11 | IDENT@[17; 18) | 11 | IDENT@[17; 18) "B" |
12 | WHITESPACE@[18; 19) | 12 | WHITESPACE@[18; 19) |
13 | L_CURLY@[19; 20) | 13 | L_CURLY@[19; 20) |
14 | R_CURLY@[20; 21) | 14 | R_CURLY@[20; 21) |
@@ -16,7 +16,7 @@ FILE@[0; 97) | |||
16 | STRUCT_ITEM@[22; 35) | 16 | STRUCT_ITEM@[22; 35) |
17 | STRUCT_KW@[22; 28) | 17 | STRUCT_KW@[22; 28) |
18 | WHITESPACE@[28; 29) | 18 | WHITESPACE@[28; 29) |
19 | IDENT@[29; 30) | 19 | IDENT@[29; 30) "C" |
20 | L_PAREN@[30; 31) | 20 | L_PAREN@[30; 31) |
21 | R_PAREN@[31; 32) | 21 | R_PAREN@[31; 32) |
22 | SEMI@[32; 33) | 22 | SEMI@[32; 33) |
@@ -24,42 +24,42 @@ FILE@[0; 97) | |||
24 | STRUCT_ITEM@[35; 76) | 24 | STRUCT_ITEM@[35; 76) |
25 | STRUCT_KW@[35; 41) | 25 | STRUCT_KW@[35; 41) |
26 | WHITESPACE@[41; 42) | 26 | WHITESPACE@[41; 42) |
27 | IDENT@[42; 43) | 27 | IDENT@[42; 43) "D" |
28 | WHITESPACE@[43; 44) | 28 | WHITESPACE@[43; 44) |
29 | L_CURLY@[44; 45) | 29 | L_CURLY@[44; 45) |
30 | NAMED_FIELD@[45; 56) | 30 | NAMED_FIELD@[45; 56) |
31 | WHITESPACE@[45; 50) | 31 | WHITESPACE@[45; 50) |
32 | IDENT@[50; 51) | 32 | IDENT@[50; 51) "a" |
33 | COLON@[51; 52) | 33 | COLON@[51; 52) |
34 | WHITESPACE@[52; 53) | 34 | WHITESPACE@[52; 53) |
35 | IDENT@[53; 56) | 35 | IDENT@[53; 56) "u32" |
36 | COMMA@[56; 57) | 36 | COMMA@[56; 57) |
37 | NAMED_FIELD@[57; 73) | 37 | NAMED_FIELD@[57; 73) |
38 | VISIBILITY@[57; 66) | 38 | VISIBILITY@[57; 66) |
39 | WHITESPACE@[57; 62) | 39 | WHITESPACE@[57; 62) |
40 | PUB_KW@[62; 65) | 40 | PUB_KW@[62; 65) |
41 | WHITESPACE@[65; 66) | 41 | WHITESPACE@[65; 66) |
42 | IDENT@[66; 67) | 42 | IDENT@[66; 67) "b" |
43 | COLON@[67; 68) | 43 | COLON@[67; 68) |
44 | WHITESPACE@[68; 69) | 44 | WHITESPACE@[68; 69) |
45 | IDENT@[69; 72) | 45 | IDENT@[69; 72) "u32" |
46 | WHITESPACE@[72; 73) | 46 | WHITESPACE@[72; 73) |
47 | R_CURLY@[73; 74) | 47 | R_CURLY@[73; 74) |
48 | WHITESPACE@[74; 76) | 48 | WHITESPACE@[74; 76) |
49 | STRUCT_ITEM@[76; 97) | 49 | STRUCT_ITEM@[76; 97) |
50 | STRUCT_KW@[76; 82) | 50 | STRUCT_KW@[76; 82) |
51 | WHITESPACE@[82; 83) | 51 | WHITESPACE@[82; 83) |
52 | IDENT@[83; 84) | 52 | IDENT@[83; 84) "E" |
53 | L_PAREN@[84; 85) | 53 | L_PAREN@[84; 85) |
54 | POS_FIELD@[85; 90) | 54 | POS_FIELD@[85; 90) |
55 | VISIBILITY@[85; 89) | 55 | VISIBILITY@[85; 89) |
56 | PUB_KW@[85; 88) | 56 | PUB_KW@[85; 88) |
57 | WHITESPACE@[88; 89) | 57 | WHITESPACE@[88; 89) |
58 | IDENT@[89; 90) | 58 | IDENT@[89; 90) "x" |
59 | COMMA@[90; 91) | 59 | COMMA@[90; 91) |
60 | POS_FIELD@[91; 93) | 60 | POS_FIELD@[91; 93) |
61 | WHITESPACE@[91; 92) | 61 | WHITESPACE@[91; 92) |
62 | IDENT@[92; 93) | 62 | IDENT@[92; 93) "y" |
63 | COMMA@[93; 94) | 63 | COMMA@[93; 94) |
64 | R_PAREN@[94; 95) | 64 | R_PAREN@[94; 95) |
65 | SEMI@[95; 96) | 65 | SEMI@[95; 96) |
diff --git a/tests/data/parser/ok/0017_attr_trailing_comma.txt b/tests/data/parser/ok/0017_attr_trailing_comma.txt index 1b99d7ffd..304417ed9 100644 --- a/tests/data/parser/ok/0017_attr_trailing_comma.txt +++ b/tests/data/parser/ok/0017_attr_trailing_comma.txt | |||
@@ -4,17 +4,17 @@ FILE@[0; 23) | |||
4 | POUND@[0; 1) | 4 | POUND@[0; 1) |
5 | L_BRACK@[1; 2) | 5 | L_BRACK@[1; 2) |
6 | META_ITEM@[2; 9) | 6 | META_ITEM@[2; 9) |
7 | IDENT@[2; 5) | 7 | IDENT@[2; 5) "foo" |
8 | L_PAREN@[5; 6) | 8 | L_PAREN@[5; 6) |
9 | META_ITEM@[6; 7) | 9 | META_ITEM@[6; 7) |
10 | IDENT@[6; 7) | 10 | IDENT@[6; 7) "a" |
11 | COMMA@[7; 8) | 11 | COMMA@[7; 8) |
12 | R_PAREN@[8; 9) | 12 | R_PAREN@[8; 9) |
13 | R_BRACK@[9; 10) | 13 | R_BRACK@[9; 10) |
14 | WHITESPACE@[10; 11) | 14 | WHITESPACE@[10; 11) |
15 | FN_KW@[11; 13) | 15 | FN_KW@[11; 13) |
16 | WHITESPACE@[13; 14) | 16 | WHITESPACE@[13; 14) |
17 | IDENT@[14; 17) | 17 | IDENT@[14; 17) "foo" |
18 | L_PAREN@[17; 18) | 18 | L_PAREN@[17; 18) |
19 | R_PAREN@[18; 19) | 19 | R_PAREN@[18; 19) |
20 | WHITESPACE@[19; 20) | 20 | WHITESPACE@[19; 20) |
diff --git a/tests/data/parser/ok/0018_struct_type_params.txt b/tests/data/parser/ok/0018_struct_type_params.txt index b2e7ef9d7..6df786f42 100644 --- a/tests/data/parser/ok/0018_struct_type_params.txt +++ b/tests/data/parser/ok/0018_struct_type_params.txt | |||
@@ -2,53 +2,53 @@ FILE@[0; 290) | |||
2 | STRUCT_ITEM@[0; 14) | 2 | STRUCT_ITEM@[0; 14) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | WHITESPACE@[6; 7) |
5 | IDENT@[7; 9) | 5 | IDENT@[7; 9) "S1" |
6 | TYPE_PARAM_LIST@[9; 12) | 6 | TYPE_PARAM_LIST@[9; 12) |
7 | L_ANGLE@[9; 10) | 7 | L_ANGLE@[9; 10) |
8 | TYPE_PARAM@[10; 11) | 8 | TYPE_PARAM@[10; 11) |
9 | IDENT@[10; 11) | 9 | IDENT@[10; 11) "T" |
10 | R_ANGLE@[11; 12) | 10 | R_ANGLE@[11; 12) |
11 | SEMI@[12; 13) | 11 | SEMI@[12; 13) |
12 | WHITESPACE@[13; 14) | 12 | WHITESPACE@[13; 14) |
13 | STRUCT_ITEM@[14; 33) | 13 | STRUCT_ITEM@[14; 33) |
14 | STRUCT_KW@[14; 20) | 14 | STRUCT_KW@[14; 20) |
15 | WHITESPACE@[20; 21) | 15 | WHITESPACE@[20; 21) |
16 | IDENT@[21; 23) | 16 | IDENT@[21; 23) "S2" |
17 | TYPE_PARAM_LIST@[23; 26) | 17 | TYPE_PARAM_LIST@[23; 26) |
18 | L_ANGLE@[23; 24) | 18 | L_ANGLE@[23; 24) |
19 | TYPE_PARAM@[24; 25) | 19 | TYPE_PARAM@[24; 25) |
20 | IDENT@[24; 25) | 20 | IDENT@[24; 25) "T" |
21 | R_ANGLE@[25; 26) | 21 | R_ANGLE@[25; 26) |
22 | L_PAREN@[26; 27) | 22 | L_PAREN@[26; 27) |
23 | POS_FIELD@[27; 30) | 23 | POS_FIELD@[27; 30) |
24 | IDENT@[27; 30) | 24 | IDENT@[27; 30) "u32" |
25 | R_PAREN@[30; 31) | 25 | R_PAREN@[30; 31) |
26 | SEMI@[31; 32) | 26 | SEMI@[31; 32) |
27 | WHITESPACE@[32; 33) | 27 | WHITESPACE@[32; 33) |
28 | STRUCT_ITEM@[33; 58) | 28 | STRUCT_ITEM@[33; 58) |
29 | STRUCT_KW@[33; 39) | 29 | STRUCT_KW@[33; 39) |
30 | WHITESPACE@[39; 40) | 30 | WHITESPACE@[39; 40) |
31 | IDENT@[40; 42) | 31 | IDENT@[40; 42) "S3" |
32 | TYPE_PARAM_LIST@[42; 46) | 32 | TYPE_PARAM_LIST@[42; 46) |
33 | L_ANGLE@[42; 43) | 33 | L_ANGLE@[42; 43) |
34 | TYPE_PARAM@[43; 44) | 34 | TYPE_PARAM@[43; 44) |
35 | IDENT@[43; 44) | 35 | IDENT@[43; 44) "T" |
36 | R_ANGLE@[44; 45) | 36 | R_ANGLE@[44; 45) |
37 | WHITESPACE@[45; 46) | 37 | WHITESPACE@[45; 46) |
38 | L_CURLY@[46; 47) | 38 | L_CURLY@[46; 47) |
39 | NAMED_FIELD@[47; 55) | 39 | NAMED_FIELD@[47; 55) |
40 | WHITESPACE@[47; 48) | 40 | WHITESPACE@[47; 48) |
41 | IDENT@[48; 49) | 41 | IDENT@[48; 49) "u" |
42 | COLON@[49; 50) | 42 | COLON@[49; 50) |
43 | WHITESPACE@[50; 51) | 43 | WHITESPACE@[50; 51) |
44 | IDENT@[51; 54) | 44 | IDENT@[51; 54) "u32" |
45 | WHITESPACE@[54; 55) | 45 | WHITESPACE@[54; 55) |
46 | R_CURLY@[55; 56) | 46 | R_CURLY@[55; 56) |
47 | WHITESPACE@[56; 58) | 47 | WHITESPACE@[56; 58) |
48 | STRUCT_ITEM@[58; 71) | 48 | STRUCT_ITEM@[58; 71) |
49 | STRUCT_KW@[58; 64) | 49 | STRUCT_KW@[58; 64) |
50 | WHITESPACE@[64; 65) | 50 | WHITESPACE@[64; 65) |
51 | IDENT@[65; 67) | 51 | IDENT@[65; 67) "S4" |
52 | TYPE_PARAM_LIST@[67; 69) | 52 | TYPE_PARAM_LIST@[67; 69) |
53 | L_ANGLE@[67; 68) | 53 | L_ANGLE@[67; 68) |
54 | R_ANGLE@[68; 69) | 54 | R_ANGLE@[68; 69) |
@@ -57,22 +57,22 @@ FILE@[0; 290) | |||
57 | STRUCT_ITEM@[71; 86) | 57 | STRUCT_ITEM@[71; 86) |
58 | STRUCT_KW@[71; 77) | 58 | STRUCT_KW@[71; 77) |
59 | WHITESPACE@[77; 78) | 59 | WHITESPACE@[77; 78) |
60 | IDENT@[78; 80) | 60 | IDENT@[78; 80) "S5" |
61 | TYPE_PARAM_LIST@[80; 84) | 61 | TYPE_PARAM_LIST@[80; 84) |
62 | L_ANGLE@[80; 81) | 62 | L_ANGLE@[80; 81) |
63 | LIFETIME_PARAM@[81; 83) | 63 | LIFETIME_PARAM@[81; 83) |
64 | LIFETIME@[81; 83) | 64 | LIFETIME@[81; 83) "'a" |
65 | R_ANGLE@[83; 84) | 65 | R_ANGLE@[83; 84) |
66 | SEMI@[84; 85) | 66 | SEMI@[84; 85) |
67 | WHITESPACE@[85; 86) | 67 | WHITESPACE@[85; 86) |
68 | STRUCT_ITEM@[86; 102) | 68 | STRUCT_ITEM@[86; 102) |
69 | STRUCT_KW@[86; 92) | 69 | STRUCT_KW@[86; 92) |
70 | WHITESPACE@[92; 93) | 70 | WHITESPACE@[92; 93) |
71 | IDENT@[93; 95) | 71 | IDENT@[93; 95) "S6" |
72 | TYPE_PARAM_LIST@[95; 100) | 72 | TYPE_PARAM_LIST@[95; 100) |
73 | L_ANGLE@[95; 96) | 73 | L_ANGLE@[95; 96) |
74 | LIFETIME_PARAM@[96; 99) | 74 | LIFETIME_PARAM@[96; 99) |
75 | LIFETIME@[96; 98) | 75 | LIFETIME@[96; 98) "'a" |
76 | COLON@[98; 99) | 76 | COLON@[98; 99) |
77 | R_ANGLE@[99; 100) | 77 | R_ANGLE@[99; 100) |
78 | SEMI@[100; 101) | 78 | SEMI@[100; 101) |
@@ -80,28 +80,28 @@ FILE@[0; 290) | |||
80 | STRUCT_ITEM@[102; 121) | 80 | STRUCT_ITEM@[102; 121) |
81 | STRUCT_KW@[102; 108) | 81 | STRUCT_KW@[102; 108) |
82 | WHITESPACE@[108; 109) | 82 | WHITESPACE@[108; 109) |
83 | IDENT@[109; 111) | 83 | IDENT@[109; 111) "S7" |
84 | TYPE_PARAM_LIST@[111; 119) | 84 | TYPE_PARAM_LIST@[111; 119) |
85 | L_ANGLE@[111; 112) | 85 | L_ANGLE@[111; 112) |
86 | LIFETIME_PARAM@[112; 118) | 86 | LIFETIME_PARAM@[112; 118) |
87 | LIFETIME@[112; 114) | 87 | LIFETIME@[112; 114) "'a" |
88 | COLON@[114; 115) | 88 | COLON@[114; 115) |
89 | WHITESPACE@[115; 116) | 89 | WHITESPACE@[115; 116) |
90 | LIFETIME@[116; 118) | 90 | LIFETIME@[116; 118) "'b" |
91 | R_ANGLE@[118; 119) | 91 | R_ANGLE@[118; 119) |
92 | SEMI@[119; 120) | 92 | SEMI@[119; 120) |
93 | WHITESPACE@[120; 121) | 93 | WHITESPACE@[120; 121) |
94 | STRUCT_ITEM@[121; 143) | 94 | STRUCT_ITEM@[121; 143) |
95 | STRUCT_KW@[121; 127) | 95 | STRUCT_KW@[121; 127) |
96 | WHITESPACE@[127; 128) | 96 | WHITESPACE@[127; 128) |
97 | IDENT@[128; 130) | 97 | IDENT@[128; 130) "S8" |
98 | TYPE_PARAM_LIST@[130; 141) | 98 | TYPE_PARAM_LIST@[130; 141) |
99 | L_ANGLE@[130; 131) | 99 | L_ANGLE@[130; 131) |
100 | LIFETIME_PARAM@[131; 140) | 100 | LIFETIME_PARAM@[131; 140) |
101 | LIFETIME@[131; 133) | 101 | LIFETIME@[131; 133) "'a" |
102 | COLON@[133; 134) | 102 | COLON@[133; 134) |
103 | WHITESPACE@[134; 135) | 103 | WHITESPACE@[134; 135) |
104 | LIFETIME@[135; 137) | 104 | LIFETIME@[135; 137) "'b" |
105 | WHITESPACE@[137; 138) | 105 | WHITESPACE@[137; 138) |
106 | PLUS@[138; 139) | 106 | PLUS@[138; 139) |
107 | WHITESPACE@[139; 140) | 107 | WHITESPACE@[139; 140) |
@@ -111,29 +111,29 @@ FILE@[0; 290) | |||
111 | STRUCT_ITEM@[143; 167) | 111 | STRUCT_ITEM@[143; 167) |
112 | STRUCT_KW@[143; 149) | 112 | STRUCT_KW@[143; 149) |
113 | WHITESPACE@[149; 150) | 113 | WHITESPACE@[149; 150) |
114 | IDENT@[150; 152) | 114 | IDENT@[150; 152) "S9" |
115 | TYPE_PARAM_LIST@[152; 165) | 115 | TYPE_PARAM_LIST@[152; 165) |
116 | L_ANGLE@[152; 153) | 116 | L_ANGLE@[152; 153) |
117 | LIFETIME_PARAM@[153; 164) | 117 | LIFETIME_PARAM@[153; 164) |
118 | LIFETIME@[153; 155) | 118 | LIFETIME@[153; 155) "'a" |
119 | COLON@[155; 156) | 119 | COLON@[155; 156) |
120 | WHITESPACE@[156; 157) | 120 | WHITESPACE@[156; 157) |
121 | LIFETIME@[157; 159) | 121 | LIFETIME@[157; 159) "'b" |
122 | WHITESPACE@[159; 160) | 122 | WHITESPACE@[159; 160) |
123 | PLUS@[160; 161) | 123 | PLUS@[160; 161) |
124 | WHITESPACE@[161; 162) | 124 | WHITESPACE@[161; 162) |
125 | LIFETIME@[162; 164) | 125 | LIFETIME@[162; 164) "'c" |
126 | R_ANGLE@[164; 165) | 126 | R_ANGLE@[164; 165) |
127 | SEMI@[165; 166) | 127 | SEMI@[165; 166) |
128 | WHITESPACE@[166; 167) | 128 | WHITESPACE@[166; 167) |
129 | STRUCT_ITEM@[167; 184) | 129 | STRUCT_ITEM@[167; 184) |
130 | STRUCT_KW@[167; 173) | 130 | STRUCT_KW@[167; 173) |
131 | WHITESPACE@[173; 174) | 131 | WHITESPACE@[173; 174) |
132 | IDENT@[174; 177) | 132 | IDENT@[174; 177) "S10" |
133 | TYPE_PARAM_LIST@[177; 182) | 133 | TYPE_PARAM_LIST@[177; 182) |
134 | L_ANGLE@[177; 178) | 134 | L_ANGLE@[177; 178) |
135 | LIFETIME_PARAM@[178; 180) | 135 | LIFETIME_PARAM@[178; 180) |
136 | LIFETIME@[178; 180) | 136 | LIFETIME@[178; 180) "'a" |
137 | COMMA@[180; 181) | 137 | COMMA@[180; 181) |
138 | R_ANGLE@[181; 182) | 138 | R_ANGLE@[181; 182) |
139 | SEMI@[182; 183) | 139 | SEMI@[182; 183) |
@@ -141,37 +141,37 @@ FILE@[0; 290) | |||
141 | STRUCT_ITEM@[184; 204) | 141 | STRUCT_ITEM@[184; 204) |
142 | STRUCT_KW@[184; 190) | 142 | STRUCT_KW@[184; 190) |
143 | WHITESPACE@[190; 191) | 143 | WHITESPACE@[190; 191) |
144 | IDENT@[191; 194) | 144 | IDENT@[191; 194) "S11" |
145 | TYPE_PARAM_LIST@[194; 202) | 145 | TYPE_PARAM_LIST@[194; 202) |
146 | L_ANGLE@[194; 195) | 146 | L_ANGLE@[194; 195) |
147 | LIFETIME_PARAM@[195; 197) | 147 | LIFETIME_PARAM@[195; 197) |
148 | LIFETIME@[195; 197) | 148 | LIFETIME@[195; 197) "'a" |
149 | COMMA@[197; 198) | 149 | COMMA@[197; 198) |
150 | LIFETIME_PARAM@[198; 201) | 150 | LIFETIME_PARAM@[198; 201) |
151 | WHITESPACE@[198; 199) | 151 | WHITESPACE@[198; 199) |
152 | LIFETIME@[199; 201) | 152 | LIFETIME@[199; 201) "'b" |
153 | R_ANGLE@[201; 202) | 153 | R_ANGLE@[201; 202) |
154 | SEMI@[202; 203) | 154 | SEMI@[202; 203) |
155 | WHITESPACE@[203; 204) | 155 | WHITESPACE@[203; 204) |
156 | STRUCT_ITEM@[204; 235) | 156 | STRUCT_ITEM@[204; 235) |
157 | STRUCT_KW@[204; 210) | 157 | STRUCT_KW@[204; 210) |
158 | WHITESPACE@[210; 211) | 158 | WHITESPACE@[210; 211) |
159 | IDENT@[211; 214) | 159 | IDENT@[211; 214) "S12" |
160 | TYPE_PARAM_LIST@[214; 232) | 160 | TYPE_PARAM_LIST@[214; 232) |
161 | L_ANGLE@[214; 215) | 161 | L_ANGLE@[214; 215) |
162 | LIFETIME_PARAM@[215; 222) | 162 | LIFETIME_PARAM@[215; 222) |
163 | LIFETIME@[215; 217) | 163 | LIFETIME@[215; 217) "'a" |
164 | COLON@[217; 218) | 164 | COLON@[217; 218) |
165 | WHITESPACE@[218; 219) | 165 | WHITESPACE@[218; 219) |
166 | LIFETIME@[219; 221) | 166 | LIFETIME@[219; 221) "'b" |
167 | PLUS@[221; 222) | 167 | PLUS@[221; 222) |
168 | COMMA@[222; 223) | 168 | COMMA@[222; 223) |
169 | LIFETIME_PARAM@[223; 230) | 169 | LIFETIME_PARAM@[223; 230) |
170 | WHITESPACE@[223; 224) | 170 | WHITESPACE@[223; 224) |
171 | LIFETIME@[224; 226) | 171 | LIFETIME@[224; 226) "'b" |
172 | COLON@[226; 227) | 172 | COLON@[226; 227) |
173 | WHITESPACE@[227; 228) | 173 | WHITESPACE@[227; 228) |
174 | LIFETIME@[228; 230) | 174 | LIFETIME@[228; 230) "'c" |
175 | COMMA@[230; 231) | 175 | COMMA@[230; 231) |
176 | R_ANGLE@[231; 232) | 176 | R_ANGLE@[231; 232) |
177 | SEMI@[232; 233) | 177 | SEMI@[232; 233) |
@@ -179,45 +179,45 @@ FILE@[0; 290) | |||
179 | STRUCT_ITEM@[235; 250) | 179 | STRUCT_ITEM@[235; 250) |
180 | STRUCT_KW@[235; 241) | 180 | STRUCT_KW@[235; 241) |
181 | WHITESPACE@[241; 242) | 181 | WHITESPACE@[241; 242) |
182 | IDENT@[242; 245) | 182 | IDENT@[242; 245) "S13" |
183 | TYPE_PARAM_LIST@[245; 248) | 183 | TYPE_PARAM_LIST@[245; 248) |
184 | L_ANGLE@[245; 246) | 184 | L_ANGLE@[245; 246) |
185 | TYPE_PARAM@[246; 247) | 185 | TYPE_PARAM@[246; 247) |
186 | IDENT@[246; 247) | 186 | IDENT@[246; 247) "T" |
187 | R_ANGLE@[247; 248) | 187 | R_ANGLE@[247; 248) |
188 | SEMI@[248; 249) | 188 | SEMI@[248; 249) |
189 | WHITESPACE@[249; 250) | 189 | WHITESPACE@[249; 250) |
190 | STRUCT_ITEM@[250; 268) | 190 | STRUCT_ITEM@[250; 268) |
191 | STRUCT_KW@[250; 256) | 191 | STRUCT_KW@[250; 256) |
192 | WHITESPACE@[256; 257) | 192 | WHITESPACE@[256; 257) |
193 | IDENT@[257; 260) | 193 | IDENT@[257; 260) "S14" |
194 | TYPE_PARAM_LIST@[260; 266) | 194 | TYPE_PARAM_LIST@[260; 266) |
195 | L_ANGLE@[260; 261) | 195 | L_ANGLE@[260; 261) |
196 | TYPE_PARAM@[261; 262) | 196 | TYPE_PARAM@[261; 262) |
197 | IDENT@[261; 262) | 197 | IDENT@[261; 262) "T" |
198 | COMMA@[262; 263) | 198 | COMMA@[262; 263) |
199 | TYPE_PARAM@[263; 265) | 199 | TYPE_PARAM@[263; 265) |
200 | WHITESPACE@[263; 264) | 200 | WHITESPACE@[263; 264) |
201 | IDENT@[264; 265) | 201 | IDENT@[264; 265) "U" |
202 | R_ANGLE@[265; 266) | 202 | R_ANGLE@[265; 266) |
203 | SEMI@[266; 267) | 203 | SEMI@[266; 267) |
204 | WHITESPACE@[267; 268) | 204 | WHITESPACE@[267; 268) |
205 | STRUCT_ITEM@[268; 290) | 205 | STRUCT_ITEM@[268; 290) |
206 | STRUCT_KW@[268; 274) | 206 | STRUCT_KW@[268; 274) |
207 | WHITESPACE@[274; 275) | 207 | WHITESPACE@[274; 275) |
208 | IDENT@[275; 278) | 208 | IDENT@[275; 278) "S15" |
209 | TYPE_PARAM_LIST@[278; 288) | 209 | TYPE_PARAM_LIST@[278; 288) |
210 | L_ANGLE@[278; 279) | 210 | L_ANGLE@[278; 279) |
211 | LIFETIME_PARAM@[279; 281) | 211 | LIFETIME_PARAM@[279; 281) |
212 | LIFETIME@[279; 281) | 212 | LIFETIME@[279; 281) "'a" |
213 | COMMA@[281; 282) | 213 | COMMA@[281; 282) |
214 | TYPE_PARAM@[282; 284) | 214 | TYPE_PARAM@[282; 284) |
215 | WHITESPACE@[282; 283) | 215 | WHITESPACE@[282; 283) |
216 | IDENT@[283; 284) | 216 | IDENT@[283; 284) "T" |
217 | COMMA@[284; 285) | 217 | COMMA@[284; 285) |
218 | TYPE_PARAM@[285; 287) | 218 | TYPE_PARAM@[285; 287) |
219 | WHITESPACE@[285; 286) | 219 | WHITESPACE@[285; 286) |
220 | IDENT@[286; 287) | 220 | IDENT@[286; 287) "U" |
221 | R_ANGLE@[287; 288) | 221 | R_ANGLE@[287; 288) |
222 | SEMI@[288; 289) | 222 | SEMI@[288; 289) |
223 | WHITESPACE@[289; 290) | 223 | WHITESPACE@[289; 290) |
diff --git a/tests/data/parser/ok/0019_enums.rs b/tests/data/parser/ok/0019_enums.rs new file mode 100644 index 000000000..7a1afa0e6 --- /dev/null +++ b/tests/data/parser/ok/0019_enums.rs | |||
@@ -0,0 +1,25 @@ | |||
1 | enum E1 { | ||
2 | } | ||
3 | |||
4 | enum E2<T> { | ||
5 | } | ||
6 | |||
7 | enum E3 { | ||
8 | X | ||
9 | } | ||
10 | |||
11 | enum E4 { | ||
12 | X, | ||
13 | } | ||
14 | |||
15 | enum E5 { | ||
16 | A, | ||
17 | B = 92, | ||
18 | C { | ||
19 | a: u32, | ||
20 | pub b: f64, | ||
21 | }, | ||
22 | F {}, | ||
23 | D(u32,), | ||
24 | E(), | ||
25 | } | ||
diff --git a/tests/data/parser/ok/0019_enums.txt b/tests/data/parser/ok/0019_enums.txt new file mode 100644 index 000000000..dfb8e1f0c --- /dev/null +++ b/tests/data/parser/ok/0019_enums.txt | |||
@@ -0,0 +1,118 @@ | |||
1 | FILE@[0; 182) | ||
2 | ENUM_ITEM@[0; 13) | ||
3 | ENUM_KW@[0; 4) | ||
4 | WHITESPACE@[4; 5) | ||
5 | IDENT@[5; 7) "E1" | ||
6 | WHITESPACE@[7; 8) | ||
7 | L_CURLY@[8; 9) | ||
8 | WHITESPACE@[9; 10) | ||
9 | R_CURLY@[10; 11) | ||
10 | WHITESPACE@[11; 13) | ||
11 | ENUM_ITEM@[13; 29) | ||
12 | ENUM_KW@[13; 17) | ||
13 | WHITESPACE@[17; 18) | ||
14 | IDENT@[18; 20) "E2" | ||
15 | TYPE_PARAM_LIST@[20; 24) | ||
16 | L_ANGLE@[20; 21) | ||
17 | TYPE_PARAM@[21; 22) | ||
18 | IDENT@[21; 22) "T" | ||
19 | R_ANGLE@[22; 23) | ||
20 | WHITESPACE@[23; 24) | ||
21 | L_CURLY@[24; 25) | ||
22 | WHITESPACE@[25; 26) | ||
23 | R_CURLY@[26; 27) | ||
24 | WHITESPACE@[27; 29) | ||
25 | ENUM_ITEM@[29; 48) | ||
26 | ENUM_KW@[29; 33) | ||
27 | WHITESPACE@[33; 34) | ||
28 | IDENT@[34; 36) "E3" | ||
29 | WHITESPACE@[36; 37) | ||
30 | L_CURLY@[37; 38) | ||
31 | ENUM_VARIANT@[38; 45) | ||
32 | WHITESPACE@[38; 43) | ||
33 | IDENT@[43; 44) "X" | ||
34 | WHITESPACE@[44; 45) | ||
35 | R_CURLY@[45; 46) | ||
36 | WHITESPACE@[46; 48) | ||
37 | ENUM_ITEM@[48; 68) | ||
38 | ENUM_KW@[48; 52) | ||
39 | WHITESPACE@[52; 53) | ||
40 | IDENT@[53; 55) "E4" | ||
41 | WHITESPACE@[55; 56) | ||
42 | L_CURLY@[56; 57) | ||
43 | ENUM_VARIANT@[57; 63) | ||
44 | WHITESPACE@[57; 62) | ||
45 | IDENT@[62; 63) "X" | ||
46 | COMMA@[63; 64) | ||
47 | WHITESPACE@[64; 65) | ||
48 | R_CURLY@[65; 66) | ||
49 | WHITESPACE@[66; 68) | ||
50 | ENUM_ITEM@[68; 182) | ||
51 | ENUM_KW@[68; 72) | ||
52 | WHITESPACE@[72; 73) | ||
53 | IDENT@[73; 75) "E5" | ||
54 | WHITESPACE@[75; 76) | ||
55 | L_CURLY@[76; 77) | ||
56 | ENUM_VARIANT@[77; 83) | ||
57 | WHITESPACE@[77; 82) | ||
58 | IDENT@[82; 83) "A" | ||
59 | COMMA@[83; 84) | ||
60 | ENUM_VARIANT@[84; 95) | ||
61 | WHITESPACE@[84; 89) | ||
62 | IDENT@[89; 90) "B" | ||
63 | WHITESPACE@[90; 91) | ||
64 | EQ@[91; 92) | ||
65 | LITERAL@[92; 95) | ||
66 | WHITESPACE@[92; 93) | ||
67 | INT_NUMBER@[93; 95) | ||
68 | COMMA@[95; 96) | ||
69 | ENUM_VARIANT@[96; 146) | ||
70 | WHITESPACE@[96; 101) | ||
71 | IDENT@[101; 102) "C" | ||
72 | WHITESPACE@[102; 103) | ||
73 | L_CURLY@[103; 104) | ||
74 | NAMED_FIELD@[104; 119) | ||
75 | WHITESPACE@[104; 113) | ||
76 | IDENT@[113; 114) "a" | ||
77 | COLON@[114; 115) | ||
78 | WHITESPACE@[115; 116) | ||
79 | IDENT@[116; 119) "u32" | ||
80 | COMMA@[119; 120) | ||
81 | NAMED_FIELD@[120; 139) | ||
82 | VISIBILITY@[120; 133) | ||
83 | WHITESPACE@[120; 129) | ||
84 | PUB_KW@[129; 132) | ||
85 | WHITESPACE@[132; 133) | ||
86 | IDENT@[133; 134) "b" | ||
87 | COLON@[134; 135) | ||
88 | WHITESPACE@[135; 136) | ||
89 | IDENT@[136; 139) "f64" | ||
90 | COMMA@[139; 140) | ||
91 | WHITESPACE@[140; 145) | ||
92 | R_CURLY@[145; 146) | ||
93 | COMMA@[146; 147) | ||
94 | ENUM_VARIANT@[147; 156) | ||
95 | WHITESPACE@[147; 152) | ||
96 | IDENT@[152; 153) "F" | ||
97 | WHITESPACE@[153; 154) | ||
98 | L_CURLY@[154; 155) | ||
99 | R_CURLY@[155; 156) | ||
100 | COMMA@[156; 157) | ||
101 | ENUM_VARIANT@[157; 169) | ||
102 | WHITESPACE@[157; 162) | ||
103 | IDENT@[162; 163) "D" | ||
104 | L_PAREN@[163; 164) | ||
105 | POS_FIELD@[164; 167) | ||
106 | IDENT@[164; 167) "u32" | ||
107 | COMMA@[167; 168) | ||
108 | R_PAREN@[168; 169) | ||
109 | COMMA@[169; 170) | ||
110 | ENUM_VARIANT@[170; 178) | ||
111 | WHITESPACE@[170; 175) | ||
112 | IDENT@[175; 176) "E" | ||
113 | L_PAREN@[176; 177) | ||
114 | R_PAREN@[177; 178) | ||
115 | COMMA@[178; 179) | ||
116 | WHITESPACE@[179; 180) | ||
117 | R_CURLY@[180; 181) | ||
118 | WHITESPACE@[181; 182) | ||