# Syntax Highlighting for the acme directives scopeName: 'source.assembly.6502.acme' name: 'ACME Crossassembler' filetypes: [ 'a' 'asm' ] patterns: [ { include: 'source.6502-opcodes' } { include: 'source.6502x-opcodes' } { include: '#comments' } # directives { include: '#directives' } # symbols, constants, numbers { include: '#symbols' } ] # Repository starts here ------------------------------------------------------ repository: # comments comments: patterns: [ # semicolon comments { match: ';.*$' name: 'comment.line.semicolon.acme' } ] # symbols symbols: patterns: [ # Labels (at beginning of a line) { match: '^[A-Za-z\\._][A-Za-z0-9_:]*' name: 'entity.name.function.acme' } # this section hilights labels as variables: results in pretty colorful listings, maybe you like it # Labels inline # { # match: '\\b[A-Za-z][A-Za-z0-9_:]*\\b' # name: 'variable.language' # } # Register A (like in ASL A) { match: '\\b[aA]\\b' name: 'variable.language.register.acme' } # Registers X and Y (like in LDA $1000,X or LDA ($30),Y ) { match: '(?<=,)([xXyY])\\b' name: 'variable.language.register.acme' } # strings { begin: '"' end: '"' endCaptures: 0: name: 'punctuation.definition.string.end.acme' name: 'string.quoted.double.acme' } { begin: '\'' end: '\'' name: 'string.quoted.single.assembly.acme' } # absolut addressing/numbering (including lo/hibyte by < or >) { match: '\\#(\\>?\\>|&|\\||\\^|=|<|>|\\:|\\|\\|' name: 'keyword.operator' } # Operators II { match: '\\b(?i:and|not|mod|sh[lr]|x?or|eq|u?[gl]t)\\b' name: 'keyword.operator.acme' } ]