OP_TOKENS = [
    "number",
    "input",
    "string",
    "id",
    "plus",
    "minus",
    "multiply",
    "power",
    "divide",
    "bitwise_and",
    "bitwise_xor",
    "bitwise_or",
    "bitwise_and_equal",
    "bitwise_xor_equal",
    "bitwise_or_equal",
    "comma",
    "equal",
    "not_equal",
    "greater_than",
    "less_than",
    "greater_than_equal",
    "less_than_equal",
    "modulus",
    "increment",
    "decrement",
    "plus_equal",
    "minus_equal",
    "multiply_equal",
    "divide_equal",
    "modulus_equal",
    "power_equal",
    "and",
    "or",
    "left_paren",
    "left_bracket",
    "exit",
    "right_paren",
    "right_bracket",
    "newline",
    "call_end",
    "address_of",
    "right_shift",
    "left_shift",
    "bool",
    "type_cast",
    "size",
    "type",
]

WORD_TO_OP = {
    "plus": " + ",
    "minus": " - ",
    "multiply": " * ",
    "divide": " / ",
    " comma ": ", ",
    "equal": " == ",
    "not_equal": " != ",
    "greater_than": " > ",
    "less_than": " < ",
    "greater_than_equal": " >= ",
    "less_than_equal": " <= ",
    "input": " scanf ",
    "modulus": " % ",
    "increment": " ++ ",
    "decrement": " -- ",
    "plus_equal": " += ",
    "minus_equal": " -= ",
    "multiply_equal": " *= ",
    "divide_equal": " /= ",
    "modulus_equal": " %= ",
    "and": " && ",
    "or": " || ",
    "bitwise_and": " & ",
    "bitwise_or": " | ",
    "bitwise_xor": " ^ ",
    "bitwise_and_equal": " &= ",
    "bitwise_or_equal": " |= ",
    "bitwise_xor_equal": " ^= ",
    "comma": ",",
    "left_bracket": "[",
    "right_bracket": "]",
    "left_paren": "(",
    "right_paren": ")",
    "address_of": "&",
    "left_shift": " << ",
    "right_shift": " >> ",
    "power": "",
}
