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)(']')