WastLexer: log lexing errors directly #2013
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the WastLexer logs errors by calling the Error method on a passed-in WastParser. This makes it inconvenient to log an error in contexts where no WastParser was available (e.g. from WastLexer::NoTrailingReservedChars()). This is newly an issue because of the tokenization change in WebAssembly/spec#1499.
This PR changes/simplifies things so a
WastLexer
receives anErrors*
parameter on construction, just like aWastParser
does. That lets theWastLexer
log errors directly. This also disentangles the lexer and parser a bit (i.e. we no longer need to includewast-parser.h
inwast-lexer.cc
).This also updates the tokens.txt test to include an extra error message that we had been losing.
(Edit: And also a corresponding change to the Emscripten helper and the JavaScript wrappers that call it... I'm not sure this JavaScript code gets tested in the CI, but I did build locally and test the demos, and it appears to work and reflect the changes.)