From eb4552fa832dfa84fac82cf41e71c30301e17da1 Mon Sep 17 00:00:00 2001 From: chrisly42 Date: Wed, 14 Jul 2021 17:35:36 +0200 Subject: [PATCH] Progress on Lexer and BNF. --- .../plugins/m68k/lexer/_M68kLexer.java | 1444 +++++++++-------- .../plugins/m68k/parser/M68kParser.java | 465 ++---- .../M68kAbsoluteAddressAddressingMode.java | 8 +- .../plugins/m68k/psi/M68kAddressRegister.java | 4 +- ...8kAddressRegisterDirectAddressingMode.java | 4 +- ...AddressRegisterIndirectAddressingMode.java | 4 +- ...RegisterIndirectPostIncAddressingMode.java | 4 +- ...sRegisterIndirectPreDecAddressingMode.java | 4 +- ...rectWithDisplacementNewAddressingMode.java | 8 +- ...rectWithDisplacementOldAddressingMode.java | 8 +- ...terIndirectWithIndexNewAddressingMode.java | 16 +- ...terIndirectWithIndexOldAddressingMode.java | 16 +- .../plugins/m68k/psi/M68kAddressSize.java | 4 +- .../plugins/m68k/psi/M68kAsmInstruction.java | 11 +- .../intellij/plugins/m68k/psi/M68kAsmOp.java | 8 +- .../plugins/m68k/psi/M68kAsmOperands.java | 4 +- .../plugins/m68k/psi/M68kAssignment.java | 11 +- .../plugins/m68k/psi/M68kBinaryAddExpr.java | 4 +- .../m68k/psi/M68kBinaryBitwiseAndExpr.java | 4 +- .../m68k/psi/M68kBinaryBitwiseOrExpr.java | 4 +- .../m68k/psi/M68kBinaryBitwiseXorExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryCmpEqExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryCmpGeExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryCmpGtExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryCmpLeExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryCmpLtExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryCmpNeExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryDivExpr.java | 4 +- .../m68k/psi/M68kBinaryLogicalAndExpr.java | 4 +- .../m68k/psi/M68kBinaryLogicalOrExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryModExpr.java | 4 +- .../plugins/m68k/psi/M68kBinaryMulExpr.java | 4 +- .../m68k/psi/M68kBinaryShiftLExpr.java | 4 +- .../m68k/psi/M68kBinaryShiftRExpr.java | 4 +- .../plugins/m68k/psi/M68kBinarySubExpr.java | 4 +- .../plugins/m68k/psi/M68kDataRegister.java | 4 +- .../M68kDataRegisterDirectAddressingMode.java | 4 +- .../plugins/m68k/psi/M68kDataWidth.java | 4 +- .../plugins/m68k/psi/M68kGlobalLabel.java | 12 +- .../plugins/m68k/psi/M68kImmediateData.java | 4 +- .../plugins/m68k/psi/M68kInstruction.java | 15 + .../intellij/plugins/m68k/psi/M68kLabel.java | 7 - .../plugins/m68k/psi/M68kLocalLabel.java | 12 +- .../m68k/psi/M68kPreprocessorDirective.java | 42 - ...rectWithDisplacementNewAddressingMode.java | 4 - ...rectWithDisplacementOldAddressingMode.java | 4 - ...terIndirectWithIndexNewAddressingMode.java | 4 - ...terIndirectWithIndexOldAddressingMode.java | 4 - .../plugins/m68k/psi/M68kSpecialRegister.java | 15 - .../plugins/m68k/psi/M68kStatement.java | 7 +- .../intellij/plugins/m68k/psi/M68kTypes.java | 203 ++- .../plugins/m68k/psi/M68kVisitor.java | 8 +- .../m68k/psi/impl/M68kAsmInstructionImpl.java | 9 - .../plugins/m68k/psi/impl/M68kAsmOpImpl.java | 6 +- .../m68k/psi/impl/M68kAssignmentImpl.java | 17 - .../m68k/psi/impl/M68kGlobalLabelImpl.java | 21 +- .../plugins/m68k/psi/impl/M68kLabelImpl.java | 17 +- .../m68k/psi/impl/M68kLocalLabelImpl.java | 21 +- .../impl/M68kPreprocessorDirectiveImpl.java | 87 +- ...WithDisplacementNewAddressingModeImpl.java | 9 - ...WithDisplacementOldAddressingModeImpl.java | 9 - ...ndirectWithIndexNewAddressingModeImpl.java | 9 - ...ndirectWithIndexOldAddressingModeImpl.java | 9 - .../psi/impl/M68kSpecialRegisterImpl.java | 28 - .../m68k/psi/impl/M68kStatementImpl.java | 17 +- .../intellij/plugins/m68k/M68kFileType.kt | 2 +- .../intellij/plugins/m68k/M68kMnemonics.kt | 6 - .../intellij/plugins/m68k/asm/M68kIsa.kt | 121 ++ .../intellij/plugins/m68k/lexer/LexerUtil.kt | 13 + .../plugins/m68k/lexer/_M68kLexer.flex | 272 ++-- .../platon42/intellij/plugins/m68k/m68k.bnf | 100 +- .../m68k/parser/M68kParserDefinition.java | 6 - src/main/resources/META-INF/plugin.xml | 2 +- 73 files changed, 1583 insertions(+), 1646 deletions(-) create mode 100644 src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kInstruction.java delete mode 100644 src/main/java/de/platon42/intellij/plugins/m68k/M68kMnemonics.kt create mode 100644 src/main/java/de/platon42/intellij/plugins/m68k/asm/M68kIsa.kt create mode 100644 src/main/java/de/platon42/intellij/plugins/m68k/lexer/LexerUtil.kt diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/lexer/_M68kLexer.java b/src/main/gen/de/platon42/intellij/plugins/m68k/lexer/_M68kLexer.java index 35bfad5..934213c 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/lexer/_M68kLexer.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/lexer/_M68kLexer.java @@ -7,6 +7,8 @@ import com.intellij.psi.tree.IElementType; import static com.intellij.psi.TokenType.BAD_CHARACTER; import static com.intellij.psi.TokenType.WHITE_SPACE; +import static de.platon42.intellij.plugins.m68k.lexer.LexerUtil.isAsmMnemonic; +import static de.platon42.intellij.plugins.m68k.lexer.LexerUtil.pushbackAssignment; import static de.platon42.intellij.plugins.m68k.psi.M68kTypes.*; @@ -31,6 +33,11 @@ public class _M68kLexer implements FlexLexer { * lexical states */ public static final int YYINITIAL = 0; + public static final int NOSOL = 2; + public static final int INSTRPART = 4; + public static final int ASMINSTR = 6; + public static final int ASMOPS = 8; + public static final int ASSIGNMENT = 10; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -39,13 +46,13 @@ public class _M68kLexer implements FlexLexer { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0 + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5 }; /** * Translates characters to character classes * Chosen bits are [11, 6, 4] - * Total runtime size is 14432 bytes + * Total runtime size is 14496 bytes */ public static int ZZ_CMAP(int ch) { return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch >> 10] << 6) | ((ch >> 4) & 0x3f)] << 4) | (ch & 0xf)]; @@ -61,115 +68,112 @@ public class _M68kLexer implements FlexLexer { /* The ZZ_CMAP_Y table has 2944 entries */ static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34" + - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25" + - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\2\1\2\13\1\30\1\1\1\32\1\25\5" + - "\13\1\33\1\34\1\35\1\1\1\36\1\13\1\1\1\37\5\13\1\40\1\41\1\42\1\13\1\30\1" + - "\43\1\13\1\44\1\45\1\1\1\13\1\46\4\1\1\13\1\47\4\1\1\50\2\13\1\51\1\1\1\52" + - "\1\53\1\25\1\54\1\55\1\56\1\57\1\60\1\61\1\53\1\16\1\62\1\55\1\56\1\63\1\1" + - "\1\64\1\65\1\66\1\67\1\22\1\56\1\70\1\1\1\71\1\53\1\72\1\73\1\55\1\56\1\70" + - "\1\1\1\61\1\53\1\41\1\74\1\75\1\76\1\77\1\1\1\71\1\65\1\1\1\100\1\36\1\56" + - "\1\51\1\1\1\101\1\53\1\1\1\102\1\36\1\56\1\103\1\1\1\60\1\53\1\104\1\100\1" + - "\36\1\13\1\105\1\60\1\106\1\53\1\107\1\110\1\111\1\13\1\112\1\113\1\1\1\65" + - "\1\1\1\25\2\13\1\114\1\113\1\115\2\1\1\116\1\117\1\120\1\121\1\122\1\123\2" + - "\1\1\71\1\1\1\115\1\1\1\124\1\13\1\125\1\1\1\126\7\1\2\13\1\30\1\127\1\115" + - "\1\130\1\131\1\132\1\133\1\115\2\13\1\134\2\13\1\135\24\13\1\136\1\137\2\13" + - "\1\136\2\13\1\140\1\141\1\14\3\13\1\141\3\13\1\30\2\1\1\13\1\1\5\13\1\142" + - "\1\25\45\13\1\143\1\13\1\144\1\30\4\13\1\30\1\145\1\146\1\16\1\13\1\16\1\13" + - "\1\16\1\146\1\71\3\13\1\147\1\1\1\150\1\115\2\1\1\115\5\13\1\27\1\151\1\13" + - "\1\152\4\13\1\40\1\13\1\153\2\1\1\65\1\13\1\154\1\155\2\13\1\156\1\13\1\77" + - "\1\115\2\1\1\13\1\113\3\13\1\155\2\1\2\115\1\157\5\1\1\110\2\13\1\147\1\160" + - "\1\115\2\1\1\161\1\13\1\162\1\42\2\13\1\40\1\1\2\13\1\147\1\1\1\163\1\42\1" + - "\13\1\154\1\46\5\1\1\164\1\165\14\13\4\1\21\13\1\142\2\13\1\142\1\166\1\13" + - "\1\154\3\13\1\167\1\170\1\171\1\125\1\170\1\172\1\1\1\173\2\1\1\174\1\1\1" + - "\175\1\1\1\125\6\1\1\176\1\177\1\200\1\201\1\202\3\1\1\203\147\1\2\13\1\153" + - "\2\13\1\153\10\13\1\204\1\205\2\13\1\134\3\13\1\206\1\1\1\13\1\113\4\207\4" + - "\1\1\127\35\1\1\210\2\1\1\211\1\25\4\13\1\212\1\25\4\13\1\135\1\110\1\13\1" + - "\154\1\25\4\13\1\153\1\1\1\13\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1" + - "\40\2\1\10\13\1\125\4\1\2\13\1\154\20\13\1\125\1\13\1\213\1\1\2\13\1\153\1" + - "\127\1\13\1\154\4\13\1\40\2\1\1\214\1\215\5\13\1\216\1\13\1\153\1\27\3\1\1" + - "\214\1\217\1\13\1\31\1\1\3\13\1\147\1\215\2\13\1\147\1\1\1\115\1\1\1\220\1" + - "\42\1\13\1\40\1\13\1\113\1\1\1\13\1\125\1\50\2\13\1\31\1\127\1\115\1\221\1" + - "\222\2\13\1\46\1\1\1\223\1\115\1\13\1\224\3\13\1\225\1\226\1\227\1\30\1\66" + - "\1\230\1\231\1\207\2\13\1\135\1\40\7\13\1\31\1\115\72\13\1\147\1\13\1\232" + - "\2\13\1\156\20\1\26\13\1\154\6\13\1\77\2\1\1\113\1\233\1\56\1\234\1\235\6" + - "\13\1\16\1\1\1\161\25\13\1\154\1\1\4\13\1\215\2\13\1\27\2\1\1\156\7\1\1\221" + - "\7\13\1\125\1\1\1\115\1\25\1\30\1\25\1\30\1\236\4\13\1\153\1\237\1\240\2\1" + - "\1\241\1\13\1\14\1\242\2\154\2\1\7\13\1\30\30\1\1\13\1\125\3\13\1\71\2\1\2" + - "\13\1\1\1\13\1\243\2\13\1\40\1\13\1\154\2\13\1\244\3\1\11\13\1\154\1\115\2" + - "\13\1\244\1\13\1\156\2\13\1\27\3\13\1\147\11\1\23\13\1\113\1\13\1\40\1\27" + - "\11\1\1\245\2\13\1\246\1\13\1\40\1\13\1\113\1\13\1\153\4\1\1\13\1\247\1\13" + - "\1\40\1\13\1\77\4\1\3\13\1\250\4\1\1\71\1\251\1\13\1\147\2\1\1\13\1\125\1" + - "\13\1\125\2\1\1\124\1\13\1\155\1\1\3\13\1\40\1\13\1\40\1\13\1\31\1\13\1\16" + - "\6\1\4\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1\161\2\13\1\27\2\1\1\65\1\1\1" + - "\161\2\13\2\1\1\13\1\46\1\115\1\161\1\13\1\113\1\65\1\1\2\13\1\252\1\161\2" + - "\13\1\31\1\253\1\254\2\1\1\13\1\22\1\156\5\1\1\255\1\256\1\46\2\13\1\153\1" + - "\1\1\115\1\73\1\55\1\56\1\70\1\1\1\257\1\16\11\1\3\13\1\155\1\260\1\115\2" + - "\1\3\13\1\1\1\261\1\115\12\1\2\13\1\153\2\1\1\262\2\1\3\13\1\1\1\263\1\115" + - "\2\1\2\13\1\30\1\1\1\115\3\1\1\13\1\77\1\1\1\115\26\1\4\13\1\115\1\127\34" + - "\1\3\13\1\46\20\1\1\56\1\13\1\153\1\1\1\71\1\115\1\1\1\215\1\13\67\1\71\13" + - "\1\77\16\1\14\13\1\147\53\1\2\13\1\153\75\1\44\13\1\113\33\1\43\13\1\46\1" + - "\13\1\153\1\115\6\1\1\13\1\154\1\1\3\13\1\1\1\147\1\115\1\161\1\264\1\13\67" + - "\1\4\13\1\155\1\71\3\1\1\161\4\1\1\71\1\1\76\13\1\125\1\1\57\13\1\31\20\1" + - "\1\16\77\1\6\13\1\30\1\125\1\46\1\77\66\1\5\13\1\221\3\13\1\146\1\265\1\266" + - "\1\267\3\13\1\270\1\271\1\13\1\272\1\273\1\36\24\13\1\274\1\13\1\36\1\135" + - "\1\13\1\135\1\13\1\221\1\13\1\221\1\153\1\13\1\153\1\13\1\56\1\13\1\56\1\13" + - "\1\275\3\276\14\13\1\155\3\1\4\13\1\147\1\115\112\1\1\267\1\13\1\277\1\300" + - "\1\301\1\302\1\303\1\304\1\305\1\156\1\306\1\156\24\1\55\13\1\113\2\1\103" + - "\13\1\155\15\13\1\154\150\13\1\16\25\1\41\13\1\154\36\1"); + "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\3" + + "\13\1\15\3\13\1\16\24\13\1\17\1\20\1\21\10\1\1\22\1\23\1\13\1\24\4\13\1\25" + + "\10\13\1\26\12\13\1\27\1\13\1\30\1\27\1\13\1\31\4\1\1\13\1\32\1\33\2\1\2\13" + + "\1\32\1\1\1\34\1\27\5\13\1\35\1\36\1\37\1\1\1\40\1\13\1\1\1\41\5\13\1\42\1" + + "\43\1\44\1\13\1\32\1\45\1\13\1\46\1\47\1\1\1\13\1\50\4\1\1\13\1\51\4\1\1\52" + + "\2\13\1\53\1\1\1\54\1\55\1\27\1\56\1\57\1\60\1\61\1\62\1\63\1\55\1\20\1\64" + + "\1\57\1\60\1\65\1\1\1\66\1\67\1\70\1\71\1\24\1\60\1\72\1\1\1\73\1\55\1\74" + + "\1\75\1\57\1\60\1\72\1\1\1\63\1\55\1\43\1\76\1\77\1\100\1\101\1\1\1\73\1\67" + + "\1\1\1\102\1\40\1\60\1\53\1\1\1\103\1\55\1\1\1\104\1\40\1\60\1\105\1\1\1\62" + + "\1\55\1\106\1\102\1\40\1\13\1\107\1\62\1\110\1\55\1\111\1\112\1\113\1\13\1" + + "\114\1\115\1\1\1\67\1\1\1\27\2\13\1\116\1\115\1\117\2\1\1\120\1\121\1\122" + + "\1\123\1\124\1\125\2\1\1\73\1\1\1\117\1\1\1\126\1\13\1\127\1\1\1\130\7\1\2" + + "\13\1\32\1\131\1\117\1\132\1\133\1\134\1\135\1\117\2\13\1\136\2\13\1\137\24" + + "\13\1\140\1\141\2\13\1\140\2\13\1\142\1\143\1\14\3\13\1\143\3\13\1\32\2\1" + + "\1\13\1\1\5\13\1\144\1\27\45\13\1\145\1\13\1\146\1\32\4\13\1\32\1\147\1\150" + + "\1\20\1\13\1\20\1\13\1\20\1\150\1\73\3\13\1\151\1\1\1\152\1\117\2\1\1\117" + + "\5\13\1\31\1\153\1\13\1\154\4\13\1\42\1\13\1\155\2\1\1\67\1\13\1\156\1\157" + + "\2\13\1\160\1\13\1\101\1\117\2\1\1\13\1\115\3\13\1\157\2\1\2\117\1\161\5\1" + + "\1\112\2\13\1\151\1\162\1\117\2\1\1\163\1\13\1\164\1\44\2\13\1\42\1\1\2\13" + + "\1\151\1\1\1\165\1\44\1\13\1\156\1\50\5\1\1\166\1\167\14\13\4\1\21\13\1\144" + + "\2\13\1\144\1\170\1\13\1\156\3\13\1\171\1\172\1\173\1\127\1\172\1\174\1\1" + + "\1\175\2\1\1\176\1\1\1\177\1\1\1\127\6\1\1\200\1\201\1\202\1\203\1\204\3\1" + + "\1\205\147\1\2\13\1\155\2\13\1\155\10\13\1\206\1\207\2\13\1\136\3\13\1\210" + + "\1\1\1\13\1\115\4\211\4\1\1\131\35\1\1\212\2\1\1\213\1\27\4\13\1\214\1\27" + + "\4\13\1\137\1\112\1\13\1\156\1\27\4\13\1\155\1\1\1\13\1\32\3\1\1\13\40\1\133" + + "\13\1\42\4\1\135\13\1\42\2\1\10\13\1\127\4\1\2\13\1\156\20\13\1\127\1\13\1" + + "\215\1\1\2\13\1\155\1\131\1\13\1\156\4\13\1\42\2\1\1\216\1\217\5\13\1\220" + + "\1\13\1\155\1\31\3\1\1\216\1\221\1\13\1\33\1\1\3\13\1\151\1\217\2\13\1\151" + + "\1\1\1\117\1\1\1\222\1\44\1\13\1\42\1\13\1\115\1\1\1\13\1\127\1\52\2\13\1" + + "\33\1\131\1\117\1\223\1\224\2\13\1\50\1\1\1\225\1\117\1\13\1\226\3\13\1\227" + + "\1\230\1\231\1\32\1\70\1\232\1\233\1\211\2\13\1\137\1\42\7\13\1\33\1\117\72" + + "\13\1\151\1\13\1\234\2\13\1\160\20\1\26\13\1\156\6\13\1\101\2\1\1\115\1\235" + + "\1\60\1\236\1\237\6\13\1\20\1\1\1\163\25\13\1\156\1\1\4\13\1\217\2\13\1\31" + + "\2\1\1\160\7\1\1\223\7\13\1\127\1\1\1\117\1\27\1\32\1\27\1\32\1\240\4\13\1" + + "\155\1\241\1\242\2\1\1\243\1\13\1\14\1\244\2\156\2\1\7\13\1\32\30\1\1\13\1" + + "\127\3\13\1\73\2\1\2\13\1\1\1\13\1\245\2\13\1\42\1\13\1\156\2\13\1\246\3\1" + + "\11\13\1\156\1\117\2\13\1\246\1\13\1\160\2\13\1\31\3\13\1\151\11\1\23\13\1" + + "\115\1\13\1\42\1\31\11\1\1\247\2\13\1\250\1\13\1\42\1\13\1\115\1\13\1\155" + + "\4\1\1\13\1\251\1\13\1\42\1\13\1\101\4\1\3\13\1\252\4\1\1\73\1\253\1\13\1" + + "\151\2\1\1\13\1\127\1\13\1\127\2\1\1\126\1\13\1\157\1\1\3\13\1\42\1\13\1\42" + + "\1\13\1\33\1\13\1\20\6\1\4\13\1\50\3\1\3\13\1\33\3\13\1\33\60\1\1\163\2\13" + + "\1\31\2\1\1\67\1\1\1\163\2\13\2\1\1\13\1\50\1\117\1\163\1\13\1\115\1\67\1" + + "\1\2\13\1\254\1\163\2\13\1\33\1\255\1\256\2\1\1\13\1\24\1\160\5\1\1\257\1" + + "\260\1\50\2\13\1\155\1\1\1\117\1\75\1\57\1\60\1\72\1\1\1\261\1\20\11\1\3\13" + + "\1\157\1\262\1\117\2\1\3\13\1\1\1\263\1\117\12\1\2\13\1\155\2\1\1\264\2\1" + + "\3\13\1\1\1\265\1\117\2\1\2\13\1\32\1\1\1\117\3\1\1\13\1\101\1\1\1\117\26" + + "\1\4\13\1\117\1\131\34\1\3\13\1\50\20\1\1\60\1\13\1\155\1\1\1\73\1\117\1\1" + + "\1\217\1\13\67\1\71\13\1\101\16\1\14\13\1\151\53\1\2\13\1\155\75\1\44\13\1" + + "\115\33\1\43\13\1\50\1\13\1\155\1\117\6\1\1\13\1\156\1\1\3\13\1\1\1\151\1" + + "\117\1\163\1\266\1\13\67\1\4\13\1\157\1\73\3\1\1\163\4\1\1\73\1\1\76\13\1" + + "\127\1\1\57\13\1\33\20\1\1\20\77\1\6\13\1\32\1\127\1\50\1\101\66\1\5\13\1" + + "\223\3\13\1\150\1\267\1\270\1\271\3\13\1\272\1\273\1\13\1\274\1\275\1\40\24" + + "\13\1\276\1\13\1\40\1\137\1\13\1\137\1\13\1\223\1\13\1\223\1\155\1\13\1\155" + + "\1\13\1\60\1\13\1\60\1\13\1\277\3\300\14\13\1\157\3\1\4\13\1\151\1\117\112" + + "\1\1\271\1\13\1\301\1\302\1\303\1\304\1\305\1\306\1\307\1\160\1\310\1\160" + + "\24\1\55\13\1\115\2\1\103\13\1\157\15\13\1\156\150\13\1\20\25\1\41\13\1\156" + + "\36\1"); - /* The ZZ_CMAP_A table has 3184 entries */ + /* The ZZ_CMAP_A table has 3216 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\4\1\2\2\1\1\3\22\0\1\4\1\64\1\47\1\62\1\41\1\37\1\71\1\46\1\57\1\60" + - "\1\52\1\66\1\61\1\67\1\35\1\70\2\40\6\30\2\42\1\53\1\54\1\50\1\63\1\51\1\0" + - "\1\43\1\26\1\22\1\12\1\21\1\5\1\23\2\24\1\17\2\24\1\20\1\25\1\11\1\13\1\14" + - "\1\6\1\27\1\15\1\16\1\7\1\10\1\36\3\24\1\55\1\45\1\56\1\73\1\33\1\44\1\26" + - "\1\22\1\12\1\21\1\5\1\23\2\24\1\17\2\24\1\20\1\25\1\11\1\13\1\32\1\6\1\27" + - "\1\31\1\16\1\7\1\10\1\36\3\24\1\0\1\72\1\0\1\65\6\0\1\1\12\0\1\4\11\0\1\24" + - "\12\0\1\24\4\0\1\24\5\0\27\24\1\0\12\24\4\0\14\24\16\0\5\24\7\0\1\24\1\0\1" + - "\24\1\0\5\24\1\0\2\24\2\0\4\24\1\0\1\24\6\0\1\24\1\0\3\24\1\0\1\24\1\0\4\24" + - "\1\0\23\24\1\0\13\24\10\0\6\24\1\0\26\24\2\0\1\24\6\0\10\24\10\0\13\24\5\0" + - "\3\24\15\0\12\34\4\0\6\24\1\0\1\24\17\0\2\24\7\0\2\24\12\34\3\24\2\0\2\24" + - "\1\0\16\24\15\0\11\24\13\0\1\24\16\0\12\34\6\24\4\0\2\24\4\0\1\24\5\0\6\24" + - "\4\0\1\24\11\0\1\24\3\0\1\24\7\0\11\24\7\0\5\24\1\0\10\24\6\0\26\24\3\0\1" + - "\24\2\0\1\24\7\0\12\24\4\0\12\34\1\24\4\0\10\24\2\0\2\24\2\0\26\24\1\0\7\24" + - "\1\0\1\24\3\0\4\24\3\0\1\24\20\0\1\24\15\0\2\24\1\0\1\24\5\0\6\24\4\0\2\24" + - "\1\0\2\24\1\0\2\24\1\0\2\24\17\0\4\24\1\0\1\24\7\0\12\34\2\0\3\24\20\0\11" + - "\24\1\0\2\24\1\0\2\24\1\0\5\24\3\0\1\24\2\0\1\24\30\0\1\24\13\0\10\24\2\0" + - "\1\24\3\0\1\24\1\0\6\24\3\0\3\24\1\0\4\24\3\0\2\24\1\0\1\24\1\0\2\24\3\0\2" + - "\24\3\0\3\24\3\0\14\24\13\0\10\24\1\0\2\24\10\0\3\24\5\0\1\24\4\0\10\24\1" + - "\0\6\24\1\0\5\24\3\0\1\24\3\0\2\24\15\0\13\24\2\0\1\24\6\0\3\24\10\0\1\24" + - "\12\0\6\24\5\0\22\24\3\0\10\24\1\0\11\24\1\0\1\24\2\0\7\24\11\0\1\24\1\0\2" + - "\24\14\0\12\34\7\0\2\24\1\0\1\24\2\0\2\24\1\0\1\24\2\0\1\24\6\0\4\24\1\0\7" + - "\24\1\0\3\24\1\0\1\24\1\0\1\24\2\0\2\24\1\0\4\24\1\0\2\24\11\0\1\24\2\0\5" + - "\24\1\0\1\24\11\0\12\34\2\0\14\24\1\0\24\24\13\0\5\24\22\0\7\24\4\0\4\24\3" + - "\0\1\24\3\0\2\24\7\0\3\24\4\0\15\24\14\0\1\24\1\0\6\24\1\0\1\24\5\0\1\24\2" + - "\0\13\24\1\0\15\24\1\0\4\24\2\0\7\24\1\0\1\24\1\0\4\24\2\0\1\24\1\0\4\24\2" + - "\0\7\24\1\0\1\24\1\0\4\24\2\0\16\24\2\0\6\24\2\0\15\24\2\0\1\24\1\4\17\24" + - "\1\0\10\24\7\0\15\24\1\0\6\24\23\0\1\24\4\0\1\24\3\0\5\24\2\0\22\24\1\0\1" + - "\24\5\0\17\24\1\0\16\24\2\0\5\24\13\0\14\24\13\0\1\24\15\0\7\24\7\0\16\24" + - "\15\0\2\24\12\34\3\0\3\24\11\0\4\24\1\0\4\24\3\0\2\24\11\0\10\24\1\0\1\24" + - "\1\0\1\24\1\0\1\24\1\0\6\24\1\0\7\24\1\0\1\24\3\0\3\24\1\0\7\24\3\0\4\24\2" + - "\0\6\24\4\0\13\4\15\0\2\1\5\0\1\4\17\0\1\4\1\0\1\24\15\0\1\24\2\0\1\24\4\0" + - "\1\24\2\0\12\24\1\0\1\24\3\0\5\24\6\0\1\24\1\0\1\24\1\0\1\24\1\0\4\24\1\0" + - "\13\24\2\0\4\24\5\0\5\24\4\0\1\24\4\0\2\24\13\0\5\24\6\0\4\24\3\0\2\24\14" + - "\0\10\24\7\0\10\24\1\0\7\24\1\0\1\4\4\0\2\24\12\0\5\24\5\0\2\24\3\0\7\24\6" + - "\0\3\24\12\34\2\24\13\0\11\24\2\0\27\24\2\0\7\24\1\0\3\24\1\0\4\24\1\0\4\24" + - "\2\0\6\24\3\0\1\24\1\0\1\24\2\0\5\24\1\0\12\24\12\34\5\24\1\0\3\24\1\0\10" + - "\24\4\0\7\24\3\0\1\24\3\0\2\24\1\0\1\24\3\0\2\24\2\0\5\24\2\0\1\24\1\0\1\24" + - "\30\0\3\24\3\0\6\24\2\0\6\24\2\0\6\24\11\0\7\24\4\0\5\24\3\0\5\24\5\0\1\24" + - "\1\0\10\24\1\0\5\24\1\0\1\24\1\0\2\24\1\0\2\24\1\0\12\24\6\0\12\24\2\0\6\24" + - "\2\0\6\24\2\0\6\24\2\0\3\24\3\0\14\24\1\0\16\24\1\0\2\24\1\0\2\24\1\0\10\24" + - "\6\0\4\24\4\0\16\24\2\0\1\24\1\0\14\24\1\0\2\24\3\0\1\24\2\0\4\24\1\0\2\24" + - "\12\0\10\24\6\0\6\24\1\0\3\24\1\0\12\24\3\0\1\24\12\0\4\24\13\0\12\34\1\24" + - "\1\0\1\24\3\0\7\24\1\0\1\24\1\0\4\24\1\0\17\24\1\0\2\24\14\0\3\24\7\0\4\24" + - "\11\0\2\24\1\0\1\24\20\0\4\24\10\0\1\24\13\0\10\24\5\0\3\24\2\0\1\24\2\0\2" + - "\24\2\0\4\24\1\0\14\24\1\0\1\24\1\0\7\24\1\0\21\24\1\0\4\24\2\0\10\24\1\0" + - "\7\24\1\0\14\24\1\0\4\24\1\0\5\24\1\0\1\24\3\0\14\24\2\0\13\24\1\0\10\24\2" + - "\0\22\34\1\0\2\24\1\0\1\24\2\0\1\24\1\0\12\24\1\0\4\24\1\0\1\24\1\0\1\24\6" + - "\0\1\24\4\0\1\24\1\0\1\24\1\0\1\24\1\0\3\24\1\0\2\24\1\0\1\24\2\0\1\24\1\0" + - "\1\24\1\0\1\24\1\0\1\24\1\0\1\24\1\0\2\24\1\0\1\24\2\0\4\24\1\0\7\24\1\0\4" + - "\24\1\0\4\24\1\0\1\24\1\0\12\24\1\0\5\24\1\0\3\24\1\0\5\24\1\0\5\24"); + "\11\0\1\4\1\2\2\1\1\3\22\0\1\4\1\66\1\46\1\52\1\26\1\32\1\64\1\45\1\72\1\73" + + "\1\77\1\75\1\101\1\76\1\24\1\100\2\33\6\11\2\40\1\25\1\51\1\47\1\23\1\50\1" + + "\0\1\42\1\10\1\61\1\55\1\14\1\17\1\6\2\7\1\5\2\7\1\57\1\62\1\54\1\56\1\13" + + "\1\20\1\63\1\12\1\22\1\21\1\53\4\7\1\70\1\44\1\71\1\67\1\15\1\43\1\36\1\27" + + "\1\35\1\37\1\41\1\34\2\7\1\5\2\7\1\60\1\62\1\54\1\56\1\13\1\20\1\63\1\30\1" + + "\22\1\21\1\53\1\31\3\7\1\0\1\65\1\0\1\74\6\0\1\1\12\0\1\4\11\0\1\7\12\0\1" + + "\7\4\0\1\7\5\0\27\7\1\0\10\7\2\5\35\7\1\12\2\7\4\0\14\7\16\0\5\7\7\0\1\7\1" + + "\0\1\7\1\0\5\7\1\0\2\7\2\0\4\7\1\0\1\7\6\0\1\7\1\0\3\7\1\0\1\7\1\0\4\7\1\0" + + "\23\7\1\0\13\7\10\0\6\7\1\0\26\7\2\0\1\7\6\0\10\7\10\0\13\7\5\0\3\7\15\0\12" + + "\16\4\0\6\7\1\0\1\7\17\0\2\7\7\0\2\7\12\16\3\7\2\0\2\7\1\0\16\7\15\0\11\7" + + "\13\0\1\7\16\0\12\16\6\7\4\0\2\7\4\0\1\7\5\0\6\7\4\0\1\7\11\0\1\7\3\0\1\7" + + "\7\0\11\7\7\0\5\7\1\0\10\7\6\0\26\7\3\0\1\7\2\0\1\7\7\0\12\7\4\0\12\16\1\7" + + "\4\0\10\7\2\0\2\7\2\0\26\7\1\0\7\7\1\0\1\7\3\0\4\7\3\0\1\7\20\0\1\7\15\0\2" + + "\7\1\0\1\7\5\0\6\7\4\0\2\7\1\0\2\7\1\0\2\7\1\0\2\7\17\0\4\7\1\0\1\7\7\0\12" + + "\16\2\0\3\7\20\0\11\7\1\0\2\7\1\0\2\7\1\0\5\7\3\0\1\7\2\0\1\7\30\0\1\7\13" + + "\0\10\7\2\0\1\7\3\0\1\7\1\0\6\7\3\0\3\7\1\0\4\7\3\0\2\7\1\0\1\7\1\0\2\7\3" + + "\0\2\7\3\0\3\7\3\0\14\7\13\0\10\7\1\0\2\7\10\0\3\7\5\0\1\7\4\0\10\7\1\0\6" + + "\7\1\0\5\7\3\0\1\7\3\0\2\7\15\0\13\7\2\0\1\7\6\0\3\7\10\0\1\7\12\0\6\7\5\0" + + "\22\7\3\0\10\7\1\0\11\7\1\0\1\7\2\0\7\7\11\0\1\7\1\0\2\7\14\0\12\16\7\0\2" + + "\7\1\0\1\7\2\0\2\7\1\0\1\7\2\0\1\7\6\0\4\7\1\0\7\7\1\0\3\7\1\0\1\7\1\0\1\7" + + "\2\0\2\7\1\0\4\7\1\0\2\7\11\0\1\7\2\0\5\7\1\0\1\7\11\0\12\16\2\0\14\7\1\0" + + "\24\7\13\0\5\7\22\0\7\7\4\0\4\7\3\0\1\7\3\0\2\7\7\0\3\7\4\0\15\7\14\0\1\7" + + "\1\0\6\7\1\0\1\7\5\0\1\7\2\0\13\7\1\0\15\7\1\0\4\7\2\0\7\7\1\0\1\7\1\0\4\7" + + "\2\0\1\7\1\0\4\7\2\0\7\7\1\0\1\7\1\0\4\7\2\0\16\7\2\0\6\7\2\0\15\7\2\0\1\7" + + "\1\4\17\7\1\0\10\7\7\0\15\7\1\0\6\7\23\0\1\7\4\0\1\7\3\0\5\7\2\0\22\7\1\0" + + "\1\7\5\0\17\7\1\0\16\7\2\0\5\7\13\0\14\7\13\0\1\7\15\0\7\7\7\0\16\7\15\0\2" + + "\7\12\16\3\0\3\7\11\0\4\7\1\0\4\7\3\0\2\7\11\0\10\7\1\0\1\7\1\0\1\7\1\0\1" + + "\7\1\0\6\7\1\0\7\7\1\0\1\7\3\0\3\7\1\0\7\7\3\0\4\7\2\0\6\7\4\0\13\4\15\0\2" + + "\1\5\0\1\4\17\0\1\4\1\0\1\7\15\0\1\7\2\0\1\7\4\0\1\7\2\0\12\7\1\0\1\7\3\0" + + "\5\7\6\0\1\7\1\0\1\7\1\0\1\7\1\0\4\7\1\0\13\7\2\0\4\7\5\0\5\7\4\0\1\7\4\0" + + "\2\7\13\0\5\7\6\0\4\7\3\0\2\7\14\0\10\7\7\0\10\7\1\0\7\7\1\0\1\4\4\0\2\7\12" + + "\0\5\7\5\0\2\7\3\0\7\7\6\0\3\7\12\16\2\7\13\0\11\7\2\0\27\7\2\0\7\7\1\0\3" + + "\7\1\0\4\7\1\0\4\7\2\0\6\7\3\0\1\7\1\0\1\7\2\0\5\7\1\0\12\7\12\16\5\7\1\0" + + "\3\7\1\0\10\7\4\0\7\7\3\0\1\7\3\0\2\7\1\0\1\7\3\0\2\7\2\0\5\7\2\0\1\7\1\0" + + "\1\7\30\0\3\7\3\0\6\7\2\0\6\7\2\0\6\7\11\0\7\7\4\0\5\7\3\0\5\7\5\0\1\7\1\0" + + "\10\7\1\0\5\7\1\0\1\7\1\0\2\7\1\0\2\7\1\0\12\7\6\0\12\7\2\0\6\7\2\0\6\7\2" + + "\0\6\7\2\0\3\7\3\0\14\7\1\0\16\7\1\0\2\7\1\0\2\7\1\0\10\7\6\0\4\7\4\0\16\7" + + "\2\0\1\7\1\0\14\7\1\0\2\7\3\0\1\7\2\0\4\7\1\0\2\7\12\0\10\7\6\0\6\7\1\0\3" + + "\7\1\0\12\7\3\0\1\7\12\0\4\7\13\0\12\16\1\7\1\0\1\7\3\0\7\7\1\0\1\7\1\0\4" + + "\7\1\0\17\7\1\0\2\7\14\0\3\7\7\0\4\7\11\0\2\7\1\0\1\7\20\0\4\7\10\0\1\7\13" + + "\0\10\7\5\0\3\7\2\0\1\7\2\0\2\7\2\0\4\7\1\0\14\7\1\0\1\7\1\0\7\7\1\0\21\7" + + "\1\0\4\7\2\0\10\7\1\0\7\7\1\0\14\7\1\0\4\7\1\0\5\7\1\0\1\7\3\0\14\7\2\0\13" + + "\7\1\0\10\7\2\0\22\16\1\0\2\7\1\0\1\7\2\0\1\7\1\0\12\7\1\0\4\7\1\0\1\7\1\0" + + "\1\7\6\0\1\7\4\0\1\7\1\0\1\7\1\0\1\7\1\0\3\7\1\0\2\7\1\0\1\7\2\0\1\7\1\0\1" + + "\7\1\0\1\7\1\0\1\7\1\0\1\7\1\0\2\7\1\0\1\7\2\0\4\7\1\0\7\7\1\0\4\7\1\0\4\7" + + "\1\0\1\7\1\0\12\7\1\0\5\7\1\0\3\7\1\0\5\7\1\0\5\7"); /** * Translates DFA states to action switch labels. @@ -177,22 +181,24 @@ public class _M68kLexer implements FlexLexer { private static final int[] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\2\2\1\3\15\4\1\5\1\4\1\6" + - "\1\7\1\10\4\1\1\11\1\12\1\13\1\14\1\15" + - "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25" + - "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\7\0" + - "\1\35\10\4\1\36\1\4\1\37\1\40\1\4\1\41" + - "\1\42\3\4\1\43\1\44\1\45\1\46\1\47\1\0" + - "\1\50\7\0\1\51\1\52\1\53\1\54\1\55\1\56" + - "\1\57\1\60\1\61\6\0\1\41\3\0\1\62\1\4" + - "\1\63\1\4\1\64\1\65\1\4\1\66\5\4\1\50" + - "\10\0\1\67\1\63\1\70\1\71\1\72\1\73\1\74" + - "\3\4\1\75\1\4\1\76\1\67\1\73\1\74\3\0" + - "\1\75\1\0\1\76\3\4\1\77\3\0\1\77\2\4" + - "\1\100\2\0\1\100\1\101\1\102\1\101\1\102"; + "\6\0\1\1\2\2\1\3\1\4\1\1\1\5\1\6" + + "\2\7\1\2\1\10\3\6\2\11\10\12\1\13\1\1" + + "\1\14\1\6\1\15\4\6\1\16\1\17\1\20\1\21" + + "\1\22\5\6\1\23\1\24\1\25\1\26\1\6\1\27" + + "\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37" + + "\1\40\1\41\1\42\1\43\1\44\2\6\1\17\1\0" + + "\1\45\1\4\2\46\1\2\2\6\1\47\11\12\1\50" + + "\1\51\1\52\1\53\1\54\1\55\1\6\1\56\1\50" + + "\1\51\1\57\1\60\1\6\1\61\1\0\1\62\6\0" + + "\1\6\1\63\1\0\1\64\1\62\1\65\1\66\2\6" + + "\1\67\1\70\1\71\2\6\2\0\1\4\1\46\4\12" + + "\1\72\4\12\1\73\1\74\1\75\1\76\2\0\2\12" + + "\1\77\1\12\1\100\1\101\1\102\1\103\1\104\1\105" + + "\1\12\1\106\1\0\3\12\1\107\1\110\2\12\1\111" + + "\1\112"; private static int[] zzUnpackAction() { - int[] result = new int[168]; + int[] result = new int[167]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -217,30 +223,30 @@ public class _M68kLexer implements FlexLexer { private static final int[] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\74\0\74\0\170\0\264\0\360\0\u012c\0\u0168" + - "\0\u01a4\0\u01e0\0\u021c\0\u0258\0\u0294\0\u02d0\0\u030c\0\u0348" + - "\0\u0384\0\u03c0\0\u03fc\0\u0438\0\u0474\0\u04b0\0\u04ec\0\u0528" + - "\0\u0564\0\u05a0\0\u05dc\0\u0618\0\u0654\0\u0690\0\74\0\u0690" + - "\0\74\0\74\0\74\0\74\0\74\0\74\0\u06cc\0\u0708" + - "\0\74\0\74\0\74\0\74\0\u0744\0\u0780\0\74\0\u07bc" + - "\0\u07f8\0\u0834\0\u0870\0\u08ac\0\u08e8\0\u0924\0\u0690\0\u0960" + - "\0\u099c\0\u09d8\0\u0a14\0\u0a50\0\u0a8c\0\u0ac8\0\u0b04\0\u012c" + - "\0\u0b40\0\u012c\0\u012c\0\u0b7c\0\u0bb8\0\u012c\0\u0bf4\0\u0c30" + - "\0\u0c6c\0\74\0\74\0\u04b0\0\u04ec\0\u0528\0\u0564\0\74" + - "\0\u0ca8\0\u05a0\0\u0ce4\0\u05dc\0\u0d20\0\u0d5c\0\u0d98\0\u0d5c" + - "\0\u0d5c\0\u0d5c\0\74\0\74\0\74\0\74\0\74\0\74" + - "\0\u0dd4\0\u0e10\0\u0e4c\0\u0e88\0\u0ec4\0\u0f00\0\u0f3c\0\u0f78" + - "\0\u0fb4\0\u0ff0\0\u012c\0\u102c\0\u1068\0\u10a4\0\u012c\0\u012c" + - "\0\u10e0\0\u012c\0\u111c\0\u1158\0\u1194\0\u11d0\0\u120c\0\u0d5c" + - "\0\u1248\0\u1284\0\u12c0\0\u12fc\0\u1338\0\u1374\0\u13b0\0\u13ec" + - "\0\u012c\0\u1428\0\u1428\0\u1428\0\u1428\0\u012c\0\u012c\0\u1464" + - "\0\u14a0\0\u14dc\0\u012c\0\u1518\0\u012c\0\74\0\74\0\74" + - "\0\u1554\0\u1590\0\u15cc\0\74\0\u1608\0\74\0\u1644\0\u1680" + - "\0\u16bc\0\u012c\0\u16f8\0\u1734\0\u1770\0\74\0\u17ac\0\u17e8" + - "\0\u012c\0\u1824\0\u1860\0\74\0\u012c\0\u012c\0\74\0\74"; + "\0\0\0\102\0\204\0\306\0\u0108\0\u014a\0\u018c\0\u018c" + + "\0\u01ce\0\u0210\0\u0252\0\u0294\0\u02d6\0\u0318\0\u018c\0\u035a" + + "\0\u039c\0\u03de\0\u0420\0\u0462\0\u04a4\0\u018c\0\u04e6\0\u0528" + + "\0\u056a\0\u05ac\0\u05ee\0\u0630\0\u0672\0\u06b4\0\u06f6\0\u0738" + + "\0\u077a\0\u07bc\0\u07fe\0\u0840\0\u0882\0\u08c4\0\u0906\0\u0948" + + "\0\u098a\0\u09cc\0\u0318\0\u0a0e\0\u0a50\0\u0a92\0\u0ad4\0\u0b16" + + "\0\u0b58\0\u0b9a\0\u0bdc\0\u0c1e\0\u0c60\0\u0318\0\u0ca2\0\u0ce4" + + "\0\u0d26\0\u0d68\0\u0318\0\u0318\0\u0318\0\u0318\0\u0318\0\u0318" + + "\0\u0318\0\u0318\0\u0318\0\u0318\0\u0318\0\u0daa\0\u0dec\0\u0318" + + "\0\u0e2e\0\u0e70\0\u0eb2\0\u0ef4\0\u0f36\0\u0f78\0\u0fba\0\u0ffc" + + "\0\u103e\0\u1080\0\u10c2\0\u1104\0\u1146\0\u1188\0\u11ca\0\u120c" + + "\0\u124e\0\u1290\0\u018c\0\u018c\0\u0318\0\u0318\0\u0318\0\u0318" + + "\0\u12d2\0\u018c\0\u0318\0\u0318\0\u0a0e\0\u0a50\0\u1314\0\u0ad4" + + "\0\u1356\0\u018c\0\u1398\0\u13da\0\u141c\0\u145e\0\u14a0\0\u14e2" + + "\0\u1524\0\u14e2\0\u1566\0\u14e2\0\u14e2\0\u018c\0\u018c\0\u0c60" + + "\0\u15a8\0\u018c\0\u018c\0\u018c\0\u15ea\0\u162c\0\u166e\0\u16b0" + + "\0\u018c\0\u018c\0\u16f2\0\u1734\0\u1776\0\u17b8\0\u17fa\0\u183c" + + "\0\u187e\0\u18c0\0\u1902\0\u0318\0\u0318\0\u0318\0\u0318\0\u1944" + + "\0\u1986\0\u19c8\0\u1a0a\0\u05ac\0\u1a4c\0\u05ac\0\u05ac\0\u05ac" + + "\0\u05ac\0\u05ac\0\u05ac\0\u1a8e\0\u05ac\0\u0e70\0\u1ad0\0\u1b12" + + "\0\u1b54\0\u05ac\0\u05ac\0\u1b96\0\u1bd8\0\u05ac\0\u05ac"; private static int[] zzUnpackRowMap() { - int[] result = new int[168]; + int[] result = new int[167]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -263,103 +269,182 @@ public class _M68kLexer implements FlexLexer { private static final int[] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\2\3\1\4\1\5\1\6\1\7\1\10\1\11" + - "\1\7\1\12\1\7\1\13\1\14\1\7\1\15\1\7" + - "\1\16\1\7\1\17\1\7\1\20\1\21\1\22\1\23" + - "\1\24\1\13\1\7\1\2\1\25\1\7\1\26\1\23" + - "\1\27\1\23\1\30\1\31\1\2\1\32\1\33\1\34" + - "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44" + - "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54" + - "\1\55\1\56\1\57\76\0\1\3\75\0\1\5\1\60" + - "\4\0\1\61\2\0\1\62\1\0\1\63\3\0\1\64" + - "\1\0\1\65\1\0\1\66\1\0\1\62\20\0\1\67" + - "\1\0\1\67\24\0\1\7\1\70\1\7\1\71\1\72" + - "\6\7\1\73\14\7\1\0\1\7\1\0\1\7\1\0" + - "\1\7\36\0\30\7\1\0\1\7\1\0\1\7\1\0" + - "\1\7\36\0\10\7\1\74\13\7\1\74\3\7\1\0" + - "\1\7\1\0\1\7\1\0\1\7\36\0\15\7\1\75" + - "\12\7\1\0\1\7\1\0\1\7\1\0\1\7\36\0" + - "\4\7\1\76\1\77\22\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\5\7\1\100\22\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\1\101\6\7\1\102" + - "\12\7\1\103\5\7\1\0\1\7\1\0\1\7\1\0" + - "\1\7\36\0\4\7\1\104\11\7\1\105\11\7\1\0" + - "\1\7\1\0\1\7\1\0\1\7\36\0\23\7\1\106" + - "\4\7\1\0\1\7\1\0\1\106\1\0\1\7\36\0" + - "\21\7\1\107\6\7\1\0\1\7\1\0\1\7\1\0" + - "\1\7\36\0\21\7\1\110\6\7\1\0\1\7\1\0" + - "\1\7\1\0\1\7\36\0\23\7\1\102\4\7\1\0" + - "\1\7\1\0\1\102\1\0\1\7\36\0\1\111\27\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\61\0\1\23" + - "\7\0\1\23\1\0\1\23\36\0\1\101\21\7\1\103" + - "\2\7\1\102\2\7\1\0\1\7\1\0\1\7\1\0" + - "\1\7\46\0\1\112\2\0\1\113\1\0\1\112\6\0" + - "\1\112\4\0\1\113\75\0\1\114\40\0\1\115\4\0" + - "\1\115\6\0\3\115\2\0\1\115\1\0\1\115\7\0" + - "\1\115\1\0\1\115\61\0\1\116\7\0\1\116\33\0" + - "\44\117\1\120\1\121\26\117\45\122\1\123\1\120\25\122" + - "\45\124\1\125\1\124\1\120\24\124\44\126\1\0\1\127" + - "\2\126\1\130\1\131\11\126\1\132\10\126\51\0\1\133" + - "\11\0\1\134\10\0\1\67\3\0\70\67\63\0\1\135" + - "\73\0\1\136\101\0\1\137\74\0\1\140\11\0\1\141" + - "\1\142\6\0\1\143\64\0\1\144\67\0\1\145\77\0" + - "\1\146\11\0\1\147\76\0\1\150\73\0\1\151\52\0" + - "\1\152\73\0\2\7\1\153\25\7\1\0\1\7\1\0" + - "\1\7\1\0\1\7\36\0\1\154\27\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\14\7\1\155\13\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\36\0\10\7" + - "\1\156\13\7\1\156\3\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\7\7\1\157\15\7\1\157\2\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\36\0\22\7" + - "\1\160\5\7\1\0\1\7\1\0\1\7\1\0\1\7" + - "\36\0\6\7\1\161\21\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\22\7\1\162\5\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\5\7\1\163\22\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\36\0\5\7" + - "\1\164\22\7\1\0\1\7\1\0\1\7\1\0\1\7" + - "\36\0\23\105\1\7\2\105\2\7\1\0\1\105\1\0" + - "\1\7\1\0\1\7\36\0\12\7\1\165\15\7\1\0" + - "\1\7\1\0\1\7\1\0\1\7\36\0\5\7\1\166" + - "\22\7\1\0\1\7\1\0\1\7\1\0\1\7\36\0" + - "\7\7\1\167\15\7\1\167\2\7\1\0\1\7\1\0" + - "\1\7\1\0\1\7\31\0\1\117\3\0\70\117\1\122" + - "\3\0\70\122\1\124\3\0\70\124\44\126\1\0\1\127" + - "\3\126\1\170\23\126\3\0\70\126\5\0\1\171\107\0" + - "\1\155\67\0\1\172\13\0\1\172\55\0\1\173\72\0" + - "\1\174\73\0\1\175\66\0\23\147\1\0\2\147\3\0" + - "\1\147\54\0\1\176\66\0\1\177\75\0\1\200\15\0" + - "\1\200\46\0\4\7\1\201\23\7\1\0\1\7\1\0" + - "\1\7\1\0\1\7\31\0\1\202\3\0\6\202\1\203" + - "\12\202\1\204\1\202\1\205\44\202\5\0\1\206\27\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\36\0\7\7" + - "\1\207\15\7\1\207\2\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\11\7\1\210\16\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\13\7\1\211\1\7" + - "\1\212\12\7\1\0\1\7\1\0\1\7\1\0\1\7" + - "\36\0\13\7\1\213\14\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\22\7\1\214\5\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\11\7\1\215\16\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\42\0\1\216" + - "\67\0\1\217\102\0\1\220\15\0\1\220\57\0\1\221" + - "\75\0\1\222\1\0\1\223\71\0\1\224\102\0\1\225" + - "\62\0\1\226\55\0\1\202\3\0\70\202\5\0\12\7" + - "\1\227\15\7\1\0\1\7\1\0\1\7\1\0\1\7" + - "\36\0\2\7\1\230\25\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\12\7\1\231\15\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\6\7\1\232\21\7" + - "\1\0\1\7\1\0\1\7\1\0\1\7\50\0\1\233" + - "\63\0\1\234\103\0\1\235\67\0\1\236\65\0\6\7" + - "\1\237\21\7\1\0\1\7\1\0\1\7\1\0\1\7" + - "\36\0\14\7\1\240\13\7\1\0\1\7\1\0\1\7" + - "\1\0\1\7\36\0\4\7\1\241\23\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\44\0\1\242\101\0\1\243" + - "\63\0\1\244\67\0\4\7\1\245\23\7\1\0\1\7" + - "\1\0\1\7\1\0\1\7\36\0\1\246\27\7\1\0" + - "\1\7\1\0\1\7\1\0\1\7\42\0\1\247\67\0" + - "\1\250\66\0"; + "\1\7\2\10\1\11\1\12\4\13\1\7\4\13\1\7" + + "\4\13\1\7\1\14\2\7\3\13\2\7\4\13\1\7" + + "\1\13\7\7\2\15\11\13\13\7\1\15\2\7\1\16" + + "\2\17\1\20\1\21\4\22\1\16\3\22\1\23\1\16" + + "\4\22\1\16\1\24\2\16\3\22\2\16\4\22\1\16" + + "\1\22\7\16\2\25\11\22\13\16\1\25\3\16\2\26" + + "\1\27\1\21\1\30\1\31\2\32\1\16\1\33\2\32" + + "\2\16\1\34\3\32\4\16\1\32\1\33\1\32\2\16" + + "\1\31\1\35\2\32\1\16\1\34\7\16\1\25\1\16" + + "\2\32\1\35\4\32\1\36\1\37\16\16\1\7\2\26" + + "\1\27\1\40\17\7\1\41\24\7\1\42\30\7\1\16" + + "\2\26\1\27\1\21\3\16\1\43\1\44\1\45\1\46" + + "\1\47\4\16\1\50\1\16\1\51\1\52\1\53\1\54" + + "\1\16\1\45\1\16\1\55\1\44\1\16\1\56\1\43" + + "\1\47\1\44\1\16\1\57\1\60\1\16\1\61\1\62" + + "\1\63\1\64\1\65\1\66\1\67\1\16\1\56\6\16" + + "\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77" + + "\1\100\1\101\1\102\1\103\1\104\1\105\1\16\2\26" + + "\1\27\1\21\4\16\1\44\1\106\4\16\1\107\3\16" + + "\1\51\1\110\1\53\1\54\1\16\1\106\1\16\1\55" + + "\1\44\4\16\1\44\1\107\1\57\1\60\1\16\1\61" + + "\1\62\1\63\1\64\1\65\12\16\1\70\1\71\1\72" + + "\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102" + + "\1\103\1\104\1\16\104\0\1\10\103\0\1\12\101\0" + + "\1\111\16\13\1\112\1\0\1\113\1\114\3\13\1\0" + + "\7\13\11\0\11\13\23\0\4\115\1\0\4\115\1\0" + + "\4\115\4\0\3\115\2\0\4\115\1\0\1\115\11\0" + + "\11\115\16\0\1\15\3\0\76\15\5\0\16\16\3\0" + + "\4\16\1\0\7\16\11\0\11\16\20\0\1\17\103\0" + + "\1\116\16\16\3\0\4\16\1\0\7\16\11\0\11\16" + + "\23\0\4\22\1\23\3\22\2\23\4\22\2\0\1\113" + + "\1\117\3\22\1\0\1\23\4\22\1\23\1\22\11\0" + + "\11\22\23\0\16\23\2\0\1\113\1\117\3\23\1\0" + + "\7\23\11\0\11\23\23\0\4\120\1\16\4\120\1\16" + + "\4\120\3\0\1\16\3\120\1\0\1\16\4\120\1\16" + + "\1\120\11\0\11\120\16\0\1\42\3\0\1\42\16\25" + + "\3\42\4\25\1\42\7\25\11\42\11\25\16\42\2\0" + + "\1\26\104\0\1\32\1\121\2\32\1\16\3\32\2\16" + + "\4\32\3\0\1\16\3\32\1\0\1\16\1\121\3\32" + + "\1\16\1\32\11\0\1\32\1\122\7\32\23\0\3\32" + + "\1\123\1\16\3\32\2\16\4\32\3\0\1\16\3\32" + + "\1\0\1\16\2\32\1\123\1\32\1\16\1\32\11\0" + + "\11\32\23\0\4\32\1\16\3\32\2\16\4\32\3\0" + + "\1\16\3\32\1\0\1\16\4\32\1\16\1\32\11\0" + + "\11\32\23\0\4\32\1\16\3\32\2\16\1\124\3\32" + + "\3\0\1\16\3\32\1\0\1\16\4\32\1\16\1\124" + + "\11\0\11\32\23\0\4\32\1\16\3\32\2\16\4\32" + + "\3\0\1\16\3\32\1\0\1\16\4\32\1\16\1\32" + + "\11\0\1\125\1\126\2\32\2\127\3\32\23\0\4\32" + + "\1\16\3\32\2\16\4\32\3\0\1\16\3\32\1\0" + + "\1\16\4\32\1\16\1\32\11\0\1\32\1\130\7\32" + + "\23\0\3\32\1\131\1\16\3\32\2\16\4\32\3\0" + + "\1\16\3\32\1\0\1\16\2\32\1\131\1\32\1\16" + + "\1\32\11\0\11\32\23\0\4\32\1\16\3\32\2\16" + + "\1\132\3\32\3\0\1\16\3\32\1\0\1\16\4\32" + + "\1\16\1\132\11\0\11\32\22\0\1\40\124\0\2\133" + + "\1\134\26\0\1\134\21\0\1\42\3\0\76\42\5\0" + + "\4\16\1\135\11\16\3\0\4\16\1\0\1\135\6\16" + + "\11\0\11\16\23\0\4\16\1\44\11\16\3\0\4\16" + + "\1\0\1\44\4\16\1\44\1\16\11\0\11\16\23\0" + + "\6\16\1\135\7\16\3\0\4\16\1\0\7\16\11\0" + + "\10\16\1\136\23\0\16\16\3\0\4\16\1\0\2\16" + + "\1\137\4\16\11\0\2\16\1\137\6\16\23\0\4\16" + + "\1\140\11\16\3\0\4\16\1\0\1\140\6\16\11\0" + + "\11\16\23\0\5\16\1\141\10\16\3\0\2\16\1\141" + + "\1\16\1\0\7\16\11\0\11\16\23\0\16\16\1\142" + + "\2\0\4\16\1\0\7\16\11\0\11\16\23\0\16\16" + + "\3\0\1\16\2\143\1\144\1\0\7\16\11\0\5\16" + + "\1\144\3\16\23\0\4\16\1\145\11\16\3\0\1\16" + + "\1\145\2\16\1\0\7\145\11\0\11\16\23\0\16\16" + + "\3\0\4\16\1\0\1\146\6\16\11\0\11\16\23\0" + + "\16\16\3\0\4\16\1\0\2\16\1\147\4\16\11\0" + + "\2\16\1\147\6\16\23\0\4\16\1\150\11\16\3\0" + + "\4\16\1\0\1\150\6\16\11\0\11\16\16\0\5\151" + + "\16\60\3\151\4\60\1\151\7\60\1\151\1\152\1\153" + + "\6\151\11\60\16\151\5\154\16\61\3\154\4\61\1\154" + + "\7\61\2\154\1\155\1\152\5\154\11\61\16\154\5\156" + + "\16\62\3\156\4\62\1\156\7\62\2\156\1\157\1\156" + + "\1\152\4\156\11\62\16\156\5\160\16\161\1\162\2\160" + + "\4\161\1\160\7\161\1\160\1\0\1\163\2\160\1\164" + + "\1\165\2\160\11\161\16\160\5\0\16\16\1\166\2\0" + + "\4\16\1\0\7\16\6\0\1\167\2\0\11\16\16\0" + + "\1\15\3\0\1\15\16\170\3\15\4\170\1\15\7\170" + + "\11\15\11\170\16\15\5\0\16\16\3\0\1\16\1\171" + + "\2\16\1\0\7\16\11\0\6\16\1\171\2\16\23\0" + + "\16\16\3\0\4\16\1\0\7\16\11\0\11\16\1\172" + + "\22\0\16\16\3\0\4\16\1\0\7\16\11\0\11\16" + + "\1\0\1\173\21\0\16\16\1\174\2\0\4\16\1\0" + + "\7\16\11\0\11\16\23\0\12\16\1\175\3\16\3\0" + + "\4\16\1\0\6\16\1\175\11\0\11\16\23\0\13\16" + + "\1\176\2\16\3\0\4\16\1\0\7\16\11\0\11\16" + + "\22\0\1\111\5\0\1\177\4\0\1\200\3\0\1\112" + + "\4\0\1\177\10\0\1\200\44\0\1\112\122\0\1\201" + + "\101\0\1\202\61\0\16\115\2\0\1\202\1\0\3\115" + + "\1\0\7\115\11\0\11\115\22\0\1\116\102\0\16\16" + + "\2\0\1\202\4\16\1\0\7\16\11\0\11\16\23\0" + + "\16\120\2\0\1\202\1\16\3\120\1\0\7\120\11\0" + + "\11\120\23\0\4\121\1\16\3\121\2\16\4\121\3\0" + + "\1\16\3\121\1\0\1\16\4\121\1\16\1\121\11\0" + + "\11\121\23\0\4\32\1\16\3\32\2\16\4\32\3\0" + + "\1\16\3\32\1\0\1\16\1\32\1\203\2\32\1\16" + + "\1\32\11\0\2\32\1\203\6\32\23\0\1\204\3\32" + + "\1\16\3\32\2\16\4\32\3\0\1\16\3\32\1\0" + + "\1\16\4\32\1\16\1\32\11\0\11\32\23\0\4\32" + + "\1\16\3\32\2\16\4\32\3\0\1\16\3\32\1\0" + + "\1\16\1\32\1\205\2\32\1\16\1\32\11\0\2\32" + + "\1\205\6\32\23\0\4\32\1\16\3\32\2\16\1\206" + + "\3\32\3\0\1\16\3\32\1\0\1\16\4\32\1\16" + + "\1\206\11\0\11\32\23\0\4\32\1\16\2\32\1\207" + + "\2\16\4\32\3\0\1\16\3\32\1\0\1\16\3\32" + + "\1\207\1\16\1\32\11\0\11\32\23\0\4\32\1\16" + + "\1\210\2\32\2\16\4\32\3\0\1\16\1\32\1\210" + + "\1\32\1\0\1\16\4\32\1\16\1\32\11\0\11\32" + + "\23\0\4\32\1\16\3\32\2\16\4\32\3\0\1\16" + + "\3\32\1\0\1\16\4\32\1\16\1\32\11\0\3\32" + + "\1\211\5\32\23\0\4\32\1\16\3\32\2\16\4\32" + + "\3\0\1\16\3\32\1\0\1\16\1\32\1\212\2\32" + + "\1\16\1\32\11\0\2\32\1\212\6\32\23\0\4\32" + + "\1\16\1\32\1\213\1\32\2\16\4\32\3\0\1\16" + + "\3\32\1\0\1\16\4\32\1\16\1\32\11\0\11\32" + + "\23\0\6\16\1\214\7\16\3\0\4\16\1\0\7\16" + + "\11\0\11\16\23\0\16\16\3\0\4\16\1\0\7\16" + + "\11\0\10\16\1\215\16\0\43\151\1\152\1\153\36\151" + + "\3\0\76\151\44\154\1\155\1\152\35\154\3\0\76\154" + + "\44\156\1\157\1\156\1\152\34\156\3\0\76\156\43\160" + + "\1\0\1\163\3\160\1\165\36\160\16\161\3\160\4\161" + + "\1\160\7\161\1\160\1\0\1\163\3\160\1\165\2\160" + + "\11\161\17\160\3\0\76\160\5\0\16\16\3\0\4\16" + + "\1\0\7\16\11\0\10\16\1\216\23\0\15\16\1\217" + + "\3\0\4\16\1\0\7\16\11\0\11\16\23\0\14\16" + + "\1\217\1\16\3\0\4\16\1\0\7\16\11\0\11\16" + + "\35\0\1\220\21\0\1\220\60\0\1\221\66\0\4\32" + + "\1\16\3\32\2\16\4\32\3\0\1\16\1\222\2\32" + + "\1\0\1\16\4\32\1\16\1\32\11\0\4\32\2\223" + + "\1\222\2\32\23\0\4\32\1\16\3\32\2\16\4\32" + + "\3\0\1\16\3\32\1\0\1\16\4\32\1\16\1\32" + + "\11\0\4\32\2\224\3\32\23\0\4\32\1\16\3\32" + + "\2\16\3\32\1\225\3\0\1\16\3\32\1\0\1\16" + + "\4\32\1\16\1\32\11\0\11\32\23\0\4\32\1\16" + + "\3\32\2\16\4\32\3\0\1\16\3\32\1\0\1\16" + + "\4\32\1\16\1\32\11\0\1\32\1\226\7\32\23\0" + + "\4\32\1\16\3\32\2\16\4\32\3\0\1\16\3\32" + + "\1\0\1\16\1\32\1\227\2\32\1\16\1\32\11\0" + + "\2\32\1\227\4\32\1\230\1\231\23\0\4\32\1\16" + + "\3\32\2\16\1\232\3\32\3\0\1\16\3\32\1\0" + + "\1\16\4\32\1\16\1\232\11\0\11\32\23\0\4\32" + + "\1\16\1\32\1\233\1\32\2\16\4\32\3\0\1\16" + + "\3\32\1\0\1\16\4\32\1\16\1\32\11\0\11\32" + + "\23\0\4\32\1\16\3\32\2\16\4\32\3\0\1\16" + + "\3\32\1\0\1\16\4\32\1\16\1\32\11\0\10\32" + + "\1\234\23\0\4\32\1\16\3\32\2\16\3\32\1\235" + + "\3\0\1\16\3\32\1\0\1\16\4\32\1\16\1\32" + + "\11\0\11\32\40\0\1\236\100\0\1\236\65\0\1\237" + + "\3\32\1\16\3\32\2\16\4\32\3\0\1\16\3\32" + + "\1\0\1\16\4\32\1\16\1\32\11\0\11\32\23\0" + + "\4\32\1\16\3\32\2\16\2\32\1\240\1\32\3\0" + + "\1\16\3\32\1\0\1\16\4\32\1\16\1\32\11\0" + + "\11\32\23\0\1\241\3\32\1\16\3\32\2\16\4\32" + + "\3\0\1\16\3\32\1\0\1\16\4\32\1\16\1\32" + + "\11\0\11\32\23\0\4\32\1\16\3\32\2\16\4\32" + + "\3\0\1\16\3\32\1\0\1\16\4\32\1\16\1\32" + + "\11\0\3\32\1\242\5\32\23\0\4\32\1\16\3\32" + + "\2\16\4\32\3\0\1\16\3\32\1\0\1\16\4\32" + + "\1\16\1\32\11\0\1\32\1\243\7\32\23\0\4\32" + + "\1\16\2\32\1\244\2\16\4\32\3\0\1\16\3\32" + + "\1\0\1\16\3\32\1\244\1\16\1\32\11\0\11\32" + + "\23\0\4\32\1\16\3\32\2\16\4\32\3\0\1\16" + + "\3\32\1\0\1\16\4\32\1\16\1\32\11\0\3\32" + + "\1\245\5\32\23\0\4\32\1\16\3\32\2\16\1\246" + + "\3\32\3\0\1\16\3\32\1\0\1\16\4\32\1\16" + + "\1\246\11\0\11\32\23\0\4\32\1\16\3\32\2\16" + + "\4\32\3\0\1\16\3\32\1\0\1\16\4\32\1\16" + + "\1\32\11\0\1\32\1\247\7\32\16\0"; private static int[] zzUnpackTrans() { - int[] result = new int[6300]; + int[] result = new int[7194]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -397,14 +482,13 @@ public class _M68kLexer implements FlexLexer { private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\2\11\33\1\1\11\1\1\6\11\2\1\4\11" + - "\2\1\1\11\7\0\23\1\2\11\3\1\1\0\1\11" + - "\7\0\3\1\6\11\6\0\1\1\3\0\16\1\10\0" + - "\15\1\3\11\3\0\1\11\1\0\1\11\4\1\3\0" + - "\1\11\3\1\2\0\1\11\2\1\2\11"; + "\6\0\2\11\6\1\1\11\6\1\1\11\62\1\1\0" + + "\21\1\2\11\5\1\1\11\6\1\1\0\1\11\6\0" + + "\2\1\1\0\2\1\2\11\2\1\3\11\2\1\2\0" + + "\2\11\15\1\2\0\14\1\1\0\11\1"; private static int[] zzUnpackAttribute() { - int[] result = new int[168]; + int[] result = new int[167]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -491,7 +575,7 @@ public class _M68kLexer implements FlexLexer { * @param in the java.io.Reader to read input from. */ public _M68kLexer(java.io.Reader in) { - zzReader = in; + zzReader = in; } @@ -503,7 +587,9 @@ public class _M68kLexer implements FlexLexer { */ private static char[] zzUnpackCMap(String packed) { int size = 0; - for (int i = 0, length = packed.length(); i < length; i += 2) size += packed.charAt(i); + for (int i = 0, length = packed.length(); i < length; i += 2) { + size += packed.charAt(i); + } char[] map = new char[size]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ @@ -666,7 +752,9 @@ public class _M68kLexer implements FlexLexer { // set up zzAction for empty match case: int zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) zzAction = zzState; + if ((zzAttributes & 1) == 1) { + zzAction = zzState; + } zzForAction: @@ -717,405 +805,465 @@ public class _M68kLexer implements FlexLexer { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; return null; - } else switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: { - return BAD_CHARACTER; - } - // fall through - case 67: - break; - case 2: { - return EOL; - } - // fall through - case 68: - break; - case 3: { - return WHITE_SPACE; - } - // fall through - case 69: - break; - case 4: { - return SYMBOL; - } - // fall through - case 70: - break; - case 5: { - return DECIMAL; - } - // fall through - case 71: - break; - case 6: { - return DOT; - } - // fall through - case 72: - break; - case 7: { - return OP_AR_MOD; - } - // fall through - case 73: - break; - case 8: { - return DOLLAR; - } - // fall through - case 74: - break; - case 9: { - return OP_CMP_LT; - } - // fall through - case 75: - break; - case 10: { - return OP_CMP_GT; - } - // fall through - case 76: - break; - case 11: { - return OP_AR_MUL; - } - // fall through - case 77: - break; - case 12: { - return COLON; - } - // fall through - case 78: - break; - case 13: { - return SEMICOLON; - } - // fall through - case 79: - break; - case 14: { - return SQUARE_L; - } - // fall through - case 80: - break; - case 15: { - return SQUARE_R; - } - // fall through - case 81: - break; - case 16: { - return ROUND_L; - } - // fall through - case 82: - break; - case 17: { - return ROUND_R; - } - // fall through - case 83: - break; - case 18: { - return SEPARATOR; - } - // fall through - case 84: - break; - case 19: { - return HASH; - } - // fall through - case 85: - break; - case 20: { - return OP_ASSIGN; - } - // fall through - case 86: - break; - case 21: { - return OP_UNARY_NOT; - } - // fall through - case 87: - break; - case 22: { - return OP_UNARY_COMPL; - } - // fall through - case 88: - break; - case 23: { - return OP_PLUS; - } - // fall through - case 89: - break; - case 24: { - return OP_MINUS; - } - // fall through - case 90: - break; - case 25: { - return OP_AR_DIV; - } - // fall through - case 91: - break; - case 26: { - return OP_BITWISE_AND; - } - // fall through - case 92: - break; - case 27: { - return OP_BITWISE_OR; - } - // fall through - case 93: - break; - case 28: { - return OP_BITWISE_XOR; - } - // fall through - case 94: - break; - case 29: { - return COMMENT; - } - // fall through - case 95: - break; - case 30: { - return PC; - } - // fall through - case 96: - break; - case 31: { - return AREG; - } - // fall through - case 97: - break; - case 32: { - return REG_SR; - } - // fall through - case 98: - break; - case 33: { - return IF_TAG; - } - // fall through - case 99: - break; - case 34: { - return DREG; - } - // fall through - case 100: - break; - case 35: { - return OPSIZE_BS; - } - // fall through - case 101: - break; - case 36: { - return OPSIZE_WL; - } - // fall through - case 102: - break; - case 37: { - return BINARY; - } - // fall through - case 103: - break; - case 38: { - return HEXADECIMAL; - } - // fall through - case 104: - break; - case 39: { - return OCTAL; - } - // fall through - case 105: - break; - case 40: { - return STRINGLIT; - } - // fall through - case 106: - break; - case 41: { - return OP_AR_SHIFT_L; - } - // fall through - case 107: - break; - case 42: { - return OP_CMP_NOT_EQ2; - } - // fall through - case 108: - break; - case 43: { - return OP_CMP_LT_EQ; - } - // fall through - case 109: - break; - case 44: { - return OP_AR_SHIFT_R; - } - // fall through - case 110: - break; - case 45: { - return OP_CMP_GT_EQ; - } - // fall through - case 111: - break; - case 46: { - return OP_CMP_EQ; - } - // fall through - case 112: - break; - case 47: { - return OP_CMP_NOT_EQ; - } - // fall through - case 113: - break; - case 48: { - return OP_LOGICAL_AND; - } - // fall through - case 114: - break; - case 49: { - return OP_LOGICAL_OR; - } - // fall through - case 115: - break; - case 50: { - return EQU; - } - // fall through - case 116: - break; - case 51: { - return END_TAG; - } - // fall through - case 117: - break; - case 52: { - return REG_USP; - } - // fall through - case 118: - break; - case 53: { - return REG_VBR; - } - // fall through - case 119: - break; - case 54: { - return REG_CCR; - } - // fall through - case 120: - break; - case 55: { - return EVEN_TAG; - } - // fall through - case 121: - break; - case 56: { - return ENDC_TAG; - } - // fall through - case 122: - break; - case 57: { - return MACRO_END_TAG; - } - // fall through - case 123: - break; - case 58: { - return REPT_END_TAG; - } - // fall through - case 124: - break; - case 59: { - return ELSE_TAG; - } - // fall through - case 125: - break; - case 60: { - return CNOP_TAG; - } - // fall through - case 126: - break; - case 61: { - return FAIL_TAG; - } - // fall through - case 127: - break; - case 62: { - return REPT_TAG; - } - // fall through - case 128: - break; - case 63: { - return MACRO_TAG; - } - // fall through - case 129: - break; - case 64: { - return INCBIN_TAG; - } - // fall through - case 130: - break; - case 65: { - return SECTION_TAG; - } - // fall through - case 131: - break; - case 66: { - return INCLUDE_TAG; - } - // fall through - case 132: - break; - default: - zzScanError(ZZ_NO_MATCH); + } else { + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: { + return BAD_CHARACTER; + } + // fall through + case 75: + break; + case 2: { + return WHITE_SPACE; + } + // fall through + case 76: + break; + case 3: { + yybegin(NOSOL); + return WHITE_SPACE; + } + // fall through + case 77: + break; + case 4: { + yybegin(INSTRPART); + return GLOBAL_LABEL_DEF; + } + // fall through + case 78: + break; + case 5: { + return COMMENT; + } + // fall through + case 79: + break; + case 6: { + return SYMBOL; + } + // fall through + case 80: + break; + case 7: { + yybegin(YYINITIAL); + return WHITE_SPACE; + } + // fall through + case 81: + break; + case 8: { + yybegin(ASMINSTR); + return isAsmMnemonic(yytext()) ? MNEMONIC : SYMBOL; + } + // fall through + case 82: + break; + case 9: { + yybegin(YYINITIAL); + return EOL; + } + // fall through + case 83: + break; + case 10: { + return isAsmMnemonic(yytext()) ? MNEMONIC : SYMBOL; + } + // fall through + case 84: + break; + case 11: { + yybegin(ASMOPS); + return WHITE_SPACE; + } + // fall through + case 85: + break; + case 12: { + yybegin(YYINITIAL); + return COMMENT; + } + // fall through + case 86: + break; + case 13: { + return DECIMAL; + } + // fall through + case 87: + break; + case 14: { + return OP_ASSIGN; + } + // fall through + case 88: + break; + case 15: { + return DOT; + } + // fall through + case 89: + break; + case 16: { + return COLON; + } + // fall through + case 90: + break; + case 17: { + return DOLLAR; + } + // fall through + case 91: + break; + case 18: { + return OP_AR_MOD; + } + // fall through + case 92: + break; + case 19: { + return OP_CMP_LT; + } + // fall through + case 93: + break; + case 20: { + return OP_CMP_GT; + } + // fall through + case 94: + break; + case 21: { + return SEMICOLON; + } + // fall through + case 95: + break; + case 22: { + return HASH; + } + // fall through + case 96: + break; + case 23: { + return OP_BITWISE_AND; + } + // fall through + case 97: + break; + case 24: { + return OP_BITWISE_OR; + } + // fall through + case 98: + break; + case 25: { + return OP_UNARY_NOT; + } + // fall through + case 99: + break; + case 26: { + return OP_BITWISE_XOR; + } + // fall through + case 100: + break; + case 27: { + return SQUARE_L; + } + // fall through + case 101: + break; + case 28: { + return SQUARE_R; + } + // fall through + case 102: + break; + case 29: { + return ROUND_L; + } + // fall through + case 103: + break; + case 30: { + return ROUND_R; + } + // fall through + case 104: + break; + case 31: { + return OP_UNARY_COMPL; + } + // fall through + case 105: + break; + case 32: { + return OP_PLUS; + } + // fall through + case 106: + break; + case 33: { + return OP_MINUS; + } + // fall through + case 107: + break; + case 34: { + return OP_AR_MUL; + } + // fall through + case 108: + break; + case 35: { + return OP_AR_DIV; + } + // fall through + case 109: + break; + case 36: { + return SEPARATOR; + } + // fall through + case 110: + break; + case 37: { + yybegin(ASSIGNMENT); + yypushback(pushbackAssignment(yytext())); + return SYMBOLDEF; + } + // fall through + case 111: + break; + case 38: { + yybegin(INSTRPART); + return LOCAL_LABEL_DEF; + } + // fall through + case 112: + break; + case 39: { + return IF_TAG; + } + // fall through + case 113: + break; + case 40: { + return OPSIZE_BS; + } + // fall through + case 114: + break; + case 41: { + return OPSIZE_WL; + } + // fall through + case 115: + break; + case 42: { + return AREG; + } + // fall through + case 116: + break; + case 43: { + return REG_SR; + } + // fall through + case 117: + break; + case 44: { + return PC; + } + // fall through + case 118: + break; + case 45: { + return DREG; + } + // fall through + case 119: + break; + case 46: { + return OP_CMP_EQ; + } + // fall through + case 120: + break; + case 47: { + return HEXADECIMAL; + } + // fall through + case 121: + break; + case 48: { + return BINARY; + } + // fall through + case 122: + break; + case 49: { + return OCTAL; + } + // fall through + case 123: + break; + case 50: { + return STRINGLIT; + } + // fall through + case 124: + break; + case 51: { + return OP_CMP_LT_EQ; + } + // fall through + case 125: + break; + case 52: { + return OP_AR_SHIFT_L; + } + // fall through + case 126: + break; + case 53: { + return OP_CMP_GT_EQ; + } + // fall through + case 127: + break; + case 54: { + return OP_AR_SHIFT_R; + } + // fall through + case 128: + break; + case 55: { + return OP_LOGICAL_AND; + } + // fall through + case 129: + break; + case 56: { + return OP_LOGICAL_OR; + } + // fall through + case 130: + break; + case 57: { + return OP_CMP_NOT_EQ; + } + // fall through + case 131: + break; + case 58: { + return END_TAG; + } + // fall through + case 132: + break; + case 59: { + return REG_USP; + } + // fall through + case 133: + break; + case 60: { + return REG_CCR; + } + // fall through + case 134: + break; + case 61: { + return REG_VBR; + } + // fall through + case 135: + break; + case 62: { + return EQU; + } + // fall through + case 136: + break; + case 63: { + return FAIL_TAG; + } + // fall through + case 137: + break; + case 64: { + return EVEN_TAG; + } + // fall through + case 138: + break; + case 65: { + return ENDC_TAG; + } + // fall through + case 139: + break; + case 66: { + return MACRO_END_TAG; + } + // fall through + case 140: + break; + case 67: { + return REPT_END_TAG; + } + // fall through + case 141: + break; + case 68: { + return ELSE_TAG; + } + // fall through + case 142: + break; + case 69: { + return CNOP_TAG; + } + // fall through + case 143: + break; + case 70: { + return REPT_TAG; + } + // fall through + case 144: + break; + case 71: { + return MACRO_TAG; + } + // fall through + case 145: + break; + case 72: { + return INCBIN_TAG; + } + // fall through + case 146: + break; + case 73: { + return INCLUDE_TAG; + } + // fall through + case 147: + break; + case 74: { + return SECTION_TAG; + } + // fall through + case 148: + break; + default: + zzScanError(ZZ_NO_MATCH); + } } } } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/parser/M68kParser.java b/src/main/gen/de/platon42/intellij/plugins/m68k/parser/M68kParser.java index 141dfb9..ef8ce3b 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/parser/M68kParser.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/parser/M68kParser.java @@ -37,12 +37,13 @@ public class M68kParser implements PsiParser, LightPsiParser { } public static final TokenSet[] EXTENDS_SETS_ = new TokenSet[]{ + create_token_set_(GLOBAL_LABEL, LABEL, LOCAL_LABEL), create_token_set_(ADDRESS_REGISTER, DATA_REGISTER, REGISTER, SPECIAL_REGISTER), create_token_set_(ABSOLUTE_ADDRESS_ADDRESSING_MODE, ADDRESSING_MODE, ADDRESS_REGISTER_DIRECT_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_POST_INC_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_PRE_DEC_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_WITH_DISPLACEMENT_NEW_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_WITH_DISPLACEMENT_OLD_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_WITH_INDEX_NEW_ADDRESSING_MODE, ADDRESS_REGISTER_INDIRECT_WITH_INDEX_OLD_ADDRESSING_MODE, DATA_REGISTER_DIRECT_ADDRESSING_MODE, IMMEDIATE_DATA, PROGRAM_COUNTER_INDIRECT_WITH_DISPLACEMENT_NEW_ADDRESSING_MODE, PROGRAM_COUNTER_INDIRECT_WITH_DISPLACEMENT_OLD_ADDRESSING_MODE, PROGRAM_COUNTER_INDIRECT_WITH_INDEX_NEW_ADDRESSING_MODE, PROGRAM_COUNTER_INDIRECT_WITH_INDEX_OLD_ADDRESSING_MODE, - SPECIAL_REGISTER_DIRECT_ADDRESSING_MODE), + REGISTER_LIST_ADDRESSING_MODE, SPECIAL_REGISTER_DIRECT_ADDRESSING_MODE), create_token_set_(BINARY_ADD_EXPR, BINARY_BITWISE_AND_EXPR, BINARY_BITWISE_OR_EXPR, BINARY_BITWISE_XOR_EXPR, BINARY_CMP_EQ_EXPR, BINARY_CMP_GE_EXPR, BINARY_CMP_GT_EXPR, BINARY_CMP_LE_EXPR, BINARY_CMP_LT_EXPR, BINARY_CMP_NE_EXPR, BINARY_DIV_EXPR, BINARY_LOGICAL_AND_EXPR, @@ -95,17 +96,37 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // AddressRegister + // AddressRegister !(OP_MINUS|OP_AR_DIV) public static boolean AddressRegisterDirectAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "AddressRegisterDirectAddressingMode")) return false; if (!nextTokenIsFast(b, AREG)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, ADDRESS_REGISTER_DIRECT_ADDRESSING_MODE, ""); r = AddressRegister(b, l + 1); + r = r && AddressRegisterDirectAddressingMode_1(b, l + 1); exit_section_(b, l, m, r, false, null); return r; } + // !(OP_MINUS|OP_AR_DIV) + private static boolean AddressRegisterDirectAddressingMode_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "AddressRegisterDirectAddressingMode_1")) return false; + boolean r; + Marker m = enter_section_(b, l, _NOT_); + r = !AddressRegisterDirectAddressingMode_1_0(b, l + 1); + exit_section_(b, l, m, r, false, null); + return r; + } + + // OP_MINUS|OP_AR_DIV + private static boolean AddressRegisterDirectAddressingMode_1_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "AddressRegisterDirectAddressingMode_1_0")) return false; + boolean r; + r = consumeTokenFast(b, OP_MINUS); + if (!r) r = consumeTokenFast(b, OP_AR_DIV); + return r; + } + /* ********************************************************** */ // ROUND_L AddressRegister ROUND_R !OP_PLUS public static boolean AddressRegisterIndirectAddressingMode(PsiBuilder b, int l) { @@ -267,6 +288,7 @@ public class M68kParser implements PsiParser, LightPsiParser { // | ProgramCounterIndirectWithIndexNewAddressingMode // | AddressRegisterIndirectPreDecAddressingMode // | AddressRegisterIndirectPostIncAddressingMode + // | RegisterListAddressingMode // | ImmediateData public static boolean AddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "AddressingMode")) return false; @@ -287,16 +309,17 @@ public class M68kParser implements PsiParser, LightPsiParser { if (!r) r = ProgramCounterIndirectWithIndexNewAddressingMode(b, l + 1); if (!r) r = AddressRegisterIndirectPreDecAddressingMode(b, l + 1); if (!r) r = AddressRegisterIndirectPostIncAddressingMode(b, l + 1); + if (!r) r = RegisterListAddressingMode(b, l + 1); if (!r) r = ImmediateData(b, l + 1); exit_section_(b, l, m, r, false, null); return r; } /* ********************************************************** */ - // AsmOp (WHITE_SPACE AsmOperands)? + // AsmOp AsmOperands? public static boolean AsmInstruction(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "AsmInstruction")) return false; - if (!nextTokenIs(b, SYMBOL)) return false; + if (!nextTokenIs(b, MNEMONIC)) return false; boolean r; Marker m = enter_section_(b); r = AsmOp(b, l + 1); @@ -305,32 +328,21 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (WHITE_SPACE AsmOperands)? + // AsmOperands? private static boolean AsmInstruction_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "AsmInstruction_1")) return false; - AsmInstruction_1_0(b, l + 1); + AsmOperands(b, l + 1); return true; } - // WHITE_SPACE AsmOperands - private static boolean AsmInstruction_1_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "AsmInstruction_1_0")) return false; - boolean r; - Marker m = enter_section_(b); - r = consumeToken(b, WHITE_SPACE); - r = r && AsmOperands(b, l + 1); - exit_section_(b, m, null, r); - return r; - } - /* ********************************************************** */ - // SYMBOL OperandSize? + // MNEMONIC OperandSize? public static boolean AsmOp(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "AsmOp")) return false; - if (!nextTokenIs(b, SYMBOL)) return false; + if (!nextTokenIs(b, MNEMONIC)) return false; boolean r; Marker m = enter_section_(b); - r = consumeToken(b, SYMBOL); + r = consumeToken(b, MNEMONIC); r = r && AsmOp_1(b, l + 1); exit_section_(b, m, ASM_OP, r); return r; @@ -378,74 +390,28 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // SYMBOL ((WHITE_SPACE? OP_ASSIGN WHITE_SPACE?)|(WHITE_SPACE EQU WHITE_SPACE)) expr + // SYMBOLDEF (OP_ASSIGN|EQU) expr public static boolean Assignment(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "Assignment")) return false; - if (!nextTokenIs(b, SYMBOL)) return false; + if (!nextTokenIs(b, SYMBOLDEF)) return false; boolean r; Marker m = enter_section_(b); - r = consumeToken(b, SYMBOL); + r = consumeToken(b, SYMBOLDEF); r = r && Assignment_1(b, l + 1); r = r && expr(b, l + 1, -1); exit_section_(b, m, ASSIGNMENT, r); return r; } - // (WHITE_SPACE? OP_ASSIGN WHITE_SPACE?)|(WHITE_SPACE EQU WHITE_SPACE) + // OP_ASSIGN|EQU private static boolean Assignment_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "Assignment_1")) return false; boolean r; - Marker m = enter_section_(b); - r = Assignment_1_0(b, l + 1); - if (!r) r = Assignment_1_1(b, l + 1); - exit_section_(b, m, null, r); + r = consumeToken(b, OP_ASSIGN); + if (!r) r = consumeToken(b, EQU); return r; } - // WHITE_SPACE? OP_ASSIGN WHITE_SPACE? - private static boolean Assignment_1_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "Assignment_1_0")) return false; - boolean r; - Marker m = enter_section_(b); - r = Assignment_1_0_0(b, l + 1); - r = r && consumeToken(b, OP_ASSIGN); - r = r && Assignment_1_0_2(b, l + 1); - exit_section_(b, m, null, r); - return r; - } - - // WHITE_SPACE? - private static boolean Assignment_1_0_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "Assignment_1_0_0")) return false; - consumeToken(b, WHITE_SPACE); - return true; - } - - // WHITE_SPACE? - private static boolean Assignment_1_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "Assignment_1_0_2")) return false; - consumeToken(b, WHITE_SPACE); - return true; - } - - // WHITE_SPACE EQU WHITE_SPACE - private static boolean Assignment_1_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "Assignment_1_1")) return false; - boolean r; - Marker m = enter_section_(b); - r = consumeTokens(b, 0, WHITE_SPACE, EQU, WHITE_SPACE); - exit_section_(b, m, null, r); - return r; - } - - /* ********************************************************** */ - // WHITE_SPACE? - static boolean BlankLine(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "BlankLine")) return false; - consumeToken(b, WHITE_SPACE); - return true; - } - /* ********************************************************** */ // DataRegister | AddressRegister static boolean DataOrAddressRegister(PsiBuilder b, int l) { @@ -472,17 +438,37 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // DataRegister + // DataRegister !(OP_MINUS|OP_AR_DIV) public static boolean DataRegisterDirectAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "DataRegisterDirectAddressingMode")) return false; if (!nextTokenIsFast(b, DREG)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, DATA_REGISTER_DIRECT_ADDRESSING_MODE, ""); r = DataRegister(b, l + 1); + r = r && DataRegisterDirectAddressingMode_1(b, l + 1); exit_section_(b, l, m, r, false, null); return r; } + // !(OP_MINUS|OP_AR_DIV) + private static boolean DataRegisterDirectAddressingMode_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "DataRegisterDirectAddressingMode_1")) return false; + boolean r; + Marker m = enter_section_(b, l, _NOT_); + r = !DataRegisterDirectAddressingMode_1_0(b, l + 1); + exit_section_(b, l, m, r, false, null); + return r; + } + + // OP_MINUS|OP_AR_DIV + private static boolean DataRegisterDirectAddressingMode_1_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "DataRegisterDirectAddressingMode_1_0")) return false; + boolean r; + r = consumeTokenFast(b, OP_MINUS); + if (!r) r = consumeTokenFast(b, OP_AR_DIV); + return r; + } + /* ********************************************************** */ // OPSIZE_WL public static boolean DataWidth(PsiBuilder b, int l) { @@ -502,98 +488,17 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // (!WHITE_SPACE SYMBOL (COLON? COLON?)?)|(WHITE_SPACE? SYMBOL COLON COLON?) + // GLOBAL_LABEL_DEF public static boolean GlobalLabel(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "GlobalLabel")) return false; - if (!nextTokenIs(b, "", SYMBOL, WHITE_SPACE)) return false; - boolean r; - Marker m = enter_section_(b, l, _NONE_, GLOBAL_LABEL, ""); - r = GlobalLabel_0(b, l + 1); - if (!r) r = GlobalLabel_1(b, l + 1); - exit_section_(b, l, m, r, false, null); - return r; - } - - // !WHITE_SPACE SYMBOL (COLON? COLON?)? - private static boolean GlobalLabel_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_0")) return false; + if (!nextTokenIs(b, GLOBAL_LABEL_DEF)) return false; boolean r; Marker m = enter_section_(b); - r = GlobalLabel_0_0(b, l + 1); - r = r && consumeToken(b, SYMBOL); - r = r && GlobalLabel_0_2(b, l + 1); - exit_section_(b, m, null, r); + r = consumeToken(b, GLOBAL_LABEL_DEF); + exit_section_(b, m, GLOBAL_LABEL, r); return r; } - // !WHITE_SPACE - private static boolean GlobalLabel_0_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_0_0")) return false; - boolean r; - Marker m = enter_section_(b, l, _NOT_); - r = !consumeToken(b, WHITE_SPACE); - exit_section_(b, l, m, r, false, null); - return r; - } - - // (COLON? COLON?)? - private static boolean GlobalLabel_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_0_2")) return false; - GlobalLabel_0_2_0(b, l + 1); - return true; - } - - // COLON? COLON? - private static boolean GlobalLabel_0_2_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_0_2_0")) return false; - boolean r; - Marker m = enter_section_(b); - r = GlobalLabel_0_2_0_0(b, l + 1); - r = r && GlobalLabel_0_2_0_1(b, l + 1); - exit_section_(b, m, null, r); - return r; - } - - // COLON? - private static boolean GlobalLabel_0_2_0_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_0_2_0_0")) return false; - consumeToken(b, COLON); - return true; - } - - // COLON? - private static boolean GlobalLabel_0_2_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_0_2_0_1")) return false; - consumeToken(b, COLON); - return true; - } - - // WHITE_SPACE? SYMBOL COLON COLON? - private static boolean GlobalLabel_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_1")) return false; - boolean r; - Marker m = enter_section_(b); - r = GlobalLabel_1_0(b, l + 1); - r = r && consumeTokens(b, 0, SYMBOL, COLON); - r = r && GlobalLabel_1_3(b, l + 1); - exit_section_(b, m, null, r); - return r; - } - - // WHITE_SPACE? - private static boolean GlobalLabel_1_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_1_0")) return false; - consumeToken(b, WHITE_SPACE); - return true; - } - - // COLON? - private static boolean GlobalLabel_1_3(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "GlobalLabel_1_3")) return false; - consumeToken(b, COLON); - return true; - } - /* ********************************************************** */ // HASH expr public static boolean ImmediateData(PsiBuilder b, int l) { @@ -608,24 +513,29 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // WHITE_SPACE Instruction - static boolean InstructionOnly(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "InstructionOnly")) return false; - if (!nextTokenIs(b, WHITE_SPACE)) return false; + // AsmInstruction | MacroCall + static boolean Instruction(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "Instruction")) return false; + if (!nextTokenIs(b, "", MNEMONIC, SYMBOL)) return false; boolean r; - Marker m = enter_section_(b); - r = consumeToken(b, WHITE_SPACE); - r = r && parseMacroCallOrAsmInstruction(b, l + 1); - exit_section_(b, m, null, r); + r = AsmInstruction(b, l + 1); + if (!r) r = MacroCall(b, l + 1); return r; } + /* ********************************************************** */ + // Instruction + static boolean InstructionOnly(PsiBuilder b, int l) { + return Instruction(b, l + 1); + } + /* ********************************************************** */ // LocalLabel | GlobalLabel public static boolean Label(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "Label")) return false; + if (!nextTokenIs(b, "