github-linguist 7.28.0 → 7.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/etc.json +1 -1
  3. data/grammars/inline.edgeql.json +1 -1
  4. data/grammars/inline.graphql.json +1 -1
  5. data/grammars/inline.graphql.markdown.codeblock.json +1 -0
  6. data/grammars/inline.graphql.rb.json +1 -0
  7. data/grammars/inline.hbs.json +1 -1
  8. data/grammars/markdown.commonlisp.codeblock.json +1 -0
  9. data/grammars/markdown.glimmer.codeblock.json +1 -0
  10. data/grammars/markdown.move.codeblock.json +1 -1
  11. data/grammars/source.8xp.json +1 -0
  12. data/grammars/source.abl.json +1 -1
  13. data/grammars/source.amxxpawn.json +1 -0
  14. data/grammars/source.astro.json +1 -1
  15. data/grammars/source.bb.json +1 -0
  16. data/grammars/source.bh.json +1 -0
  17. data/grammars/source.brs.json +1 -1
  18. data/grammars/source.cobol.json +1 -1
  19. data/grammars/source.commonlisp.json +1 -0
  20. data/grammars/source.cs.json +1 -1
  21. data/grammars/source.csound.json +1 -1
  22. data/grammars/source.dart.json +1 -1
  23. data/grammars/source.did.json +1 -1
  24. data/grammars/source.elvish-transcript.json +1 -1
  25. data/grammars/source.fsharp.json +1 -1
  26. data/grammars/source.gdscript.json +1 -1
  27. data/grammars/source.gjs.json +1 -1
  28. data/grammars/source.gts.json +1 -1
  29. data/grammars/source.hcl.json +1 -1
  30. data/grammars/source.hcl.terraform.json +1 -1
  31. data/grammars/source.ice.json +1 -1
  32. data/grammars/source.julia.json +1 -1
  33. data/grammars/source.lean4.json +1 -1
  34. data/grammars/source.lua.json +1 -1
  35. data/grammars/source.matlab.json +1 -1
  36. data/grammars/source.mdx.json +1 -1
  37. data/grammars/source.mojo.json +1 -0
  38. data/grammars/source.nasal.json +1 -1
  39. data/grammars/source.nushell.json +1 -1
  40. data/grammars/source.p4.json +1 -1
  41. data/grammars/source.pip-requirements.json +1 -0
  42. data/grammars/source.praat.json +1 -1
  43. data/grammars/source.rascal.json +1 -1
  44. data/grammars/source.rescript.json +1 -1
  45. data/grammars/source.roc.json +1 -0
  46. data/grammars/source.rust.json +1 -1
  47. data/grammars/source.scala.json +1 -1
  48. data/grammars/source.slice.json +1 -1
  49. data/grammars/source.slint.json +1 -0
  50. data/grammars/source.sourcepawn.json +1 -1
  51. data/grammars/source.swift.json +1 -1
  52. data/grammars/source.toit.json +1 -1
  53. data/grammars/source.ts.json +1 -1
  54. data/grammars/source.tsx.json +1 -1
  55. data/grammars/source.vba.json +1 -1
  56. data/grammars/sp-jsdoc.injection.json +1 -0
  57. data/grammars/text.html.edge.json +1 -0
  58. data/grammars/text.html.ember-handlebars.json +1 -1
  59. data/grammars/text.md.json +1 -1
  60. data/grammars/text.srt.json +1 -1
  61. data/grammars/text.valve-cfg.json +1 -0
  62. data/grammars/text.valve-kv.json +1 -0
  63. data/grammars/version +1 -1
  64. data/lib/linguist/VERSION +1 -1
  65. data/lib/linguist/generated.rb +23 -1
  66. data/lib/linguist/heuristics.yml +17 -2
  67. data/lib/linguist/languages.json +1 -1
  68. data/lib/linguist/languages.yml +90 -8
  69. data/lib/linguist/samples.json +1 -1
  70. metadata +20 -4
  71. data/grammars/markdown.graphql.codeblock.json +0 -1
@@ -0,0 +1 @@
1
+ {"name":"bh","scopeName":"source.bh","patterns":[{"include":"#comment_like"},{"include":"#numeric_literals"},{"include":"#string_literal"},{"include":"#char_literal"},{"name":"invalid","match":"(?\u003c!@|#)-\\}"},{"name":"constant.language.unit.bh","match":"(\\()\\s*(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"punctuation.paren.bh"}}},{"name":"constant.language.unit.unboxed.bh","match":"(\\()(#)\\s*(#)(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"keyword.operator.hash.bh"},"3":{"name":"keyword.operator.hash.bh"},"4":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.tuple.bh","match":"(\\()\\s*,[\\s,]*(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.tuple.unboxed.bh","match":"(\\()(#)\\s*,[\\s,]*(#)(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"keyword.operator.hash.bh"},"3":{"name":"keyword.operator.hash.bh"},"4":{"name":"punctuation.paren.bh"}}},{"name":"constant.language.empty-list.bh","match":"(\\[)\\s*(\\])","captures":{"1":{"name":"punctuation.bracket.bh"},"2":{"name":"punctuation.bracket.bh"}}},{"name":"meta.declaration.package.bh","begin":"(\\b(?\u003c!')(package)|^(signature))(\\b(?!'))","end":"(?=\\b(?\u003c!')where\\b(?!'))","patterns":[{"include":"#comment_like"},{"include":"#package_name"},{"include":"#package_exports"},{"name":"invalid","match":"[a-z]+"}],"beginCaptures":{"2":{"name":"keyword.other.package.bh"},"3":{"name":"keyword.other.signature.bh"}}},{"include":"#ffi"},{"name":"meta.declaration.class.bh","begin":"^(\\s*)(class)(\\s+(:?in?)coherent)?(\\b(?!'))","end":"(?x) # Detect end of class declaration:\n # 'where' keyword\n (?=(?\u003c!')\\bwhere\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"include":"#where"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.class.bh"},"3":{"name":"keyword.other.coherent.bh"}}},{"include":"#role_annotation"},{"name":"meta.declaration.pattern.type.bh","begin":"^(\\s*)(pattern)\\s+(.*?)\\s+(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])","end":"(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.pattern.bh"},"3":{"patterns":[{"include":"#comma"},{"include":"#data_constructor"}]},"4":{"name":"keyword.operator.double-colon.bh"}}},{"name":"meta.declaration.pattern.bh","begin":"^\\s*(pattern)\\b(?!')","end":"(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"$self"}],"captures":{"1":{"name":"keyword.other.pattern.bh"}}},{"name":"meta.declaration.$2.algebraic.bh","begin":"(?x)\n # Data declaration\n ^(\\s*)(data|newtype|interface|struct)\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?\u003c!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)","end":"(?x) # Detect end of data declaration: \n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#forall"},{"include":"#adt_constructor"},{"include":"#data_context"},{"include":"#record_decl"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.$2.bh"},"3":{"name":"keyword.other.$3.bh"},"4":{"patterns":[{"include":"#type_signature"}]}}},{"name":"meta.declaration.type.bh","begin":"(?x)\n # Type declaration\n ^(\\s*)(type)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol, the start of a single-line comment, or a type signature\n (?: \n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+|::|∷)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the start of a block comment.\n | {-\n #\n ).)*)","end":"(?x) # Detect end of type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.type.bh"},"3":{"name":"keyword.other.instance.bh"},"4":{"patterns":[{"include":"#type_signature"}]}}},{"name":"meta.declaration.instance.bh","begin":"^(\\s*)(instance)(\\b(?!'))","end":"(?x) # Detect end of instance declaration:\n # 'where' keyword\n (?=\\b(?\u003c!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"include":"#where"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.instance.bh"}}},{"name":"meta.import.bh","begin":"^(\\s*)(import)(\\b(?!'))","end":"(?x) # Detect end of import\n # 'where' keyword\n (?=\\b(?\u003c!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"include":"#where"},{"match":"(qualified|as|hiding)","captures":{"1":{"name":"keyword.other.$1.bh"}}},{"include":"#package_name"},{"include":"#package_exports"}],"beginCaptures":{"2":{"name":"keyword.other.import.bh"}}},{"include":"#deriving"},{"include":"#layout_herald"},{"include":"#keyword"},{"name":"meta.fixity-declaration.bh","match":"^\\s*(infix[lr]?)\\s+(.*)","captures":{"1":{"name":"keyword.other.fixity.$1.bh"},"2":{"patterns":[{"include":"#comment_like"},{"include":"#integer_literals"},{"name":"constant.other.operator.infix.bh","match":":[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*"},{"include":"#infix_op"}]}}},{"include":"#start_type_signature"},{"include":"#overloaded_label"},{"include":"#type_application"},{"include":"#reserved_symbol"},{"include":"#fun_decl"},{"include":"#qualifier"},{"name":"constant.other.operator.infix.bh","match":":[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*"},{"include":"#data_constructor"},{"include":"#prefix_op"},{"include":"#infix_op"},{"begin":"(\\()(#)\\s","end":"(#)(\\))","patterns":[{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"keyword.operator.hash.bh"}},"endCaptures":{"1":{"name":"keyword.operator.hash.bh"},"2":{"name":"punctuation.paren.bh"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.paren.bh"}}},{"include":"#quasi_quote"},{"begin":"(\\[)","end":"(\\])","patterns":[{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.bracket.bh"}},"endCaptures":{"1":{"name":"punctuation.bracket.bh"}}},{"include":"#record"}],"repository":{"adt_constructor":{"patterns":[{"include":"#comment_like"},{"begin":"(?x)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:(=)|(\\|))\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol","end":"(?x)\n (?: # Infix data constructor\n # First argument\n (?:\n # Simple type\n (?\u003c!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)\n # Type inside balanced parentheses\n | ('? # Optional promotion tick\n (?\u003cparen\u003e\n \\( # Opening parenthesis\n (?:\n [^\\(\\)]* # Match non-parentheses\n | \\g\u003cparen\u003e # or recurse into further depth\n )*\n \\) # Closing parenthesis\n )\n )\n # Type inside balanced brackets\n | ('? # Optional promotion tick\n (?\u003cbrac\u003e\n \\[ # Opening bracket\n (?:\n [^\\[\\]]* # Match non-brackets\n | \\g\u003cbrac\u003e # or recurse into further depth\n )*\n \\] # Closing bracket\n )\n )\n )\n # Then either\n \\s*\n # - a symbolic infix constructor, or\n (?:(?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\n # - an alphabetic infix constructor\n | (`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`)\n )\n ) # Otherwise, prefix data constructor, either:\n | # - an alphabetic data constructor e.g. \"Cons_123\"\n (?:(?\u003c!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))\n | # - a symbolic (prefix) data constructor\n (\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n | # Otherwise, try to fail early to avoid excessive backtracking (https://github.com/JustusAdam/language-bh/issues/161)\n # Fail when detecting a lowercase identifier and then something not starting with a tick or colon\n (?=\\b(?\u003c!')(?!(?:forall|deriving)\\s)[\\p{Ll}_]\\S+\\s+[^`:])\n # Fail when seeing another equal signs or pipe symbol\n |(?=\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|\\|)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]) # non-symbol\n )","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#record_decl"},{"include":"#forall"},{"include":"#data_context"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.eq.bh"},"2":{"name":"keyword.operator.pipe.bh"}},"endCaptures":{"1":{"patterns":[{"include":"#type_signature"}]},"10":{"name":"constant.other.bh"},"11":{"name":"punctuation.paren.bh"},"12":{"name":"constant.other.operator.prefix.bh"},"13":{"name":"punctuation.paren.bh"},"2":{"patterns":[{"include":"#type_signature"}]},"4":{"patterns":[{"include":"#type_signature"}]},"6":{"name":"constant.other.operator.infix.bh"},"7":{"name":"punctuation.backtick.bh"},"8":{"name":"constant.other.infix.bh"},"9":{"name":"punctuation.backtick.bh"}}}]},"block_comment":{"name":"comment.block.bh","begin":"\\{-","end":"-\\}","patterns":[{"include":"#block_comment"}],"captures":{"0":{"name":"punctuation.definition.comment.bh"}},"applyEndPatternLast":true},"char_literal":{"name":"string.quoted.single.bh","match":"(?x)\n (?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])\n (')\n (?:\n [\\ -\\[\\]-~] # Basic Char\n | (\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE\n |DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS\n |US|SP|DEL|[abfnrtv\\\\\\\"'\\\\\u0026])) # Escapes\n | (\\\\o[0-7]+) # Octal Escapes\n | (\\\\x[0-9A-Fa-f]+) # Hexadecimal Escapes\n | (\\\\\\^[A-Z@\\[\\]\\\\\\^_]) # Control Chars\n )\n (')\n","captures":{"1":{"name":"punctuation.definition.string.begin.bh"},"2":{"name":"constant.character.escape.bh"},"3":{"name":"constant.character.escape.octal.bh"},"4":{"name":"constant.character.escape.hexadecimal.bh"},"5":{"name":"constant.character.escape.control.bh"},"6":{"name":"punctuation.definition.string.end.bh"}}},"comma":{"name":"punctuation.separator.comma.bh","match":","},"comment_like":{"patterns":[{"include":"#cpp"},{"include":"#pragma"},{"include":"#comments"}]},"comments":{"patterns":[{"name":"comment.block.documentation.bh","begin":"^(\\s*)(--\\s[\\|\\$])","end":"(?=^(?!\\1--+(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])))","beginCaptures":{"2":{"name":"punctuation.whitespace.comment.leading.bh"}}},{"name":"comment.line.documentation.bh","begin":"(^[ \\t]+)?(--(@)\\s)","end":"\\n","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.bh"}}},{"name":"comment.block.documentation.bh","begin":"\\{-\\s?[\\|\\$\\*\\^]","end":"-\\}","patterns":[{"include":"#block_comment"}],"captures":{"0":{"name":"punctuation.definition.comment.bh"}},"applyEndPatternLast":true},{"begin":"(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.bh","begin":"--","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.bh"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.bh"}}},{"include":"#block_comment"}]},"cpp":{"name":"meta.preprocessor.c","match":"^(#).*$","captures":{"1":{"name":"punctuation.definition.preprocessor.c"}}},"data_constructor":{"patterns":[{"name":"constant.other.bh","match":"\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?![\\.'\\w])"},{"name":"constant.other.operator.bh","match":"(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))"}]},"data_context":{"match":"(?x)\n (.*)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (=\u003e|⇒)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n","captures":{"1":{"patterns":[{"include":"#comment_like"},{"include":"#forall"},{"begin":"(?='?\\()","end":"(?=\\))","patterns":[{"include":"#type_signature"}]},{"begin":"(?='?\\[)","end":"(?=\\])","patterns":[{"include":"#type_signature"}]},{"match":"(?x)\n (\\S*)\\s*\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (::|∷|=)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])","captures":{"1":{"patterns":[{"include":"#comment_like"},{"include":"#forall"},{"include":"#record_decl_field"}]},"2":{"patterns":[{"include":"#reserved_symbol"}]},"3":{"patterns":[{"include":"#type_signature"}]}}},{"include":"#type_signature"}]},"2":{"name":"keyword.operator.big-arrow.bh"}}},"deriving":{"patterns":[{"name":"meta.deriving.bh","begin":"^(\\s*)(deriving)\\s+(?:(via|stock|newtype|anyclass)\\s+)?","end":"(?x) # Detect end of deriving statement\n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"name":"keyword.other.instance.bh","match":"(?\u003c!')\\b(instance)\\b(?!')"},{"match":"(?\u003c!')\\b(via|stock|newtype|anyclass)\\b(?!')","captures":{"1":{"name":"keyword.other.deriving.strategy.$1.bh"}}},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.deriving.bh"},"3":{"name":"keyword.other.deriving.strategy.$3.bh"}}},{"name":"meta.deriving.bh","begin":"(deriving)(?:\\s+(stock|newtype|anyclass))?\\s*(\\()","end":"(\\))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.deriving.bh"},"2":{"name":"keyword.other.deriving.strategy.$2.bh"},"3":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.paren.bh"}}},{"name":"meta.deriving.bh","match":"(?x)\n (deriving)(?:\\s+(stock|newtype|anyclass))?\\s+\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n (\\s+(via)\\s+(.*)$)?\n","captures":{"1":{"name":"keyword.other.deriving.bh"},"2":{"name":"keyword.other.deriving.strategy.$2.bh"},"3":{"patterns":[{"include":"#type_signature"}]},"5":{"name":"keyword.other.deriving.strategy.via.bh"},"6":{"patterns":[{"include":"#type_signature"}]}}},{"name":"keyword.other.deriving.strategy.via.bh","match":"(?\u003c!')\\b(via)\\b(?!')"}]},"double_colon":{"match":"\\s*(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\\s*","captures":{"1":{"name":"keyword.operator.double-colon.bh"}}},"export_constructs":{"patterns":[{"include":"#comment_like"},{"begin":"\\b(?\u003c!')(pattern)\\b(?!')","end":"(?x)\n # Data constructor\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of symbolic constructor\n | (\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\))","patterns":[{"include":"#comment_like"}],"beginCaptures":{"1":{"name":"keyword.other.pattern.bh"}},"endCaptures":{"1":{"name":"constant.other.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"constant.other.operator.prefix.bh"},"4":{"name":"punctuation.paren.bh"}}},{"begin":"\\b(?\u003c!')(type)\\b(?!')","end":"(?=,|\\))","patterns":[{"include":"#comment_like"},{"include":"#reserved_symbol"},{"include":"#type_constructor"},{"include":"#type_operator"}],"beginCaptures":{"1":{"name":"keyword.other.type.bh"}}},{"include":"#record_wildcard"},{"include":"#reserved_symbol"},{"name":"storage.type.operator.bh","match":"(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))"},{"name":"entity.name.function.bh","match":"(?\u003c!')\\b[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},{"name":"storage.type.bh","match":"(?\u003c!')\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},{"include":"#prefix_op"}]},"ffi":{"name":"meta.$3.foreign.bh","begin":"^(\\s*)(foreign)\\s+(import|export)\\s+","end":"(?x) # Detect end of FFI block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"match":"\\b(?\u003c!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\s+","captures":{"1":{"name":"keyword.other.calling-convention.$1.bh"}}},{"begin":"(?=\")|(?=\\b(?\u003c!')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))","end":"(?=(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]))","patterns":[{"include":"#comment_like"},{"match":"(?x)\n \\b(?\u003c!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*\n (?:\n (?:\\b(?\u003c!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:\\(\\s*(?!--+\\))([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*\\))\n )\n","captures":{"1":{"name":"keyword.other.safety.$1.bh"},"2":{"name":"entity.name.foreign.bh","patterns":[{"include":"#string_literal"}]},"3":{"name":"entity.name.function.bh"},"4":{"name":"entity.name.function.infix.bh"}}},{"match":"(?x)\n \\b(?\u003c!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*$\n","captures":{"1":{"name":"keyword.other.safety.$1.bh"},"2":{"name":"entity.name.foreign.bh","patterns":[{"include":"#string_literal"}]}}},{"match":"(?x)\n \"(?:\\\\\"|[^\"])*\"","captures":{"0":{"name":"entity.name.foreign.bh","patterns":[{"include":"#string_literal"}]}}},{"match":"(?x)\n (?:\\b(?\u003c!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:(\\()\\s*(?!--+\\))([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\)))\n","captures":{"1":{"name":"entity.name.function.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"entity.name.function.infix.bh"},"4":{"name":"punctuation.paren.bh"}}}]},{"include":"#double_colon"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.foreign.bh"},"3":{"name":"keyword.other.$3.bh"}}},"float_literals":{"match":"(?x)\n \\b(?\u003c!')\n (?: # Decimal\n ([0-9][_0-9]*\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?\n |[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*\n )\n | # Hexadecimal\n (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?\n |0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*\n )\n )\\b(?!')","captures":{"1":{"name":"constant.numeric.floating.decimal.bh"},"2":{"name":"constant.numeric.floating.hexadecimal.bh"}}},"forall":{"begin":"(?x)\n # Alphabetic forall\n (?:\n \\b(?\u003c!')\n (forall)\n \\b(?!')\n )\n |\n # Symbolic forall\n (?:\n # Not preceded by a symbol except reserved symbols\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])\n (∀)\n # Not followed by a symbol except reserved symbols\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])\n )","end":"(\\.)|(-\u003e|→)","patterns":[{"include":"#comment_like"},{"include":"#type_variable"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.forall.bh"},"2":{"name":"keyword.other.forall.bh"}},"endCaptures":{"1":{"name":"keyword.operator.period.bh"},"2":{"name":"keyword.operator.arrow.bh"}}},"fun_decl":{"name":"meta.function.type-declaration.bh","begin":"(?x)^(\\s*)\n (primitive\\s+)?\n (type\\s+)?\n (?\u003cfn\u003e\n (?:\n [\\p{Ll}_\\p{Lu}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\#*\n | \\(\\s*\n (?!--+\\))\n [\\p{S}\\p{P}\u0026\u0026[^(),:;\\[\\]`{}_\"']]\n [\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*\n \\s*\\)\n )\n (?:\\s*,\\s*\\g\u003cfn\u003e)?\n )\n \\s*(?\u003c![\\p{S}\\p{P}\u0026\u0026[^\\),;\\]`}_\"']])(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])\n","end":"(?x)\n # End of type annotation:\n # To the left of a reserved symbolic keyword such as = or \u003c-\n (?= \n # non-symbolic character\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n # symbolic keyword except (-\u003e)\n ((\u003c-|←)|(=)|(-\u003c|↢)|(-\u003c\u003c|⤛))\n # non-symbolic character\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n )\n # Decreasing indentation:\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.primitive.bh"},"3":{"name":"keyword.other.type.bh"},"4":{"name":"entity.name.function.bh","patterns":[{"include":"#reserved_symbol"},{"include":"#prefix_op"}]},"5":{"name":"keyword.operator.double-colon.bh"}}},"gadt_constructor":{"patterns":[{"begin":"(?x)\n ^(\\s*)\n (?:\n (\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n )","end":"(?x)\n # GADT constructor ends\n (?=\\b(?\u003c!'')deriving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#double_colon"},{"include":"#record_decl"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"constant.other.bh"},"3":{"name":"punctuation.paren.bh"},"4":{"name":"constant.other.operator.prefix.bh"},"5":{"name":"punctuation.paren.bh"}}},{"begin":"(?x)\n (\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}]*) # named constructor\n |(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\)) # prefix operator","end":"(?=;|\\}|$)","patterns":[{"include":"#comment_like"},{"include":"#deriving"},{"include":"#double_colon"},{"include":"#record_decl"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"constant.other.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"constant.other.operator.prefix.bh"},"4":{"name":"punctuation.paren.bh"}}}]},"infix_op":{"patterns":[{"match":"(?x)\n ((?:(?\u003c!'')('')?[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)\n (\\#+|[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+(?\u003c!\\#))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"name":"keyword.operator.infix.bh"}}},{"name":"keyword.operator.function.infix.bh","match":"(`)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*)(`)","captures":{"1":{"name":"punctuation.backtick.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"patterns":[{"include":"#data_constructor"}]},"4":{"name":"punctuation.backtick.bh"}}}]},"inline_phase":{"name":"meta.inlining-phase.bh","begin":"\\[","end":"\\]","patterns":[{"name":"punctuation.tilde.bh","match":"~"},{"include":"#integer_literals"},{"name":"invalid","match":"\\w*"}],"beginCaptures":{"0":{"name":"punctuation.bracket.bh"}},"endCaptures":{"0":{"name":"punctuation.bracket.bh"}}},"integer_literals":{"match":"(?x)\n \\b(?\u003c!')\n (?:\n ([0-9][_0-9]*) # Decimal integer\n | (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*) # Hexadecimal integer\n | (0[oO]_*[0-7][_0-7]*) # Octal integer\n | (0[bB]_*[01][_01]*) # Binary integer\n )\n \\b(?!')","captures":{"1":{"name":"constant.numeric.integral.decimal.bh"},"2":{"name":"constant.numeric.integral.hexadecimal.bh"},"3":{"name":"constant.numeric.integral.octal.bh"},"4":{"name":"constant.numeric.integral.binary.bh"}}},"keyword":{"match":"\\b(?\u003c!')(?:(where|when|let|letseq|in)|(do|module|rules|action|if|then|else|case(?:s)?|of|verilog|synthesize))\\b(?!')","captures":{"1":{"name":"keyword.other.$1.bh"},"2":{"name":"keyword.control.$2.bh"}}},"layout_herald":{"begin":"(?x)\n (?:(?\u003c!')\\b(?:(where|let|letseq|do|module|rules|action)|(of))|(\\\\\\s*case(?:s)?))\n \\s*(\\{)(?!-)","end":"(\\})","patterns":[{"include":"$self"},{"name":"punctuation.semicolon.bh","match":";"}],"beginCaptures":{"1":{"name":"keyword.other.$1.bh"},"2":{"name":"keyword.control.of.bh"},"3":{"name":"keyword.control.lambda-case.bh"},"4":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},"numeric_literals":{"patterns":[{"include":"#float_literals"},{"include":"#integer_literals"}]},"overloaded_label":{"patterns":[{"name":"entity.name.label.bh","match":"(?x) \n (?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^(,;\\[`{]]) # Disallow closing characters\n (\\#)\n (?:\n # String\n (\"(?:\\\\\"|[^\"])*\")\n # Sequence of allowed label identifiers\n |[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+\n )","captures":{"1":{"name":"keyword.operator.prefix.hash.bh"},"2":{"patterns":[{"include":"#string_literal"}]}}}]},"package_exports":{"name":"meta.declaration.exports.bh","begin":"\\(","end":"\\)","patterns":[{"include":"#comment_like"},{"match":"\\b(?\u003c!')(package)\\b(?!')","captures":{"1":{"name":"keyword.other.package.bh"}}},{"include":"#comma"},{"include":"#export_constructs"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#comment_like"},{"include":"#record_wildcard"},{"name":"constant.other.operator.prefix.bh","match":"(\\()\\s*(:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]*)\\s*(\\))"},{"include":"#export_constructs"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.paren.bh"}},"endCaptures":{"0":{"name":"punctuation.paren.bh"}}}],"beginCaptures":{"0":{"name":"punctuation.paren.bh"}},"endCaptures":{"0":{"name":"punctuation.paren.bh"}},"applyEndPatternLast":true},"package_name":{"name":"entity.name.namespace.bh","match":"(?\u003cconid\u003e[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.\\g\u003cconid\u003e)?)"},"pragma":{"name":"meta.preprocessor.bh","begin":"\\{-#","end":"#-\\}","patterns":[{"include":"#comments"},{"name":"keyword.other.preprocessor.pragma.bh","match":"(?xi) \\b(?\u003c!')\n (synthesize|verilog|noReady|alwaysEnabled|parameter|no_default_clock|no_default_reset|gate_input_clocks|clock_family|clock_prefix|gate_prefix|reset_prefix|alwaysReady|noReady|alwaysEnabled|scanInsert|bitBlast|CLK|RSTN|options|deprecate|properties)\\b(?!')"},{"name":"keyword.other.preprocessor.pragma.bh","match":"(?xi) \\b(?\u003c!')\n (prefixs?|arg_names|ready|enable|result|always_ready|always_enabled)\\b(?!')"}]},"prefix_op":{"patterns":[{"match":"(?x)\n (\\()\\s*(?!(?:--+|\\.\\.)\\))(\\#+|[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+(?\u003c!\\#))\\s*(\\))","captures":{"1":{"name":"punctuation.paren.bh"},"2":{"name":"entity.name.function.infix.bh"},"3":{"name":"punctuation.paren.bh"}}}]},"qualifier":{"name":"entity.name.namespace.bh","match":"\\b(?\u003c!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\."},"quasi_quote":{"patterns":[{"name":"meta.quasi-quotation.bh","begin":"(?x)\n (\\[)\n (e|d|p)?\n (\\|(?:\\|(?!\\]))?)","end":"\\3\\]","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.quasi-quotation.begin.bh"},"2":{"name":"entity.name.quasi-quoter.bh"},"3":{"name":"keyword.operator.quasi-quotation.begin.bh"}},"endCaptures":{"0":{"name":"keyword.operator.quasi-quotation.end.bh"}}},{"name":"meta.quasi-quotation.bh","begin":"(?x)\n (\\[)\n (t)\n (\\|(?:\\|(?!\\]))?)","end":"\\3\\]","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.quasi-quotation.begin.bh"},"2":{"name":"entity.name.quasi-quoter.bh"},"3":{"name":"keyword.operator.quasi-quotation.begin.bh"}},"endCaptures":{"0":{"name":"keyword.operator.quasi-quotation.end.bh"}}},{"name":"meta.quasi-quotation.bh meta.embedded.block.$5","begin":"(?x)\n (\\[)\n (?:(\\$\\$)|(\\$))?\n (?!'\\|') # Don't parse ['|'...] as a quasi quotation\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*) # Optional qualifier\n ((?:[^\\s\\p{S}\\p{P}]|['_])*) # Quasi-quoter\n (\\|)","end":"\\|\\]","beginCaptures":{"1":{"name":"keyword.operator.quasi-quotation.begin.bh"},"2":{"name":"keyword.operator.prefix.double-dollar.bh"},"3":{"name":"keyword.operator.prefix.dollar.bh"},"4":{"name":"entity.name.namespace.bh"},"5":{"name":"entity.name.quasi-quoter.bh"},"6":{"name":"keyword.operator.quasi-quotation.begin.bh"}},"endCaptures":{"0":{"name":"keyword.operator.quasi-quotation.end.bh"}}}]},"record":{"name":"meta.record.bh","begin":"({)(?!-)","end":"(?\u003c!-)(})","patterns":[{"include":"#comment_like"},{"include":"#record_field"}],"beginCaptures":{"1":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},"record_decl":{"name":"meta.record.definition.bh","begin":"({)(?!-)","end":"(?\u003c!-)(})","patterns":[{"include":"#comment_like"},{"include":"#record_decl_field"}],"beginCaptures":{"1":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},"record_decl_field":{"begin":"(?x)\n (?:([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n","end":"(,)|(?=})","patterns":[{"include":"#comment_like"},{"include":"#comma"},{"include":"#double_colon"},{"include":"#type_signature"},{"include":"#record_decl_field"}],"beginCaptures":{"1":{"name":"variable.other.member.definition.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"variable.other.member.definition.bh"},"4":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.comma.bh"}}},"record_field":{"patterns":[{"begin":"(?x)\n (?:([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\.']*)\n |(\\()\\s*([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n","end":"(,)|(?=})","patterns":[{"include":"#comment_like"},{"include":"#comma"},{"include":"$self"}],"beginCaptures":{"1":{"name":"variable.other.member.bh","patterns":[{"include":"#qualifier"}]},"2":{"name":"punctuation.paren.bh"},"3":{"name":"variable.other.member.bh"},"4":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.comma.bh"}}},{"include":"#record_wildcard"}]},"record_wildcard":{"match":"(?x)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (\\.\\.)\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])","captures":{"1":{"name":"variable.other.member.wildcard.bh"}}},"reserved_symbol":{"patterns":[{"match":"(?x)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])\n (?:\n (\\.\\.)\n |(:)\n |(=)\n |(\\\\) # λ not reserved as it is a letter\n |(\\|)\n |(\u003c-|←)\n |(-\u003e|→)\n |(-\u003c|↢)\n |(-\u003c\u003c|⤛)\n |(\u003e-|⤚)\n |(\u003e\u003e-|⤜)\n )\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"'']])","captures":{"1":{"name":"keyword.operator.double-dot.bh"},"10":{"name":"keyword.operator.arrow.tail.bh"},"11":{"name":"keyword.operator.arrow.tail.double.bh"},"2":{"name":"keyword.operator.colon.bh"},"3":{"name":"keyword.operator.eq.bh"},"4":{"name":"keyword.operator.lambda.bh"},"5":{"name":"keyword.operator.pipe.bh"},"6":{"name":"keyword.operator.arrow.left.bh"},"7":{"name":"keyword.operator.arrow.bh"},"8":{"name":"keyword.operator.arrow.left.tail.bh"},"9":{"name":"keyword.operator.arrow.left.tail.double.bh"}}},{"match":"(?x)\n (?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^\\#,;\\[`{]]) # Require closing characters\n (\\#+)\n (?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^),;\\]`}]]) # Disallow opening character","captures":{"1":{"name":"keyword.operator.postfix.hash.bh"}}},{"match":"(?x)\n (?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\)\\}\\]]) # Require closing characters\n (@)\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\(\\[\\{]) # Require opening character","captures":{"1":{"name":"keyword.operator.infix.tight.at.bh"}}},{"match":"(?x)\n (?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}\u0026\u0026[^(,;\\[`{]]) # Disallow closing characters\n (?:(~)|(!)|(-)|(\\$\\$)|(\\$)|(%))\n (?=[\\p{Ll}_'\\p{Lu}\\p{Lt}\\p{Nd}\\(\\{\\[]) # Require opening character (non operator symbol)","captures":{"1":{"name":"keyword.operator.prefix.tilde.bh"},"2":{"name":"keyword.operator.prefix.bang.bh"},"3":{"name":"keyword.operator.prefix.minus.bh"},"4":{"name":"keyword.operator.prefix.double-dollar.bh"},"5":{"name":"keyword.operator.prefix.dollar.bh"},"6":{"name":"keyword.operator.prefix.modifier.bh"}}}]},"role_annotation":{"patterns":[{"name":"meta.role-annotation.bh","begin":"^(\\s*)(type)\\s+(role)\\b(?!')","end":"(?x) # Detect end of block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )","patterns":[{"include":"#comment_like"},{"include":"#type_constructor"},{"match":"\\b(?\u003c!')(nominal|representational|phantom)\\b(?!')","captures":{"1":{"name":"keyword.other.role.$1.bh"}}}],"beginCaptures":{"2":{"name":"keyword.other.type.bh"},"3":{"name":"keyword.other.role.bh"}}}]},"start_type_signature":{"patterns":[{"name":"meta.type-declaration.bh","begin":"^(\\s*)(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])\\s*","end":"(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |(?\u003c!')\\b(in|then|else|of)\\b(?!') # keyword\n | # symbolic keyword except (-\u003e)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(\u003c-|←)\n |(=)\n |(-\u003c|↢)\n |(-\u003c\u003c|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n |(\\#|@)-\\} # End of annotation block (pragma)\n # Decreasing indentation:\n | (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s*\\S # - equally indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.operator.double-colon.bh"}}},{"begin":"(?\u003c![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^\\(,;\\[`{_\"']])","end":"(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |\\b(?\u003c!')(in|then|else|of)\\b(?!') # keyword\n |(\\#|@)-\\} # End of annotation block (Liquidbh or pragma)\n | # symbolic keyword except (-\u003e)\n (?\u003c![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(\u003c-|←)\n |(=)\n |(-\u003c|↢)\n |(-\u003c\u003c|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n # Indentation \n |(?=\\}|;) # Explicit indentation\n |$ # End of line\n )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.double-colon.bh"}}}]},"string_literal":{"name":"string.quoted.double.bh","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.bh","match":"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])"},{"name":"constant.character.escape.octal.bh","match":"\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+"},{"name":"constant.character.escape.control.bh","match":"\\\\\\^[A-Z@\\[\\]\\\\\\^_]"},{"begin":"\\\\\\s","end":"\\\\","patterns":[{"name":"invalid.illegal.character-not-allowed-here.bh","match":"\\S+"}],"beginCaptures":{"0":{"name":"constant.character.escape.begin.bh"}},"endCaptures":{"0":{"name":"constant.character.escape.end.bh"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bh"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bh"}}},"type_application":{"patterns":[{"name":"meta.type-application.bh","match":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(\\(\\s*\\))","captures":{"1":{"name":"keyword.operator.prefix.at.bh"},"2":{"name":"support.constant.unit.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(')?(\\()","end":"\\)","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"},"2":{"name":"keyword.operator.promotion.bh"},"3":{"name":"punctuation.paren.bh"}},"endCaptures":{"0":{"name":"punctuation.paren.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(')?(\\[)","end":"\\]","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"},"2":{"name":"keyword.operator.promotion.bh"},"3":{"name":"punctuation.bracket.bh"}},"endCaptures":{"0":{"name":"punctuation.bracket.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(?=\\\")","end":"(?\u003c=\\\")","patterns":[{"include":"#string_literal"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"}}},{"name":"meta.type-application.bh","begin":"(?\u003c=[\\s,;\\[\\]{}\"])(@)(?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])","end":"(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.prefix.at.bh"}}}]},"type_constructor":{"patterns":[{"match":"(?x)\n # Optional promotion tick\n (')?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n (\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"name":"storage.type.bh"}}},{"match":"(?x)\n # Optional promotion tick\n (')?\n # Opening parenthesis\n (\\()\\s*\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n ([\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+)\n # Closing parenthesis\n \\s*(\\))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"entity.name.namespace.bh"},"4":{"name":"storage.type.operator.bh"},"5":{"name":"punctuation.paren.bh"}}}]},"type_operator":{"patterns":[{"match":"(?x)\n # Optional promotion tick\n (?:(?\u003c!')('))?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n (?![#@]?-})(\\#+|[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']]+(?\u003c!\\#))\n #((?:[\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']\u0026\u0026[^#@]]|[@#](?!-}))+)","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"entity.name.namespace.bh"},"3":{"name":"storage.type.operator.infix.bh"}}},{"match":"(?x)\n # Optional promotion tick\n (')?\n # Opening backtick\n (\\`)\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Closing backtick\n (`)","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.backtick.bh"},"3":{"name":"entity.name.namespace.bh"},"4":{"name":"storage.type.infix.bh"},"5":{"name":"punctuation.backtick.bh"}}}]},"type_signature":{"patterns":[{"include":"#comment_like"},{"name":"support.constant.unit.bh","match":"(')?(\\()\\s*(\\))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.tuple.bh","match":"(')?(\\()\\s*,[\\s,]*(\\))","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"},"3":{"name":"punctuation.paren.bh"}}},{"name":"support.constant.empty-list.bh","match":"(')?(\\[)\\s*(\\])","captures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.bracket.bh"},"3":{"name":"punctuation.bracket.bh"}}},{"include":"#integer_literals"},{"name":"keyword.operator.double-colon.bh","match":"(::|∷)(?![\\p{S}\\p{P}\u0026\u0026[^(),;\\[\\]`{}_\"']])"},{"include":"#forall"},{"name":"keyword.operator.big-arrow.bh","match":"=\u003e|⇒"},{"include":"#string_literal"},{"name":"invalid","match":"'[^']'"},{"include":"#type_application"},{"include":"#reserved_symbol"},{"include":"#type_operator"},{"include":"#type_constructor"},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comma"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"punctuation.paren.bh"}},"endCaptures":{"2":{"name":"punctuation.paren.bh"}}},{"begin":"(')?(\\()","end":"(\\))","patterns":[{"include":"#comma"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.paren.bh"}},"endCaptures":{"1":{"name":"punctuation.paren.bh"}}},{"begin":"(')?(\\[)","end":"(\\])","patterns":[{"include":"#comma"},{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.operator.promotion.bh"},"2":{"name":"punctuation.bracket.bh"}},"endCaptures":{"1":{"name":"punctuation.bracket.bh"}}},{"include":"#type_variable"}]},"type_variable":{"name":"variable.other.generic-type.bh","match":"\\b(?\u003c!')(?!(?:forall|deriving)\\b(?!'))[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},"where":{"patterns":[{"begin":"(?x)\n (?\u003c!')\\b(where)\n \\s*(\\{)(?!-)","end":"(\\})","patterns":[{"include":"$self"},{"name":"punctuation.semicolon.bh","match":";"}],"beginCaptures":{"1":{"name":"keyword.other.where.bh"},"2":{"name":"punctuation.brace.bh"}},"endCaptures":{"1":{"name":"punctuation.brace.bh"}}},{"name":"keyword.other.where.bh","match":"\\b(?\u003c!')(where)\\b(?!')"}]}}}
@@ -1 +1 @@
1
- {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"annotation":{"patterns":[{"match":"^\\s*(@)\\s*([a-zA-Z0-9_]+)","captures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"}}},{"name":"meta.decorator.brs","begin":"(@)\\s*([a-zA-Z0-9_]+)\\s*(\\()","end":"(\\))","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"},"3":{"name":"meta.brace.round.brs"}},"endCaptures":{"1":{"name":"meta.brace.round.brs"}}}]},"apostrophe_comment":{"name":"comment.line.apostrophe.brs","match":"('[^\\r\\n]*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"class_declaration":{"match":"(?i:(class)\\s+([a-z0-9_]+)(?:\\s+(extends)(?:\\s+([a-z0-9_]+))?)?)","captures":{"1":{"name":"keyword.other.class.brs"},"2":{"name":"entity.name.type.class.brs"},"3":{"name":"storage.modifier.brs"},"4":{"name":"entity.name.type.class.brs"}}},"class_roku_builtin":{"name":"support.class.brs","match":"(?i:\\bro(R(ss(Parser|Article)|e(sourceManager|ctangle|ad(File|WriteFile)|gistry(Section)?))|G(pio(Button|ControlPort)|lobal)|XML(Element|List)|MessagePort|AppInfo|Array|AssociativeArray|AudioGuide|AudioMetadata|AudioPlayer|AudioResource|Bitmap|Boolean|ByteArray|CaptionRenderer|ChannelStore|CodeRegistrationScreen|Compositor|DataGramSocket|DateTime|DeviceInfo|Double|IntrinsicDouble|EVPCipher|EVPDigest|FileSystem|Float|Font|FontMetrics|FontRegistry|Function|GridScreen|HdmiStatus|HMAC|HttpAgent|ImageCanvas|ImageMetadata|Input|Int|Invalid|KeyboardScreen|List|ListScreen|Localization|LongInteger|MessageDialog|MessagePort|Microphone|OneLineDialog|ParagraphScreen|Path|PinEntryDialog|PosterScreen|ProgramGuide|Regex|Region|Registry|RegistrySection|RSA|Screen|SearchHistory|SearchScreen|SlideShow|SocketAddress|SpringboardScreen|Sprite|StreamSocket|String|SystemLog|TextScreen|TextToSpeech|TextureManager|TextureRequest|Timespan|Tuner|UrlTransfer|VideoPlayer|VideoScreen|XMLElement|XMLList|SGScreen|SGNode|SGNodeEvent|SGScreenEvent|AudioPlayerEvent|CaptionRendererEvent|CECStatusEvent|ChannelStoreEvent|CodeRegistrationScreenEvent|DeviceInfoEvent|FileSystemEvent|GridScreenEvent|HdmiHotPlugEvent|HdmiStatusEvent|ImageCanvasEvent|InputEvent|KeyboardScreenEvent|ListScreenEvent|MessageDialogEvent|MicrophoneEvent|OneLineDialogEvent|ParagraphScreenEvent|PinEntryDialogEvent|PosterScreenEvent|SearchScreenEvent|SlideShowEvent|SocketEvent|SpringboardScreenEvent|SystemLogEvent|TextScreenEvent|TextToSpeechEvent|TextureRequestEvent|TunerEvent|UniversalControlEvent|UrlEvent|VideoPlayerEvent|VideoScreenEvent|B(yteArray|oolean|r(Sub|ightPackage))|S(ystemTime|t(orageInfo|ring( )?)|erialPort( )?)|NetworkConfiguration|C(ontrol(Down( )?|Up|Port)|ecInterface|lockWidget|reateFile)|T(imer|ouchScreen( )?|ext(Field|Widget))|I(RRemote( )?|n(t|valid)|mage(Player|Widget))|D(eviceInfo( )?|at(eTime|agram(Receiver|Sender)))|Url(Transfer|Event)|Video(Mode|Input|Player|Event)|Keyboard(Press( )?| )?|Quadravox(Button( )?|SNS5( )?)|Float|List|A(ssociativeArray|udio(Player|Event)|ppendFile|rray))\\b)"},"comment":{"patterns":[{"include":"#rem_comment"},{"include":"#apostrophe_comment"}]},"component_statement":{"name":"meta.component.brs","begin":"(?i)^[ \t]*(component)\\s+(?:([a-z0-9_]+)|(\".*?\"))(?:\\s+(extends)(?:\\s+(?:([a-z0-9_]+)|(\".*?\")))?)?\\s*","end":"(?i)(?\u003c![_[:alnum:]])(?\u003c!\\.)\\s*(end\\s*component)","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"storage.type.component.brs"},"2":{"name":"entity.name.type.component.brs"},"3":{"name":"string.quoted.double.brs"},"4":{"name":"storage.modifier.extends.brs"},"5":{"name":"entity.name.type.component.brs"},"6":{"name":"string.quoted.double.brs"}},"endCaptures":{"1":{"name":"storage.type.component.brs"}}},"end_class":{"name":"storage.type.class.brs","match":"(?i:\\s*(end\\s*class))"},"end_function":{"name":"keyword.declaration.function","match":"(?i)[ \\t]*end\\s*(sub|function)"},"end_namespace":{"match":"^(?i:\\s*(end\\s*namespace)\\s*(?=['\\n]))","captures":{"1":{"name":"keyword.other.namespace.brs"}}},"end_region_comment":{"name":"keyword.preprocessor.region.brs","match":"^(i?\\s*'\\s*#endregion(\\s*.*)?$)"},"entire_language":{"patterns":[{"include":"#regex"},{"include":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_statement"},{"include":"#namespace_declaration"},{"include":"#enum_declaration"},{"include":"#end_namespace"},{"include":"#method"},{"include":"#field"},{"include":"#class_declaration"},{"include":"#end_class"},{"include":"#preprocessor_keywords"},{"include":"#region_comment"},{"include":"#end_region_comment"},{"include":"#global_constants"},{"include":"#keyword_logical_operator"},{"include":"#function_call"},{"include":"#object_properties"},{"include":"#vscode_rale_tracker_entry_comment"},{"include":"#identifiers_with_type_designators"},{"include":"#m_and_global"},{"include":"#keyword_return"},{"include":"#primitive_literal_expression"},{"include":"#function_declaration"},{"include":"#inline_function_declaration"},{"include":"#end_function"},{"include":"#interface_declaration"},{"include":"#storage_types"},{"include":"#loop_keywords"},{"include":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#support_functions"},{"include":"#variables_and_params"},{"include":"#annotation"}]},"enum_declaration":{"name":"meta.enum.declaration.brs","begin":"(?i)\\b(enum)[ \\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[ \\t]*(end[ \\t]*enum)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.brs"}}},"field":{"match":"(?i:(public|protected|private)\\s+([a-z0-9_]+))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"variable.object.property.brs"}}},"function_call":{"match":"(?i:\\b([a-z_][a-z0-9_]*)[ \\t]*(?=\\())","captures":{"1":{"name":"entity.name.function.brs"}}},"function_declaration":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"global_constants":{"name":"variable.language","match":"(?i:\\b(line_num)\\b)"},"identifiers_with_type_designators":{"name":"entity.name.variable.local.brs","match":"(?i:\\b([a-z_][a-z0-9_]*)[\\$%!#\u0026])"},"if_with_paren":{"begin":"(?i:(?\u003c!\\.)(if)\\s*\\()","end":"\u0008(then)|\n","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"keyword.control.brs"}},"endCaptures":{"1":{"name":"keyword.control.brs"}}},"import_statement":{"match":"(?i:(import)\\s*(\".*\"))","captures":{"1":{"name":"keyword.control.import.brs"},"2":{"name":"string.quoted.double.brs"}}},"inline_function_declaration":{"match":"(?i)[^a-z0-9_\"](function|sub)\\s*\\(","captures":{"1":{"name":"keyword.declaration.function"},"2":{"name":"keyword.declaration.function"}}},"interface_declaration":{"name":"meta.interface.brs","begin":"(?i)\\b[\\s\\t]*(interface)[\\s\\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[\\s\\t]*(end[\\s\\t]*interface)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#interface_function"},{"include":"#interface_field"}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.brs"}}},"interface_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}},"interface_function":{"patterns":[{"include":"#interface_function_with_return_type"},{"include":"#interface_function_plain"}]},"interface_function_plain":{"match":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\())(\\))[\\s\\t]","captures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"interface_function_with_return_type":{"begin":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\()).*?(\\))[\\s\\t]+(as)","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"keyword_logical_operator":{"name":"keyword.operator.logical.word","match":"(?i:\\b(and|or|not)\\b)"},"keyword_return":{"match":"(?i:\\b(return)\\b)","captures":{"1":{"name":"keyword.control.flow.return.brs"}}},"loop_keywords":{"name":"keyword.control.loop.brs","match":"(?i:(?\u003c!\\.)(continue\\s+(for|while)\\b))"},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|global|super)\\b)","captures":{"1":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"namespace_declaration":{"begin":"(?i:(namespace))\\s+","end":"[\\s'\\n]","patterns":[{"name":"entity.name.type.namespace.brs","match":"(?i:([a-z0-9_]+))"},{"name":"punctuation.accessor.brs","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.brs"}}},"non_identifier_keywords":{"match":"(?i:[^\\.\\w\\\"](then|stop|run|end|each|next|throw)(?!(\\s*:)|[\\d\\w_]))","captures":{"1":{"name":"keyword.control.brs"}}},"object_properties":{"match":"(?i:(?\u003c=\\.)([a-z0-9_][a-z0-9_\\$%!#\u0026]*))","captures":{"1":{"name":"variable.other.object.property.brs"}}},"operators":{"name":"keyword.operator.brs","match":"=|\u003e=|\u003czz|\u003e|\u003c|\u003c\u003e|\\+|-|\\*|\\/|\\^|\u0026|\\b(?i:(And|Not|Or|Mod))\\b"},"preprocessor_keywords":{"patterns":[{"name":"keyword.preprocessor.if.brs","match":"(?i:(#const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#if))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#else\\s*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#end\\s*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#else))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"name":"constant.numeric.brs","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"},{"patterns":[{"name":"constant.language.boolean.true.brs","match":"(?i)\\b(true)\\b"},{"name":"constant.language.boolean.false.brs","match":"(?i)\\b(false)\\b"}]},{"match":"(?i:\\b(invalid)\\b)","captures":{"1":{"name":"constant.language.null.brs"}}}]},"program_statements":{"name":"keyword.control.brs","match":"(?i:(?\u003c!\\.)(if|else\\s*if|else|print|library|while|for\\s+each|for|end\\s*for|exit\\s+for|end\\s*while|exit\\s*while|end\\s*if|to|step|in|goto|rem|as)\\b)"},"regex":{"patterns":[{"name":"string.regexp.brs","begin":"(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}},{"name":"string.regexp.brs","begin":"((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"match":"\\\\[1-9]\\d*|\\\\k\u003c([a-zA-Z_$][\\w$]*)\u003e","captures":{"0":{"name":"keyword.other.back-reference.regexp"},"1":{"name":"variable.other.regexp"}}},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!)|(\\?\\|)|(\\?\u003c=)|(\\?\u003c!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((?:(\\?[:\u003e])|(?:\\?\u003c([a-zA-Z_$][\\w$]*)\u003e))?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"region_comment":{"match":"(?i:^\\s*('\\s*#region)(?:(\\s+.*)?))$","captures":{"1":{"name":"keyword.preprocessor.region.brs"},"2":{"name":"string.unquoted.preprocessor.message.brs"}}},"rem_comment":{"name":"comment.line.rem.brs","match":"^\\s*?(?i:rem\\s.*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"storage_types":{"match":"(?i:\\b(boolean|integer|longinteger|float|double|string|object|function|sub|interface|dynamic|brsub|dim|const)\\b)","captures":{"1":{"name":"storage.type.brs"}}},"support_builtin_functions":{"name":"support.function.brs","match":"(?i:\\b(GetLastRun(RuntimeError|CompileError)|Rnd|Box|Type|objfun|pos|eval)\\b)"},"support_component_functions":{"name":"support.function.component.brs","match":"(?i:\\b(R(ight|e(set(Index)?|ad(B(yte(IfAvailable)?|lock)|File|Line)?|move(Head|Tail|Index)))|Ge(nXML(Header)?|t(Res(ource|ponse(Headers|Code))|X|M(i(nute|llisecond)|o(nth|de(l)?)|essage)|B(yte(sPerBlock|Array)|o(o(tVersion(Number)?|lean)|dy))|S(t(orageCardInfo|a(ndards|tusByte)|ring(Count)?)|i(zeInMegabytes|gnedByte)|ource(Host|Identity|Port)|ub|ec(tionList|ond)|afe(X|Height|Y|Width))|H(o(stName|ur)|e(ight|ad))|Y(ear)?|N(extArticle|ame(dElements)?)|C(hildElements|ontrols|urrent(Standard|Con(trolValue|fig)|Input))|T(i(tle|me(Server|Zone))|o(String|File)|ext|ail)|I(n(t|dex|puts)|dentity)|ZoneDateTime|D(e(scription|vice(BootCount|Name|U(niqueId|ptime)))|a(y(OfWeek)?|ta))|U(se(dInMegabytes|rData)|tcDateTime)|Ent(ityEncode|ry)|V(ersion(Number)?|alue)|KeyList|F(ileSystemType|loat|a(ilureReason|mily)|reeInMegabytes)|W(holeState|idth)|LocalDateTime|Attributes))|M(id|D5|ap(StereoOutput(Aux)?|DigitalOutput))|Boolean|S(h(ift|ow)|canWiFi|t((Clear|Display)?|art|r(i(ng)?)?)|implify|ubtract(Milliseconds|Seconds)|e(nd(RawMessage|B(yte|lock)|Line)?|t(R(ollOverRegion|e(s(ize|olution)|c(tangle|eiveEol)))|X|M(i(n(imumTransferRate|ute)|llisecond)|o(nth|de(CaseSensitive)?)|ultiscreenBezel)|B(yteEventPort|o(olean|dy)|a(ckground(Bitmap|Color)|udRate))|S(t(andard|ring)|ub|e(ndEol|cond)|afeTextRegion)|H(o(stName|ur)|eight)|Y(ear)?|Name|C(hannelVolumes(Aux)?|ontrolValue|ursor(Bitmap|Pos(ition)?))|Time(Server|Zone)?|I(n(t|put)|P4(Gateway|Broadcast|Netmask|Address))|OutputState|D(HCP|omain|e(stination|fault(Mode|Transistion))|a(y(OfWeek)?|te(Time)?))|U(ser(Data|AndPassword)|tcDateTime|rl)|P(o(werSaveMode|rt)|assword|roxy)|E(ntry|cho|ol)|V(iewMode|olume(Aux)?)|F(o(nt|r(egroundColor|groundColor))|l(oat|ashRate))|W(holeState|i(dth|Fi(Passphrase|ESSID)))|L(ineEventPort|o(calDateTime|opMode)|auguage)|Audio(Mode(Aux)?|Stream(Aux)?|Output(Aux)?))|ek(Relative|ToEnd|Absolute)))|H(ide|ead|asAttribute)|N(ormalize|ext)|C(hr|ount|urrentPosition|l(s|ear(Region|Events)?))|T(o(Base64String|HexString|kenize|AsciiString)|estInter(netConnectivity|face)|rim)|I(s(MousePresent|N(ext|ame)|InputActive|Empty|Valid|LittleEndianCPU)|n(str|te(ger)|valid))|Object|D(ynamic|isplay(Preload|File(Ex)?)|o(uble|esExist)|elete)|U(n(shift|pack)|Case)|P(o(st(Message|From(String|File))|p(String(s)?)?)|ush(String)?|eek|lay(StaticImage|File)?|arse(String|File)?|reloadFile(Ex)?)|E(nable(R(ollover|egion)|Cursor|Input|Output)|xists)|Void|F(indIndex|unction|l(oat|ush)|rom(Base64String|HexString|AsciiString))|W(hile|aitMessage|rite(File)?)|L(ookup|e(n|ft))|A(s(ync(GetTo(String|File)|Head|PostFrom(String|File)|Flush)|c)?|tEof|dd(Re(ctangle(Region|_region)|place)|Milliseconds|BodyElement|Seconds|Head(er)?|CircleRegion|Tail|DNSServer|E(vent|lement(WithBody)?)|Attribute)|pp(end(String|File)?|ly))|ToStr)\\b)"},"support_functions":{"patterns":[{"include":"#support_builtin_functions"},{"include":"#support_global_functions"},{"include":"#support_global_string_functions"},{"include":"#support_global_math_functions"},{"include":"#support_component_functions"}]},"support_global_functions":{"name":"support.function.brs","match":"(?i:\\b(Re(adAsciiFile|bootSystem)|GetInterface|MatchFiles|Sleep|C(opyFile|reate(Directory|Object))|Delete(Directory|File)|UpTime|FormatDrive|ListDir|W(ait|riteAsciiFile))\\b)"},"support_global_math_functions":{"name":"support.function.brs","match":"(?i:\\b(S(in|qr|gn)|C(sng|dbl|os)|Tan|Int|Exp|Fix|Log|A(tn|bs))\\b)"},"support_global_string_functions":{"name":"support.function.brs","match":"(?i:\\b(Right|Mid|Str(i(ng(i)?)?)?|Chr|Instr|UCase|Val|Asc|L(Case|e(n|ft)))\\b)"},"template_string":{"begin":"(`)","end":"(`)","patterns":[{"begin":"(\\$\\{)","end":"(\\})","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end"}}},{"name":"string.template.brs","match":"(.)"}],"beginCaptures":{"1":{"name":"string.template.brs"}},"endCaptures":{"1":{"name":"string.template.brs"}}},"try_catch":{"name":"keyword.control.trycatch.brs","match":"(?i:\\b(try|catch|(end[ \\t]*try))\\b)"},"type_expression":{"patterns":[{"match":"(?i)(boolean|integer|longinteger|float|double|string)","captures":{"1":{"name":"storage.type.brs"}}},{"match":"(?i)\\b([a-z0-9_]+)","captures":{"1":{"name":"support.type.brs entity.name.type.brs"}}}]},"variables_and_params":{"match":"(?i:(?:\\b(new)\\s)?\\b(?\u003c!\\.)([a-z_][a-z0-9_\\$%!#]*)\\b)","captures":{"1":{"name":"keyword.operator.new.brs"},"2":{"name":"entity.name.variable.local.brs"}}},"vscode_rale_tracker_entry_comment":{"name":"keyword.preprocessor.brs","match":"('\\s*vscode_rale_tracker_entry[^\\S\\r\\n]*)"}}}
1
+ {"name":"BrightScript","scopeName":"source.brs","patterns":[{"include":"#entire_language"}],"repository":{"annotation":{"patterns":[{"match":"^\\s*(@)\\s*([a-zA-Z0-9_]+)","captures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"}}},{"name":"meta.decorator.brs","begin":"(@)\\s*([a-zA-Z0-9_]+)\\s*(\\()","end":"(\\))","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.decorator.brs"},"2":{"name":"entity.name.function.brs meta.function-call.brs"},"3":{"name":"meta.brace.round.brs"}},"endCaptures":{"1":{"name":"meta.brace.round.brs"}}}]},"apostrophe_comment":{"name":"comment.line.apostrophe.brs","match":"('[^\\r\\n]*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"class_declaration":{"match":"(?i:(class)\\s+([a-z0-9_]+)(?:\\s+(extends)(?:\\s+([a-z0-9_]+))?)?)","captures":{"1":{"name":"keyword.other.class.brs"},"2":{"name":"entity.name.type.class.brs"},"3":{"name":"storage.modifier.brs"},"4":{"name":"entity.name.type.class.brs"}}},"class_roku_builtin":{"name":"support.class.brs","match":"(?i:\\bro(R(ss(Parser|Article)|e(sourceManager|ctangle|ad(File|WriteFile)|gistry(Section)?))|G(pio(Button|ControlPort)|lobal)|XML(Element|List)|MessagePort|AppInfo|Array|AssociativeArray|AudioGuide|AudioMetadata|AudioPlayer|AudioResource|Bitmap|Boolean|ByteArray|CaptionRenderer|ChannelStore|CodeRegistrationScreen|Compositor|DataGramSocket|DateTime|DeviceInfo|Double|IntrinsicDouble|EVPCipher|EVPDigest|FileSystem|Float|Font|FontMetrics|FontRegistry|Function|GridScreen|HdmiStatus|HMAC|HttpAgent|ImageCanvas|ImageMetadata|Input|Int|Invalid|KeyboardScreen|List|ListScreen|Localization|LongInteger|MessageDialog|MessagePort|Microphone|OneLineDialog|ParagraphScreen|Path|PinEntryDialog|PosterScreen|ProgramGuide|Regex|Region|Registry|RegistrySection|RSA|Screen|SearchHistory|SearchScreen|SlideShow|SocketAddress|SpringboardScreen|Sprite|StreamSocket|String|SystemLog|TextScreen|TextToSpeech|TextureManager|TextureRequest|Timespan|Tuner|UrlTransfer|VideoPlayer|VideoScreen|XMLElement|XMLList|SGScreen|SGNode|SGNodeEvent|SGScreenEvent|AudioPlayerEvent|CaptionRendererEvent|CECStatusEvent|ChannelStoreEvent|CodeRegistrationScreenEvent|DeviceInfoEvent|FileSystemEvent|GridScreenEvent|HdmiHotPlugEvent|HdmiStatusEvent|ImageCanvasEvent|InputEvent|KeyboardScreenEvent|ListScreenEvent|MessageDialogEvent|MicrophoneEvent|OneLineDialogEvent|ParagraphScreenEvent|PinEntryDialogEvent|PosterScreenEvent|SearchScreenEvent|SlideShowEvent|SocketEvent|SpringboardScreenEvent|SystemLogEvent|TextScreenEvent|TextToSpeechEvent|TextureRequestEvent|TunerEvent|UniversalControlEvent|UrlEvent|VideoPlayerEvent|VideoScreenEvent|B(yteArray|oolean|r(Sub|ightPackage))|S(ystemTime|t(orageInfo|ring( )?)|erialPort( )?)|NetworkConfiguration|C(ontrol(Down( )?|Up|Port)|ecInterface|lockWidget|reateFile)|T(imer|ouchScreen( )?|ext(Field|Widget))|I(RRemote( )?|n(t|valid)|mage(Player|Widget))|D(eviceInfo( )?|at(eTime|agram(Receiver|Sender)))|Url(Transfer|Event)|Video(Mode|Input|Player|Event)|Keyboard(Press( )?| )?|Quadravox(Button( )?|SNS5( )?)|Float|List|A(ssociativeArray|udio(Player|Event)|ppendFile|rray))\\b)"},"comment":{"patterns":[{"include":"#rem_comment"},{"include":"#apostrophe_comment"}]},"component_statement":{"name":"meta.component.brs","begin":"(?i)^[ \t]*(component)\\s+(?:([a-z0-9_]+)|(\".*?\"))(?:\\s+(extends)(?:\\s+(?:([a-z0-9_]+)|(\".*?\")))?)?\\s*","end":"(?i)(?\u003c![_[:alnum:]])(?\u003c!\\.)\\s*(end\\s*component)","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"storage.type.component.brs"},"2":{"name":"entity.name.type.component.brs"},"3":{"name":"string.quoted.double.brs"},"4":{"name":"storage.modifier.extends.brs"},"5":{"name":"entity.name.type.component.brs"},"6":{"name":"string.quoted.double.brs"}},"endCaptures":{"1":{"name":"storage.type.component.brs"}}},"end_class":{"name":"storage.type.class.brs","match":"(?i:\\s*(end\\s*class))"},"end_function":{"name":"keyword.declaration.function","match":"(?i)[ \\t]*end\\s*(sub|function)"},"end_namespace":{"match":"^(?i:\\s*(end\\s*namespace)\\s*(?=['\\n]))","captures":{"1":{"name":"keyword.other.namespace.brs"}}},"end_region_comment":{"name":"keyword.preprocessor.region.brs","match":"^(i?\\s*'\\s*#endregion(\\s*.*)?$)"},"entire_language":{"patterns":[{"include":"#regex"},{"include":"#if_with_paren"},{"include":"#component_statement"},{"include":"#apostrophe_comment"},{"include":"#template_string"},{"include":"#rem_comment"},{"include":"#import_statement"},{"include":"#namespace_declaration"},{"include":"#enum_declaration"},{"include":"#end_namespace"},{"include":"#method"},{"include":"#field"},{"include":"#class_declaration"},{"include":"#end_class"},{"include":"#preprocessor_keywords"},{"include":"#region_comment"},{"include":"#end_region_comment"},{"include":"#global_constants"},{"include":"#keyword_logical_operator"},{"include":"#function_call"},{"include":"#object_properties"},{"include":"#vscode_rale_tracker_entry_comment"},{"include":"#identifiers_with_type_designators"},{"include":"#m_and_global"},{"include":"#keyword_return"},{"include":"#primitive_literal_expression"},{"include":"#function_declaration"},{"include":"#inline_function_declaration"},{"include":"#end_function"},{"include":"#interface_declaration"},{"include":"#storage_types"},{"include":"#loop_keywords"},{"include":"#program_statements"},{"include":"#try_catch"},{"include":"#non_identifier_keywords"},{"include":"#operators"},{"include":"#support_functions"},{"include":"#variables_and_params"},{"include":"#annotation"}]},"enum_declaration":{"name":"meta.enum.declaration.brs","begin":"(?i)\\b(enum)[ \\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[ \\t]*(end[ \\t]*enum)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[ \\t]*(=))?","end":"\r?\n","patterns":[{"include":"#primitive_literal_expression"}],"beginCaptures":{"1":{"name":"variable.object.enummember.brs"},"2":{"name":"keyword.operator.assignment.brs"}}}],"beginCaptures":{"1":{"name":"storage.type.enum.brs"},"2":{"name":"entity.name.type.enum.brs"}},"endCaptures":{"1":{"name":"storage.type.enum.brs"}}},"field":{"match":"(?i:(public|protected|private)\\s+([a-z0-9_]+))","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"variable.object.property.brs"}}},"function_call":{"match":"(?i:\\b([a-z_][a-z0-9_]*)[ \\t]*(?=\\())","captures":{"1":{"name":"entity.name.function.brs"}}},"function_declaration":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"global_constants":{"name":"variable.language","match":"(?i:\\b(line_num)\\b)"},"identifiers_with_type_designators":{"name":"entity.name.variable.local.brs","match":"(?i:\\b([a-z_][a-z0-9_]*)[\\$%!#\u0026])"},"if_with_paren":{"begin":"(?i:(?\u003c!\\.)(if)\\s*\\()","end":"\u0008(then)|\n","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"keyword.control.brs"}},"endCaptures":{"1":{"name":"keyword.control.brs"}}},"import_statement":{"match":"(?i:(import)\\s*(\".*\"))","captures":{"1":{"name":"keyword.control.import.brs"},"2":{"name":"string.quoted.double.brs"}}},"inline_function_declaration":{"match":"(?i)[^a-z0-9_\"](function|sub)\\s*\\(","captures":{"1":{"name":"keyword.declaration.function"},"2":{"name":"keyword.declaration.function"}}},"interface_declaration":{"name":"meta.interface.brs","begin":"(?i)\\b[\\s\\t]*(interface)[\\s\\t]+([a-zA-Z0-9_]+)\\b","end":"(?i)[\\s\\t]*(end[\\s\\t]*interface)","patterns":[{"include":"#comment"},{"include":"#annotation"},{"include":"#interface_function"},{"include":"#interface_field"}],"beginCaptures":{"1":{"name":"storage.type.interface.brs"},"2":{"name":"entity.name.type.interface.brs"}},"endCaptures":{"1":{"name":"storage.type.interface.brs"}}},"interface_field":{"begin":"(?i)\\s*\\b([a-z0-9_]+)(?:[\\s\\t]*(as))?","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"variable.object.property.brs"},"2":{"name":"keyword.control.as.brs"}}},"interface_function":{"patterns":[{"include":"#interface_function_with_return_type"},{"include":"#interface_function_plain"}]},"interface_function_plain":{"match":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\())(\\))[\\s\\t]","captures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"interface_function_with_return_type":{"begin":"(?i:\\s*\\b(function|sub)[\\s\\t]+([a-z0-9_]+)(\\()).*?(\\))[\\s\\t]+(as)","end":"\r?\n","patterns":[{"include":"#type_expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.function.brs"},"2":{"name":"entity.name.function.member.brs"},"3":{"name":"punctuation.definition.parameters.begin.brs"},"4":{"name":"punctuation.definition.parameters.end.brs"},"5":{"name":"keyword.control.as.brs"}}},"keyword_logical_operator":{"name":"keyword.operator.logical.word","match":"(?i:\\b(and|or|not)\\b)"},"keyword_return":{"match":"(?i:\\b(return)\\b)","captures":{"1":{"name":"keyword.control.flow.return.brs"}}},"loop_keywords":{"name":"keyword.control.loop.brs","match":"(?i:(?\u003c!\\.)(continue\\s+(for|while)\\b))"},"m_and_global":{"match":"(?i:(?\u003c!\\.)\\b(m|global|super)\\b)","captures":{"1":{"name":"keyword.other.this.brs"}}},"method":{"match":"(?i:(?:(public|protected|private)\\s+)?(?:(override)\\s+)?((?:sub|function)[^\\w])(?:\\s+([a-z_][a-z0-9_]*))?)","captures":{"1":{"name":"storage.modifier.brs"},"2":{"name":"storage.modifier.brs"},"3":{"name":"keyword.declaration.function.brs"},"4":{"name":"entity.name.function.brs"}}},"namespace_declaration":{"begin":"(?i:(namespace))\\s+","end":"[\\s'\\n]","patterns":[{"name":"entity.name.type.namespace.brs","match":"(?i:([a-z0-9_]+))"},{"name":"punctuation.accessor.brs","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.namespace.brs"}}},"non_identifier_keywords":{"match":"(?i:[^\\.\\w\\\"](then|stop|run|end|each|next|throw)(?!(\\s*:)|[\\d\\w_]))","captures":{"1":{"name":"keyword.control.brs"}}},"object_properties":{"match":"(?i:(?\u003c=\\.)([a-z0-9_][a-z0-9_\\$%!#\u0026]*))","captures":{"1":{"name":"variable.other.object.property.brs"}}},"operators":{"name":"keyword.operator.brs","match":"=|\u003e=|\u003czz|\u003e|\u003c|\u003c\u003e|\\+|-|\\*|\\/|\\^|\u0026|\\b(?i:(And|Not|Or|Mod))\\b"},"preprocessor_keywords":{"patterns":[{"name":"keyword.preprocessor.const.brs","match":"(?i:(#[ \t]*const))"},{"name":"keyword.preprocessor.if.brs","match":"(?i:(#[ \t]*if))"},{"name":"keyword.preprocessor.elseif.brs","match":"(?i:(#[ \t]*else[ \t]*if))"},{"name":"keyword.preprocessor.endif.brs","match":"(?i:(#[ \t]*end[ \t]*if))"},{"name":"keyword.preprocessor.else.brs","match":"(?i:(#[ \t]*else))"},{"name":"keyword.preprocessor.error.brs","match":"(?i:(#[ \t]*error))"}]},"primitive_literal_expression":{"patterns":[{"name":"string.quoted.double.brs","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.brs","match":"\"\""},{"include":"#class_roku_builtin"}]},{"name":"constant.numeric.brs","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"},{"patterns":[{"name":"constant.language.boolean.true.brs","match":"(?i)\\b(true)\\b"},{"name":"constant.language.boolean.false.brs","match":"(?i)\\b(false)\\b"}]},{"match":"(?i:\\b(invalid)\\b)","captures":{"1":{"name":"constant.language.null.brs"}}}]},"program_statements":{"name":"keyword.control.brs","match":"(?i:(?\u003c!\\.)(if|else\\s*if|else|print|library|while|for\\s+each|for|end\\s*for|exit\\s+for|end\\s*while|exit\\s*while|end\\s*if|to|step|in|goto|rem|as)\\b)"},"regex":{"patterns":[{"name":"string.regexp.brs","begin":"(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}},{"name":"string.regexp.brs","begin":"((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gmixsuXUAJ]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))","end":"(/)([gmixsuXUAJ]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.brs"},"2":{"name":"keyword.other.brs"}}}]},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"match":"\\\\[1-9]\\d*|\\\\k\u003c([a-zA-Z_$][\\w$]*)\u003e","captures":{"0":{"name":"keyword.other.back-reference.regexp"},"1":{"name":"variable.other.regexp"}}},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!)|(\\?\\|)|(\\?\u003c=)|(\\?\u003c!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"},"5":{"name":"meta.assertion.look-behind.regexp"},"6":{"name":"meta.assertion.negative-look-behind.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((?:(\\?[:\u003e])|(?:\\?\u003c([a-zA-Z_$][\\w$]*)\u003e))?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"region_comment":{"match":"(?i:^\\s*('\\s*#region)(?:(\\s+.*)?))$","captures":{"1":{"name":"keyword.preprocessor.region.brs"},"2":{"name":"string.unquoted.preprocessor.message.brs"}}},"rem_comment":{"name":"comment.line.rem.brs","match":"^\\s*?(?i:rem\\s.*)$","captures":{"1":{"name":"punctuation.definition.comment.brs"}}},"storage_types":{"match":"(?i:\\b(boolean|integer|longinteger|float|double|string|object|function|sub|interface|dynamic|brsub|dim|const)\\b)","captures":{"1":{"name":"storage.type.brs"}}},"support_builtin_functions":{"name":"support.function.brs","match":"(?i:\\b(GetLastRun(RuntimeError|CompileError)|Rnd|Box|Type|objfun|pos|eval)\\b)"},"support_component_functions":{"name":"support.function.component.brs","match":"(?i:\\b(R(ight|e(set(Index)?|ad(B(yte(IfAvailable)?|lock)|File|Line)?|move(Head|Tail|Index)))|Ge(nXML(Header)?|t(Res(ource|ponse(Headers|Code))|X|M(i(nute|llisecond)|o(nth|de(l)?)|essage)|B(yte(sPerBlock|Array)|o(o(tVersion(Number)?|lean)|dy))|S(t(orageCardInfo|a(ndards|tusByte)|ring(Count)?)|i(zeInMegabytes|gnedByte)|ource(Host|Identity|Port)|ub|ec(tionList|ond)|afe(X|Height|Y|Width))|H(o(stName|ur)|e(ight|ad))|Y(ear)?|N(extArticle|ame(dElements)?)|C(hildElements|ontrols|urrent(Standard|Con(trolValue|fig)|Input))|T(i(tle|me(Server|Zone))|o(String|File)|ext|ail)|I(n(t|dex|puts)|dentity)|ZoneDateTime|D(e(scription|vice(BootCount|Name|U(niqueId|ptime)))|a(y(OfWeek)?|ta))|U(se(dInMegabytes|rData)|tcDateTime)|Ent(ityEncode|ry)|V(ersion(Number)?|alue)|KeyList|F(ileSystemType|loat|a(ilureReason|mily)|reeInMegabytes)|W(holeState|idth)|LocalDateTime|Attributes))|M(id|D5|ap(StereoOutput(Aux)?|DigitalOutput))|Boolean|S(h(ift|ow)|canWiFi|t((Clear|Display)?|art|r(i(ng)?)?)|implify|ubtract(Milliseconds|Seconds)|e(nd(RawMessage|B(yte|lock)|Line)?|t(R(ollOverRegion|e(s(ize|olution)|c(tangle|eiveEol)))|X|M(i(n(imumTransferRate|ute)|llisecond)|o(nth|de(CaseSensitive)?)|ultiscreenBezel)|B(yteEventPort|o(olean|dy)|a(ckground(Bitmap|Color)|udRate))|S(t(andard|ring)|ub|e(ndEol|cond)|afeTextRegion)|H(o(stName|ur)|eight)|Y(ear)?|Name|C(hannelVolumes(Aux)?|ontrolValue|ursor(Bitmap|Pos(ition)?))|Time(Server|Zone)?|I(n(t|put)|P4(Gateway|Broadcast|Netmask|Address))|OutputState|D(HCP|omain|e(stination|fault(Mode|Transistion))|a(y(OfWeek)?|te(Time)?))|U(ser(Data|AndPassword)|tcDateTime|rl)|P(o(werSaveMode|rt)|assword|roxy)|E(ntry|cho|ol)|V(iewMode|olume(Aux)?)|F(o(nt|r(egroundColor|groundColor))|l(oat|ashRate))|W(holeState|i(dth|Fi(Passphrase|ESSID)))|L(ineEventPort|o(calDateTime|opMode)|auguage)|Audio(Mode(Aux)?|Stream(Aux)?|Output(Aux)?))|ek(Relative|ToEnd|Absolute)))|H(ide|ead|asAttribute)|N(ormalize|ext)|C(hr|ount|urrentPosition|l(s|ear(Region|Events)?))|T(o(Base64String|HexString|kenize|AsciiString)|estInter(netConnectivity|face)|rim)|I(s(MousePresent|N(ext|ame)|InputActive|Empty|Valid|LittleEndianCPU)|n(str|te(ger)|valid))|Object|D(ynamic|isplay(Preload|File(Ex)?)|o(uble|esExist)|elete)|U(n(shift|pack)|Case)|P(o(st(Message|From(String|File))|p(String(s)?)?)|ush(String)?|eek|lay(StaticImage|File)?|arse(String|File)?|reloadFile(Ex)?)|E(nable(R(ollover|egion)|Cursor|Input|Output)|xists)|Void|F(indIndex|unction|l(oat|ush)|rom(Base64String|HexString|AsciiString))|W(hile|aitMessage|rite(File)?)|L(ookup|e(n|ft))|A(s(ync(GetTo(String|File)|Head|PostFrom(String|File)|Flush)|c)?|tEof|dd(Re(ctangle(Region|_region)|place)|Milliseconds|BodyElement|Seconds|Head(er)?|CircleRegion|Tail|DNSServer|E(vent|lement(WithBody)?)|Attribute)|pp(end(String|File)?|ly))|ToStr)\\b)"},"support_functions":{"patterns":[{"include":"#support_builtin_functions"},{"include":"#support_global_functions"},{"include":"#support_global_string_functions"},{"include":"#support_global_math_functions"},{"include":"#support_component_functions"}]},"support_global_functions":{"name":"support.function.brs","match":"(?i:\\b(Re(adAsciiFile|bootSystem)|GetInterface|MatchFiles|Sleep|C(opyFile|reate(Directory|Object))|Delete(Directory|File)|UpTime|FormatDrive|ListDir|W(ait|riteAsciiFile))\\b)"},"support_global_math_functions":{"name":"support.function.brs","match":"(?i:\\b(S(in|qr|gn)|C(sng|dbl|os)|Tan|Int|Exp|Fix|Log|A(tn|bs))\\b)"},"support_global_string_functions":{"name":"support.function.brs","match":"(?i:\\b(Right|Mid|Str(i(ng(i)?)?)?|Chr|Instr|UCase|Val|Asc|L(Case|e(n|ft)))\\b)"},"template_string":{"begin":"(`)","end":"(`)","patterns":[{"begin":"(\\$\\{)","end":"(\\})","patterns":[{"include":"#entire_language"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.brs"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end"}}},{"name":"string.template.brs","match":"(.)"}],"beginCaptures":{"1":{"name":"string.template.brs"}},"endCaptures":{"1":{"name":"string.template.brs"}}},"try_catch":{"name":"keyword.control.trycatch.brs","match":"(?i:\\b(try|catch|(end[ \\t]*try))\\b)"},"type_expression":{"patterns":[{"match":"(?i)(boolean|integer|longinteger|float|double|string)","captures":{"1":{"name":"storage.type.brs"}}},{"match":"(?i)\\b([a-z0-9_]+)","captures":{"1":{"name":"support.type.brs entity.name.type.brs"}}}]},"variables_and_params":{"match":"(?i:(?:\\b(new)\\s)?\\b(?\u003c!\\.)([a-z_][a-z0-9_\\$%!#]*)\\b)","captures":{"1":{"name":"keyword.operator.new.brs"},"2":{"name":"entity.name.variable.local.brs"}}},"vscode_rale_tracker_entry_comment":{"name":"keyword.preprocessor.brs","match":"('\\s*vscode_rale_tracker_entry[^\\S\\r\\n]*)"}}}
@@ -1 +1 @@
1
- {"name":"COBOL","scopeName":"source.cobol","patterns":[{"name":"token.info-token.cobol","match":"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)"},{"match":"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.newpage"}}},{"match":"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.fixed"}}},{"match":"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.newpage"}}},{"name":"constant.numeric.cobol","match":"^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$"},{"match":"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.fixed"}}},{"match":"(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)","captures":{"1":{"name":"constant.cobol"},"2":{"name":"comment.line.cobol.fixed"}}},{"match":"^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"variable.other.constant"}}},{"match":"^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"variable.other.constant"},"3":{"name":"keyword.identifers.cobol"}}},{"match":"(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)","captures":{"1":{"name":"constant.cobol"},"2":{"name":"comment.line.cobol.newpage"}}},{"name":"comment.line.cobol.fixed","match":"^\\*.*$"},{"match":"((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"entity.name.function.cobol"},"4":{"name":"keyword.control.directive.conditional.cobol"}}},{"match":"((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))","captures":{"1":{"name":"entity.name.function.preprocessor.cobol"},"2":{"name":"storage.modifier.import.cobol"},"3":{"name":"punctuation.begin.bracket.round.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.end.bracket.round.cobol"}}},{"match":"((?i:\\$\\s*set\\s+)(ilusing)(\")(.*)(\"))","captures":{"1":{"name":"entity.name.function.preprocessor.cobol"},"2":{"name":"storage.modifier.import.cobol"},"3":{"name":"punctuation.definition.string.begin.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.definition.string.begin.cobol"}}},{"match":"((?i:\\$set))\\s+(\\w+)\\s*(\")(\\w*)(\")","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"punctuation.definition.string.begin.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.definition.string.begin.cobol"}}},{"match":"((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"punctuation.begin.bracket.round.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.end.bracket.round.cobol"}}},{"match":"(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$","captures":{"0":{"name":"keyword.control.directive.conditional.cobol"},"1":{"name":"invalid.illegal.directive"},"2":{"name":"comment.line.set.cobol"}}},{"match":"(\\$region|\\$end-region)(.*$)","captures":{"1":{"name":"keyword.control.directive.cobol"},"2":{"name":"entity.other.attribute-name.preprocessor.cobol"}}},{"name":"invalid.illegal.iscobol","begin":"\\$(?i:doc)(.*$)","end":"\\$(?i:end-doc)(.*$)"},{"name":"invalid.illegal.meta.preprocessor.cobolit","match":"\u003e\u003e\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$"},{"match":"((((\u003e\u003e|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"entity.name.function.preprocessor.cobol"}}},{"match":"(\\*\u003e)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)","captures":{"1":{"name":"comment.line.scantoken.cobol"},"2":{"name":"keyword.cobol"},"3":{"name":"string.cobol"}}},{"name":"comment.line.modern","match":"(\\*\u003e.*$)"},{"name":"strong comment.line.set.acucobol","match":"(\u003e\u003e.*)$"},{"name":"constant.numeric.integer.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])'[[:xdigit:]]*'"},{"name":"invalid.illegal.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])'.*'"},{"name":"constant.numeric.integer.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])\"[[:xdigit:]]*\""},{"name":"invalid.illegal.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])\".*\""},{"name":"constant.numeric.integer.boolean.cobol","match":"[bB]\"[0-1]\""},{"name":"constant.numeric.integer.boolean.cobol","match":"[bB]'[0-1]'"},{"name":"constant.numeric.integer.octal.cobol","match":"[oO]\"[0-7]*\""},{"name":"invalid.illegal.octal.cobol","match":"[oO]\".*\""},{"name":"meta.symbol.cobol.forced","match":"(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)"},{"name":"comment.block.cobol.remark","begin":"((?\u003c![-_a-zA-Z0-9()-])(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(\\.|$))","end":"(?=((?\u003c![-_])(?i:remarks|author|date-written|source-computer|object-computer|installation|date-compiled|special-names|security|environment\\s+division|data\\s+division|working-storage\\s+section|input-output\\s+section|linkage\\s+section|procedure\\s+division|local-storage\\s+section)|^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*]\\*.*$|^\\+$))","patterns":[{"name":"constant.numeric.cobol","match":"(^[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ])"},{"name":"keyword.identifiers.cobol","match":"(?i:with|debugging|mode)"}],"beginCaptures":{"0":{"name":"keyword.identifiers.cobol"}}},{"name":"constant.numeric.cobol","match":"(?\u003c=(\\(|\\[))((\\-\\+)*\\s*[0-9 ,\\.\\+\\-\\*\\/]+)(?=(\\)|\\]))","captures":{"1":{"name":"keyword.start.bracket.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"keyword.end.bracket.cobol"}}},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"name":"constant.language.cobol","match":"(?\u003c![-_])(?i:true|false|null|nulls)(?![0-9A-Za-z_-])"},{"name":"constant.language.figurative.cobol","match":"(?\u003c![-_])(?i:zeroes|alphabetic-lower|alphabetic-upper|alphanumeric-edited|alphabetic|alphabet|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\s+|\\.|,|\\))"},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.sql","begin":"(?i:exec\\s+sqlims|exec\\s+sql)","end":"(?i:end\\-exec)","patterns":[{"name":"comment.line.sql","match":"(^\\s*\\*.*)$"},{"name":"variable.cobol","match":"(\\:([0-9a-zA-Z\\-_])*)"},{"include":"source.sql"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.cics","begin":"(?i:exec\\s+cics)","end":"(?i:end\\-exec)","patterns":[{"name":"meta.symbol.cobol","match":"(\\()"},{"include":"#cics-keywords"},{"include":"#string-double-quoted-constant"},{"include":"#string-quoted-constant"},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"name":"variable.cobol","match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.dli","begin":"(?i:exec\\s+dli)","end":"(?i:end\\-exec)","patterns":[{"name":"meta.symbol.cobol","match":"(\\()"},{"include":"#dli-keywords"},{"include":"#string-double-quoted-constant"},{"include":"#string-quoted-constant"},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"name":"variable.cobol","match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.sql","begin":"(?i:exec\\s+sqlims)","end":"(?i:end\\-exec)","patterns":[{"name":"variable.cobol","match":"(\\:([a-zA-Z\\-])*)"},{"include":"source.sql"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.sql","begin":"(?i:exec\\s+ado)","end":"(?i:end\\-exec)","patterns":[{"name":"variable.cobol","match":"(\\:([a-zA-Z\\-])*)"},{"include":"source.sql"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.html","begin":"(?i:exec\\s+html)","end":"(?i:end\\-exec)","patterns":[{"include":"text.html.basic"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.java","begin":"(?i:exec\\s+java)","end":"(?i:end\\-exec)","patterns":[{"include":"source.java"}]},{"match":"(\")(CBL_.*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"match":"(\")(PC_.*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.double.cobol","begin":"\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"match":"(\\')(CBL_.*)(\\')","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"match":"(\\')(PC_.*)(\\')","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.single.cobol","begin":"'","end":"('|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.double.cobol","begin":"(?\u003c![\\-\\w])[gGzZ]\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.single.cobol","begin":"(?\u003c![\\-\\w])[gGzZ]'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.double.cobol","begin":"(?\u003c![\\-\\w])[gGnN]\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.single.cobol","begin":"(?\u003c![\\-\\w])[gGnN]'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.utf8.double.cobol","begin":"(?\u003c![\\-\\w])[uU]\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.utf8.single.cobol","begin":"(?\u003c![\\-\\w])[uU]'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"keyword.identifiers.cobol","match":"(?\u003c![-_])(?i:id\\s+division|identification\\s+division|identification|id|property-id|getter|setter|entry|function-id|end\\s+attribute|attribute|interface-id|indexer-id|factory|ctl|class-control|options|environment\\s+division|environment-name|environment-value|environment|configuration\\s+section|configuration|decimal-point\\s+is|decimal-point|console\\s+is|call-convention|special-names|cursor\\s+is|update|picture\\s+symbol|currency\\s+sign|currency|repository|input-output\\s+section|input-output|file\\s+section|file-control|select|optional|i-o-control|data\\s+division|working-storage\\s+section|working-storage|section|local-storage|linkage\\s+section|linkage|communication|report|screen\\s+section|object-storage|object\\s+section|class-object|fd|rd|cd|sd|printing|procedure\\s+division|procedure|division|references|debugging|end\\s+declaratives|declaratives|end\\s+static|end\\s+factory|end\\s+class-object|based-storage|size|font|national-edited|national)(?![0-9A-Za-z_-])"},{"match":"(?\u003c![-_])((?i:valuetype-id|operator-id|method-id|method|property-id|attribute-id|enum-id|iterator-id|class-id|program-id|operator-id|end\\s+program|end\\s+valuetype|extension))[\\.]*[\\s]+([a-zA-Z0-9_-]*)","captures":{"1":{"name":"keyword.verb.cobol"},"2":{"name":"entity.name.function.cobol"}}},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:implements|inherits|constraints|constrain)(?=\\s|\\.)"},{"name":"keyword.identifiers.cobol","match":"(?\u003c![-_])(?i:end\\s+enum|end\\s+interface|end\\s+class|end\\s+property|end\\s+method|end\\s+object|end\\s+iterator|end\\s+function|end\\s+operator|end\\s+program|end\\s+indexer|create|reset|instance|delegate|end-delegate|delegate-id|declare|exception-object|as|stop\\s+iterator|stop\\s+run|stop)(?=\\s|\\.|,|\\))"},{"name":"keyword.identifiers.cobol","match":"\\s+(?i:attach\\s+method|attach\\s+del|attach|detach\\s+del|detach\\s+method|detach|method|del)(?=\\s|\\.|$)"},{"name":"keyword.other.sync.cobol","match":"\\s+(?i:sync\\s+(?i:on))(?=\\s|\\.)"},{"name":"keyword.control.catch-exception.cobol","match":"\\s+(?i:try|finally|catch|end-try|throw)(?=\\s|\\.|$)"},{"name":"keyword.otherverb.cobol","match":"(?\u003c![-_])(?i:select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|chaining|yielding|\\+\\+include|copy|replace)(?=\\s)"},{"name":"storage.type.dynamiclength.cobol","match":"(?i:dynamic)\\s+(?i:length)(?=\\s|\\.)"},{"name":"keyword.identifers.cobol","match":"(?\u003c![-_])(?i:assign|external|prototype|organization|organisation|indexed|column|plus|line\\*s*sequential|sequential|access|dynamic|relative|label|block|contains|standard|records|record\\s+key|record|is|alternate|duplicates|reel|tape|terminal|disk\\sfilename|disk|disc|recording\\smode|mode|random)(?=\\s|\\.)"},{"name":"support.function.cobol","match":"(?\u003c![-_])(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|substitute-case|substitute|seconds-from-formatted-time|seconds-past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)(?=\\s|\\.|\\(|\\))"},{"match":"(?\u003c![-_])(?i:DFHRESP|DFHVALUE)(\\s*\\(\\s*)([a-zA-Z]*)(\\s*\\))","captures":{"0":{"name":"support.function.cics.cobol"},"1":{"name":"punctuation.definition.string.end.cobol"},"2":{"name":"keyword.identifers.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:function)(?=\\s|\\.)"},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:end-accept|end-add|end-sync|end-compute|end-delete|end-display|end-divide|end-set|end-multiply|end-of-page|end-read|end-receive|end-return|end-rewrite|end-search|end-start|end-string|end-subtract|end-unstring|end-write|program|class|interface|enum|interface)(?![0-9A-Za-z_-])"},{"name":"keyword.other.cobol","match":"(?\u003c![-_])(?:by value|by reference|by content|property-value)(?![0-9A-Za-z_-])"},{"name":"keyword.identifers.cobol","match":"(?\u003c![-_])(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|source|control|full|required|of|input|output|i-o|extend|file|error|exception|overflow|goto|off|on|proceed|procedures|procedure|through|invalid|data|normal|eop|returning|to|for|giving|into|by|params|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|common|initial|resident|reference|content|are\\sstandard|are|renames|like|format\\stime|values|omitted|value|constant|ascending|descending|key|retry|until|varying|with|no|advancing|up|down|uccurs|ignore\\s+lock|lock|length|delimited|count|delimiter|redefines|from\\s+console|from\\s+command-line|from\\s+user\\s+name|from\\s+day\\s+yyyyddd|from\\s+day|from\\s+time|from\\s+day-of-week|from\\s+escape|from\\s+day\\s+yyyyddd|from\\s+date\\s+yyyymmdd|from\\s+date|from|raising|crt\\s+status|status|class|upon\\s+crt|upon|lines|columns|step|linage|auto|line|position|col|reports|code-set|reporting|arithmetic|localize|program|class|interface|in|at\\s+end|page|name)(?![0-9A-Za-z_-])"},{"match":"(?\u003c![-_])(?i:type|new)\\s+([a-zA-Z][a-zA-Z0-9\\$\\-\\._]*|[a-zA-Z])(?=\\.$)","captures":{"0":{"name":"keyword.verb.cobol"},"1":{"name":"storage.type.cobol"}}},{"name":"storage.type.cobol","match":"(?\u003c![-_])(?i:string)(?=\\s+value|\\.)"},{"name":"storage.type.cobol","match":"(?\u003c![-_])(?i:bit|byte|binary-char|binary-char-unsigned|binary-short|binary-short-unsigned|binary.long|binary-c-long|binary-long-unsigned|binary-long|binary-double|binary-double-unsigned|float-short|float-extended|float-long|bit|condition-value|characters|character\\s+type|character|comma|crt|decimal|object\\+sreference|object-reference|object|list|dictionary|unsigned)(?=\\s|\\.|,|\\]|\\[)"},{"name":"keyword.operator-id.cobol","match":"(operator-id\\s+[+\\-\\*\\/])","captures":{"1":{"name":"keyword.other.verb.cobol"},"2":{"name":"meta.symbol.cobol"}}},{"match":"(?i:self)(\\:\\:)([0-9a-zA-Z_\\-\\.]*)(?=\\.$)","captures":{"1":{"name":"punctuation.accessor.cobol.b3"},"2":{"name":"entity.name.function.b3"}}},{"match":"(\\:\\:)([0-9a-zA-Z_\\-\\.]*)","captures":{"1":{"name":"punctuation.accessor.cobol"},"2":{"name":"entity.name.function.cobol"}}},{"match":"(?\u003c![-_])(?i:type)\\s+([0-9a-zA-Z\\.]*)","captures":{"0":{"name":"keyword.verb.cobol.aa"},"1":{"name":"storage.type.cobol.bb"}}},{"name":"keyword.control.cobol","match":"(?\u003c![-_])(?i:if|else|end-if|exit\\s+iterator|exit\\s+program|exit\\s+method|evaluate|end-evaluate|exit\\s+perform|perform|end-perform|when\\s+other|when|continue|call|end-call|chain|end-chain|invoke|end\\s+invoke|go\\s+to|go|sort|merge|use|xml|parse|stop\\s+run|goback\\s+returning|goback|raise|exit\\s+function|exit\\sparagraph|await)(?![0-9A-Za-z_-])"},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)[-|+]","captures":{"1":{"name":"storage.type.picture10.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"storage.type.picture10.cobol"},"4":{"name":"constant.numeric.cobol"}}},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)","captures":{"1":{"name":"storage.type.picture9.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"storage.type.picture9.cobol"},"4":{"name":"constant.numeric.cobol"}}},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV\\.][-+s\\*$09aAbBsSnNxXuUzZ/,]*[0-9\\.()])*","captures":{"1":{"name":"storage.type.picture8.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"storage.type.picture8.cobol"}}},{"name":"storage.type.picture7.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*"},{"name":"storage.type.picture6.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*"},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxuUXzZ/,.]*)\\(([0-9]*)\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*","captures":{"1":{"name":"storage.type.picture5.cobol"},"2":{"name":"constant.numeric.cobol"}}},{"name":"storage.type.picture4.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpNNxXuUzZ/,.]*\\([0-9]*\\)"},{"name":"storage.type.picture3.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\\([0-9]*\\)"},{"name":"storage.type.picture2.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*"},{"name":"storage.type.picture1.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+\\*$9aAbBsSnpPNxXuUzZ/,.vV]*"},{"match":"((?\u003c![-_])(?i:binary|computational-4|comp-4|computational-5|comp-5))\\(([0-9]*)\\)","captures":{"1":{"name":"invalid.illegal.keyword.verb.acu.cobol"},"2":{"name":"invalid.illegal.constant.numeric.integer"}}},{"name":"support.function.cbltypes.cobol","match":"(?i:cblt-x1-compx-const|cblt-x2-compx-const|cblt-x4-compx-const|cblt-alphanum-const|cblt-x9-compx|cblt-x8-compx|cblt-x8-comp5|cblt-x4-compx|cblt-x4-comp5|cblt-x2-compx|cblt-x2-comp5|cblt-x1-compx|cblt-x1-comp5|cblt-x1|cblt-vfile-status|cblt-vfile-handle|cblt-sx8-comp5|cblt-sx4-comp5|cblt-sx2-comp5|cblt-sx1-comp5|cblt-subsys-params|cblt-splitjoin-buf|cblt-screen-position|cblt-rtncode|cblt-request-context|cblt-reqhand-service-info|cblt-reqhand-service-funcs|cblt-reqhand-response|cblt-reqhand-funcs|cblt-prog-info-params|cblt-prog-info-arg-info|cblt-printer-properties|cblt-printer-name|cblt-printer-info|cblt-printer-default|cblt-ppointer|cblt-pointer|cblt-os-ssize|cblt-os-size|cblt-os-offset|cblt-os-info-params|cblt-os-flags|cblt-node-name|cblt-nls-msg-params|cblt-nls-msg-number-pair|cblt-nls-msg-ins-struct|cblt-nls-msg-buffer|cblt-mouse-shape|cblt-mouse-rect|cblt-mouse-pos|cblt-mouse-event|cblt-mem-validate-param|cblt-idp-exit-service-funcs|cblt-idp-exit-info|cblt-HWND|cblt-HINSTANCE|cblt-get-scr-line-draw-buffer|cblt-get-scr-graphics-buffer|cblt-generic-attr-value|cblt-generic-attr-rgb-values|cblt-generic-attr-information|cblt-file-status|cblt-fileexist-buf|cblt-exit-params|cblt-exit-info-params|cblt-cancel-proc-params|cblt-bytestream-handle|cblt-alphanum)"},{"name":"storage.type.picture.cobol","match":"(?\u003c![-_])(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|group-usage|usage\\sis\\sdisplay|usage\\sis\\sfont|usage\\s+display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|display\\s+blank\\s+when|blank\\s+when|blank\\s+screen|blank|usage\\sis|is\\spartial|usage|justified|just|right|signed|trailing\\s+separate|sign|seperate|sql)(?=\\s|\\.|\\))"},{"name":"storage.type.length.cobol","match":"(?i:byte-length)\\s+[0-9]+"},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:accept|add|address|allocate|cancel|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|evaluate|exhibit|named|exit|free|generate|go\\s+to|initialize\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\s+run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|purge|ready|read|kept|receive|release|return|rewrite|rounded|rollback|search|send|sort|collating\\s+sequence|collating|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?![0-9A-Za-z_-])"},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:thread-local)(?![0-9A-Za-z_-])"},{"name":"keyword.screens.cobol","match":"(\\s+|^)(?i:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)(?![0-9A-Za-z_-])"},{"name":"invalid.illegal.screens.acu.cobol","match":"(\\s+|^)(?i:bold|high|lowlight|low|standard|background-high|background-low|background-standard)(?![0-9A-Za-z_-])"},{"name":"storage.modifier.cobol","match":"(?\u003c![-_])(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property|async-void|async-value|async)(?=\\s|\\.)"},{"name":"keyword.operator.cobol","match":"=|\u003c|\u003e|\u003c=|\u003e=|\u003c\u003e|\\+|\\-|\\*|\\/|(?\u003c![-_])(?i:b-and|b-or|b-xor|b-exor|b-not|b-left|b-right|and|or|equals|equal|greater\\s+than|less\\s+than|greater)(?![0-9A-Za-z_-])"},{"name":"keyword.verb.cobol","match":"(?i:not\\s+at\\s+end)(?![0-9A-Za-z_-])"},{"name":"keyword.operator.cobol","match":"(?\u003c![-_])(?i:not)(?![0-9A-Za-z_-])"},{"name":"support.type.cobol","match":"(?\u003c![-_])(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|sysprint|syslist|syslst|printer|syserr|console|c01|c02|c03|c04|c05|c06|c07|c08|c09|c10|c11|c12|formfeed|switch-0|switch-10|switch-11|switch-12|switch-13|switch-13|switch-14|switch-15|switch-1|switch-2|switch-3|switch-4|switch-5|switch-6|switch-7|switch-8|switch-9|sw0|sw11|sw12|sw13|sw14|sw15|sw1|sw2|sw3|sw4|sw5|sw6|sw7|sw8|sw9|sw10|lc_all|lc_collate|lc_ctype|lc_messages|lc_monetary|lc_numeric|lc_time|ucs-4|utf-8|utf-16)(?![0-9A-Za-z_-])"},{"name":"keyword.xml.cobol","match":"(?\u003c![-_])(?i:end-xml|processing.*procedure|xml\\sparse|xml|xml-information|xml-text|xml-schemal|xml-declaration)(?![0-9A-Za-z_-])"},{"name":"keyword.json.cobol","match":"(?\u003c![-_])(?i:json\\s+generate|json|end-json|name\\sof)(?![0-9A-Za-z_-])"},{"name":"invalid.illegal.acu.cobol","match":"(?\u003c![-_])(?i:modify|inquire|tab|title|event|center|label-offset|cell|help-id|cells|push-button|radio-button|page-layout-screen|entry-field|list-box|label|default-font|id|no-tab|unsorted|color|height|width|bind|thread|erase|modeless|scroll|system|menu|title-bar|wrap|destroy|resizeable|user-gray|large-font|newline|3-d|data-columns|display-columns|alignment|separation|cursor-frame-width|divider-color|drag-color|heading-color|heading-divider-color|num-rows|record-data|tiled-headings|vpadding|centered-headings|column-headings|self-act|cancel-button|vscroll|report-composer|clsid|primary-interface|active-x-control|default-interface|default-source|auto-minimize|auto-resize|resource|engraved|initial-state|frame|acuactivexcontrol|activex-res|grid|box|message|namespace|class-name|module|constructor|version|strong|culture|method|handle|exception-value|read-only|dividers|graphical|indexed|termination-value|permanent|boxed|visible|centered|record-position|convert)(?=\\s|\\.|,|;|$)"},{"name":"invalid.illegal.netcobol.cobol","match":"(?\u003c![-_])(?i:actual|auto|automatic|based-storage|complex|connect|contained|core-index|db-access-control-key|db-data-name|db-exception|db-record-name|db-set-name|db-status|dead-lock|endcobol|end-disable|end-enable|end-send|end-transceive|eos|file-limits|file-limit|formatted|sort-status|usage-mode)(?=\\s|\\.|,|;|$)"},{"name":"support.type.cobol.acu strong","match":"(?\u003c![-_])(?i:System-Info|Terminal-Info)(?![0-9A-Za-z_-])"},{"name":"invalid.illegal.cobol","match":"(?\u003c![-_])(?i:alter)(?=\\s|\\.)"},{"name":"keyword.ibmreserved.cobol","match":"(?\u003c![-_])(?i:apply|areas|area|clock-units|code|com-reg|controls|dbcs|destination|detail|display-1|ending|every|insert|kanjikey|last|left|less|limits|limit|memory|metaclass|modules|more-labels|multiple|native_binary|native|negative|number|numeric-edited|other|padding|password|pf|ph|postive|processing|queue|recording|reload|removal|rerun|reserve|reserved|rewind|segment-limit|segment|separate|sequence|skip1|skip2|skip3|standard-1|standard-2|sub-queue-1|sub-queue-2|sub-queue-3|sum|symbolic|synchronized|sync|table|test|text|than|top|trace|trailing|unit|words|write-only|at|basis|beginning|bottom|cbl|cf|ch|de|positive|egcs|egi|emi|end|reversed|rf|rh|run|same|order|heading|esi)(?![0-9A-Za-z_-])"},{"name":"strong keyword.potential.reserved.cobol","match":"(?\u003c![-_])(?i:active-class|aligned|anycase|boolean|cols|col|condition|ec|eo|system-default|function-pointer)(?![0-9A-Za-z_-])"},{"name":"keyword.filler.cobol","match":"(?i:filler)"},{"name":"variable.language","match":"(?\u003c![-_])(?i:address-of|date|day-of-week|day|debug-content|debug-item|debug-line|debug-item|debug-sub-1|debug-sub-2|debug-sub-3|shift-in|shift-out|sort-control|sort-core-size|sort-file-size|sort-message|sort-return|sort-mode-size|sort-return|tally|time|when-compiled|line-counter|page-counter|return-code|linage-counter|debug-line|debug-name|debug-contents|json-code|json-status|xml-code|xml-event|xml-information|xml-namespace-prefix|xml-namespace|xml-nnamespace-repfix|xml-nnamespace|xml-ntext|jnienvptr)(?![0-9A-Za-z_-])"},{"name":"storage.type.sql.picture.cobol","match":"(?\u003c![-_])(?i:shortint1|shortint2|shortint3|shortint4|shortint5|shortint6|shortint7|longint1|longint2|longint3|longint4|longint5|longint6|bigint1|bigint2|blob-locator|clob-locator|dbclob-locator|dbclob-file|blob-file|clob-file|clob|dbclob|blob|varbinary|long-varbinary|time-record|timestamp-record|timestamp-offset-record|timestamp-offset|timestamp|rowid|xml|long-varchar)(?=\\s|\\.|\\)|\\()"},{"name":"keyword.other.self.cobol","match":"(?\u003c![-_])(?i:self)"},{"name":"keyword.other.super.cobol","match":"(?\u003c![-_])(?i:super)"},{"name":"constant.numeric.cobol","match":"(^[0-9][0-9][0-9][0-9][0-9][0-9])"},{"match":"(\\()([0-9]*)(:)([0-9]*)(\\))","captures":{"1":{"name":"meta.symbol.cobol"},"2":{"name":"constant.numeric.integer"},"3":{"name":"meta.symbol.cobol"},"4":{"name":"constant.numeric.integer"},"5":{"name":"meta.symbol.cobol"}}},{"name":"meta.symbol.cobol","match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))"}],"repository":{"cics-keywords":{"name":"keyword.verb.cics","match":"(?\u003c![\\-\\w])(?i:abcode|abdump|abend|abort|abprogram|abstime|accum|acee|acqactivity|acqprocess|acquactivity|action|activity|activityid|actpartn|add|address|after|aid|alarm|all|allocate|alter|alternate|altscrnht|altscrnwd|and|anykey|aplkybd|apltext|applid|as|asa|asis|asktime|asraintrpt|asrakey|asrapsw|asraregs|asraspc|asrastg|assign|asynchronous|at|attach|attachid|attributes|authenticate|autopage|auxiliary|base64|basicauth|below|bif|binary|bit|bodycharset|bookmark|brdata|brdatalength|brexit|bridge|browsetoken|btrans|buffer|build|burgeability|caddrlength|cancel|card|cbuff|ccsid|certificate|change|changetime|channel|char|characterset|check|chunkend|chunking|chunkno|chunkyes|cicsdatakey|ciphers|class|clear|cliconvert|client|clientaddr|clientaddrnu|clientconv|clientname|clntaddr6nu|clntipfamily|close|closestatus|clrpartn|cmdsec|cnamelength|cnotcompl|codepage|color|commarea|commonname|commonnamlen|comparemax|comparemin|complete|composite|compstatus|condition|confirm|confirmation|connect|consistent|console|container|contexttype|control|convdata|converse|convertst|converttime|convid|copy|counter|country|countrylen|create|critical|ctlchar|current|cursor|cwa|cwaleng|data|data1|data2|datalength|datalenth|dataonly|datapointer|dataset|datastr|datatoxml|datatype|datcontainer|date|dateform|datesep|datestring|day|daycount|dayofmonth|dayofweek|dayofyear|days|daysleft|day-of-week|dcounter|ddmmyy|ddmmyyyy|debkey|debrec|debug-contents|debug-item|debug-line|debug-name|debug-sub-1|debug-sub-2|debug-sub-3|deedit|default|define|defresp|defscrnht|defscrnwd|delay|delete|deleteq|delimiter|deq|destcount|destid|destidleng|detail|detaillength|dfhresp|dfhvalue|digest|digesttype|disconnect|docdelete|docsize|docstatus|doctoken|document|ds3270|dsscs|dump|dumpcode|dumpid|duprec|ecaddr|ecblist|eib|elemname|elemnamelen|elemns|elemnslen|end|endactivity|endbr|endbrowse|endfile|endoutput|enq|enter|entry|entryname|eoc|eods|eprfield|eprfrom|eprinto|eprlength|eprset|eprtype|equal|erase|eraseaup|error|errterm|esmreason|esmresp|event|eventtype|eventual|ewasupp|exception|expect|expirytime|extds|external|extract|facility|facilitytokn|false|faultactlen|faultactor|faultcode|faultcodelen|faultcodestr|faultstring|faultstrlen|fci|fct|field|file|firestatus|flength|fmh|fmhparm|for|force|formattime|formfeed|formfield|free|freekb|freemain|from|fromactivity|fromccsid|fromchannel|fromcodepage|fromdoc|fromflength|fromlength|fromprocess|frset|fulldate|function|gchars|gcodes|gds|generic|get|getmain|getnext|gmmi|groupid|gtec|gteq|handle|head|header|hex|high-value|high-values|hilight|hold|honeom|host|hostcodepage|hostlength|hosttype|hours|httpheader|httpmethod|httprnum|httpversion|httpvnum|ignore|immediate|in|increment|initimg|initparm|initparmlen|inpartn|input|inputevent|inputmsg|inputmsglen|inquire|insert|integer|interval|into|intoccsid|intocodepage|invalidcount|invite|invmpsz|invoke|invokingprog|invpartn|invreq|issue|issuer|item|iutype|journalname|jtypeid|jusfirst|juslast|justify|katakana|keep|keylength|keynumber|l40|l64|l80|label|langinuse|languagecode|last|lastusetime|ldc|ldcmnem|ldcnum|leavekb|length|lengthlist|level|lightpen|linage-counter|line|lineaddr|line-counter|link|list|listlength|llid|load|locality|localitylen|logmessage|logmode|logonlogmode|logonmsg|low-value|low-values|luname|main|map|mapcolumn|mapfail|mapheight|mapline|maponly|mapped|mappingdev|mapset|mapwidth|massinsert|maxdatalen|maxflength|maximum|maxlength|maxlifetime|maxproclen|mcc|mediatype|message|messageid|metadata|metadatalen|method|methodlength|milliseconds|minimum|minutes|mmddyy|mmddyyyy|mode|modename|monitor|month|monthofyear|move|msr|msrcontrol|name|namelength|natlang|natlanginuse|netname|newpassword|newphrase|newphraselen|next|nexttransid|nleom|noautopage|nocc|nocheck|nocliconvert|noclose|nodata|node|nodocdelete|nodump|noedit|noflush|nohandle|noinconvert|none|nooutconert|noqueue|noquiesce|nosrvconvert|nosuspend|note|notpurgeable|notruncate|nowait|nscontainer|null|nulls|numciphers|numevents|numitems|numrec|numroutes|numsegments|numtab|of|oidcard|on|opclass|open|operation|operator|operid|operkeys|operpurge|opid|opsecurity|options|or|orgabcode|organization|organizatlen|orgunit|orgunitlen|outdescr|outline|outpartn|output|owner|pa1|pa2|pa3|page|pagenum|page-counter|paging|parse|partn|partner|partnfail|partnpage|partns|partnset|pass|passbk|password|passwordlen|path|pathlength|pct|pf1|pf10|pf11|pf12|pf13|pf14|pf15|pf16|pf17|pf18|pf19|pf2|pf20|pf21|pf22|pf23|pf24|pf3|pf4|pf5|pf6|pf7|pf8|pf9|pfxleng|phrase|phraselen|piplength|piplist|point|pool|pop|portnumber|portnumnu|post|ppt|predicate|prefix|prepare|princonvid|prinsysid|print|priority|privacy|process|processtype|proclength|procname|profile|program|protect|ps|punch|purge|purgeable|push|put|qname|query|queryparm|querystring|querystrlen|queue|quote|quotes|random|rba|rbn|rdatt|read|readnext|readprev|readq|reattach|receive|receiver|recfm|record|recordlen|recordlength|reduce|refparms|refparmslen|relatesindex|relatestype|relatesuri|release|remove|repeatable|repetable|replace|reply|replylength|reqid|requesttype|resclass|reset|resetbr|resid|residlength|resource|resp|resp2|ressec|restart|restype|result|resume|retain|retcode|retcord|retriece|retrieve|return|returnprog|return-code|rewind|rewrite|ridfld|role|rolelength|rollback|route|routecodes|rprocess|rresource|rrn|rtermid|rtransid|run|saddrlength|scheme|schemename|scope|scopelen|scrnht|scrnwd|seconds|security|segmentlist|send|sender|serialnum|serialnumlen|server|serveraddr|serveraddrnu|serverconv|servername|service|session|sesstoken|set|shared|shift-in|shift-out|sigdata|signal|signoff|signon|sit|snamelength|soapfault|sort-control|sort-core-size|sort-file-size|sort-message|sort-mode-size|sort-return|sosi|space|spaces|spoolclose|spoolopen|spoolread|spoolwrite|srvconvert|srvraddr6nu|srvripfamily|ssltype|start|startbr|startbrowse|startcode|state|statelen|stationid|status|statuscode|statuslen|statustext|storage|strfield|stringformat|subaddr|subcodelen|subcodestr|subevent|subevent1|subevent2|subevent3|subevent4|subevent5|subevent6|subevent7|subevent8|sum|suspend|suspstatus|symbol|symbollist|synchronous|synclevel|synconreturn|syncpoint|sysid|tables|tally|task|taskpriority|tcpip|tcpipservice|tct|tctua|tctualeng|td|tellerid|template|termcode|termid|terminal|termpriority|test|text|textkybd|textlength|textprint|time|timeout|timer|timesep|title|to|toactivity|tochannel|tocontainer|toflength|token|tolength|toprocess|trace|tracenum|trailer|tranpriority|transaction|transform|transid|trigger|trt|true|ts|twa|twaleng|type|typename|typenamelen|typens|typenslen|unattend|uncommitted|unescaped|unexpin|unlock|until|uow|update|uri|urimap|url|urllength|userdatakey|userid|username|usernamelen|userpriority|using|validation|value|valuelength|verify|versionlen|volume|volumeleng|wait|waitcics|web|when-compiled|wpmedia1|wpmedia2|wpmedia3|wpmedia4|wrap|write|writeq|wsacontext|wsaepr|xctl|xmlcontainer|xmltodata|xmltransform|xrba|year|yyddd|yyddmm|yymmdd|yyyyddd|yyyyddmm|yyyymmdd|zero|zeroes|zeros)(?![\\-\\w])"},"dli-keywords":{"name":"keyword.verb.dli","match":"(?\u003c![\\-\\w])(?i:accept|chkp|deq|dlet|gnp|gn|gu|isrt|load|log|pos|query|refresh|repl|retrieve|rolb|roll|rols|schd|sets|setu|symchkp|term|xrst)(?![\\-\\w])"},"number-complex-constant":{"name":"constant.numeric.cobol","match":"(\\-|\\+)?((([0-9]+(\\.[0-9]+))|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\s|\\.$|,|\\))"},"number-simple-constant":{"name":"constant.numeric.cobol","match":"(\\-|\\+)?([0-9]+)(?=\\s|\\.$|,|\\))"},"string-double-quoted-constant":{"begin":"\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},"string-quoted-constant":{"name":"string.quoted.single.cobol","begin":"'","end":"('|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}}}}
1
+ {"name":"COBOL","scopeName":"source.cobol","patterns":[{"name":"token.info-token.cobol","match":"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)"},{"match":"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.newpage"}}},{"match":"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.fixed"}}},{"match":"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.newpage"}}},{"name":"constant.numeric.cobol","match":"^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$"},{"match":"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.fixed"}}},{"match":"(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)","captures":{"1":{"name":"constant.cobol"},"2":{"name":"comment.line.cobol.fixed"}}},{"match":"^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"variable.other.constant"}}},{"match":"^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))","captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"variable.other.constant"},"3":{"name":"keyword.identifers.cobol"}}},{"match":"(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)","captures":{"1":{"name":"constant.cobol"},"2":{"name":"comment.line.cobol.newpage"}}},{"name":"comment.line.cobol.fixed","match":"^\\*.*$"},{"match":"((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"entity.name.function.cobol"},"4":{"name":"keyword.control.directive.conditional.cobol"}}},{"match":"((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))","captures":{"1":{"name":"entity.name.function.preprocessor.cobol"},"2":{"name":"storage.modifier.import.cobol"},"3":{"name":"punctuation.begin.bracket.round.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.end.bracket.round.cobol"}}},{"match":"((?i:\\$\\s*set\\s+)(ilusing)(\")(.*)(\"))","captures":{"1":{"name":"entity.name.function.preprocessor.cobol"},"2":{"name":"storage.modifier.import.cobol"},"3":{"name":"punctuation.definition.string.begin.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.definition.string.begin.cobol"}}},{"match":"((?i:\\$set))\\s+(\\w+)\\s*(\")(\\w*)(\")","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"punctuation.definition.string.begin.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.definition.string.begin.cobol"}}},{"match":"((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"punctuation.begin.bracket.round.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.end.bracket.round.cobol"}}},{"match":"(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$","captures":{"0":{"name":"keyword.control.directive.conditional.cobol"},"1":{"name":"invalid.illegal.directive"},"2":{"name":"comment.line.set.cobol"}}},{"match":"(\\$region|\\$end-region)(.*$)","captures":{"1":{"name":"keyword.control.directive.cobol"},"2":{"name":"entity.other.attribute-name.preprocessor.cobol"}}},{"name":"invalid.illegal.iscobol","begin":"\\$(?i:doc)(.*$)","end":"\\$(?i:end-doc)(.*$)"},{"name":"invalid.illegal.meta.preprocessor.cobolit","match":"\u003e\u003e\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$"},{"name":"invalid.illegal.functions.cobolit","match":"(?i:substitute-case|substitute)\\s+"},{"match":"((((\u003e\u003e|\\$)[\\s]*)(?i:elif))(.*$))","captures":{"1":{"name":"invalid.illegal.keyword.control.directive.conditional.cobol"},"2":{"name":"invalid.illegal.entity.name.function.preprocessor.cobol"},"3":{"name":"invalid.illegal.entity.name.function.preprocessor.cobol"}}},{"match":"((((\u003e\u003e|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))","captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"entity.name.function.preprocessor.cobol"}}},{"match":"(\\*\u003e)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)","captures":{"1":{"name":"comment.line.scantoken.cobol"},"2":{"name":"keyword.cobol"},"3":{"name":"string.cobol"}}},{"name":"comment.line.modern","match":"(\\*\u003e.*$)"},{"name":"strong comment.line.set.acucobol","match":"(\u003e\u003e.*)$"},{"name":"constant.numeric.integer.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])'[[:xdigit:]]*'"},{"name":"invalid.illegal.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])'.*'"},{"name":"constant.numeric.integer.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])\"[[:xdigit:]]*\""},{"name":"invalid.illegal.hexadecimal.cobol","match":"([nNuU][xX]|[hHxX])\".*\""},{"name":"constant.numeric.integer.boolean.cobol","match":"[bB]\"[0-1]\""},{"name":"constant.numeric.integer.boolean.cobol","match":"[bB]'[0-1]'"},{"name":"constant.numeric.integer.octal.cobol","match":"[oO]\"[0-7]*\""},{"name":"invalid.illegal.octal.cobol","match":"[oO]\".*\""},{"name":"meta.symbol.cobol.forced","match":"(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)"},{"name":"comment.block.cobol.remark","begin":"((?\u003c![-_a-zA-Z0-9()-])(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(\\.|$))","end":"(?=((?\u003c![-_])(?i:remarks|author|date-written|source-computer|object-computer|installation|date-compiled|special-names|security|environment\\s+division|data\\s+division|working-storage\\s+section|input-output\\s+section|linkage\\s+section|procedure\\s+division|local-storage\\s+section)|^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*]\\*.*$|^\\+$))","patterns":[{"name":"constant.numeric.cobol","match":"(^[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ])"},{"name":"keyword.identifiers.cobol","match":"(?i:with|debugging|mode)"}],"beginCaptures":{"0":{"name":"keyword.identifiers.cobol"}}},{"name":"constant.numeric.cobol","match":"(?\u003c=(\\(|\\[))((\\-\\+)*\\s*[0-9 ,\\.\\+\\-\\*\\/]+)(?=(\\)|\\]))","captures":{"1":{"name":"keyword.start.bracket.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"keyword.end.bracket.cobol"}}},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"name":"constant.language.cobol","match":"(?\u003c![-_])(?i:true|false|null|nulls)(?![0-9A-Za-z_-])"},{"name":"constant.language.figurative.cobol","match":"(?\u003c![-_])(?i:zeroes|alphabetic-lower|alphabetic-upper|alphanumeric-edited|alphabetic|alphabet|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\s+|\\.|,|\\))"},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.sql","begin":"(?i:exec\\s+sqlims|exec\\s+sql)","end":"(?i:end\\-exec)","patterns":[{"name":"comment.line.sql","match":"(^\\s*\\*.*)$"},{"name":"variable.cobol","match":"(\\:([0-9a-zA-Z\\-_])*)"},{"include":"source.sql"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.cics","begin":"(?i:exec\\s+cics)","end":"(?i:end\\-exec)","patterns":[{"name":"meta.symbol.cobol","match":"(\\()"},{"include":"#cics-keywords"},{"include":"#string-double-quoted-constant"},{"include":"#string-quoted-constant"},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"name":"variable.cobol","match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.dli","begin":"(?i:exec\\s+dli)","end":"(?i:end\\-exec)","patterns":[{"name":"meta.symbol.cobol","match":"(\\()"},{"include":"#dli-keywords"},{"include":"#dli-options"},{"include":"#string-double-quoted-constant"},{"include":"#string-quoted-constant"},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"name":"variable.cobol","match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.sql","begin":"(?i:exec\\s+sqlims)","end":"(?i:end\\-exec)","patterns":[{"name":"variable.cobol","match":"(\\:([a-zA-Z\\-])*)"},{"include":"source.sql"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.sql","begin":"(?i:exec\\s+ado)","end":"(?i:end\\-exec)","patterns":[{"name":"variable.cobol","match":"(\\:([a-zA-Z\\-])*)"},{"include":"source.sql"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.html","begin":"(?i:exec\\s+html)","end":"(?i:end\\-exec)","patterns":[{"include":"text.html.basic"}]},{"name":"keyword.verb.cobol","contentName":"meta.embedded.block.java","begin":"(?i:exec\\s+java)","end":"(?i:end\\-exec)","patterns":[{"include":"source.java"}]},{"match":"(\")(CBL_.*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"match":"(\")(PC_.*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.double.cobol","begin":"\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"match":"(\\')(CBL_.*)(\\')","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"match":"(\\')(PC_.*)(\\')","captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.single.cobol","begin":"'","end":"('|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.double.cobol","begin":"(?\u003c![\\-\\w])[gGzZ]\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.single.cobol","begin":"(?\u003c![\\-\\w])[gGzZ]'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.double.cobol","begin":"(?\u003c![\\-\\w])[gGnN]\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.single.cobol","begin":"(?\u003c![\\-\\w])[gGnN]'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.utf8.double.cobol","begin":"(?\u003c![\\-\\w])[uU]\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"string.quoted.utf8.single.cobol","begin":"(?\u003c![\\-\\w])[uU]'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"keyword.identifiers.cobol","match":"(?\u003c![-_])(?i:id\\s+division|identification\\s+division|identification|id|property-id|getter|setter|entry|function-id|end\\s+attribute|attribute|interface-id|indexer-id|factory|ctl|class-control|options|environment\\s+division|environment-name|environment-value|environment|configuration\\s+section|configuration|decimal-point\\s+is|decimal-point|console\\s+is|call-convention|special-names|cursor\\s+is|update|picture\\s+symbol|currency\\s+sign|currency|repository|input-output\\s+section|input-output|file\\s+section|file-control|select|optional|i-o-control|data\\s+division|working-storage\\s+section|working-storage|section|local-storage|linkage\\s+section|linkage|communication|report|screen\\s+section|object-storage|object\\s+section|class-object|fd|rd|cd|sd|printing|procedure\\s+division|procedure|division|references|debugging|end\\s+declaratives|declaratives|end\\s+static|end\\s+factory|end\\s+class-object|based-storage|size|font|national-edited|national)(?![0-9A-Za-z_-])"},{"match":"(?\u003c![-_])((?i:valuetype-id|operator-id|method-id|method|property-id|attribute-id|enum-id|iterator-id|class-id|program-id|operator-id|end\\s+program|end\\s+valuetype|extension))[\\.]*[\\s]+([a-zA-Z0-9_-]*)","captures":{"1":{"name":"keyword.verb.cobol"},"2":{"name":"entity.name.function.cobol"}}},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:implements|inherits|constraints|constrain)(?=\\s|\\.)"},{"name":"keyword.identifiers.cobol","match":"(?\u003c![-_])(?i:end\\s+enum|end\\s+interface|end\\s+class|end\\s+property|end\\s+method|end\\s+object|end\\s+iterator|end\\s+function|end\\s+operator|end\\s+program|end\\s+indexer|create|reset|instance|delegate|end-delegate|delegate-id|declare|exception-object|as|stop\\s+iterator|stop\\s+run|stop)(?=\\s|\\.|,|\\))"},{"name":"keyword.identifiers.cobol","match":"\\s+(?i:attach\\s+method|attach\\s+del|attach|detach\\s+del|detach\\s+method|detach|method|del)(?=\\s|\\.|$)"},{"name":"keyword.other.sync.cobol","match":"\\s+(?i:sync\\s+(?i:on))(?=\\s|\\.)"},{"name":"keyword.control.catch-exception.cobol","match":"\\s+(?i:try|finally|catch|end-try|throw)(?=\\s|\\.|$)"},{"name":"keyword.otherverb.cobol","match":"(?\u003c![-_])(?i:select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|chaining|yielding|\\+\\+include|copy|replace)(?=\\s)"},{"name":"storage.type.dynamiclength.cobol","match":"(?i:dynamic)\\s+(?i:length)(?=\\s|\\.)"},{"name":"keyword.identifers.cobol","match":"(?\u003c![-_])(?i:assign|external|prototype|organization|organisation|indexed|column|plus|line\\*s*sequential|sequential|access|dynamic|relative|label|block|contains|standard|records|record\\s+key|record|is|alternate|duplicates|reel|tape|terminal|disk\\sfilename|disk|disc|recording\\smode|mode|random)(?=\\s|\\.)"},{"name":"support.function.cobol","match":"(?\u003c![-_])(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|seconds-from-formatted-time|seconds-past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)(?=\\s|\\.|\\(|\\))"},{"match":"(?\u003c![-_])(?i:DFHRESP|DFHVALUE)(\\s*\\(\\s*)([a-zA-Z]*)(\\s*\\))","captures":{"0":{"name":"support.function.cics.cobol"},"1":{"name":"punctuation.definition.string.end.cobol"},"2":{"name":"keyword.identifers.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}}},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:function)(?=\\s|\\.)"},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:end-accept|end-add|end-sync|end-compute|end-delete|end-display|end-divide|end-set|end-multiply|end-of-page|end-read|end-receive|end-return|end-rewrite|end-search|end-start|end-string|end-subtract|end-unstring|end-write|program|class|interface|enum|interface)(?![0-9A-Za-z_-])"},{"name":"keyword.other.cobol","match":"(?\u003c![-_])(?:by value|by reference|by content|property-value)(?![0-9A-Za-z_-])"},{"name":"keyword.identifers.cobol","match":"(?\u003c![-_])(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|source|control|full|required|of|input|output|i-o|extend|file|error|exception|overflow|goto|off|on|proceed|procedures|procedure|through|invalid|data|normal|eop|returning|to|for|giving|into|by|params|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|common|initial|resident|reference|content|are\\sstandard|are|renames|like|format\\stime|values|omitted|value|constant|ascending|descending|key|retry|until|varying|with|no|advancing|up|down|uccurs|ignore\\s+lock|lock|length|delimited|count|delimiter|redefines|from\\s+console|from\\s+command-line|from\\s+user\\s+name|from\\s+day\\s+yyyyddd|from\\s+day|from\\s+time|from\\s+day-of-week|from\\s+escape|from\\s+day\\s+yyyyddd|from\\s+date\\s+yyyymmdd|from\\s+date|from|raising|crt\\s+status|status|class|upon\\s+crt|upon|lines|columns|step|linage|auto|line|position|col|reports|code-set|reporting|arithmetic|localize|program|class|interface|in|at\\s+end|page|name)(?![0-9A-Za-z_-])"},{"match":"(?\u003c![-_])(?i:type|new)\\s+([a-zA-Z][a-zA-Z0-9\\$\\-\\._]*|[a-zA-Z])(?=\\.$)","captures":{"0":{"name":"keyword.verb.cobol"},"1":{"name":"storage.type.cobol"}}},{"name":"storage.type.cobol","match":"(?\u003c![-_])(?i:string)(?=\\s+value|\\.)"},{"name":"storage.type.cobol","match":"(?\u003c![-_])(?i:bit|byte|binary-char|binary-char-unsigned|binary-short|binary-short-unsigned|binary.long|binary-c-long|binary-long-unsigned|binary-long|binary-double|binary-double-unsigned|float-short|float-extended|float-long|bit|condition-value|characters|character\\s+type|character|comma|crt|decimal|object\\+sreference|object-reference|object|list|dictionary|unsigned)(?=\\s|\\.|,|\\]|\\[)"},{"name":"keyword.operator-id.cobol","match":"(operator-id\\s+[+\\-\\*\\/])","captures":{"1":{"name":"keyword.other.verb.cobol"},"2":{"name":"meta.symbol.cobol"}}},{"match":"(?i:self)(\\:\\:)([0-9a-zA-Z_\\-\\.]*)(?=\\.$)","captures":{"1":{"name":"punctuation.accessor.cobol.b3"},"2":{"name":"entity.name.function.b3"}}},{"match":"(\\:\\:)([0-9a-zA-Z_\\-\\.]*)","captures":{"1":{"name":"punctuation.accessor.cobol"},"2":{"name":"entity.name.function.cobol"}}},{"match":"(?\u003c![-_])(?i:type)\\s+([0-9a-zA-Z\\.]*)","captures":{"0":{"name":"keyword.verb.cobol.aa"},"1":{"name":"storage.type.cobol.bb"}}},{"name":"keyword.control.cobol","match":"(?\u003c![-_])(?i:if|else|end-if|exit\\s+iterator|exit\\s+program|exit\\s+method|evaluate|end-evaluate|exit\\s+perform|perform|end-perform|when\\s+other|when|continue|call|end-call|chain|end-chain|invoke|end\\s+invoke|go\\s+to|go|sort|merge|use|xml|parse|stop\\s+run|goback\\s+returning|goback|raise|exit\\s+function|exit\\sparagraph|await)(?![0-9A-Za-z_-])"},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)[-|+]","captures":{"1":{"name":"storage.type.picture10.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"storage.type.picture10.cobol"},"4":{"name":"constant.numeric.cobol"}}},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)","captures":{"1":{"name":"storage.type.picture9.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"storage.type.picture9.cobol"},"4":{"name":"constant.numeric.cobol"}}},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV\\.][-+s\\*$09aAbBsSnNxXuUzZ/,]*[0-9\\.()])*","captures":{"1":{"name":"storage.type.picture8.cobol"},"2":{"name":"constant.numeric.cobol"},"3":{"name":"storage.type.picture8.cobol"}}},{"name":"storage.type.picture7.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*"},{"name":"storage.type.picture6.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*"},{"match":"(?\u003c![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxuUXzZ/,.]*)\\(([0-9]*)\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*","captures":{"1":{"name":"storage.type.picture5.cobol"},"2":{"name":"constant.numeric.cobol"}}},{"name":"storage.type.picture4.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpNNxXuUzZ/,.]*\\([0-9]*\\)"},{"name":"storage.type.picture3.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\\([0-9]*\\)"},{"name":"storage.type.picture2.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*"},{"name":"storage.type.picture1.cobol","match":"(?\u003c![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+\\*$9aAbBsSnpPNxXuUzZ/,.vV]*"},{"match":"((?\u003c![-_])(?i:binary|computational-4|comp-4|computational-5|comp-5))\\(([0-9]*)\\)","captures":{"1":{"name":"invalid.illegal.keyword.verb.acu.cobol"},"2":{"name":"invalid.illegal.constant.numeric.integer"}}},{"name":"support.function.cbltypes.cobol","match":"(?i:cblt-x1-compx-const|cblt-x2-compx-const|cblt-x4-compx-const|cblt-alphanum-const|cblt-x9-compx|cblt-x8-compx|cblt-x8-comp5|cblt-x4-compx|cblt-x4-comp5|cblt-x2-compx|cblt-x2-comp5|cblt-x1-compx|cblt-x1-comp5|cblt-x1|cblt-vfile-status|cblt-vfile-handle|cblt-sx8-comp5|cblt-sx4-comp5|cblt-sx2-comp5|cblt-sx1-comp5|cblt-subsys-params|cblt-splitjoin-buf|cblt-screen-position|cblt-rtncode|cblt-request-context|cblt-reqhand-service-info|cblt-reqhand-service-funcs|cblt-reqhand-response|cblt-reqhand-funcs|cblt-prog-info-params|cblt-prog-info-arg-info|cblt-printer-properties|cblt-printer-name|cblt-printer-info|cblt-printer-default|cblt-ppointer|cblt-pointer|cblt-os-ssize|cblt-os-size|cblt-os-offset|cblt-os-info-params|cblt-os-flags|cblt-node-name|cblt-nls-msg-params|cblt-nls-msg-number-pair|cblt-nls-msg-ins-struct|cblt-nls-msg-buffer|cblt-mouse-shape|cblt-mouse-rect|cblt-mouse-pos|cblt-mouse-event|cblt-mem-validate-param|cblt-idp-exit-service-funcs|cblt-idp-exit-info|cblt-HWND|cblt-HINSTANCE|cblt-get-scr-line-draw-buffer|cblt-get-scr-graphics-buffer|cblt-generic-attr-value|cblt-generic-attr-rgb-values|cblt-generic-attr-information|cblt-file-status|cblt-fileexist-buf|cblt-exit-params|cblt-exit-info-params|cblt-cancel-proc-params|cblt-bytestream-handle|cblt-alphanum)"},{"name":"storage.type.picture.cobol","match":"(?\u003c![-_])(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|group-usage|usage\\sis\\sdisplay|usage\\sis\\sfont|usage\\s+display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|display\\s+blank\\s+when|blank\\s+when|blank\\s+screen|blank|usage\\sis|is\\spartial|usage|justified|just|right|signed|trailing\\s+separate|sign|seperate|sql)(?=\\s|\\.|\\))"},{"name":"storage.type.length.cobol","match":"(?i:byte-length)\\s+[0-9]+"},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:accept|add|address|allocate|cancel|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|evaluate|exhibit|named|exit|free|generate|go\\s+to|initialize\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\s+run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|purge|ready|read|kept|receive|release|return|rewrite|rounded|rollback|search|send|sort|collating\\s+sequence|collating|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?![0-9A-Za-z_-])"},{"name":"keyword.verb.cobol","match":"(?\u003c![-_])(?i:thread-local)(?![0-9A-Za-z_-])"},{"name":"keyword.screens.cobol","match":"(\\s+|^)(?i:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)(?![0-9A-Za-z_-])"},{"name":"invalid.illegal.screens.acu.cobol","match":"(\\s+|^)(?i:bold|high|lowlight|low|background-high|background-low|background-standard)(?![0-9A-Za-z_-])"},{"name":"storage.modifier.cobol","match":"(?\u003c![-_])(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property|async-void|async-value|async)(?=\\s|\\.)"},{"name":"keyword.operator.cobol","match":"=|\u003c|\u003e|\u003c=|\u003e=|\u003c\u003e|\\+|\\-|\\*|\\/|(?\u003c![-_])(?i:b-and|b-or|b-xor|b-exor|b-not|b-left|b-right|and|or|equals|equal|greater\\s+than|less\\s+than|greater)(?![0-9A-Za-z_-])"},{"name":"keyword.verb.cobol","match":"(?i:not\\s+at\\s+end)(?![0-9A-Za-z_-])"},{"name":"keyword.operator.cobol","match":"(?\u003c![-_])(?i:not)(?![0-9A-Za-z_-])"},{"name":"support.type.cobol","match":"(?\u003c![-_])(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|sysprint|syslist|syslst|printer|syserr|console|c01|c02|c03|c04|c05|c06|c07|c08|c09|c10|c11|c12|formfeed|switch-0|switch-10|switch-11|switch-12|switch-13|switch-13|switch-14|switch-15|switch-1|switch-2|switch-3|switch-4|switch-5|switch-6|switch-7|switch-8|switch-9|sw0|sw11|sw12|sw13|sw14|sw15|sw1|sw2|sw3|sw4|sw5|sw6|sw7|sw8|sw9|sw10|lc_all|lc_collate|lc_ctype|lc_messages|lc_monetary|lc_numeric|lc_time|ucs-4|utf-8|utf-16)(?![0-9A-Za-z_-])"},{"name":"keyword.xml.cobol","match":"(?\u003c![-_])(?i:end-xml|processing.*procedure|xml\\sparse|xml|xml-information|xml-text|xml-schemal|xml-declaration)(?![0-9A-Za-z_-])"},{"name":"keyword.json.cobol","match":"(?\u003c![-_])(?i:json\\s+generate|json|end-json|name\\sof)(?![0-9A-Za-z_-])"},{"name":"invalid.illegal.acu.cobol","match":"(?\u003c![-_])(?i:modify|inquire|tab|title|event|center|label-offset|cell|help-id|cells|push-button|radio-button|page-layout-screen|entry-field|list-box|label|default-font|id|no-tab|unsorted|color|height|width|bind|thread|erase|modeless|scroll|system|menu|title-bar|wrap|destroy|resizeable|user-gray|large-font|newline|3-d|data-columns|display-columns|alignment|separation|cursor-frame-width|divider-color|drag-color|heading-color|heading-divider-color|num-rows|record-data|tiled-headings|vpadding|centered-headings|column-headings|self-act|cancel-button|vscroll|report-composer|clsid|primary-interface|active-x-control|default-interface|default-source|auto-minimize|auto-resize|resource|engraved|initial-state|frame|acuactivexcontrol|activex-res|grid|box|message|namespace|class-name|module|constructor|version|strong|culture|method|handle|exception-value|read-only|dividers|graphical|indexed|termination-value|permanent|boxed|visible|centered|record-position|convert)(?=\\s|\\.|,|;|$)"},{"name":"invalid.illegal.netcobol.cobol","match":"(?\u003c![-_])(?i:actual|auto|automatic|based-storage|complex|connect|contained|core-index|db-access-control-key|db-data-name|db-exception|db-record-name|db-set-name|db-status|dead-lock|endcobol|end-disable|end-enable|end-send|end-transceive|eos|file-limits|file-limit|formatted|sort-status|usage-mode)(?=\\s|\\.|,|;|$)"},{"name":"support.type.cobol.acu strong","match":"(?\u003c![-_])(?i:System-Info|Terminal-Info)(?![0-9A-Za-z_-])"},{"name":"invalid.illegal.cobol","match":"(?\u003c![-_])(?i:alter)(?=\\s|\\.)"},{"name":"keyword.ibmreserved.cobol","match":"(?\u003c![-_])(?i:apply|areas|area|clock-units|code|com-reg|controls|dbcs|destination|detail|display-1|ending|every|insert|kanjikey|last|left|less|limits|limit|memory|metaclass|modules|more-labels|multiple|native_binary|native|negative|number|numeric-edited|other|padding|password|pf|ph|postive|processing|queue|recording|reload|removal|rerun|reserve|reserved|rewind|segment-limit|segment|separate|sequence|skip1|skip2|skip3|standard-1|standard-2|sub-queue-1|sub-queue-2|sub-queue-3|sum|symbolic|synchronized|sync|table|test|text|than|top|trace|trailing|unit|words|write-only|at|basis|beginning|bottom|cbl|cf|ch|de|positive|egcs|egi|emi|end|reversed|rf|rh|run|same|order|heading|esi)(?![0-9A-Za-z_-])"},{"name":"strong keyword.potential.reserved.cobol","match":"(?\u003c![-_])(?i:active-class|aligned|anycase|boolean|cols|col|condition|ec|eo|system-default|function-pointer)(?![0-9A-Za-z_-])"},{"name":"keyword.filler.cobol","match":"(?i:filler)"},{"name":"variable.language","match":"(?\u003c![-_])(?i:address-of|date|day-of-week|day|debug-content|debug-item|debug-line|debug-item|debug-sub-1|debug-sub-2|debug-sub-3|shift-in|shift-out|sort-control|sort-core-size|sort-file-size|sort-message|sort-return|sort-mode-size|sort-return|tally|time|when-compiled|line-counter|page-counter|return-code|linage-counter|debug-line|debug-name|debug-contents|json-code|json-status|xml-code|xml-event|xml-information|xml-namespace-prefix|xml-namespace|xml-nnamespace-repfix|xml-nnamespace|xml-ntext|jnienvptr|igy-javaiop-call-exception)(?![0-9A-Za-z_-])"},{"name":"storage.type.sql.picture.cobol","match":"(?\u003c![-_])(?i:shortint1|shortint2|shortint3|shortint4|shortint5|shortint6|shortint7|longint1|longint2|longint3|longint4|longint5|longint6|bigint1|bigint2|blob-locator|clob-locator|dbclob-locator|dbclob-file|blob-file|clob-file|clob|dbclob|blob|varbinary|long-varbinary|time-record|timestamp-record|timestamp-offset-record|timestamp-offset|timestamp|rowid|xml|long-varchar)(?=\\s|\\.|\\)|\\()"},{"name":"keyword.other.self.cobol","match":"(?\u003c![-_])(?i:self)"},{"name":"keyword.other.super.cobol","match":"(?\u003c![-_])(?i:super)"},{"name":"constant.numeric.cobol","match":"(^[0-9][0-9][0-9][0-9][0-9][0-9])"},{"match":"(\\()([0-9]*)(:)([0-9]*)(\\))","captures":{"1":{"name":"meta.symbol.cobol"},"2":{"name":"constant.numeric.integer"},"3":{"name":"meta.symbol.cobol"},"4":{"name":"constant.numeric.integer"},"5":{"name":"meta.symbol.cobol"}}},{"name":"meta.symbol.cobol","match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))"}],"repository":{"cics-keywords":{"name":"keyword.verb.cics","match":"(?\u003c![\\-\\w])(?i:abcode|abdump|abend|abort|abprogram|abstime|accum|acee|acqactivity|acqprocess|acquactivity|action|activity|activityid|actpartn|add|address|after|aid|alarm|all|allocate|alter|alternate|altscrnht|altscrnwd|and|anykey|aplkybd|apltext|applid|as|asa|asis|asktime|asraintrpt|asrakey|asrapsw|asraregs|asraspc|asrastg|assign|asynchronous|at|attach|attachid|attributes|authenticate|autopage|auxiliary|base64|basicauth|below|bif|binary|bit|bodycharset|bookmark|brdata|brdatalength|brexit|bridge|browsetoken|btrans|buffer|build|burgeability|caddrlength|cancel|card|cbuff|ccsid|certificate|change|changetime|channel|char|characterset|check|chunkend|chunking|chunkno|chunkyes|cicsdatakey|ciphers|class|clear|cliconvert|client|clientaddr|clientaddrnu|clientconv|clientname|clntaddr6nu|clntipfamily|close|closestatus|clrpartn|cmdsec|cnamelength|cnotcompl|codepage|color|commarea|commonname|commonnamlen|comparemax|comparemin|complete|composite|compstatus|condition|confirm|confirmation|connect|consistent|console|container|contexttype|control|convdata|converse|convertst|converttime|convid|copy|counter|country|countrylen|create|critical|ctlchar|current|cursor|cwa|cwaleng|data|data1|data2|datalength|datalenth|dataonly|datapointer|dataset|datastr|datatoxml|datatype|datcontainer|date|dateform|datesep|datestring|day|daycount|dayofmonth|dayofweek|dayofyear|days|daysleft|day-of-week|dcounter|ddmmyy|ddmmyyyy|debkey|debrec|debug-contents|debug-item|debug-line|debug-name|debug-sub-1|debug-sub-2|debug-sub-3|deedit|default|define|defresp|defscrnht|defscrnwd|delay|delete|deleteq|delimiter|deq|destcount|destid|destidleng|detail|detaillength|dfhresp|dfhvalue|digest|digesttype|disconnect|docdelete|docsize|docstatus|doctoken|document|ds3270|dsscs|dump|dumpcode|dumpid|duprec|ecaddr|ecblist|eib|elemname|elemnamelen|elemns|elemnslen|end|endactivity|endbr|endbrowse|endfile|endoutput|enq|enter|entry|entryname|eoc|eods|eprfield|eprfrom|eprinto|eprlength|eprset|eprtype|equal|erase|eraseaup|error|errterm|esmreason|esmresp|event|eventtype|eventual|ewasupp|exception|expect|expirytime|extds|external|extract|facility|facilitytokn|false|faultactlen|faultactor|faultcode|faultcodelen|faultcodestr|faultstring|faultstrlen|fci|fct|field|file|firestatus|flength|fmh|fmhparm|for|force|formattime|formfeed|formfield|free|freekb|freemain|from|fromactivity|fromccsid|fromchannel|fromcodepage|fromdoc|fromflength|fromlength|fromprocess|frset|fulldate|function|gchars|gcodes|gds|generic|get|getmain|getnext|gmmi|groupid|gtec|gteq|handle|head|header|hex|high-value|high-values|hilight|hold|honeom|host|hostcodepage|hostlength|hosttype|hours|httpheader|httpmethod|httprnum|httpversion|httpvnum|ignore|immediate|in|increment|initimg|initparm|initparmlen|inpartn|input|inputevent|inputmsg|inputmsglen|inquire|insert|integer|interval|into|intoccsid|intocodepage|invalidcount|invite|invmpsz|invoke|invokingprog|invpartn|invreq|issue|issuer|item|iutype|journalname|jtypeid|jusfirst|juslast|justify|katakana|keep|keylength|keynumber|l40|l64|l80|label|langinuse|languagecode|last|lastusetime|ldc|ldcmnem|ldcnum|leavekb|length|lengthlist|level|lightpen|linage-counter|line|lineaddr|line-counter|link|list|listlength|llid|load|locality|localitylen|logmessage|logmode|logonlogmode|logonmsg|low-value|low-values|luname|main|map|mapcolumn|mapfail|mapheight|mapline|maponly|mapped|mappingdev|mapset|mapwidth|massinsert|maxdatalen|maxflength|maximum|maxlength|maxlifetime|maxproclen|mcc|mediatype|message|messageid|metadata|metadatalen|method|methodlength|milliseconds|minimum|minutes|mmddyy|mmddyyyy|mode|modename|monitor|month|monthofyear|move|msr|msrcontrol|name|namelength|natlang|natlanginuse|netname|newpassword|newphrase|newphraselen|next|nexttransid|nleom|noautopage|nocc|nocheck|nocliconvert|noclose|nodata|node|nodocdelete|nodump|noedit|noflush|nohandle|noinconvert|none|nooutconert|noqueue|noquiesce|nosrvconvert|nosuspend|note|notpurgeable|notruncate|nowait|nscontainer|null|nulls|numciphers|numevents|numitems|numrec|numroutes|numsegments|numtab|of|oidcard|on|opclass|open|operation|operator|operid|operkeys|operpurge|opid|opsecurity|options|or|orgabcode|organization|organizatlen|orgunit|orgunitlen|outdescr|outline|outpartn|output|owner|pa1|pa2|pa3|page|pagenum|page-counter|paging|parse|partn|partner|partnfail|partnpage|partns|partnset|pass|passbk|password|passwordlen|path|pathlength|pct|pf1|pf10|pf11|pf12|pf13|pf14|pf15|pf16|pf17|pf18|pf19|pf2|pf20|pf21|pf22|pf23|pf24|pf3|pf4|pf5|pf6|pf7|pf8|pf9|pfxleng|phrase|phraselen|piplength|piplist|point|pool|pop|portnumber|portnumnu|post|ppt|predicate|prefix|prepare|princonvid|prinsysid|print|priority|privacy|process|processtype|proclength|procname|profile|program|protect|ps|punch|purge|purgeable|push|put|qname|query|queryparm|querystring|querystrlen|queue|quote|quotes|random|rba|rbn|rdatt|read|readnext|readprev|readq|reattach|receive|receiver|recfm|record|recordlen|recordlength|reduce|refparms|refparmslen|relatesindex|relatestype|relatesuri|release|remove|repeatable|repetable|replace|reply|replylength|reqid|requesttype|resclass|reset|resetbr|resid|residlength|resource|resp|resp2|ressec|restart|restype|result|resume|retain|retcode|retcord|retriece|retrieve|return|returnprog|return-code|rewind|rewrite|ridfld|role|rolelength|rollback|route|routecodes|rprocess|rresource|rrn|rtermid|rtransid|run|saddrlength|scheme|schemename|scope|scopelen|scrnht|scrnwd|seconds|security|segmentlist|send|sender|serialnum|serialnumlen|server|serveraddr|serveraddrnu|serverconv|servername|service|session|sesstoken|set|shared|shift-in|shift-out|sigdata|signal|signoff|signon|sit|snamelength|soapfault|sort-control|sort-core-size|sort-file-size|sort-message|sort-mode-size|sort-return|sosi|space|spaces|spoolclose|spoolopen|spoolread|spoolwrite|srvconvert|srvraddr6nu|srvripfamily|ssltype|start|startbr|startbrowse|startcode|state|statelen|stationid|status|statuscode|statuslen|statustext|storage|strfield|stringformat|subaddr|subcodelen|subcodestr|subevent|subevent1|subevent2|subevent3|subevent4|subevent5|subevent6|subevent7|subevent8|sum|suspend|suspstatus|symbol|symbollist|synchronous|synclevel|synconreturn|syncpoint|sysid|tables|tally|task|taskpriority|tcpip|tcpipservice|tct|tctua|tctualeng|td|tellerid|template|termcode|termid|terminal|termpriority|test|text|textkybd|textlength|textprint|time|timeout|timer|timesep|title|to|toactivity|tochannel|tocontainer|toflength|token|tolength|toprocess|trace|tracenum|trailer|tranpriority|transaction|transform|transid|trigger|trt|true|ts|twa|twaleng|type|typename|typenamelen|typens|typenslen|unattend|uncommitted|unescaped|unexpin|unlock|until|uow|update|uri|urimap|url|urllength|userdatakey|userid|username|usernamelen|userpriority|using|validation|value|valuelength|verify|versionlen|volume|volumeleng|wait|waitcics|web|when-compiled|wpmedia1|wpmedia2|wpmedia3|wpmedia4|wrap|write|writeq|wsacontext|wsaepr|xctl|xmlcontainer|xmltodata|xmltransform|xrba|year|yyddd|yyddmm|yymmdd|yyyyddd|yyyyddmm|yyyymmdd|zero|zeroes|zeros)(?![\\-\\w])"},"dli-keywords":{"name":"keyword.verb.dli","match":"(?\u003c![\\-\\w])(?i:accept|chkp|deq|dlet|gnp|gn|gu|isrt|load|log|pos|query|refresh|repl|retrieve|rolb|roll|rols|schd|sets|setu|symchkp|term|xrst)(?![\\-\\w])"},"dli-options":{"name":"keyword.other.dli","match":"(?\u003c![\\-\\w])(?i:statusgroup|checkpoint|chkp|id|lockclass|segment|info|where|from|using|keyfeedback|feedbacklen|variable|first|last|current|seglength|offset|locked|movenext|getfirst|set|setcond|setzero|setparent|fieldlength|keys|maxlength|length[0-9]*|area[0-9]*|psc|pcs|pcb|sysserve|into)(?![\\-\\w])"},"number-complex-constant":{"name":"constant.numeric.cobol","match":"(\\-|\\+)?((([0-9]+(\\.[0-9]+))|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\s|\\.$|,|\\))"},"number-simple-constant":{"name":"constant.numeric.cobol","match":"(\\-|\\+)?([0-9]+)(?=\\s|\\.$|,|\\))"},"string-double-quoted-constant":{"begin":"\"","end":"(\"|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}},"string-quoted-constant":{"name":"string.quoted.single.cobol","begin":"'","end":"('|$)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}}}}}