2018-06-03 02:12:44 +00:00
|
|
|
# Generic 65C02 grammar with semicolon comments
|
|
|
|
|
|
|
|
scopeName: 'source.assembly.6502.65c02-generic'
|
|
|
|
fileTypes: []
|
|
|
|
name: '6502 Assembly'
|
|
|
|
patterns: [
|
2018-06-07 14:39:14 +00:00
|
|
|
{ include: 'source.65c02-opcodes' } # include 6502 and 65c02 opcodes
|
2018-06-03 02:12:44 +00:00
|
|
|
{ include: 'source.6502x-opcodes' }
|
|
|
|
{ include: '#comments' }
|
|
|
|
{ include: '#symbols' }
|
|
|
|
]
|
|
|
|
|
|
|
|
# Repository starts here ------------------------------------------------------
|
|
|
|
repository:
|
|
|
|
|
|
|
|
# comments
|
|
|
|
comments:
|
|
|
|
patterns: [
|
|
|
|
# semicolon comments
|
|
|
|
{
|
|
|
|
match: ';.*$'
|
|
|
|
name: 'comment.line.semicolon.65c02-generic'
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
# symbols
|
|
|
|
symbols:
|
|
|
|
patterns: [
|
|
|
|
{
|
|
|
|
begin: '"'
|
|
|
|
beginCaptures:
|
|
|
|
0:
|
|
|
|
name: 'punctuation.definition.string.begin.65c02-generic'
|
|
|
|
end: '"'
|
|
|
|
endCaptures:
|
|
|
|
0:
|
|
|
|
name: 'punctuation.definition.string.end.65c02-generic'
|
2018-06-07 16:24:53 +00:00
|
|
|
name: 'string.quoted.double.65c02-generic'
|
2018-06-03 02:12:44 +00:00
|
|
|
}
|
|
|
|
# absolut address/number
|
|
|
|
{
|
|
|
|
match: '\\#(\'.\'|[^\\s\']+)'
|
|
|
|
name: 'constant.numeric.hex.65c02-generic'
|
|
|
|
}
|
|
|
|
# hex, prefixed with ampersand($)
|
|
|
|
{
|
2018-06-07 16:24:53 +00:00
|
|
|
match: '-?\\$\\b[A-Fa-f0-9]+\\b'
|
2018-06-03 02:12:44 +00:00
|
|
|
name: 'constant.numeric.hex.65c02-generic'
|
|
|
|
}
|
|
|
|
# hex, suffixed with h(h)
|
|
|
|
{
|
2018-06-07 15:15:47 +00:00
|
|
|
match: '-?([a-fA-F0-9]+)h'
|
2018-06-03 02:12:44 +00:00
|
|
|
name: 'constant.numeric.hex.65c02-generic'
|
|
|
|
}
|
|
|
|
# binary
|
|
|
|
{
|
|
|
|
match: '%[01]+'
|
|
|
|
name: 'constant.numeric.binary.65c02-generic'
|
|
|
|
}
|
|
|
|
# decimal
|
|
|
|
{
|
|
|
|
match: '\\b([0-9]+)\\b'
|
|
|
|
name: 'constant.numeric.decimal.65c02-generic'
|
|
|
|
}
|
|
|
|
]
|