grammars/source.blitzmax.json in github-linguist-7.11.1 vs grammars/source.blitzmax.json in github-linguist-7.12.0
- old
+ new
@@ -1,905 +2 @@
-{
- "name": "BlitzMax",
- "scopeName": "source.blitzmax",
- "patterns": [
- {
- "name": "punctuation.terminator.line.blitzmax",
- "match": ";"
- },
- {
- "include": "#bmax_comment_quote"
- },
- {
- "include": "#bmax_comment_block"
- },
- {
- "include": "#bmax_global_variable"
- },
- {
- "include": "#bmax_local_variable"
- },
- {
- "include": "#bmax_constant"
- },
- {
- "include": "#bmax_pointerops"
- },
- {
- "include": "#bmax_preprocessor"
- },
- {
- "include": "#bmax_attributes"
- },
- {
- "name": "meta.try.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(try)\\b",
- "end": "(?i)\\b(end\\s?try)\\b",
- "patterns": [
- {
- "name": "keyword.control.try.catch.blitzmax",
- "match": "(?i)^\\s*(catch)"
- },
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.control.try.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.control.try.blitzmax"
- }
- }
- },
- {
- "name": "meta.extern.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(extern)(?:\\s+((\")[^\"]*(\"))|\\b)",
- "end": "(?i)(?:(?:^|;)\\s*)\\b(end\\s?extern)\\b",
- "patterns": [
- {
- "include": "#bmax_comment_quote"
- },
- {
- "include": "#bmax_comment_block"
- },
- {
- "include": "#bmax_pointerops"
- },
- {
- "include": "#bmax_constants"
- },
- {
- "include": "#bmax_null"
- },
- {
- "include": "#bmax_typename"
- },
- {
- "include": "#bmax_types"
- },
- {
- "include": "#bmax_array"
- },
- {
- "include": "#bmax_string_quoted"
- },
- {
- "include": "#bmax_global_variable"
- },
- {
- "include": "#bmax_constant"
- },
- {
- "include": "#bmax_preprocessor"
- },
- {
- "name": "meta.function.extern.blitzmax",
- "match": "(?i)(?:(?:^|;)\\s*)(function)\\s+([a-zA-Z_]\\w*)\\b",
- "captures": {
- "1": {
- "name": "storage.type.function.extern.blitzmax"
- },
- "2": {
- "name": "entity.name.function.extern.blitzmax"
- }
- }
- },
- {
- "name": "meta.type.extern.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(type)\\s+([a-zA-Z_]\\w*)(?:\\s+(extends)\\s+([a-zA-Z_]\\w*))?",
- "end": "(?i)\\b(end\\s?type)\\b",
- "patterns": [
- {
- "name": "meta.method.blitzmax",
- "match": "(?i)(?:(?:^|;)\\s*)(method)\\s+([a-zA-Z_]\\w*)\\b",
- "captures": {
- "1": {
- "name": "storage.type.method.method.extern.blitzmax"
- },
- "2": {
- "name": "entity.name.function.method.extern.blitzmax"
- }
- }
- },
- {
- "include": "#bmax_comment_quote"
- },
- {
- "include": "#bmax_comment_block"
- },
- {
- "include": "#bmax_pointerops"
- },
- {
- "include": "#bmax_string_quoted"
- },
- {
- "include": "#bmax_constants"
- },
- {
- "include": "#bmax_null"
- },
- {
- "include": "#bmax_typename"
- },
- {
- "include": "#bmax_types"
- },
- {
- "include": "#bmax_array"
- },
- {
- "include": "#bmax_type_field"
- },
- {
- "include": "#bmax_preprocessor"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "storage.type.class.extern.blitzmax"
- },
- "2": {
- "name": "entity.name.type.extern.blitzmax"
- },
- "3": {
- "name": "storage.modifier.extends.extern.blitzmax"
- },
- "4": {
- "name": "entity.other.inherited-class.extern.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "storage.type.class.extern.blitzmax"
- }
- }
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.other.extern.blitzmax"
- },
- "2": {
- "name": "string.quoted.double.blitzmax"
- },
- "3": {
- "name": "punctuation.definition.string.begin.blitzmax"
- },
- "4": {
- "name": "punctuation.definition.string.end.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.other.extern.blitzmax"
- }
- }
- },
- {
- "include": "#bmax_function"
- },
- {
- "name": "meta.import.module.blitzmax",
- "match": "(?i)\\b(import)\\s+((?:[a-zA-Z_]\\w*\\.?)+)",
- "captures": {
- "1": {
- "name": "keyword.other.import.blitzmax"
- },
- "2": {
- "name": "string.unquoted.module.blitzmax"
- }
- }
- },
- {
- "name": "meta.import.file.blitzmax",
- "contentName": "string.quoted.double.blitzmax",
- "begin": "(?i)\\b(import)\\s+((\"))",
- "end": "(\")",
- "patterns": [
- {
- "include": "#bmax_string_content"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.other.import.blitzmax"
- },
- "2": {
- "name": "punctuation.definition.string.begin.blitzmax"
- },
- "3": {
- "name": "string.quoted.double.blitzmax"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.blitzmax"
- },
- "1": {
- "name": "string.quoted.double.blitzmax"
- }
- }
- },
- {
- "name": "meta.framework.blitzmax",
- "match": "(?i)\\b(framework)\\s+((?:[a-zA-Z_]\\w*\\.?)+)",
- "captures": {
- "1": {
- "name": "keyword.other.framework.blitzmax"
- },
- "2": {
- "name": "string.unquoted.module.blitzmax"
- }
- }
- },
- {
- "name": "meta.module.blitzmax",
- "match": "(?i)\\b(module)\\s+(([a-zA-Z_]\\w*\\.?)+)",
- "captures": {
- "1": {
- "name": "keyword.other.module.blitzmax"
- },
- "2": {
- "name": "string.unquoted.module.blitzmax"
- }
- }
- },
- {
- "name": "meta.include.blitzmax",
- "contentName": "string.quoted.double.blitzmax",
- "begin": "(?i)\\b(include)\\s+((\"))",
- "end": "(\")",
- "patterns": [
- {
- "include": "#bmax_string_content"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.other.include.blitzmax"
- },
- "2": {
- "name": "punctuation.definition.string.begin.blitzmax"
- },
- "3": {
- "name": "string.quoted.double.blitzmax"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.blitzmax"
- },
- "1": {
- "name": "string.quoted.double.blitzmax"
- }
- }
- },
- {
- "name": "meta.incbin.blitzmax",
- "contentName": "string.quoted.double.blitzmax",
- "begin": "(?i)\\b(incbin)\\s+((\"))",
- "end": "(\")",
- "patterns": [
- {
- "include": "#bmax_string_content"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.other.incbin.blitzmax"
- },
- "2": {
- "name": "punctuation.definition.string.begin.blitzmax"
- },
- "3": {
- "name": "string.quoted.double.blitzmax"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.blitzmax"
- },
- "1": {
- "name": "string.quoted.double.blitzmax"
- }
- }
- },
- {
- "name": "meta.moduleinfo.blitzmax",
- "contentName": "string.quoted.double.blitzmax",
- "begin": "(?i)\\b(moduleinfo)\\s+((\"))",
- "end": "(\")",
- "patterns": [
- {
- "include": "#bmax_string_content"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.other.moduleinfo.blitzmax"
- },
- "2": {
- "name": "punctuation.definition.string.begin.blitzmax"
- },
- "3": {
- "name": "string.quoted.double.blitzmax"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.blitzmax"
- },
- "1": {
- "name": "string.quoted.double.blitzmax"
- }
- }
- },
- {
- "name": "meta.type.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(type)\\s+([a-zA-Z_]\\w*)(?:\\s+(extends)\\s+([a-zA-Z_]\\w*))?(?:\\s+(final|abstract))?",
- "end": "(?i)\\b(end\\s?type)\\b",
- "patterns": [
- {
- "name": "meta.method.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(method)\\s+([a-zA-Z_]\\w*)",
- "end": "(?i)(?:\\)\\s+(abstract)\\s*)$|\\b(end\\s?method)\\b",
- "patterns": [
- {
- "include": "$self"
- },
- {
- "name": "storage.modifier.method.final.blitzmax",
- "match": "(?i)\\bfinal\\b"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "storage.type.method.blitzmax"
- },
- "2": {
- "name": "entity.name.function.method.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "storage.modifier.abstract.blitzmax"
- },
- "2": {
- "name": "storage.type.method.blitzmax"
- }
- }
- },
- {
- "include": "#bmax_comment_quote"
- },
- {
- "include": "#bmax_comment_block"
- },
- {
- "include": "#bmax_constants"
- },
- {
- "include": "#bmax_string_quoted"
- },
- {
- "include": "#bmax_attributes"
- },
- {
- "include": "#bmax_pointerops"
- },
- {
- "include": "#bmax_null"
- },
- {
- "include": "#bmax_types"
- },
- {
- "include": "#bmax_typename"
- },
- {
- "include": "#bmax_global_variable"
- },
- {
- "include": "#bmax_constant"
- },
- {
- "include": "#bmax_function"
- },
- {
- "include": "#bmax_type_field"
- },
- {
- "include": "#bmax_constructor"
- },
- {
- "include": "#bmax_preprocessor"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "storage.type.class.blitzmax"
- },
- "2": {
- "name": "entity.name.type.blitzmax"
- },
- "3": {
- "name": "storage.modifier.extends.blitzmax"
- },
- "4": {
- "name": "entity.other.inherited-class.blitzmax"
- },
- "5": {
- "name": "storage.modifier.class.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "storage.type.class.blitzmax"
- }
- }
- },
- {
- "name": "keyword.control.if.blitzmax",
- "match": "(?i)\\b((end\\s?|else\\s?)?(if)|else|then)\\b"
- },
- {
- "include": "#bmax_control_keywords"
- },
- {
- "name": "meta.control.while.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(while)\\b",
- "end": "(?i)(?:(?:^|;)\\s*)(end\\s?while|wend)\\b",
- "patterns": [
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.control.while.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.control.while.end.blitzmax"
- }
- }
- },
- {
- "name": "meta.control.for.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(for)\\b",
- "end": "(?i)(?:(?:^|;)\\s*)(next)\\b",
- "patterns": [
- {
- "name": "keyword.control.for.eachin.blitzmax",
- "match": "(?i)\\beachin\\b"
- },
- {
- "name": "keyword.control.for.to.blitzmax",
- "match": "(?i)\\bto\\b"
- },
- {
- "name": "keyword.control.for.until.blitzmax",
- "match": "(?i)\\buntil\\b"
- },
- {
- "name": "keyword.control.for.step.blitzmax",
- "match": "(?i)\\bstep\\b"
- },
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.control.for.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.control.for.end.blitzmax"
- }
- }
- },
- {
- "name": "meta.control.repeat.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(repeat)\\b",
- "end": "(?i)(?:(?:^|;)\\s*)(until|forever)\\b",
- "patterns": [
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.control.repeat.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.control.repeat.end.blitzmax"
- }
- }
- },
- {
- "name": "meta.control.select.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(select)\\b",
- "end": "(?i)(?:(?:^|;)\\s*)(end\\s?select)\\b",
- "patterns": [
- {
- "name": "meta.control.select.case.blitzmax",
- "match": "(?i)(?:(?:^|;)\\s*)(case)\\b",
- "captures": {
- "1": {
- "name": "keyword.control.select.case.blitzmax"
- }
- }
- },
- {
- "name": "meta.control.select.default.blitzmax",
- "match": "(?i)(?:(?:^|;)\\s*)(default)\\b",
- "captures": {
- "1": {
- "name": "keyword.control.select.default.blitzmax"
- }
- }
- },
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.control.select.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.control.select.end.blitzmax"
- }
- }
- },
- {
- "name": "keyword.operator.blitzmax",
- "match": "(?i)\\b(mod|shr|shl|sar|and|or|not)\\b"
- },
- {
- "name": "keyword.operator.blitzmax",
- "match": ":?[\\^+\\-=\u0026|\u003e\u003c]"
- },
- {
- "name": "keyword.other.scope.blitzmax",
- "match": "(?i)\\b(private|public)\\b"
- },
- {
- "name": "keyword.other.strictness.blitzmax",
- "match": "(?i)\\b(strict|superstrict)\\b"
- },
- {
- "include": "#bmax_null"
- },
- {
- "include": "#bmax_types"
- },
- {
- "include": "#bmax_constants"
- },
- {
- "include": "#bmax_string_quoted"
- },
- {
- "name": "variable.language.self.blitzmax",
- "match": "(?i)\\b(self)\\b"
- },
- {
- "name": "variable.language.super.blitzmax",
- "match": "(?i)\\b(super)\\b"
- },
- {
- "include": "#bmax_constructor"
- },
- {
- "include": "#bmax_array"
- },
- {
- "include": "#bmax_typename"
- }
- ],
- "repository": {
- "bmax_array": {
- "name": "meta.array.blitzmax",
- "begin": "(\\[)",
- "end": "(\\])",
- "patterns": [
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "keyword.operator.array.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "keyword.operator.array.blitzmax"
- }
- }
- },
- "bmax_attributes": {
- "name": "meta.attributes.blitzmax",
- "begin": "(\\{)",
- "end": "(\\})",
- "patterns": [
- {
- "name": "meta.attribute.blitzmax",
- "begin": "\\b([a-zA-Z_]\\w*)\\s*(=)\\s*",
- "end": "(?=\\s|\\}|[a-zA-Z_])",
- "patterns": [
- {
- "include": "#bmax_string_quoted"
- },
- {
- "include": "#bmax_numbers"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "entity.other.attribute-name.blitzmax"
- }
- }
- },
- {
- "name": "meta.attribute.blitzmax",
- "match": "\\b([a-zA-Z_]\\w*)(?:\\s*((?!=)|(?=\\})))",
- "captures": {
- "1": {
- "name": "entity.other.attribute-name.blitzmax"
- }
- }
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "storage.modifier.attributes.braces.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "storage.modifier.attributes.braces.blitzmax"
- }
- }
- },
- "bmax_boolean": {
- "name": "constant.language.boolean.blitzmax",
- "match": "(?i)\\b(true|false)\\b"
- },
- "bmax_comment_block": {
- "name": "comment.block.rem.blitzmax",
- "begin": "(?i)(?\u003c=\\s|^|;)(?\u003c!end|end\\s)rem\\b",
- "end": "(?i)(?\u003c=\\s|^|;)end\\s?rem\\b",
- "patterns": [
- {
- "include": "#bmax_url_content"
- }
- ]
- },
- "bmax_comment_quote": {
- "name": "comment.line.apostrophe.blitzmax",
- "begin": "'",
- "end": "$",
- "patterns": [
- {
- "include": "#bmax_url_content"
- }
- ]
- },
- "bmax_constant": {
- "name": "meta.constant.blitzmax",
- "match": "(?i)\\b(const)\\b",
- "captures": {
- "1": {
- "name": "keyword.other.constant.blitzmax"
- }
- }
- },
- "bmax_constants": {
- "patterns": [
- {
- "include": "#bmax_pi"
- },
- {
- "include": "#bmax_boolean"
- },
- {
- "include": "#bmax_numbers"
- }
- ]
- },
- "bmax_constructor": {
- "name": "meta.call.constructor.blitzmax",
- "match": "(?i)\\b(new)\\s+([a-zA-Z_]\\w*)\\b",
- "captures": {
- "1": {
- "name": "keyword.other.new.blitzmax"
- },
- "2": {
- "name": "storage.type.class.blitzmax"
- }
- }
- },
- "bmax_control_keywords": {
- "name": "keyword.control.blitzmax",
- "match": "(?i)\\b(throw|return|exit|continue)\\b"
- },
- "bmax_function": {
- "name": "meta.function.blitzmax",
- "begin": "(?i)(?:(?:^|;)\\s*)(function)\\s+([a-zA-Z_]\\w*)\\b",
- "end": "(?i)\\b(end\\s?function)\\b",
- "patterns": [
- {
- "include": "$self"
- }
- ],
- "beginCaptures": {
- "1": {
- "name": "storage.type.function.blitzmax"
- },
- "2": {
- "name": "entity.name.function.blitzmax"
- }
- },
- "endCaptures": {
- "1": {
- "name": "storage.type.function.blitzmax"
- }
- }
- },
- "bmax_global_variable": {
- "name": "meta.variable.blitzmax",
- "match": "(?i)\\b(global)\\b",
- "captures": {
- "1": {
- "name": "storage.modifier.global.blitzmax"
- }
- }
- },
- "bmax_local_variable": {
- "name": "meta.variable.blitzmax",
- "match": "(?i)\\b(local)\\b",
- "captures": {
- "1": {
- "name": "keyword.other.variable.local.blitzmax"
- }
- }
- },
- "bmax_null": {
- "name": "constant.language.null.blitzmax",
- "match": "(?i)\\bnull\\b"
- },
- "bmax_numbers": {
- "patterns": [
- {
- "name": "constant.numeric.integer.hexadecimal.blitzmax",
- "match": "(\\$[0-9a-fA-F]{1,16})"
- },
- {
- "name": "constant.numeric.integer.binary.blitzmax",
- "match": "(\\%[01]{1,128})"
- },
- {
- "name": "constant.numeric.float.blitzmax",
- "match": "(?x) (?\u003c! % | \\$ ) (\n\t\t\t\t\t\t\t\\b ([0-9]+ \\. [0-9]+) |\n\t\t\t\t\t\t\t(\\. [0-9]+)\n\t\t\t\t\t\t)"
- },
- {
- "name": "constant.numeric.integer.blitzmax",
- "match": "(?x)\\b(([0-9]+))"
- }
- ]
- },
- "bmax_pi": {
- "name": "constant.language.blitzmax",
- "match": "(?i)\\bpi\\b"
- },
- "bmax_pointerops": {
- "name": "meta.pointerops.blitzmax",
- "match": "(?i)\\b(?:(ptr|var)|(varptr))\\b",
- "captures": {
- "1": {
- "name": "storage.modifier.blitzmax"
- },
- "2": {
- "name": "keyword.operator.blitzmax"
- }
- }
- },
- "bmax_preprocessor": {
- "name": "keyword.control.preprocessor.blitzmax",
- "match": "(?i)^\\s*\\?(not\\s+)?\\w*"
- },
- "bmax_string_content": {
- "patterns": [
- {
- "name": "constant.character.escape.blitzmax",
- "match": "\\~[^\"]"
- },
- {
- "include": "#bmax_url_content"
- }
- ]
- },
- "bmax_string_quoted": {
- "name": "string.quoted.double.blitzmax",
- "begin": "\"",
- "end": "\"",
- "patterns": [
- {
- "include": "#bmax_string_content"
- }
- ],
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.string.begin.blitzmax"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.blitzmax"
- }
- }
- },
- "bmax_type_field": {
- "name": "meta.variable.field.blitzmax",
- "match": "(?i)\\b(field)\\b",
- "captures": {
- "1": {
- "name": "keyword.other.variable.field.blitzmax"
- }
- }
- },
- "bmax_typename": {
- "name": "meta.typename.blitzmax",
- "match": "(?xi)(?: \\: \\s* ([a-zA-Z_]\\w*) | ([!#%]|@{1,2}|\\$[zw]?) )",
- "captures": {
- "1": {
- "name": "storage.type.blitzmax"
- },
- "2": {
- "name": "storage.type.blitzmax"
- }
- }
- },
- "bmax_types": {
- "name": "storage.type.blitzmax",
- "match": "(?i)\\b(object|string|byte|short|int|long|float|double)\\b"
- },
- "bmax_url_content": {
- "name": "meta.url.blitzmax",
- "match": "[a-zA-Z_]\\w*://[^ \"'()\\[\\]]*(?=$|\\b)"
- }
- }
-}
+{"name":"BlitzMax","scopeName":"source.blitzmax","patterns":[{"name":"punctuation.terminator.line.blitzmax","match":";"},{"include":"#bmax_comment_quote"},{"include":"#bmax_comment_block"},{"include":"#bmax_global_variable"},{"include":"#bmax_local_variable"},{"include":"#bmax_constant"},{"include":"#bmax_pointerops"},{"include":"#bmax_preprocessor"},{"include":"#bmax_attributes"},{"name":"meta.try.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(try)\\b","end":"(?i)\\b(end\\s?try)\\b","patterns":[{"name":"keyword.control.try.catch.blitzmax","match":"(?i)^\\s*(catch)"},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.try.blitzmax"}},"endCaptures":{"1":{"name":"keyword.control.try.blitzmax"}}},{"name":"meta.extern.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(extern)(?:\\s+((\")[^\"]*(\"))|\\b)","end":"(?i)(?:(?:^|;)\\s*)\\b(end\\s?extern)\\b","patterns":[{"include":"#bmax_comment_quote"},{"include":"#bmax_comment_block"},{"include":"#bmax_pointerops"},{"include":"#bmax_constants"},{"include":"#bmax_null"},{"include":"#bmax_typename"},{"include":"#bmax_types"},{"include":"#bmax_array"},{"include":"#bmax_string_quoted"},{"include":"#bmax_global_variable"},{"include":"#bmax_constant"},{"include":"#bmax_preprocessor"},{"name":"meta.function.extern.blitzmax","match":"(?i)(?:(?:^|;)\\s*)(function)\\s+([a-zA-Z_]\\w*)\\b","captures":{"1":{"name":"storage.type.function.extern.blitzmax"},"2":{"name":"entity.name.function.extern.blitzmax"}}},{"name":"meta.type.extern.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(type)\\s+([a-zA-Z_]\\w*)(?:\\s+(extends)\\s+([a-zA-Z_]\\w*))?","end":"(?i)\\b(end\\s?type)\\b","patterns":[{"name":"meta.method.blitzmax","match":"(?i)(?:(?:^|;)\\s*)(method)\\s+([a-zA-Z_]\\w*)\\b","captures":{"1":{"name":"storage.type.method.method.extern.blitzmax"},"2":{"name":"entity.name.function.method.extern.blitzmax"}}},{"include":"#bmax_comment_quote"},{"include":"#bmax_comment_block"},{"include":"#bmax_pointerops"},{"include":"#bmax_string_quoted"},{"include":"#bmax_constants"},{"include":"#bmax_null"},{"include":"#bmax_typename"},{"include":"#bmax_types"},{"include":"#bmax_array"},{"include":"#bmax_type_field"},{"include":"#bmax_preprocessor"}],"beginCaptures":{"1":{"name":"storage.type.class.extern.blitzmax"},"2":{"name":"entity.name.type.extern.blitzmax"},"3":{"name":"storage.modifier.extends.extern.blitzmax"},"4":{"name":"entity.other.inherited-class.extern.blitzmax"}},"endCaptures":{"1":{"name":"storage.type.class.extern.blitzmax"}}}],"beginCaptures":{"1":{"name":"keyword.other.extern.blitzmax"},"2":{"name":"string.quoted.double.blitzmax"},"3":{"name":"punctuation.definition.string.begin.blitzmax"},"4":{"name":"punctuation.definition.string.end.blitzmax"}},"endCaptures":{"1":{"name":"keyword.other.extern.blitzmax"}}},{"include":"#bmax_function"},{"name":"meta.import.module.blitzmax","match":"(?i)\\b(import)\\s+((?:[a-zA-Z_]\\w*\\.?)+)","captures":{"1":{"name":"keyword.other.import.blitzmax"},"2":{"name":"string.unquoted.module.blitzmax"}}},{"name":"meta.import.file.blitzmax","contentName":"string.quoted.double.blitzmax","begin":"(?i)\\b(import)\\s+((\"))","end":"(\")","patterns":[{"include":"#bmax_string_content"}],"beginCaptures":{"1":{"name":"keyword.other.import.blitzmax"},"2":{"name":"punctuation.definition.string.begin.blitzmax"},"3":{"name":"string.quoted.double.blitzmax"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blitzmax"},"1":{"name":"string.quoted.double.blitzmax"}}},{"name":"meta.framework.blitzmax","match":"(?i)\\b(framework)\\s+((?:[a-zA-Z_]\\w*\\.?)+)","captures":{"1":{"name":"keyword.other.framework.blitzmax"},"2":{"name":"string.unquoted.module.blitzmax"}}},{"name":"meta.module.blitzmax","match":"(?i)\\b(module)\\s+(([a-zA-Z_]\\w*\\.?)+)","captures":{"1":{"name":"keyword.other.module.blitzmax"},"2":{"name":"string.unquoted.module.blitzmax"}}},{"name":"meta.include.blitzmax","contentName":"string.quoted.double.blitzmax","begin":"(?i)\\b(include)\\s+((\"))","end":"(\")","patterns":[{"include":"#bmax_string_content"}],"beginCaptures":{"1":{"name":"keyword.other.include.blitzmax"},"2":{"name":"punctuation.definition.string.begin.blitzmax"},"3":{"name":"string.quoted.double.blitzmax"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blitzmax"},"1":{"name":"string.quoted.double.blitzmax"}}},{"name":"meta.incbin.blitzmax","contentName":"string.quoted.double.blitzmax","begin":"(?i)\\b(incbin)\\s+((\"))","end":"(\")","patterns":[{"include":"#bmax_string_content"}],"beginCaptures":{"1":{"name":"keyword.other.incbin.blitzmax"},"2":{"name":"punctuation.definition.string.begin.blitzmax"},"3":{"name":"string.quoted.double.blitzmax"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blitzmax"},"1":{"name":"string.quoted.double.blitzmax"}}},{"name":"meta.moduleinfo.blitzmax","contentName":"string.quoted.double.blitzmax","begin":"(?i)\\b(moduleinfo)\\s+((\"))","end":"(\")","patterns":[{"include":"#bmax_string_content"}],"beginCaptures":{"1":{"name":"keyword.other.moduleinfo.blitzmax"},"2":{"name":"punctuation.definition.string.begin.blitzmax"},"3":{"name":"string.quoted.double.blitzmax"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blitzmax"},"1":{"name":"string.quoted.double.blitzmax"}}},{"name":"meta.type.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(type)\\s+([a-zA-Z_]\\w*)(?:\\s+(extends)\\s+([a-zA-Z_]\\w*))?(?:\\s+(final|abstract))?","end":"(?i)\\b(end\\s?type)\\b","patterns":[{"name":"meta.method.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(method)\\s+([a-zA-Z_]\\w*)","end":"(?i)(?:\\)\\s+(abstract)\\s*)$|\\b(end\\s?method)\\b","patterns":[{"include":"$self"},{"name":"storage.modifier.method.final.blitzmax","match":"(?i)\\bfinal\\b"}],"beginCaptures":{"1":{"name":"storage.type.method.blitzmax"},"2":{"name":"entity.name.function.method.blitzmax"}},"endCaptures":{"1":{"name":"storage.modifier.abstract.blitzmax"},"2":{"name":"storage.type.method.blitzmax"}}},{"include":"#bmax_comment_quote"},{"include":"#bmax_comment_block"},{"include":"#bmax_constants"},{"include":"#bmax_string_quoted"},{"include":"#bmax_attributes"},{"include":"#bmax_pointerops"},{"include":"#bmax_null"},{"include":"#bmax_types"},{"include":"#bmax_typename"},{"include":"#bmax_global_variable"},{"include":"#bmax_constant"},{"include":"#bmax_function"},{"include":"#bmax_type_field"},{"include":"#bmax_constructor"},{"include":"#bmax_preprocessor"}],"beginCaptures":{"1":{"name":"storage.type.class.blitzmax"},"2":{"name":"entity.name.type.blitzmax"},"3":{"name":"storage.modifier.extends.blitzmax"},"4":{"name":"entity.other.inherited-class.blitzmax"},"5":{"name":"storage.modifier.class.blitzmax"}},"endCaptures":{"1":{"name":"storage.type.class.blitzmax"}}},{"name":"keyword.control.if.blitzmax","match":"(?i)\\b((end\\s?|else\\s?)?(if)|else|then)\\b"},{"include":"#bmax_control_keywords"},{"name":"meta.control.while.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(while)\\b","end":"(?i)(?:(?:^|;)\\s*)(end\\s?while|wend)\\b","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.while.blitzmax"}},"endCaptures":{"1":{"name":"keyword.control.while.end.blitzmax"}}},{"name":"meta.control.for.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(for)\\b","end":"(?i)(?:(?:^|;)\\s*)(next)\\b","patterns":[{"name":"keyword.control.for.eachin.blitzmax","match":"(?i)\\beachin\\b"},{"name":"keyword.control.for.to.blitzmax","match":"(?i)\\bto\\b"},{"name":"keyword.control.for.until.blitzmax","match":"(?i)\\buntil\\b"},{"name":"keyword.control.for.step.blitzmax","match":"(?i)\\bstep\\b"},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.for.blitzmax"}},"endCaptures":{"1":{"name":"keyword.control.for.end.blitzmax"}}},{"name":"meta.control.repeat.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(repeat)\\b","end":"(?i)(?:(?:^|;)\\s*)(until|forever)\\b","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.repeat.blitzmax"}},"endCaptures":{"1":{"name":"keyword.control.repeat.end.blitzmax"}}},{"name":"meta.control.select.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(select)\\b","end":"(?i)(?:(?:^|;)\\s*)(end\\s?select)\\b","patterns":[{"name":"meta.control.select.case.blitzmax","match":"(?i)(?:(?:^|;)\\s*)(case)\\b","captures":{"1":{"name":"keyword.control.select.case.blitzmax"}}},{"name":"meta.control.select.default.blitzmax","match":"(?i)(?:(?:^|;)\\s*)(default)\\b","captures":{"1":{"name":"keyword.control.select.default.blitzmax"}}},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.select.blitzmax"}},"endCaptures":{"1":{"name":"keyword.control.select.end.blitzmax"}}},{"name":"keyword.operator.blitzmax","match":"(?i)\\b(mod|shr|shl|sar|and|or|not)\\b"},{"name":"keyword.operator.blitzmax","match":":?[\\^+\\-=\u0026|\u003e\u003c]"},{"name":"keyword.other.scope.blitzmax","match":"(?i)\\b(private|public)\\b"},{"name":"keyword.other.strictness.blitzmax","match":"(?i)\\b(strict|superstrict)\\b"},{"include":"#bmax_null"},{"include":"#bmax_types"},{"include":"#bmax_constants"},{"include":"#bmax_string_quoted"},{"name":"variable.language.self.blitzmax","match":"(?i)\\b(self)\\b"},{"name":"variable.language.super.blitzmax","match":"(?i)\\b(super)\\b"},{"include":"#bmax_constructor"},{"include":"#bmax_array"},{"include":"#bmax_typename"}],"repository":{"bmax_array":{"name":"meta.array.blitzmax","begin":"(\\[)","end":"(\\])","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.array.blitzmax"}},"endCaptures":{"1":{"name":"keyword.operator.array.blitzmax"}}},"bmax_attributes":{"name":"meta.attributes.blitzmax","begin":"(\\{)","end":"(\\})","patterns":[{"name":"meta.attribute.blitzmax","begin":"\\b([a-zA-Z_]\\w*)\\s*(=)\\s*","end":"(?=\\s|\\}|[a-zA-Z_])","patterns":[{"include":"#bmax_string_quoted"},{"include":"#bmax_numbers"}],"beginCaptures":{"1":{"name":"entity.other.attribute-name.blitzmax"}}},{"name":"meta.attribute.blitzmax","match":"\\b([a-zA-Z_]\\w*)(?:\\s*((?!=)|(?=\\})))","captures":{"1":{"name":"entity.other.attribute-name.blitzmax"}}}],"beginCaptures":{"1":{"name":"storage.modifier.attributes.braces.blitzmax"}},"endCaptures":{"1":{"name":"storage.modifier.attributes.braces.blitzmax"}}},"bmax_boolean":{"name":"constant.language.boolean.blitzmax","match":"(?i)\\b(true|false)\\b"},"bmax_comment_block":{"name":"comment.block.rem.blitzmax","begin":"(?i)(?\u003c=\\s|^|;)(?\u003c!end|end\\s)rem\\b","end":"(?i)(?\u003c=\\s|^|;)end\\s?rem\\b","patterns":[{"include":"#bmax_url_content"}]},"bmax_comment_quote":{"name":"comment.line.apostrophe.blitzmax","begin":"'","end":"$","patterns":[{"include":"#bmax_url_content"}]},"bmax_constant":{"name":"meta.constant.blitzmax","match":"(?i)\\b(const)\\b","captures":{"1":{"name":"keyword.other.constant.blitzmax"}}},"bmax_constants":{"patterns":[{"include":"#bmax_pi"},{"include":"#bmax_boolean"},{"include":"#bmax_numbers"}]},"bmax_constructor":{"name":"meta.call.constructor.blitzmax","match":"(?i)\\b(new)\\s+([a-zA-Z_]\\w*)\\b","captures":{"1":{"name":"keyword.other.new.blitzmax"},"2":{"name":"storage.type.class.blitzmax"}}},"bmax_control_keywords":{"name":"keyword.control.blitzmax","match":"(?i)\\b(throw|return|exit|continue)\\b"},"bmax_function":{"name":"meta.function.blitzmax","begin":"(?i)(?:(?:^|;)\\s*)(function)\\s+([a-zA-Z_]\\w*)\\b","end":"(?i)\\b(end\\s?function)\\b","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.function.blitzmax"},"2":{"name":"entity.name.function.blitzmax"}},"endCaptures":{"1":{"name":"storage.type.function.blitzmax"}}},"bmax_global_variable":{"name":"meta.variable.blitzmax","match":"(?i)\\b(global)\\b","captures":{"1":{"name":"storage.modifier.global.blitzmax"}}},"bmax_local_variable":{"name":"meta.variable.blitzmax","match":"(?i)\\b(local)\\b","captures":{"1":{"name":"keyword.other.variable.local.blitzmax"}}},"bmax_null":{"name":"constant.language.null.blitzmax","match":"(?i)\\bnull\\b"},"bmax_numbers":{"patterns":[{"name":"constant.numeric.integer.hexadecimal.blitzmax","match":"(\\$[0-9a-fA-F]{1,16})"},{"name":"constant.numeric.integer.binary.blitzmax","match":"(\\%[01]{1,128})"},{"name":"constant.numeric.float.blitzmax","match":"(?x) (?\u003c! % | \\$ ) (\n\t\t\t\t\t\t\t\\b ([0-9]+ \\. [0-9]+) |\n\t\t\t\t\t\t\t(\\. [0-9]+)\n\t\t\t\t\t\t)"},{"name":"constant.numeric.integer.blitzmax","match":"(?x)\\b(([0-9]+))"}]},"bmax_pi":{"name":"constant.language.blitzmax","match":"(?i)\\bpi\\b"},"bmax_pointerops":{"name":"meta.pointerops.blitzmax","match":"(?i)\\b(?:(ptr|var)|(varptr))\\b","captures":{"1":{"name":"storage.modifier.blitzmax"},"2":{"name":"keyword.operator.blitzmax"}}},"bmax_preprocessor":{"name":"keyword.control.preprocessor.blitzmax","match":"(?i)^\\s*\\?(not\\s+)?\\w*"},"bmax_string_content":{"patterns":[{"name":"constant.character.escape.blitzmax","match":"\\~[^\"]"},{"include":"#bmax_url_content"}]},"bmax_string_quoted":{"name":"string.quoted.double.blitzmax","begin":"\"","end":"\"","patterns":[{"include":"#bmax_string_content"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.blitzmax"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blitzmax"}}},"bmax_type_field":{"name":"meta.variable.field.blitzmax","match":"(?i)\\b(field)\\b","captures":{"1":{"name":"keyword.other.variable.field.blitzmax"}}},"bmax_typename":{"name":"meta.typename.blitzmax","match":"(?xi)(?: \\: \\s* ([a-zA-Z_]\\w*) | ([!#%]|@{1,2}|\\$[zw]?) )","captures":{"1":{"name":"storage.type.blitzmax"},"2":{"name":"storage.type.blitzmax"}}},"bmax_types":{"name":"storage.type.blitzmax","match":"(?i)\\b(object|string|byte|short|int|long|float|double)\\b"},"bmax_url_content":{"name":"meta.url.blitzmax","match":"[a-zA-Z_]\\w*://[^ \"'()\\[\\]]*(?=$|\\b)"}}}