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,15 +7,17 @@ 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)
WHITESPACE@[10; 15) NAME@[10; 16)
IDENT@[15; 16) "a" WHITESPACE@[10; 15)
IDENT@[15; 16) "a"
COLON@[16; 17) COLON@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
IDENT@[18; 21) "u32" 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) "b" NAME@[26; 27)
IDENT@[26; 27) "b"
COLON@[27; 28) COLON@[27; 28)
WHITESPACE@[28; 29) WHITESPACE@[28; 29)
IDENT@[29; 32) "u32" IDENT@[29; 32) "u32"

View file

@ -7,15 +7,17 @@ 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)
WHITESPACE@[10; 15) NAME@[10; 16)
IDENT@[15; 16) "a" WHITESPACE@[10; 15)
IDENT@[15; 16) "a"
COLON@[16; 17) COLON@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
IDENT@[18; 21) "i32" IDENT@[18; 21) "i32"
COMMA@[21; 22) COMMA@[21; 22)
NAMED_FIELD@[22; 36) NAMED_FIELD@[22; 36)
WHITESPACE@[22; 27) NAME@[22; 28)
IDENT@[27; 28) "b" WHITESPACE@[22; 27)
IDENT@[27; 28) "b"
COLON@[28; 29) COLON@[28; 29)
WHITESPACE@[29; 30) WHITESPACE@[29; 30)
IDENT@[30; 36) "String" IDENT@[30; 36) "String"

View file

@ -7,8 +7,9 @@ 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)
WHITESPACE@[10; 15) NAME@[10; 16)
IDENT@[15; 16) "f" WHITESPACE@[10; 15)
IDENT@[15; 16) "f"
COLON@[16; 17) COLON@[16; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
IDENT@[18; 21) "u32" IDENT@[18; 21) "u32"
@ -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,14 +39,16 @@ 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) "x" NAME@[52; 53)
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)
WHITESPACE@[59; 64) NAME@[59; 65)
IDENT@[64; 65) "z" WHITESPACE@[59; 64)
IDENT@[64; 65) "z"
COLON@[65; 66) COLON@[65; 66)
WHITESPACE@[66; 67) WHITESPACE@[66; 67)
IDENT@[67; 70) "f64" IDENT@[67; 70) "f64"

View file

@ -7,8 +7,9 @@ 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)
WHITESPACE@[10; 15) NAME@[10; 18)
IDENT@[15; 18) "foo" WHITESPACE@[10; 15)
IDENT@[15; 18) "foo"
COLON@[18; 19) COLON@[18; 19)
WHITESPACE@[19; 20) WHITESPACE@[19; 20)
IDENT@[20; 23) "u32" IDENT@[20; 23) "u32"

View file

@ -32,8 +32,9 @@ 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)
WHITESPACE@[45; 50) NAME@[45; 51)
IDENT@[50; 51) "a" WHITESPACE@[45; 50)
IDENT@[50; 51) "a"
COLON@[51; 52) COLON@[51; 52)
WHITESPACE@[52; 53) WHITESPACE@[52; 53)
IDENT@[53; 56) "u32" IDENT@[53; 56) "u32"
@ -43,7 +44,8 @@ FILE@[0; 97)
WHITESPACE@[57; 62) WHITESPACE@[57; 62)
PUB_KW@[62; 65) PUB_KW@[62; 65)
WHITESPACE@[65; 66) WHITESPACE@[65; 66)
IDENT@[66; 67) "b" NAME@[66; 67)
IDENT@[66; 67) "b"
COLON@[67; 68) COLON@[67; 68)
WHITESPACE@[68; 69) WHITESPACE@[68; 69)
IDENT@[69; 72) "u32" IDENT@[69; 72) "u32"

View file

@ -40,8 +40,9 @@ 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)
WHITESPACE@[47; 48) NAME@[47; 49)
IDENT@[48; 49) "u" WHITESPACE@[47; 48)
IDENT@[48; 49) "u"
COLON@[49; 50) COLON@[49; 50)
WHITESPACE@[50; 51) WHITESPACE@[50; 51)
IDENT@[51; 54) "u32" IDENT@[51; 54) "u32"

View file

@ -77,8 +77,9 @@ 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)
WHITESPACE@[104; 113) NAME@[104; 114)
IDENT@[113; 114) "a" WHITESPACE@[104; 113)
IDENT@[113; 114) "a"
COLON@[114; 115) COLON@[114; 115)
WHITESPACE@[115; 116) WHITESPACE@[115; 116)
IDENT@[116; 119) "u32" IDENT@[116; 119) "u32"
@ -88,7 +89,8 @@ FILE@[0; 182)
WHITESPACE@[120; 129) WHITESPACE@[120; 129)
PUB_KW@[129; 132) PUB_KW@[129; 132)
WHITESPACE@[132; 133) WHITESPACE@[132; 133)
IDENT@[133; 134) "b" NAME@[133; 134)
IDENT@[133; 134) "b"
COLON@[134; 135) COLON@[134; 135)
WHITESPACE@[135; 136) WHITESPACE@[135; 136)
IDENT@[136; 139) "f64" IDENT@[136; 139) "f64"