Enhanced expression parser for PC relative symbol and modulo handling and bitwise or.
This commit is contained in:
parent
e33470ea1a
commit
b7f655745b
@ -38,8 +38,9 @@ public class _M68kLexer implements FlexLexer {
|
||||
public static final int ASMOPS = 8;
|
||||
public static final int ASSIGNMENT = 10;
|
||||
public static final int EXPR = 12;
|
||||
public static final int MACROCALL = 14;
|
||||
public static final int WAITEOL = 16;
|
||||
public static final int EXPR_OP = 14;
|
||||
public static final int MACROCALL = 16;
|
||||
public static final int WAITEOL = 18;
|
||||
|
||||
/**
|
||||
* ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
|
||||
@ -49,7 +50,7 @@ public class _M68kLexer implements FlexLexer {
|
||||
*/
|
||||
private static final int ZZ_LEXSTATE[] = {
|
||||
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
|
||||
8, 8
|
||||
8, 8, 9, 9
|
||||
};
|
||||
|
||||
/**
|
||||
@ -131,12 +132,12 @@ public class _M68kLexer implements FlexLexer {
|
||||
|
||||
/* The ZZ_CMAP_A table has 3200 entries */
|
||||
static final char ZZ_CMAP_A[] = zzUnpackCMap(
|
||||
"\11\0\1\4\1\2\2\1\1\3\22\0\1\4\1\54\1\44\1\51\1\24\1\31\1\52\1\43\1\56\1\57" +
|
||||
"\1\63\1\61\1\47\1\62\1\22\1\64\2\32\6\6\2\36\1\23\1\50\1\45\1\21\1\46\1\0" +
|
||||
"\11\0\1\4\1\2\2\1\1\3\22\0\1\4\1\55\1\44\1\51\1\24\1\31\1\62\1\43\1\53\1\54" +
|
||||
"\1\61\1\57\1\47\1\60\1\22\1\64\2\32\6\6\2\36\1\23\1\50\1\45\1\21\1\46\1\0" +
|
||||
"\1\40\1\5\1\71\1\65\1\11\1\15\6\12\1\30\3\12\1\10\1\16\1\67\1\7\1\20\1\17" +
|
||||
"\1\70\1\27\3\12\1\0\1\42\1\0\1\55\1\13\1\41\1\33\1\26\1\66\1\34\1\37\1\35" +
|
||||
"\5\12\1\30\3\12\1\10\1\16\1\67\1\25\1\20\1\17\1\70\1\27\3\12\1\0\1\53\1\0" +
|
||||
"\1\60\6\0\1\1\12\0\1\4\11\0\1\12\12\0\1\12\4\0\1\12\5\0\27\12\1\0\27\12\1" +
|
||||
"\1\70\1\27\3\12\1\0\1\42\1\0\1\52\1\13\1\41\1\33\1\26\1\66\1\34\1\37\1\35" +
|
||||
"\5\12\1\30\3\12\1\10\1\16\1\67\1\25\1\20\1\17\1\70\1\27\3\12\1\0\1\63\1\0" +
|
||||
"\1\56\6\0\1\1\12\0\1\4\11\0\1\12\12\0\1\12\4\0\1\12\5\0\27\12\1\0\27\12\1" +
|
||||
"\7\2\12\4\0\14\12\16\0\5\12\7\0\1\12\1\0\1\12\1\0\5\12\1\0\2\12\2\0\4\12\1" +
|
||||
"\0\1\12\6\0\1\12\1\0\3\12\1\0\1\12\1\0\4\12\1\0\23\12\1\0\13\12\10\0\6\12" +
|
||||
"\1\0\26\12\2\0\1\12\6\0\10\12\10\0\13\12\5\0\3\12\15\0\12\14\4\0\6\12\1\0" +
|
||||
@ -188,21 +189,25 @@ public class _M68kLexer implements FlexLexer {
|
||||
private static final int[] ZZ_ACTION = zzUnpackAction();
|
||||
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\11\0\1\1\2\2\1\3\1\4\1\1\1\5\2\6" +
|
||||
"\12\0\1\1\2\2\1\3\1\4\1\1\1\5\2\6" +
|
||||
"\1\2\1\7\1\10\1\1\1\11\2\12\1\7\1\10" +
|
||||
"\1\13\1\14\1\1\1\15\1\16\5\15\1\17\1\15" +
|
||||
"\1\1\1\20\4\1\1\21\1\22\1\23\1\24\1\25" +
|
||||
"\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35" +
|
||||
"\1\36\1\37\2\15\2\1\1\40\1\41\1\12\4\41" +
|
||||
"\1\0\1\42\1\4\2\43\3\0\1\44\1\45\1\46" +
|
||||
"\1\47\1\50\1\51\1\52\1\15\1\53\1\44\1\45" +
|
||||
"\1\46\1\54\1\55\1\56\1\0\1\41\5\0\1\57" +
|
||||
"\1\60\1\61\1\62\1\63\1\64\1\65\2\15\2\0" +
|
||||
"\3\41\1\0\1\41\2\0\1\4\1\43\1\7\1\66" +
|
||||
"\1\67\1\70\1\71\4\0";
|
||||
"\1\36\1\37\2\15\2\1\1\40\1\41\1\42\6\1" +
|
||||
"\1\43\1\30\1\44\1\40\1\45\1\46\1\47\1\50" +
|
||||
"\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60" +
|
||||
"\1\53\1\61\1\62\1\12\4\62\1\0\1\63\1\4" +
|
||||
"\2\64\3\0\1\65\1\66\1\67\1\70\1\71\1\72" +
|
||||
"\1\73\1\15\1\74\1\65\1\66\1\67\1\75\1\76" +
|
||||
"\1\77\1\0\1\62\5\0\1\100\1\101\1\102\1\103" +
|
||||
"\1\104\1\105\1\106\1\20\2\15\2\0\1\107\1\110" +
|
||||
"\1\111\1\0\1\112\5\0\1\113\1\114\1\115\1\116" +
|
||||
"\1\117\1\120\1\121\1\122\3\62\1\0\1\62\2\0" +
|
||||
"\1\4\1\64\1\7\1\123\1\124\1\125\1\126\4\0";
|
||||
|
||||
private static int[] zzUnpackAction() {
|
||||
int[] result = new int[130];
|
||||
int[] result = new int[176];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@ -228,25 +233,30 @@ public class _M68kLexer implements FlexLexer {
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\72\0\164\0\256\0\350\0\u0122\0\u015c\0\u0196" +
|
||||
"\0\u01d0\0\u020a\0\u020a\0\u0244\0\u027e\0\u02b8\0\u02f2\0\u032c" +
|
||||
"\0\u020a\0\u0366\0\u03a0\0\u03da\0\u0414\0\u044e\0\u0488\0\u020a" +
|
||||
"\0\u04c2\0\u04fc\0\u0536\0\u0570\0\u05aa\0\u05e4\0\u061e\0\u0658" +
|
||||
"\0\u01d0\0\u020a\0\u0244\0\u0244\0\u027e\0\u02b8\0\u02f2\0\u032c" +
|
||||
"\0\u0366\0\u0244\0\u03a0\0\u03da\0\u0414\0\u044e\0\u0488\0\u04c2" +
|
||||
"\0\u0244\0\u04fc\0\u0536\0\u0570\0\u05aa\0\u05e4\0\u061e\0\u0658" +
|
||||
"\0\u0692\0\u06cc\0\u0706\0\u0740\0\u077a\0\u07b4\0\u07ee\0\u0828" +
|
||||
"\0\u0862\0\u089c\0\u08d6\0\u0910\0\u094a\0\u0984\0\u09be\0\u020a" +
|
||||
"\0\u020a\0\u09f8\0\u0a32\0\u0a6c\0\u020a\0\u020a\0\u020a\0\u020a" +
|
||||
"\0\u020a\0\u020a\0\u020a\0\u020a\0\u0aa6\0\u0ae0\0\u0b1a\0\u0b54" +
|
||||
"\0\u020a\0\u0b8e\0\u0b8e\0\u0bc8\0\u0c02\0\u0c3c\0\u0c76\0\u0cb0" +
|
||||
"\0\u0cea\0\u0d24\0\u0d5e\0\u0d98\0\u0dd2\0\u0d5e\0\u0e0c\0\u020a" +
|
||||
"\0\u020a\0\u020a\0\u0740\0\u0740\0\u0740\0\u0740\0\u0e46\0\u020a" +
|
||||
"\0\u0740\0\u0740\0\u0740\0\u0828\0\u0862\0\u089c\0\u08d6\0\u020a" +
|
||||
"\0\u0e80\0\u0910\0\u0eba\0\u094a\0\u0ef4\0\u020a\0\u020a\0\u020a" +
|
||||
"\0\u020a\0\u020a\0\u020a\0\u020a\0\u0f2e\0\u0f68\0\u0fa2\0\u0fdc" +
|
||||
"\0\u1016\0\u1050\0\u108a\0\u10c4\0\u10fe\0\u1138\0\u1172\0\u020a" +
|
||||
"\0\u020a\0\u020a\0\u0740\0\u0740\0\u0740\0\u020a\0\u11ac\0\u11e6" +
|
||||
"\0\u1220\0\u0cea";
|
||||
"\0\u0862\0\u089c\0\u08d6\0\u0910\0\u094a\0\u0984\0\u09be\0\u09f8" +
|
||||
"\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244\0\u0a32\0\u0244\0\u0244" +
|
||||
"\0\u0244\0\u0244\0\u0a6c\0\u0aa6\0\u0ae0\0\u0b1a\0\u0b54\0\u0b8e" +
|
||||
"\0\u0bc8\0\u0244\0\u0c02\0\u0c3c\0\u0c76\0\u0cb0\0\u0cea\0\u0d24" +
|
||||
"\0\u0d5e\0\u0d98\0\u0244\0\u0244\0\u0244\0\u0dd2\0\u0244\0\u0e0c" +
|
||||
"\0\u0e46\0\u0244\0\u0244\0\u0244\0\u0e80\0\u0244\0\u0244\0\u0244" +
|
||||
"\0\u0244\0\u0eba\0\u0ef4\0\u0f2e\0\u0f68\0\u0f68\0\u0fa2\0\u0fdc" +
|
||||
"\0\u1016\0\u1050\0\u108a\0\u10c4\0\u10fe\0\u1138\0\u1172\0\u11ac" +
|
||||
"\0\u1138\0\u11e6\0\u0244\0\u0244\0\u0244\0\u077a\0\u077a\0\u077a" +
|
||||
"\0\u077a\0\u1220\0\u0244\0\u077a\0\u077a\0\u077a\0\u0862\0\u089c" +
|
||||
"\0\u08d6\0\u0910\0\u0244\0\u125a\0\u094a\0\u1294\0\u0984\0\u12ce" +
|
||||
"\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244" +
|
||||
"\0\u1308\0\u1342\0\u137c\0\u13b6\0\u0c76\0\u0cb0\0\u0cea\0\u0d24" +
|
||||
"\0\u0244\0\u13f0\0\u0d5e\0\u142a\0\u0d98\0\u1464\0\u0244\0\u0244" +
|
||||
"\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244\0\u0244\0\u149e\0\u14d8" +
|
||||
"\0\u1512\0\u154c\0\u1586\0\u15c0\0\u15fa\0\u0244\0\u0244\0\u0244" +
|
||||
"\0\u077a\0\u077a\0\u077a\0\u0244\0\u1634\0\u166e\0\u16a8\0\u10c4";
|
||||
|
||||
private static int[] zzUnpackRowMap() {
|
||||
int[] result = new int[130];
|
||||
int[] result = new int[176];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@ -269,90 +279,102 @@ public class _M68kLexer implements FlexLexer {
|
||||
private static final int[] ZZ_TRANS = zzUnpackTrans();
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\1\12\2\13\1\14\1\15\1\16\1\12\5\16\1\12" +
|
||||
"\4\16\1\12\1\17\2\12\4\16\2\12\3\16\1\12" +
|
||||
"\1\16\10\12\2\20\11\12\1\20\1\12\5\16\1\12" +
|
||||
"\2\21\1\22\1\23\1\24\1\12\4\24\1\25\1\12" +
|
||||
"\4\24\1\12\1\26\2\12\4\24\2\12\3\24\1\12" +
|
||||
"\1\24\10\12\2\27\11\12\1\27\1\12\5\24\1\12" +
|
||||
"\2\30\1\31\1\23\1\32\1\12\4\32\1\33\1\12" +
|
||||
"\4\32\4\12\4\32\2\12\3\32\1\12\1\32\10\12" +
|
||||
"\1\34\14\12\5\32\1\12\2\30\1\31\1\35\15\12" +
|
||||
"\1\36\25\12\1\34\22\12\2\30\1\31\1\23\1\37" +
|
||||
"\1\40\1\41\1\42\1\43\2\44\1\12\2\44\1\45" +
|
||||
"\1\44\1\46\1\47\1\12\1\50\1\41\3\44\1\51" +
|
||||
"\1\40\1\37\1\43\1\44\1\40\1\44\1\52\1\53" +
|
||||
"\1\12\1\54\1\55\1\56\1\57\1\60\1\34\1\61" +
|
||||
"\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71" +
|
||||
"\1\72\1\73\1\74\2\75\1\44\1\76\1\44\1\12" +
|
||||
"\2\30\1\31\1\23\2\12\1\77\5\12\1\100\3\12" +
|
||||
"\1\101\3\12\1\77\11\12\1\100\10\12\1\34\22\12" +
|
||||
"\2\30\1\31\1\23\1\44\1\40\5\44\1\12\4\44" +
|
||||
"\1\46\1\44\1\12\1\50\4\44\1\51\1\40\3\44" +
|
||||
"\1\40\1\44\1\52\1\53\1\12\1\54\1\55\1\56" +
|
||||
"\1\57\1\60\1\34\1\12\1\62\1\63\1\64\1\65" +
|
||||
"\1\66\1\67\1\70\1\71\1\72\1\73\1\74\5\44" +
|
||||
"\1\102\1\103\1\30\1\31\1\23\34\102\1\104\1\102" +
|
||||
"\1\105\1\106\1\107\1\102\1\60\1\34\21\102\1\12" +
|
||||
"\2\30\1\31\66\12\74\0\1\13\73\0\1\15\71\0" +
|
||||
"\1\110\14\16\1\111\1\0\1\112\1\113\4\16\1\0" +
|
||||
"\6\16\25\0\5\16\5\0\1\114\1\0\5\114\1\0" +
|
||||
"\4\114\4\0\4\114\2\0\3\114\1\0\1\114\25\0" +
|
||||
"\5\114\1\20\3\0\66\20\2\0\1\21\73\0\1\23" +
|
||||
"\72\0\1\24\1\25\4\24\2\25\4\24\1\0\1\115" +
|
||||
"\1\112\1\116\4\24\1\0\1\25\3\24\1\25\1\24" +
|
||||
"\25\0\5\24\5\0\14\25\2\0\1\112\1\116\4\25" +
|
||||
"\1\0\6\25\25\0\5\25\5\0\1\117\1\0\5\117" +
|
||||
"\1\0\4\117\4\0\4\117\2\0\3\117\1\0\1\117" +
|
||||
"\25\0\5\117\1\27\3\0\66\27\2\0\1\30\74\0" +
|
||||
"\1\32\1\33\4\32\2\33\4\32\1\0\1\115\2\0" +
|
||||
"\4\32\1\0\1\33\3\32\1\33\1\32\25\0\5\32" +
|
||||
"\5\0\14\33\4\0\4\33\1\0\6\33\25\0\5\33" +
|
||||
"\1\34\3\0\66\34\4\0\1\35\112\0\2\120\1\121" +
|
||||
"\1\122\46\0\1\44\1\123\12\44\3\0\5\44\1\0" +
|
||||
"\1\123\5\44\25\0\5\44\6\0\1\40\23\0\1\40" +
|
||||
"\3\0\1\40\40\0\3\44\1\123\10\44\3\0\5\44" +
|
||||
"\1\0\6\44\25\0\2\44\1\124\2\44\5\0\14\44" +
|
||||
"\3\0\5\44\1\0\6\44\25\0\2\125\3\44\5\0" +
|
||||
"\1\44\1\126\12\44\3\0\5\44\1\0\1\126\5\44" +
|
||||
"\25\0\5\44\5\0\14\44\3\0\5\44\1\0\6\44" +
|
||||
"\25\0\5\44\5\0\2\44\1\127\11\44\3\0\1\44" +
|
||||
"\1\127\3\44\1\0\6\44\25\0\5\44\21\0\1\130" +
|
||||
"\55\0\14\44\3\0\1\44\2\131\1\132\1\133\1\0" +
|
||||
"\6\44\25\0\5\44\6\0\1\134\17\0\1\134\3\0" +
|
||||
"\6\134\26\0\1\134\35\0\1\135\45\0\1\136\23\0" +
|
||||
"\1\136\37\0\41\137\1\140\1\141\27\137\42\142\1\143" +
|
||||
"\1\140\26\142\42\144\1\145\1\144\1\140\25\144\21\0" +
|
||||
"\1\146\23\0\1\147\1\150\44\0\1\151\24\0\1\152" +
|
||||
"\75\0\1\153\72\0\1\154\37\0\1\150\55\0\14\44" +
|
||||
"\3\0\5\44\1\0\6\44\25\0\2\155\3\44\5\0" +
|
||||
"\14\44\3\0\2\44\1\156\2\44\1\0\6\44\25\0" +
|
||||
"\4\44\1\156\15\0\1\157\21\0\1\157\50\0\1\160" +
|
||||
"\53\0\2\102\3\0\42\102\2\0\21\102\2\104\3\137" +
|
||||
"\34\104\1\102\1\161\4\104\2\137\21\104\2\105\3\142" +
|
||||
"\35\105\1\162\1\102\3\105\2\142\21\105\2\106\3\144" +
|
||||
"\35\106\1\163\1\106\1\102\2\106\2\144\21\106\2\107" +
|
||||
"\3\164\35\107\1\165\3\107\1\102\2\164\21\107\4\0" +
|
||||
"\1\110\2\0\1\166\5\0\1\167\3\0\1\111\3\0" +
|
||||
"\1\166\11\0\1\167\36\0\1\111\110\0\1\170\71\0" +
|
||||
"\1\171\53\0\14\114\2\0\1\171\1\0\4\114\1\0" +
|
||||
"\6\114\25\0\5\114\1\172\3\0\66\172\5\0\14\117" +
|
||||
"\2\0\1\171\1\0\4\117\1\0\6\117\25\0\5\117" +
|
||||
"\5\0\3\44\1\173\10\44\3\0\5\44\1\0\6\44" +
|
||||
"\25\0\5\44\1\137\3\0\66\137\1\142\3\0\66\142" +
|
||||
"\1\144\3\0\66\144\5\0\14\44\3\0\5\44\1\0" +
|
||||
"\6\44\25\0\2\44\1\174\2\44\5\0\14\44\3\0" +
|
||||
"\5\44\1\0\6\44\25\0\2\44\1\175\2\44\20\0" +
|
||||
"\1\176\70\0\1\176\52\0\1\104\1\102\2\0\1\137" +
|
||||
"\42\104\2\137\21\104\1\105\1\102\2\0\1\142\42\105" +
|
||||
"\2\142\21\105\1\106\1\102\2\0\1\144\42\106\2\144" +
|
||||
"\21\106\42\164\1\177\3\164\1\140\23\164\1\107\1\102" +
|
||||
"\2\0\1\164\42\107\2\164\21\107\15\0\1\200\21\0" +
|
||||
"\1\200\50\0\1\201\53\0\1\164\3\0\66\164\20\0" +
|
||||
"\1\202\70\0\1\202\52\0";
|
||||
"\1\13\2\14\1\15\1\16\1\17\1\13\5\17\1\13" +
|
||||
"\4\17\1\13\1\20\2\13\4\17\2\13\3\17\1\13" +
|
||||
"\1\17\10\13\2\21\7\13\1\21\3\13\5\17\1\13" +
|
||||
"\2\22\1\23\1\24\1\25\1\13\4\25\1\26\1\13" +
|
||||
"\4\25\1\13\1\27\2\13\4\25\2\13\3\25\1\13" +
|
||||
"\1\25\10\13\2\30\7\13\1\30\3\13\5\25\1\13" +
|
||||
"\2\31\1\32\1\24\1\33\1\13\4\33\1\34\1\13" +
|
||||
"\4\33\4\13\4\33\2\13\3\33\1\13\1\33\10\13" +
|
||||
"\1\35\14\13\5\33\1\13\2\31\1\32\1\36\15\13" +
|
||||
"\1\37\25\13\1\35\22\13\2\31\1\32\1\24\1\40" +
|
||||
"\1\41\1\42\1\43\1\44\2\45\1\13\2\45\1\46" +
|
||||
"\1\45\1\47\1\50\1\13\1\51\1\42\3\45\1\52" +
|
||||
"\1\41\1\40\1\44\1\45\1\41\1\45\1\53\1\54" +
|
||||
"\1\13\1\55\1\56\1\57\1\60\1\61\1\35\1\62" +
|
||||
"\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72" +
|
||||
"\1\73\1\74\1\75\2\76\1\45\1\77\1\45\1\13" +
|
||||
"\2\31\1\32\1\24\2\13\1\100\5\13\1\101\3\13" +
|
||||
"\1\102\3\13\1\100\11\13\1\101\10\13\1\35\22\13" +
|
||||
"\2\31\1\32\1\24\1\103\1\104\5\103\1\13\4\103" +
|
||||
"\1\13\1\103\1\13\1\105\4\103\1\106\1\104\3\103" +
|
||||
"\1\104\1\103\1\107\1\110\1\13\1\111\1\112\2\13" +
|
||||
"\1\61\1\35\1\13\1\63\1\64\1\113\1\114\1\67" +
|
||||
"\1\70\1\71\1\115\3\13\5\103\1\13\2\31\1\32" +
|
||||
"\1\24\14\13\1\116\7\13\1\117\13\13\1\120\1\121" +
|
||||
"\1\122\1\35\1\13\1\123\1\124\1\65\1\125\1\126" +
|
||||
"\1\127\1\130\1\131\1\132\1\133\1\134\5\13\1\135" +
|
||||
"\1\136\1\31\1\32\1\24\34\135\1\137\1\135\1\140" +
|
||||
"\1\141\1\142\1\135\1\61\1\35\21\135\1\13\2\31" +
|
||||
"\1\32\66\13\74\0\1\14\73\0\1\16\71\0\1\143" +
|
||||
"\14\17\1\144\1\0\1\145\1\146\4\17\1\0\6\17" +
|
||||
"\25\0\5\17\5\0\1\147\1\0\5\147\1\0\4\147" +
|
||||
"\4\0\4\147\2\0\3\147\1\0\1\147\25\0\5\147" +
|
||||
"\1\21\3\0\66\21\2\0\1\22\73\0\1\24\72\0" +
|
||||
"\1\25\1\26\4\25\2\26\4\25\1\0\1\150\1\145" +
|
||||
"\1\151\4\25\1\0\1\26\3\25\1\26\1\25\25\0" +
|
||||
"\5\25\5\0\14\26\2\0\1\145\1\151\4\26\1\0" +
|
||||
"\6\26\25\0\5\26\5\0\1\152\1\0\5\152\1\0" +
|
||||
"\4\152\4\0\4\152\2\0\3\152\1\0\1\152\25\0" +
|
||||
"\5\152\1\30\3\0\66\30\2\0\1\31\74\0\1\33" +
|
||||
"\1\34\4\33\2\34\4\33\1\0\1\150\2\0\4\33" +
|
||||
"\1\0\1\34\3\33\1\34\1\33\25\0\5\33\5\0" +
|
||||
"\14\34\4\0\4\34\1\0\6\34\25\0\5\34\1\35" +
|
||||
"\3\0\66\35\4\0\1\36\112\0\2\153\1\154\1\155" +
|
||||
"\46\0\1\45\1\156\12\45\3\0\5\45\1\0\1\156" +
|
||||
"\5\45\25\0\5\45\6\0\1\41\23\0\1\41\3\0" +
|
||||
"\1\41\40\0\3\45\1\156\10\45\3\0\5\45\1\0" +
|
||||
"\6\45\25\0\2\45\1\157\2\45\5\0\14\45\3\0" +
|
||||
"\5\45\1\0\6\45\25\0\2\160\3\45\5\0\1\45" +
|
||||
"\1\161\12\45\3\0\5\45\1\0\1\161\5\45\25\0" +
|
||||
"\5\45\5\0\14\45\3\0\5\45\1\0\6\45\25\0" +
|
||||
"\5\45\5\0\2\45\1\162\11\45\3\0\1\45\1\162" +
|
||||
"\3\45\1\0\6\45\25\0\5\45\21\0\1\163\55\0" +
|
||||
"\14\45\3\0\1\45\2\164\1\165\1\166\1\0\6\45" +
|
||||
"\25\0\5\45\6\0\1\167\17\0\1\167\3\0\6\167" +
|
||||
"\26\0\1\167\35\0\1\170\45\0\1\171\23\0\1\171" +
|
||||
"\37\0\41\172\1\173\1\174\27\172\42\175\1\176\1\173" +
|
||||
"\26\175\42\177\1\200\1\177\1\173\25\177\21\0\1\201" +
|
||||
"\23\0\1\202\1\203\44\0\1\204\24\0\1\205\44\0" +
|
||||
"\1\203\132\0\1\206\72\0\1\207\72\0\1\210\12\0" +
|
||||
"\14\45\3\0\5\45\1\0\6\45\25\0\2\211\3\45" +
|
||||
"\5\0\14\45\3\0\2\45\1\212\2\45\1\0\6\45" +
|
||||
"\25\0\4\45\1\212\15\0\1\213\21\0\1\213\50\0" +
|
||||
"\1\214\60\0\14\103\3\0\5\103\1\0\6\103\25\0" +
|
||||
"\5\103\6\0\1\104\23\0\1\104\3\0\1\104\41\0" +
|
||||
"\1\215\17\0\1\215\3\0\6\215\26\0\1\215\35\0" +
|
||||
"\1\216\45\0\1\217\23\0\1\217\37\0\41\220\1\221" +
|
||||
"\1\222\27\220\42\223\1\224\1\221\26\223\42\225\1\226" +
|
||||
"\1\225\1\221\25\225\21\0\1\227\71\0\1\230\23\0" +
|
||||
"\1\231\1\232\44\0\1\233\24\0\1\234\44\0\1\232" +
|
||||
"\132\0\1\235\72\0\1\236\72\0\1\117\5\0\2\135" +
|
||||
"\3\0\42\135\2\0\21\135\2\137\3\172\34\137\1\135" +
|
||||
"\1\237\4\137\2\172\21\137\2\140\3\175\35\140\1\240" +
|
||||
"\1\135\3\140\2\175\21\140\2\141\3\177\35\141\1\241" +
|
||||
"\1\141\1\135\2\141\2\177\21\141\2\142\3\242\35\142" +
|
||||
"\1\243\3\142\1\135\2\242\21\142\4\0\1\143\2\0" +
|
||||
"\1\244\5\0\1\245\3\0\1\144\3\0\1\244\11\0" +
|
||||
"\1\245\36\0\1\144\110\0\1\246\71\0\1\247\53\0" +
|
||||
"\14\147\2\0\1\247\1\0\4\147\1\0\6\147\25\0" +
|
||||
"\5\147\1\250\3\0\66\250\5\0\14\152\2\0\1\247" +
|
||||
"\1\0\4\152\1\0\6\152\25\0\5\152\5\0\3\45" +
|
||||
"\1\251\10\45\3\0\5\45\1\0\6\45\25\0\5\45" +
|
||||
"\1\172\3\0\66\172\1\175\3\0\66\175\1\177\3\0" +
|
||||
"\66\177\5\0\14\45\3\0\5\45\1\0\6\45\25\0" +
|
||||
"\2\45\1\252\2\45\5\0\14\45\3\0\5\45\1\0" +
|
||||
"\6\45\25\0\2\45\1\253\2\45\20\0\1\254\70\0" +
|
||||
"\1\254\52\0\1\220\3\0\66\220\1\223\3\0\66\223" +
|
||||
"\1\225\3\0\66\225\1\137\1\135\2\0\1\172\42\137" +
|
||||
"\2\172\21\137\1\140\1\135\2\0\1\175\42\140\2\175" +
|
||||
"\21\140\1\141\1\135\2\0\1\177\42\141\2\177\21\141" +
|
||||
"\42\242\1\255\3\242\1\173\23\242\1\142\1\135\2\0" +
|
||||
"\1\242\42\142\2\242\21\142\15\0\1\256\21\0\1\256" +
|
||||
"\50\0\1\257\53\0\1\242\3\0\66\242\20\0\1\260" +
|
||||
"\70\0\1\260\52\0";
|
||||
|
||||
private static int[] zzUnpackTrans() {
|
||||
int[] result = new int[4698];
|
||||
int[] result = new int[5858];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@ -390,14 +412,15 @@ public class _M68kLexer implements FlexLexer {
|
||||
private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||
"\11\0\2\11\5\1\1\11\6\1\1\11\27\1\2\11" +
|
||||
"\3\1\10\11\4\1\1\11\6\1\1\0\4\1\3\0" +
|
||||
"\3\11\5\1\1\11\6\1\1\0\1\11\5\0\7\11" +
|
||||
"\2\1\2\0\3\1\1\0\1\1\2\0\3\11\3\1" +
|
||||
"\1\11\4\0";
|
||||
"\12\0\2\11\5\1\1\11\6\1\1\11\27\1\5\11" +
|
||||
"\1\1\4\11\7\1\1\11\10\1\3\11\1\1\1\11" +
|
||||
"\2\1\3\11\1\1\4\11\11\1\1\0\4\1\3\0" +
|
||||
"\3\11\5\1\1\11\6\1\1\0\1\11\5\0\10\11" +
|
||||
"\2\1\2\0\3\1\1\0\1\11\5\0\10\11\3\1" +
|
||||
"\1\0\1\1\2\0\3\11\3\1\1\11\4\0";
|
||||
|
||||
private static int[] zzUnpackAttribute() {
|
||||
int[] result = new int[130];
|
||||
int[] result = new int[176];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
@ -720,40 +743,40 @@ public class _M68kLexer implements FlexLexer {
|
||||
return BAD_CHARACTER;
|
||||
}
|
||||
// fall through
|
||||
case 58:
|
||||
case 87:
|
||||
break;
|
||||
case 2: {
|
||||
return WHITE_SPACE;
|
||||
}
|
||||
// fall through
|
||||
case 59:
|
||||
case 88:
|
||||
break;
|
||||
case 3: {
|
||||
yybegin(NOSOL);
|
||||
return WHITE_SPACE;
|
||||
}
|
||||
// fall through
|
||||
case 60:
|
||||
case 89:
|
||||
break;
|
||||
case 4: {
|
||||
yybegin(INSTRPART);
|
||||
return GLOBAL_LABEL_DEF;
|
||||
}
|
||||
// fall through
|
||||
case 61:
|
||||
case 90:
|
||||
break;
|
||||
case 5: {
|
||||
return COMMENT;
|
||||
}
|
||||
// fall through
|
||||
case 62:
|
||||
case 91:
|
||||
break;
|
||||
case 6: {
|
||||
yybegin(YYINITIAL);
|
||||
return WHITE_SPACE;
|
||||
}
|
||||
// fall through
|
||||
case 63:
|
||||
case 92:
|
||||
break;
|
||||
case 7: {
|
||||
if (isAsmMnemonicWithSize(yytext())) {
|
||||
@ -777,317 +800,520 @@ public class _M68kLexer implements FlexLexer {
|
||||
return MACRO_INVOKATION;
|
||||
}
|
||||
// fall through
|
||||
case 64:
|
||||
case 93:
|
||||
break;
|
||||
case 8: {
|
||||
yybegin(MACROCALL);
|
||||
return MACRO_INVOKATION;
|
||||
}
|
||||
// fall through
|
||||
case 65:
|
||||
case 94:
|
||||
break;
|
||||
case 9: {
|
||||
yybegin(YYINITIAL);
|
||||
return COMMENT;
|
||||
}
|
||||
// fall through
|
||||
case 66:
|
||||
case 95:
|
||||
break;
|
||||
case 10: {
|
||||
yybegin(YYINITIAL);
|
||||
return EOL;
|
||||
}
|
||||
// fall through
|
||||
case 67:
|
||||
case 96:
|
||||
break;
|
||||
case 11: {
|
||||
yybegin(WAITEOL);
|
||||
return COMMENT;
|
||||
}
|
||||
// fall through
|
||||
case 68:
|
||||
case 97:
|
||||
break;
|
||||
case 12: {
|
||||
yybegin(ASMOPS);
|
||||
return WHITE_SPACE;
|
||||
}
|
||||
// fall through
|
||||
case 69:
|
||||
case 98:
|
||||
break;
|
||||
case 13: {
|
||||
return SYMBOL;
|
||||
}
|
||||
// fall through
|
||||
case 70:
|
||||
case 99:
|
||||
break;
|
||||
case 14: {
|
||||
return DECIMAL;
|
||||
}
|
||||
// fall through
|
||||
case 71:
|
||||
case 100:
|
||||
break;
|
||||
case 15: {
|
||||
return OP_ASSIGN;
|
||||
}
|
||||
// fall through
|
||||
case 72:
|
||||
case 101:
|
||||
break;
|
||||
case 16: {
|
||||
return OP_AR_MOD;
|
||||
}
|
||||
// fall through
|
||||
case 73:
|
||||
case 102:
|
||||
break;
|
||||
case 17: {
|
||||
return OP_CMP_LT;
|
||||
}
|
||||
// fall through
|
||||
case 74:
|
||||
case 103:
|
||||
break;
|
||||
case 18: {
|
||||
return OP_CMP_GT;
|
||||
}
|
||||
// fall through
|
||||
case 75:
|
||||
case 104:
|
||||
break;
|
||||
case 19: {
|
||||
return SEPARATOR;
|
||||
}
|
||||
// fall through
|
||||
case 76:
|
||||
case 105:
|
||||
break;
|
||||
case 20: {
|
||||
return HASH;
|
||||
}
|
||||
// fall through
|
||||
case 77:
|
||||
case 106:
|
||||
break;
|
||||
case 21: {
|
||||
return OP_BITWISE_AND;
|
||||
}
|
||||
// fall through
|
||||
case 78:
|
||||
break;
|
||||
case 22: {
|
||||
return OP_BITWISE_OR;
|
||||
}
|
||||
// fall through
|
||||
case 79:
|
||||
break;
|
||||
case 23: {
|
||||
return OP_UNARY_NOT;
|
||||
}
|
||||
// fall through
|
||||
case 80:
|
||||
break;
|
||||
case 24: {
|
||||
return OP_BITWISE_XOR;
|
||||
}
|
||||
// fall through
|
||||
case 81:
|
||||
case 107:
|
||||
break;
|
||||
case 25: {
|
||||
case 22: {
|
||||
return ROUND_L;
|
||||
}
|
||||
// fall through
|
||||
case 82:
|
||||
case 108:
|
||||
break;
|
||||
case 26: {
|
||||
case 23: {
|
||||
return ROUND_R;
|
||||
}
|
||||
// fall through
|
||||
case 83:
|
||||
case 109:
|
||||
break;
|
||||
case 27: {
|
||||
case 24: {
|
||||
return OP_UNARY_NOT;
|
||||
}
|
||||
// fall through
|
||||
case 110:
|
||||
break;
|
||||
case 25: {
|
||||
return OP_UNARY_COMPL;
|
||||
}
|
||||
// fall through
|
||||
case 84:
|
||||
case 111:
|
||||
break;
|
||||
case 28: {
|
||||
case 26: {
|
||||
return OP_PLUS;
|
||||
}
|
||||
// fall through
|
||||
case 85:
|
||||
case 112:
|
||||
break;
|
||||
case 29: {
|
||||
case 27: {
|
||||
return OP_MINUS;
|
||||
}
|
||||
// fall through
|
||||
case 86:
|
||||
case 113:
|
||||
break;
|
||||
case 30: {
|
||||
case 28: {
|
||||
return OP_AR_MUL;
|
||||
}
|
||||
// fall through
|
||||
case 87:
|
||||
case 114:
|
||||
break;
|
||||
case 29: {
|
||||
return OP_BITWISE_AND;
|
||||
}
|
||||
// fall through
|
||||
case 115:
|
||||
break;
|
||||
case 30: {
|
||||
return OP_BITWISE_OR;
|
||||
}
|
||||
// fall through
|
||||
case 116:
|
||||
break;
|
||||
case 31: {
|
||||
return OP_AR_DIV;
|
||||
}
|
||||
// fall through
|
||||
case 88:
|
||||
case 117:
|
||||
break;
|
||||
case 32: {
|
||||
yybegin(EXPR);
|
||||
return OP_ASSIGN;
|
||||
}
|
||||
// fall through
|
||||
case 89:
|
||||
case 118:
|
||||
break;
|
||||
case 33: {
|
||||
yybegin(EXPR_OP);
|
||||
return SYMBOL;
|
||||
}
|
||||
// fall through
|
||||
case 119:
|
||||
break;
|
||||
case 34: {
|
||||
yybegin(EXPR_OP);
|
||||
return DECIMAL;
|
||||
}
|
||||
// fall through
|
||||
case 120:
|
||||
break;
|
||||
case 35: {
|
||||
yybegin(EXPR_OP);
|
||||
return ROUND_R;
|
||||
}
|
||||
// fall through
|
||||
case 121:
|
||||
break;
|
||||
case 36: {
|
||||
yybegin(EXPR_OP);
|
||||
return CURRENT_PC_SYMBOL;
|
||||
}
|
||||
// fall through
|
||||
case 122:
|
||||
break;
|
||||
case 37: {
|
||||
yybegin(EXPR);
|
||||
return OP_AR_MOD;
|
||||
}
|
||||
// fall through
|
||||
case 123:
|
||||
break;
|
||||
case 38: {
|
||||
yybegin(EXPR);
|
||||
return OP_CMP_LT;
|
||||
}
|
||||
// fall through
|
||||
case 124:
|
||||
break;
|
||||
case 39: {
|
||||
yybegin(EXPR);
|
||||
return OP_CMP_GT;
|
||||
}
|
||||
// fall through
|
||||
case 125:
|
||||
break;
|
||||
case 40: {
|
||||
yybegin(EXPR);
|
||||
return SEPARATOR;
|
||||
}
|
||||
// fall through
|
||||
case 126:
|
||||
break;
|
||||
case 41: {
|
||||
yybegin(EXPR);
|
||||
return OP_BITWISE_XOR;
|
||||
}
|
||||
// fall through
|
||||
case 127:
|
||||
break;
|
||||
case 42: {
|
||||
yybegin(EXPR);
|
||||
return ROUND_L;
|
||||
}
|
||||
// fall through
|
||||
case 128:
|
||||
break;
|
||||
case 43: {
|
||||
yybegin(EXPR);
|
||||
return OP_BITWISE_OR;
|
||||
}
|
||||
// fall through
|
||||
case 129:
|
||||
break;
|
||||
case 44: {
|
||||
yybegin(EXPR);
|
||||
return OP_UNARY_COMPL;
|
||||
}
|
||||
// fall through
|
||||
case 130:
|
||||
break;
|
||||
case 45: {
|
||||
yybegin(EXPR);
|
||||
return OP_PLUS;
|
||||
}
|
||||
// fall through
|
||||
case 131:
|
||||
break;
|
||||
case 46: {
|
||||
yybegin(EXPR);
|
||||
return OP_MINUS;
|
||||
}
|
||||
// fall through
|
||||
case 132:
|
||||
break;
|
||||
case 47: {
|
||||
yybegin(EXPR);
|
||||
return OP_AR_MUL;
|
||||
}
|
||||
// fall through
|
||||
case 133:
|
||||
break;
|
||||
case 48: {
|
||||
yybegin(EXPR);
|
||||
return OP_BITWISE_AND;
|
||||
}
|
||||
// fall through
|
||||
case 134:
|
||||
break;
|
||||
case 49: {
|
||||
yybegin(EXPR);
|
||||
return OP_AR_DIV;
|
||||
}
|
||||
// fall through
|
||||
case 135:
|
||||
break;
|
||||
case 50: {
|
||||
return STRINGLIT;
|
||||
}
|
||||
// fall through
|
||||
case 90:
|
||||
case 136:
|
||||
break;
|
||||
case 34: {
|
||||
case 51: {
|
||||
yybegin(ASSIGNMENT);
|
||||
yypushback(pushbackAssignment(yytext()));
|
||||
return SYMBOLDEF;
|
||||
}
|
||||
// fall through
|
||||
case 91:
|
||||
case 137:
|
||||
break;
|
||||
case 35: {
|
||||
case 52: {
|
||||
yybegin(INSTRPART);
|
||||
return LOCAL_LABEL_DEF;
|
||||
}
|
||||
// fall through
|
||||
case 92:
|
||||
case 138:
|
||||
break;
|
||||
case 36: {
|
||||
case 53: {
|
||||
return OPSIZE_BS;
|
||||
}
|
||||
// fall through
|
||||
case 93:
|
||||
case 139:
|
||||
break;
|
||||
case 37: {
|
||||
case 54: {
|
||||
return OPSIZE_W;
|
||||
}
|
||||
// fall through
|
||||
case 94:
|
||||
case 140:
|
||||
break;
|
||||
case 38: {
|
||||
case 55: {
|
||||
return OPSIZE_L;
|
||||
}
|
||||
// fall through
|
||||
case 95:
|
||||
case 141:
|
||||
break;
|
||||
case 39: {
|
||||
case 56: {
|
||||
return AREG;
|
||||
}
|
||||
// fall through
|
||||
case 96:
|
||||
case 142:
|
||||
break;
|
||||
case 40: {
|
||||
case 57: {
|
||||
return REG_SR;
|
||||
}
|
||||
// fall through
|
||||
case 97:
|
||||
case 143:
|
||||
break;
|
||||
case 41: {
|
||||
case 58: {
|
||||
return PC;
|
||||
}
|
||||
// fall through
|
||||
case 98:
|
||||
case 144:
|
||||
break;
|
||||
case 42: {
|
||||
case 59: {
|
||||
return DREG;
|
||||
}
|
||||
// fall through
|
||||
case 99:
|
||||
case 145:
|
||||
break;
|
||||
case 43: {
|
||||
case 60: {
|
||||
return OP_CMP_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 100:
|
||||
case 146:
|
||||
break;
|
||||
case 44: {
|
||||
case 61: {
|
||||
return HEXADECIMAL;
|
||||
}
|
||||
// fall through
|
||||
case 101:
|
||||
case 147:
|
||||
break;
|
||||
case 45: {
|
||||
case 62: {
|
||||
return BINARY;
|
||||
}
|
||||
// fall through
|
||||
case 102:
|
||||
case 148:
|
||||
break;
|
||||
case 46: {
|
||||
case 63: {
|
||||
return OCTAL;
|
||||
}
|
||||
// fall through
|
||||
case 103:
|
||||
case 149:
|
||||
break;
|
||||
case 47: {
|
||||
case 64: {
|
||||
return OP_CMP_LT_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 104:
|
||||
case 150:
|
||||
break;
|
||||
case 48: {
|
||||
case 65: {
|
||||
return OP_AR_SHIFT_L;
|
||||
}
|
||||
// fall through
|
||||
case 105:
|
||||
case 151:
|
||||
break;
|
||||
case 49: {
|
||||
case 66: {
|
||||
return OP_CMP_NOT_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 106:
|
||||
case 152:
|
||||
break;
|
||||
case 50: {
|
||||
case 67: {
|
||||
return OP_CMP_GT_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 107:
|
||||
case 153:
|
||||
break;
|
||||
case 51: {
|
||||
case 68: {
|
||||
return OP_AR_SHIFT_R;
|
||||
}
|
||||
// fall through
|
||||
case 108:
|
||||
case 154:
|
||||
break;
|
||||
case 52: {
|
||||
case 69: {
|
||||
return OP_LOGICAL_AND;
|
||||
}
|
||||
// fall through
|
||||
case 109:
|
||||
case 155:
|
||||
break;
|
||||
case 53: {
|
||||
case 70: {
|
||||
return OP_LOGICAL_OR;
|
||||
}
|
||||
// fall through
|
||||
case 110:
|
||||
case 156:
|
||||
break;
|
||||
case 54: {
|
||||
case 71: {
|
||||
yybegin(EXPR_OP);
|
||||
return HEXADECIMAL;
|
||||
}
|
||||
// fall through
|
||||
case 157:
|
||||
break;
|
||||
case 72: {
|
||||
yybegin(EXPR_OP);
|
||||
return BINARY;
|
||||
}
|
||||
// fall through
|
||||
case 158:
|
||||
break;
|
||||
case 73: {
|
||||
yybegin(EXPR_OP);
|
||||
return OCTAL;
|
||||
}
|
||||
// fall through
|
||||
case 159:
|
||||
break;
|
||||
case 74: {
|
||||
yybegin(EXPR_OP);
|
||||
return STRINGLIT;
|
||||
}
|
||||
// fall through
|
||||
case 160:
|
||||
break;
|
||||
case 75: {
|
||||
yybegin(EXPR);
|
||||
return OP_CMP_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 161:
|
||||
break;
|
||||
case 76: {
|
||||
yybegin(EXPR);
|
||||
return OP_CMP_LT_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 162:
|
||||
break;
|
||||
case 77: {
|
||||
yybegin(EXPR);
|
||||
return OP_AR_SHIFT_L;
|
||||
}
|
||||
// fall through
|
||||
case 163:
|
||||
break;
|
||||
case 78: {
|
||||
yybegin(EXPR);
|
||||
return OP_CMP_NOT_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 164:
|
||||
break;
|
||||
case 79: {
|
||||
yybegin(EXPR);
|
||||
return OP_CMP_GT_EQ;
|
||||
}
|
||||
// fall through
|
||||
case 165:
|
||||
break;
|
||||
case 80: {
|
||||
yybegin(EXPR);
|
||||
return OP_AR_SHIFT_R;
|
||||
}
|
||||
// fall through
|
||||
case 166:
|
||||
break;
|
||||
case 81: {
|
||||
yybegin(EXPR);
|
||||
return OP_LOGICAL_AND;
|
||||
}
|
||||
// fall through
|
||||
case 167:
|
||||
break;
|
||||
case 82: {
|
||||
yybegin(EXPR);
|
||||
return OP_LOGICAL_OR;
|
||||
}
|
||||
// fall through
|
||||
case 168:
|
||||
break;
|
||||
case 83: {
|
||||
return REG_USP;
|
||||
}
|
||||
// fall through
|
||||
case 111:
|
||||
case 169:
|
||||
break;
|
||||
case 55: {
|
||||
case 84: {
|
||||
return REG_CCR;
|
||||
}
|
||||
// fall through
|
||||
case 112:
|
||||
case 170:
|
||||
break;
|
||||
case 56: {
|
||||
case 85: {
|
||||
return REG_VBR;
|
||||
}
|
||||
// fall through
|
||||
case 113:
|
||||
case 171:
|
||||
break;
|
||||
case 57: {
|
||||
case 86: {
|
||||
yybegin(EXPR);
|
||||
return EQU;
|
||||
}
|
||||
// fall through
|
||||
case 114:
|
||||
case 172:
|
||||
break;
|
||||
default:
|
||||
zzScanError(ZZ_NO_MATCH);
|
||||
|
@ -1194,13 +1194,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r || p;
|
||||
}
|
||||
|
||||
// SYMBOL
|
||||
// SYMBOL|CURRENT_PC_SYMBOL
|
||||
public static boolean ref_expr(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ref_expr")) return false;
|
||||
if (!nextTokenIsSmart(b, SYMBOL)) return false;
|
||||
if (!nextTokenIsSmart(b, CURRENT_PC_SYMBOL, SYMBOL)) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b, l, _NONE_, REF_EXPR, "<expression>");
|
||||
r = consumeTokenSmart(b, SYMBOL);
|
||||
if (!r) r = consumeTokenSmart(b, CURRENT_PC_SYMBOL);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
@ -72,6 +72,7 @@ public interface M68kTypes {
|
||||
IElementType AREG = new M68kTokenType("AREG");
|
||||
IElementType BINARY = new M68kTokenType("BINARY");
|
||||
IElementType COMMENT = new M68kTokenType("COMMENT");
|
||||
IElementType CURRENT_PC_SYMBOL = new M68kTokenType("CURRENT_PC_SYMBOL");
|
||||
IElementType DATA_DIRECTIVE = new M68kTokenType("DATA_DIRECTIVE");
|
||||
IElementType DECIMAL = new M68kTokenType("DECIMAL");
|
||||
IElementType DREG = new M68kTokenType("DREG");
|
||||
|
@ -49,7 +49,7 @@ PLAINPARAM=(`([^`\\]|\\.)*`|'([^'\\]|\\.)*'|\"([^\"\\]|\\.)*\")|<([^>\\]|\\.)*>|
|
||||
COMMENT=([;].*+)
|
||||
HASH_COMMENT=([#;*].*+)
|
||||
|
||||
%state NOSOL,INSTRPART,ASMINSTR,ASMOPS,ASSIGNMENT,EXPR,MACROCALL,WAITEOL
|
||||
%state NOSOL,INSTRPART,ASMINSTR,ASMOPS,ASSIGNMENT,EXPR,EXPR_OP,MACROCALL,WAITEOL
|
||||
|
||||
%%
|
||||
<YYINITIAL> {
|
||||
@ -133,45 +133,69 @@ HASH_COMMENT=([#;*].*+)
|
||||
{WHITE_SPACE} { return WHITE_SPACE; } // FIXME space optionally introduces comment
|
||||
{EOL} { yybegin(YYINITIAL); return EOL; }
|
||||
|
||||
{BINARY} { return BINARY; }
|
||||
{HEXADECIMAL} { return HEXADECIMAL; }
|
||||
{OCTAL} { return OCTAL; }
|
||||
{DECIMAL} { return DECIMAL; }
|
||||
{STRINGLIT} { return STRINGLIT; }
|
||||
{BINARY} { yybegin(EXPR_OP); return BINARY; }
|
||||
{HEXADECIMAL} { yybegin(EXPR_OP); return HEXADECIMAL; }
|
||||
{OCTAL} { yybegin(EXPR_OP); return OCTAL; }
|
||||
{DECIMAL} { yybegin(EXPR_OP); return DECIMAL; }
|
||||
{STRINGLIT} { yybegin(EXPR_OP); return STRINGLIT; }
|
||||
|
||||
"<<" { return OP_AR_SHIFT_L; }
|
||||
">>" { return OP_AR_SHIFT_R; }
|
||||
"&&" { return OP_LOGICAL_AND; }
|
||||
"||" { return OP_LOGICAL_OR; }
|
||||
"==" { return OP_CMP_EQ; }
|
||||
"<>" { return OP_CMP_NOT_EQ; }
|
||||
">=" { return OP_CMP_GT_EQ; }
|
||||
"<=" { return OP_CMP_LT_EQ; }
|
||||
"!=" { return OP_CMP_NOT_EQ; }
|
||||
"<" { return OP_CMP_LT; }
|
||||
">" { return OP_CMP_GT; }
|
||||
"&" { return OP_BITWISE_AND; }
|
||||
"|" { return OP_BITWISE_OR; }
|
||||
"^" { return OP_BITWISE_XOR; }
|
||||
// ":" { return COLON; }
|
||||
// ";" { return SEMICOLON; }
|
||||
// "[" { return SQUARE_L; }
|
||||
// "]" { return SQUARE_R; }
|
||||
"," { return SEPARATOR; }
|
||||
"(" { return ROUND_L; }
|
||||
")" { return ROUND_R; }
|
||||
// "." { return DOT; }
|
||||
// "$" { return DOLLAR; }
|
||||
"=" { return OP_ASSIGN; }
|
||||
")" { yybegin(EXPR_OP); return ROUND_R; }
|
||||
"!" { return OP_UNARY_NOT; }
|
||||
"~" { return OP_UNARY_COMPL; }
|
||||
"+" { return OP_PLUS; }
|
||||
"-" { return OP_MINUS; }
|
||||
"*" { return OP_AR_MUL; }
|
||||
"/" { return OP_AR_DIV; }
|
||||
"%" { return OP_AR_MOD; }
|
||||
"*" { yybegin(EXPR_OP); return CURRENT_PC_SYMBOL; }
|
||||
|
||||
{SYMBOL} { return SYMBOL; }
|
||||
{SYMBOL} { yybegin(EXPR_OP); return SYMBOL; }
|
||||
|
||||
{COMMENT} { yybegin(WAITEOL); return COMMENT; }
|
||||
}
|
||||
|
||||
<EXPR_OP> {
|
||||
{WHITE_SPACE} { return WHITE_SPACE; } // FIXME space optionally introduces comment
|
||||
{EOL} { yybegin(YYINITIAL); return EOL; }
|
||||
|
||||
// {BINARY} { return BINARY; }
|
||||
// {HEXADECIMAL} { return HEXADECIMAL; }
|
||||
// {OCTAL} { return OCTAL; }
|
||||
// {DECIMAL} { return DECIMAL; }
|
||||
// {STRINGLIT} { return STRINGLIT; }
|
||||
|
||||
"<<" { yybegin(EXPR); return OP_AR_SHIFT_L; }
|
||||
">>" { yybegin(EXPR); return OP_AR_SHIFT_R; }
|
||||
"&&" { yybegin(EXPR); return OP_LOGICAL_AND; }
|
||||
"||" { yybegin(EXPR); return OP_LOGICAL_OR; }
|
||||
"==" { yybegin(EXPR); return OP_CMP_EQ; }
|
||||
"<>" { yybegin(EXPR); return OP_CMP_NOT_EQ; }
|
||||
">=" { yybegin(EXPR); return OP_CMP_GT_EQ; }
|
||||
"<=" { yybegin(EXPR); return OP_CMP_LT_EQ; }
|
||||
"!=" { yybegin(EXPR); return OP_CMP_NOT_EQ; }
|
||||
"<" { yybegin(EXPR); return OP_CMP_LT; }
|
||||
">" { yybegin(EXPR); return OP_CMP_GT; }
|
||||
"&" { yybegin(EXPR); return OP_BITWISE_AND; }
|
||||
"|"|"!" { yybegin(EXPR); return OP_BITWISE_OR; }
|
||||
"^" { yybegin(EXPR); return OP_BITWISE_XOR; }
|
||||
// ":" { return COLON; }
|
||||
// ";" { return SEMICOLON; }
|
||||
// "[" { return SQUARE_L; }
|
||||
// "]" { return SQUARE_R; }
|
||||
"," { yybegin(EXPR); return SEPARATOR; }
|
||||
"(" { yybegin(EXPR); return ROUND_L; }
|
||||
")" { return ROUND_R; }
|
||||
// "." { return DOT; }
|
||||
// "$" { return DOLLAR; }
|
||||
"=" { yybegin(EXPR); return OP_ASSIGN; }
|
||||
"~" { yybegin(EXPR); return OP_UNARY_COMPL; }
|
||||
"+" { yybegin(EXPR); return OP_PLUS; }
|
||||
"-" { yybegin(EXPR); return OP_MINUS; }
|
||||
"*" { yybegin(EXPR); return OP_AR_MUL; }
|
||||
"%"|"//" { yybegin(EXPR); return OP_AR_MOD; }
|
||||
"/" { yybegin(EXPR); return OP_AR_DIV; }
|
||||
|
||||
// {SYMBOL} { return SYMBOL; }
|
||||
|
||||
{COMMENT} { yybegin(WAITEOL); return COMMENT; }
|
||||
}
|
||||
@ -228,8 +252,8 @@ HASH_COMMENT=([#;*].*+)
|
||||
"+" { return OP_PLUS; }
|
||||
"-" { return OP_MINUS; }
|
||||
"*" { return OP_AR_MUL; }
|
||||
"%"|"//" { return OP_AR_MOD; }
|
||||
"/" { return OP_AR_DIV; }
|
||||
"%" { return OP_AR_MOD; }
|
||||
|
||||
{SYMBOL} { return SYMBOL; }
|
||||
|
||||
|
@ -253,5 +253,5 @@ binary_logical_or_expr ::= expr OP_LOGICAL_OR expr
|
||||
|
||||
//macrobrace_expr ::= OP_CMP_LT expr OP_CMP_GT
|
||||
paren_expr ::= ROUND_L expr ROUND_R //{pin=1 recoverWhile=statement_recover}
|
||||
ref_expr ::= SYMBOL
|
||||
ref_expr ::= SYMBOL|CURRENT_PC_SYMBOL
|
||||
literal_expr ::= BINARY|DECIMAL|HEXADECIMAL|OCTAL|STRINGLIT
|
||||
|
@ -18,6 +18,11 @@ internal class AssignmentTest : AbstractParsingTest() {
|
||||
testGoodSyntax(testCase, "FOO=123+10\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun assignment_with_local_label(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO=.local-.bar\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun assignment_via_equ(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO equ BAR\n")
|
||||
|
@ -0,0 +1,46 @@
|
||||
package de.platon42.intellij.plugins.m68k.parser
|
||||
|
||||
import de.platon42.intellij.jupiter.MyTestCase
|
||||
import de.platon42.intellij.jupiter.ParsingTestExtension
|
||||
import de.platon42.intellij.jupiter.TestDataSubPath
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
@TestDataSubPath("expressions")
|
||||
internal class ExpressionsTest : AbstractParsingTest() {
|
||||
|
||||
@Test
|
||||
internal fun pure_decimal_number_literal(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO = 10\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun pure_hexadecimal_number_literal(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO = $1234\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun pure_octal_number_literal(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO = @777\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun pure_binary_number_literal(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO = %11001100\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun pure_string_literal(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO = 'string'\n"
|
||||
+ "FOO=\"bar\"\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun math_expression(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "FOO = -(~(!!(+(1//~WIDTH^@123+3*4/2+(NARF%10|32!21))<<2)>>1)&$1f)\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun current_pc_symbol_relative_expression(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, " dc.w *-.label\n")
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
M68kBinarySubExprImpl(BINARY_SUB_EXPR)
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
PsiElement(M68kTokenType.SYMBOL)('.local')
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
PsiElement(M68kTokenType.SYMBOL)('.bar')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -0,0 +1,13 @@
|
||||
Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.w')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kBinarySubExprImpl(BINARY_SUB_EXPR)
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
PsiElement(M68kTokenType.CURRENT_PC_SYMBOL)('*')
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
PsiElement(M68kTokenType.SYMBOL)('.label')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
85
src/test/resources/parser/expressions/math_expression.txt
Normal file
85
src/test/resources/parser/expressions/math_expression.txt
Normal file
@ -0,0 +1,85 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kParenExprImpl(PAREN_EXPR)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
M68kBinaryBitwiseAndExprImpl(BINARY_BITWISE_AND_EXPR)
|
||||
M68kUnaryComplExprImpl(UNARY_COMPL_EXPR)
|
||||
PsiElement(M68kTokenType.OP_UNARY_COMPL)('~')
|
||||
M68kParenExprImpl(PAREN_EXPR)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
M68kBinaryShiftRExprImpl(BINARY_SHIFT_R_EXPR)
|
||||
M68kUnaryNotExprImpl(UNARY_NOT_EXPR)
|
||||
PsiElement(M68kTokenType.OP_UNARY_NOT)('!')
|
||||
M68kUnaryNotExprImpl(UNARY_NOT_EXPR)
|
||||
PsiElement(M68kTokenType.OP_UNARY_NOT)('!')
|
||||
M68kParenExprImpl(PAREN_EXPR)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
M68kBinaryShiftLExprImpl(BINARY_SHIFT_L_EXPR)
|
||||
M68kUnaryPlusExprImpl(UNARY_PLUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_PLUS)('+')
|
||||
M68kParenExprImpl(PAREN_EXPR)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
M68kBinaryAddExprImpl(BINARY_ADD_EXPR)
|
||||
M68kBinaryAddExprImpl(BINARY_ADD_EXPR)
|
||||
M68kBinaryModExprImpl(BINARY_MOD_EXPR)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1')
|
||||
PsiElement(M68kTokenType.OP_AR_MOD)('//')
|
||||
M68kBinaryBitwiseXorExprImpl(BINARY_BITWISE_XOR_EXPR)
|
||||
M68kUnaryComplExprImpl(UNARY_COMPL_EXPR)
|
||||
PsiElement(M68kTokenType.OP_UNARY_COMPL)('~')
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
PsiElement(M68kTokenType.SYMBOL)('WIDTH')
|
||||
PsiElement(M68kTokenType.OP_BITWISE_XOR)('^')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.OCTAL)('@123')
|
||||
PsiElement(M68kTokenType.OP_PLUS)('+')
|
||||
M68kBinaryDivExprImpl(BINARY_DIV_EXPR)
|
||||
M68kBinaryMulExprImpl(BINARY_MUL_EXPR)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('3')
|
||||
PsiElement(M68kTokenType.OP_AR_MUL)('*')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.OP_AR_DIV)('/')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('2')
|
||||
PsiElement(M68kTokenType.OP_PLUS)('+')
|
||||
M68kParenExprImpl(PAREN_EXPR)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
M68kBinaryModExprImpl(BINARY_MOD_EXPR)
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
PsiElement(M68kTokenType.SYMBOL)('NARF')
|
||||
PsiElement(M68kTokenType.OP_AR_MOD)('%')
|
||||
M68kBinaryBitwiseOrExprImpl(BINARY_BITWISE_OR_EXPR)
|
||||
M68kBinaryBitwiseOrExprImpl(BINARY_BITWISE_OR_EXPR)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('10')
|
||||
PsiElement(M68kTokenType.OP_BITWISE_OR)('|')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('32')
|
||||
PsiElement(M68kTokenType.OP_BITWISE_OR)('!')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('21')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.OP_AR_SHIFT_L)('<<')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('2')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.OP_AR_SHIFT_R)('>>')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.OP_BITWISE_AND)('&')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.HEXADECIMAL)('$1f')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -0,0 +1,10 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.BINARY)('%11001100')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -0,0 +1,10 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('10')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -0,0 +1,10 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.HEXADECIMAL)('$1234')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -0,0 +1,10 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.OCTAL)('@777')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -0,0 +1,17 @@
|
||||
Assembly File: a.asm
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)(''string'')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kAssignmentImpl(ASSIGNMENT)
|
||||
PsiElement(M68kTokenType.SYMBOLDEF)('FOO')
|
||||
PsiElement(M68kTokenType.OP_ASSIGN)('=')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)('"bar"')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
Loading…
Reference in New Issue
Block a user