grammars/source.4dm.json in github-linguist-7.11.1 vs grammars/source.4dm.json in github-linguist-7.12.0

- old
+ new

@@ -1,1156 +2 @@ -{ - "name": "4D", - "scopeName": "source.4dm", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#for_loop" - }, - { - "include": "#keywords" - }, - { - "include": "#parameters" - }, - { - "include": "#affectation_variable" - }, - { - "include": "#long_int_variable" - }, - { - "include": "#real_variable" - }, - { - "include": "#text_variable" - }, - { - "include": "#boolean_variable" - }, - { - "include": "#picture_variable" - }, - { - "include": "#pointer_variable" - }, - { - "include": "#object_variable" - }, - { - "include": "#variant_variable" - }, - { - "include": "#collection_variable" - }, - { - "include": "#strings" - }, - { - "include": "#interprocess_variable" - }, - { - "include": "#local_variables" - }, - { - "include": "#operators" - }, - { - "include": "#boolean_values" - }, - { - "include": "#constant_4d" - }, - { - "include": "#this-function" - }, - { - "include": "#numbers" - }, - { - "include": "#block" - }, - { - "include": "#table_reference" - }, - { - "include": "#function-call-innards" - }, - { - "name": "punctuation.terminator.statement.4d", - "match": "\\n" - }, - { - "include": "#param_separator" - }, - { - "name": "meta.bracket.square.access.4d", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])", - "end": "\\]", - "patterns": [ - { - "include": "#function-call-innards" - } - ], - "beginCaptures": { - "1": { - "name": "variable.object.4d" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.4d" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.4d" - } - } - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "name": "entity.name.class.4d", - "match": "^\\n*[\\t ]*(?i)(Class constructor)" - }, - { - "name": "variable.language.function.4d", - "match": "^\\n*[\\t ]*(?i)(Function)(\\s[a-z_0-9]+[a-z_0-9 ]*)" - }, - { - "name": "entity.name.class.4d", - "match": "^\\n*[\\t ]*(?i)(Class extends)(\\s[a-z_0-9]+[a-z_0-9 ]*)" - }, - { - "name": "variable.language.super.4d", - "match": "^\\n*[\\t ]*(?i)(Super(\\:C1705)?)" - } - ], - "repository": { - "affectation_variable": { - "name": "meta.block.affectation.4d", - "begin": "^((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)(:=)", - "end": "(\\n)", - "patterns": [ - { - "include": "#this-function" - }, - { - "include": "#function-call-innards" - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "include": "#local_variables" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "include": "#interprocess_variable" - }, - { - "name": "meta.probably_variable.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - } - ], - "beginCaptures": { - "1": { - "name": "variable.name.4d" - }, - "2": { - "name": "keyword.operator.assignment.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.end.affectaction.4d" - } - } - }, - "block": { - "patterns": [ - { - "name": "meta.block.4d", - "begin": "(?i)\\b(for each)\\b", - "end": "(?i)\\b(end for each)\\b", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.for_each.curly.4d" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.for_each.curly.4d" - } - } - } - ] - }, - "boolean_values": { - "name": "constant.language.4d", - "match": "(?i)(NULL|true(\\:C214)?|false(\\:C215)?)" - }, - "boolean_variable": { - "name": "storage.type.boolean.4d", - "begin": "^\\n*[\\t ]*(?i)(C_BOOLEAN(\\:C305)?)(\\()((?i)[\\$a-z_0-9 ]+)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.boolean.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.boolean.4d" - }, - "2": { - "name": "meta.c_boolean.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.boolean.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "collection_variable": { - "name": "storage.type.collection.4d", - "begin": "^\\n*[\\t ]*(?i)(C_COLLECTION(\\:C1488)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.collection.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.collection.4d" - }, - "2": { - "name": "meta.c_collection.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.collection.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "comments": { - "patterns": [ - { - "name": "comment.line.double-slash.4d", - "begin": "\\s*+(\\/\\/)", - "end": "(?\u003c=\\n)(?\u003c!\\\\\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.4d" - } - } - }, - { - "name": "comment.block.4d", - "match": "^/\\*\\* =(\\s*.*?)\\s*= \\*\\*/$\\n?", - "captures": { - "1": { - "name": "meta.toc-list.banner.block.4d" - } - } - }, - { - "name": "comment.block.4d", - "begin": "/\\*\\*", - "end": "\\*\\*/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.4d" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.4d" - } - } - }, - { - "name": "comment.block.4d", - "begin": "/\\*", - "end": "\\*/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.4d" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.4d" - } - } - }, - { - "name": "comment.line.banner.4d", - "match": "^//=(\\s*.*?)\\s*=\\s*$\\n?", - "captures": { - "1": { - "name": "meta.toc-list.banner.line.4d" - } - } - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "end": "(?!\\G)", - "patterns": [ - { - "name": "comment.line.double-slash.4d", - "begin": "//", - "end": "(?=\\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.4d" - } - } - } - ], - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.4d" - } - } - } - ] - }, - "constant_4d": { - "name": "constant.numeric.4d", - "match": "(?i)([a-z_0-9 ]*)(\\:K[0-9]+)?(\\:[0-9]+)" - }, - "for_loop": { - "name": "meta.block.loop.for.4d", - "begin": "^(?i)(for)\\((\\$[a-z]+);([0-9]+);([0-9]+)\\)", - "end": "(\\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.4d" - }, - "2": { - "name": "variable.name.4d" - }, - "3": { - "name": "constant.range.begin.4d" - }, - "4": { - "name": "constant.range.end.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.end.for.4d" - } - } - }, - "function-call-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!\\s*\\()\n(\n(?:[A-Za-z_ ][A-Za-z0-9_]*+)++(\\:C[0-9]+)? # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+#]+|\\(\\)))\n)\n\\s*(\\()", - "end": "\\)", - "patterns": [ - { - "include": "#this-function" - }, - { - "include": "#function-call-innards" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#parameters" - }, - { - "include": "#local_variables" - }, - { - "include": "#boolean_values" - }, - { - "include": "#constant_4d" - }, - { - "include": "#param_separator" - }, - { - "include": "#operators" - }, - { - "include": "#member_access" - }, - { - "include": "#table_reference" - } - ], - "beginCaptures": { - "1": { - "name": "entity.name.function.4d" - }, - "2": { - "name": "entity.command.number.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "#member_access" - }, - { - "include": "#table_reference" - }, - { - "include": "#this-function" - } - ], - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.4d" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.4d" - } - } - } - ] - }, - "interprocess_variable": { - "name": "variable.interprocess.name.4d", - "match": "\u003c\u003e(?i)[a-z_0-9 ]+" - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.4d", - "match": "^\\n*[\\t ]*(?i)(If|While|Else|End if|For each|End for each|End for|Begin SQL|End SQL|while|End while|Use|End use|Case of|End case|Repeat|Until|For)\\b" - } - ] - }, - "local_variables": { - "name": "variable.local.name.4d", - "match": "\\$[a-zA-Z_0-9 ]*" - }, - "long_int_variable": { - "name": "storage.type.4d", - "begin": "^\\n*[\\t ]*(?i)(C_LONGINT(\\:C283)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.longint.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.longint.4d" - }, - "2": { - "name": "meta.c_longint.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.longint.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "member_access": { - "match": "((?:[a-zA-Z_\\s*]*(\\:C[0-9]+)?|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "name": "variable.other.object.access.4d" - }, - "2": { - "name": "entity.command.number.4d" - }, - "3": { - "name": "punctuation.separator.dot-access.4d" - }, - "4": { - "name": "punctuation.separator.pointer-access.4d" - }, - "5": { - "patterns": [ - { - "include": "#this-function" - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))", - "captures": { - "1": { - "name": "variable.other.object.access.4d" - }, - "2": { - "name": "punctuation.separator.dot-access.4d" - }, - "3": { - "name": "punctuation.separator.pointer-access.4d" - } - } - } - ] - }, - "6": { - "name": "variable.other.member.4d" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.4d", - "begin": "((?:[a-zA-Z_\\s*]*(\\:C[0-9]+)?|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "end": "(\\))", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#parameters" - }, - { - "include": "#local_variables" - }, - { - "include": "#boolean_values" - }, - { - "include": "#constant_4d" - }, - { - "include": "#param_separator" - }, - { - "include": "#function-call-innards" - }, - { - "include": "#table_reference" - }, - { - "include": "#this-function" - } - ], - "beginCaptures": { - "1": { - "name": "variable.other.object.access.4d" - }, - "2": { - "name": "entity.command.number.4d" - }, - "3": { - "name": "punctuation.separator.dot-access.4d" - }, - "4": { - "name": "punctuation.separator.pointer-access.4d" - }, - "5": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "include": "#this-function" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))", - "captures": { - "1": { - "name": "variable.other.object.access.4d" - }, - "2": { - "name": "punctuation.separator.dot-access.4d" - }, - "3": { - "name": "punctuation.separator.pointer-access.4d" - } - } - } - ] - }, - "6": { - "name": "entity.name.function.member.4d" - }, - "7": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.4d" - } - } - }, - "numbers": { - "begin": "(?\u003c!\\w)(?=\\d|\\.\\d)", - "end": "(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "patterns": [ - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.4d" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.4d" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.4d" - }, - "2": { - "name": "constant.numeric.hexadecimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "4": { - "name": "constant.numeric.hexadecimal.4d" - }, - "5": { - "name": "constant.numeric.hexadecimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.4d" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.4d" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "captures": { - "10": { - "name": "keyword.operator.minus.exponent.decimal.4d" - }, - "11": { - "name": "constant.numeric.exponent.decimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.4d" - }, - "2": { - "name": "constant.numeric.decimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "4": { - "name": "constant.numeric.decimal.point.4d" - }, - "5": { - "name": "constant.numeric.decimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "8": { - "name": "keyword.other.unit.exponent.decimal.4d" - }, - "9": { - "name": "keyword.operator.plus.exponent.decimal.4d" - } - } - }, - { - "match": "(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.binary.4d" - }, - "2": { - "name": "constant.numeric.binary.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.4d" - } - } - }, - { - "match": "(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.octal.4d" - }, - "2": { - "name": "constant.numeric.octal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.4d" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.4d" - }, - "2": { - "name": "constant.numeric.hexadecimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "5": { - "name": "keyword.other.unit.exponent.hexadecimal.4d" - }, - "6": { - "name": "keyword.operator.plus.exponent.hexadecimal.4d" - }, - "7": { - "name": "keyword.operator.minus.exponent.hexadecimal.4d" - }, - "8": { - "name": "constant.numeric.exponent.hexadecimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.4d" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.4d" - }, - "5": { - "name": "keyword.other.unit.exponent.decimal.4d" - }, - "6": { - "name": "keyword.operator.plus.exponent.decimal.4d" - }, - "7": { - "name": "keyword.operator.minus.exponent.decimal.4d" - }, - "8": { - "name": "constant.numeric.exponent.decimal.4d", - "patterns": [ - { - "name": "punctuation.separator.constant.numeric.4d", - "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.4d" - } - } - } - ] - }, - "object_variable": { - "name": "storage.type.object.4d", - "begin": "^\\n*[\\t ]*(?i)(C_OBJECT(\\:C1216)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.object.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.object.4d" - }, - "2": { - "name": "meta.c_object.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.object.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "operators": { - "patterns": [ - { - "name": "keyword.operator.assignment.4d", - "match": ":=" - }, - { - "name": "keyword.operator.comparison.4d", - "match": "#|\u003c=|\u003e=|\u003c|\u003e|=" - }, - { - "name": "keyword.operator.4d", - "match": "%|\\*|/|-|\\+" - } - ] - }, - "param_separator": { - "name": "punctuation.separator.delimiter.4d", - "match": ";" - }, - "parameters": { - "name": "variable.parameter.4d", - "match": "\\$[0-9]" - }, - "picture_variable": { - "name": "storage.type.picture.4d", - "begin": "^\\n*[\\t ]*(?i)(C_PICTURE(\\:C286)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.picture.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.picture.4d" - }, - "2": { - "name": "meta.c_picture.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.picture.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "pointer_variable": { - "name": "storage.type.pointer.4d", - "begin": "^\\n*[\\t ]*(?i)(C_POINTER(\\:C301)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.pointer.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.pointer.4d" - }, - "2": { - "name": "meta.c_pointer.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.pointer.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "real_variable": { - "name": "storage.type.real.4d", - "begin": "^\\n*[\\t ]*(?i)(C_REAL(\\:C285)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.real.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.real.4d" - }, - "2": { - "name": "meta.c_real.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.real.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "strings": { - "name": "string.quoted.double.4d", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.4d", - "match": "\\\\." - } - ] - }, - "table_reference": { - "begin": "(?i)\\[((?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)(\\:[0-9]+)?", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "support.table.name.4d" - }, - "2": { - "name": "support.table.index.4d" - } - } - }, - "text_variable": { - "name": "storage.type.text.4d", - "begin": "^\\n*[\\t ]*(?i)(C_TEXT(\\:C284)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.text.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.text.4d" - }, - "2": { - "name": "meta.c_text.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.text.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - }, - "this-function": { - "name": "variable.language.this.4d", - "match": "(^\\n*[\\t ]*(?i)(This(\\:C1470)?))|((?i)(This(\\:C1470)?))" - }, - "variant_variable": { - "name": "storage.type.variant.4d", - "begin": "^\\n*[\\t ]*(?i)(C_VARIANT(\\:C1683)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)", - "end": "(\\))", - "patterns": [ - { - "name": "variable.name.variant.4d", - "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*" - }, - { - "include": "#param_separator" - } - ], - "beginCaptures": { - "1": { - "name": "storage.type.variant.4d" - }, - "2": { - "name": "meta.c_variant.code.4d" - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.4d" - }, - "4": { - "name": "variable.name.variant.4d" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.4d" - } - } - } - } -} +{"name":"4D","scopeName":"source.4dm","patterns":[{"include":"#comments"},{"include":"#for_loop"},{"include":"#keywords"},{"include":"#parameters"},{"include":"#affectation_variable"},{"include":"#long_int_variable"},{"include":"#real_variable"},{"include":"#text_variable"},{"include":"#boolean_variable"},{"include":"#picture_variable"},{"include":"#pointer_variable"},{"include":"#object_variable"},{"include":"#variant_variable"},{"include":"#collection_variable"},{"include":"#strings"},{"include":"#interprocess_variable"},{"include":"#local_variables"},{"include":"#operators"},{"include":"#boolean_values"},{"include":"#constant_4d"},{"include":"#this-function"},{"include":"#numbers"},{"include":"#block"},{"include":"#table_reference"},{"include":"#function-call-innards"},{"name":"punctuation.terminator.statement.4d","match":"\\n"},{"include":"#param_separator"},{"name":"meta.bracket.square.access.4d","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])","end":"\\]","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.4d"},"2":{"name":"punctuation.definition.begin.bracket.square.4d"}},"endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.4d"}}},{"include":"#member_access"},{"include":"#method_access"},{"name":"entity.name.class.4d","match":"^\\n*[\\t ]*(?i)(Class constructor)"},{"name":"variable.language.function.4d","match":"^\\n*[\\t ]*(?i)(Function)(\\s[a-z_0-9]+[a-z_0-9 ]*)"},{"name":"entity.name.class.4d","match":"^\\n*[\\t ]*(?i)(Class extends)(\\s[a-z_0-9]+[a-z_0-9 ]*)"},{"name":"variable.language.super.4d","match":"^\\n*[\\t ]*(?i)(Super(\\:C1705)?)"}],"repository":{"affectation_variable":{"name":"meta.block.affectation.4d","begin":"^((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)(:=)","end":"(\\n)","patterns":[{"include":"#this-function"},{"include":"#function-call-innards"},{"include":"#member_access"},{"include":"#method_access"},{"include":"#local_variables"},{"include":"#numbers"},{"include":"#strings"},{"include":"#interprocess_variable"},{"name":"meta.probably_variable.4d","match":"(?i)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"}],"beginCaptures":{"1":{"name":"variable.name.4d"},"2":{"name":"keyword.operator.assignment.4d"}},"endCaptures":{"1":{"name":"punctuation.section.end.affectaction.4d"}}},"block":{"patterns":[{"name":"meta.block.4d","begin":"(?i)\\b(for each)\\b","end":"(?i)\\b(end for each)\\b","beginCaptures":{"0":{"name":"punctuation.section.block.begin.for_each.curly.4d"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.for_each.curly.4d"}}}]},"boolean_values":{"name":"constant.language.4d","match":"(?i)(NULL|true(\\:C214)?|false(\\:C215)?)"},"boolean_variable":{"name":"storage.type.boolean.4d","begin":"^\\n*[\\t ]*(?i)(C_BOOLEAN(\\:C305)?)(\\()((?i)[\\$a-z_0-9 ]+)","end":"(\\))","patterns":[{"name":"variable.name.boolean.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.boolean.4d"},"2":{"name":"meta.c_boolean.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.boolean.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"collection_variable":{"name":"storage.type.collection.4d","begin":"^\\n*[\\t ]*(?i)(C_COLLECTION(\\:C1488)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.collection.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.collection.4d"},"2":{"name":"meta.c_collection.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.collection.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"comments":{"patterns":[{"name":"comment.line.double-slash.4d","begin":"\\s*+(\\/\\/)","end":"(?\u003c=\\n)(?\u003c!\\\\\\n)","beginCaptures":{"1":{"name":"punctuation.definition.comment.4d"}}},{"name":"comment.block.4d","match":"^/\\*\\* =(\\s*.*?)\\s*= \\*\\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.4d"}}},{"name":"comment.block.4d","begin":"/\\*\\*","end":"\\*\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.4d"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.4d"}}},{"name":"comment.block.4d","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.4d"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.4d"}}},{"name":"comment.line.banner.4d","match":"^//=(\\s*.*?)\\s*=\\s*$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.4d"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.4d","begin":"//","end":"(?=\\n)","beginCaptures":{"0":{"name":"punctuation.definition.comment.4d"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.4d"}}}]},"constant_4d":{"name":"constant.numeric.4d","match":"(?i)([a-z_0-9 ]*)(\\:K[0-9]+)?(\\:[0-9]+)"},"for_loop":{"name":"meta.block.loop.for.4d","begin":"^(?i)(for)\\((\\$[a-z]+);([0-9]+);([0-9]+)\\)","end":"(\\n)","beginCaptures":{"1":{"name":"keyword.control.4d"},"2":{"name":"variable.name.4d"},"3":{"name":"constant.range.begin.4d"},"4":{"name":"constant.range.end.4d"}},"endCaptures":{"1":{"name":"punctuation.section.end.for.4d"}}},"function-call-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#operators"},{"begin":"(?x)\n(?!\\s*\\()\n(\n(?:[A-Za-z_ ][A-Za-z0-9_]*+)++(\\:C[0-9]+)? # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+#]+|\\(\\)))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#this-function"},{"include":"#function-call-innards"},{"include":"#strings"},{"include":"#numbers"},{"include":"#parameters"},{"include":"#local_variables"},{"include":"#boolean_values"},{"include":"#constant_4d"},{"include":"#param_separator"},{"include":"#operators"},{"include":"#member_access"},{"include":"#table_reference"}],"beginCaptures":{"1":{"name":"entity.name.function.4d"},"2":{"name":"entity.command.number.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-call-innards"},{"include":"#member_access"},{"include":"#table_reference"},{"include":"#this-function"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.4d"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.4d"}}}]},"interprocess_variable":{"name":"variable.interprocess.name.4d","match":"\u003c\u003e(?i)[a-z_0-9 ]+"},"keywords":{"patterns":[{"name":"keyword.control.4d","match":"^\\n*[\\t ]*(?i)(If|While|Else|End if|For each|End for each|End for|Begin SQL|End SQL|while|End while|Use|End use|Case of|End case|Repeat|Until|For)\\b"}]},"local_variables":{"name":"variable.local.name.4d","match":"\\$[a-zA-Z_0-9 ]*"},"long_int_variable":{"name":"storage.type.4d","begin":"^\\n*[\\t ]*(?i)(C_LONGINT(\\:C283)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.longint.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.longint.4d"},"2":{"name":"meta.c_longint.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.longint.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"member_access":{"match":"((?:[a-zA-Z_\\s*]*(\\:C[0-9]+)?|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b[a-zA-Z_]\\w*\\b(?!\\())","captures":{"1":{"name":"variable.other.object.access.4d"},"2":{"name":"entity.command.number.4d"},"3":{"name":"punctuation.separator.dot-access.4d"},"4":{"name":"punctuation.separator.pointer-access.4d"},"5":{"patterns":[{"include":"#this-function"},{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.4d"},"2":{"name":"punctuation.separator.dot-access.4d"},"3":{"name":"punctuation.separator.pointer-access.4d"}}}]},"6":{"name":"variable.other.member.4d"}}},"method_access":{"contentName":"meta.function-call.member.4d","begin":"((?:[a-zA-Z_\\s*]*(\\:C[0-9]+)?|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()","end":"(\\))","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#parameters"},{"include":"#local_variables"},{"include":"#boolean_values"},{"include":"#constant_4d"},{"include":"#param_separator"},{"include":"#function-call-innards"},{"include":"#table_reference"},{"include":"#this-function"}],"beginCaptures":{"1":{"name":"variable.other.object.access.4d"},"2":{"name":"entity.command.number.4d"},"3":{"name":"punctuation.separator.dot-access.4d"},"4":{"name":"punctuation.separator.pointer-access.4d"},"5":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"include":"#this-function"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.4d"},"2":{"name":"punctuation.separator.dot-access.4d"},"3":{"name":"punctuation.separator.pointer-access.4d"}}}]},"6":{"name":"entity.name.function.member.4d"},"7":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.4d"}}},"numbers":{"begin":"(?\u003c!\\w)(?=\\d|\\.\\d)","end":"(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","patterns":[{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","captures":{"1":{"name":"keyword.other.unit.hexadecimal.4d"},"10":{"name":"keyword.operator.minus.exponent.hexadecimal.4d"},"11":{"name":"constant.numeric.exponent.hexadecimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.4d"},"2":{"name":"constant.numeric.hexadecimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric.4d"},"4":{"name":"constant.numeric.hexadecimal.4d"},"5":{"name":"constant.numeric.hexadecimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric.4d"},"8":{"name":"keyword.other.unit.exponent.hexadecimal.4d"},"9":{"name":"keyword.operator.plus.exponent.hexadecimal.4d"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","captures":{"10":{"name":"keyword.operator.minus.exponent.decimal.4d"},"11":{"name":"constant.numeric.exponent.decimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.4d"},"2":{"name":"constant.numeric.decimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric.4d"},"4":{"name":"constant.numeric.decimal.point.4d"},"5":{"name":"constant.numeric.decimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric.4d"},"8":{"name":"keyword.other.unit.exponent.decimal.4d"},"9":{"name":"keyword.operator.plus.exponent.decimal.4d"}}},{"match":"(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","captures":{"1":{"name":"keyword.other.unit.binary.4d"},"2":{"name":"constant.numeric.binary.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric.4d"},"4":{"name":"keyword.other.unit.suffix.integer.4d"}}},{"match":"(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","captures":{"1":{"name":"keyword.other.unit.octal.4d"},"2":{"name":"constant.numeric.octal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric.4d"},"4":{"name":"keyword.other.unit.suffix.integer.4d"}}},{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","captures":{"1":{"name":"keyword.other.unit.hexadecimal.4d"},"2":{"name":"constant.numeric.hexadecimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric.4d"},"5":{"name":"keyword.other.unit.exponent.hexadecimal.4d"},"6":{"name":"keyword.operator.plus.exponent.hexadecimal.4d"},"7":{"name":"keyword.operator.minus.exponent.hexadecimal.4d"},"8":{"name":"constant.numeric.exponent.hexadecimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.4d"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))","captures":{"2":{"name":"constant.numeric.decimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric.4d"},"5":{"name":"keyword.other.unit.exponent.decimal.4d"},"6":{"name":"keyword.operator.plus.exponent.decimal.4d"},"7":{"name":"keyword.operator.minus.exponent.decimal.4d"},"8":{"name":"constant.numeric.exponent.decimal.4d","patterns":[{"name":"punctuation.separator.constant.numeric.4d","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.4d"}}}]},"object_variable":{"name":"storage.type.object.4d","begin":"^\\n*[\\t ]*(?i)(C_OBJECT(\\:C1216)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.object.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.object.4d"},"2":{"name":"meta.c_object.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.object.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"operators":{"patterns":[{"name":"keyword.operator.assignment.4d","match":":="},{"name":"keyword.operator.comparison.4d","match":"#|\u003c=|\u003e=|\u003c|\u003e|="},{"name":"keyword.operator.4d","match":"%|\\*|/|-|\\+"}]},"param_separator":{"name":"punctuation.separator.delimiter.4d","match":";"},"parameters":{"name":"variable.parameter.4d","match":"\\$[0-9]"},"picture_variable":{"name":"storage.type.picture.4d","begin":"^\\n*[\\t ]*(?i)(C_PICTURE(\\:C286)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.picture.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.picture.4d"},"2":{"name":"meta.c_picture.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.picture.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"pointer_variable":{"name":"storage.type.pointer.4d","begin":"^\\n*[\\t ]*(?i)(C_POINTER(\\:C301)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.pointer.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.pointer.4d"},"2":{"name":"meta.c_pointer.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.pointer.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"real_variable":{"name":"storage.type.real.4d","begin":"^\\n*[\\t ]*(?i)(C_REAL(\\:C285)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.real.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.real.4d"},"2":{"name":"meta.c_real.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.real.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"strings":{"name":"string.quoted.double.4d","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.4d","match":"\\\\."}]},"table_reference":{"begin":"(?i)\\[((?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)(\\:[0-9]+)?","end":"\\]","beginCaptures":{"1":{"name":"support.table.name.4d"},"2":{"name":"support.table.index.4d"}}},"text_variable":{"name":"storage.type.text.4d","begin":"^\\n*[\\t ]*(?i)(C_TEXT(\\:C284)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.text.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.text.4d"},"2":{"name":"meta.c_text.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.text.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}},"this-function":{"name":"variable.language.this.4d","match":"(^\\n*[\\t ]*(?i)(This(\\:C1470)?))|((?i)(This(\\:C1470)?))"},"variant_variable":{"name":"storage.type.variant.4d","begin":"^\\n*[\\t ]*(?i)(C_VARIANT(\\:C1683)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)","end":"(\\))","patterns":[{"name":"variable.name.variant.4d","match":"(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"},{"include":"#param_separator"}],"beginCaptures":{"1":{"name":"storage.type.variant.4d"},"2":{"name":"meta.c_variant.code.4d"},"3":{"name":"punctuation.section.arguments.begin.bracket.round.4d"},"4":{"name":"variable.name.variant.4d"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.4d"}}}}}