[fine] fix some bugs, semantics for is

This commit is contained in:
John Doty 2024-02-03 07:59:49 -08:00
parent ba5b37f5ff
commit b5b56b49a9
4 changed files with 59 additions and 7 deletions

View file

@ -1183,7 +1183,14 @@ fn field_list(p: &mut CParser) {
p.expect_start(TokenKind::LeftBrace);
while !p.at(TokenKind::RightBrace) && !p.eof() {
field_value(p);
if p.at(TokenKind::Identifier) {
field_value(p);
} else {
if p.at_any(STATEMENT_RECOVERY) {
break;
}
p.advance_with_error("expected an identifier in a field list");
}
}
p.expect(
TokenKind::RightBrace,
@ -1196,7 +1203,7 @@ fn field_list(p: &mut CParser) {
fn field_value(p: &mut CParser) {
let m = p.start();
p.expect(TokenKind::Identifier, "expected a field name");
p.expect_start(TokenKind::Identifier);
if p.eat(TokenKind::Colon) {
expression(p);
}