Added missing support for size qualifiers for base and outer displacement.

This commit is contained in:
Chris Hodges 2021-10-08 11:07:16 +02:00
parent f1110ac3c9
commit 722d4437ec
30 changed files with 527 additions and 216 deletions

View File

@ -196,7 +196,7 @@ public class _M68kLexer implements FlexLexer {
private static final String ZZ_ACTION_PACKED_0 =
"\17\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7" +
"\1\10\1\11\1\1\1\10\2\12\1\10\1\11\1\13" +
"\1\14\1\15\1\1\1\16\1\17\1\20\4\17\1\1" +
"\1\14\1\15\1\1\1\16\1\17\1\20\5\17\1\1" +
"\1\17\5\1\1\21\1\22\1\23\1\24\1\25\1\26" +
"\1\27\1\30\1\31\1\32\2\17\1\33\1\34\1\35" +
"\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45" +
@ -204,17 +204,17 @@ public class _M68kLexer implements FlexLexer {
"\1\54\1\17\1\55\1\12\4\55\1\56\1\12\2\57" +
"\2\60\1\61\1\62\3\63\1\62\1\63\1\0\1\4" +
"\1\64\2\65\1\66\3\0\1\10\1\67\1\70\1\71" +
"\1\72\1\73\1\74\1\17\1\75\1\76\1\17\1\77" +
"\1\100\2\0\1\101\4\0\1\102\1\17\1\34\1\103" +
"\1\104\1\105\1\106\1\107\1\110\1\111\3\0\1\55" +
"\1\0\1\55\1\0\1\55\1\0\1\55\1\60\1\62" +
"\3\0\1\4\1\65\1\66\1\10\1\112\1\10\1\113" +
"\1\114\1\115\1\116\1\0\1\55\3\0\1\60\1\62" +
"\3\0\1\10\1\60\1\62\2\0\1\117\1\120\1\121" +
"\1\0\1\122";
"\1\72\1\73\1\74\1\17\1\75\1\67\1\70\1\71" +
"\1\76\1\17\1\77\1\100\2\0\1\101\4\0\1\102" +
"\1\17\1\34\1\103\1\104\1\105\1\106\1\107\1\110" +
"\1\111\3\0\1\55\1\0\1\55\1\0\1\55\1\0" +
"\1\55\1\60\1\62\3\0\1\4\1\65\1\66\1\10" +
"\1\112\1\10\1\113\1\114\1\115\1\116\1\0\1\55" +
"\3\0\1\60\1\62\3\0\1\10\1\60\1\62\2\0" +
"\1\117\1\120\1\121\1\0\1\122";
private static int[] zzUnpackAction() {
int[] result = new int[186];
int[] result = new int[190];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@ -245,27 +245,27 @@ public class _M68kLexer implements FlexLexer {
"\0\u0564\0\u05a0\0\u05dc\0\u0384\0\u0618\0\u0654\0\u0690\0\u0384" +
"\0\u06cc\0\u0708\0\u0744\0\u0780\0\u07bc\0\u07f8\0\u0834\0\u0870" +
"\0\u08ac\0\u08e8\0\u0924\0\u0960\0\u099c\0\u09d8\0\u0a14\0\u0a50" +
"\0\u0a8c\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384" +
"\0\u0384\0\u0384\0\u0384\0\u0ac8\0\u0b04\0\u0384\0\u0b40\0\u0384" +
"\0\u0b7c\0\u0bb8\0\u0384\0\u0384\0\u0384\0\u0384\0\u0bf4\0\u0384" +
"\0\u0384\0\u0384\0\u0384\0\u0c30\0\u0c6c\0\u0ca8\0\u0384\0\u0ce4" +
"\0\u0d20\0\u0384\0\u0d5c\0\u0d98\0\u0d98\0\u0dd4\0\u0e10\0\u0e4c" +
"\0\u0e88\0\u0ec4\0\u0ec4\0\u0384\0\u0f00\0\u0f3c\0\u0f78\0\u0fb4" +
"\0\u0ff0\0\u0ff0\0\u0384\0\u102c\0\u1068\0\u0ec4\0\u10a4\0\u10e0" +
"\0\u0a8c\0\u0ac8\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384" +
"\0\u0384\0\u0384\0\u0384\0\u0384\0\u0b04\0\u0b40\0\u0384\0\u0b7c" +
"\0\u0384\0\u0bb8\0\u0bf4\0\u0384\0\u0384\0\u0384\0\u0384\0\u0c30" +
"\0\u0384\0\u0384\0\u0384\0\u0384\0\u0c6c\0\u0ca8\0\u0ce4\0\u0384" +
"\0\u0d20\0\u0d5c\0\u0384\0\u0d98\0\u0dd4\0\u0dd4\0\u0e10\0\u0e4c" +
"\0\u0e88\0\u0ec4\0\u0f00\0\u0f00\0\u0384\0\u0f3c\0\u0f78\0\u0fb4" +
"\0\u0ff0\0\u102c\0\u102c\0\u0384\0\u1068\0\u10a4\0\u0f00\0\u10e0" +
"\0\u111c\0\u1158\0\u1194\0\u11d0\0\u120c\0\u1248\0\u1284\0\u12c0" +
"\0\u0384\0\u0384\0\u0384\0\u0870\0\u0870\0\u0870\0\u12fc\0\u0870" +
"\0\u0924\0\u1338\0\u099c\0\u09d8\0\u0a14\0\u1374\0\u0384\0\u0a50" +
"\0\u13b0\0\u0a8c\0\u13ec\0\u0870\0\u1428\0\u0384\0\u0384\0\u0384" +
"\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u1464\0\u14a0\0\u14dc" +
"\0\u1518\0\u1554\0\u1590\0\u15cc\0\u1608\0\u1644\0\u1680\0\u16bc" +
"\0\u16f8\0\u1734\0\u1770\0\u17ac\0\u0384\0\u0384\0\u0384\0\u0384" +
"\0\u0384\0\u17e8\0\u0870\0\u0870\0\u0870\0\u0384\0\u1824\0\u0384" +
"\0\u1860\0\u189c\0\u18d8\0\u1914\0\u1950\0\u198c\0\u19c8\0\u1a04" +
"\0\u1a40\0\u1a7c\0\u1ab8\0\u111c\0\u1af4\0\u0528\0\u0f3c\0\u1b30" +
"\0\u1b6c\0\u1ba8";
"\0\u12fc\0\u0384\0\u0384\0\u0384\0\u0870\0\u0870\0\u0870\0\u1338" +
"\0\u0870\0\u0870\0\u0870\0\u0870\0\u0960\0\u1374\0\u09d8\0\u0a14" +
"\0\u0a50\0\u13b0\0\u0384\0\u0a8c\0\u13ec\0\u0ac8\0\u1428\0\u0870" +
"\0\u1464\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384" +
"\0\u0384\0\u14a0\0\u14dc\0\u1518\0\u1554\0\u1590\0\u15cc\0\u1608" +
"\0\u1644\0\u1680\0\u16bc\0\u16f8\0\u1734\0\u1770\0\u17ac\0\u17e8" +
"\0\u0384\0\u0384\0\u0384\0\u0384\0\u0384\0\u1824\0\u0870\0\u0870" +
"\0\u0870\0\u0384\0\u1860\0\u0384\0\u189c\0\u18d8\0\u1914\0\u1950" +
"\0\u198c\0\u19c8\0\u1a04\0\u1a40\0\u1a7c\0\u1ab8\0\u1af4\0\u1158" +
"\0\u1b30\0\u0528\0\u0f78\0\u1b6c\0\u1ba8\0\u1be4";
private static int[] zzUnpackRowMap() {
int[] result = new int[186];
int[] result = new int[190];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@ -300,137 +300,139 @@ public class _M68kLexer implements FlexLexer {
"\2\20\1\36\24\20\3\36\3\20\2\34\1\35\1\42" +
"\16\20\1\43\6\20\1\41\42\20\2\34\1\35\1\44" +
"\1\45\1\46\1\47\1\46\2\50\2\20\2\50\1\51" +
"\1\52\1\50\1\20\1\50\1\53\1\50\1\54\3\50" +
"\1\41\1\20\1\50\1\52\2\50\1\55\1\46\1\50" +
"\1\46\1\56\1\57\1\60\1\61\2\20\1\62\1\63" +
"\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73" +
"\3\20\1\74\1\75\1\50\1\76\2\20\2\34\1\35" +
"\1\44\15\20\1\77\1\43\6\20\1\41\5\20\1\100" +
"\7\20\1\101\1\102\1\103\1\20\1\104\1\105\1\106" +
"\1\107\1\110\1\111\1\112\1\113\1\114\1\115\1\116" +
"\3\20\1\76\1\117\1\20\2\34\1\35\1\27\7\20" +
"\1\40\1\120\2\20\1\121\1\20\1\122\7\20\1\41" +
"\2\20\1\121\37\20\2\34\1\35\1\44\1\123\1\46" +
"\1\123\1\46\2\123\2\20\5\123\1\20\1\123\1\53" +
"\5\123\1\41\1\20\4\123\1\55\1\46\1\123\1\46" +
"\1\56\1\57\1\60\1\61\2\20\1\62\1\20\1\64" +
"\1\65\1\66\1\67\1\70\1\71\1\72\1\73\3\20" +
"\3\123\3\20\2\34\1\35\1\44\15\20\1\77\7\20" +
"\1\41\5\20\1\100\7\20\1\101\1\102\1\103\1\20" +
"\1\104\1\105\1\106\1\107\1\110\1\111\1\112\1\113" +
"\1\114\1\115\1\116\5\20\1\124\1\125\1\34\1\35" +
"\1\44\25\124\1\41\12\124\1\126\1\127\1\130\1\131" +
"\1\124\1\62\21\124\1\132\1\133\1\34\1\35\70\132" +
"\1\20\2\134\1\135\1\27\1\136\1\20\1\136\1\20" +
"\2\136\1\20\1\40\5\136\3\20\1\137\4\136\1\140" +
"\1\20\4\136\2\20\1\136\24\20\3\136\2\20\1\141" +
"\1\142\1\143\1\144\1\145\25\141\1\140\41\141\1\20" +
"\2\34\1\35\1\27\25\20\1\41\41\20\1\132\1\146" +
"\1\143\1\144\70\132\76\0\1\21\75\0\1\23\73\0" +
"\1\147\7\24\1\150\5\24\1\151\1\0\1\152\5\24" +
"\2\0\4\24\1\0\3\24\23\0\3\24\7\0\1\153" +
"\1\0\1\153\1\0\2\153\2\0\5\153\3\0\5\153" +
"\2\0\4\153\2\0\1\153\24\0\3\153\2\0\1\26" +
"\1\52\1\50\1\20\1\53\1\54\1\50\1\55\3\50" +
"\1\41\1\20\1\50\1\52\2\50\1\56\1\46\1\50" +
"\1\46\1\57\1\60\1\61\1\62\2\20\1\63\1\64" +
"\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74" +
"\3\20\1\75\1\76\1\50\1\77\2\20\2\34\1\35" +
"\1\44\15\20\1\100\1\43\6\20\1\41\5\20\1\101" +
"\7\20\1\102\1\103\1\104\1\20\1\105\1\106\1\107" +
"\1\110\1\111\1\112\1\113\1\114\1\115\1\116\1\117" +
"\3\20\1\77\1\120\1\20\2\34\1\35\1\27\7\20" +
"\1\40\1\121\2\20\1\122\1\20\1\123\7\20\1\41" +
"\2\20\1\122\37\20\2\34\1\35\1\44\1\124\1\46" +
"\1\124\1\46\2\124\2\20\5\124\1\20\1\124\1\54" +
"\5\124\1\41\1\20\4\124\1\56\1\46\1\124\1\46" +
"\1\57\1\60\1\61\1\62\2\20\1\63\1\20\1\65" +
"\1\66\1\67\1\70\1\71\1\72\1\73\1\74\3\20" +
"\3\124\3\20\2\34\1\35\1\44\15\20\1\100\7\20" +
"\1\41\5\20\1\101\7\20\1\102\1\103\1\104\1\20" +
"\1\105\1\106\1\107\1\110\1\111\1\112\1\113\1\114" +
"\1\115\1\116\1\117\5\20\1\125\1\126\1\34\1\35" +
"\1\44\25\125\1\41\12\125\1\127\1\130\1\131\1\132" +
"\1\125\1\63\21\125\1\133\1\134\1\34\1\35\70\133" +
"\1\20\2\135\1\136\1\27\1\137\1\20\1\137\1\20" +
"\2\137\1\20\1\40\5\137\3\20\1\140\4\137\1\141" +
"\1\20\4\137\2\20\1\137\24\20\3\137\2\20\1\142" +
"\1\143\1\144\1\145\1\146\25\142\1\141\41\142\1\20" +
"\2\34\1\35\1\27\25\20\1\41\41\20\1\133\1\147" +
"\1\144\1\145\70\133\76\0\1\21\75\0\1\23\73\0" +
"\1\150\7\24\1\151\5\24\1\152\1\0\1\153\5\24" +
"\2\0\4\24\1\0\3\24\23\0\3\24\7\0\1\154" +
"\1\0\1\154\1\0\2\154\2\0\5\154\3\0\5\154" +
"\2\0\4\154\2\0\1\154\24\0\3\154\2\0\1\26" +
"\3\0\70\26\4\0\1\27\74\0\1\30\1\31\1\30" +
"\1\31\1\30\2\31\1\154\5\30\1\0\1\155\1\156" +
"\1\31\1\30\2\31\1\155\5\30\1\0\1\156\1\157" +
"\5\30\2\0\4\30\1\0\1\31\1\30\1\31\23\0" +
"\3\30\7\0\7\31\1\154\5\31\2\0\1\156\5\31" +
"\2\0\4\31\1\0\3\31\23\0\3\31\7\0\1\157" +
"\1\0\1\157\1\0\2\157\2\0\5\157\3\0\5\157" +
"\2\0\4\157\2\0\1\157\24\0\3\157\7\0\1\160" +
"\1\31\1\30\1\31\1\30\2\31\1\154\5\30\1\0" +
"\1\155\1\156\5\30\2\0\4\30\1\0\1\31\1\30" +
"\3\30\7\0\7\31\1\155\5\31\2\0\1\157\5\31" +
"\2\0\4\31\1\0\3\31\23\0\3\31\7\0\1\160" +
"\1\0\1\160\1\0\2\160\2\0\5\160\3\0\5\160" +
"\2\0\4\160\2\0\1\160\24\0\3\160\7\0\1\161" +
"\1\31\1\30\1\31\1\30\2\31\1\155\5\30\1\0" +
"\1\156\1\157\5\30\2\0\4\30\1\0\1\31\1\30" +
"\1\31\23\0\3\30\4\0\1\34\76\0\1\36\1\37" +
"\1\36\1\37\1\36\2\37\1\0\5\36\1\0\1\155" +
"\1\36\1\37\1\36\2\37\1\0\5\36\1\0\1\156" +
"\1\0\5\36\2\0\4\36\1\0\1\37\1\36\1\37" +
"\23\0\3\36\7\0\7\37\1\0\5\37\3\0\5\37" +
"\2\0\4\37\1\0\3\37\23\0\3\37\2\0\1\41" +
"\3\0\70\41\4\0\1\42\123\0\2\161\1\162\1\163" +
"\40\0\1\44\74\0\1\50\1\164\1\50\1\165\3\50" +
"\1\0\5\50\2\0\6\50\2\0\4\50\1\0\1\164" +
"\3\0\70\41\4\0\1\42\123\0\2\162\1\163\1\164" +
"\40\0\1\44\74\0\1\50\1\165\1\50\1\166\3\50" +
"\1\0\5\50\2\0\6\50\2\0\4\50\1\0\1\165" +
"\2\50\23\0\3\50\10\0\1\46\1\0\1\46\30\0" +
"\1\46\1\0\1\46\35\0\1\50\1\166\1\50\1\166" +
"\1\46\1\0\1\46\35\0\1\50\1\167\1\50\1\167" +
"\3\50\1\0\5\50\2\0\6\50\2\0\4\50\1\0" +
"\1\166\2\50\23\0\3\50\7\0\7\50\1\0\5\50" +
"\1\167\2\50\23\0\3\50\7\0\7\50\1\0\5\50" +
"\2\0\6\50\2\0\4\50\1\0\3\50\23\0\3\50" +
"\7\0\7\50\1\0\3\50\1\167\1\50\2\0\6\50" +
"\2\0\1\50\1\167\2\50\1\0\3\50\23\0\3\50" +
"\7\0\7\50\1\0\5\50\2\0\3\50\1\170\2\50" +
"\2\0\4\50\1\0\3\50\23\0\1\165\2\50\7\0" +
"\4\171\4\0\1\171\10\0\1\171\5\0\1\171\4\0" +
"\3\171\25\0\1\171\7\0\7\50\1\0\5\50\2\0" +
"\2\50\1\172\3\50\2\0\4\50\1\0\3\50\23\0" +
"\3\50\43\0\1\173\40\0\1\174\1\0\1\174\30\0" +
"\1\174\32\0\2\175\2\0\27\175\1\176\11\175\1\177" +
"\26\175\2\200\2\0\27\200\1\201\12\200\1\177\25\200" +
"\2\202\2\0\27\202\1\203\13\202\1\177\24\202\5\0" +
"\7\50\1\0\5\50\2\0\2\50\1\204\3\50\2\0" +
"\4\50\1\0\3\50\23\0\3\50\7\0\7\50\1\0" +
"\5\50\2\0\6\50\2\0\1\205\3\50\1\0\3\50" +
"\23\0\2\50\1\205\24\0\1\206\73\0\1\207\25\0" +
"\1\210\1\211\44\0\1\212\26\0\1\213\44\0\1\211" +
"\135\0\1\214\74\0\1\215\74\0\1\100\23\0\1\216" +
"\72\0\1\217\63\0\7\123\1\0\5\123\1\0\7\123" +
"\1\0\5\123\1\0\3\123\23\0\3\123\2\0\2\124" +
"\3\0\25\124\1\0\17\124\1\0\21\124\2\126\2\0" +
"\1\220\25\126\1\220\1\221\11\126\1\124\4\126\1\220" +
"\21\126\2\127\2\0\1\222\25\127\1\222\1\223\12\127" +
"\1\124\3\127\1\222\21\127\2\130\2\0\1\224\25\130" +
"\1\224\1\225\13\130\1\124\2\130\1\224\21\130\2\131" +
"\2\0\1\226\25\131\1\226\1\227\15\131\1\124\1\226" +
"\21\131\2\132\2\0\70\132\2\0\1\134\76\0\7\136" +
"\1\0\5\136\3\0\5\136\2\0\4\136\1\0\3\136" +
"\23\0\3\136\7\0\1\230\6\136\1\0\5\136\3\0" +
"\5\136\2\0\4\136\1\0\3\136\23\0\3\136\2\0" +
"\1\140\3\0\70\140\2\141\2\0\26\141\1\0\41\141" +
"\2\0\1\143\71\0\2\141\2\0\1\145\10\141\1\231" +
"\14\141\1\0\41\141\4\0\1\147\10\0\1\232\2\0" +
"\1\233\1\0\1\151\2\0\1\234\7\0\1\233\42\0" +
"\1\147\7\0\1\235\5\0\1\151\2\0\1\234\52\0" +
"\1\151\103\0\1\236\64\0\7\153\1\236\5\153\3\0" +
"\5\153\2\0\4\153\1\0\3\153\23\0\3\153\16\0" +
"\1\237\57\0\1\240\3\0\70\240\14\0\1\241\64\0" +
"\7\157\1\241\5\157\3\0\5\157\2\0\4\157\1\0" +
"\3\157\23\0\3\157\7\0\1\30\1\31\1\30\1\31" +
"\1\30\2\31\1\154\5\30\1\0\1\155\1\156\1\30" +
"\1\242\3\30\2\0\4\30\1\0\1\31\1\30\1\31" +
"\23\0\3\30\7\0\7\50\1\0\5\50\2\0\6\50" +
"\2\0\4\50\1\0\3\50\23\0\1\243\2\50\7\0" +
"\7\50\1\0\5\50\2\0\3\50\1\244\2\50\2\0" +
"\4\50\1\0\3\50\23\0\3\50\2\0\1\175\3\0" +
"\70\175\1\200\3\0\70\200\1\202\3\0\70\202\5\0" +
"\7\50\1\0\5\50\2\0\3\50\1\245\2\50\2\0" +
"\4\50\1\0\3\50\23\0\3\50\21\0\1\246\75\0" +
"\1\246\52\0\2\220\2\0\27\220\1\247\11\220\1\250" +
"\26\220\1\126\1\124\2\0\1\220\25\126\1\220\17\126" +
"\1\220\21\126\2\222\2\0\27\222\1\251\12\222\1\250" +
"\25\222\1\127\1\124\2\0\1\222\25\127\1\222\17\127" +
"\1\222\21\127\2\224\2\0\27\224\1\252\13\224\1\250" +
"\24\224\1\130\1\124\2\0\1\224\25\130\1\224\17\130" +
"\1\224\21\130\2\226\2\0\27\226\1\253\15\226\1\250" +
"\22\226\1\131\1\124\2\0\1\226\25\131\1\226\17\131" +
"\1\226\21\131\5\0\7\136\1\0\5\136\3\0\1\136" +
"\1\254\3\136\2\0\4\136\1\0\3\136\23\0\3\136" +
"\2\0\2\141\2\0\25\141\1\255\1\0\41\141\16\0" +
"\1\256\72\0\1\257\63\0\1\260\73\0\1\30\1\31" +
"\1\30\1\31\1\30\2\31\1\154\5\30\1\0\1\155" +
"\1\156\2\30\1\261\2\30\2\0\4\30\1\0\1\31" +
"\1\30\1\31\23\0\3\30\2\0\1\220\3\0\70\220" +
"\1\222\3\0\70\222\1\224\3\0\70\224\1\226\3\0" +
"\70\226\5\0\7\136\1\0\5\136\3\0\2\136\1\262" +
"\2\136\2\0\4\136\1\0\3\136\23\0\3\136\2\0" +
"\2\141\2\0\3\141\1\263\22\141\1\0\41\141\17\0" +
"\1\264\75\0\1\264\100\0\1\265\52\0\1\30\1\31" +
"\1\30\1\31\1\30\2\31\1\154\5\30\1\0\1\155" +
"\1\156\3\30\1\266\1\30\2\0\4\30\1\0\1\31" +
"\1\30\1\31\23\0\3\30\7\0\7\136\1\0\5\136" +
"\3\0\3\136\1\267\1\136\2\0\4\136\1\0\3\136" +
"\23\0\3\136\2\0\2\141\2\0\21\141\1\270\4\141" +
"\1\0\41\141\27\0\1\271\44\0\2\270\2\0\26\270" +
"\1\0\41\270\30\0\1\272\47\0\1\272\67\0";
"\7\0\7\50\1\0\3\50\1\170\1\50\2\0\6\50" +
"\2\0\1\50\1\170\2\50\1\0\3\50\23\0\3\50" +
"\7\0\7\50\1\0\5\50\2\0\3\50\1\171\2\50" +
"\2\0\4\50\1\0\3\50\23\0\1\166\2\50\7\0" +
"\7\50\1\0\5\50\2\0\6\50\2\0\2\172\1\173" +
"\1\174\1\0\3\50\23\0\3\50\7\0\4\175\4\0" +
"\1\175\10\0\1\175\5\0\1\175\4\0\3\175\25\0" +
"\1\175\7\0\7\50\1\0\5\50\2\0\2\50\1\176" +
"\3\50\2\0\4\50\1\0\3\50\23\0\3\50\43\0" +
"\1\177\40\0\1\200\1\0\1\200\30\0\1\200\32\0" +
"\2\201\2\0\27\201\1\202\11\201\1\203\26\201\2\204" +
"\2\0\27\204\1\205\12\204\1\203\25\204\2\206\2\0" +
"\27\206\1\207\13\206\1\203\24\206\5\0\7\50\1\0" +
"\5\50\2\0\2\50\1\210\3\50\2\0\4\50\1\0" +
"\3\50\23\0\3\50\7\0\7\50\1\0\5\50\2\0" +
"\6\50\2\0\1\211\3\50\1\0\3\50\23\0\2\50" +
"\1\211\24\0\1\212\73\0\1\213\25\0\1\214\1\215" +
"\44\0\1\216\26\0\1\217\44\0\1\215\135\0\1\220" +
"\74\0\1\221\74\0\1\101\23\0\1\222\72\0\1\223" +
"\63\0\7\124\1\0\5\124\1\0\7\124\1\0\5\124" +
"\1\0\3\124\23\0\3\124\2\0\2\125\3\0\25\125" +
"\1\0\17\125\1\0\21\125\2\127\2\0\1\224\25\127" +
"\1\224\1\225\11\127\1\125\4\127\1\224\21\127\2\130" +
"\2\0\1\226\25\130\1\226\1\227\12\130\1\125\3\130" +
"\1\226\21\130\2\131\2\0\1\230\25\131\1\230\1\231" +
"\13\131\1\125\2\131\1\230\21\131\2\132\2\0\1\232" +
"\25\132\1\232\1\233\15\132\1\125\1\232\21\132\2\133" +
"\2\0\70\133\2\0\1\135\76\0\7\137\1\0\5\137" +
"\3\0\5\137\2\0\4\137\1\0\3\137\23\0\3\137" +
"\7\0\1\234\6\137\1\0\5\137\3\0\5\137\2\0" +
"\4\137\1\0\3\137\23\0\3\137\2\0\1\141\3\0" +
"\70\141\2\142\2\0\26\142\1\0\41\142\2\0\1\144" +
"\71\0\2\142\2\0\1\146\10\142\1\235\14\142\1\0" +
"\41\142\4\0\1\150\10\0\1\236\2\0\1\237\1\0" +
"\1\152\2\0\1\240\7\0\1\237\42\0\1\150\7\0" +
"\1\241\5\0\1\152\2\0\1\240\52\0\1\152\103\0" +
"\1\242\64\0\7\154\1\242\5\154\3\0\5\154\2\0" +
"\4\154\1\0\3\154\23\0\3\154\16\0\1\243\57\0" +
"\1\244\3\0\70\244\14\0\1\245\64\0\7\160\1\245" +
"\5\160\3\0\5\160\2\0\4\160\1\0\3\160\23\0" +
"\3\160\7\0\1\30\1\31\1\30\1\31\1\30\2\31" +
"\1\155\5\30\1\0\1\156\1\157\1\30\1\246\3\30" +
"\2\0\4\30\1\0\1\31\1\30\1\31\23\0\3\30" +
"\7\0\7\50\1\0\5\50\2\0\6\50\2\0\4\50" +
"\1\0\3\50\23\0\1\247\2\50\7\0\7\50\1\0" +
"\5\50\2\0\3\50\1\250\2\50\2\0\4\50\1\0" +
"\3\50\23\0\3\50\2\0\1\201\3\0\70\201\1\204" +
"\3\0\70\204\1\206\3\0\70\206\5\0\7\50\1\0" +
"\5\50\2\0\3\50\1\251\2\50\2\0\4\50\1\0" +
"\3\50\23\0\3\50\21\0\1\252\75\0\1\252\52\0" +
"\2\224\2\0\27\224\1\253\11\224\1\254\26\224\1\127" +
"\1\125\2\0\1\224\25\127\1\224\17\127\1\224\21\127" +
"\2\226\2\0\27\226\1\255\12\226\1\254\25\226\1\130" +
"\1\125\2\0\1\226\25\130\1\226\17\130\1\226\21\130" +
"\2\230\2\0\27\230\1\256\13\230\1\254\24\230\1\131" +
"\1\125\2\0\1\230\25\131\1\230\17\131\1\230\21\131" +
"\2\232\2\0\27\232\1\257\15\232\1\254\22\232\1\132" +
"\1\125\2\0\1\232\25\132\1\232\17\132\1\232\21\132" +
"\5\0\7\137\1\0\5\137\3\0\1\137\1\260\3\137" +
"\2\0\4\137\1\0\3\137\23\0\3\137\2\0\2\142" +
"\2\0\25\142\1\261\1\0\41\142\16\0\1\262\72\0" +
"\1\263\63\0\1\264\73\0\1\30\1\31\1\30\1\31" +
"\1\30\2\31\1\155\5\30\1\0\1\156\1\157\2\30" +
"\1\265\2\30\2\0\4\30\1\0\1\31\1\30\1\31" +
"\23\0\3\30\2\0\1\224\3\0\70\224\1\226\3\0" +
"\70\226\1\230\3\0\70\230\1\232\3\0\70\232\5\0" +
"\7\137\1\0\5\137\3\0\2\137\1\266\2\137\2\0" +
"\4\137\1\0\3\137\23\0\3\137\2\0\2\142\2\0" +
"\3\142\1\267\22\142\1\0\41\142\17\0\1\270\75\0" +
"\1\270\100\0\1\271\52\0\1\30\1\31\1\30\1\31" +
"\1\30\2\31\1\155\5\30\1\0\1\156\1\157\3\30" +
"\1\272\1\30\2\0\4\30\1\0\1\31\1\30\1\31" +
"\23\0\3\30\7\0\7\137\1\0\5\137\3\0\3\137" +
"\1\273\1\137\2\0\4\137\1\0\3\137\23\0\3\137" +
"\2\0\2\142\2\0\21\142\1\274\4\142\1\0\41\142" +
"\27\0\1\275\44\0\2\274\2\0\26\274\1\0\41\274" +
"\30\0\1\276\47\0\1\276\67\0";
private static int[] zzUnpackTrans() {
int[] result = new int[7140];
int[] result = new int[7200];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@ -468,17 +470,17 @@ public class _M68kLexer implements FlexLexer {
private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\17\0\2\11\12\1\1\11\3\1\1\11\21\1\12\11" +
"\17\0\2\11\12\1\1\11\3\1\1\11\22\1\12\11" +
"\2\1\1\11\1\1\1\11\2\1\4\11\1\1\4\11" +
"\3\1\1\11\2\1\1\11\11\1\1\11\6\1\1\11" +
"\3\1\1\0\5\1\3\0\1\1\3\11\11\1\2\0" +
"\3\1\1\0\5\1\3\0\1\1\3\11\14\1\2\0" +
"\1\11\4\0\2\1\10\11\3\0\1\1\1\0\1\1" +
"\1\0\1\1\1\0\3\1\3\0\5\11\4\1\1\11" +
"\1\0\1\11\3\0\2\1\3\0\3\1\2\0\3\1" +
"\1\0\1\1";
private static int[] zzUnpackAttribute() {
int[] result = new int[186];
int[] result = new int[190];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;

View File

@ -808,7 +808,7 @@ public class M68kParser implements PsiParser, LightPsiParser {
}
/* ********************************************************** */
// ROUND_L SQUARE_L (expr SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr)? ROUND_R
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
public static boolean MemoryIndirectAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -824,44 +824,60 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (expr SEPARATOR)?
// (expr DataWidth? SEPARATOR)?
private static boolean MemoryIndirectAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2")) return false;
MemoryIndirectAddressingMode_2_0(b, l + 1);
return true;
}
// expr SEPARATOR
// expr DataWidth? SEPARATOR
private static boolean MemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = expr(b, l + 1, -1);
r = r && MemoryIndirectAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r);
return r;
}
// (SEPARATOR expr)?
// DataWidth?
private static boolean MemoryIndirectAddressingMode_2_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0_1")) return false;
DataWidth(b, l + 1);
return true;
}
// (SEPARATOR expr DataWidth?)?
private static boolean MemoryIndirectAddressingMode_5(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5")) return false;
MemoryIndirectAddressingMode_5_0(b, l + 1);
return true;
}
// SEPARATOR expr
// SEPARATOR expr DataWidth?
private static boolean MemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1);
r = r && MemoryIndirectAddressingMode_5_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DataWidth?
private static boolean MemoryIndirectAddressingMode_5_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0_2")) return false;
DataWidth(b, l + 1);
return true;
}
/* ********************************************************** */
// ROUND_L (SQUARE_L (expr SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr)? ROUND_R
// ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
public static boolean MemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -876,14 +892,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (SQUARE_L (expr SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)?
// (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)?
private static boolean MemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1")) return false;
MemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1);
return true;
}
// SQUARE_L (expr SEPARATOR)? AddressRegister SQUARE_R SEPARATOR
// SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0")) return false;
boolean r;
@ -896,44 +912,60 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (expr SEPARATOR)?
// (expr DataWidth? SEPARATOR)?
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1")) return false;
MemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1);
return true;
}
// expr SEPARATOR
// expr DataWidth? SEPARATOR
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = expr(b, l + 1, -1);
r = r && MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r);
return r;
}
// (SEPARATOR expr)?
// DataWidth?
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1")) return false;
DataWidth(b, l + 1);
return true;
}
// (SEPARATOR expr DataWidth?)?
private static boolean MemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3")) return false;
MemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1);
return true;
}
// SEPARATOR expr
// SEPARATOR expr DataWidth?
private static boolean MemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1);
r = r && MemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DataWidth?
private static boolean MemoryIndirectPostIndexedAddressingMode_3_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0_2")) return false;
DataWidth(b, l + 1);
return true;
}
/* ********************************************************** */
// ROUND_L SQUARE_L (expr SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr)? ROUND_R
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
public static boolean MemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -951,42 +983,58 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (expr SEPARATOR)?
// (expr DataWidth? SEPARATOR)?
private static boolean MemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2")) return false;
MemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1);
return true;
}
// expr SEPARATOR
// expr DataWidth? SEPARATOR
private static boolean MemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = expr(b, l + 1, -1);
r = r && MemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r);
return r;
}
// (SEPARATOR expr)?
// DataWidth?
private static boolean MemoryIndirectPreIndexedAddressingMode_2_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0_1")) return false;
DataWidth(b, l + 1);
return true;
}
// (SEPARATOR expr DataWidth?)?
private static boolean MemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7")) return false;
MemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1);
return true;
}
// SEPARATOR expr
// SEPARATOR expr DataWidth?
private static boolean MemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1);
r = r && MemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DataWidth?
private static boolean MemoryIndirectPreIndexedAddressingMode_7_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0_2")) return false;
DataWidth(b, l + 1);
return true;
}
/* ********************************************************** */
// OPSIZE_BS|OPSIZE_W|OPSIZE_L
public static boolean OperandSize(PsiBuilder b, int l) {
@ -1228,7 +1276,7 @@ public class M68kParser implements PsiParser, LightPsiParser {
}
/* ********************************************************** */
// ROUND_L SQUARE_L (expr SEPARATOR)? PC SQUARE_R (SEPARATOR expr)? ROUND_R
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
public static boolean ProgramCounterMemoryIndirectAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -1243,44 +1291,60 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (expr SEPARATOR)?
// (expr DataWidth? SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2")) return false;
ProgramCounterMemoryIndirectAddressingMode_2_0(b, l + 1);
return true;
}
// expr SEPARATOR
// expr DataWidth? SEPARATOR
private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = expr(b, l + 1, -1);
r = r && ProgramCounterMemoryIndirectAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r);
return r;
}
// (SEPARATOR expr)?
// DataWidth?
private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0_1")) return false;
DataWidth(b, l + 1);
return true;
}
// (SEPARATOR expr DataWidth?)?
private static boolean ProgramCounterMemoryIndirectAddressingMode_5(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5")) return false;
ProgramCounterMemoryIndirectAddressingMode_5_0(b, l + 1);
return true;
}
// SEPARATOR expr
// SEPARATOR expr DataWidth?
private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1);
r = r && ProgramCounterMemoryIndirectAddressingMode_5_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DataWidth?
private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0_2")) return false;
DataWidth(b, l + 1);
return true;
}
/* ********************************************************** */
// ROUND_L (SQUARE_L (expr SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr)? ROUND_R
// ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
public static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -1295,14 +1359,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (SQUARE_L (expr SEPARATOR)? PC SQUARE_R SEPARATOR)?
// (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1")) return false;
ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1);
return true;
}
// SQUARE_L (expr SEPARATOR)? PC SQUARE_R SEPARATOR
// SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0")) return false;
boolean r;
@ -1314,44 +1378,60 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (expr SEPARATOR)?
// (expr DataWidth? SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1")) return false;
ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1);
return true;
}
// expr SEPARATOR
// expr DataWidth? SEPARATOR
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = expr(b, l + 1, -1);
r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r);
return r;
}
// (SEPARATOR expr)?
// DataWidth?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1")) return false;
DataWidth(b, l + 1);
return true;
}
// (SEPARATOR expr DataWidth?)?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3")) return false;
ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1);
return true;
}
// SEPARATOR expr
// SEPARATOR expr DataWidth?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1);
r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DataWidth?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2")) return false;
DataWidth(b, l + 1);
return true;
}
/* ********************************************************** */
// ROUND_L SQUARE_L (expr SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr)? ROUND_R
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
public static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -1368,42 +1448,58 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// (expr SEPARATOR)?
// (expr DataWidth? SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2")) return false;
ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1);
return true;
}
// expr SEPARATOR
// expr DataWidth? SEPARATOR
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = expr(b, l + 1, -1);
r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r);
return r;
}
// (SEPARATOR expr)?
// DataWidth?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1")) return false;
DataWidth(b, l + 1);
return true;
}
// (SEPARATOR expr DataWidth?)?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7")) return false;
ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1);
return true;
}
// SEPARATOR expr
// SEPARATOR expr DataWidth?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0")) return false;
boolean r;
Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1);
r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
// DataWidth?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2")) return false;
DataWidth(b, l + 1);
return true;
}
/* ********************************************************** */
// CURRENT_PC_SYMBOL
public static boolean ProgramCounterReference(PsiBuilder b, int l) {

View File

@ -11,6 +11,9 @@ public interface M68kMemoryIndirectAddressingMode extends M68kAddressingMode, M6
@NotNull
M68kAddressRegister getAddressRegister();
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull
List<M68kExpr> getExprList();
@ -20,4 +23,10 @@ public interface M68kMemoryIndirectAddressingMode extends M68kAddressingMode, M6
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
}

View File

@ -11,6 +11,9 @@ public interface M68kMemoryIndirectPostIndexedAddressingMode extends M68kAddress
@Nullable
M68kAddressRegister getAddressRegister();
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@ -23,4 +26,10 @@ public interface M68kMemoryIndirectPostIndexedAddressingMode extends M68kAddress
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
}

View File

@ -11,6 +11,9 @@ public interface M68kMemoryIndirectPreIndexedAddressingMode extends M68kAddressi
@NotNull
M68kAddressRegister getAddressRegister();
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@ -23,4 +26,10 @@ public interface M68kMemoryIndirectPreIndexedAddressingMode extends M68kAddressi
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
}

View File

@ -8,6 +8,9 @@ import java.util.List;
public interface M68kProgramCounterMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithOuterDisplacement {
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull
List<M68kExpr> getExprList();
@ -17,4 +20,10 @@ public interface M68kProgramCounterMemoryIndirectAddressingMode extends M68kAddr
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
}

View File

@ -8,6 +8,9 @@ import java.util.List;
public interface M68kProgramCounterMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@ -20,4 +23,10 @@ public interface M68kProgramCounterMemoryIndirectPostIndexedAddressingMode exten
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
}

View File

@ -8,6 +8,9 @@ import java.util.List;
public interface M68kProgramCounterMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@ -20,4 +23,10 @@ public interface M68kProgramCounterMemoryIndirectPreIndexedAddressingMode extend
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
}

View File

@ -4,10 +4,7 @@ package de.platon42.intellij.plugins.m68k.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import de.platon42.intellij.plugins.m68k.psi.M68kAddressRegister;
import de.platon42.intellij.plugins.m68k.psi.M68kExpr;
import de.platon42.intellij.plugins.m68k.psi.M68kMemoryIndirectAddressingMode;
import de.platon42.intellij.plugins.m68k.psi.M68kVisitor;
import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -36,6 +33,12 @@ public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl
return notNullChild(PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class));
}
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
@ -56,4 +59,18 @@ public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
}
}

View File

@ -33,6 +33,12 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress
return PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class);
}
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public M68kIndexRegister getIndexRegister() {
@ -59,4 +65,18 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
}
}

View File

@ -33,6 +33,12 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi
return notNullChild(PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class));
}
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public M68kIndexRegister getIndexRegister() {
@ -59,4 +65,18 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
}
}

View File

@ -4,6 +4,7 @@ package de.platon42.intellij.plugins.m68k.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import de.platon42.intellij.plugins.m68k.psi.M68kDataWidth;
import de.platon42.intellij.plugins.m68k.psi.M68kExpr;
import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectAddressingMode;
import de.platon42.intellij.plugins.m68k.psi.M68kVisitor;
@ -29,6 +30,12 @@ public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddr
else super.accept(visitor);
}
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
@ -49,4 +56,18 @@ public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddr
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
}
}

View File

@ -4,10 +4,7 @@ package de.platon42.intellij.plugins.m68k.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import de.platon42.intellij.plugins.m68k.psi.M68kExpr;
import de.platon42.intellij.plugins.m68k.psi.M68kIndexRegister;
import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectPostIndexedAddressingMode;
import de.platon42.intellij.plugins.m68k.psi.M68kVisitor;
import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -30,6 +27,12 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
else super.accept(visitor);
}
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public M68kIndexRegister getIndexRegister() {
@ -56,4 +59,18 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
}
}

View File

@ -4,10 +4,7 @@ package de.platon42.intellij.plugins.m68k.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import de.platon42.intellij.plugins.m68k.psi.M68kExpr;
import de.platon42.intellij.plugins.m68k.psi.M68kIndexRegister;
import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectPreIndexedAddressingMode;
import de.platon42.intellij.plugins.m68k.psi.M68kVisitor;
import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -30,6 +27,12 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
else super.accept(visitor);
}
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public M68kIndexRegister getIndexRegister() {
@ -56,4 +59,18 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
}
}

View File

@ -330,7 +330,7 @@ AddressRegisterIndirectWithIndexNewAddressingMode ::= ROUND_L (expr SEPARATOR)?
]
}
MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr)? ROUND_R
MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
{
implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect"
@ -340,10 +340,12 @@ MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)? AddressRegis
methods = [
baseDisplacement = "expr[0]"
outerDisplacement = "expr[1]"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
]
}
MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr)? ROUND_R
MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
{
implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect"
@ -354,10 +356,12 @@ MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr SEPARATOR)?
methods = [
baseDisplacement = "expr[0]"
outerDisplacement = "expr[1]"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
]
}
MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr)? ROUND_R
MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
{
implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect"
@ -368,6 +372,8 @@ MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)? Ad
methods = [
baseDisplacement = "expr[0]"
outerDisplacement = "expr[1]"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
]
}
@ -409,7 +415,7 @@ ProgramCounterIndirectWithIndexNewAddressingMode ::= ROUND_L (expr SEPARATOR)? P
]
}
ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)? PC SQUARE_R (SEPARATOR expr)? ROUND_R
ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
{
implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
@ -418,10 +424,12 @@ ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)
methods = [
baseDisplacement = "expr[0]"
outerDisplacement = "expr[1]"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
]
}
ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr)? ROUND_R
ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
{
implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
@ -431,10 +439,12 @@ ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (exp
methods = [
baseDisplacement = "expr[0]"
outerDisplacement = "expr[1]"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
]
}
ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr)? ROUND_R
ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
{
implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
@ -444,6 +454,8 @@ ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr
methods = [
baseDisplacement = "expr[0]"
outerDisplacement = "expr[1]"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
]
}

View File

@ -3,4 +3,6 @@ package de.platon42.intellij.plugins.m68k.psi
interface M68kWithBaseDisplacement : M68kAddressingMode {
val baseDisplacement: M68kExpr?
val baseDataWidth: M68kDataWidth?
}

View File

@ -3,4 +3,6 @@ package de.platon42.intellij.plugins.m68k.psi
interface M68kWithOuterDisplacement : M68kAddressingMode {
val outerDisplacement: M68kExpr?
val outerDataWidth: M68kDataWidth?
}

View File

@ -94,12 +94,12 @@ internal class AddressingModesTest : AbstractParsingTest() {
@Test
internal fun memory_indirect_with_all_params(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,a1],124),([-12,a0],-120)\n")
testGoodSyntax(testCase, " move.l ([1234.w,a1],124),([-12.w,a0],-120)\n")
}
@Test
internal fun memory_indirect_without_base_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([a1],124),([a0],-120)\n")
testGoodSyntax(testCase, " move.l ([a1],124.l),([a0],-120.w)\n")
}
@Test
@ -114,17 +114,17 @@ internal class AddressingModesTest : AbstractParsingTest() {
@Test
internal fun memory_indirect_post_indexed_with_all_params(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,a1],a0.w*4,124),([-12,a0],d0.l*8,-120)\n")
testGoodSyntax(testCase, " move.l ([1234.w,a1],a0.w*4,124),([-12,a0],d0.l*8,-120.w)\n")
}
@Test
internal fun memory_indirect_post_indexed_without_base_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([a1],a0,124),([a0],d0.l*8,-120)\n")
testGoodSyntax(testCase, " move.l ([a1],a0,124.l),([a0],d0.l*8,-120)\n")
}
@Test
internal fun memory_indirect_post_indexed_without_outer_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,a1],a0),([-12,a0],d0.l*8)\n")
testGoodSyntax(testCase, " move.l ([1234.l,a1],a0),([-12,a0],d0.l*8)\n")
}
@Test
@ -139,12 +139,12 @@ internal class AddressingModesTest : AbstractParsingTest() {
@Test
internal fun memory_indirect_pre_indexed_without_base_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([a1,a0],124),([a0,d0.l*8],-120)\n")
testGoodSyntax(testCase, " move.l ([a1,a0],124),([a0,d0.l*8],-120.w)\n")
}
@Test
internal fun memory_indirect_pre_indexed_without_outer_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,a1,a0]),([-12,a0,d0.l*8])\n")
testGoodSyntax(testCase, " move.l ([1234.l,a1,a0]),([-12,a0,d0.l*8])\n")
}
@Test
@ -152,15 +152,14 @@ internal class AddressingModesTest : AbstractParsingTest() {
testGoodSyntax(testCase, " move.l ([a1,a0]),([a0,d0])\n")
}
@Test
internal fun pc_memory_indirect_with_all_params(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,pc],124),d0\n")
testGoodSyntax(testCase, " move.l ([1234.w,pc],124),d0\n")
}
@Test
internal fun pc_memory_indirect_without_base_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([pc],124),d0\n")
testGoodSyntax(testCase, " move.l ([pc],124.l),d0\n")
}
@Test
@ -175,7 +174,7 @@ internal class AddressingModesTest : AbstractParsingTest() {
@Test
internal fun pc_memory_indirect_post_indexed_with_all_params(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,pc],a0.w*4,124),d0\n")
testGoodSyntax(testCase, " move.l ([1234.l,pc],a0.w*4,124.w),d0\n")
}
@Test
@ -195,12 +194,12 @@ internal class AddressingModesTest : AbstractParsingTest() {
@Test
internal fun pc_memory_indirect_pre_indexed_with_all_params(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([1234,pc,a0.w*4],124),d0\n")
testGoodSyntax(testCase, " move.l ([1234.w,pc,a0.w*4],124),d0\n")
}
@Test
internal fun pc_memory_indirect_pre_indexed_without_base_displacement(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l ([pc,a0*4],124),d0\n")
testGoodSyntax(testCase, " move.l ([pc,a0*4],124.l),d0\n")
}
@Test

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1')
@ -57,5 +59,7 @@ Assembly File: a.asm
PsiElement(M68kTokenType.OP_MINUS)('-')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('120')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n')

View File

@ -20,6 +20,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1')

View File

@ -43,5 +43,7 @@ Assembly File: a.asm
PsiElement(M68kTokenType.OP_MINUS)('-')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('120')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n')

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1')

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1')
@ -28,6 +30,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.OP_MINUS)('-')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('12')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0')

View File

@ -16,6 +16,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
@ -29,5 +31,7 @@ Assembly File: a.asm
PsiElement(M68kTokenType.OP_MINUS)('-')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('120')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n')

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']')
@ -28,6 +30,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SEPARATOR)(',')

View File

@ -23,6 +23,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)

View File

@ -12,6 +12,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']')

View File

@ -15,6 +15,8 @@ Assembly File: a.asm
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)