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 a0b196d..9f8a598 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 @@ -438,6 +438,25 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } + /* ********************************************************** */ + // expr DataWidth? + public static boolean BaseDisplacement(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "BaseDisplacement")) return false; + boolean r; + Marker m = enter_section_(b, l, _NONE_, BASE_DISPLACEMENT, ""); + r = expr(b, l + 1, -1); + r = r && BaseDisplacement_1(b, l + 1); + exit_section_(b, l, m, r, false, null); + return r; + } + + // DataWidth? + private static boolean BaseDisplacement_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "BaseDisplacement_1")) return false; + DataWidth(b, l + 1); + return true; + } + /* ********************************************************** */ // DataRegister | AddressRegister static boolean DataOrAddressRegister(PsiBuilder b, int l) { @@ -808,7 +827,7 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R + // ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R public static boolean MemoryIndirectAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode")) return false; if (!nextTokenIsFast(b, ROUND_L)) return false; @@ -824,60 +843,44 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (expr DataWidth? SEPARATOR)? + // (BaseDisplacement SEPARATOR)? private static boolean MemoryIndirectAddressingMode_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2")) return false; MemoryIndirectAddressingMode_2_0(b, l + 1); return true; } - // expr DataWidth? SEPARATOR + // BaseDisplacement SEPARATOR private static boolean MemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0")) return false; boolean r; Marker m = enter_section_(b); - r = expr(b, l + 1, -1); - r = r && MemoryIndirectAddressingMode_2_0_1(b, l + 1); + r = BaseDisplacement(b, l + 1); r = r && consumeToken(b, SEPARATOR); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean MemoryIndirectAddressingMode_2_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0_1")) return false; - DataWidth(b, l + 1); - return true; - } - - // (SEPARATOR expr DataWidth?)? + // (SEPARATOR OuterDisplacement)? private static boolean MemoryIndirectAddressingMode_5(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5")) return false; MemoryIndirectAddressingMode_5_0(b, l + 1); return true; } - // SEPARATOR expr DataWidth? + // SEPARATOR OuterDisplacement private static boolean MemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokenFast(b, SEPARATOR); - r = r && expr(b, l + 1, -1); - r = r && MemoryIndirectAddressingMode_5_0_2(b, l + 1); + r = r && OuterDisplacement(b, l + 1); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean MemoryIndirectAddressingMode_5_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0_2")) return false; - DataWidth(b, l + 1); - return true; - } - /* ********************************************************** */ - // ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R + // ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R public static boolean MemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode")) return false; if (!nextTokenIsFast(b, ROUND_L)) return false; @@ -892,14 +895,14 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? + // (SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? private static boolean MemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1")) return false; MemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1); return true; } - // SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR + // SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR private static boolean MemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0")) return false; boolean r; @@ -912,60 +915,44 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (expr DataWidth? SEPARATOR)? + // (BaseDisplacement SEPARATOR)? private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1")) return false; MemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1); return true; } - // expr DataWidth? SEPARATOR + // BaseDisplacement SEPARATOR private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false; boolean r; Marker m = enter_section_(b); - r = expr(b, l + 1, -1); - r = r && MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1); + r = BaseDisplacement(b, l + 1); r = r && consumeToken(b, SEPARATOR); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1")) return false; - DataWidth(b, l + 1); - return true; - } - - // (SEPARATOR expr DataWidth?)? + // (SEPARATOR OuterDisplacement)? private static boolean MemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3")) return false; MemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1); return true; } - // SEPARATOR expr DataWidth? + // SEPARATOR OuterDisplacement private static boolean MemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokenFast(b, SEPARATOR); - r = r && expr(b, l + 1, -1); - r = r && MemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1); + r = r && OuterDisplacement(b, l + 1); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean MemoryIndirectPostIndexedAddressingMode_3_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0_2")) return false; - DataWidth(b, l + 1); - return true; - } - /* ********************************************************** */ - // ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R + // ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R public static boolean MemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode")) return false; if (!nextTokenIsFast(b, ROUND_L)) return false; @@ -983,58 +970,42 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (expr DataWidth? SEPARATOR)? + // (BaseDisplacement SEPARATOR)? private static boolean MemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2")) return false; MemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1); return true; } - // expr DataWidth? SEPARATOR + // BaseDisplacement SEPARATOR private static boolean MemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0")) return false; boolean r; Marker m = enter_section_(b); - r = expr(b, l + 1, -1); - r = r && MemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1); + r = BaseDisplacement(b, l + 1); r = r && consumeToken(b, SEPARATOR); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean MemoryIndirectPreIndexedAddressingMode_2_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0_1")) return false; - DataWidth(b, l + 1); - return true; - } - - // (SEPARATOR expr DataWidth?)? + // (SEPARATOR OuterDisplacement)? private static boolean MemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7")) return false; MemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1); return true; } - // SEPARATOR expr DataWidth? + // SEPARATOR OuterDisplacement private static boolean MemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokenFast(b, SEPARATOR); - r = r && expr(b, l + 1, -1); - r = r && MemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1); + r = r && OuterDisplacement(b, l + 1); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean MemoryIndirectPreIndexedAddressingMode_7_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0_2")) return false; - DataWidth(b, l + 1); - return true; - } - /* ********************************************************** */ // OPSIZE_BS|OPSIZE_W|OPSIZE_L public static boolean OperandSize(PsiBuilder b, int l) { @@ -1048,6 +1019,25 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } + /* ********************************************************** */ + // expr DataWidth? + public static boolean OuterDisplacement(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "OuterDisplacement")) return false; + boolean r; + Marker m = enter_section_(b, l, _NONE_, OUTER_DISPLACEMENT, ""); + r = expr(b, l + 1, -1); + r = r && OuterDisplacement_1(b, l + 1); + exit_section_(b, l, m, r, false, null); + return r; + } + + // DataWidth? + private static boolean OuterDisplacement_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "OuterDisplacement_1")) return false; + DataWidth(b, l + 1); + return true; + } + /* ********************************************************** */ // (expr|AddressingMode) (SEPARATOR (expr|AddressingMode))* static boolean PlainOperands(PsiBuilder b, int l) { @@ -1276,7 +1266,7 @@ public class M68kParser implements PsiParser, LightPsiParser { } /* ********************************************************** */ - // ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R + // ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R public static boolean ProgramCounterMemoryIndirectAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode")) return false; if (!nextTokenIsFast(b, ROUND_L)) return false; @@ -1291,60 +1281,44 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (expr DataWidth? SEPARATOR)? + // (BaseDisplacement SEPARATOR)? private static boolean ProgramCounterMemoryIndirectAddressingMode_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2")) return false; ProgramCounterMemoryIndirectAddressingMode_2_0(b, l + 1); return true; } - // expr DataWidth? SEPARATOR + // BaseDisplacement SEPARATOR private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0")) return false; boolean r; Marker m = enter_section_(b); - r = expr(b, l + 1, -1); - r = r && ProgramCounterMemoryIndirectAddressingMode_2_0_1(b, l + 1); + r = BaseDisplacement(b, l + 1); r = r && consumeToken(b, SEPARATOR); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0_1")) return false; - DataWidth(b, l + 1); - return true; - } - - // (SEPARATOR expr DataWidth?)? + // (SEPARATOR OuterDisplacement)? private static boolean ProgramCounterMemoryIndirectAddressingMode_5(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5")) return false; ProgramCounterMemoryIndirectAddressingMode_5_0(b, l + 1); return true; } - // SEPARATOR expr DataWidth? + // SEPARATOR OuterDisplacement private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokenFast(b, SEPARATOR); - r = r && expr(b, l + 1, -1); - r = r && ProgramCounterMemoryIndirectAddressingMode_5_0_2(b, l + 1); + r = r && OuterDisplacement(b, l + 1); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0_2")) return false; - DataWidth(b, l + 1); - return true; - } - /* ********************************************************** */ - // ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R + // ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R public static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode")) return false; if (!nextTokenIsFast(b, ROUND_L)) return false; @@ -1359,14 +1333,14 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? + // (SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR)? private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1")) return false; ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1); return true; } - // SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR + // SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0")) return false; boolean r; @@ -1378,60 +1352,44 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (expr DataWidth? SEPARATOR)? + // (BaseDisplacement SEPARATOR)? private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1")) return false; ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1); return true; } - // expr DataWidth? SEPARATOR + // BaseDisplacement SEPARATOR private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false; boolean r; Marker m = enter_section_(b); - r = expr(b, l + 1, -1); - r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1); + r = BaseDisplacement(b, l + 1); r = r && consumeToken(b, SEPARATOR); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1")) return false; - DataWidth(b, l + 1); - return true; - } - - // (SEPARATOR expr DataWidth?)? + // (SEPARATOR OuterDisplacement)? private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3")) return false; ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1); return true; } - // SEPARATOR expr DataWidth? + // SEPARATOR OuterDisplacement private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokenFast(b, SEPARATOR); - r = r && expr(b, l + 1, -1); - r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1); + r = r && OuterDisplacement(b, l + 1); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2")) return false; - DataWidth(b, l + 1); - return true; - } - /* ********************************************************** */ - // ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R + // ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R public static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode")) return false; if (!nextTokenIsFast(b, ROUND_L)) return false; @@ -1448,58 +1406,42 @@ public class M68kParser implements PsiParser, LightPsiParser { return r; } - // (expr DataWidth? SEPARATOR)? + // (BaseDisplacement SEPARATOR)? private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2")) return false; ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1); return true; } - // expr DataWidth? SEPARATOR + // BaseDisplacement SEPARATOR private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0")) return false; boolean r; Marker m = enter_section_(b); - r = expr(b, l + 1, -1); - r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1); + r = BaseDisplacement(b, l + 1); r = r && consumeToken(b, SEPARATOR); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1")) return false; - DataWidth(b, l + 1); - return true; - } - - // (SEPARATOR expr DataWidth?)? + // (SEPARATOR OuterDisplacement)? private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7")) return false; ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1); return true; } - // SEPARATOR expr DataWidth? + // SEPARATOR OuterDisplacement private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0")) return false; boolean r; Marker m = enter_section_(b); r = consumeTokenFast(b, SEPARATOR); - r = r && expr(b, l + 1, -1); - r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1); + r = r && OuterDisplacement(b, l + 1); exit_section_(b, m, null, r); return r; } - // DataWidth? - private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2")) return false; - DataWidth(b, l + 1); - return true; - } - /* ********************************************************** */ // CURRENT_PC_SYMBOL public static boolean ProgramCounterReference(PsiBuilder b, int l) { diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kBaseDisplacement.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kBaseDisplacement.java new file mode 100644 index 0000000..e268e31 --- /dev/null +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kBaseDisplacement.java @@ -0,0 +1,15 @@ +// This is a generated file. Not intended for manual editing. +package de.platon42.intellij.plugins.m68k.psi; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public interface M68kBaseDisplacement extends M68kPsiElement { + + @Nullable + M68kDataWidth getDataWidth(); + + @NotNull + M68kExpr getExpr(); + +} diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectAddressingMode.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectAddressingMode.java index 7addbaa..cc51a1f 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectAddressingMode.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectAddressingMode.java @@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public interface M68kMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithOuterDisplacement { @NotNull M68kAddressRegister getAddressRegister(); - @NotNull - List getDataWidthList(); - - @NotNull - List getExprList(); + @Nullable + M68kBaseDisplacement getBaseDisplacement(); @Nullable - M68kExpr getBaseDisplacement(); - - @Nullable - M68kExpr getOuterDisplacement(); - - @Nullable - M68kDataWidth getBaseDataWidth(); - - @Nullable - M68kDataWidth getOuterDataWidth(); + M68kOuterDisplacement getOuterDisplacement(); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPostIndexedAddressingMode.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPostIndexedAddressingMode.java index 5d7ccb3..65f4619 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPostIndexedAddressingMode.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPostIndexedAddressingMode.java @@ -4,32 +4,18 @@ package de.platon42.intellij.plugins.m68k.psi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public interface M68kMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { @Nullable M68kAddressRegister getAddressRegister(); - @NotNull - List getDataWidthList(); - @NotNull M68kIndexRegister getIndexRegister(); - @NotNull - List getExprList(); + @Nullable + M68kBaseDisplacement getBaseDisplacement(); @Nullable - M68kExpr getBaseDisplacement(); - - @Nullable - M68kExpr getOuterDisplacement(); - - @Nullable - M68kDataWidth getBaseDataWidth(); - - @Nullable - M68kDataWidth getOuterDataWidth(); + M68kOuterDisplacement getOuterDisplacement(); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPreIndexedAddressingMode.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPreIndexedAddressingMode.java index 4da4c6d..97d4aeb 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPreIndexedAddressingMode.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kMemoryIndirectPreIndexedAddressingMode.java @@ -4,32 +4,18 @@ package de.platon42.intellij.plugins.m68k.psi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public interface M68kMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { @NotNull M68kAddressRegister getAddressRegister(); - @NotNull - List getDataWidthList(); - @NotNull M68kIndexRegister getIndexRegister(); - @NotNull - List getExprList(); + @Nullable + M68kBaseDisplacement getBaseDisplacement(); @Nullable - M68kExpr getBaseDisplacement(); - - @Nullable - M68kExpr getOuterDisplacement(); - - @Nullable - M68kDataWidth getBaseDataWidth(); - - @Nullable - M68kDataWidth getOuterDataWidth(); + M68kOuterDisplacement getOuterDisplacement(); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kOuterDisplacement.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kOuterDisplacement.java new file mode 100644 index 0000000..5d349c9 --- /dev/null +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kOuterDisplacement.java @@ -0,0 +1,15 @@ +// This is a generated file. Not intended for manual editing. +package de.platon42.intellij.plugins.m68k.psi; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public interface M68kOuterDisplacement extends M68kPsiElement { + + @Nullable + M68kDataWidth getDataWidth(); + + @NotNull + M68kExpr getExpr(); + +} diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectAddressingMode.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectAddressingMode.java index 33c463e..6534481 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectAddressingMode.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectAddressingMode.java @@ -1,29 +1,14 @@ // This is a generated file. Not intended for manual editing. package de.platon42.intellij.plugins.m68k.psi; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public interface M68kProgramCounterMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithOuterDisplacement { - @NotNull - List getDataWidthList(); - - @NotNull - List getExprList(); + @Nullable + M68kBaseDisplacement getBaseDisplacement(); @Nullable - M68kExpr getBaseDisplacement(); - - @Nullable - M68kExpr getOuterDisplacement(); - - @Nullable - M68kDataWidth getBaseDataWidth(); - - @Nullable - M68kDataWidth getOuterDataWidth(); + M68kOuterDisplacement getOuterDisplacement(); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPostIndexedAddressingMode.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPostIndexedAddressingMode.java index bb9d61e..f408188 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPostIndexedAddressingMode.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPostIndexedAddressingMode.java @@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public interface M68kProgramCounterMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { - @NotNull - List getDataWidthList(); - @NotNull M68kIndexRegister getIndexRegister(); - @NotNull - List getExprList(); + @Nullable + M68kBaseDisplacement getBaseDisplacement(); @Nullable - M68kExpr getBaseDisplacement(); - - @Nullable - M68kExpr getOuterDisplacement(); - - @Nullable - M68kDataWidth getBaseDataWidth(); - - @Nullable - M68kDataWidth getOuterDataWidth(); + M68kOuterDisplacement getOuterDisplacement(); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPreIndexedAddressingMode.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPreIndexedAddressingMode.java index 9b8e2e4..5d988ba 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPreIndexedAddressingMode.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kProgramCounterMemoryIndirectPreIndexedAddressingMode.java @@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public interface M68kProgramCounterMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { - @NotNull - List getDataWidthList(); - @NotNull M68kIndexRegister getIndexRegister(); - @NotNull - List getExprList(); + @Nullable + M68kBaseDisplacement getBaseDisplacement(); @Nullable - M68kExpr getBaseDisplacement(); - - @Nullable - M68kExpr getOuterDisplacement(); - - @Nullable - M68kDataWidth getBaseDataWidth(); - - @Nullable - M68kDataWidth getOuterDataWidth(); + M68kOuterDisplacement getOuterDisplacement(); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kTypes.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kTypes.java index d30f6e7..2b0758f 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kTypes.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kTypes.java @@ -24,6 +24,7 @@ public interface M68kTypes { IElementType ASM_INSTRUCTION = new M68kElementType("ASM_INSTRUCTION"); IElementType ASM_OP = new M68kElementType("ASM_OP"); IElementType ASSIGNMENT = new M68kElementType("ASSIGNMENT"); + IElementType BASE_DISPLACEMENT = new M68kElementType("BASE_DISPLACEMENT"); IElementType BINARY_ADD_EXPR = new M68kElementType("BINARY_ADD_EXPR"); IElementType BINARY_BITWISE_AND_EXPR = new M68kElementType("BINARY_BITWISE_AND_EXPR"); IElementType BINARY_BITWISE_OR_EXPR = new M68kElementType("BINARY_BITWISE_OR_EXPR"); @@ -60,6 +61,7 @@ public interface M68kTypes { IElementType MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE = new M68kElementType("MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE"); IElementType MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE = new M68kElementType("MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE"); IElementType OPERAND_SIZE = new M68kElementType("OPERAND_SIZE"); + IElementType OUTER_DISPLACEMENT = new M68kElementType("OUTER_DISPLACEMENT"); IElementType PAREN_EXPR = new M68kElementType("PAREN_EXPR"); IElementType PREPROCESSOR_DIRECTIVE = new M68kElementType("PREPROCESSOR_DIRECTIVE"); IElementType PREPROCESSOR_KEYWORD = new M68kElementType("PREPROCESSOR_KEYWORD"); @@ -177,6 +179,8 @@ public interface M68kTypes { return new M68kAsmOpImpl(node); } else if (type == ASSIGNMENT) { return new M68kAssignmentImpl(node); + } else if (type == BASE_DISPLACEMENT) { + return new M68kBaseDisplacementImpl(node); } else if (type == BINARY_ADD_EXPR) { return new M68kBinaryAddExprImpl(node); } else if (type == BINARY_BITWISE_AND_EXPR) { @@ -247,6 +251,8 @@ public interface M68kTypes { return new M68kMemoryIndirectPreIndexedAddressingModeImpl(node); } else if (type == OPERAND_SIZE) { return new M68kOperandSizeImpl(node); + } else if (type == OUTER_DISPLACEMENT) { + return new M68kOuterDisplacementImpl(node); } else if (type == PAREN_EXPR) { return new M68kParenExprImpl(node); } else if (type == PREPROCESSOR_DIRECTIVE) { diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kVisitor.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kVisitor.java index 39f8035..bcadc3c 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kVisitor.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/M68kVisitor.java @@ -79,6 +79,10 @@ public class M68kVisitor extends PsiElementVisitor { visitPsiElement(o); } + public void visitBaseDisplacement(@NotNull M68kBaseDisplacement o) { + visitPsiElement(o); + } + public void visitDataRegister(@NotNull M68kDataRegister o) { visitRegister(o); } @@ -154,6 +158,10 @@ public class M68kVisitor extends PsiElementVisitor { visitPsiElement(o); } + public void visitOuterDisplacement(@NotNull M68kOuterDisplacement o) { + visitPsiElement(o); + } + public void visitPreprocessorDirective(@NotNull M68kPreprocessorDirective o) { visitPsiElement(o); } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kBaseDisplacementImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kBaseDisplacementImpl.java new file mode 100644 index 0000000..46e6ed8 --- /dev/null +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kBaseDisplacementImpl.java @@ -0,0 +1,43 @@ +// This is a generated file. Not intended for manual editing. +package de.platon42.intellij.plugins.m68k.psi.impl; + +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import de.platon42.intellij.plugins.m68k.psi.M68kBaseDisplacement; +import de.platon42.intellij.plugins.m68k.psi.M68kDataWidth; +import de.platon42.intellij.plugins.m68k.psi.M68kExpr; +import de.platon42.intellij.plugins.m68k.psi.M68kVisitor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class M68kBaseDisplacementImpl extends ASTWrapperPsiElement implements M68kBaseDisplacement { + + public M68kBaseDisplacementImpl(@NotNull ASTNode node) { + super(node); + } + + public void accept(@NotNull M68kVisitor visitor) { + visitor.visitBaseDisplacement(this); + } + + @Override + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof M68kVisitor) accept((M68kVisitor) visitor); + else super.accept(visitor); + } + + @Override + @Nullable + public M68kDataWidth getDataWidth() { + return PsiTreeUtil.getChildOfType(this, M68kDataWidth.class); + } + + @Override + @NotNull + public M68kExpr getExpr() { + return notNullChild(PsiTreeUtil.getChildOfType(this, M68kExpr.class)); + } + +} diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectAddressingModeImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectAddressingModeImpl.java index 1583bcf..a1f8a5f 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectAddressingModeImpl.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectAddressingModeImpl.java @@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectAddressingMode { public M68kMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) { @@ -34,43 +32,15 @@ public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl } @Override - @NotNull - public List getDataWidthList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); - } - - @Override - @NotNull - public List getExprList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); + @Nullable + public M68kBaseDisplacement getBaseDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class); } @Override @Nullable - public M68kExpr getBaseDisplacement() { - List p1 = getExprList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kExpr getOuterDisplacement() { - List p1 = getExprList(); - return p1.size() < 2 ? null : p1.get(1); - } - - @Override - @Nullable - public M68kDataWidth getBaseDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kDataWidth getOuterDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 2 ? null : p1.get(1); + public M68kOuterDisplacement getOuterDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class); } } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPostIndexedAddressingModeImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPostIndexedAddressingModeImpl.java index a3c18f2..775a77d 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPostIndexedAddressingModeImpl.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPostIndexedAddressingModeImpl.java @@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPostIndexedAddressingMode { public M68kMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) { @@ -33,12 +31,6 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress return PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class); } - @Override - @NotNull - public List getDataWidthList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); - } - @Override @NotNull public M68kIndexRegister getIndexRegister() { @@ -46,37 +38,15 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress } @Override - @NotNull - public List getExprList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); + @Nullable + public M68kBaseDisplacement getBaseDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class); } @Override @Nullable - public M68kExpr getBaseDisplacement() { - List p1 = getExprList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kExpr getOuterDisplacement() { - List p1 = getExprList(); - return p1.size() < 2 ? null : p1.get(1); - } - - @Override - @Nullable - public M68kDataWidth getBaseDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kDataWidth getOuterDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 2 ? null : p1.get(1); + public M68kOuterDisplacement getOuterDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class); } } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPreIndexedAddressingModeImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPreIndexedAddressingModeImpl.java index 7c85425..7e33aaf 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPreIndexedAddressingModeImpl.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kMemoryIndirectPreIndexedAddressingModeImpl.java @@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPreIndexedAddressingMode { public M68kMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) { @@ -33,12 +31,6 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi return notNullChild(PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class)); } - @Override - @NotNull - public List getDataWidthList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); - } - @Override @NotNull public M68kIndexRegister getIndexRegister() { @@ -46,37 +38,15 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi } @Override - @NotNull - public List getExprList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); + @Nullable + public M68kBaseDisplacement getBaseDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class); } @Override @Nullable - public M68kExpr getBaseDisplacement() { - List p1 = getExprList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kExpr getOuterDisplacement() { - List p1 = getExprList(); - return p1.size() < 2 ? null : p1.get(1); - } - - @Override - @Nullable - public M68kDataWidth getBaseDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kDataWidth getOuterDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 2 ? null : p1.get(1); + public M68kOuterDisplacement getOuterDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class); } } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kOuterDisplacementImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kOuterDisplacementImpl.java new file mode 100644 index 0000000..efe1ea1 --- /dev/null +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kOuterDisplacementImpl.java @@ -0,0 +1,43 @@ +// This is a generated file. Not intended for manual editing. +package de.platon42.intellij.plugins.m68k.psi.impl; + +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; +import de.platon42.intellij.plugins.m68k.psi.M68kDataWidth; +import de.platon42.intellij.plugins.m68k.psi.M68kExpr; +import de.platon42.intellij.plugins.m68k.psi.M68kOuterDisplacement; +import de.platon42.intellij.plugins.m68k.psi.M68kVisitor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class M68kOuterDisplacementImpl extends ASTWrapperPsiElement implements M68kOuterDisplacement { + + public M68kOuterDisplacementImpl(@NotNull ASTNode node) { + super(node); + } + + public void accept(@NotNull M68kVisitor visitor) { + visitor.visitOuterDisplacement(this); + } + + @Override + public void accept(@NotNull PsiElementVisitor visitor) { + if (visitor instanceof M68kVisitor) accept((M68kVisitor) visitor); + else super.accept(visitor); + } + + @Override + @Nullable + public M68kDataWidth getDataWidth() { + return PsiTreeUtil.getChildOfType(this, M68kDataWidth.class); + } + + @Override + @NotNull + public M68kExpr getExpr() { + return notNullChild(PsiTreeUtil.getChildOfType(this, M68kExpr.class)); + } + +} diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectAddressingModeImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectAddressingModeImpl.java index 820f54c..13dce9e 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectAddressingModeImpl.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectAddressingModeImpl.java @@ -4,15 +4,13 @@ package de.platon42.intellij.plugins.m68k.psi.impl; import com.intellij.lang.ASTNode; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.util.PsiTreeUtil; -import de.platon42.intellij.plugins.m68k.psi.M68kDataWidth; -import de.platon42.intellij.plugins.m68k.psi.M68kExpr; +import de.platon42.intellij.plugins.m68k.psi.M68kBaseDisplacement; +import de.platon42.intellij.plugins.m68k.psi.M68kOuterDisplacement; import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectAddressingMode; import de.platon42.intellij.plugins.m68k.psi.M68kVisitor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectAddressingMode { public M68kProgramCounterMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) { @@ -31,43 +29,15 @@ public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddr } @Override - @NotNull - public List getDataWidthList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); - } - - @Override - @NotNull - public List getExprList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); + @Nullable + public M68kBaseDisplacement getBaseDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class); } @Override @Nullable - public M68kExpr getBaseDisplacement() { - List p1 = getExprList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kExpr getOuterDisplacement() { - List p1 = getExprList(); - return p1.size() < 2 ? null : p1.get(1); - } - - @Override - @Nullable - public M68kDataWidth getBaseDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kDataWidth getOuterDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 2 ? null : p1.get(1); + public M68kOuterDisplacement getOuterDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class); } } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl.java index b470a3a..26d2eef 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl.java @@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPostIndexedAddressingMode { public M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) { @@ -27,12 +25,6 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten else super.accept(visitor); } - @Override - @NotNull - public List getDataWidthList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); - } - @Override @NotNull public M68kIndexRegister getIndexRegister() { @@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten } @Override - @NotNull - public List getExprList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); + @Nullable + public M68kBaseDisplacement getBaseDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class); } @Override @Nullable - public M68kExpr getBaseDisplacement() { - List p1 = getExprList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kExpr getOuterDisplacement() { - List p1 = getExprList(); - return p1.size() < 2 ? null : p1.get(1); - } - - @Override - @Nullable - public M68kDataWidth getBaseDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kDataWidth getOuterDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 2 ? null : p1.get(1); + public M68kOuterDisplacement getOuterDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class); } } diff --git a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl.java b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl.java index 779aede..f09487f 100644 --- a/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl.java +++ b/src/main/gen/de/platon42/intellij/plugins/m68k/psi/impl/M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl.java @@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPreIndexedAddressingMode { public M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) { @@ -27,12 +25,6 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend else super.accept(visitor); } - @Override - @NotNull - public List getDataWidthList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); - } - @Override @NotNull public M68kIndexRegister getIndexRegister() { @@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend } @Override - @NotNull - public List getExprList() { - return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); + @Nullable + public M68kBaseDisplacement getBaseDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class); } @Override @Nullable - public M68kExpr getBaseDisplacement() { - List p1 = getExprList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kExpr getOuterDisplacement() { - List p1 = getExprList(); - return p1.size() < 2 ? null : p1.get(1); - } - - @Override - @Nullable - public M68kDataWidth getBaseDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 1 ? null : p1.get(0); - } - - @Override - @Nullable - public M68kDataWidth getOuterDataWidth() { - List p1 = getDataWidthList(); - return p1.size() < 2 ? null : p1.get(1); + public M68kOuterDisplacement getOuterDisplacement() { + return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class); } } diff --git a/src/main/java/de/platon42/intellij/plugins/m68k/m68k.bnf b/src/main/java/de/platon42/intellij/plugins/m68k/m68k.bnf index fa6cd77..ed80540 100644 --- a/src/main/java/de/platon42/intellij/plugins/m68k/m68k.bnf +++ b/src/main/java/de/platon42/intellij/plugins/m68k/m68k.bnf @@ -164,6 +164,7 @@ OperandSize ::= (OPSIZE_BS|OPSIZE_W|OPSIZE_L) { name = ".s|.b|.w|.l" methods = [getSize] } + AddressSize ::= (OPSIZE_W|OPSIZE_L) { name = ".w|.l" } DataWidth ::= (OPSIZE_W|OPSIZE_L) { name = ".w|.l" } @@ -236,6 +237,9 @@ Register ::= DataRegister | AddressRegister | SpecialRegister private DataOrAddressRegister ::= DataRegister | AddressRegister { name = "data or address register"} +BaseDisplacement ::= expr DataWidth? +OuterDisplacement ::= expr DataWidth? + IndexRegister ::= DataOrAddressRegister DataWidth? (OP_AR_MUL IndexScale)? { name = "index register" @@ -330,7 +334,7 @@ AddressRegisterIndirectWithIndexNewAddressingMode ::= ROUND_L (expr SEPARATOR)? ] } -MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R +MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R { implements = [ "de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect" @@ -338,14 +342,12 @@ MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? A "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" ] methods = [ - baseDisplacement = "expr[0]" - outerDisplacement = "expr[1]" - baseDataWidth = "DataWidth[0]" - outerDataWidth = "DataWidth[1]" + baseDisplacement = "BaseDisplacement" + outerDisplacement = "OuterDisplacement" ] } -MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R +MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R { implements = [ "de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect" @@ -354,14 +356,12 @@ MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? S "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" ] methods = [ - baseDisplacement = "expr[0]" - outerDisplacement = "expr[1]" - baseDataWidth = "DataWidth[0]" - outerDataWidth = "DataWidth[1]" + baseDisplacement = "BaseDisplacement" + outerDisplacement = "OuterDisplacement" ] } -MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R +MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R { implements = [ "de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect" @@ -370,10 +370,8 @@ MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEP "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" ] methods = [ - baseDisplacement = "expr[0]" - outerDisplacement = "expr[1]" - baseDataWidth = "DataWidth[0]" - outerDataWidth = "DataWidth[1]" + baseDisplacement = "BaseDisplacement" + outerDisplacement = "OuterDisplacement" ] } @@ -415,21 +413,19 @@ ProgramCounterIndirectWithIndexNewAddressingMode ::= ROUND_L (expr SEPARATOR)? P ] } -ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R +ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R { implements = [ "de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" ] methods = [ - baseDisplacement = "expr[0]" - outerDisplacement = "expr[1]" - baseDataWidth = "DataWidth[0]" - outerDataWidth = "DataWidth[1]" + baseDisplacement = "BaseDisplacement" + outerDisplacement = "OuterDisplacement" ] } -ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R +ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R { implements = [ "de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement" @@ -437,14 +433,12 @@ ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (exp "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" ] methods = [ - baseDisplacement = "expr[0]" - outerDisplacement = "expr[1]" - baseDataWidth = "DataWidth[0]" - outerDataWidth = "DataWidth[1]" + baseDisplacement = "BaseDisplacement" + outerDisplacement = "OuterDisplacement" ] } -ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R +ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R { implements = [ "de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement" @@ -452,10 +446,8 @@ ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" ] methods = [ - baseDisplacement = "expr[0]" - outerDisplacement = "expr[1]" - baseDataWidth = "DataWidth[0]" - outerDataWidth = "DataWidth[1]" + baseDisplacement = "BaseDisplacement" + outerDisplacement = "OuterDisplacement" ] } diff --git a/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithBaseDisplacement.kt b/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithBaseDisplacement.kt index bb1722d..b003771 100644 --- a/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithBaseDisplacement.kt +++ b/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithBaseDisplacement.kt @@ -2,7 +2,5 @@ package de.platon42.intellij.plugins.m68k.psi interface M68kWithBaseDisplacement : M68kAddressingMode { - val baseDisplacement: M68kExpr? - - val baseDataWidth: M68kDataWidth? + val baseDisplacement: M68kBaseDisplacement? } \ No newline at end of file diff --git a/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithOuterDisplacement.kt b/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithOuterDisplacement.kt index d650ef1..41470fd 100644 --- a/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithOuterDisplacement.kt +++ b/src/main/java/de/platon42/intellij/plugins/m68k/psi/M68kWithOuterDisplacement.kt @@ -2,7 +2,5 @@ package de.platon42.intellij.plugins.m68k.psi interface M68kWithOuterDisplacement : M68kAddressingMode { - val outerDisplacement: M68kExpr? - - val outerDataWidth: M68kDataWidth? + val outerDisplacement: M68kOuterDisplacement? } \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_with_all_params.txt b/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_with_all_params.txt index dd1b581..a31665f 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_with_all_params.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_with_all_params.txt @@ -10,10 +10,11 @@ Assembly File: a.asm M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a1') @@ -29,17 +30,19 @@ Assembly File: a.asm M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('12') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('12') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') @@ -55,11 +58,12 @@ Assembly File: a.asm M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('120') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('120') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.EOL)('\n') \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_base_displacement.txt b/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_base_displacement.txt index f949692..ddf5a22 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_base_displacement.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_base_displacement.txt @@ -18,10 +18,11 @@ Assembly File: a.asm M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) @@ -41,9 +42,10 @@ Assembly File: a.asm M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('120') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('120') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.EOL)('\n') \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_outer_displacement.txt b/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_outer_displacement.txt index 1e6a416..ba918c8 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_outer_displacement.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_post_indexed_without_outer_displacement.txt @@ -10,10 +10,11 @@ Assembly File: a.asm M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a1') @@ -27,10 +28,11 @@ Assembly File: a.asm M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('12') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('12') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_with_all_params.txt b/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_with_all_params.txt index 3bdcac0..9d8f700 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_with_all_params.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_with_all_params.txt @@ -10,8 +10,9 @@ Assembly File: a.asm M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a1') @@ -27,17 +28,19 @@ Assembly File: a.asm PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('12') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('12') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') @@ -53,9 +56,10 @@ Assembly File: a.asm PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('120') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('120') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.EOL)('\n') \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_base_displacement.txt b/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_base_displacement.txt index 8c361e6..2cc6cc2 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_base_displacement.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_base_displacement.txt @@ -18,8 +18,9 @@ Assembly File: a.asm PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) @@ -39,11 +40,12 @@ Assembly File: a.asm PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('120') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('120') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.EOL)('\n') \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_outer_displacement.txt b/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_outer_displacement.txt index 4e1b10d..00c3534 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_outer_displacement.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_pre_indexed_without_outer_displacement.txt @@ -10,10 +10,11 @@ Assembly File: a.asm M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a1') @@ -27,10 +28,11 @@ Assembly File: a.asm M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('12') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('12') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_with_all_params.txt b/src/test/resources/parser/addressingmodes/memory_indirect_with_all_params.txt index 534f12f..39b4f2b 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_with_all_params.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_with_all_params.txt @@ -10,36 +10,40 @@ Assembly File: a.asm M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('12') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('12') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('120') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('120') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.EOL)('\n') \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_without_base_displacement.txt b/src/test/resources/parser/addressingmodes/memory_indirect_without_base_displacement.txt index e46b0e5..96f7a70 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_without_base_displacement.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_without_base_displacement.txt @@ -14,10 +14,11 @@ Assembly File: a.asm PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) @@ -27,11 +28,12 @@ Assembly File: a.asm PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('120') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('120') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.EOL)('\n') \ No newline at end of file diff --git a/src/test/resources/parser/addressingmodes/memory_indirect_without_outer_displacement.txt b/src/test/resources/parser/addressingmodes/memory_indirect_without_outer_displacement.txt index e87cd14..db3513c 100644 --- a/src/test/resources/parser/addressingmodes/memory_indirect_without_outer_displacement.txt +++ b/src/test/resources/parser/addressingmodes/memory_indirect_without_outer_displacement.txt @@ -10,8 +10,9 @@ Assembly File: a.asm M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a1') @@ -21,10 +22,11 @@ Assembly File: a.asm M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) - PsiElement(M68kTokenType.OP_MINUS)('-') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('12') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) + PsiElement(M68kTokenType.OP_MINUS)('-') + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('12') PsiElement(M68kTokenType.SEPARATOR)(',') M68kAddressRegisterImpl(ADDRESS_REGISTER) PsiElement(M68kTokenType.AREG)('a0') diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_with_all_params.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_with_all_params.txt index fdedda2..db40b6a 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_with_all_params.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_with_all_params.txt @@ -10,10 +10,11 @@ Assembly File: a.asm M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SQUARE_R)(']') @@ -28,10 +29,11 @@ Assembly File: a.asm M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_base_displacement.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_base_displacement.txt index 21f1894..16982c5 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_base_displacement.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_base_displacement.txt @@ -23,8 +23,9 @@ Assembly File: a.asm M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_outer_displacement.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_outer_displacement.txt index 2b0da2e..80575ff 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_outer_displacement.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_post_indexed_without_outer_displacement.txt @@ -10,8 +10,9 @@ Assembly File: a.asm M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SQUARE_R)(']') diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_with_all_params.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_with_all_params.txt index 250c3e6..0d984cf 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_with_all_params.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_with_all_params.txt @@ -10,10 +10,11 @@ Assembly File: a.asm M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SEPARATOR)(',') @@ -28,8 +29,9 @@ Assembly File: a.asm PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_base_displacement.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_base_displacement.txt index 3640889..d286726 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_base_displacement.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_base_displacement.txt @@ -21,10 +21,11 @@ Assembly File: a.asm PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_outer_displacement.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_outer_displacement.txt index 109633b..ec287b6 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_outer_displacement.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_pre_indexed_without_outer_displacement.txt @@ -10,8 +10,9 @@ Assembly File: a.asm M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SEPARATOR)(',') diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_with_all_params.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_with_all_params.txt index 273d177..ba734a1 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_with_all_params.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_with_all_params.txt @@ -10,16 +10,18 @@ Assembly File: a.asm M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_W)('.w') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_W)('.w') PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_base_displacement.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_base_displacement.txt index 5141ca7..dee7d2f 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_base_displacement.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_base_displacement.txt @@ -13,10 +13,11 @@ Assembly File: a.asm PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SEPARATOR)(',') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('124') - M68kDataWidthImpl(DATA_WIDTH) - PsiElement(M68kTokenType.OPSIZE_L)('.l') + M68kOuterDisplacementImpl(OUTER_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('124') + M68kDataWidthImpl(DATA_WIDTH) + PsiElement(M68kTokenType.OPSIZE_L)('.l') PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.SEPARATOR)(',') M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) diff --git a/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_outer_displacement.txt b/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_outer_displacement.txt index ae31470..beb0726 100644 --- a/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_outer_displacement.txt +++ b/src/test/resources/parser/addressingmodes/pc_memory_indirect_without_outer_displacement.txt @@ -10,8 +10,9 @@ Assembly File: a.asm M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE) PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.SQUARE_L)('[') - M68kLiteralExprImpl(LITERAL_EXPR) - PsiElement(M68kTokenType.DECIMAL)('1234') + M68kBaseDisplacementImpl(BASE_DISPLACEMENT) + M68kLiteralExprImpl(LITERAL_EXPR) + PsiElement(M68kTokenType.DECIMAL)('1234') PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.SQUARE_R)(']')