6502asm-sublime/6502asm.JSON-tmLanguage

94 lines
2.4 KiB
JSON

{
"name": "6502 asm",
"scopeName": "source.asm",
"fileTypes": ["asm"],
"patterns": [
{
"match": "(?i)\\b(adc|and|asl|dec|dex|dey|eor|inc|inx|iny|lsr|ora|rol|ror|sbc|nop)\\b",
"name": "keyword.arithlogic.asm",
"comment": "Arithmetic and logic instructions"
},
{
"match": "(?i)\\b(bcc|bcs|beq|bmi|bne|bpl|bvc|bvs|jmp|jsr|rti|rts)\\b",
"name": "keyword.branch.asm",
"comment": "Branch instructions"
},
{
"match": "(?i)\\b(bit|cmp|cpx|cpy)\\b",
"name": "keyword.compare.asm",
"comment": "Comparison instructions"
},
{
"match": "(?i)\\b(clc|cld|cli|clv|sec|sed|sei)\\b",
"name": "keyword.flagset.asm",
"comment": "Flag setting instructions"
},
{
"match": "(?i)\\b(lda|ldx|ldy|pha|php|pla|plp|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b",
"name": "keyword.transfer.asm",
"comment": "Load, store, and transfer instructions"
},
{
"match": "(\/\/|;)(\\s|\\S)*",
"name": "comment.line.asm",
"comment": "Comment"
},
{
"match": "(\/\/|;)(\\s|\\S)*",
"name": "comment.punctuation.definition.asm",
"comment": "Comment"
},
{
"match": "(?i)\\b([\\w|\\d]*)\\:",
"name": "support.class.asm",
"comment": "Jump label"
},
{
"match": "(?i)\\.([\\w|\\d]*)\\b",
"name": "entity.name.function.asm",
"comment": "Directives"
},
{
"match": "(^|\\s)\"[\\w\\s\\W]*\"",
"name": "string.asm",
"comment": "String"
},
{
"match": "(^|\\s)\\'[\\w\\s\\W]*\\'($|\\s)",
"name": "string.asm",
"comment": "String"
},
{
"match": "(?i)\\$((\\d|[A-F])+)\\b",
"name": "constant.numeric.asm",
"comment": "Hex number"
},
{
"match": "(?i)\\%([0|1]+)\\b",
"name": "constant.numeric.asm",
"comment": "Binary number"
},
{
"match": "(?i)\\#([0-9a-f$%]+)\\b",
"name": "constant.numeric.asm",
"comment": "Decimal number"
}
],
"uuid": "2d29de24-0f40-4855-a408-6fe8b3055153"
}