summaryrefslogtreecommitdiffstats
path: root/Tools/cases_generator/generators_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/cases_generator/generators_common.py')
-rw-r--r--Tools/cases_generator/generators_common.py18
1 files changed, 7 insertions, 11 deletions
diff --git a/Tools/cases_generator/generators_common.py b/Tools/cases_generator/generators_common.py
index 9d87dc3..9e60d21 100644
--- a/Tools/cases_generator/generators_common.py
+++ b/Tools/cases_generator/generators_common.py
@@ -170,12 +170,12 @@ class Emitter:
exit_if = deopt_if
- def goto_error(self, offset: int, label: str, storage: Storage) -> str:
+ def goto_error(self, offset: int, storage: Storage) -> str:
if offset > 0:
- return f"JUMP_TO_LABEL(pop_{offset}_{label});"
+ return f"JUMP_TO_LABEL(pop_{offset}_error);"
if offset < 0:
storage.copy().flush(self.out)
- return f"JUMP_TO_LABEL({label});"
+ return f"JUMP_TO_LABEL(error);"
def error_if(
self,
@@ -191,17 +191,13 @@ class Emitter:
unconditional = always_true(first_tkn)
if unconditional:
next(tkn_iter)
- comma = next(tkn_iter)
- if comma.kind != "COMMA":
- raise analysis_error(f"Expected comma, got '{comma.text}'", comma)
+ next(tkn_iter) # RPAREN
self.out.start_line()
else:
self.out.emit_at("if ", tkn)
self.emit(lparen)
- emit_to(self.out, tkn_iter, "COMMA")
+ emit_to(self.out, tkn_iter, "RPAREN")
self.out.emit(") {\n")
- label = next(tkn_iter).text
- next(tkn_iter) # RPAREN
next(tkn_iter) # Semi colon
storage.clear_inputs("at ERROR_IF")
@@ -210,7 +206,7 @@ class Emitter:
offset = int(c_offset)
except ValueError:
offset = -1
- self.out.emit(self.goto_error(offset, label, storage))
+ self.out.emit(self.goto_error(offset, storage))
self.out.emit("\n")
if not unconditional:
self.out.emit("}\n")
@@ -227,7 +223,7 @@ class Emitter:
next(tkn_iter) # LPAREN
next(tkn_iter) # RPAREN
next(tkn_iter) # Semi colon
- self.out.emit_at(self.goto_error(0, "error", storage), tkn)
+ self.out.emit_at(self.goto_error(0, storage), tkn)
return False
def decref_inputs(