language-65asm/grammars/6502 Assembly (DASM).cson

92 lines
2.2 KiB
Plaintext

# Syntax highlighting for the DASM macro assembler
scopeName: 'source.assembly.6502.dasm'
fileTypes: []
name: '6502 Assembly (DASM)'
patterns: [
{ include: 'source.6502-opcodes' }
{ include: '#comments' }
{ include: '#symbols' }
# { include: '#directives' }
]
# Repository starts here ------------------------------------------------------
repository:
# comments
comments:
patterns: [
# semicolon comments
{
match: ';.*$'
name: 'comment.line.semicolon.dasm'
}
]
# symbols
symbols:
patterns: [
# strings
{
begin: '"'
beginCaptures:
0:
name: 'punctuation.definition.string.begin.dasm'
end: '"'
endCaptures:
0:
name: 'punctuation.definition.string.end.dasm'
name: 'string.quoted.double.dasm'
}
# absolut addressing/numbers
# {
# match: '\\#(\'.\'|[^\\s\']+)'
# name: 'constant.numeric.hex.dasm'
# }
# hex, prefixed with dollar sign($)
{
match: '-?#?\\$\\b[a-fA-F0-9]+\\b'
name: 'constant.numeric.hex.dasm'
}
# octal, prefixed with zero(0)
{
match: '-?#?\\b0[1-7]+\\b'
name: 'constant.numeric.octal.dasm'
}
# binary
{
match: '#?%[01]+'
name: 'constant.numeric.binary.65816-generic'
}
# decimal
{
match: '#?\\b([0-9]+)\\b'
name: 'constant.numeric.decimal.65816-generic'
}
]
# directives
directives:
patterns: [
# file and symbol control
{
match: '\\b(?i:seg(\\.u)?|include|incbin|incdir|hex|err|r?org|processor|echo|rend|align|subroutine|)\\b'
name: 'support.function.pseudo.dasm'
}
# data control
# {
# match: '\\b(?i:d[csv](.bwl)?|hex|eq[um]|set|list\\s(on|off))\\b'
# name: 'support.function.pseudo.dasm'
# }
# Macro control
# {
# match: '\\b(?i:mac|endm|mexit)\\b'
# name: 'support.function.pseudo.acme'
# }
# Conditional control
# {
# match: '\\b(?i:ifn?const|if|else|e(nd)?if|repeat|repend)\\b'
# name: 'keyword.control.conditional.acme'
# }
]