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; 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 // DataRegister | AddressRegister
static boolean DataOrAddressRegister(PsiBuilder b, int l) { 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) { public static boolean MemoryIndirectAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode")) return false; if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false; if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -824,60 +843,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; return r;
} }
// (expr DataWidth? SEPARATOR)? // (BaseDisplacement SEPARATOR)?
private static boolean MemoryIndirectAddressingMode_2(PsiBuilder b, int l) { private static boolean MemoryIndirectAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2")) return false; if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2")) return false;
MemoryIndirectAddressingMode_2_0(b, l + 1); MemoryIndirectAddressingMode_2_0(b, l + 1);
return true; return true;
} }
// expr DataWidth? SEPARATOR // BaseDisplacement SEPARATOR
private static boolean MemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) { private static boolean MemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = expr(b, l + 1, -1); r = BaseDisplacement(b, l + 1);
r = r && MemoryIndirectAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR); r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return r; return r;
} }
// DataWidth? // (SEPARATOR OuterDisplacement)?
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?)?
private static boolean MemoryIndirectAddressingMode_5(PsiBuilder b, int l) { private static boolean MemoryIndirectAddressingMode_5(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5")) return false; if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5")) return false;
MemoryIndirectAddressingMode_5_0(b, l + 1); MemoryIndirectAddressingMode_5_0(b, l + 1);
return true; return true;
} }
// SEPARATOR expr DataWidth? // SEPARATOR OuterDisplacement
private static boolean MemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) { private static boolean MemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR); r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1); r = r && OuterDisplacement(b, l + 1);
r = r && MemoryIndirectAddressingMode_5_0_2(b, l + 1);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return 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) { public static boolean MemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false; if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -892,14 +895,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; 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) { private static boolean MemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1")) return false;
MemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1); MemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1);
return true; 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) { private static boolean MemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0")) return false;
boolean r; boolean r;
@ -912,60 +915,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; return r;
} }
// (expr DataWidth? SEPARATOR)? // (BaseDisplacement SEPARATOR)?
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) { private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1")) return false;
MemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1); MemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1);
return true; return true;
} }
// expr DataWidth? SEPARATOR // BaseDisplacement SEPARATOR
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) { private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = expr(b, l + 1, -1); r = BaseDisplacement(b, l + 1);
r = r && MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR); r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return r; return r;
} }
// DataWidth? // (SEPARATOR OuterDisplacement)?
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?)?
private static boolean MemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) { private static boolean MemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3")) return false;
MemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1); MemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1);
return true; return true;
} }
// SEPARATOR expr DataWidth? // SEPARATOR OuterDisplacement
private static boolean MemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) { private static boolean MemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR); r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1); r = r && OuterDisplacement(b, l + 1);
r = r && MemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return 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) { public static boolean MemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false; if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -983,58 +970,42 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; return r;
} }
// (expr DataWidth? SEPARATOR)? // (BaseDisplacement SEPARATOR)?
private static boolean MemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) { private static boolean MemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2")) return false;
MemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1); MemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1);
return true; return true;
} }
// expr DataWidth? SEPARATOR // BaseDisplacement SEPARATOR
private static boolean MemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) { private static boolean MemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = expr(b, l + 1, -1); r = BaseDisplacement(b, l + 1);
r = r && MemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR); r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return r; return r;
} }
// DataWidth? // (SEPARATOR OuterDisplacement)?
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?)?
private static boolean MemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) { private static boolean MemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7")) return false;
MemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1); MemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1);
return true; return true;
} }
// SEPARATOR expr DataWidth? // SEPARATOR OuterDisplacement
private static boolean MemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) { private static boolean MemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0")) return false; if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR); r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1); r = r && OuterDisplacement(b, l + 1);
r = r && MemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return 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 // OPSIZE_BS|OPSIZE_W|OPSIZE_L
public static boolean OperandSize(PsiBuilder b, int l) { public static boolean OperandSize(PsiBuilder b, int l) {
@ -1048,6 +1019,25 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; 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))* // (expr|AddressingMode) (SEPARATOR (expr|AddressingMode))*
static boolean PlainOperands(PsiBuilder b, int l) { 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) { public static boolean ProgramCounterMemoryIndirectAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false; if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -1291,60 +1281,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; return r;
} }
// (expr DataWidth? SEPARATOR)? // (BaseDisplacement SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectAddressingMode_2(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2")) return false;
ProgramCounterMemoryIndirectAddressingMode_2_0(b, l + 1); ProgramCounterMemoryIndirectAddressingMode_2_0(b, l + 1);
return true; return true;
} }
// expr DataWidth? SEPARATOR // BaseDisplacement SEPARATOR
private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = expr(b, l + 1, -1); r = BaseDisplacement(b, l + 1);
r = r && ProgramCounterMemoryIndirectAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR); r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return r; return r;
} }
// DataWidth? // (SEPARATOR OuterDisplacement)?
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?)?
private static boolean ProgramCounterMemoryIndirectAddressingMode_5(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectAddressingMode_5(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5")) return false;
ProgramCounterMemoryIndirectAddressingMode_5_0(b, l + 1); ProgramCounterMemoryIndirectAddressingMode_5_0(b, l + 1);
return true; return true;
} }
// SEPARATOR expr DataWidth? // SEPARATOR OuterDisplacement
private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR); r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1); r = r && OuterDisplacement(b, l + 1);
r = r && ProgramCounterMemoryIndirectAddressingMode_5_0_2(b, l + 1);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return 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) { public static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false; if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -1359,14 +1333,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; 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) { private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1")) return false;
ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1); ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1);
return true; 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) { private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0")) return false;
boolean r; boolean r;
@ -1378,60 +1352,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; return r;
} }
// (expr DataWidth? SEPARATOR)? // (BaseDisplacement SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1")) return false;
ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1); ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1);
return true; return true;
} }
// expr DataWidth? SEPARATOR // BaseDisplacement SEPARATOR
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = expr(b, l + 1, -1); r = BaseDisplacement(b, l + 1);
r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR); r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return r; return r;
} }
// DataWidth? // (SEPARATOR OuterDisplacement)?
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?)?
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3")) return false;
ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1); ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1);
return true; return true;
} }
// SEPARATOR expr DataWidth? // SEPARATOR OuterDisplacement
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR); r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1); r = r && OuterDisplacement(b, l + 1);
r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return 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) { public static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode")) return false;
if (!nextTokenIsFast(b, ROUND_L)) return false; if (!nextTokenIsFast(b, ROUND_L)) return false;
@ -1448,58 +1406,42 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r; return r;
} }
// (expr DataWidth? SEPARATOR)? // (BaseDisplacement SEPARATOR)?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2")) return false;
ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1); ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1);
return true; return true;
} }
// expr DataWidth? SEPARATOR // BaseDisplacement SEPARATOR
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = expr(b, l + 1, -1); r = BaseDisplacement(b, l + 1);
r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1);
r = r && consumeToken(b, SEPARATOR); r = r && consumeToken(b, SEPARATOR);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return r; return r;
} }
// DataWidth? // (SEPARATOR OuterDisplacement)?
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?)?
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7")) return false;
ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1); ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1);
return true; return true;
} }
// SEPARATOR expr DataWidth? // SEPARATOR OuterDisplacement
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) { private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0")) return false; if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0")) return false;
boolean r; boolean r;
Marker m = enter_section_(b); Marker m = enter_section_(b);
r = consumeTokenFast(b, SEPARATOR); r = consumeTokenFast(b, SEPARATOR);
r = r && expr(b, l + 1, -1); r = r && OuterDisplacement(b, l + 1);
r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1);
exit_section_(b, m, null, r); exit_section_(b, m, null, r);
return 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 // CURRENT_PC_SYMBOL
public static boolean ProgramCounterReference(PsiBuilder b, int l) { 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.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public interface M68kMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithOuterDisplacement { public interface M68kMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithOuterDisplacement {
@NotNull @NotNull
M68kAddressRegister getAddressRegister(); M68kAddressRegister getAddressRegister();
@NotNull @Nullable
List<M68kDataWidth> getDataWidthList(); M68kBaseDisplacement getBaseDisplacement();
@NotNull
List<M68kExpr> getExprList();
@Nullable @Nullable
M68kExpr getBaseDisplacement(); M68kOuterDisplacement getOuterDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
} }

View File

@ -4,32 +4,18 @@ package de.platon42.intellij.plugins.m68k.psi;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public interface M68kMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { public interface M68kMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
@Nullable @Nullable
M68kAddressRegister getAddressRegister(); M68kAddressRegister getAddressRegister();
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull @NotNull
M68kIndexRegister getIndexRegister(); M68kIndexRegister getIndexRegister();
@NotNull @Nullable
List<M68kExpr> getExprList(); M68kBaseDisplacement getBaseDisplacement();
@Nullable @Nullable
M68kExpr getBaseDisplacement(); M68kOuterDisplacement getOuterDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
} }

View File

@ -4,32 +4,18 @@ package de.platon42.intellij.plugins.m68k.psi;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public interface M68kMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { public interface M68kMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
@NotNull @NotNull
M68kAddressRegister getAddressRegister(); M68kAddressRegister getAddressRegister();
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull @NotNull
M68kIndexRegister getIndexRegister(); M68kIndexRegister getIndexRegister();
@NotNull @Nullable
List<M68kExpr> getExprList(); M68kBaseDisplacement getBaseDisplacement();
@Nullable @Nullable
M68kExpr getBaseDisplacement(); M68kOuterDisplacement getOuterDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
} }

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. // This is a generated file. Not intended for manual editing.
package de.platon42.intellij.plugins.m68k.psi; package de.platon42.intellij.plugins.m68k.psi;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public interface M68kProgramCounterMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithOuterDisplacement { public interface M68kProgramCounterMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithOuterDisplacement {
@NotNull @Nullable
List<M68kDataWidth> getDataWidthList(); M68kBaseDisplacement getBaseDisplacement();
@NotNull
List<M68kExpr> getExprList();
@Nullable @Nullable
M68kExpr getBaseDisplacement(); M68kOuterDisplacement getOuterDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
} }

View File

@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public interface M68kProgramCounterMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { public interface M68kProgramCounterMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull @NotNull
M68kIndexRegister getIndexRegister(); M68kIndexRegister getIndexRegister();
@NotNull @Nullable
List<M68kExpr> getExprList(); M68kBaseDisplacement getBaseDisplacement();
@Nullable @Nullable
M68kExpr getBaseDisplacement(); M68kOuterDisplacement getOuterDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
} }

View File

@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public interface M68kProgramCounterMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement { public interface M68kProgramCounterMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
@NotNull
List<M68kDataWidth> getDataWidthList();
@NotNull @NotNull
M68kIndexRegister getIndexRegister(); M68kIndexRegister getIndexRegister();
@NotNull @Nullable
List<M68kExpr> getExprList(); M68kBaseDisplacement getBaseDisplacement();
@Nullable @Nullable
M68kExpr getBaseDisplacement(); M68kOuterDisplacement getOuterDisplacement();
@Nullable
M68kExpr getOuterDisplacement();
@Nullable
M68kDataWidth getBaseDataWidth();
@Nullable
M68kDataWidth getOuterDataWidth();
} }

View File

@ -24,6 +24,7 @@ public interface M68kTypes {
IElementType ASM_INSTRUCTION = new M68kElementType("ASM_INSTRUCTION"); IElementType ASM_INSTRUCTION = new M68kElementType("ASM_INSTRUCTION");
IElementType ASM_OP = new M68kElementType("ASM_OP"); IElementType ASM_OP = new M68kElementType("ASM_OP");
IElementType ASSIGNMENT = new M68kElementType("ASSIGNMENT"); IElementType ASSIGNMENT = new M68kElementType("ASSIGNMENT");
IElementType BASE_DISPLACEMENT = new M68kElementType("BASE_DISPLACEMENT");
IElementType BINARY_ADD_EXPR = new M68kElementType("BINARY_ADD_EXPR"); IElementType BINARY_ADD_EXPR = new M68kElementType("BINARY_ADD_EXPR");
IElementType BINARY_BITWISE_AND_EXPR = new M68kElementType("BINARY_BITWISE_AND_EXPR"); IElementType BINARY_BITWISE_AND_EXPR = new M68kElementType("BINARY_BITWISE_AND_EXPR");
IElementType BINARY_BITWISE_OR_EXPR = new M68kElementType("BINARY_BITWISE_OR_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_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 MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE = new M68kElementType("MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE");
IElementType OPERAND_SIZE = new M68kElementType("OPERAND_SIZE"); IElementType OPERAND_SIZE = new M68kElementType("OPERAND_SIZE");
IElementType OUTER_DISPLACEMENT = new M68kElementType("OUTER_DISPLACEMENT");
IElementType PAREN_EXPR = new M68kElementType("PAREN_EXPR"); IElementType PAREN_EXPR = new M68kElementType("PAREN_EXPR");
IElementType PREPROCESSOR_DIRECTIVE = new M68kElementType("PREPROCESSOR_DIRECTIVE"); IElementType PREPROCESSOR_DIRECTIVE = new M68kElementType("PREPROCESSOR_DIRECTIVE");
IElementType PREPROCESSOR_KEYWORD = new M68kElementType("PREPROCESSOR_KEYWORD"); IElementType PREPROCESSOR_KEYWORD = new M68kElementType("PREPROCESSOR_KEYWORD");
@ -177,6 +179,8 @@ public interface M68kTypes {
return new M68kAsmOpImpl(node); return new M68kAsmOpImpl(node);
} else if (type == ASSIGNMENT) { } else if (type == ASSIGNMENT) {
return new M68kAssignmentImpl(node); return new M68kAssignmentImpl(node);
} else if (type == BASE_DISPLACEMENT) {
return new M68kBaseDisplacementImpl(node);
} else if (type == BINARY_ADD_EXPR) { } else if (type == BINARY_ADD_EXPR) {
return new M68kBinaryAddExprImpl(node); return new M68kBinaryAddExprImpl(node);
} else if (type == BINARY_BITWISE_AND_EXPR) { } else if (type == BINARY_BITWISE_AND_EXPR) {
@ -247,6 +251,8 @@ public interface M68kTypes {
return new M68kMemoryIndirectPreIndexedAddressingModeImpl(node); return new M68kMemoryIndirectPreIndexedAddressingModeImpl(node);
} else if (type == OPERAND_SIZE) { } else if (type == OPERAND_SIZE) {
return new M68kOperandSizeImpl(node); return new M68kOperandSizeImpl(node);
} else if (type == OUTER_DISPLACEMENT) {
return new M68kOuterDisplacementImpl(node);
} else if (type == PAREN_EXPR) { } else if (type == PAREN_EXPR) {
return new M68kParenExprImpl(node); return new M68kParenExprImpl(node);
} else if (type == PREPROCESSOR_DIRECTIVE) { } else if (type == PREPROCESSOR_DIRECTIVE) {

View File

@ -79,6 +79,10 @@ public class M68kVisitor extends PsiElementVisitor {
visitPsiElement(o); visitPsiElement(o);
} }
public void visitBaseDisplacement(@NotNull M68kBaseDisplacement o) {
visitPsiElement(o);
}
public void visitDataRegister(@NotNull M68kDataRegister o) { public void visitDataRegister(@NotNull M68kDataRegister o) {
visitRegister(o); visitRegister(o);
} }
@ -154,6 +158,10 @@ public class M68kVisitor extends PsiElementVisitor {
visitPsiElement(o); visitPsiElement(o);
} }
public void visitOuterDisplacement(@NotNull M68kOuterDisplacement o) {
visitPsiElement(o);
}
public void visitPreprocessorDirective(@NotNull M68kPreprocessorDirective o) { public void visitPreprocessorDirective(@NotNull M68kPreprocessorDirective o) {
visitPsiElement(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.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectAddressingMode { public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectAddressingMode {
public M68kMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) { public M68kMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) {
@ -34,43 +32,15 @@ public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl
} }
@Override @Override
@NotNull @Nullable
public List<M68kDataWidth> getDataWidthList() { public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
} }
@Override @Override
@Nullable @Nullable
public M68kExpr getBaseDisplacement() { public M68kOuterDisplacement getOuterDisplacement() {
List<M68kExpr> p1 = getExprList(); return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
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);
} }
} }

View File

@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPostIndexedAddressingMode { public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPostIndexedAddressingMode {
public M68kMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) { public M68kMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) {
@ -33,12 +31,6 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress
return PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class); return PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class);
} }
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override @Override
@NotNull @NotNull
public M68kIndexRegister getIndexRegister() { public M68kIndexRegister getIndexRegister() {
@ -46,37 +38,15 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress
} }
@Override @Override
@NotNull @Nullable
public List<M68kExpr> getExprList() { public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
} }
@Override @Override
@Nullable @Nullable
public M68kExpr getBaseDisplacement() { public M68kOuterDisplacement getOuterDisplacement() {
List<M68kExpr> p1 = getExprList(); return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
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);
} }
} }

View File

@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPreIndexedAddressingMode { public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPreIndexedAddressingMode {
public M68kMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) { public M68kMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) {
@ -33,12 +31,6 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi
return notNullChild(PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class)); return notNullChild(PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class));
} }
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override @Override
@NotNull @NotNull
public M68kIndexRegister getIndexRegister() { public M68kIndexRegister getIndexRegister() {
@ -46,37 +38,15 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi
} }
@Override @Override
@NotNull @Nullable
public List<M68kExpr> getExprList() { public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
} }
@Override @Override
@Nullable @Nullable
public M68kExpr getBaseDisplacement() { public M68kOuterDisplacement getOuterDisplacement() {
List<M68kExpr> p1 = getExprList(); return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
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);
} }
} }

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.lang.ASTNode;
import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiTreeUtil;
import de.platon42.intellij.plugins.m68k.psi.M68kDataWidth; import de.platon42.intellij.plugins.m68k.psi.M68kBaseDisplacement;
import de.platon42.intellij.plugins.m68k.psi.M68kExpr; import de.platon42.intellij.plugins.m68k.psi.M68kOuterDisplacement;
import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectAddressingMode; import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectAddressingMode;
import de.platon42.intellij.plugins.m68k.psi.M68kVisitor; import de.platon42.intellij.plugins.m68k.psi.M68kVisitor;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectAddressingMode { public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectAddressingMode {
public M68kProgramCounterMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) { public M68kProgramCounterMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) {
@ -31,43 +29,15 @@ public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddr
} }
@Override @Override
@NotNull @Nullable
public List<M68kDataWidth> getDataWidthList() { public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class); return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
}
@Override
@NotNull
public List<M68kExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
} }
@Override @Override
@Nullable @Nullable
public M68kExpr getBaseDisplacement() { public M68kOuterDisplacement getOuterDisplacement() {
List<M68kExpr> p1 = getExprList(); return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
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);
} }
} }

View File

@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPostIndexedAddressingMode { public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPostIndexedAddressingMode {
public M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) { public M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) {
@ -27,12 +25,6 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
else super.accept(visitor); else super.accept(visitor);
} }
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override @Override
@NotNull @NotNull
public M68kIndexRegister getIndexRegister() { public M68kIndexRegister getIndexRegister() {
@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
} }
@Override @Override
@NotNull @Nullable
public List<M68kExpr> getExprList() { public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
} }
@Override @Override
@Nullable @Nullable
public M68kExpr getBaseDisplacement() { public M68kOuterDisplacement getOuterDisplacement() {
List<M68kExpr> p1 = getExprList(); return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
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);
} }
} }

View File

@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List;
public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPreIndexedAddressingMode { public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPreIndexedAddressingMode {
public M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) { public M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) {
@ -27,12 +25,6 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
else super.accept(visitor); else super.accept(visitor);
} }
@Override
@NotNull
public List<M68kDataWidth> getDataWidthList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
}
@Override @Override
@NotNull @NotNull
public M68kIndexRegister getIndexRegister() { public M68kIndexRegister getIndexRegister() {
@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
} }
@Override @Override
@NotNull @Nullable
public List<M68kExpr> getExprList() { public M68kBaseDisplacement getBaseDisplacement() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class); return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
} }
@Override @Override
@Nullable @Nullable
public M68kExpr getBaseDisplacement() { public M68kOuterDisplacement getOuterDisplacement() {
List<M68kExpr> p1 = getExprList(); return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
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);
} }
} }

View File

@ -164,6 +164,7 @@ OperandSize ::= (OPSIZE_BS|OPSIZE_W|OPSIZE_L) {
name = ".s|.b|.w|.l" name = ".s|.b|.w|.l"
methods = [getSize] methods = [getSize]
} }
AddressSize ::= (OPSIZE_W|OPSIZE_L) { name = ".w|.l" } AddressSize ::= (OPSIZE_W|OPSIZE_L) { name = ".w|.l" }
DataWidth ::= (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"} private DataOrAddressRegister ::= DataRegister | AddressRegister { name = "data or address register"}
BaseDisplacement ::= expr DataWidth?
OuterDisplacement ::= expr DataWidth?
IndexRegister ::= DataOrAddressRegister DataWidth? (OP_AR_MUL IndexScale)? IndexRegister ::= DataOrAddressRegister DataWidth? (OP_AR_MUL IndexScale)?
{ {
name = "index register" 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 = [ implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect" "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" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
] ]
methods = [ methods = [
baseDisplacement = "expr[0]" baseDisplacement = "BaseDisplacement"
outerDisplacement = "expr[1]" outerDisplacement = "OuterDisplacement"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
] ]
} }
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 = [ implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect" "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" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
] ]
methods = [ methods = [
baseDisplacement = "expr[0]" baseDisplacement = "BaseDisplacement"
outerDisplacement = "expr[1]" outerDisplacement = "OuterDisplacement"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
] ]
} }
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 = [ implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect" "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" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
] ]
methods = [ methods = [
baseDisplacement = "expr[0]" baseDisplacement = "BaseDisplacement"
outerDisplacement = "expr[1]" outerDisplacement = "OuterDisplacement"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
] ]
} }
@ -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 = [ implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
] ]
methods = [ methods = [
baseDisplacement = "expr[0]" baseDisplacement = "BaseDisplacement"
outerDisplacement = "expr[1]" outerDisplacement = "OuterDisplacement"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
] ]
} }
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 = [ implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
@ -437,14 +433,12 @@ ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (exp
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
] ]
methods = [ methods = [
baseDisplacement = "expr[0]" baseDisplacement = "BaseDisplacement"
outerDisplacement = "expr[1]" outerDisplacement = "OuterDisplacement"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
] ]
} }
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 = [ implements = [
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
@ -452,10 +446,8 @@ ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement" "de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
] ]
methods = [ methods = [
baseDisplacement = "expr[0]" baseDisplacement = "BaseDisplacement"
outerDisplacement = "expr[1]" outerDisplacement = "OuterDisplacement"
baseDataWidth = "DataWidth[0]"
outerDataWidth = "DataWidth[1]"
] ]
} }

View File

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

View File

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

View File

@ -10,10 +10,11 @@ Assembly File: a.asm
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
@ -29,17 +30,19 @@ Assembly File: a.asm
M68kLiteralExprImpl(LITERAL_EXPR) M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.DECIMAL)('4')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('12') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('12')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')
@ -55,11 +58,12 @@ Assembly File: a.asm
M68kLiteralExprImpl(LITERAL_EXPR) M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.DECIMAL)('8')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('120') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('120')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n') PsiElement(M68kTokenType.EOL)('\n')

View File

@ -18,10 +18,11 @@ Assembly File: a.asm
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
@ -41,9 +42,10 @@ Assembly File: a.asm
M68kLiteralExprImpl(LITERAL_EXPR) M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.DECIMAL)('8')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('120') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('120')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n') PsiElement(M68kTokenType.EOL)('\n')

View File

@ -10,10 +10,11 @@ Assembly File: a.asm
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
@ -27,10 +28,11 @@ Assembly File: a.asm
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('12') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('12')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')

View File

@ -10,8 +10,9 @@ Assembly File: a.asm
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
@ -27,17 +28,19 @@ Assembly File: a.asm
PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.DECIMAL)('4')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('12') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('12')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')
@ -53,9 +56,10 @@ Assembly File: a.asm
PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.DECIMAL)('8')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('120') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('120')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n') PsiElement(M68kTokenType.EOL)('\n')

View File

@ -18,8 +18,9 @@ Assembly File: a.asm
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
@ -39,11 +40,12 @@ Assembly File: a.asm
PsiElement(M68kTokenType.DECIMAL)('8') PsiElement(M68kTokenType.DECIMAL)('8')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('120') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('120')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n') PsiElement(M68kTokenType.EOL)('\n')

View File

@ -10,10 +10,11 @@ Assembly File: a.asm
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
@ -27,10 +28,11 @@ Assembly File: a.asm
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('12') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('12')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')

View File

@ -10,36 +10,40 @@ Assembly File: a.asm
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('12') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('12')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('120') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('120')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n') PsiElement(M68kTokenType.EOL)('\n')

View File

@ -14,10 +14,11 @@ Assembly File: a.asm
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
@ -27,11 +28,12 @@ Assembly File: a.asm
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('120') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('120')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.EOL)('\n') PsiElement(M68kTokenType.EOL)('\n')

View File

@ -10,8 +10,9 @@ Assembly File: a.asm
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a1') PsiElement(M68kTokenType.AREG)('a1')
@ -21,10 +22,11 @@ Assembly File: a.asm
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE) M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.OP_MINUS)('-') M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
M68kLiteralExprImpl(LITERAL_EXPR) PsiElement(M68kTokenType.OP_MINUS)('-')
PsiElement(M68kTokenType.DECIMAL)('12') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('12')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kAddressRegisterImpl(ADDRESS_REGISTER) M68kAddressRegisterImpl(ADDRESS_REGISTER)
PsiElement(M68kTokenType.AREG)('a0') PsiElement(M68kTokenType.AREG)('a0')

View File

@ -10,10 +10,11 @@ Assembly File: a.asm
M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE) M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
@ -28,10 +29,11 @@ Assembly File: a.asm
M68kLiteralExprImpl(LITERAL_EXPR) M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.DECIMAL)('4')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)

View File

@ -23,8 +23,9 @@ Assembly File: a.asm
M68kLiteralExprImpl(LITERAL_EXPR) M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.DECIMAL)('4')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) 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) M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')

View File

@ -10,10 +10,11 @@ Assembly File: a.asm
M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE) M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
@ -28,8 +29,9 @@ Assembly File: a.asm
PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.DECIMAL)('4')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)

View File

@ -21,10 +21,11 @@ Assembly File: a.asm
PsiElement(M68kTokenType.DECIMAL)('4') PsiElement(M68kTokenType.DECIMAL)('4')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) 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) M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')

View File

@ -10,16 +10,18 @@ Assembly File: a.asm
M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE) M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.OPSIZE_W)('.w') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_W)('.w')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)

View File

@ -13,10 +13,11 @@ Assembly File: a.asm
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kLiteralExprImpl(LITERAL_EXPR) M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('124') M68kLiteralExprImpl(LITERAL_EXPR)
M68kDataWidthImpl(DATA_WIDTH) PsiElement(M68kTokenType.DECIMAL)('124')
PsiElement(M68kTokenType.OPSIZE_L)('.l') M68kDataWidthImpl(DATA_WIDTH)
PsiElement(M68kTokenType.OPSIZE_L)('.l')
PsiElement(M68kTokenType.ROUND_R)(')') PsiElement(M68kTokenType.ROUND_R)(')')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE) M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)

View File

@ -10,8 +10,9 @@ Assembly File: a.asm
M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE) M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE)
PsiElement(M68kTokenType.ROUND_L)('(') PsiElement(M68kTokenType.ROUND_L)('(')
PsiElement(M68kTokenType.SQUARE_L)('[') PsiElement(M68kTokenType.SQUARE_L)('[')
M68kLiteralExprImpl(LITERAL_EXPR) M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
PsiElement(M68kTokenType.DECIMAL)('1234') M68kLiteralExprImpl(LITERAL_EXPR)
PsiElement(M68kTokenType.DECIMAL)('1234')
PsiElement(M68kTokenType.SEPARATOR)(',') PsiElement(M68kTokenType.SEPARATOR)(',')
PsiElement(M68kTokenType.PC)('pc') PsiElement(M68kTokenType.PC)('pc')
PsiElement(M68kTokenType.SQUARE_R)(']') PsiElement(M68kTokenType.SQUARE_R)(']')