Nosfe also likes to place assignments with colons. Fixed assignment symbol detection (again :-/).
This commit is contained in:
@@ -5,7 +5,7 @@ import de.platon42.intellij.plugins.m68k.asm.M68kIsa.mnemonics
|
||||
|
||||
object LexerUtil {
|
||||
|
||||
private val ASSIGNMENT_SEPARATORS = charArrayOf(' ', '\t')
|
||||
private val ASSIGNMENT_SEPARATORS = charArrayOf(' ', '\t', '=', ':')
|
||||
|
||||
@JvmStatic
|
||||
fun isAsmMnemonic(text: CharSequence) = mnemonics.contains(text.toString().lowercase())
|
||||
@@ -23,10 +23,6 @@ object LexerUtil {
|
||||
|
||||
@JvmStatic
|
||||
fun pushbackAssignment(text: CharSequence): Int {
|
||||
val spacePos = text.indexOfAny(ASSIGNMENT_SEPARATORS)
|
||||
if (spacePos > -1) {
|
||||
return text.length - spacePos
|
||||
}
|
||||
return text.length - text.indexOf('=')
|
||||
return text.length - text.indexOfAny(ASSIGNMENT_SEPARATORS)
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ EOL=\R
|
||||
WHITE_SPACE=\p{Blank}+
|
||||
AREG=((a[0-7])|sp)
|
||||
DREG=(d[0-7])
|
||||
ASSIGNMENT=(([:letter:]|_)(([:letter:]|[:digit:])|_)*((\p{Blank}+equ\p{Blank}+)|(\p{Blank}+set\p{Blank}+)|\p{Blank}*=\p{Blank}*))
|
||||
ASSIGNMENT=(([:letter:]|_)(([:letter:]|[:digit:])|_)*:?((\p{Blank}+equ\p{Blank}+)|(\p{Blank}+set\p{Blank}+)|\p{Blank}*=\p{Blank}*))
|
||||
LOCAL_LABEL=(\.([:letter:]|_)(([:letter:]|[:digit:])|_)*:?)|(([:letter:]|_)(([:letter:]|[:digit:])|_)*\$:?)
|
||||
LOCAL_LABEL_WC=(\.([:letter:]|_)(([:letter:]|[:digit:])|_)*:)|(([:letter:]|_)(([:letter:]|[:digit:])|_)*\$:)
|
||||
GLOBAL_LABEL=(([:letter:]|_)(([:letter:]|[:digit:])|_)*:?:?)
|
||||
@@ -125,6 +125,7 @@ HASH_COMMENT=([#;*].*+)
|
||||
|
||||
"equ"|"set" { yybegin(EXPR); return EQU; }
|
||||
|
||||
":" { return COLON; }
|
||||
"=" { yybegin(EXPR); return OP_ASSIGN; }
|
||||
|
||||
{COMMENT} { yybegin(WAITEOL); return COMMENT; }
|
||||
|
||||
@@ -126,7 +126,7 @@ statement ::= (Assignment
|
||||
|
||||
private statement_recover ::= !(EOL)
|
||||
|
||||
Assignment ::= SYMBOLDEF (OP_ASSIGN|EQU) expr
|
||||
Assignment ::= SYMBOLDEF COLON? (OP_ASSIGN|EQU) expr
|
||||
|
||||
private LabelInsts ::= LabelWithInstruction | LabelOnly | InstructionOnly
|
||||
|
||||
|
||||
Reference in New Issue
Block a user