+.code #include "a56.h"
+.code #include "gram.h"
+X: {return XMEM;}
+Y: {return YMEM;}
+L: {return LMEM;}
+P: {return PMEM;}
+A10 {return A10;}
+A {return AAAA;}
+B10 {return B10;}
+B {return BBBB;}
+AB {return AABB;}
+BA {return BBAA;}
+X {return XXXX;}
+Y {return YYYY;}
+SR {return SR;}
+MR {return MR;}
+CCR {return CCR;}
+OMR {return OMR;}
+SP {return SP;}
+SSH {return SSH;}
+SSL {return SSL;}
+LA {return LA;}
+LC {return LC;}
+A0 {yylval.ival = 0; return AREG;}
+A1 {yylval.ival = 1; return AREG;}
+A2 {yylval.ival = 2; return AREG;}
+B0 {yylval.ival = 0; return BREG;}
+B1 {yylval.ival = 1; return BREG;}
+B2 {yylval.ival = 2; return BREG;}
+M0 {yylval.ival = 0; return MREG;}
+M1 {yylval.ival = 1; return MREG;}
+M2 {yylval.ival = 2; return MREG;}
+M3 {yylval.ival = 3; return MREG;}
+M4 {yylval.ival = 4; return MREG;}
+M5 {yylval.ival = 5; return MREG;}
+M6 {yylval.ival = 6; return MREG;}
+M7 {yylval.ival = 7; return MREG;}
+N0 {yylval.ival = 0; return NREG;}
+N1 {yylval.ival = 1; return NREG;}
+N2 {yylval.ival = 2; return NREG;}
+N3 {yylval.ival = 3; return NREG;}
+N4 {yylval.ival = 4; return NREG;}
+N5 {yylval.ival = 5; return NREG;}
+N6 {yylval.ival = 6; return NREG;}
+N7 {yylval.ival = 7; return NREG;}
+R0 {yylval.ival = 0; return RREG;}
+R1 {yylval.ival = 1; return RREG;}
+R2 {yylval.ival = 2; return RREG;}
+R3 {yylval.ival = 3; return RREG;}
+R4 {yylval.ival = 4; return RREG;}
+R5 {yylval.ival = 5; return RREG;}
+R6 {yylval.ival = 6; return RREG;}
+R7 {yylval.ival = 7; return RREG;}
+X0 {yylval.ival = 0; return XREG;}
+X1 {yylval.ival = 1; return XREG;}
+Y0 {yylval.ival = 0; return YREG;}
+Y1 {yylval.ival = 1; return YREG;}
+ABS {return OP_ABS;}
+ADC {return OP_ADC;}
+ADD {return OP_ADD;}
+ADDL {return OP_ADDL;}
+ADDR {return OP_ADDR;}
+ASL {return OP_ASL;}
+ASR {return OP_ASR;}
+CLR {return OP_CLR;}
+CMP {return OP_CMP;}
+CMPM {return OP_CMPM;}
+DIV {return OP_DIV;}
+MAC {return OP_MAC;}
+MACR {return OP_MACR;}
+MPY {return OP_MPY;}
+MPYR {return OP_MPYR;}
+NEG {return OP_NEG;}
+NORM {return OP_NORM;}
+RND {return OP_RND;}
+SBC {return OP_SBC;}
+SUB {return OP_SUB;}
+SUBL {return OP_SUBL;}
+SUBR {return OP_SUBR;}
+TCC {yylval.cond = 0x0; return OP_TCC;}
+THS {yylval.cond = 0x0; return OP_TCC;}
+TGE {yylval.cond = 0x1; return OP_TCC;}
+TNE {yylval.cond = 0x2; return OP_TCC;}
+TPL {yylval.cond = 0x3; return OP_TCC;}
+TNN {yylval.cond = 0x4; return OP_TCC;}
+TEC {yylval.cond = 0x5; return OP_TCC;}
+TLC {yylval.cond = 0x6; return OP_TCC;}
+TGT {yylval.cond = 0x7; return OP_TCC;}
+TCS {yylval.cond = 0x8; return OP_TCC;}
+TLO {yylval.cond = 0x8; return OP_TCC;}
+TLT {yylval.cond = 0x9; return OP_TCC;}
+TEQ {yylval.cond = 0xA; return OP_TCC;}
+TMI {yylval.cond = 0xB; return OP_TCC;}
+TNR {yylval.cond = 0xC; return OP_TCC;}
+TES {yylval.cond = 0xD; return OP_TCC;}
+TLS {yylval.cond = 0xE; return OP_TCC;}
+TLE {yylval.cond = 0xF; return OP_TCC;}
+TFR {return OP_TFR;}
+TST {return OP_TST;}
+AND {return OP_AND;}
+ANDI {return OP_ANDI;}
+EOR {return OP_EOR;}
+LSL {return OP_LSL;}
+LSR {return OP_LSR;}
+NOT {return OP_NOT;}
+OR {return OP_OR;}
+ORI {return OP_ORI;}
+ROL {return OP_ROL;}
+ROR {return OP_ROR;}
+BCLR {return OP_BCLR;}
+BSET {return OP_BSET;}
+BCHG {return OP_BCHG;}
+BTST {return OP_BTST;}
+DO {return OP_DO;}
+ENDDO {return OP_ENDDO;}
+LUA {return OP_LUA;}
+MOVE {return OP_MOVE;}
+MOVEC {return OP_MOVEC;}
+MOVEM {return OP_MOVEM;}
+MOVEP {return OP_MOVEP;}
+INCLUDE {return OP_INCLUDE;}
+ILLEGAL {return OP_ILLEGAL;}
+JCC {yylval.cond = 0x0; return OP_JCC;}
+JHS {yylval.cond = 0x0; return OP_JCC;}
+JGE {yylval.cond = 0x1; return OP_JCC;}
+JNE {yylval.cond = 0x2; return OP_JCC;}
+JPL {yylval.cond = 0x3; return OP_JCC;}
+JNN {yylval.cond = 0x4; return OP_JCC;}
+JEC {yylval.cond = 0x5; return OP_JCC;}
+JLC {yylval.cond = 0x6; return OP_JCC;}
+JGT {yylval.cond = 0x7; return OP_JCC;}
+JCS {yylval.cond = 0x8; return OP_JCC;}
+JLO {yylval.cond = 0x8; return OP_JCC;}
+JLT {yylval.cond = 0x9; return OP_JCC;}
+JEQ {yylval.cond = 0xA; return OP_JCC;}
+JMI {yylval.cond = 0xB; return OP_JCC;}
+JNR {yylval.cond = 0xC; return OP_JCC;}
+JES {yylval.cond = 0xD; return OP_JCC;}
+JLS {yylval.cond = 0xE; return OP_JCC;}
+JLE {yylval.cond = 0xF; return OP_JCC;}
+JMP {return OP_JMP;}
+JCLR {return OP_JCLR;}
+JSET {return OP_JSET;}
+JSCC {yylval.cond = 0x0; return OP_JSCC;}
+JSHS {yylval.cond = 0x0; return OP_JSCC;}
+JSGE {yylval.cond = 0x1; return OP_JSCC;}
+JSNE {yylval.cond = 0x2; return OP_JSCC;}
+JSPL {yylval.cond = 0x3; return OP_JSCC;}
+JSNN {yylval.cond = 0x4; return OP_JSCC;}
+JSEC {yylval.cond = 0x5; return OP_JSCC;}
+JSLC {yylval.cond = 0x6; return OP_JSCC;}
+JSGT {yylval.cond = 0x7; return OP_JSCC;}
+JSCS {yylval.cond = 0x8; return OP_JSCC;}
+JSLO {yylval.cond = 0x8; return OP_JSCC;}
+JSLT {yylval.cond = 0x9; return OP_JSCC;}
+JSEQ {yylval.cond = 0xA; return OP_JSCC;}
+JSMI {yylval.cond = 0xB; return OP_JSCC;}
+JSNR {yylval.cond = 0xC; return OP_JSCC;}
+JSES {yylval.cond = 0xD; return OP_JSCC;}
+JSLS {yylval.cond = 0xE; return OP_JSCC;}
+JSLE {yylval.cond = 0xF; return OP_JSCC;}
+JSR {return OP_JSR;}
+JSCLR {return OP_JSCLR;}
+JSSET {return OP_JSSET;}
+NOP {return OP_NOP;}
+REP {return OP_REP;}
+RESET {return OP_RESET;}
+RTI {return OP_RTI;}
+RTS {return OP_RTS;}
+STOP {return OP_STOP;}
+SWI {return OP_SWI;}
+WAIT {return OP_WAIT;}
+EQU {return OP_EQU;}
+ORG {return OP_ORG;}
+DC {return OP_DC;}
+DS {return OP_DS;}
+DSM {return OP_DSM;}
+INT {return OP_INT;}
+END {return OP_END;}
+PAGE {return OP_PAGE;}
+PSECT {return OP_PSECT;}
+ALIGN {return OP_ALIGN;}
+PI {return OP_PI;}
+SIN {return OP_SIN;}
+COS {return OP_COS;}
+TAN {return OP_TAN;}
+ATAN {return OP_ATAN;}
+ASIN {return OP_ASIN;}
+ACOS {return OP_ACOS;}
+EXP {return OP_EXP;}
+LN {return OP_LN;}
+LOG {return OP_LOG;}
+POW {return OP_POW;}