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) {
let field = p.start();
visibility(p);
if p.expect(IDENT) {
if p.at(IDENT) {
name(p);
p.expect(COLON);
types::type_ref(p);
field.complete(p, NAMED_FIELD);

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -40,8 +40,9 @@ FILE@[0; 290)
WHITESPACE@[45; 46)
L_CURLY@[46; 47)
NAMED_FIELD@[47; 55)
WHITESPACE@[47; 48)
IDENT@[48; 49) "u"
NAME@[47; 49)
WHITESPACE@[47; 48)
IDENT@[48; 49) "u"
COLON@[49; 50)
WHITESPACE@[50; 51)
IDENT@[51; 54) "u32"

View file

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