G: use names in fields

This commit is contained in:
Aleksey Kladov 2018-02-10 14:13:30 +03:00
parent 8a735b6672
commit c13e6db774
8 changed files with 38 additions and 24 deletions

View file

@ -86,7 +86,8 @@ fn named_fields(p: &mut Parser) {
fn named_field(p: &mut Parser) { fn named_field(p: &mut Parser) {
let field = p.start(); let field = p.start();
visibility(p); visibility(p);
if p.expect(IDENT) { if p.at(IDENT) {
name(p);
p.expect(COLON); p.expect(COLON);
types::type_ref(p); types::type_ref(p);
field.complete(p, NAMED_FIELD); field.complete(p, NAMED_FIELD);

View file

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

View file

@ -7,6 +7,7 @@ FILE@[0; 40)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 21) NAMED_FIELD@[10; 21)
NAME@[10; 16)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 16) "a" IDENT@[15; 16) "a"
COLON@[16; 17) COLON@[16; 17)
@ -14,6 +15,7 @@ FILE@[0; 40)
IDENT@[18; 21) "i32" IDENT@[18; 21) "i32"
COMMA@[21; 22) COMMA@[21; 22)
NAMED_FIELD@[22; 36) NAMED_FIELD@[22; 36)
NAME@[22; 28)
WHITESPACE@[22; 27) WHITESPACE@[22; 27)
IDENT@[27; 28) "b" IDENT@[27; 28) "b"
COLON@[28; 29) COLON@[28; 29)

View file

@ -7,6 +7,7 @@ FILE@[0; 74)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 21) NAMED_FIELD@[10; 21)
NAME@[10; 16)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 16) "f" IDENT@[15; 16) "f"
COLON@[16; 17) COLON@[16; 17)
@ -17,11 +18,11 @@ FILE@[0; 74)
WHITESPACE@[22; 27) WHITESPACE@[22; 27)
PUB_KW@[27; 30) PUB_KW@[27; 30)
WHITESPACE@[30; 31) WHITESPACE@[30; 31)
err: `expected IDENT`
ERROR@[31; 38) ERROR@[31; 38)
err: `expected field declaration` err: `expected field declaration`
INT_NUMBER@[31; 33) INT_NUMBER@[31; 33)
WHITESPACE@[33; 38) WHITESPACE@[33; 38)
err: `expected COMMA`
ERROR@[38; 40) ERROR@[38; 40)
err: `expected field declaration` err: `expected field declaration`
PLUS@[38; 39) PLUS@[38; 39)
@ -38,12 +39,14 @@ FILE@[0; 74)
VISIBILITY@[48; 52) VISIBILITY@[48; 52)
PUB_KW@[48; 51) PUB_KW@[48; 51)
WHITESPACE@[51; 52) WHITESPACE@[51; 52)
NAME@[52; 53)
IDENT@[52; 53) "x" IDENT@[52; 53) "x"
COLON@[53; 54) COLON@[53; 54)
WHITESPACE@[54; 55) WHITESPACE@[54; 55)
IDENT@[55; 58) "u32" IDENT@[55; 58) "u32"
COMMA@[58; 59) COMMA@[58; 59)
NAMED_FIELD@[59; 70) NAMED_FIELD@[59; 70)
NAME@[59; 65)
WHITESPACE@[59; 64) WHITESPACE@[59; 64)
IDENT@[64; 65) "z" IDENT@[64; 65) "z"
COLON@[65; 66) COLON@[65; 66)

View file

@ -7,6 +7,7 @@ FILE@[0; 25)
WHITESPACE@[8; 9) WHITESPACE@[8; 9)
L_CURLY@[9; 10) L_CURLY@[9; 10)
NAMED_FIELD@[10; 24) NAMED_FIELD@[10; 24)
NAME@[10; 18)
WHITESPACE@[10; 15) WHITESPACE@[10; 15)
IDENT@[15; 18) "foo" IDENT@[15; 18) "foo"
COLON@[18; 19) COLON@[18; 19)

View file

@ -32,6 +32,7 @@ FILE@[0; 97)
WHITESPACE@[43; 44) WHITESPACE@[43; 44)
L_CURLY@[44; 45) L_CURLY@[44; 45)
NAMED_FIELD@[45; 56) NAMED_FIELD@[45; 56)
NAME@[45; 51)
WHITESPACE@[45; 50) WHITESPACE@[45; 50)
IDENT@[50; 51) "a" IDENT@[50; 51) "a"
COLON@[51; 52) COLON@[51; 52)
@ -43,6 +44,7 @@ FILE@[0; 97)
WHITESPACE@[57; 62) WHITESPACE@[57; 62)
PUB_KW@[62; 65) PUB_KW@[62; 65)
WHITESPACE@[65; 66) WHITESPACE@[65; 66)
NAME@[66; 67)
IDENT@[66; 67) "b" IDENT@[66; 67) "b"
COLON@[67; 68) COLON@[67; 68)
WHITESPACE@[68; 69) WHITESPACE@[68; 69)

View file

@ -40,6 +40,7 @@ FILE@[0; 290)
WHITESPACE@[45; 46) WHITESPACE@[45; 46)
L_CURLY@[46; 47) L_CURLY@[46; 47)
NAMED_FIELD@[47; 55) NAMED_FIELD@[47; 55)
NAME@[47; 49)
WHITESPACE@[47; 48) WHITESPACE@[47; 48)
IDENT@[48; 49) "u" IDENT@[48; 49) "u"
COLON@[49; 50) COLON@[49; 50)

View file

@ -77,6 +77,7 @@ FILE@[0; 182)
WHITESPACE@[102; 103) WHITESPACE@[102; 103)
L_CURLY@[103; 104) L_CURLY@[103; 104)
NAMED_FIELD@[104; 119) NAMED_FIELD@[104; 119)
NAME@[104; 114)
WHITESPACE@[104; 113) WHITESPACE@[104; 113)
IDENT@[113; 114) "a" IDENT@[113; 114) "a"
COLON@[114; 115) COLON@[114; 115)
@ -88,6 +89,7 @@ FILE@[0; 182)
WHITESPACE@[120; 129) WHITESPACE@[120; 129)
PUB_KW@[129; 132) PUB_KW@[129; 132)
WHITESPACE@[132; 133) WHITESPACE@[132; 133)
NAME@[133; 134)
IDENT@[133; 134) "b" IDENT@[133; 134) "b"
COLON@[134; 135) COLON@[134; 135)
WHITESPACE@[135; 136) WHITESPACE@[135; 136)