Validate parse nodes correspond to expected tokens (#3295)

Can specify which tokens are allowed generally, and any additional
tokens that only occur when the parse node has an error.

---------

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
josh11b
2023-10-13 21:44:51 +00:00
committed by GitHub
co-authored by Richard Smith
parent 95a1cc8cba
commit a112f2e802
16 changed files with 312 additions and 113 deletions
@@ -33,7 +33,8 @@ static auto HandleDeclarationNameAndParams(Context& context, State after_name)
context.emitter().Emit(*context.position(), ExpectedDeclarationName,
context.tokens().GetKind(state.token));
context.ReturnErrorOnState();
context.AddLeafNode(NodeKind::InvalidParse, *context.position());
context.AddLeafNode(NodeKind::InvalidParse, *context.position(),
/*has_error=*/true);
}
}