Bugfix: Uppercase hexadecimal literals were not parsed (JFlex bug?)

This commit is contained in:
Chris Hodges 2021-07-31 14:12:58 +02:00
parent 27b7593de8
commit ce3cdbbed6
6 changed files with 194 additions and 175 deletions

View File

@ -72,7 +72,8 @@ make it work with JUnit 5. Feel free to use the code (in package ```de.platon42.
- Enhancement: Added Structure View filters.
- New: Added inspection to validate the correctness of a MC68000 instruction regarding operation size and address modes.
- Bugfix: Added several missing assembler directives (`opt`, `machine`, etc.)
- Bugfix: Added several missing assembler directives (`opt`, `machine`, etc.).
- Bugfix: Uppercase hexadecimal literals were not parsed (JFlex bug?).
### V0.3 (28-Jul-21)

View File

@ -61,7 +61,8 @@ patchPluginXml {
<ul>
<li>Enhancement: Added Structure View filters.
<li>New: Added inspection to validate the correctness of a MC68000 instruction regarding operation size and address modes.
<li>Bugfix: Added several missing assembler directives (opt, machine, etc.)
<li>Bugfix: Added several missing assembler directives (opt, machine, etc.).
<li>Bugfix: Uppercase hexadecimal literals were not parsed (JFlex bug?).
</ul>
<h4>V0.3 (28-Jul-21)</h4>
<ul>

View File

@ -137,12 +137,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\63\1\53\1\57\1\24\1\40\1\70\1\52\1\61\1\62" +
"\1\67\1\65\1\56\1\66\1\23\1\72\2\41\5\6\1\10\2\45\1\14\1\32\1\54\1\22\1\55" +
"\1\0\1\50\1\5\1\75\1\26\1\7\1\15\6\11\1\37\1\25\1\31\1\30\1\73\1\16\1\27\1" +
"\20\1\21\1\17\1\74\1\36\3\11\1\0\1\33\1\0\1\60\1\12\1\51\1\42\1\34\1\47\1" +
"\43\1\46\1\44\5\11\1\37\1\25\1\31\1\30\1\73\1\16\1\27\1\35\1\21\1\17\1\74" +
"\1\36\3\11\1\0\1\71\1\0\1\64\6\0\1\1\12\0\1\4\11\0\1\11\12\0\1\11\4\0\1\11" +
"\11\0\1\4\1\2\2\1\1\3\22\0\1\4\1\57\1\47\1\53\1\24\1\40\1\64\1\46\1\55\1\56" +
"\1\63\1\61\1\52\1\62\1\23\1\66\2\41\5\6\1\10\2\43\1\14\1\32\1\50\1\22\1\51" +
"\1\0\1\44\1\5\1\71\1\26\1\7\1\15\1\42\5\11\1\37\1\25\1\31\1\30\1\67\1\16\1" +
"\27\1\20\1\21\1\17\1\70\1\36\3\11\1\0\1\33\1\0\1\54\1\12\1\45\1\5\1\34\1\26" +
"\1\7\1\15\1\42\5\11\1\37\1\25\1\31\1\30\1\67\1\16\1\27\1\35\1\21\1\17\1\70" +
"\1\36\3\11\1\0\1\65\1\0\1\60\6\0\1\1\12\0\1\4\11\0\1\11\12\0\1\11\4\0\1\11" +
"\5\0\27\11\1\0\27\11\1\20\2\11\4\0\14\11\16\0\5\11\7\0\1\11\1\0\1\11\1\0\5" +
"\11\1\0\2\11\2\0\4\11\1\0\1\11\6\0\1\11\1\0\3\11\1\0\1\11\1\0\4\11\1\0\23" +
"\11\1\0\13\11\10\0\6\11\1\0\26\11\2\0\1\11\6\0\10\11\10\0\13\11\5\0\3\11\15" +
@ -238,30 +238,30 @@ public class _M68kLexer implements FlexLexer {
private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
private static final String ZZ_ROWMAP_PACKED_0 =
"\0\0\0\76\0\174\0\272\0\370\0\u0136\0\u0174\0\u01b2" +
"\0\u01f0\0\u022e\0\u026c\0\u02aa\0\u02e8\0\u0326\0\u0364\0\u03a2" +
"\0\u03a2\0\u03e0\0\u041e\0\u045c\0\u049a\0\u04d8\0\u0516\0\u0554" +
"\0\u0592\0\u05d0\0\u060e\0\u03a2\0\u064c\0\u068a\0\u06c8\0\u03a2" +
"\0\u0706\0\u0744\0\u0782\0\u07c0\0\u07fe\0\u083c\0\u087a\0\u08b8" +
"\0\u08f6\0\u0934\0\u0972\0\u09b0\0\u09ee\0\u0a2c\0\u0a6a\0\u0aa8" +
"\0\u0ae6\0\u03a2\0\u03a2\0\u03a2\0\u03a2\0\u03a2\0\u03a2\0\u03a2" +
"\0\u03a2\0\u03a2\0\u03a2\0\u0b24\0\u0b62\0\u0ba0\0\u03a2\0\u0bde" +
"\0\u0c1c\0\u03a2\0\u03a2\0\u03a2\0\u03a2\0\u0c5a\0\u03a2\0\u03a2" +
"\0\u03a2\0\u03a2\0\u0c98\0\u0cd6\0\u0d14\0\u0d52\0\u0d90\0\u03a2" +
"\0\u0dce\0\u0e0c\0\u0e0c\0\u0e4a\0\u0e88\0\u0ec6\0\u0f04\0\u0f42" +
"\0\u0f42\0\u03a2\0\u0f80\0\u0fbe\0\u0ffc\0\u103a\0\u1078\0\u1078" +
"\0\u03a2\0\u10b6\0\u10f4\0\u0f42\0\u1132\0\u1170\0\u11ae\0\u11ec" +
"\0\u122a\0\u1268\0\u12a6\0\u12e4\0\u1322\0\u1360\0\u03a2\0\u03a2" +
"\0\u03a2\0\u08b8\0\u08b8\0\u08b8\0\u139e\0\u08b8\0\u0972\0\u13dc" +
"\0\u09ee\0\u0a2c\0\u0a6a\0\u141a\0\u03a2\0\u0aa8\0\u1458\0\u0ae6" +
"\0\u1496\0\u08b8\0\u14d4\0\u03a2\0\u03a2\0\u03a2\0\u03a2\0\u03a2" +
"\0\u03a2\0\u03a2\0\u03a2\0\u1512\0\u1550\0\u158e\0\u15cc\0\u160a" +
"\0\u1648\0\u1686\0\u16c4\0\u1702\0\u1740\0\u177e\0\u17bc\0\u17fa" +
"\0\u1838\0\u1876\0\u18b4\0\u03a2\0\u03a2\0\u03a2\0\u03a2\0\u03a2" +
"\0\u18f2\0\u08b8\0\u08b8\0\u08b8\0\u03a2\0\u1930\0\u03a2\0\u196e" +
"\0\u19ac\0\u19ea\0\u1a28\0\u1a66\0\u1aa4\0\u1ae2\0\u1b20\0\u1b5e" +
"\0\u1b9c\0\u1bda\0\u11ae\0\u1c18\0\u0554\0\u0fbe\0\u1c56\0\u1c94" +
"\0\u1cd2";
"\0\0\0\72\0\164\0\256\0\350\0\u0122\0\u015c\0\u0196" +
"\0\u01d0\0\u020a\0\u0244\0\u027e\0\u02b8\0\u02f2\0\u032c\0\u0366" +
"\0\u0366\0\u03a0\0\u03da\0\u0414\0\u044e\0\u0488\0\u04c2\0\u04fc" +
"\0\u0536\0\u0570\0\u05aa\0\u0366\0\u05e4\0\u061e\0\u0658\0\u0366" +
"\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\u09f8" +
"\0\u0a32\0\u0366\0\u0366\0\u0366\0\u0366\0\u0366\0\u0366\0\u0366" +
"\0\u0366\0\u0366\0\u0366\0\u0a6c\0\u0aa6\0\u0ae0\0\u0366\0\u0b1a" +
"\0\u0b54\0\u0366\0\u0366\0\u0366\0\u0366\0\u0b8e\0\u0366\0\u0366" +
"\0\u0366\0\u0366\0\u0bc8\0\u0c02\0\u0c3c\0\u0c76\0\u0cb0\0\u0366" +
"\0\u0cea\0\u0d24\0\u0d24\0\u0d5e\0\u0d98\0\u0dd2\0\u0e0c\0\u0e46" +
"\0\u0e46\0\u0366\0\u0e80\0\u0eba\0\u0ef4\0\u0f2e\0\u0f68\0\u0f68" +
"\0\u0366\0\u0fa2\0\u0fdc\0\u0e46\0\u1016\0\u1050\0\u108a\0\u10c4" +
"\0\u10fe\0\u1138\0\u1172\0\u11ac\0\u11e6\0\u1220\0\u0366\0\u0366" +
"\0\u0366\0\u0828\0\u0828\0\u0828\0\u125a\0\u0828\0\u08d6\0\u1294" +
"\0\u094a\0\u0984\0\u09be\0\u12ce\0\u0366\0\u09f8\0\u1308\0\u0a32" +
"\0\u1342\0\u0828\0\u137c\0\u0366\0\u0366\0\u0366\0\u0366\0\u0366" +
"\0\u0366\0\u0366\0\u0366\0\u13b6\0\u13f0\0\u142a\0\u1464\0\u149e" +
"\0\u14d8\0\u1512\0\u154c\0\u1586\0\u15c0\0\u15fa\0\u1634\0\u166e" +
"\0\u16a8\0\u16e2\0\u171c\0\u0366\0\u0366\0\u0366\0\u0366\0\u0366" +
"\0\u1756\0\u0828\0\u0828\0\u0828\0\u0366\0\u1790\0\u0366\0\u17ca" +
"\0\u1804\0\u183e\0\u1878\0\u18b2\0\u18ec\0\u1926\0\u1960\0\u199a" +
"\0\u19d4\0\u1a0e\0\u108a\0\u1a48\0\u04fc\0\u0eba\0\u1a82\0\u1abc" +
"\0\u1af6";
private static int[] zzUnpackRowMap() {
int[] result = new int[185];
@ -289,152 +289,146 @@ public class _M68kLexer implements FlexLexer {
private static final String ZZ_TRANS_PACKED_0 =
"\1\20\2\21\1\22\1\23\1\24\1\20\1\24\1\20" +
"\2\24\2\20\5\24\1\20\1\25\1\20\5\24\1\26" +
"\1\20\4\24\2\20\3\24\1\20\2\24\7\20\1\26" +
"\7\20\1\26\3\20\3\24\1\20\2\21\1\22\1\27" +
"\1\30\1\20\1\30\1\20\1\30\1\31\2\20\5\30" +
"\1\20\1\32\1\20\1\33\4\30\1\26\1\20\4\30" +
"\2\20\3\30\1\20\2\30\7\20\1\26\7\20\1\26" +
"\3\20\3\30\1\20\2\34\1\35\1\27\1\36\1\20" +
"\1\36\1\20\1\36\1\37\1\20\1\40\5\36\3\20" +
"\5\36\1\41\1\20\4\36\2\20\3\36\1\20\2\36" +
"\23\20\3\36\1\20\2\34\1\35\1\42\16\20\1\43" +
"\6\20\1\41\44\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\45\1\47\1\50" +
"\1\46\1\50\1\54\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\20\2\34" +
"\1\35\1\44\15\20\1\76\1\43\6\20\1\41\5\20" +
"\1\77\13\20\1\100\1\101\1\102\1\20\1\103\1\104" +
"\1\105\1\106\1\107\1\110\1\111\1\112\1\113\1\114" +
"\1\115\4\20\2\34\1\35\1\27\7\20\1\40\1\116" +
"\2\20\1\117\1\20\1\120\7\20\1\41\2\20\1\117" +
"\10\20\1\116\30\20\2\34\1\35\1\44\1\121\1\46" +
"\1\121\1\46\2\121\2\20\5\121\1\20\1\121\1\53" +
"\5\121\1\41\1\20\4\121\1\55\1\46\3\121\1\46" +
"\2\121\1\56\1\57\1\60\1\61\2\20\1\62\1\20" +
"\1\20\4\24\2\20\1\24\10\20\1\26\7\20\1\26" +
"\3\20\3\24\1\20\2\21\1\22\1\27\1\30\1\20" +
"\1\30\1\20\1\30\1\31\2\20\5\30\1\20\1\32" +
"\1\20\1\33\4\30\1\26\1\20\4\30\2\20\1\30" +
"\10\20\1\26\7\20\1\26\3\20\3\30\1\20\2\34" +
"\1\35\1\27\1\36\1\20\1\36\1\20\1\36\1\37" +
"\1\20\1\40\5\36\3\20\5\36\1\41\1\20\4\36" +
"\2\20\1\36\24\20\3\36\1\20\2\34\1\35\1\42" +
"\16\20\1\43\6\20\1\41\40\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\3\121\1\20\2\34\1\35\1\44\15\20\1\76" +
"\7\20\1\41\5\20\1\77\13\20\1\100\1\101\1\102" +
"\1\20\1\103\1\104\1\105\1\106\1\107\1\110\1\111" +
"\1\112\1\113\1\114\1\115\3\20\1\122\1\123\1\34" +
"\1\35\1\44\25\122\1\41\16\122\1\124\1\125\1\126" +
"\1\127\1\122\1\62\17\122\1\130\1\131\1\34\1\35" +
"\72\130\1\20\2\132\1\133\1\27\1\134\1\20\1\134" +
"\1\20\2\134\2\20\5\134\3\20\1\135\4\134\1\136" +
"\1\20\4\134\2\20\3\134\1\20\2\134\23\20\3\134" +
"\1\137\1\140\1\141\1\142\1\143\25\137\1\136\43\137" +
"\1\20\2\34\1\35\1\27\25\20\1\41\43\20\1\130" +
"\1\144\1\141\1\142\72\130\100\0\1\21\77\0\1\23" +
"\75\0\1\145\7\24\1\146\5\24\1\147\1\0\1\150" +
"\5\24\2\0\4\24\1\0\7\24\23\0\3\24\5\0" +
"\1\151\1\0\1\151\1\0\2\151\2\0\5\151\3\0" +
"\5\151\2\0\4\151\2\0\3\151\1\0\2\151\23\0" +
"\3\151\1\26\3\0\72\26\4\0\1\27\76\0\1\30" +
"\1\31\1\30\1\31\1\30\2\31\1\152\5\30\1\0" +
"\1\153\1\154\5\30\2\0\4\30\1\0\1\31\3\30" +
"\1\31\2\30\23\0\3\30\5\0\7\31\1\152\5\31" +
"\2\0\1\154\5\31\2\0\4\31\1\0\7\31\23\0" +
"\3\31\5\0\1\155\1\0\1\155\1\0\2\155\2\0" +
"\5\155\3\0\5\155\2\0\4\155\2\0\3\155\1\0" +
"\2\155\23\0\3\155\5\0\1\156\1\31\1\30\1\31" +
"\1\30\2\31\1\152\5\30\1\0\1\153\1\154\5\30" +
"\2\0\4\30\1\0\1\31\1\156\2\30\1\31\2\30" +
"\23\0\3\30\2\0\1\34\100\0\1\36\1\37\1\36" +
"\1\37\1\36\2\37\1\0\5\36\1\0\1\153\1\0" +
"\5\36\2\0\4\36\1\0\1\37\3\36\1\37\2\36" +
"\23\0\3\36\5\0\7\37\1\0\5\37\3\0\5\37" +
"\2\0\4\37\1\0\7\37\23\0\3\37\1\41\3\0" +
"\72\41\4\0\1\42\125\0\2\157\1\160\1\161\42\0" +
"\1\44\76\0\1\50\1\162\1\50\1\163\3\50\1\0" +
"\5\50\2\0\6\50\2\0\4\50\1\0\1\162\6\50" +
"\23\0\3\50\6\0\1\46\1\0\1\46\30\0\1\46" +
"\3\0\1\46\35\0\1\50\1\164\1\50\1\164\3\50" +
"\1\0\5\50\2\0\6\50\2\0\4\50\1\0\1\164" +
"\6\50\23\0\3\50\5\0\7\50\1\0\5\50\2\0" +
"\6\50\2\0\4\50\1\0\7\50\23\0\3\50\5\0" +
"\7\50\1\0\3\50\1\165\1\50\2\0\6\50\2\0" +
"\1\50\1\165\2\50\1\0\7\50\23\0\3\50\5\0" +
"\7\50\1\0\5\50\2\0\3\50\1\166\2\50\2\0" +
"\4\50\1\0\7\50\23\0\1\163\2\50\6\0\1\167" +
"\1\0\1\167\23\0\1\167\4\0\7\167\33\0\7\50" +
"\1\0\5\50\2\0\2\50\1\170\3\50\2\0\4\50" +
"\1\0\6\50\1\170\23\0\3\50\41\0\1\171\42\0" +
"\1\172\1\0\1\172\30\0\1\172\34\0\2\173\2\0" +
"\27\173\1\174\15\173\1\175\24\173\2\176\2\0\27\176" +
"\1\177\16\176\1\175\23\176\2\200\2\0\27\200\1\201" +
"\17\200\1\175\22\200\5\0\7\50\1\0\5\50\2\0" +
"\2\50\1\202\3\50\2\0\4\50\1\0\6\50\1\202" +
"\23\0\3\50\5\0\7\50\1\0\5\50\2\0\6\50" +
"\2\0\1\203\3\50\1\0\7\50\23\0\2\50\1\203" +
"\22\0\1\204\75\0\1\205\31\0\1\206\1\207\42\0" +
"\1\210\32\0\1\211\42\0\1\207\143\0\1\212\76\0" +
"\1\213\76\0\1\77\21\0\1\214\74\0\1\215\30\0" +
"\1\215\34\0\7\121\1\0\5\121\1\0\7\121\1\0" +
"\5\121\1\0\7\121\23\0\3\121\2\122\3\0\25\122" +
"\1\0\23\122\1\0\17\122\2\124\2\0\1\216\25\124" +
"\1\216\1\217\15\124\1\122\4\124\1\216\17\124\2\125" +
"\2\0\1\220\25\125\1\220\1\221\16\125\1\122\3\125" +
"\1\220\17\125\2\126\2\0\1\222\25\126\1\222\1\223" +
"\17\126\1\122\2\126\1\222\17\126\2\127\2\0\1\224" +
"\25\127\1\224\1\225\21\127\1\122\1\224\17\127\2\130" +
"\2\0\72\130\2\0\1\132\100\0\7\134\1\0\5\134" +
"\3\0\5\134\2\0\4\134\1\0\7\134\23\0\3\134" +
"\5\0\1\226\6\134\1\0\5\134\3\0\5\134\2\0" +
"\4\134\1\0\1\134\1\226\5\134\23\0\3\134\1\136" +
"\3\0\72\136\2\137\2\0\26\137\1\0\43\137\2\0" +
"\1\141\73\0\2\137\2\0\1\143\10\137\1\227\14\137" +
"\1\0\13\137\1\227\27\137\4\0\1\145\10\0\1\230" +
"\2\0\1\231\1\0\1\147\2\0\1\232\7\0\1\231" +
"\10\0\1\230\33\0\1\233\7\0\1\234\5\0\1\147" +
"\57\0\1\147\105\0\1\235\66\0\7\151\1\235\5\151" +
"\3\0\5\151\2\0\4\151\1\0\7\151\23\0\3\151" +
"\14\0\1\236\61\0\1\237\3\0\72\237\14\0\1\240" +
"\66\0\7\155\1\240\5\155\3\0\5\155\2\0\4\155" +
"\1\0\7\155\23\0\3\155\5\0\1\30\1\31\1\30" +
"\1\31\1\30\2\31\1\152\5\30\1\0\1\153\1\154" +
"\1\30\1\241\3\30\2\0\4\30\1\0\1\31\3\30" +
"\1\31\1\30\1\241\23\0\3\30\5\0\7\50\1\0" +
"\5\50\2\0\6\50\2\0\4\50\1\0\7\50\23\0" +
"\1\242\2\50\5\0\7\50\1\0\5\50\2\0\3\50" +
"\1\243\2\50\2\0\4\50\1\0\7\50\23\0\3\50" +
"\1\173\3\0\72\173\1\176\3\0\72\176\1\200\3\0" +
"\72\200\5\0\7\50\1\0\5\50\2\0\3\50\1\244" +
"\2\50\2\0\4\50\1\0\7\50\23\0\3\50\17\0" +
"\1\245\77\0\1\245\54\0\2\216\2\0\27\216\1\246" +
"\15\216\1\247\24\216\1\124\1\122\2\0\1\216\25\124" +
"\1\216\23\124\1\216\17\124\2\220\2\0\27\220\1\250" +
"\16\220\1\247\23\220\1\125\1\122\2\0\1\220\25\125" +
"\1\220\23\125\1\220\17\125\2\222\2\0\27\222\1\251" +
"\17\222\1\247\22\222\1\126\1\122\2\0\1\222\25\126" +
"\1\222\23\126\1\222\17\126\2\224\2\0\27\224\1\252" +
"\21\224\1\247\20\224\1\127\1\122\2\0\1\224\25\127" +
"\1\224\23\127\1\224\17\127\5\0\7\134\1\0\5\134" +
"\3\0\1\134\1\253\3\134\2\0\4\134\1\0\6\134" +
"\1\253\23\0\3\134\2\137\2\0\25\137\1\254\1\0" +
"\43\137\16\0\1\255\74\0\1\256\30\0\1\256\34\0" +
"\1\257\34\0\1\257\37\0\1\233\10\0\1\230\2\0" +
"\1\231\1\0\1\147\12\0\1\231\10\0\1\230\34\0" +
"\3\20\1\74\1\75\1\50\1\20\2\34\1\35\1\44" +
"\15\20\1\76\1\43\6\20\1\41\5\20\1\77\7\20" +
"\1\100\1\101\1\102\1\20\1\103\1\104\1\105\1\106" +
"\1\107\1\110\1\111\1\112\1\113\1\114\1\115\4\20" +
"\2\34\1\35\1\27\7\20\1\40\1\116\2\20\1\117" +
"\1\20\1\120\7\20\1\41\2\20\1\117\35\20\2\34" +
"\1\35\1\44\1\121\1\46\1\121\1\46\2\121\2\20" +
"\5\121\1\20\1\121\1\53\5\121\1\41\1\20\4\121" +
"\1\55\1\46\1\121\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\121\1\20\2\34\1\35" +
"\1\44\15\20\1\76\7\20\1\41\5\20\1\77\7\20" +
"\1\100\1\101\1\102\1\20\1\103\1\104\1\105\1\106" +
"\1\107\1\110\1\111\1\112\1\113\1\114\1\115\3\20" +
"\1\122\1\123\1\34\1\35\1\44\25\122\1\41\12\122" +
"\1\124\1\125\1\126\1\127\1\122\1\62\17\122\1\130" +
"\1\131\1\34\1\35\66\130\1\20\2\132\1\133\1\27" +
"\1\134\1\20\1\134\1\20\2\134\2\20\5\134\3\20" +
"\1\135\4\134\1\136\1\20\4\134\2\20\1\134\24\20" +
"\3\134\1\137\1\140\1\141\1\142\1\143\25\137\1\136" +
"\37\137\1\20\2\34\1\35\1\27\25\20\1\41\37\20" +
"\1\130\1\144\1\141\1\142\66\130\74\0\1\21\73\0" +
"\1\23\71\0\1\145\7\24\1\146\5\24\1\147\1\0" +
"\1\150\5\24\2\0\4\24\1\0\3\24\23\0\3\24" +
"\5\0\1\151\1\0\1\151\1\0\2\151\2\0\5\151" +
"\3\0\5\151\2\0\4\151\2\0\1\151\24\0\3\151" +
"\1\26\3\0\66\26\4\0\1\27\72\0\1\30\1\31" +
"\1\30\1\31\1\30\2\31\1\152\5\30\1\0\1\153" +
"\1\154\5\30\2\0\4\30\1\0\1\31\1\30\1\31" +
"\23\0\3\30\5\0\7\31\1\152\5\31\2\0\1\154" +
"\5\31\2\0\4\31\1\0\3\31\23\0\3\31\5\0" +
"\1\155\1\0\1\155\1\0\2\155\2\0\5\155\3\0" +
"\5\155\2\0\4\155\2\0\1\155\24\0\3\155\5\0" +
"\1\156\1\31\1\30\1\31\1\30\2\31\1\152\5\30" +
"\1\0\1\153\1\154\5\30\2\0\4\30\1\0\1\31" +
"\1\30\1\31\23\0\3\30\2\0\1\34\74\0\1\36" +
"\1\37\1\36\1\37\1\36\2\37\1\0\5\36\1\0" +
"\1\153\1\0\5\36\2\0\4\36\1\0\1\37\1\36" +
"\1\37\23\0\3\36\5\0\7\37\1\0\5\37\3\0" +
"\5\37\2\0\4\37\1\0\3\37\23\0\3\37\1\41" +
"\3\0\66\41\4\0\1\42\121\0\2\157\1\160\1\161" +
"\36\0\1\44\72\0\1\50\1\162\1\50\1\163\3\50" +
"\1\0\5\50\2\0\6\50\2\0\4\50\1\0\1\162" +
"\2\50\23\0\3\50\6\0\1\46\1\0\1\46\30\0" +
"\1\46\1\0\1\46\33\0\1\50\1\164\1\50\1\164" +
"\3\50\1\0\5\50\2\0\6\50\2\0\4\50\1\0" +
"\1\164\2\50\23\0\3\50\5\0\7\50\1\0\5\50" +
"\2\0\6\50\2\0\4\50\1\0\3\50\23\0\3\50" +
"\5\0\7\50\1\0\3\50\1\165\1\50\2\0\6\50" +
"\2\0\1\50\1\165\2\50\1\0\3\50\23\0\3\50" +
"\5\0\7\50\1\0\5\50\2\0\3\50\1\166\2\50" +
"\2\0\4\50\1\0\3\50\23\0\1\163\2\50\5\0" +
"\4\167\4\0\1\167\10\0\1\167\5\0\1\167\4\0" +
"\3\167\25\0\1\167\5\0\7\50\1\0\5\50\2\0" +
"\2\50\1\170\3\50\2\0\4\50\1\0\3\50\23\0" +
"\3\50\41\0\1\171\36\0\1\172\1\0\1\172\30\0" +
"\1\172\30\0\2\173\2\0\27\173\1\174\11\173\1\175" +
"\24\173\2\176\2\0\27\176\1\177\12\176\1\175\23\176" +
"\2\200\2\0\27\200\1\201\13\200\1\175\22\200\5\0" +
"\7\50\1\0\5\50\2\0\2\50\1\202\3\50\2\0" +
"\4\50\1\0\3\50\23\0\3\50\5\0\7\50\1\0" +
"\5\50\2\0\6\50\2\0\1\203\3\50\1\0\3\50" +
"\23\0\2\50\1\203\22\0\1\204\71\0\1\205\25\0" +
"\1\206\1\207\42\0\1\210\26\0\1\211\42\0\1\207" +
"\133\0\1\212\72\0\1\213\72\0\1\77\21\0\1\214" +
"\70\0\1\215\61\0\7\121\1\0\5\121\1\0\7\121" +
"\1\0\5\121\1\0\3\121\23\0\3\121\2\122\3\0" +
"\25\122\1\0\17\122\1\0\17\122\2\124\2\0\1\216" +
"\25\124\1\216\1\217\11\124\1\122\4\124\1\216\17\124" +
"\2\125\2\0\1\220\25\125\1\220\1\221\12\125\1\122" +
"\3\125\1\220\17\125\2\126\2\0\1\222\25\126\1\222" +
"\1\223\13\126\1\122\2\126\1\222\17\126\2\127\2\0" +
"\1\224\25\127\1\224\1\225\15\127\1\122\1\224\17\127" +
"\2\130\2\0\66\130\2\0\1\132\74\0\7\134\1\0" +
"\5\134\3\0\5\134\2\0\4\134\1\0\3\134\23\0" +
"\3\134\5\0\1\226\6\134\1\0\5\134\3\0\5\134" +
"\2\0\4\134\1\0\3\134\23\0\3\134\1\136\3\0" +
"\66\136\2\137\2\0\26\137\1\0\37\137\2\0\1\141" +
"\67\0\2\137\2\0\1\143\10\137\1\227\14\137\1\0" +
"\37\137\4\0\1\145\10\0\1\230\2\0\1\231\1\0" +
"\1\147\2\0\1\232\7\0\1\231\40\0\1\233\7\0" +
"\1\234\5\0\1\147\53\0\1\147\101\0\1\235\62\0" +
"\7\151\1\235\5\151\3\0\5\151\2\0\4\151\1\0" +
"\3\151\23\0\3\151\14\0\1\236\55\0\1\237\3\0" +
"\66\237\14\0\1\240\62\0\7\155\1\240\5\155\3\0" +
"\5\155\2\0\4\155\1\0\3\155\23\0\3\155\5\0" +
"\1\30\1\31\1\30\1\31\1\30\2\31\1\152\5\30" +
"\1\0\1\153\1\154\2\30\1\260\2\30\2\0\4\30" +
"\1\0\1\31\3\30\1\31\2\30\23\0\3\30\1\216" +
"\3\0\72\216\1\220\3\0\72\220\1\222\3\0\72\222" +
"\1\224\3\0\72\224\5\0\7\134\1\0\5\134\3\0" +
"\2\134\1\261\2\134\2\0\4\134\1\0\7\134\23\0" +
"\3\134\2\137\2\0\3\137\1\262\22\137\1\0\10\137" +
"\1\262\32\137\17\0\1\263\77\0\1\263\102\0\1\264" +
"\20\0\1\264\33\0\1\30\1\31\1\30\1\31\1\30" +
"\2\31\1\152\5\30\1\0\1\153\1\154\3\30\1\265" +
"\1\30\2\0\4\30\1\0\1\31\3\30\1\31\2\30" +
"\23\0\3\30\5\0\7\134\1\0\5\134\3\0\3\134" +
"\1\266\1\134\2\0\4\134\1\0\7\134\23\0\3\134" +
"\2\137\2\0\21\137\1\267\4\137\1\0\43\137\27\0" +
"\1\270\46\0\2\267\2\0\26\267\1\0\43\267\30\0" +
"\1\271\51\0\1\271\71\0";
"\1\0\1\153\1\154\1\30\1\241\3\30\2\0\4\30" +
"\1\0\1\31\1\30\1\31\23\0\3\30\5\0\7\50" +
"\1\0\5\50\2\0\6\50\2\0\4\50\1\0\3\50" +
"\23\0\1\242\2\50\5\0\7\50\1\0\5\50\2\0" +
"\3\50\1\243\2\50\2\0\4\50\1\0\3\50\23\0" +
"\3\50\1\173\3\0\66\173\1\176\3\0\66\176\1\200" +
"\3\0\66\200\5\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" +
"\17\0\1\245\73\0\1\245\50\0\2\216\2\0\27\216" +
"\1\246\11\216\1\247\24\216\1\124\1\122\2\0\1\216" +
"\25\124\1\216\17\124\1\216\17\124\2\220\2\0\27\220" +
"\1\250\12\220\1\247\23\220\1\125\1\122\2\0\1\220" +
"\25\125\1\220\17\125\1\220\17\125\2\222\2\0\27\222" +
"\1\251\13\222\1\247\22\222\1\126\1\122\2\0\1\222" +
"\25\126\1\222\17\126\1\222\17\126\2\224\2\0\27\224" +
"\1\252\15\224\1\247\20\224\1\127\1\122\2\0\1\224" +
"\25\127\1\224\17\127\1\224\17\127\5\0\7\134\1\0" +
"\5\134\3\0\1\134\1\253\3\134\2\0\4\134\1\0" +
"\3\134\23\0\3\134\2\137\2\0\25\137\1\254\1\0" +
"\37\137\16\0\1\255\70\0\1\256\61\0\1\257\70\0" +
"\1\233\10\0\1\230\2\0\1\231\1\0\1\147\12\0" +
"\1\231\41\0\1\30\1\31\1\30\1\31\1\30\2\31" +
"\1\152\5\30\1\0\1\153\1\154\2\30\1\260\2\30" +
"\2\0\4\30\1\0\1\31\1\30\1\31\23\0\3\30" +
"\1\216\3\0\66\216\1\220\3\0\66\220\1\222\3\0" +
"\66\222\1\224\3\0\66\224\5\0\7\134\1\0\5\134" +
"\3\0\2\134\1\261\2\134\2\0\4\134\1\0\3\134" +
"\23\0\3\134\2\137\2\0\3\137\1\262\22\137\1\0" +
"\37\137\17\0\1\263\73\0\1\263\76\0\1\264\50\0" +
"\1\30\1\31\1\30\1\31\1\30\2\31\1\152\5\30" +
"\1\0\1\153\1\154\3\30\1\265\1\30\2\0\4\30" +
"\1\0\1\31\1\30\1\31\23\0\3\30\5\0\7\134" +
"\1\0\5\134\3\0\3\134\1\266\1\134\2\0\4\134" +
"\1\0\3\134\23\0\3\134\2\137\2\0\21\137\1\267" +
"\4\137\1\0\37\137\27\0\1\270\42\0\2\267\2\0" +
"\26\267\1\0\37\267\30\0\1\271\45\0\1\271\65\0";
private static int[] zzUnpackTrans() {
int[] result = new int[7440];
int[] result = new int[6960];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;

View File

@ -62,7 +62,7 @@ OPSIZE_BS=(\.[bs])
OPSIZE_W=(\.w)
OPSIZE_L=(\.l)
BINARY=(%[01]+)
HEXADECIMAL=(\$[0-9a-f]+)
HEXADECIMAL=(\$[0-9a-fA-F]+)
OCTAL=(@[0-7]+)
DECIMAL=([0-9]+)
STRINGLIT=(`([^`\\\r\n]|\\.)*`|'([^'\\\r\n]|\\.)*'|\"([^\"\\\r\n]|\\.)*\")

View File

@ -48,6 +48,11 @@ internal class ExpressionsTest : AbstractParsingTest() {
testGoodSyntax(testCase, " dc.w *-.label\n")
}
@Test
internal fun uppercase_hexadecimal_string(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " move.l #\$DEADBEEF,d0\n")
}
@Test
internal fun if_with_single_equals_comparison(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
testGoodSyntax(testCase, " IF DEBUG=1\n")

View File

@ -0,0 +1,18 @@
Assembly File: a.asm
PsiWhiteSpace(' ')
M68kStatementImpl(STATEMENT)
M68kAsmInstructionImpl(ASM_INSTRUCTION)
M68kAsmOpImpl(ASM_OP)
PsiElement(M68kTokenType.MNEMONIC)('move')
M68kOperandSizeImpl(OPERAND_SIZE)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiWhiteSpace(' ')
M68kImmediateDataImpl(IMMEDIATE_DATA)
PsiElement(M68kTokenType.HASH)('#')
M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.HEXADECIMAL)('$DEADBEEF')
PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
M68kDataRegisterImpl(DATA_REGISTER)
PsiElement(M68kTokenType.DREG)('d0')
PsiElement(M68kTokenType.EOL)('\n')