Refactored BNF for base and outer displacement to avoid ambiguity for these expressions.

This commit is contained in:
Chris Hodges 2021-10-08 11:22:53 +02:00
parent 722d4437ec
commit 3f1ef0e55a
40 changed files with 452 additions and 621 deletions

View File

@ -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, "<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, "<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) {

View File

@ -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();
}

View File

@ -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<M68kDataWidth> getDataWidthList();
@NotNull
List<M68kExpr> getExprList();
@Nullable
M68kBaseDisplacement getBaseDisplacement();
@Nullable
M68kExpr getBaseDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
M68kOuterDisplacement getOuterDisplacement();
}

View File

@ -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<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@NotNull
List<M68kExpr> getExprList();
@Nullable
M68kBaseDisplacement getBaseDisplacement();
@Nullable
M68kExpr getBaseDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
M68kOuterDisplacement getOuterDisplacement();
}

View File

@ -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<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@NotNull
List<M68kExpr> getExprList();
@Nullable
M68kBaseDisplacement getBaseDisplacement();
@Nullable
M68kExpr getBaseDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
M68kOuterDisplacement getOuterDisplacement();
}

View File

@ -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();
}

View File

@ -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<M68kDataWidth> getDataWidthList();
@NotNull
List<M68kExpr> getExprList();
@Nullable
M68kBaseDisplacement getBaseDisplacement();
@Nullable
M68kExpr getBaseDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
M68kOuterDisplacement getOuterDisplacement();
}

View File

@ -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<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@NotNull
List<M68kExpr> getExprList();
@Nullable
M68kBaseDisplacement getBaseDisplacement();
@Nullable
M68kExpr getBaseDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
M68kOuterDisplacement getOuterDisplacement();
}

View File

@ -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<M68kDataWidth> getDataWidthList();
@NotNull
M68kIndexRegister getIndexRegister();
@NotNull
List<M68kExpr> getExprList();
@Nullable
M68kBaseDisplacement getBaseDisplacement();
@Nullable
M68kExpr getBaseDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
M68kOuterDisplacement getOuterDisplacement();
}

View File

@ -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) {

View File

@ -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);
}

View File

@ -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));
}
}

View File

@ -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<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
@Nullable
public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@Nullable
public M68kExpr getBaseDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kExpr getOuterDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
public M68kOuterDisplacement getOuterDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
}
}

View File

@ -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<M68kDataWidth> 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<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
@Nullable
public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@Nullable
public M68kExpr getBaseDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kExpr getOuterDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
public M68kOuterDisplacement getOuterDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
}
}

View File

@ -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<M68kDataWidth> 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<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
@Nullable
public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@Nullable
public M68kExpr getBaseDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kExpr getOuterDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
public M68kOuterDisplacement getOuterDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
}
}

View File

@ -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));
}
}

View File

@ -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<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
@Nullable
public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@Nullable
public M68kExpr getBaseDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kExpr getOuterDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
public M68kOuterDisplacement getOuterDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
}
}

View File

@ -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<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public M68kIndexRegister getIndexRegister() {
@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
@Nullable
public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@Nullable
public M68kExpr getBaseDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kExpr getOuterDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
public M68kOuterDisplacement getOuterDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
}
}

View File

@ -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<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override
@NotNull
public M68kIndexRegister getIndexRegister() {
@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
@Nullable
public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@Nullable
public M68kExpr getBaseDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kExpr getOuterDisplacement() {
List<M68kExpr> p1 = getExprList();
return p1.size() < 2 ? null : p1.get(1);
}
@Override
@Nullable
public M68kDataWidth getBaseDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 1 ? null : p1.get(0);
}
@Override
@Nullable
public M68kDataWidth getOuterDataWidth() {
List<M68kDataWidth> p1 = getDataWidthList();
return p1.size() < 2 ? null : p1.get(1);
public M68kOuterDisplacement getOuterDisplacement() {
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
}
}

View File

@ -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"
]
}

View File

@ -2,7 +2,5 @@ package de.platon42.intellij.plugins.m68k.psi
interface M68kWithBaseDisplacement : M68kAddressingMode {
val baseDisplacement: M68kExpr?
val baseDataWidth: M68kDataWidth?
val baseDisplacement: M68kBaseDisplacement?
}

View File

@ -2,7 +2,5 @@ package de.platon42.intellij.plugins.m68k.psi
interface M68kWithOuterDisplacement : M68kAddressingMode {
val outerDisplacement: M68kExpr?
val outerDataWidth: M68kDataWidth?
val outerDisplacement: M68kOuterDisplacement?
}

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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)

View File

@ -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)

View File

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

View File

@ -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)

View File

@ -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)

View File

@ -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)(',')

View File

@ -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)

View File

@ -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)

View File

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