def p_datainst3op_error(p):
"""datainst3op : OPDATA3OP logmnemonic flagscondandspace REG error REG COMMA op2
| OPDATA3OP logmnemonic flagscondandspace REG COMMA REG error op2
| OPDATA3OP logmnemonic flagscondandspace REG COMMA REG
| OPDATA3OP logmnemonic flagscondandspace REG error COMMA REG COMMA op2
| OPDATA3OP logmnemonic flagscondandspace REG COMMA REG error COMMA op2"""
if len(p) == 9:
raise YaccError("Les registres et/ou constantes utilisés dans une opération doivent être séparés par une virgule")
elif len(p) == 7:
raise YaccError("L'instruction {} requiert 3 arguments".format(p[1]))
elif len(p) == 10:
if isinstance(p[5], LexToken):
raise YaccError("Le registre R{}{} n'existe pas".format(p[4], p[5].value))
else:
raise YaccError("Le registre R{}{} n'existe pas".format(p[6], p[7].value))
elif len(p) == 11:
raise YaccError("TEST")
评论列表
文章目录