Reworked label handling: Colons are no longer part of the label definition itself. Added PsiNamedElement for Labels.

This commit is contained in:
2021-07-17 10:18:36 +02:00
parent 14dd7de763
commit 63c38f68c3
30 changed files with 520 additions and 250 deletions
@@ -2,7 +2,8 @@ Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('foo:')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('foo')
PsiElement(M68kTokenType.COLON)(':')
PsiWhiteSpace(' ')
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.b')
PsiWhiteSpace(' ')
@@ -2,7 +2,8 @@ Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('howto:')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('howto')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('incbin')
PsiWhiteSpace(' ')
M68kRefExprImpl(REF_EXPR)
@@ -1,7 +1,8 @@
Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('start_demo:')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('start_demo')
PsiElement(M68kTokenType.COLON)(':')
PsiWhiteSpace(' ')
PsiComment(M68kTokenType.COMMENT)('; here we will do some cool stuff')
PsiElement(M68kTokenType.EOL)('\n')
@@ -75,7 +76,8 @@ Assembly File: a.asm
PsiWhiteSpace(' ')
M68kStatementImpl(STATEMENT)
M68kLocalLabelImpl(LOCAL_LABEL)
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('.skip:')
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('.skip')
PsiElement(M68kTokenType.COLON)(':')
PsiWhiteSpace(' ')
M68kAsmInstructionImpl(ASM_INSTRUCTION)
M68kAsmOpImpl(ASM_OP)
@@ -92,7 +94,9 @@ Assembly File: a.asm
PsiWhiteSpace(' ')
M68kStatementImpl(STATEMENT)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('GlobalExit::')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('GlobalExit')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.COLON)(':')
PsiWhiteSpace(' ')
M68kAsmInstructionImpl(ASM_INSTRUCTION)
M68kAsmOpImpl(ASM_OP)
@@ -1,5 +1,6 @@
Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kLocalLabelImpl(LOCAL_LABEL)
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('.local_label:')
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('.local_label')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -1,5 +1,7 @@
Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('External_Label::')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('External_Label')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -1,5 +1,6 @@
Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('Global_Label:')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('Global_Label')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -2,5 +2,6 @@ Assembly File: a.asm
PsiWhiteSpace('\t')
M68kStatementImpl(STATEMENT)
M68kLocalLabelImpl(LOCAL_LABEL)
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('.local_label:')
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('.local_label')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -2,5 +2,7 @@ Assembly File: a.asm
PsiWhiteSpace(' ')
M68kStatementImpl(STATEMENT)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('External_Label::')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('External_Label')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -2,5 +2,6 @@ Assembly File: a.asm
PsiWhiteSpace(' ')
M68kStatementImpl(STATEMENT)
M68kGlobalLabelImpl(GLOBAL_LABEL)
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('Global_Label:')
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('Global_Label')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -2,5 +2,6 @@ Assembly File: a.asm
PsiWhiteSpace(' ')
M68kStatementImpl(STATEMENT)
M68kLocalLabelImpl(LOCAL_LABEL)
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('local_label$:')
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('local_label$')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')
@@ -1,5 +1,6 @@
Assembly File: a.asm
M68kStatementImpl(STATEMENT)
M68kLocalLabelImpl(LOCAL_LABEL)
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('local_label$:')
PsiElement(M68kTokenType.LOCAL_LABEL_DEF)('local_label$')
PsiElement(M68kTokenType.COLON)(':')
PsiElement(M68kTokenType.EOL)('\n')