MCPcopy Index your code
hub / github.com/python/cpython / goto_label

Method goto_label

Tools/cases_generator/generators_common.py:461–474  ·  view source on GitHub ↗
(self, goto: Token, label: Token, storage: Storage)

Source from the content-addressed store, hash-verified

459 return True
460
461 def goto_label(self, goto: Token, label: Token, storage: Storage) -> None:
462 if label.text not in self.labels:
463 print(self.labels.keys())
464 raise analysis_error(f"Label '{label.text}' does not exist", label)
465 label_node = self.labels[label.text]
466 if label_node.spilled:
467 if not storage.spilled:
468 self.emit_save(storage)
469 elif storage.spilled:
470 raise analysis_error("Cannot jump from spilled label without reloading the stack pointer", goto)
471 self.out.start_line()
472 self.out.emit(f"{self.jump_prefix}JUMP_TO_LABEL(")
473 self.out.emit(label)
474 self.out.emit(")")
475
476 def emit_save(self, storage: Storage) -> None:
477 storage.flush(self.out)

Callers 1

emit_SimpleStmtMethod · 0.95

Calls 5

emit_saveMethod · 0.95
analysis_errorFunction · 0.90
start_lineMethod · 0.80
keysMethod · 0.45
emitMethod · 0.45

Tested by

no test coverage detected