Refactored BNF for base and outer displacement to avoid ambiguity for these expressions.
This commit is contained in:
parent
722d4437ec
commit
3f1ef0e55a
@ -438,6 +438,25 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// expr DataWidth?
|
||||
public static boolean BaseDisplacement(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "BaseDisplacement")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b, l, _NONE_, BASE_DISPLACEMENT, "<base displacement>");
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && BaseDisplacement_1(b, l + 1);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean BaseDisplacement_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "BaseDisplacement_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// DataRegister | AddressRegister
|
||||
static boolean DataOrAddressRegister(PsiBuilder b, int l) {
|
||||
@ -808,7 +827,7 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
// ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
public static boolean MemoryIndirectAddressingMode(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode")) return false;
|
||||
if (!nextTokenIsFast(b, ROUND_L)) return false;
|
||||
@ -824,60 +843,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (expr DataWidth? SEPARATOR)?
|
||||
// (BaseDisplacement SEPARATOR)?
|
||||
private static boolean MemoryIndirectAddressingMode_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2")) return false;
|
||||
MemoryIndirectAddressingMode_2_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// expr DataWidth? SEPARATOR
|
||||
// BaseDisplacement SEPARATOR
|
||||
private static boolean MemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && MemoryIndirectAddressingMode_2_0_1(b, l + 1);
|
||||
r = BaseDisplacement(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean MemoryIndirectAddressingMode_2_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_2_0_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// (SEPARATOR expr DataWidth?)?
|
||||
// (SEPARATOR OuterDisplacement)?
|
||||
private static boolean MemoryIndirectAddressingMode_5(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5")) return false;
|
||||
MemoryIndirectAddressingMode_5_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SEPARATOR expr DataWidth?
|
||||
// SEPARATOR OuterDisplacement
|
||||
private static boolean MemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeTokenFast(b, SEPARATOR);
|
||||
r = r && expr(b, l + 1, -1);
|
||||
r = r && MemoryIndirectAddressingMode_5_0_2(b, l + 1);
|
||||
r = r && OuterDisplacement(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean MemoryIndirectAddressingMode_5_0_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectAddressingMode_5_0_2")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
// ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
public static boolean MemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode")) return false;
|
||||
if (!nextTokenIsFast(b, ROUND_L)) return false;
|
||||
@ -892,14 +895,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)?
|
||||
// (SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)?
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1")) return false;
|
||||
MemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR
|
||||
// SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0")) return false;
|
||||
boolean r;
|
||||
@ -912,60 +915,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (expr DataWidth? SEPARATOR)?
|
||||
// (BaseDisplacement SEPARATOR)?
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1")) return false;
|
||||
MemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// expr DataWidth? SEPARATOR
|
||||
// BaseDisplacement SEPARATOR
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1);
|
||||
r = BaseDisplacement(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_1_0_1_0_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// (SEPARATOR expr DataWidth?)?
|
||||
// (SEPARATOR OuterDisplacement)?
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3")) return false;
|
||||
MemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SEPARATOR expr DataWidth?
|
||||
// SEPARATOR OuterDisplacement
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeTokenFast(b, SEPARATOR);
|
||||
r = r && expr(b, l + 1, -1);
|
||||
r = r && MemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1);
|
||||
r = r && OuterDisplacement(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean MemoryIndirectPostIndexedAddressingMode_3_0_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPostIndexedAddressingMode_3_0_2")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
// ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
public static boolean MemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode")) return false;
|
||||
if (!nextTokenIsFast(b, ROUND_L)) return false;
|
||||
@ -983,58 +970,42 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (expr DataWidth? SEPARATOR)?
|
||||
// (BaseDisplacement SEPARATOR)?
|
||||
private static boolean MemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2")) return false;
|
||||
MemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// expr DataWidth? SEPARATOR
|
||||
// BaseDisplacement SEPARATOR
|
||||
private static boolean MemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && MemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1);
|
||||
r = BaseDisplacement(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean MemoryIndirectPreIndexedAddressingMode_2_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_2_0_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// (SEPARATOR expr DataWidth?)?
|
||||
// (SEPARATOR OuterDisplacement)?
|
||||
private static boolean MemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7")) return false;
|
||||
MemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SEPARATOR expr DataWidth?
|
||||
// SEPARATOR OuterDisplacement
|
||||
private static boolean MemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeTokenFast(b, SEPARATOR);
|
||||
r = r && expr(b, l + 1, -1);
|
||||
r = r && MemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1);
|
||||
r = r && OuterDisplacement(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean MemoryIndirectPreIndexedAddressingMode_7_0_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "MemoryIndirectPreIndexedAddressingMode_7_0_2")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// OPSIZE_BS|OPSIZE_W|OPSIZE_L
|
||||
public static boolean OperandSize(PsiBuilder b, int l) {
|
||||
@ -1048,6 +1019,25 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// expr DataWidth?
|
||||
public static boolean OuterDisplacement(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "OuterDisplacement")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b, l, _NONE_, OUTER_DISPLACEMENT, "<outer displacement>");
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && OuterDisplacement_1(b, l + 1);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean OuterDisplacement_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "OuterDisplacement_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// (expr|AddressingMode) (SEPARATOR (expr|AddressingMode))*
|
||||
static boolean PlainOperands(PsiBuilder b, int l) {
|
||||
@ -1276,7 +1266,7 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
// ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
public static boolean ProgramCounterMemoryIndirectAddressingMode(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode")) return false;
|
||||
if (!nextTokenIsFast(b, ROUND_L)) return false;
|
||||
@ -1291,60 +1281,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (expr DataWidth? SEPARATOR)?
|
||||
// (BaseDisplacement SEPARATOR)?
|
||||
private static boolean ProgramCounterMemoryIndirectAddressingMode_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2")) return false;
|
||||
ProgramCounterMemoryIndirectAddressingMode_2_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// expr DataWidth? SEPARATOR
|
||||
// BaseDisplacement SEPARATOR
|
||||
private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && ProgramCounterMemoryIndirectAddressingMode_2_0_1(b, l + 1);
|
||||
r = BaseDisplacement(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean ProgramCounterMemoryIndirectAddressingMode_2_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_2_0_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// (SEPARATOR expr DataWidth?)?
|
||||
// (SEPARATOR OuterDisplacement)?
|
||||
private static boolean ProgramCounterMemoryIndirectAddressingMode_5(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5")) return false;
|
||||
ProgramCounterMemoryIndirectAddressingMode_5_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SEPARATOR expr DataWidth?
|
||||
// SEPARATOR OuterDisplacement
|
||||
private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeTokenFast(b, SEPARATOR);
|
||||
r = r && expr(b, l + 1, -1);
|
||||
r = r && ProgramCounterMemoryIndirectAddressingMode_5_0_2(b, l + 1);
|
||||
r = r && OuterDisplacement(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean ProgramCounterMemoryIndirectAddressingMode_5_0_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectAddressingMode_5_0_2")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
// ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
public static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode")) return false;
|
||||
if (!nextTokenIsFast(b, ROUND_L)) return false;
|
||||
@ -1359,14 +1333,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)?
|
||||
// (SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR)?
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1")) return false;
|
||||
ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR
|
||||
// SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0")) return false;
|
||||
boolean r;
|
||||
@ -1378,60 +1352,44 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (expr DataWidth? SEPARATOR)?
|
||||
// (BaseDisplacement SEPARATOR)?
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1")) return false;
|
||||
ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// expr DataWidth? SEPARATOR
|
||||
// BaseDisplacement SEPARATOR
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(b, l + 1);
|
||||
r = BaseDisplacement(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_1_0_1_0_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// (SEPARATOR expr DataWidth?)?
|
||||
// (SEPARATOR OuterDisplacement)?
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3")) return false;
|
||||
ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SEPARATOR expr DataWidth?
|
||||
// SEPARATOR OuterDisplacement
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeTokenFast(b, SEPARATOR);
|
||||
r = r && expr(b, l + 1, -1);
|
||||
r = r && ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(b, l + 1);
|
||||
r = r && OuterDisplacement(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPostIndexedAddressingMode_3_0_2")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
// ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
public static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode")) return false;
|
||||
if (!nextTokenIsFast(b, ROUND_L)) return false;
|
||||
@ -1448,58 +1406,42 @@ public class M68kParser implements PsiParser, LightPsiParser {
|
||||
return r;
|
||||
}
|
||||
|
||||
// (expr DataWidth? SEPARATOR)?
|
||||
// (BaseDisplacement SEPARATOR)?
|
||||
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2")) return false;
|
||||
ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// expr DataWidth? SEPARATOR
|
||||
// BaseDisplacement SEPARATOR
|
||||
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = expr(b, l + 1, -1);
|
||||
r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(b, l + 1);
|
||||
r = BaseDisplacement(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_2_0_1")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// (SEPARATOR expr DataWidth?)?
|
||||
// (SEPARATOR OuterDisplacement)?
|
||||
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7")) return false;
|
||||
ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// SEPARATOR expr DataWidth?
|
||||
// SEPARATOR OuterDisplacement
|
||||
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeTokenFast(b, SEPARATOR);
|
||||
r = r && expr(b, l + 1, -1);
|
||||
r = r && ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(b, l + 1);
|
||||
r = r && OuterDisplacement(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// DataWidth?
|
||||
private static boolean ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "ProgramCounterMemoryIndirectPreIndexedAddressingMode_7_0_2")) return false;
|
||||
DataWidth(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// CURRENT_PC_SYMBOL
|
||||
public static boolean ProgramCounterReference(PsiBuilder b, int l) {
|
||||
|
@ -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();
|
||||
|
||||
}
|
@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface M68kMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithOuterDisplacement {
|
||||
|
||||
@NotNull
|
||||
M68kAddressRegister getAddressRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kDataWidth> getDataWidthList();
|
||||
|
||||
@NotNull
|
||||
List<M68kExpr> getExprList();
|
||||
@Nullable
|
||||
M68kBaseDisplacement getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getOuterDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getBaseDataWidth();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getOuterDataWidth();
|
||||
M68kOuterDisplacement getOuterDisplacement();
|
||||
|
||||
}
|
||||
|
@ -4,32 +4,18 @@ package de.platon42.intellij.plugins.m68k.psi;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface M68kMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
|
||||
|
||||
@Nullable
|
||||
M68kAddressRegister getAddressRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kDataWidth> getDataWidthList();
|
||||
|
||||
@NotNull
|
||||
M68kIndexRegister getIndexRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kExpr> getExprList();
|
||||
@Nullable
|
||||
M68kBaseDisplacement getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getOuterDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getBaseDataWidth();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getOuterDataWidth();
|
||||
M68kOuterDisplacement getOuterDisplacement();
|
||||
|
||||
}
|
||||
|
@ -4,32 +4,18 @@ package de.platon42.intellij.plugins.m68k.psi;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface M68kMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithAddressRegisterIndirect, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
|
||||
|
||||
@NotNull
|
||||
M68kAddressRegister getAddressRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kDataWidth> getDataWidthList();
|
||||
|
||||
@NotNull
|
||||
M68kIndexRegister getIndexRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kExpr> getExprList();
|
||||
@Nullable
|
||||
M68kBaseDisplacement getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getOuterDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getBaseDataWidth();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getOuterDataWidth();
|
||||
M68kOuterDisplacement getOuterDisplacement();
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
|
||||
}
|
@ -1,29 +1,14 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package de.platon42.intellij.plugins.m68k.psi;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface M68kProgramCounterMemoryIndirectAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithOuterDisplacement {
|
||||
|
||||
@NotNull
|
||||
List<M68kDataWidth> getDataWidthList();
|
||||
|
||||
@NotNull
|
||||
List<M68kExpr> getExprList();
|
||||
@Nullable
|
||||
M68kBaseDisplacement getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getOuterDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getBaseDataWidth();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getOuterDataWidth();
|
||||
M68kOuterDisplacement getOuterDisplacement();
|
||||
|
||||
}
|
||||
|
@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface M68kProgramCounterMemoryIndirectPostIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
|
||||
|
||||
@NotNull
|
||||
List<M68kDataWidth> getDataWidthList();
|
||||
|
||||
@NotNull
|
||||
M68kIndexRegister getIndexRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kExpr> getExprList();
|
||||
@Nullable
|
||||
M68kBaseDisplacement getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getOuterDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getBaseDataWidth();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getOuterDataWidth();
|
||||
M68kOuterDisplacement getOuterDisplacement();
|
||||
|
||||
}
|
||||
|
@ -4,29 +4,15 @@ package de.platon42.intellij.plugins.m68k.psi;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface M68kProgramCounterMemoryIndirectPreIndexedAddressingMode extends M68kAddressingMode, M68kWithBaseDisplacement, M68kWithIndexRegister, M68kWithOuterDisplacement {
|
||||
|
||||
@NotNull
|
||||
List<M68kDataWidth> getDataWidthList();
|
||||
|
||||
@NotNull
|
||||
M68kIndexRegister getIndexRegister();
|
||||
|
||||
@NotNull
|
||||
List<M68kExpr> getExprList();
|
||||
@Nullable
|
||||
M68kBaseDisplacement getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getBaseDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kExpr getOuterDisplacement();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getBaseDataWidth();
|
||||
|
||||
@Nullable
|
||||
M68kDataWidth getOuterDataWidth();
|
||||
M68kOuterDisplacement getOuterDisplacement();
|
||||
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ public interface M68kTypes {
|
||||
IElementType ASM_INSTRUCTION = new M68kElementType("ASM_INSTRUCTION");
|
||||
IElementType ASM_OP = new M68kElementType("ASM_OP");
|
||||
IElementType ASSIGNMENT = new M68kElementType("ASSIGNMENT");
|
||||
IElementType BASE_DISPLACEMENT = new M68kElementType("BASE_DISPLACEMENT");
|
||||
IElementType BINARY_ADD_EXPR = new M68kElementType("BINARY_ADD_EXPR");
|
||||
IElementType BINARY_BITWISE_AND_EXPR = new M68kElementType("BINARY_BITWISE_AND_EXPR");
|
||||
IElementType BINARY_BITWISE_OR_EXPR = new M68kElementType("BINARY_BITWISE_OR_EXPR");
|
||||
@ -60,6 +61,7 @@ public interface M68kTypes {
|
||||
IElementType MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE = new M68kElementType("MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE");
|
||||
IElementType MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE = new M68kElementType("MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE");
|
||||
IElementType OPERAND_SIZE = new M68kElementType("OPERAND_SIZE");
|
||||
IElementType OUTER_DISPLACEMENT = new M68kElementType("OUTER_DISPLACEMENT");
|
||||
IElementType PAREN_EXPR = new M68kElementType("PAREN_EXPR");
|
||||
IElementType PREPROCESSOR_DIRECTIVE = new M68kElementType("PREPROCESSOR_DIRECTIVE");
|
||||
IElementType PREPROCESSOR_KEYWORD = new M68kElementType("PREPROCESSOR_KEYWORD");
|
||||
@ -177,6 +179,8 @@ public interface M68kTypes {
|
||||
return new M68kAsmOpImpl(node);
|
||||
} else if (type == ASSIGNMENT) {
|
||||
return new M68kAssignmentImpl(node);
|
||||
} else if (type == BASE_DISPLACEMENT) {
|
||||
return new M68kBaseDisplacementImpl(node);
|
||||
} else if (type == BINARY_ADD_EXPR) {
|
||||
return new M68kBinaryAddExprImpl(node);
|
||||
} else if (type == BINARY_BITWISE_AND_EXPR) {
|
||||
@ -247,6 +251,8 @@ public interface M68kTypes {
|
||||
return new M68kMemoryIndirectPreIndexedAddressingModeImpl(node);
|
||||
} else if (type == OPERAND_SIZE) {
|
||||
return new M68kOperandSizeImpl(node);
|
||||
} else if (type == OUTER_DISPLACEMENT) {
|
||||
return new M68kOuterDisplacementImpl(node);
|
||||
} else if (type == PAREN_EXPR) {
|
||||
return new M68kParenExprImpl(node);
|
||||
} else if (type == PREPROCESSOR_DIRECTIVE) {
|
||||
|
@ -79,6 +79,10 @@ public class M68kVisitor extends PsiElementVisitor {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitBaseDisplacement(@NotNull M68kBaseDisplacement o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitDataRegister(@NotNull M68kDataRegister o) {
|
||||
visitRegister(o);
|
||||
}
|
||||
@ -154,6 +158,10 @@ public class M68kVisitor extends PsiElementVisitor {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitOuterDisplacement(@NotNull M68kOuterDisplacement o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitPreprocessorDirective(@NotNull M68kPreprocessorDirective o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectAddressingMode {
|
||||
|
||||
public M68kMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) {
|
||||
@ -34,43 +32,15 @@ public class M68kMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kDataWidth> getDataWidthList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kExpr> getExprList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
|
||||
@Nullable
|
||||
public M68kBaseDisplacement getBaseDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getBaseDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getOuterDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getBaseDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getOuterDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
public M68kOuterDisplacement getOuterDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPostIndexedAddressingMode {
|
||||
|
||||
public M68kMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) {
|
||||
@ -33,12 +31,6 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress
|
||||
return PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kDataWidth> getDataWidthList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public M68kIndexRegister getIndexRegister() {
|
||||
@ -46,37 +38,15 @@ public class M68kMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddress
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kExpr> getExprList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
|
||||
@Nullable
|
||||
public M68kBaseDisplacement getBaseDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getBaseDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getOuterDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getBaseDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getOuterDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
public M68kOuterDisplacement getOuterDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kMemoryIndirectPreIndexedAddressingMode {
|
||||
|
||||
public M68kMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) {
|
||||
@ -33,12 +31,6 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi
|
||||
return notNullChild(PsiTreeUtil.getChildOfType(this, M68kAddressRegister.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kDataWidth> getDataWidthList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public M68kIndexRegister getIndexRegister() {
|
||||
@ -46,37 +38,15 @@ public class M68kMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressi
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kExpr> getExprList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
|
||||
@Nullable
|
||||
public M68kBaseDisplacement getBaseDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getBaseDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getOuterDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getBaseDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getOuterDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
public M68kOuterDisplacement getOuterDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
@ -4,15 +4,13 @@ package de.platon42.intellij.plugins.m68k.psi.impl;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kDataWidth;
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kExpr;
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kBaseDisplacement;
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kOuterDisplacement;
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kProgramCounterMemoryIndirectAddressingMode;
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kVisitor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectAddressingMode {
|
||||
|
||||
public M68kProgramCounterMemoryIndirectAddressingModeImpl(@NotNull ASTNode node) {
|
||||
@ -31,43 +29,15 @@ public class M68kProgramCounterMemoryIndirectAddressingModeImpl extends M68kAddr
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kDataWidth> getDataWidthList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kExpr> getExprList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
|
||||
@Nullable
|
||||
public M68kBaseDisplacement getBaseDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getBaseDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getOuterDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getBaseDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getOuterDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
public M68kOuterDisplacement getOuterDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPostIndexedAddressingMode {
|
||||
|
||||
public M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(@NotNull ASTNode node) {
|
||||
@ -27,12 +25,6 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kDataWidth> getDataWidthList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public M68kIndexRegister getIndexRegister() {
|
||||
@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl exten
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kExpr> getExprList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
|
||||
@Nullable
|
||||
public M68kBaseDisplacement getBaseDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getBaseDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getOuterDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getBaseDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getOuterDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
public M68kOuterDisplacement getOuterDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,8 +8,6 @@ import de.platon42.intellij.plugins.m68k.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extends M68kAddressingModeImpl implements M68kProgramCounterMemoryIndirectPreIndexedAddressingMode {
|
||||
|
||||
public M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(@NotNull ASTNode node) {
|
||||
@ -27,12 +25,6 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kDataWidth> getDataWidthList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kDataWidth.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public M68kIndexRegister getIndexRegister() {
|
||||
@ -40,37 +32,15 @@ public class M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl extend
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public List<M68kExpr> getExprList() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, M68kExpr.class);
|
||||
@Nullable
|
||||
public M68kBaseDisplacement getBaseDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kBaseDisplacement.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getBaseDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kExpr getOuterDisplacement() {
|
||||
List<M68kExpr> p1 = getExprList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getBaseDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 1 ? null : p1.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public M68kDataWidth getOuterDataWidth() {
|
||||
List<M68kDataWidth> p1 = getDataWidthList();
|
||||
return p1.size() < 2 ? null : p1.get(1);
|
||||
public M68kOuterDisplacement getOuterDisplacement() {
|
||||
return PsiTreeUtil.getChildOfType(this, M68kOuterDisplacement.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -164,6 +164,7 @@ OperandSize ::= (OPSIZE_BS|OPSIZE_W|OPSIZE_L) {
|
||||
name = ".s|.b|.w|.l"
|
||||
methods = [getSize]
|
||||
}
|
||||
|
||||
AddressSize ::= (OPSIZE_W|OPSIZE_L) { name = ".w|.l" }
|
||||
DataWidth ::= (OPSIZE_W|OPSIZE_L) { name = ".w|.l" }
|
||||
|
||||
@ -236,6 +237,9 @@ Register ::= DataRegister | AddressRegister | SpecialRegister
|
||||
|
||||
private DataOrAddressRegister ::= DataRegister | AddressRegister { name = "data or address register"}
|
||||
|
||||
BaseDisplacement ::= expr DataWidth?
|
||||
OuterDisplacement ::= expr DataWidth?
|
||||
|
||||
IndexRegister ::= DataOrAddressRegister DataWidth? (OP_AR_MUL IndexScale)?
|
||||
{
|
||||
name = "index register"
|
||||
@ -330,7 +334,7 @@ AddressRegisterIndirectWithIndexNewAddressingMode ::= ROUND_L (expr SEPARATOR)?
|
||||
]
|
||||
}
|
||||
|
||||
MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
{
|
||||
implements = [
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect"
|
||||
@ -338,14 +342,12 @@ MemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? A
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
|
||||
]
|
||||
methods = [
|
||||
baseDisplacement = "expr[0]"
|
||||
outerDisplacement = "expr[1]"
|
||||
baseDataWidth = "DataWidth[0]"
|
||||
outerDataWidth = "DataWidth[1]"
|
||||
baseDisplacement = "BaseDisplacement"
|
||||
outerDisplacement = "OuterDisplacement"
|
||||
]
|
||||
}
|
||||
|
||||
MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
{
|
||||
implements = [
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect"
|
||||
@ -354,14 +356,12 @@ MemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? S
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
|
||||
]
|
||||
methods = [
|
||||
baseDisplacement = "expr[0]"
|
||||
outerDisplacement = "expr[1]"
|
||||
baseDataWidth = "DataWidth[0]"
|
||||
outerDataWidth = "DataWidth[1]"
|
||||
baseDisplacement = "BaseDisplacement"
|
||||
outerDisplacement = "OuterDisplacement"
|
||||
]
|
||||
}
|
||||
|
||||
MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? AddressRegister SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
{
|
||||
implements = [
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithAddressRegisterIndirect"
|
||||
@ -370,10 +370,8 @@ MemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEP
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
|
||||
]
|
||||
methods = [
|
||||
baseDisplacement = "expr[0]"
|
||||
outerDisplacement = "expr[1]"
|
||||
baseDataWidth = "DataWidth[0]"
|
||||
outerDataWidth = "DataWidth[1]"
|
||||
baseDisplacement = "BaseDisplacement"
|
||||
outerDisplacement = "OuterDisplacement"
|
||||
]
|
||||
}
|
||||
|
||||
@ -415,21 +413,19 @@ ProgramCounterIndirectWithIndexNewAddressingMode ::= ROUND_L (expr SEPARATOR)? P
|
||||
]
|
||||
}
|
||||
|
||||
ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
ProgramCounterMemoryIndirectAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
{
|
||||
implements = [
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
|
||||
]
|
||||
methods = [
|
||||
baseDisplacement = "expr[0]"
|
||||
outerDisplacement = "expr[1]"
|
||||
baseDataWidth = "DataWidth[0]"
|
||||
outerDataWidth = "DataWidth[1]"
|
||||
baseDisplacement = "BaseDisplacement"
|
||||
outerDisplacement = "OuterDisplacement"
|
||||
]
|
||||
}
|
||||
|
||||
ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (expr DataWidth? SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (BaseDisplacement SEPARATOR)? PC SQUARE_R SEPARATOR)? IndexRegister (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
{
|
||||
implements = [
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
|
||||
@ -437,14 +433,12 @@ ProgramCounterMemoryIndirectPostIndexedAddressingMode ::= ROUND_L (SQUARE_L (exp
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
|
||||
]
|
||||
methods = [
|
||||
baseDisplacement = "expr[0]"
|
||||
outerDisplacement = "expr[1]"
|
||||
baseDataWidth = "DataWidth[0]"
|
||||
outerDataWidth = "DataWidth[1]"
|
||||
baseDisplacement = "BaseDisplacement"
|
||||
outerDisplacement = "OuterDisplacement"
|
||||
]
|
||||
}
|
||||
|
||||
ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr DataWidth? SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR expr DataWidth?)? ROUND_R
|
||||
ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (BaseDisplacement SEPARATOR)? PC SEPARATOR IndexRegister SQUARE_R (SEPARATOR OuterDisplacement)? ROUND_R
|
||||
{
|
||||
implements = [
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithBaseDisplacement"
|
||||
@ -452,10 +446,8 @@ ProgramCounterMemoryIndirectPreIndexedAddressingMode ::= ROUND_L SQUARE_L (expr
|
||||
"de.platon42.intellij.plugins.m68k.psi.M68kWithOuterDisplacement"
|
||||
]
|
||||
methods = [
|
||||
baseDisplacement = "expr[0]"
|
||||
outerDisplacement = "expr[1]"
|
||||
baseDataWidth = "DataWidth[0]"
|
||||
outerDataWidth = "DataWidth[1]"
|
||||
baseDisplacement = "BaseDisplacement"
|
||||
outerDisplacement = "OuterDisplacement"
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,5 @@ package de.platon42.intellij.plugins.m68k.psi
|
||||
|
||||
interface M68kWithBaseDisplacement : M68kAddressingMode {
|
||||
|
||||
val baseDisplacement: M68kExpr?
|
||||
|
||||
val baseDataWidth: M68kDataWidth?
|
||||
val baseDisplacement: M68kBaseDisplacement?
|
||||
}
|
@ -2,7 +2,5 @@ package de.platon42.intellij.plugins.m68k.psi
|
||||
|
||||
interface M68kWithOuterDisplacement : M68kAddressingMode {
|
||||
|
||||
val outerDisplacement: M68kExpr?
|
||||
|
||||
val outerDataWidth: M68kDataWidth?
|
||||
val outerDisplacement: M68kOuterDisplacement?
|
||||
}
|
@ -10,10 +10,11 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
@ -29,17 +30,19 @@ Assembly File: a.asm
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
@ -55,11 +58,12 @@ Assembly File: a.asm
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('8')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -18,10 +18,11 @@ Assembly File: a.asm
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
@ -41,9 +42,10 @@ Assembly File: a.asm
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('8')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -10,10 +10,11 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
@ -27,10 +28,11 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectPostIndexedAddressingModeImpl(MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
|
@ -10,8 +10,9 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
@ -27,17 +28,19 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
@ -53,9 +56,10 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.DECIMAL)('8')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -18,8 +18,9 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
@ -39,11 +40,12 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.DECIMAL)('8')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -10,10 +10,11 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
@ -27,10 +28,11 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectPreIndexedAddressingModeImpl(MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
|
@ -10,36 +10,40 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -14,10 +14,11 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
@ -27,11 +28,12 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('120')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
@ -10,8 +10,9 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a1')
|
||||
@ -21,10 +22,11 @@ Assembly File: a.asm
|
||||
M68kMemoryIndirectAddressingModeImpl(MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kUnaryMinusExprImpl(UNARY_MINUS_EXPR)
|
||||
PsiElement(M68kTokenType.OP_MINUS)('-')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('12')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kAddressRegisterImpl(ADDRESS_REGISTER)
|
||||
PsiElement(M68kTokenType.AREG)('a0')
|
||||
|
@ -10,10 +10,11 @@ Assembly File: a.asm
|
||||
M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
@ -28,10 +29,11 @@ Assembly File: a.asm
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
|
||||
|
@ -23,8 +23,9 @@ Assembly File: a.asm
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
|
||||
|
@ -10,8 +10,9 @@ Assembly File: a.asm
|
||||
M68kProgramCounterMemoryIndirectPostIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_POST_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
|
@ -10,10 +10,11 @@ Assembly File: a.asm
|
||||
M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
@ -28,8 +29,9 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
|
||||
|
@ -21,10 +21,11 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.DECIMAL)('4')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
|
||||
|
@ -10,8 +10,9 @@ Assembly File: a.asm
|
||||
M68kProgramCounterMemoryIndirectPreIndexedAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_PRE_INDEXED_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
|
@ -10,16 +10,18 @@ Assembly File: a.asm
|
||||
M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_W)('.w')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
|
||||
|
@ -13,10 +13,11 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
M68kOuterDisplacementImpl(OUTER_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('124')
|
||||
M68kDataWidthImpl(DATA_WIDTH)
|
||||
PsiElement(M68kTokenType.OPSIZE_L)('.l')
|
||||
PsiElement(M68kTokenType.ROUND_R)(')')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
M68kDataRegisterDirectAddressingModeImpl(DATA_REGISTER_DIRECT_ADDRESSING_MODE)
|
||||
|
@ -10,8 +10,9 @@ Assembly File: a.asm
|
||||
M68kProgramCounterMemoryIndirectAddressingModeImpl(PROGRAM_COUNTER_MEMORY_INDIRECT_ADDRESSING_MODE)
|
||||
PsiElement(M68kTokenType.ROUND_L)('(')
|
||||
PsiElement(M68kTokenType.SQUARE_L)('[')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
M68kBaseDisplacementImpl(BASE_DISPLACEMENT)
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('1234')
|
||||
PsiElement(M68kTokenType.SEPARATOR)(',')
|
||||
PsiElement(M68kTokenType.PC)('pc')
|
||||
PsiElement(M68kTokenType.SQUARE_R)(']')
|
||||
|
Loading…
Reference in New Issue
Block a user