{ "scopeName": "source.dfasm", "name": "dfasm", "fileTypes": ["dfasm"], "patterns": [ { "match": "(@)([a-zA-Z_][a-zA-Z0-9_]*)(?:(\\|)([a-zA-Z_][a-zA-Z0-9_]*))?(?:(:)([a-zA-Z_][a-zA-Z0-9_]*|0x[0-9a-fA-F]+|[0-9]+))?", "captures": { "1": { "name": "punctuation.definition.reference.node.dfasm" }, "2": { "name": "entity.name.type.node.dfasm" }, "3": { "name": "punctuation.separator.placement.dfasm" }, "4": { "name": "entity.other.attribute-name.placement.dfasm" }, "5": { "name": "punctuation.separator.port.dfasm" }, "6": { "name": "constant.numeric.dfasm" } } }, { "match": "(\\&)([a-zA-Z_][a-zA-Z0-9_]*)(?:(\\|)([a-zA-Z_][a-zA-Z0-9_]*))?(?:(:)([a-zA-Z_][a-zA-Z0-9_]*|0x[0-9a-fA-F]+|[0-9]+))?", "captures": { "1": { "name": "punctuation.definition.reference.label.dfasm" }, "2": { "name": "entity.name.function.label.dfasm" }, "3": { "name": "punctuation.separator.placement.dfasm" }, "4": { "name": "entity.other.attribute-name.placement.dfasm" }, "5": { "name": "punctuation.separator.port.dfasm" }, "6": { "name": "constant.numeric.dfasm" } } }, { "match": "(\\$)([a-zA-Z_][a-zA-Z0-9_]*)(?:(\\|)([a-zA-Z_][a-zA-Z0-9_]*))?(?:(:)([a-zA-Z_][a-zA-Z0-9_]*|0x[0-9a-fA-F]+|[0-9]+))?", "captures": { "1": { "name": "punctuation.definition.reference.function.dfasm" }, "2": { "name": "entity.name.type.function.dfasm" }, "3": { "name": "punctuation.separator.placement.dfasm" }, "4": { "name": "entity.other.attribute-name.placement.dfasm" }, "5": { "name": "punctuation.separator.port.dfasm" }, "6": { "name": "constant.numeric.dfasm" } } }, { "match": ";.*$", "name": "comment.line.semicolon.dfasm" }, { "match": "@system\\b", "name": "variable.language.pragma.dfasm" }, { "match": "\\|>", "name": "keyword.operator.flow.out.dfasm" }, { "match": "<\\|", "name": "keyword.operator.flow.in.dfasm" }, { "match": "\\b(?:(?:add|sub|inc|dec|shiftl|shiftr|ashiftr|and|or|xor|not|eq|lt|lte|gt|gte|breq|brgt|brge|brof|brty|sweq|swgt|swge|swof|swty|gate|sel|merge|pass|const|free_ctx|read|write|clear|alloc|free|rd_inc|rd_dec|cmp_sw|ior|iow|iorw|load_inst|change_tag|extract_tag|exec))\\b", "name": "support.function.opcode.dfasm" }, { "match": "(#)((?:[a-zA-Z_][a-zA-Z0-9_]*))", "captures": { "1": { "name": "punctuation.definition.macro.dfasm" }, "2": { "name": "entity.name.function.macro.dfasm" } } }, { "begin": "r\"", "beginCaptures": { "0": { "name": "string.quoted.double.raw.dfasm" } }, "end": "\"", "endCaptures": { "0": { "name": "string.quoted.double.raw.dfasm" } }, "name": "string.quoted.double.raw.dfasm" }, { "begin": "b\"", "beginCaptures": { "0": { "name": "string.quoted.double.byte.dfasm" } }, "end": "\"", "endCaptures": { "0": { "name": "string.quoted.double.byte.dfasm" } }, "name": "string.quoted.double.byte.dfasm", "patterns": [ { "match": "\\\\[ntr0\\\\\\\\\\'\\\"]", "name": "constant.character.escape.dfasm" }, { "match": "\\\\x[0-9a-fA-F]{2}", "name": "constant.character.escape.dfasm" } ] }, { "begin": "\"", "beginCaptures": { "0": { "name": "string.quoted.double.dfasm" } }, "end": "\"", "endCaptures": { "0": { "name": "string.quoted.double.dfasm" } }, "name": "string.quoted.double.dfasm", "patterns": [ { "match": "\\\\[ntr0\\\\\\\\\\'\\\"]", "name": "constant.character.escape.dfasm" }, { "match": "\\\\x[0-9a-fA-F]{2}", "name": "constant.character.escape.dfasm" } ] }, { "begin": "'", "beginCaptures": { "0": { "name": "string.quoted.single.dfasm" } }, "end": "'", "endCaptures": { "0": { "name": "string.quoted.single.dfasm" } }, "name": "string.quoted.single.dfasm", "patterns": [ { "match": "\\\\[ntr0\\\\\\\\\\'\\\"]", "name": "constant.character.escape.dfasm" }, { "match": "\\\\x[0-9a-fA-F]{2}", "name": "constant.character.escape.dfasm" } ] }, { "match": "(?:0x[0-9a-fA-F]+)", "name": "constant.numeric.dfasm" }, { "match": "(?:[0-9]+)", "name": "constant.numeric.dfasm" }, { "match": "((?:[a-zA-Z_][a-zA-Z0-9_]*))(=)", "captures": { "1": { "name": "entity.other.attribute-name.dfasm" } } }, { "match": "=" }, { "match": ",", "name": "punctuation.separator.dfasm" }, { "begin": "\\{", "beginCaptures": { "0": { "name": "punctuation.section.block.dfasm" } }, "end": "\\}", "endCaptures": { "0": { "name": "punctuation.section.block.dfasm" } }, "name": "meta.function.body.dfasm", "patterns": [ { "include": "$self" } ] }, { "match": "\\}", "name": "punctuation.section.block.dfasm" }, { "match": "\\|(?!>)", "name": "punctuation.separator.placement.dfasm" }, { "match": ":", "name": "punctuation.separator.port.dfasm" }, { "match": "\\s+" } ], "repository": {} }