diff --git a/assembler/assembler.py b/assembler/assembler.py index 9dd7e5c..a054b9e 100644 --- a/assembler/assembler.py +++ b/assembler/assembler.py @@ -485,13 +485,13 @@ ops_sizes = {"reg2reg": 2, ops = [VMComponent(le[0], i, le[1]) for i, le in enumerate(op_names)] regs = [VMComponent(s.casefold(), i) for i, s in enumerate(reg_names)] instruction_re = re.compile( - "^([\w]{4})(?:\ +(?:([\w]+)\ *(?:,[\ ]*([\w]+))*))?$") # 1: opcode 2+: args + "^([\w]{4})(?:(?:\ *\#\ *[\w]*)|(?:\ +(?:([\w]+)\ *(?:,[\ ]*([\w]+))?)(?:\ *\#\ *[\w]*)?))?$") # 1: opcode 2+: args function_re = re.compile("(?:def\ )([a-zA-Z]*)\:") immediate_re = re.compile("(?:0x)?[0-9a-fA-F]+$") alpha_re = re.compile("^[a-zA-Z]*$") register_re = re.compile("(^[rRsS][0-4]$)|([iIrRsS][pP]$)") -label_re = re.compile("^([a-zA-Z]+)\:$") -symcall_re = re.compile("^(?:[jJ][pPmM][pPaAbBeEnN][iIrR]|(?:[cC][aA][lL]{2}))\ +([\w]*)$") +label_re = re.compile("^([a-zA-Z]+)\:(?:\ *\#\ *[\w]*)?$") +symcall_re = re.compile("^(?:[jJ][pPmM][pPaAbBeEnN][iIrR]|(?:[cC][aA][lL]{2}))(\ +[\w]+)(?:\ *\#\ *[\w]*)?$") def main():