{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "VuurRaaf Assembly", "scopeName": "source.vuurraaf-asm", "patterns": [ { "include": "#comments" }, { "include": "#directives" }, { "include": "#labels" }, { "include": "#mnemonics" }, { "include": "#strings" }, { "include": "#numbers" }, { "include": "#operands" } ], "repository": { "comments": { "patterns": [ { "name": "comment.line.semicolon.vuurraaf-asm", "match": ";.*$" } ] }, "directives": { "patterns": [ { "name": "keyword.other.directive.vuurraaf-asm", "match": "^\\s*(\\.[a-zA-Z_][a-zA-Z0-9_]*)\\b" } ] }, "labels": { "patterns": [ { "name": "meta.label.vuurraaf-asm", "match": "^\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*:\\s*$", "captures": { "1": { "name": "entity.name.function.vuurraaf-asm" } } } ] }, "mnemonics": { "patterns": [ { "name": "keyword.control.vuurraaf-asm", "match": "\\b(halt|push_int|push_str|load|store|pop|dup|add|sub|mul|div|mod|neg|eq|ne|lt|le|gt|ge|and|or|not|jmp|jz|jnz|call|ret|retv|print|println|assert|enter|mkarray|aget|aset|alen|apush|mkstruct|sget|sset)\\b" } ] }, "strings": { "patterns": [ { "name": "string.quoted.double.vuurraaf-asm", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.vuurraaf-asm", "match": "\\\\\\(\\\\|n|t|r|\"|$)" } ] } ] }, "numbers": { "patterns": [ { "name": "constant.numeric.vuurraaf-asm", "match": "-?\\b\\d+\\b" } ] }, "operands": { "patterns": [ { "name": "variable.other.reference.vuurraaf-asm", "match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b" } ] } } }