#!/usr/bin/env python3 from __future__ import annotations import sys from typing import List from typing import Optional from libjs_bytecode_def import Field from libjs_bytecode_def import OpDef from libjs_bytecode_def import parse_bytecode_def def mname_to_param(name: str) -> str: if name.startswith("m_") and len(name) > 2: return name[2:] return name def getter_name_for_field(field_name: str) -> str: return mname_to_param(field_name) def is_operand_type(t: str) -> bool: t = t.strip() return t == "Operand" or t == "Optional" def is_optional_operand_type(t: str) -> bool: return t.strip() == "Optional" def is_label_type(t: str) -> bool: t = t.strip() return t == "Label" or t == "Optional