31: Parse enums r=matklad a=matklad
This commit is contained in:
bors[bot] 2018-01-28 20:14:24 +00:00
commit 94caa9d3a2
33 changed files with 377 additions and 171 deletions

View file

@ -74,6 +74,8 @@ Grammar(
nodes: [ nodes: [
"FILE", "FILE",
"STRUCT_ITEM", "STRUCT_ITEM",
"ENUM_ITEM",
"ENUM_VARIANT",
"NAMED_FIELD", "NAMED_FIELD",
"POS_FIELD", "POS_FIELD",
"FN_ITEM", "FN_ITEM",

View file

@ -12,3 +12,9 @@ pub(super) fn literal(p: &mut Parser) -> bool {
_ => false, _ => false,
} }
} }
pub(super) fn expr(p: &mut Parser) {
if !literal(p) {
p.error().message("expected expression").emit();
}
}

View file

@ -9,8 +9,9 @@ pub(super) fn mod_contents(p: &mut Parser, stop_on_r_curly: bool) {
} }
} }
pub(super) const ITEM_FIRST: TokenSet = pub(super) const ITEM_FIRST: TokenSet = token_set![
token_set![EXTERN_KW, MOD_KW, USE_KW, STRUCT_KW, FN_KW, PUB_KW, POUND,]; EXTERN_KW, MOD_KW, USE_KW, STRUCT_KW, ENUM_KW, FN_KW, PUB_KW, POUND
];
fn item(p: &mut Parser) { fn item(p: &mut Parser) {
let item = p.start(); let item = p.start();
@ -34,6 +35,10 @@ fn item(p: &mut Parser) {
structs::struct_item(p); structs::struct_item(p);
STRUCT_ITEM STRUCT_ITEM
} }
ENUM_KW => {
structs::enum_item(p);
ENUM_ITEM
}
FN_KW => { FN_KW => {
fn_item(p); fn_item(p);
FN_ITEM FN_ITEM

View file

@ -40,6 +40,40 @@ pub(super) fn struct_item(p: &mut Parser) {
} }
} }
pub(super) fn enum_item(p: &mut Parser) {
assert!(p.at(ENUM_KW));
p.bump();
p.expect(IDENT);
type_param_list(p);
where_clause(p);
if p.expect(L_CURLY) {
while !p.at(EOF) && !p.at(R_CURLY) {
let var = p.start();
attributes::outer_attributes(p);
if p.at(IDENT) {
p.bump();
match p.current() {
L_CURLY => named_fields(p),
L_PAREN => pos_fields(p),
EQ => {
p.bump();
expressions::expr(p);
}
_ => (),
}
var.complete(p, ENUM_VARIANT);
} else {
var.abandon(p);
p.err_and_bump("expected enum variant");
}
if !p.at(R_CURLY) {
p.expect(COMMA);
}
}
p.expect(R_CURLY);
}
}
fn named_fields(p: &mut Parser) { fn named_fields(p: &mut Parser) {
assert!(p.at(L_CURLY)); assert!(p.at(L_CURLY));
p.bump(); p.bump();

View file

@ -76,6 +76,8 @@ pub enum SyntaxKind {
SHEBANG, SHEBANG,
FILE, FILE,
STRUCT_ITEM, STRUCT_ITEM,
ENUM_ITEM,
ENUM_VARIANT,
NAMED_FIELD, NAMED_FIELD,
POS_FIELD, POS_FIELD,
FN_ITEM, FN_ITEM,
@ -176,6 +178,8 @@ impl SyntaxKind {
SHEBANG => &SyntaxInfo { name: "SHEBANG" }, SHEBANG => &SyntaxInfo { name: "SHEBANG" },
FILE => &SyntaxInfo { name: "FILE" }, FILE => &SyntaxInfo { name: "FILE" },
STRUCT_ITEM => &SyntaxInfo { name: "STRUCT_ITEM" }, STRUCT_ITEM => &SyntaxInfo { name: "STRUCT_ITEM" },
ENUM_ITEM => &SyntaxInfo { name: "ENUM_ITEM" },
ENUM_VARIANT => &SyntaxInfo { name: "ENUM_VARIANT" },
NAMED_FIELD => &SyntaxInfo { name: "NAMED_FIELD" }, NAMED_FIELD => &SyntaxInfo { name: "NAMED_FIELD" },
POS_FIELD => &SyntaxInfo { name: "POS_FIELD" }, POS_FIELD => &SyntaxInfo { name: "POS_FIELD" },
FN_ITEM => &SyntaxInfo { name: "FN_ITEM" }, FN_ITEM => &SyntaxInfo { name: "FN_ITEM" },

View file

@ -106,7 +106,19 @@ impl<'f> Node<'f> {
impl<'f> fmt::Debug for Node<'f> { impl<'f> fmt::Debug for Node<'f> {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
write!(fmt, "{:?}@{:?}", self.kind(), self.range()) write!(fmt, "{:?}@{:?}", self.kind(), self.range())?;
if has_short_text(self.kind()) {
write!(fmt, " \"{}\"", self.text())?;
}
Ok(())
}
}
fn has_short_text(kind: SyntaxKind) -> bool {
use syntax_kinds::*;
match kind {
IDENT | LIFETIME => true,
_ => false,
} }
} }

View file

@ -2,21 +2,21 @@ FILE@[0; 34)
STRUCT_ITEM@[0; 34) STRUCT_ITEM@[0; 34)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "S"
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 26) NAMED_FIELD@[10; 26)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 16) IDENT@[15; 16) "a"
COLON@[16; 17) COLON@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
IDENT@[18; 21) IDENT@[18; 21) "u32"
WHITESPACE@[21; 26) WHITESPACE@[21; 26)
err: `expected COMMA` err: `expected COMMA`
NAMED_FIELD@[26; 33) NAMED_FIELD@[26; 33)
IDENT@[26; 27) IDENT@[26; 27) "b"
COLON@[27; 28) COLON@[27; 28)
WHITESPACE@[28; 29) WHITESPACE@[28; 29)
IDENT@[29; 32) IDENT@[29; 32) "u32"
WHITESPACE@[32; 33) WHITESPACE@[32; 33)
R_CURLY@[33; 34) R_CURLY@[33; 34)

View file

@ -1,16 +1,16 @@
FILE@[0; 21) FILE@[0; 21)
ERROR@[0; 3) ERROR@[0; 3)
err: `expected item` err: `expected item`
IDENT@[0; 2) IDENT@[0; 2) "if"
WHITESPACE@[2; 3) WHITESPACE@[2; 3)
ERROR@[3; 10) ERROR@[3; 10)
err: `expected item` err: `expected item`
IDENT@[3; 8) IDENT@[3; 8) "match"
WHITESPACE@[8; 10) WHITESPACE@[8; 10)
STRUCT_ITEM@[10; 21) STRUCT_ITEM@[10; 21)
STRUCT_KW@[10; 16) STRUCT_KW@[10; 16)
WHITESPACE@[16; 17) WHITESPACE@[16; 17)
IDENT@[17; 18) IDENT@[17; 18) "S"
WHITESPACE@[18; 19) WHITESPACE@[18; 19)
L_CURLY@[19; 20) L_CURLY@[19; 20)
R_CURLY@[20; 21) R_CURLY@[20; 21)

View file

@ -2,22 +2,22 @@ FILE@[0; 40)
STRUCT_ITEM@[0; 39) STRUCT_ITEM@[0; 39)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "S"
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 21) NAMED_FIELD@[10; 21)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 16) IDENT@[15; 16) "a"
COLON@[16; 17) COLON@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
IDENT@[18; 21) IDENT@[18; 21) "i32"
COMMA@[21; 22) COMMA@[21; 22)
NAMED_FIELD@[22; 36) NAMED_FIELD@[22; 36)
WHITESPACE@[22; 27) WHITESPACE@[22; 27)
IDENT@[27; 28) IDENT@[27; 28) "b"
COLON@[28; 29) COLON@[28; 29)
WHITESPACE@[29; 30) WHITESPACE@[29; 30)
IDENT@[30; 36) IDENT@[30; 36) "String"
COMMA@[36; 37) COMMA@[36; 37)
WHITESPACE@[37; 38) WHITESPACE@[37; 38)
R_CURLY@[38; 39) R_CURLY@[38; 39)

View file

@ -6,7 +6,7 @@ FILE@[0; 12)
PATH@[3; 7) PATH@[3; 7)
PATH_SEGMENT@[3; 7) PATH_SEGMENT@[3; 7)
WHITESPACE@[3; 4) WHITESPACE@[3; 4)
IDENT@[4; 7) IDENT@[4; 7) "foo"
COLONCOLON@[7; 9) COLONCOLON@[7; 9)
PATH_SEGMENT@[9; 9) PATH_SEGMENT@[9; 9)
err: `expected identifier` err: `expected identifier`

View file

@ -4,10 +4,10 @@ FILE@[0; 54)
POUND@[0; 1) POUND@[0; 1)
L_BRACK@[1; 2) L_BRACK@[1; 2)
META_ITEM@[2; 17) META_ITEM@[2; 17)
IDENT@[2; 5) IDENT@[2; 5) "foo"
L_PAREN@[5; 6) L_PAREN@[5; 6)
META_ITEM@[6; 9) META_ITEM@[6; 9)
IDENT@[6; 9) IDENT@[6; 9) "foo"
COMMA@[9; 10) COMMA@[9; 10)
ERROR@[10; 12) ERROR@[10; 12)
err: `expected attribute` err: `expected attribute`
@ -24,7 +24,7 @@ FILE@[0; 54)
WHITESPACE@[18; 19) WHITESPACE@[18; 19)
FN_KW@[19; 21) FN_KW@[19; 21)
WHITESPACE@[21; 22) WHITESPACE@[21; 22)
IDENT@[22; 25) IDENT@[22; 25) "foo"
L_PAREN@[25; 26) L_PAREN@[25; 26)
R_PAREN@[26; 27) R_PAREN@[26; 27)
WHITESPACE@[27; 28) WHITESPACE@[27; 28)
@ -37,14 +37,14 @@ FILE@[0; 54)
POUND@[34; 35) POUND@[34; 35)
L_BRACK@[35; 36) L_BRACK@[35; 36)
META_ITEM@[36; 41) META_ITEM@[36; 41)
IDENT@[36; 39) IDENT@[36; 39) "foo"
L_PAREN@[39; 40) L_PAREN@[39; 40)
err: `expected attribute` err: `expected attribute`
WHITESPACE@[40; 41) WHITESPACE@[40; 41)
err: `expected R_BRACK` err: `expected R_BRACK`
FN_KW@[41; 43) FN_KW@[41; 43)
WHITESPACE@[43; 44) WHITESPACE@[43; 44)
IDENT@[44; 47) IDENT@[44; 47) "foo"
L_PAREN@[47; 48) L_PAREN@[47; 48)
R_PAREN@[48; 49) R_PAREN@[48; 49)
WHITESPACE@[49; 50) WHITESPACE@[49; 50)

View file

@ -2,15 +2,15 @@ FILE@[0; 74)
STRUCT_ITEM@[0; 74) STRUCT_ITEM@[0; 74)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "S"
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 21) NAMED_FIELD@[10; 21)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 16) IDENT@[15; 16) "f"
COLON@[16; 17) COLON@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
IDENT@[18; 21) IDENT@[18; 21) "u32"
COMMA@[21; 22) COMMA@[21; 22)
VISIBILITY@[22; 31) VISIBILITY@[22; 31)
WHITESPACE@[22; 27) WHITESPACE@[22; 27)
@ -37,17 +37,17 @@ FILE@[0; 74)
VISIBILITY@[48; 52) VISIBILITY@[48; 52)
PUB_KW@[48; 51) PUB_KW@[48; 51)
WHITESPACE@[51; 52) WHITESPACE@[51; 52)
IDENT@[52; 53) IDENT@[52; 53) "x"
COLON@[53; 54) COLON@[53; 54)
WHITESPACE@[54; 55) WHITESPACE@[54; 55)
IDENT@[55; 58) IDENT@[55; 58) "u32"
COMMA@[58; 59) COMMA@[58; 59)
NAMED_FIELD@[59; 70) NAMED_FIELD@[59; 70)
WHITESPACE@[59; 64) WHITESPACE@[59; 64)
IDENT@[64; 65) IDENT@[64; 65) "z"
COLON@[65; 66) COLON@[65; 66)
WHITESPACE@[66; 67) WHITESPACE@[66; 67)
IDENT@[67; 70) IDENT@[67; 70) "f64"
COMMA@[70; 71) COMMA@[70; 71)
WHITESPACE@[71; 72) WHITESPACE@[71; 72)
R_CURLY@[72; 73) R_CURLY@[72; 73)

View file

@ -6,7 +6,7 @@ FILE@[0; 31)
STRUCT_ITEM@[3; 14) STRUCT_ITEM@[3; 14)
STRUCT_KW@[3; 9) STRUCT_KW@[3; 9)
WHITESPACE@[9; 10) WHITESPACE@[9; 10)
IDENT@[10; 11) IDENT@[10; 11) "S"
SEMI@[11; 12) SEMI@[11; 12)
WHITESPACE@[12; 14) WHITESPACE@[12; 14)
ERROR@[14; 17) ERROR@[14; 17)
@ -16,7 +16,7 @@ FILE@[0; 31)
FN_ITEM@[17; 29) FN_ITEM@[17; 29)
FN_KW@[17; 19) FN_KW@[17; 19)
WHITESPACE@[19; 20) WHITESPACE@[19; 20)
IDENT@[20; 23) IDENT@[20; 23) "foo"
L_PAREN@[23; 24) L_PAREN@[23; 24)
R_PAREN@[24; 25) R_PAREN@[24; 25)
L_CURLY@[25; 26) L_CURLY@[25; 26)

View file

@ -2,7 +2,7 @@ FILE@[0; 95)
FN_ITEM@[0; 14) FN_ITEM@[0; 14)
FN_KW@[0; 2) FN_KW@[0; 2)
WHITESPACE@[2; 3) WHITESPACE@[2; 3)
IDENT@[3; 6) IDENT@[3; 6) "foo"
L_PAREN@[6; 7) L_PAREN@[6; 7)
R_PAREN@[7; 8) R_PAREN@[7; 8)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
@ -12,7 +12,7 @@ FILE@[0; 95)
WHITESPACE@[12; 14) WHITESPACE@[12; 14)
ERROR@[14; 17) ERROR@[14; 17)
err: `expected item` err: `expected item`
IDENT@[14; 17) IDENT@[14; 17) "bar"
ERROR@[17; 18) ERROR@[17; 18)
err: `expected item` err: `expected item`
L_PAREN@[17; 18) L_PAREN@[17; 18)
@ -24,7 +24,7 @@ FILE@[0; 95)
err: `expected item` err: `expected item`
L_CURLY@[20; 21) L_CURLY@[20; 21)
WHITESPACE@[21; 26) WHITESPACE@[21; 26)
IDENT@[26; 28) IDENT@[26; 28) "if"
WHITESPACE@[28; 29) WHITESPACE@[28; 29)
TRUE_KW@[29; 33) TRUE_KW@[29; 33)
WHITESPACE@[33; 34) WHITESPACE@[33; 34)
@ -34,7 +34,7 @@ FILE@[0; 95)
WHITESPACE@[45; 50) WHITESPACE@[45; 50)
R_CURLY@[50; 51) R_CURLY@[50; 51)
WHITESPACE@[51; 52) WHITESPACE@[51; 52)
IDENT@[52; 56) IDENT@[52; 56) "else"
WHITESPACE@[56; 57) WHITESPACE@[56; 57)
L_CURLY@[57; 58) L_CURLY@[57; 58)
WHITESPACE@[58; 67) WHITESPACE@[58; 67)
@ -51,7 +51,7 @@ FILE@[0; 95)
FN_ITEM@[82; 95) FN_ITEM@[82; 95)
FN_KW@[82; 84) FN_KW@[82; 84)
WHITESPACE@[84; 85) WHITESPACE@[84; 85)
IDENT@[85; 88) IDENT@[85; 88) "baz"
L_PAREN@[88; 89) L_PAREN@[88; 89)
R_PAREN@[89; 90) R_PAREN@[89; 90)
WHITESPACE@[90; 91) WHITESPACE@[90; 91)

View file

@ -2,7 +2,7 @@ FILE@[0; 43)
STRUCT_ITEM@[0; 12) STRUCT_ITEM@[0; 12)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "S"
TYPE_PARAM_LIST@[8; 12) TYPE_PARAM_LIST@[8; 12)
L_ANGLE@[8; 9) L_ANGLE@[8; 9)
ERROR@[9; 12) ERROR@[9; 12)
@ -27,16 +27,16 @@ FILE@[0; 43)
err: `expected item` err: `expected item`
L_CURLY@[17; 18) L_CURLY@[17; 18)
WHITESPACE@[18; 23) WHITESPACE@[18; 23)
IDENT@[23; 24) IDENT@[23; 24) "f"
COLON@[24; 25) COLON@[24; 25)
WHITESPACE@[25; 26) WHITESPACE@[25; 26)
IDENT@[26; 29) IDENT@[26; 29) "u32"
WHITESPACE@[29; 30) WHITESPACE@[29; 30)
R_CURLY@[30; 31) R_CURLY@[30; 31)
WHITESPACE@[31; 33) WHITESPACE@[31; 33)
STRUCT_ITEM@[33; 43) STRUCT_ITEM@[33; 43)
STRUCT_KW@[33; 39) STRUCT_KW@[33; 39)
WHITESPACE@[39; 40) WHITESPACE@[39; 40)
IDENT@[40; 41) IDENT@[40; 41) "T"
SEMI@[41; 42) SEMI@[41; 42)
WHITESPACE@[42; 43) WHITESPACE@[42; 43)

View file

@ -2,7 +2,7 @@ FILE@[0; 13)
STRUCT_ITEM@[0; 13) STRUCT_ITEM@[0; 13)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "S"
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
WHITESPACE@[10; 12) WHITESPACE@[10; 12)

View file

@ -2,14 +2,14 @@ FILE@[0; 25)
STRUCT_ITEM@[0; 25) STRUCT_ITEM@[0; 25)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "S"
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 24) NAMED_FIELD@[10; 24)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 18) IDENT@[15; 18) "foo"
COLON@[18; 19) COLON@[18; 19)
WHITESPACE@[19; 20) WHITESPACE@[19; 20)
IDENT@[20; 23) IDENT@[20; 23) "u32"
WHITESPACE@[23; 24) WHITESPACE@[23; 24)
R_CURLY@[24; 25) R_CURLY@[24; 25)

View file

@ -2,7 +2,7 @@ FILE@[0; 13)
FN_ITEM@[0; 13) FN_ITEM@[0; 13)
FN_KW@[0; 2) FN_KW@[0; 2)
WHITESPACE@[2; 3) WHITESPACE@[2; 3)
IDENT@[3; 6) IDENT@[3; 6) "foo"
L_PAREN@[6; 7) L_PAREN@[6; 7)
R_PAREN@[7; 8) R_PAREN@[7; 8)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)

View file

@ -4,7 +4,7 @@ FILE@[0; 236)
EXCL@[1; 2) EXCL@[1; 2)
L_BRACK@[2; 3) L_BRACK@[2; 3)
META_ITEM@[3; 7) META_ITEM@[3; 7)
IDENT@[3; 7) IDENT@[3; 7) "attr"
R_BRACK@[7; 8) R_BRACK@[7; 8)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
ATTR@[9; 24) ATTR@[9; 24)
@ -12,7 +12,7 @@ FILE@[0; 236)
EXCL@[10; 11) EXCL@[10; 11)
L_BRACK@[11; 12) L_BRACK@[11; 12)
META_ITEM@[12; 22) META_ITEM@[12; 22)
IDENT@[12; 16) IDENT@[12; 16) "attr"
L_PAREN@[16; 17) L_PAREN@[16; 17)
LITERAL@[17; 21) LITERAL@[17; 21)
TRUE_KW@[17; 21) TRUE_KW@[17; 21)
@ -24,10 +24,10 @@ FILE@[0; 236)
EXCL@[25; 26) EXCL@[25; 26)
L_BRACK@[26; 27) L_BRACK@[26; 27)
META_ITEM@[27; 38) META_ITEM@[27; 38)
IDENT@[27; 31) IDENT@[27; 31) "attr"
L_PAREN@[31; 32) L_PAREN@[31; 32)
META_ITEM@[32; 37) META_ITEM@[32; 37)
IDENT@[32; 37) IDENT@[32; 37) "ident"
R_PAREN@[37; 38) R_PAREN@[37; 38)
R_BRACK@[38; 39) R_BRACK@[38; 39)
WHITESPACE@[39; 40) WHITESPACE@[39; 40)
@ -36,10 +36,10 @@ FILE@[0; 236)
EXCL@[41; 42) EXCL@[41; 42)
L_BRACK@[42; 43) L_BRACK@[42; 43)
META_ITEM@[43; 115) META_ITEM@[43; 115)
IDENT@[43; 47) IDENT@[43; 47) "attr"
L_PAREN@[47; 48) L_PAREN@[47; 48)
META_ITEM@[48; 53) META_ITEM@[48; 53)
IDENT@[48; 53) IDENT@[48; 53) "ident"
COMMA@[53; 54) COMMA@[53; 54)
LITERAL@[54; 58) LITERAL@[54; 58)
WHITESPACE@[54; 55) WHITESPACE@[54; 55)
@ -55,7 +55,7 @@ FILE@[0; 236)
COMMA@[72; 73) COMMA@[72; 73)
META_ITEM@[73; 85) META_ITEM@[73; 85)
WHITESPACE@[73; 74) WHITESPACE@[73; 74)
IDENT@[74; 79) IDENT@[74; 79) "ident"
WHITESPACE@[79; 80) WHITESPACE@[79; 80)
EQ@[80; 81) EQ@[80; 81)
LITERAL@[81; 85) LITERAL@[81; 85)
@ -64,7 +64,7 @@ FILE@[0; 236)
COMMA@[85; 86) COMMA@[85; 86)
META_ITEM@[86; 102) META_ITEM@[86; 102)
WHITESPACE@[86; 87) WHITESPACE@[86; 87)
IDENT@[87; 92) IDENT@[87; 92) "ident"
WHITESPACE@[92; 93) WHITESPACE@[92; 93)
EQ@[93; 94) EQ@[93; 94)
LITERAL@[94; 102) LITERAL@[94; 102)
@ -73,7 +73,7 @@ FILE@[0; 236)
COMMA@[102; 103) COMMA@[102; 103)
META_ITEM@[103; 114) META_ITEM@[103; 114)
WHITESPACE@[103; 104) WHITESPACE@[103; 104)
IDENT@[104; 109) IDENT@[104; 109) "ident"
L_PAREN@[109; 110) L_PAREN@[109; 110)
LITERAL@[110; 113) LITERAL@[110; 113)
INT_NUMBER@[110; 113) INT_NUMBER@[110; 113)
@ -86,7 +86,7 @@ FILE@[0; 236)
EXCL@[118; 119) EXCL@[118; 119)
L_BRACK@[119; 120) L_BRACK@[119; 120)
META_ITEM@[120; 129) META_ITEM@[120; 129)
IDENT@[120; 124) IDENT@[120; 124) "attr"
L_PAREN@[124; 125) L_PAREN@[124; 125)
LITERAL@[125; 128) LITERAL@[125; 128)
INT_NUMBER@[125; 128) INT_NUMBER@[125; 128)
@ -98,10 +98,10 @@ FILE@[0; 236)
EXCL@[132; 133) EXCL@[132; 133)
L_BRACK@[133; 134) L_BRACK@[133; 134)
META_ITEM@[134; 154) META_ITEM@[134; 154)
IDENT@[134; 138) IDENT@[134; 138) "attr"
L_PAREN@[138; 139) L_PAREN@[138; 139)
META_ITEM@[139; 153) META_ITEM@[139; 153)
IDENT@[139; 146) IDENT@[139; 146) "enabled"
WHITESPACE@[146; 147) WHITESPACE@[146; 147)
EQ@[147; 148) EQ@[147; 148)
LITERAL@[148; 153) LITERAL@[148; 153)
@ -115,7 +115,7 @@ FILE@[0; 236)
EXCL@[157; 158) EXCL@[157; 158)
L_BRACK@[158; 159) L_BRACK@[158; 159)
META_ITEM@[159; 172) META_ITEM@[159; 172)
IDENT@[159; 166) IDENT@[159; 166) "enabled"
L_PAREN@[166; 167) L_PAREN@[166; 167)
LITERAL@[167; 171) LITERAL@[167; 171)
TRUE_KW@[167; 171) TRUE_KW@[167; 171)
@ -127,7 +127,7 @@ FILE@[0; 236)
EXCL@[175; 176) EXCL@[175; 176)
L_BRACK@[176; 177) L_BRACK@[176; 177)
META_ITEM@[177; 190) META_ITEM@[177; 190)
IDENT@[177; 181) IDENT@[177; 181) "attr"
L_PAREN@[181; 182) L_PAREN@[181; 182)
LITERAL@[182; 189) LITERAL@[182; 189)
STRING@[182; 189) STRING@[182; 189)
@ -139,14 +139,14 @@ FILE@[0; 236)
EXCL@[193; 194) EXCL@[193; 194)
L_BRACK@[194; 195) L_BRACK@[194; 195)
META_ITEM@[195; 213) META_ITEM@[195; 213)
IDENT@[195; 199) IDENT@[195; 199) "repr"
L_PAREN@[199; 200) L_PAREN@[199; 200)
META_ITEM@[200; 201) META_ITEM@[200; 201)
IDENT@[200; 201) IDENT@[200; 201) "C"
COMMA@[201; 202) COMMA@[201; 202)
META_ITEM@[202; 212) META_ITEM@[202; 212)
WHITESPACE@[202; 203) WHITESPACE@[202; 203)
IDENT@[203; 208) IDENT@[203; 208) "align"
WHITESPACE@[208; 209) WHITESPACE@[208; 209)
EQ@[209; 210) EQ@[209; 210)
LITERAL@[210; 212) LITERAL@[210; 212)
@ -160,14 +160,14 @@ FILE@[0; 236)
EXCL@[216; 217) EXCL@[216; 217)
L_BRACK@[217; 218) L_BRACK@[217; 218)
META_ITEM@[218; 235) META_ITEM@[218; 235)
IDENT@[218; 222) IDENT@[218; 222) "repr"
L_PAREN@[222; 223) L_PAREN@[222; 223)
META_ITEM@[223; 224) META_ITEM@[223; 224)
IDENT@[223; 224) IDENT@[223; 224) "C"
COMMA@[224; 225) COMMA@[224; 225)
META_ITEM@[225; 234) META_ITEM@[225; 234)
WHITESPACE@[225; 226) WHITESPACE@[225; 226)
IDENT@[226; 231) IDENT@[226; 231) "align"
L_PAREN@[231; 232) L_PAREN@[231; 232)
LITERAL@[232; 233) LITERAL@[232; 233)
INT_NUMBER@[232; 233) INT_NUMBER@[232; 233)

View file

@ -4,7 +4,7 @@ FILE@[0; 43)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
CRATE_KW@[7; 12) CRATE_KW@[7; 12)
WHITESPACE@[12; 13) WHITESPACE@[12; 13)
IDENT@[13; 16) IDENT@[13; 16) "foo"
SEMI@[16; 17) SEMI@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
EXTERN_CRATE_ITEM@[18; 43) EXTERN_CRATE_ITEM@[18; 43)
@ -12,11 +12,11 @@ FILE@[0; 43)
WHITESPACE@[24; 25) WHITESPACE@[24; 25)
CRATE_KW@[25; 30) CRATE_KW@[25; 30)
WHITESPACE@[30; 31) WHITESPACE@[30; 31)
IDENT@[31; 34) IDENT@[31; 34) "foo"
ALIAS@[34; 41) ALIAS@[34; 41)
WHITESPACE@[34; 35) WHITESPACE@[34; 35)
AS_KW@[35; 37) AS_KW@[35; 37)
WHITESPACE@[37; 38) WHITESPACE@[37; 38)
IDENT@[38; 41) IDENT@[38; 41) "bar"
SEMI@[41; 42) SEMI@[41; 42)
WHITESPACE@[42; 43) WHITESPACE@[42; 43)

View file

@ -2,13 +2,13 @@ FILE@[0; 118)
MOD_ITEM@[0; 8) MOD_ITEM@[0; 8)
MOD_KW@[0; 3) MOD_KW@[0; 3)
WHITESPACE@[3; 4) WHITESPACE@[3; 4)
IDENT@[4; 5) IDENT@[4; 5) "a"
SEMI@[5; 6) SEMI@[5; 6)
WHITESPACE@[6; 8) WHITESPACE@[6; 8)
MOD_ITEM@[8; 19) MOD_ITEM@[8; 19)
MOD_KW@[8; 11) MOD_KW@[8; 11)
WHITESPACE@[11; 12) WHITESPACE@[11; 12)
IDENT@[12; 13) IDENT@[12; 13) "b"
WHITESPACE@[13; 14) WHITESPACE@[13; 14)
L_CURLY@[14; 15) L_CURLY@[14; 15)
WHITESPACE@[15; 16) WHITESPACE@[15; 16)
@ -17,14 +17,14 @@ FILE@[0; 118)
MOD_ITEM@[19; 67) MOD_ITEM@[19; 67)
MOD_KW@[19; 22) MOD_KW@[19; 22)
WHITESPACE@[22; 23) WHITESPACE@[22; 23)
IDENT@[23; 24) IDENT@[23; 24) "c"
WHITESPACE@[24; 25) WHITESPACE@[24; 25)
L_CURLY@[25; 26) L_CURLY@[25; 26)
FN_ITEM@[26; 52) FN_ITEM@[26; 52)
WHITESPACE@[26; 31) WHITESPACE@[26; 31)
FN_KW@[31; 33) FN_KW@[31; 33)
WHITESPACE@[33; 34) WHITESPACE@[33; 34)
IDENT@[34; 37) IDENT@[34; 37) "foo"
L_PAREN@[37; 38) L_PAREN@[37; 38)
R_PAREN@[38; 39) R_PAREN@[38; 39)
WHITESPACE@[39; 40) WHITESPACE@[39; 40)
@ -35,7 +35,7 @@ FILE@[0; 118)
STRUCT_ITEM@[52; 64) STRUCT_ITEM@[52; 64)
STRUCT_KW@[52; 58) STRUCT_KW@[52; 58)
WHITESPACE@[58; 59) WHITESPACE@[58; 59)
IDENT@[59; 60) IDENT@[59; 60) "S"
WHITESPACE@[60; 61) WHITESPACE@[60; 61)
L_CURLY@[61; 62) L_CURLY@[61; 62)
R_CURLY@[62; 63) R_CURLY@[62; 63)
@ -45,7 +45,7 @@ FILE@[0; 118)
MOD_ITEM@[67; 118) MOD_ITEM@[67; 118)
MOD_KW@[67; 70) MOD_KW@[67; 70)
WHITESPACE@[70; 71) WHITESPACE@[70; 71)
IDENT@[71; 72) IDENT@[71; 72) "d"
WHITESPACE@[72; 73) WHITESPACE@[72; 73)
L_CURLY@[73; 74) L_CURLY@[73; 74)
ATTR@[74; 92) ATTR@[74; 92)
@ -54,19 +54,19 @@ FILE@[0; 118)
EXCL@[80; 81) EXCL@[80; 81)
L_BRACK@[81; 82) L_BRACK@[81; 82)
META_ITEM@[82; 86) META_ITEM@[82; 86)
IDENT@[82; 86) IDENT@[82; 86) "attr"
R_BRACK@[86; 87) R_BRACK@[86; 87)
WHITESPACE@[87; 92) WHITESPACE@[87; 92)
MOD_ITEM@[92; 103) MOD_ITEM@[92; 103)
MOD_KW@[92; 95) MOD_KW@[92; 95)
WHITESPACE@[95; 96) WHITESPACE@[95; 96)
IDENT@[96; 97) IDENT@[96; 97) "e"
SEMI@[97; 98) SEMI@[97; 98)
WHITESPACE@[98; 103) WHITESPACE@[98; 103)
MOD_ITEM@[103; 117) MOD_ITEM@[103; 117)
MOD_KW@[103; 106) MOD_KW@[103; 106)
WHITESPACE@[106; 107) WHITESPACE@[106; 107)
IDENT@[107; 108) IDENT@[107; 108) "f"
WHITESPACE@[108; 109) WHITESPACE@[108; 109)
L_CURLY@[109; 110) L_CURLY@[109; 110)
WHITESPACE@[110; 115) WHITESPACE@[110; 115)

View file

@ -5,7 +5,7 @@ FILE@[0; 19)
PATH@[3; 7) PATH@[3; 7)
PATH_SEGMENT@[3; 7) PATH_SEGMENT@[3; 7)
WHITESPACE@[3; 4) WHITESPACE@[3; 4)
IDENT@[4; 7) IDENT@[4; 7) "foo"
SEMI@[7; 8) SEMI@[7; 8)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
USE_ITEM@[9; 19) USE_ITEM@[9; 19)
@ -15,5 +15,5 @@ FILE@[0; 19)
PATH_SEGMENT@[12; 18) PATH_SEGMENT@[12; 18)
WHITESPACE@[12; 13) WHITESPACE@[12; 13)
COLONCOLON@[13; 15) COLONCOLON@[13; 15)
IDENT@[15; 18) IDENT@[15; 18) "bar"
SEMI@[18; 19) SEMI@[18; 19)

View file

@ -8,13 +8,13 @@ FILE@[0; 40)
PATH_SEGMENT@[3; 9) PATH_SEGMENT@[3; 9)
WHITESPACE@[3; 4) WHITESPACE@[3; 4)
COLONCOLON@[4; 6) COLONCOLON@[4; 6)
IDENT@[6; 9) IDENT@[6; 9) "foo"
COLONCOLON@[9; 11) COLONCOLON@[9; 11)
PATH_SEGMENT@[11; 14) PATH_SEGMENT@[11; 14)
IDENT@[11; 14) IDENT@[11; 14) "bar"
COLONCOLON@[14; 16) COLONCOLON@[14; 16)
PATH_SEGMENT@[16; 19) PATH_SEGMENT@[16; 19)
IDENT@[16; 19) IDENT@[16; 19) "baz"
SEMI@[19; 20) SEMI@[19; 20)
WHITESPACE@[20; 21) WHITESPACE@[20; 21)
USE_ITEM@[21; 40) USE_ITEM@[21; 40)
@ -25,12 +25,12 @@ FILE@[0; 40)
PATH@[24; 28) PATH@[24; 28)
PATH_SEGMENT@[24; 28) PATH_SEGMENT@[24; 28)
WHITESPACE@[24; 25) WHITESPACE@[24; 25)
IDENT@[25; 28) IDENT@[25; 28) "foo"
COLONCOLON@[28; 30) COLONCOLON@[28; 30)
PATH_SEGMENT@[30; 33) PATH_SEGMENT@[30; 33)
IDENT@[30; 33) IDENT@[30; 33) "bar"
COLONCOLON@[33; 35) COLONCOLON@[33; 35)
PATH_SEGMENT@[35; 38) PATH_SEGMENT@[35; 38)
IDENT@[35; 38) IDENT@[35; 38) "baz"
SEMI@[38; 39) SEMI@[38; 39)
WHITESPACE@[39; 40) WHITESPACE@[39; 40)

View file

@ -4,10 +4,10 @@ FILE@[0; 35)
POUND@[0; 1) POUND@[0; 1)
L_BRACK@[1; 2) L_BRACK@[1; 2)
META_ITEM@[2; 11) META_ITEM@[2; 11)
IDENT@[2; 5) IDENT@[2; 5) "cfg"
L_PAREN@[5; 6) L_PAREN@[5; 6)
META_ITEM@[6; 10) META_ITEM@[6; 10)
IDENT@[6; 10) IDENT@[6; 10) "test"
R_PAREN@[10; 11) R_PAREN@[10; 11)
R_BRACK@[11; 12) R_BRACK@[11; 12)
WHITESPACE@[12; 13) WHITESPACE@[12; 13)
@ -15,12 +15,12 @@ FILE@[0; 35)
POUND@[13; 14) POUND@[13; 14)
L_BRACK@[14; 15) L_BRACK@[14; 15)
META_ITEM@[15; 21) META_ITEM@[15; 21)
IDENT@[15; 21) IDENT@[15; 21) "ignore"
R_BRACK@[21; 22) R_BRACK@[21; 22)
WHITESPACE@[22; 23) WHITESPACE@[22; 23)
FN_KW@[23; 25) FN_KW@[23; 25)
WHITESPACE@[25; 26) WHITESPACE@[25; 26)
IDENT@[26; 29) IDENT@[26; 29) "foo"
L_PAREN@[29; 30) L_PAREN@[29; 30)
R_PAREN@[30; 31) R_PAREN@[30; 31)
WHITESPACE@[31; 32) WHITESPACE@[31; 32)

View file

@ -2,7 +2,7 @@ FILE@[0; 98)
FN_ITEM@[0; 10) FN_ITEM@[0; 10)
FN_KW@[0; 2) FN_KW@[0; 2)
WHITESPACE@[2; 3) WHITESPACE@[2; 3)
IDENT@[3; 4) IDENT@[3; 4) "a"
L_PAREN@[4; 5) L_PAREN@[4; 5)
R_PAREN@[5; 6) R_PAREN@[5; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
@ -15,7 +15,7 @@ FILE@[0; 98)
WHITESPACE@[13; 14) WHITESPACE@[13; 14)
FN_KW@[14; 16) FN_KW@[14; 16)
WHITESPACE@[16; 17) WHITESPACE@[16; 17)
IDENT@[17; 18) IDENT@[17; 18) "b"
L_PAREN@[18; 19) L_PAREN@[18; 19)
R_PAREN@[19; 20) R_PAREN@[19; 20)
WHITESPACE@[20; 21) WHITESPACE@[20; 21)
@ -31,7 +31,7 @@ FILE@[0; 98)
WHITESPACE@[34; 35) WHITESPACE@[34; 35)
FN_KW@[35; 37) FN_KW@[35; 37)
WHITESPACE@[37; 38) WHITESPACE@[37; 38)
IDENT@[38; 39) IDENT@[38; 39) "c"
L_PAREN@[39; 40) L_PAREN@[39; 40)
R_PAREN@[40; 41) R_PAREN@[40; 41)
WHITESPACE@[41; 42) WHITESPACE@[41; 42)
@ -47,7 +47,7 @@ FILE@[0; 98)
WHITESPACE@[55; 56) WHITESPACE@[55; 56)
FN_KW@[56; 58) FN_KW@[56; 58)
WHITESPACE@[58; 59) WHITESPACE@[58; 59)
IDENT@[59; 60) IDENT@[59; 60) "d"
L_PAREN@[60; 61) L_PAREN@[60; 61)
R_PAREN@[61; 62) R_PAREN@[61; 62)
WHITESPACE@[62; 63) WHITESPACE@[62; 63)
@ -64,18 +64,18 @@ FILE@[0; 98)
PATH@[72; 76) PATH@[72; 76)
PATH_SEGMENT@[72; 76) PATH_SEGMENT@[72; 76)
WHITESPACE@[72; 73) WHITESPACE@[72; 73)
IDENT@[73; 76) IDENT@[73; 76) "foo"
COLONCOLON@[76; 78) COLONCOLON@[76; 78)
PATH_SEGMENT@[78; 81) PATH_SEGMENT@[78; 81)
IDENT@[78; 81) IDENT@[78; 81) "bar"
COLONCOLON@[81; 83) COLONCOLON@[81; 83)
PATH_SEGMENT@[83; 86) PATH_SEGMENT@[83; 86)
IDENT@[83; 86) IDENT@[83; 86) "baz"
R_PAREN@[86; 87) R_PAREN@[86; 87)
WHITESPACE@[87; 88) WHITESPACE@[87; 88)
FN_KW@[88; 90) FN_KW@[88; 90)
WHITESPACE@[90; 91) WHITESPACE@[90; 91)
IDENT@[91; 92) IDENT@[91; 92) "e"
L_PAREN@[92; 93) L_PAREN@[92; 93)
R_PAREN@[93; 94) R_PAREN@[93; 94)
WHITESPACE@[94; 95) WHITESPACE@[94; 95)

View file

@ -9,7 +9,7 @@ FILE@[0; 65)
SELF_KW@[4; 8) SELF_KW@[4; 8)
COLONCOLON@[8; 10) COLONCOLON@[8; 10)
PATH_SEGMENT@[10; 13) PATH_SEGMENT@[10; 13)
IDENT@[10; 13) IDENT@[10; 13) "foo"
SEMI@[13; 14) SEMI@[13; 14)
WHITESPACE@[14; 15) WHITESPACE@[14; 15)
USE_ITEM@[15; 38) USE_ITEM@[15; 38)
@ -26,7 +26,7 @@ FILE@[0; 65)
SUPER_KW@[26; 31) SUPER_KW@[26; 31)
COLONCOLON@[31; 33) COLONCOLON@[31; 33)
PATH_SEGMENT@[33; 36) PATH_SEGMENT@[33; 36)
IDENT@[33; 36) IDENT@[33; 36) "bar"
SEMI@[36; 37) SEMI@[36; 37)
WHITESPACE@[37; 38) WHITESPACE@[37; 38)
USE_ITEM@[38; 65) USE_ITEM@[38; 65)
@ -42,12 +42,12 @@ FILE@[0; 65)
SELF_KW@[44; 48) SELF_KW@[44; 48)
COLONCOLON@[48; 50) COLONCOLON@[48; 50)
PATH_SEGMENT@[50; 51) PATH_SEGMENT@[50; 51)
IDENT@[50; 51) IDENT@[50; 51) "a"
COLONCOLON@[51; 53) COLONCOLON@[51; 53)
PATH_SEGMENT@[53; 58) PATH_SEGMENT@[53; 58)
SUPER_KW@[53; 58) SUPER_KW@[53; 58)
COLONCOLON@[58; 60) COLONCOLON@[58; 60)
PATH_SEGMENT@[60; 63) PATH_SEGMENT@[60; 63)
IDENT@[60; 63) IDENT@[60; 63) "bar"
SEMI@[63; 64) SEMI@[63; 64)
WHITESPACE@[64; 65) WHITESPACE@[64; 65)

View file

@ -37,7 +37,7 @@ FILE@[0; 81)
PATH@[37; 41) PATH@[37; 41)
PATH_SEGMENT@[37; 41) PATH_SEGMENT@[37; 41)
WHITESPACE@[37; 38) WHITESPACE@[37; 38)
IDENT@[38; 41) IDENT@[38; 41) "foo"
COLONCOLON@[41; 43) COLONCOLON@[41; 43)
STAR@[43; 44) STAR@[43; 44)
SEMI@[44; 45) SEMI@[44; 45)
@ -48,7 +48,7 @@ FILE@[0; 81)
PATH@[49; 53) PATH@[49; 53)
PATH_SEGMENT@[49; 53) PATH_SEGMENT@[49; 53)
WHITESPACE@[49; 50) WHITESPACE@[49; 50)
IDENT@[50; 53) IDENT@[50; 53) "foo"
COLONCOLON@[53; 55) COLONCOLON@[53; 55)
L_CURLY@[55; 56) L_CURLY@[55; 56)
R_CURLY@[56; 57) R_CURLY@[56; 57)
@ -61,25 +61,25 @@ FILE@[0; 81)
PATH_SEGMENT@[62; 68) PATH_SEGMENT@[62; 68)
WHITESPACE@[62; 63) WHITESPACE@[62; 63)
COLONCOLON@[63; 65) COLONCOLON@[63; 65)
IDENT@[65; 68) IDENT@[65; 68) "foo"
COLONCOLON@[68; 70) COLONCOLON@[68; 70)
L_CURLY@[70; 71) L_CURLY@[70; 71)
USE_TREE@[71; 72) USE_TREE@[71; 72)
PATH@[71; 72) PATH@[71; 72)
PATH_SEGMENT@[71; 72) PATH_SEGMENT@[71; 72)
IDENT@[71; 72) IDENT@[71; 72) "a"
COMMA@[72; 73) COMMA@[72; 73)
USE_TREE@[73; 75) USE_TREE@[73; 75)
PATH@[73; 75) PATH@[73; 75)
PATH_SEGMENT@[73; 75) PATH_SEGMENT@[73; 75)
WHITESPACE@[73; 74) WHITESPACE@[73; 74)
IDENT@[74; 75) IDENT@[74; 75) "b"
COMMA@[75; 76) COMMA@[75; 76)
USE_TREE@[76; 78) USE_TREE@[76; 78)
PATH@[76; 78) PATH@[76; 78)
PATH_SEGMENT@[76; 78) PATH_SEGMENT@[76; 78)
WHITESPACE@[76; 77) WHITESPACE@[76; 77)
IDENT@[77; 78) IDENT@[77; 78) "c"
R_CURLY@[78; 79) R_CURLY@[78; 79)
SEMI@[79; 80) SEMI@[79; 80)
WHITESPACE@[80; 81) WHITESPACE@[80; 81)

View file

@ -5,12 +5,12 @@ FILE@[0; 55)
PATH@[3; 8) PATH@[3; 8)
PATH_SEGMENT@[3; 8) PATH_SEGMENT@[3; 8)
WHITESPACE@[3; 4) WHITESPACE@[3; 4)
IDENT@[4; 7) IDENT@[4; 7) "foo"
WHITESPACE@[7; 8) WHITESPACE@[7; 8)
ALIAS@[8; 14) ALIAS@[8; 14)
AS_KW@[8; 10) AS_KW@[8; 10)
WHITESPACE@[10; 11) WHITESPACE@[10; 11)
IDENT@[11; 14) IDENT@[11; 14) "bar"
SEMI@[14; 15) SEMI@[14; 15)
WHITESPACE@[15; 16) WHITESPACE@[15; 16)
USE_ITEM@[16; 55) USE_ITEM@[16; 55)
@ -19,18 +19,18 @@ FILE@[0; 55)
PATH@[19; 23) PATH@[19; 23)
PATH_SEGMENT@[19; 23) PATH_SEGMENT@[19; 23)
WHITESPACE@[19; 20) WHITESPACE@[19; 20)
IDENT@[20; 23) IDENT@[20; 23) "foo"
COLONCOLON@[23; 25) COLONCOLON@[23; 25)
L_CURLY@[25; 26) L_CURLY@[25; 26)
USE_TREE@[26; 32) USE_TREE@[26; 32)
PATH@[26; 28) PATH@[26; 28)
PATH_SEGMENT@[26; 28) PATH_SEGMENT@[26; 28)
IDENT@[26; 27) IDENT@[26; 27) "a"
WHITESPACE@[27; 28) WHITESPACE@[27; 28)
ALIAS@[28; 32) ALIAS@[28; 32)
AS_KW@[28; 30) AS_KW@[28; 30)
WHITESPACE@[30; 31) WHITESPACE@[30; 31)
IDENT@[31; 32) IDENT@[31; 32) "b"
COMMA@[32; 33) COMMA@[32; 33)
USE_TREE@[33; 35) USE_TREE@[33; 35)
WHITESPACE@[33; 34) WHITESPACE@[33; 34)
@ -46,12 +46,12 @@ FILE@[0; 55)
PATH_SEGMENT@[41; 48) PATH_SEGMENT@[41; 48)
WHITESPACE@[41; 42) WHITESPACE@[41; 42)
COLONCOLON@[42; 44) COLONCOLON@[42; 44)
IDENT@[44; 47) IDENT@[44; 47) "foo"
WHITESPACE@[47; 48) WHITESPACE@[47; 48)
ALIAS@[48; 52) ALIAS@[48; 52)
AS_KW@[48; 50) AS_KW@[48; 50)
WHITESPACE@[50; 51) WHITESPACE@[50; 51)
IDENT@[51; 52) IDENT@[51; 52) "x"
R_CURLY@[52; 53) R_CURLY@[52; 53)
SEMI@[53; 54) SEMI@[53; 54)
WHITESPACE@[54; 55) WHITESPACE@[54; 55)

View file

@ -2,13 +2,13 @@ FILE@[0; 97)
STRUCT_ITEM@[0; 10) STRUCT_ITEM@[0; 10)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 8) IDENT@[7; 8) "A"
SEMI@[8; 9) SEMI@[8; 9)
WHITESPACE@[9; 10) WHITESPACE@[9; 10)
STRUCT_ITEM@[10; 22) STRUCT_ITEM@[10; 22)
STRUCT_KW@[10; 16) STRUCT_KW@[10; 16)
WHITESPACE@[16; 17) WHITESPACE@[16; 17)
IDENT@[17; 18) IDENT@[17; 18) "B"
WHITESPACE@[18; 19) WHITESPACE@[18; 19)
L_CURLY@[19; 20) L_CURLY@[19; 20)
R_CURLY@[20; 21) R_CURLY@[20; 21)
@ -16,7 +16,7 @@ FILE@[0; 97)
STRUCT_ITEM@[22; 35) STRUCT_ITEM@[22; 35)
STRUCT_KW@[22; 28) STRUCT_KW@[22; 28)
WHITESPACE@[28; 29) WHITESPACE@[28; 29)
IDENT@[29; 30) IDENT@[29; 30) "C"
L_PAREN@[30; 31) L_PAREN@[30; 31)
R_PAREN@[31; 32) R_PAREN@[31; 32)
SEMI@[32; 33) SEMI@[32; 33)
@ -24,42 +24,42 @@ FILE@[0; 97)
STRUCT_ITEM@[35; 76) STRUCT_ITEM@[35; 76)
STRUCT_KW@[35; 41) STRUCT_KW@[35; 41)
WHITESPACE@[41; 42) WHITESPACE@[41; 42)
IDENT@[42; 43) IDENT@[42; 43) "D"
WHITESPACE@[43; 44) WHITESPACE@[43; 44)
L_CURLY@[44; 45) L_CURLY@[44; 45)
NAMED_FIELD@[45; 56) NAMED_FIELD@[45; 56)
WHITESPACE@[45; 50) WHITESPACE@[45; 50)
IDENT@[50; 51) IDENT@[50; 51) "a"
COLON@[51; 52) COLON@[51; 52)
WHITESPACE@[52; 53) WHITESPACE@[52; 53)
IDENT@[53; 56) IDENT@[53; 56) "u32"
COMMA@[56; 57) COMMA@[56; 57)
NAMED_FIELD@[57; 73) NAMED_FIELD@[57; 73)
VISIBILITY@[57; 66) VISIBILITY@[57; 66)
WHITESPACE@[57; 62) WHITESPACE@[57; 62)
PUB_KW@[62; 65) PUB_KW@[62; 65)
WHITESPACE@[65; 66) WHITESPACE@[65; 66)
IDENT@[66; 67) IDENT@[66; 67) "b"
COLON@[67; 68) COLON@[67; 68)
WHITESPACE@[68; 69) WHITESPACE@[68; 69)
IDENT@[69; 72) IDENT@[69; 72) "u32"
WHITESPACE@[72; 73) WHITESPACE@[72; 73)
R_CURLY@[73; 74) R_CURLY@[73; 74)
WHITESPACE@[74; 76) WHITESPACE@[74; 76)
STRUCT_ITEM@[76; 97) STRUCT_ITEM@[76; 97)
STRUCT_KW@[76; 82) STRUCT_KW@[76; 82)
WHITESPACE@[82; 83) WHITESPACE@[82; 83)
IDENT@[83; 84) IDENT@[83; 84) "E"
L_PAREN@[84; 85) L_PAREN@[84; 85)
POS_FIELD@[85; 90) POS_FIELD@[85; 90)
VISIBILITY@[85; 89) VISIBILITY@[85; 89)
PUB_KW@[85; 88) PUB_KW@[85; 88)
WHITESPACE@[88; 89) WHITESPACE@[88; 89)
IDENT@[89; 90) IDENT@[89; 90) "x"
COMMA@[90; 91) COMMA@[90; 91)
POS_FIELD@[91; 93) POS_FIELD@[91; 93)
WHITESPACE@[91; 92) WHITESPACE@[91; 92)
IDENT@[92; 93) IDENT@[92; 93) "y"
COMMA@[93; 94) COMMA@[93; 94)
R_PAREN@[94; 95) R_PAREN@[94; 95)
SEMI@[95; 96) SEMI@[95; 96)

View file

@ -4,17 +4,17 @@ FILE@[0; 23)
POUND@[0; 1) POUND@[0; 1)
L_BRACK@[1; 2) L_BRACK@[1; 2)
META_ITEM@[2; 9) META_ITEM@[2; 9)
IDENT@[2; 5) IDENT@[2; 5) "foo"
L_PAREN@[5; 6) L_PAREN@[5; 6)
META_ITEM@[6; 7) META_ITEM@[6; 7)
IDENT@[6; 7) IDENT@[6; 7) "a"
COMMA@[7; 8) COMMA@[7; 8)
R_PAREN@[8; 9) R_PAREN@[8; 9)
R_BRACK@[9; 10) R_BRACK@[9; 10)
WHITESPACE@[10; 11) WHITESPACE@[10; 11)
FN_KW@[11; 13) FN_KW@[11; 13)
WHITESPACE@[13; 14) WHITESPACE@[13; 14)
IDENT@[14; 17) IDENT@[14; 17) "foo"
L_PAREN@[17; 18) L_PAREN@[17; 18)
R_PAREN@[18; 19) R_PAREN@[18; 19)
WHITESPACE@[19; 20) WHITESPACE@[19; 20)

View file

@ -2,53 +2,53 @@ FILE@[0; 290)
STRUCT_ITEM@[0; 14) STRUCT_ITEM@[0; 14)
STRUCT_KW@[0; 6) STRUCT_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IDENT@[7; 9) IDENT@[7; 9) "S1"
TYPE_PARAM_LIST@[9; 12) TYPE_PARAM_LIST@[9; 12)
L_ANGLE@[9; 10) L_ANGLE@[9; 10)
TYPE_PARAM@[10; 11) TYPE_PARAM@[10; 11)
IDENT@[10; 11) IDENT@[10; 11) "T"
R_ANGLE@[11; 12) R_ANGLE@[11; 12)
SEMI@[12; 13) SEMI@[12; 13)
WHITESPACE@[13; 14) WHITESPACE@[13; 14)
STRUCT_ITEM@[14; 33) STRUCT_ITEM@[14; 33)
STRUCT_KW@[14; 20) STRUCT_KW@[14; 20)
WHITESPACE@[20; 21) WHITESPACE@[20; 21)
IDENT@[21; 23) IDENT@[21; 23) "S2"
TYPE_PARAM_LIST@[23; 26) TYPE_PARAM_LIST@[23; 26)
L_ANGLE@[23; 24) L_ANGLE@[23; 24)
TYPE_PARAM@[24; 25) TYPE_PARAM@[24; 25)
IDENT@[24; 25) IDENT@[24; 25) "T"
R_ANGLE@[25; 26) R_ANGLE@[25; 26)
L_PAREN@[26; 27) L_PAREN@[26; 27)
POS_FIELD@[27; 30) POS_FIELD@[27; 30)
IDENT@[27; 30) IDENT@[27; 30) "u32"
R_PAREN@[30; 31) R_PAREN@[30; 31)
SEMI@[31; 32) SEMI@[31; 32)
WHITESPACE@[32; 33) WHITESPACE@[32; 33)
STRUCT_ITEM@[33; 58) STRUCT_ITEM@[33; 58)
STRUCT_KW@[33; 39) STRUCT_KW@[33; 39)
WHITESPACE@[39; 40) WHITESPACE@[39; 40)
IDENT@[40; 42) IDENT@[40; 42) "S3"
TYPE_PARAM_LIST@[42; 46) TYPE_PARAM_LIST@[42; 46)
L_ANGLE@[42; 43) L_ANGLE@[42; 43)
TYPE_PARAM@[43; 44) TYPE_PARAM@[43; 44)
IDENT@[43; 44) IDENT@[43; 44) "T"
R_ANGLE@[44; 45) R_ANGLE@[44; 45)
WHITESPACE@[45; 46) WHITESPACE@[45; 46)
L_CURLY@[46; 47) L_CURLY@[46; 47)
NAMED_FIELD@[47; 55) NAMED_FIELD@[47; 55)
WHITESPACE@[47; 48) WHITESPACE@[47; 48)
IDENT@[48; 49) IDENT@[48; 49) "u"
COLON@[49; 50) COLON@[49; 50)
WHITESPACE@[50; 51) WHITESPACE@[50; 51)
IDENT@[51; 54) IDENT@[51; 54) "u32"
WHITESPACE@[54; 55) WHITESPACE@[54; 55)
R_CURLY@[55; 56) R_CURLY@[55; 56)
WHITESPACE@[56; 58) WHITESPACE@[56; 58)
STRUCT_ITEM@[58; 71) STRUCT_ITEM@[58; 71)
STRUCT_KW@[58; 64) STRUCT_KW@[58; 64)
WHITESPACE@[64; 65) WHITESPACE@[64; 65)
IDENT@[65; 67) IDENT@[65; 67) "S4"
TYPE_PARAM_LIST@[67; 69) TYPE_PARAM_LIST@[67; 69)
L_ANGLE@[67; 68) L_ANGLE@[67; 68)
R_ANGLE@[68; 69) R_ANGLE@[68; 69)
@ -57,22 +57,22 @@ FILE@[0; 290)
STRUCT_ITEM@[71; 86) STRUCT_ITEM@[71; 86)
STRUCT_KW@[71; 77) STRUCT_KW@[71; 77)
WHITESPACE@[77; 78) WHITESPACE@[77; 78)
IDENT@[78; 80) IDENT@[78; 80) "S5"
TYPE_PARAM_LIST@[80; 84) TYPE_PARAM_LIST@[80; 84)
L_ANGLE@[80; 81) L_ANGLE@[80; 81)
LIFETIME_PARAM@[81; 83) LIFETIME_PARAM@[81; 83)
LIFETIME@[81; 83) LIFETIME@[81; 83) "'a"
R_ANGLE@[83; 84) R_ANGLE@[83; 84)
SEMI@[84; 85) SEMI@[84; 85)
WHITESPACE@[85; 86) WHITESPACE@[85; 86)
STRUCT_ITEM@[86; 102) STRUCT_ITEM@[86; 102)
STRUCT_KW@[86; 92) STRUCT_KW@[86; 92)
WHITESPACE@[92; 93) WHITESPACE@[92; 93)
IDENT@[93; 95) IDENT@[93; 95) "S6"
TYPE_PARAM_LIST@[95; 100) TYPE_PARAM_LIST@[95; 100)
L_ANGLE@[95; 96) L_ANGLE@[95; 96)
LIFETIME_PARAM@[96; 99) LIFETIME_PARAM@[96; 99)
LIFETIME@[96; 98) LIFETIME@[96; 98) "'a"
COLON@[98; 99) COLON@[98; 99)
R_ANGLE@[99; 100) R_ANGLE@[99; 100)
SEMI@[100; 101) SEMI@[100; 101)
@ -80,28 +80,28 @@ FILE@[0; 290)
STRUCT_ITEM@[102; 121) STRUCT_ITEM@[102; 121)
STRUCT_KW@[102; 108) STRUCT_KW@[102; 108)
WHITESPACE@[108; 109) WHITESPACE@[108; 109)
IDENT@[109; 111) IDENT@[109; 111) "S7"
TYPE_PARAM_LIST@[111; 119) TYPE_PARAM_LIST@[111; 119)
L_ANGLE@[111; 112) L_ANGLE@[111; 112)
LIFETIME_PARAM@[112; 118) LIFETIME_PARAM@[112; 118)
LIFETIME@[112; 114) LIFETIME@[112; 114) "'a"
COLON@[114; 115) COLON@[114; 115)
WHITESPACE@[115; 116) WHITESPACE@[115; 116)
LIFETIME@[116; 118) LIFETIME@[116; 118) "'b"
R_ANGLE@[118; 119) R_ANGLE@[118; 119)
SEMI@[119; 120) SEMI@[119; 120)
WHITESPACE@[120; 121) WHITESPACE@[120; 121)
STRUCT_ITEM@[121; 143) STRUCT_ITEM@[121; 143)
STRUCT_KW@[121; 127) STRUCT_KW@[121; 127)
WHITESPACE@[127; 128) WHITESPACE@[127; 128)
IDENT@[128; 130) IDENT@[128; 130) "S8"
TYPE_PARAM_LIST@[130; 141) TYPE_PARAM_LIST@[130; 141)
L_ANGLE@[130; 131) L_ANGLE@[130; 131)
LIFETIME_PARAM@[131; 140) LIFETIME_PARAM@[131; 140)
LIFETIME@[131; 133) LIFETIME@[131; 133) "'a"
COLON@[133; 134) COLON@[133; 134)
WHITESPACE@[134; 135) WHITESPACE@[134; 135)
LIFETIME@[135; 137) LIFETIME@[135; 137) "'b"
WHITESPACE@[137; 138) WHITESPACE@[137; 138)
PLUS@[138; 139) PLUS@[138; 139)
WHITESPACE@[139; 140) WHITESPACE@[139; 140)
@ -111,29 +111,29 @@ FILE@[0; 290)
STRUCT_ITEM@[143; 167) STRUCT_ITEM@[143; 167)
STRUCT_KW@[143; 149) STRUCT_KW@[143; 149)
WHITESPACE@[149; 150) WHITESPACE@[149; 150)
IDENT@[150; 152) IDENT@[150; 152) "S9"
TYPE_PARAM_LIST@[152; 165) TYPE_PARAM_LIST@[152; 165)
L_ANGLE@[152; 153) L_ANGLE@[152; 153)
LIFETIME_PARAM@[153; 164) LIFETIME_PARAM@[153; 164)
LIFETIME@[153; 155) LIFETIME@[153; 155) "'a"
COLON@[155; 156) COLON@[155; 156)
WHITESPACE@[156; 157) WHITESPACE@[156; 157)
LIFETIME@[157; 159) LIFETIME@[157; 159) "'b"
WHITESPACE@[159; 160) WHITESPACE@[159; 160)
PLUS@[160; 161) PLUS@[160; 161)
WHITESPACE@[161; 162) WHITESPACE@[161; 162)
LIFETIME@[162; 164) LIFETIME@[162; 164) "'c"
R_ANGLE@[164; 165) R_ANGLE@[164; 165)
SEMI@[165; 166) SEMI@[165; 166)
WHITESPACE@[166; 167) WHITESPACE@[166; 167)
STRUCT_ITEM@[167; 184) STRUCT_ITEM@[167; 184)
STRUCT_KW@[167; 173) STRUCT_KW@[167; 173)
WHITESPACE@[173; 174) WHITESPACE@[173; 174)
IDENT@[174; 177) IDENT@[174; 177) "S10"
TYPE_PARAM_LIST@[177; 182) TYPE_PARAM_LIST@[177; 182)
L_ANGLE@[177; 178) L_ANGLE@[177; 178)
LIFETIME_PARAM@[178; 180) LIFETIME_PARAM@[178; 180)
LIFETIME@[178; 180) LIFETIME@[178; 180) "'a"
COMMA@[180; 181) COMMA@[180; 181)
R_ANGLE@[181; 182) R_ANGLE@[181; 182)
SEMI@[182; 183) SEMI@[182; 183)
@ -141,37 +141,37 @@ FILE@[0; 290)
STRUCT_ITEM@[184; 204) STRUCT_ITEM@[184; 204)
STRUCT_KW@[184; 190) STRUCT_KW@[184; 190)
WHITESPACE@[190; 191) WHITESPACE@[190; 191)
IDENT@[191; 194) IDENT@[191; 194) "S11"
TYPE_PARAM_LIST@[194; 202) TYPE_PARAM_LIST@[194; 202)
L_ANGLE@[194; 195) L_ANGLE@[194; 195)
LIFETIME_PARAM@[195; 197) LIFETIME_PARAM@[195; 197)
LIFETIME@[195; 197) LIFETIME@[195; 197) "'a"
COMMA@[197; 198) COMMA@[197; 198)
LIFETIME_PARAM@[198; 201) LIFETIME_PARAM@[198; 201)
WHITESPACE@[198; 199) WHITESPACE@[198; 199)
LIFETIME@[199; 201) LIFETIME@[199; 201) "'b"
R_ANGLE@[201; 202) R_ANGLE@[201; 202)
SEMI@[202; 203) SEMI@[202; 203)
WHITESPACE@[203; 204) WHITESPACE@[203; 204)
STRUCT_ITEM@[204; 235) STRUCT_ITEM@[204; 235)
STRUCT_KW@[204; 210) STRUCT_KW@[204; 210)
WHITESPACE@[210; 211) WHITESPACE@[210; 211)
IDENT@[211; 214) IDENT@[211; 214) "S12"
TYPE_PARAM_LIST@[214; 232) TYPE_PARAM_LIST@[214; 232)
L_ANGLE@[214; 215) L_ANGLE@[214; 215)
LIFETIME_PARAM@[215; 222) LIFETIME_PARAM@[215; 222)
LIFETIME@[215; 217) LIFETIME@[215; 217) "'a"
COLON@[217; 218) COLON@[217; 218)
WHITESPACE@[218; 219) WHITESPACE@[218; 219)
LIFETIME@[219; 221) LIFETIME@[219; 221) "'b"
PLUS@[221; 222) PLUS@[221; 222)
COMMA@[222; 223) COMMA@[222; 223)
LIFETIME_PARAM@[223; 230) LIFETIME_PARAM@[223; 230)
WHITESPACE@[223; 224) WHITESPACE@[223; 224)
LIFETIME@[224; 226) LIFETIME@[224; 226) "'b"
COLON@[226; 227) COLON@[226; 227)
WHITESPACE@[227; 228) WHITESPACE@[227; 228)
LIFETIME@[228; 230) LIFETIME@[228; 230) "'c"
COMMA@[230; 231) COMMA@[230; 231)
R_ANGLE@[231; 232) R_ANGLE@[231; 232)
SEMI@[232; 233) SEMI@[232; 233)
@ -179,45 +179,45 @@ FILE@[0; 290)
STRUCT_ITEM@[235; 250) STRUCT_ITEM@[235; 250)
STRUCT_KW@[235; 241) STRUCT_KW@[235; 241)
WHITESPACE@[241; 242) WHITESPACE@[241; 242)
IDENT@[242; 245) IDENT@[242; 245) "S13"
TYPE_PARAM_LIST@[245; 248) TYPE_PARAM_LIST@[245; 248)
L_ANGLE@[245; 246) L_ANGLE@[245; 246)
TYPE_PARAM@[246; 247) TYPE_PARAM@[246; 247)
IDENT@[246; 247) IDENT@[246; 247) "T"
R_ANGLE@[247; 248) R_ANGLE@[247; 248)
SEMI@[248; 249) SEMI@[248; 249)
WHITESPACE@[249; 250) WHITESPACE@[249; 250)
STRUCT_ITEM@[250; 268) STRUCT_ITEM@[250; 268)
STRUCT_KW@[250; 256) STRUCT_KW@[250; 256)
WHITESPACE@[256; 257) WHITESPACE@[256; 257)
IDENT@[257; 260) IDENT@[257; 260) "S14"
TYPE_PARAM_LIST@[260; 266) TYPE_PARAM_LIST@[260; 266)
L_ANGLE@[260; 261) L_ANGLE@[260; 261)
TYPE_PARAM@[261; 262) TYPE_PARAM@[261; 262)
IDENT@[261; 262) IDENT@[261; 262) "T"
COMMA@[262; 263) COMMA@[262; 263)
TYPE_PARAM@[263; 265) TYPE_PARAM@[263; 265)
WHITESPACE@[263; 264) WHITESPACE@[263; 264)
IDENT@[264; 265) IDENT@[264; 265) "U"
R_ANGLE@[265; 266) R_ANGLE@[265; 266)
SEMI@[266; 267) SEMI@[266; 267)
WHITESPACE@[267; 268) WHITESPACE@[267; 268)
STRUCT_ITEM@[268; 290) STRUCT_ITEM@[268; 290)
STRUCT_KW@[268; 274) STRUCT_KW@[268; 274)
WHITESPACE@[274; 275) WHITESPACE@[274; 275)
IDENT@[275; 278) IDENT@[275; 278) "S15"
TYPE_PARAM_LIST@[278; 288) TYPE_PARAM_LIST@[278; 288)
L_ANGLE@[278; 279) L_ANGLE@[278; 279)
LIFETIME_PARAM@[279; 281) LIFETIME_PARAM@[279; 281)
LIFETIME@[279; 281) LIFETIME@[279; 281) "'a"
COMMA@[281; 282) COMMA@[281; 282)
TYPE_PARAM@[282; 284) TYPE_PARAM@[282; 284)
WHITESPACE@[282; 283) WHITESPACE@[282; 283)
IDENT@[283; 284) IDENT@[283; 284) "T"
COMMA@[284; 285) COMMA@[284; 285)
TYPE_PARAM@[285; 287) TYPE_PARAM@[285; 287)
WHITESPACE@[285; 286) WHITESPACE@[285; 286)
IDENT@[286; 287) IDENT@[286; 287) "U"
R_ANGLE@[287; 288) R_ANGLE@[287; 288)
SEMI@[288; 289) SEMI@[288; 289)
WHITESPACE@[289; 290) WHITESPACE@[289; 290)

View file

@ -0,0 +1,25 @@
enum E1 {
}
enum E2<T> {
}
enum E3 {
X
}
enum E4 {
X,
}
enum E5 {
A,
B = 92,
C {
a: u32,
pub b: f64,
},
F {},
D(u32,),
E(),
}

View file

@ -0,0 +1,118 @@
FILE@[0; 182)
ENUM_ITEM@[0; 13)
ENUM_KW@[0; 4)
WHITESPACE@[4; 5)
IDENT@[5; 7) "E1"
WHITESPACE@[7; 8)
L_CURLY@[8; 9)
WHITESPACE@[9; 10)
R_CURLY@[10; 11)
WHITESPACE@[11; 13)
ENUM_ITEM@[13; 29)
ENUM_KW@[13; 17)
WHITESPACE@[17; 18)
IDENT@[18; 20) "E2"
TYPE_PARAM_LIST@[20; 24)
L_ANGLE@[20; 21)
TYPE_PARAM@[21; 22)
IDENT@[21; 22) "T"
R_ANGLE@[22; 23)
WHITESPACE@[23; 24)
L_CURLY@[24; 25)
WHITESPACE@[25; 26)
R_CURLY@[26; 27)
WHITESPACE@[27; 29)
ENUM_ITEM@[29; 48)
ENUM_KW@[29; 33)
WHITESPACE@[33; 34)
IDENT@[34; 36) "E3"
WHITESPACE@[36; 37)
L_CURLY@[37; 38)
ENUM_VARIANT@[38; 45)
WHITESPACE@[38; 43)
IDENT@[43; 44) "X"
WHITESPACE@[44; 45)
R_CURLY@[45; 46)
WHITESPACE@[46; 48)
ENUM_ITEM@[48; 68)
ENUM_KW@[48; 52)
WHITESPACE@[52; 53)
IDENT@[53; 55) "E4"
WHITESPACE@[55; 56)
L_CURLY@[56; 57)
ENUM_VARIANT@[57; 63)
WHITESPACE@[57; 62)
IDENT@[62; 63) "X"
COMMA@[63; 64)
WHITESPACE@[64; 65)
R_CURLY@[65; 66)
WHITESPACE@[66; 68)
ENUM_ITEM@[68; 182)
ENUM_KW@[68; 72)
WHITESPACE@[72; 73)
IDENT@[73; 75) "E5"
WHITESPACE@[75; 76)
L_CURLY@[76; 77)
ENUM_VARIANT@[77; 83)
WHITESPACE@[77; 82)
IDENT@[82; 83) "A"
COMMA@[83; 84)
ENUM_VARIANT@[84; 95)
WHITESPACE@[84; 89)
IDENT@[89; 90) "B"
WHITESPACE@[90; 91)
EQ@[91; 92)
LITERAL@[92; 95)
WHITESPACE@[92; 93)
INT_NUMBER@[93; 95)
COMMA@[95; 96)
ENUM_VARIANT@[96; 146)
WHITESPACE@[96; 101)
IDENT@[101; 102) "C"
WHITESPACE@[102; 103)
L_CURLY@[103; 104)
NAMED_FIELD@[104; 119)
WHITESPACE@[104; 113)
IDENT@[113; 114) "a"
COLON@[114; 115)
WHITESPACE@[115; 116)
IDENT@[116; 119) "u32"
COMMA@[119; 120)
NAMED_FIELD@[120; 139)
VISIBILITY@[120; 133)
WHITESPACE@[120; 129)
PUB_KW@[129; 132)
WHITESPACE@[132; 133)
IDENT@[133; 134) "b"
COLON@[134; 135)
WHITESPACE@[135; 136)
IDENT@[136; 139) "f64"
COMMA@[139; 140)
WHITESPACE@[140; 145)
R_CURLY@[145; 146)
COMMA@[146; 147)
ENUM_VARIANT@[147; 156)
WHITESPACE@[147; 152)
IDENT@[152; 153) "F"
WHITESPACE@[153; 154)
L_CURLY@[154; 155)
R_CURLY@[155; 156)
COMMA@[156; 157)
ENUM_VARIANT@[157; 169)
WHITESPACE@[157; 162)
IDENT@[162; 163) "D"
L_PAREN@[163; 164)
POS_FIELD@[164; 167)
IDENT@[164; 167) "u32"
COMMA@[167; 168)
R_PAREN@[168; 169)
COMMA@[169; 170)
ENUM_VARIANT@[170; 178)
WHITESPACE@[170; 175)
IDENT@[175; 176) "E"
L_PAREN@[176; 177)
R_PAREN@[177; 178)
COMMA@[178; 179)
WHITESPACE@[179; 180)
R_CURLY@[180; 181)
WHITESPACE@[181; 182)