diff options
author | Thomas Lively <tlively@google.com> | 2023-09-21 12:42:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-21 12:42:07 -0700 |
commit | d491136eeb94b748225be50bdcc86c74cdbd154e (patch) | |
tree | 1c1633be02656af1a9c7b05a78a4e9a0928a5fad /scripts/gen-s-parser.py | |
parent | ec0f05cb98d6a4e30375a7a6a78966d25fdb5d9c (diff) | |
download | binaryen-d491136eeb94b748225be50bdcc86c74cdbd154e.tar.gz binaryen-d491136eeb94b748225be50bdcc86c74cdbd154e.tar.bz2 binaryen-d491136eeb94b748225be50bdcc86c74cdbd154e.zip |
[Parser] Parse if-else in the new wat parser and IRBuilder (#5963)
Parse both the straight-line and folded versions of if, including the
abbreviations that allow omitting the else clause. In the IRBuilder, generalize
the scope stack to be able to track scopes other than blocks and add methods for
visiting the beginnings of ifs and elses.
Diffstat (limited to 'scripts/gen-s-parser.py')
-rwxr-xr-x | scripts/gen-s-parser.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/scripts/gen-s-parser.py b/scripts/gen-s-parser.py index 78637991b..029fe2b0e 100755 --- a/scripts/gen-s-parser.py +++ b/scripts/gen-s-parser.py @@ -712,6 +712,9 @@ def instruction_parser(new_parser=False): trie = Node() inst_length = 0 for inst, expr in instructions: + if new_parser and inst in {"then", "else"}: + # These are not real instructions! skip them. + continue inst_length = max(inst_length, len(inst)) trie.insert(inst, expr) |