@shikijs/langs-precompiled 2.3.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/actionscript-3.mjs +1 -1
  2. package/dist/angular-html.mjs +1 -1
  3. package/dist/applescript.mjs +1 -1
  4. package/dist/ara.mjs +1 -1
  5. package/dist/asciidoc.mjs +1 -1
  6. package/dist/astro.mjs +1 -1
  7. package/dist/beancount.mjs +1 -1
  8. package/dist/blade.mjs +1 -1
  9. package/dist/bsl.mjs +1 -1
  10. package/dist/cadence.mjs +1 -1
  11. package/dist/clarity.mjs +1 -1
  12. package/dist/cmake.mjs +1 -1
  13. package/dist/cobol.mjs +1 -1
  14. package/dist/coq.mjs +1 -1
  15. package/dist/crystal.mjs +1 -1
  16. package/dist/csharp.mjs +6 -2
  17. package/dist/cypher.mjs +1 -1
  18. package/dist/dax.mjs +1 -1
  19. package/dist/diff.mjs +1 -1
  20. package/dist/docker.mjs +1 -1
  21. package/dist/dotenv.mjs +1 -1
  22. package/dist/dream-maker.mjs +1 -1
  23. package/dist/elixir.mjs +1 -1
  24. package/dist/elm.mjs +1 -1
  25. package/dist/erb.mjs +2 -1
  26. package/dist/erlang.mjs +1 -1
  27. package/dist/es-tag-css.mjs +1 -1
  28. package/dist/es-tag-glsl.mjs +1 -1
  29. package/dist/es-tag-html.mjs +1 -1
  30. package/dist/es-tag-sql.mjs +1 -1
  31. package/dist/es-tag-xml.mjs +1 -1
  32. package/dist/fish.mjs +1 -1
  33. package/dist/fortran-free-form.mjs +1 -1
  34. package/dist/fsharp.mjs +1 -1
  35. package/dist/gdresource.mjs +1 -1
  36. package/dist/gdscript.mjs +1 -1
  37. package/dist/git-commit.mjs +1 -1
  38. package/dist/go.mjs +1 -1
  39. package/dist/graphql.mjs +1 -1
  40. package/dist/groovy.mjs +1 -1
  41. package/dist/hack.mjs +1 -1
  42. package/dist/haml.mjs +1 -1
  43. package/dist/haskell.mjs +1 -1
  44. package/dist/hcl.mjs +1 -1
  45. package/dist/html-derivative.mjs +1 -1
  46. package/dist/html.mjs +1 -1
  47. package/dist/jison.mjs +1 -1
  48. package/dist/json.mjs +1 -1
  49. package/dist/json5.mjs +1 -1
  50. package/dist/jsonc.mjs +1 -1
  51. package/dist/jsonl.mjs +1 -1
  52. package/dist/jssm.mjs +1 -1
  53. package/dist/julia.mjs +1 -1
  54. package/dist/kusto.mjs +1 -1
  55. package/dist/latex.mjs +1 -1
  56. package/dist/less.mjs +1 -1
  57. package/dist/markdown.mjs +1 -1
  58. package/dist/marko.mjs +1 -1
  59. package/dist/matlab.mjs +1 -1
  60. package/dist/mermaid.mjs +1 -1
  61. package/dist/mipsasm.mjs +1 -1
  62. package/dist/mojo.mjs +1 -1
  63. package/dist/move.mjs +1 -1
  64. package/dist/nim.mjs +1 -1
  65. package/dist/nushell.mjs +1 -1
  66. package/dist/objective-c.mjs +1 -1
  67. package/dist/objective-cpp.mjs +1 -1
  68. package/dist/perl.mjs +1 -1
  69. package/dist/po.mjs +1 -1
  70. package/dist/polar.mjs +1 -1
  71. package/dist/powershell.mjs +1 -1
  72. package/dist/pug.mjs +1 -1
  73. package/dist/puppet.mjs +1 -1
  74. package/dist/python.mjs +1 -1
  75. package/dist/regexp.mjs +1 -1
  76. package/dist/riscv.mjs +1 -1
  77. package/dist/ruby.mjs +1 -1
  78. package/dist/rust.mjs +1 -1
  79. package/dist/sas.mjs +1 -1
  80. package/dist/scala.mjs +1 -1
  81. package/dist/scheme.mjs +1 -1
  82. package/dist/sdbl.mjs +1 -1
  83. package/dist/shellscript.mjs +1 -1
  84. package/dist/smalltalk.mjs +1 -1
  85. package/dist/splunk.mjs +1 -1
  86. package/dist/sql.mjs +1 -1
  87. package/dist/stata.mjs +1 -1
  88. package/dist/stylus.mjs +1 -1
  89. package/dist/svelte.mjs +1 -1
  90. package/dist/tcl.mjs +1 -1
  91. package/dist/terraform.mjs +1 -1
  92. package/dist/toml.mjs +1 -1
  93. package/dist/twig.mjs +1 -1
  94. package/dist/typst.mjs +1 -1
  95. package/dist/vue.mjs +1 -1
  96. package/dist/vyper.mjs +1 -1
  97. package/dist/wasm.mjs +1 -1
  98. package/dist/wgsl.mjs +1 -1
  99. package/dist/zenscript.mjs +1 -1
  100. package/dist/zig.mjs +1 -1
  101. package/package.json +3 -3
package/dist/puppet.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"Puppet",fileTypes:["pp"],foldingStartMarker:/(^\p{space}*\/\*|(\{|\[|\()\p{space}*(?=\n?$))/dgv,foldingStopMarker:/(\*\/|^\p{space}*(\}|\]|\)))/dgv,name:"puppet",patterns:[{include:"#line_comment"},{include:"#constants"},{begin:/^\p{space}*\/\*/dgv,end:/\*\//dgv,name:"comment.block.puppet"},{begin:/\b(node)\b/dgv,captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.class.puppet"}},end:/(?=\{)/dgv,name:"meta.definition.class.puppet",patterns:[{match:/\bdefault\b/dgv,name:"keyword.puppet"},{include:"#strings"},{include:"#regex-literal"}]},{begin:/\b(class)\p{space}+((?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|[a-z][a-z0-9_]*)\p{space}*/dgv,captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.class.puppet"}},end:/(?=\{)/dgv,name:"meta.definition.class.puppet",patterns:[{begin:/\b(inherits)\b\p{space}+/dgv,captures:{"1":{name:"storage.modifier.puppet"}},end:/(?=\(|\{)/dgv,name:"meta.definition.class.inherits.puppet",patterns:[{match:/\b((?:[\-_A-Za-z0-9"\.]+::)*[\-_A-Za-z0-9"\.]+)\b/dgv,name:"support.type.puppet"}]},{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:/^\p{space}*(plan)\p{space}+((?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|[a-z][a-z0-9_]*)\p{space}*/dgv,captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.plan.puppet"}},end:/(?=\{)/dgv,name:"meta.definition.plan.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:/^\p{space}*(define|function)\p{space}+([a-z][a-z0-9_]*|(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\p{space}*(\()/dgv,captures:{"1":{name:"storage.type.function.puppet"},"2":{name:"entity.name.function.puppet"}},end:/(?=\{)/dgv,name:"meta.function.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{captures:{"1":{name:"keyword.control.puppet"}},match:/\b(case|else|elsif|if|unless)(?!::)\b/dgv},{include:"#keywords"},{include:"#resource-definition"},{include:"#heredoc"},{include:"#strings"},{include:"#puppet-datatypes"},{include:"#array"},{match:/((\$?)"?[a-zA-Z_\x7F-ÿ][a-zA-Z0-9_\x7F-ÿ]*"?):(?=\p{space}+|(?=\n?$))/dgv,name:"entity.name.section.puppet"},{include:"#numbers"},{include:"#variable"},{begin:/\b(import|include|contain|require)\p{space}+(?![^\n]*=>)/dgv,beginCaptures:{"1":{name:"keyword.control.import.include.puppet"}},contentName:"variable.parameter.include.puppet",end:/(?=\p{space}|(?=\n?$))/dgv,name:"meta.include.puppet"},{match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*(?==>)\p{space}*/dgv,name:"constant.other.key.puppet"},{match:/(?<=\{)\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*(?=\})/dgv,name:"constant.other.bareword.puppet"},{match:/\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\b(?![^\n]*\{)/dgv,name:"support.function.puppet"},{match:/=>/dgv,name:"punctuation.separator.key-value.puppet"},{match:/->/dgv,name:"keyword.control.orderarrow.puppet"},{match:/~>/dgv,name:"keyword.control.notifyarrow.puppet"},{include:"#regex-literal"}],repository:{array:{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.definition.array.begin.puppet"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.array.end.puppet"}},name:"meta.array.puppet",patterns:[{match:/\p{space}*,\p{space}*/dgv},{include:"#parameter-default-types"},{include:"#line_comment"}]},constants:{patterns:[{match:/\b(absent|directory|false|file|present|running|stopped|true)\b(?![^\n]*\{)/dgv,name:"constant.language.puppet"}]},"double-quoted-string":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.double.interpolated.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},escaped_char:{match:/\\[^\n]/dgv,name:"constant.character.escape.puppet"},function_call:{begin:/([a-zA-Z_][a-zA-Z0-9_]*)(\()/dgv,end:/\)/dgv,name:"meta.function-call.puppet",patterns:[{include:"#parameter-default-types"},{match:/,/dgv,name:"punctuation.separator.parameters.puppet"}]},hash:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.hash.begin.puppet"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.hash.end.puppet"}},name:"meta.hash.puppet",patterns:[{match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*(?==>)\p{space}*/dgv,name:"constant.other.key.puppet"},{include:"#parameter-default-types"},{include:"#line_comment"}]},heredoc:{patterns:[{begin:/@\([\p{Zs}\t]*"([^\:\/\) \t]+)"[\p{Zs}\t]*(:[\p{Zs}\t]*[a-z][a-zA-Z0-9_\+]*[\p{Zs}\t]*)?(\/[\p{Zs}\t]*[tsrnL\$]*)?[\p{Zs}\t]*\)/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/^[\p{Zs}\t]*(\|[\p{Zs}\t]*-|\||-)?[\p{Zs}\t]*\1/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.interpolated.heredoc.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},{begin:/@\([\p{Zs}\t]*([^\:\/\) \t]+)[\p{Zs}\t]*(:[\p{Zs}\t]*[a-z][a-zA-Z0-9_\+]*[\p{Zs}\t]*)?(\/[\p{Zs}\t]*[tsrnL\$]*)?[\p{Zs}\t]*\)/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/^[\p{Zs}\t]*(\|[\p{Zs}\t]*-|\||-)?[\p{Zs}\t]*\1/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.unquoted.heredoc.puppet"}]},interpolated_puppet:{patterns:[{begin:/(\$\{)(\p{Nd}+)/dgv,beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.pre-defined.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:/(\$\{)(_[a-zA-Z0-9_]*)/dgv,beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:/(\$\{)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)/dgv,beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]}]},keywords:{captures:{"1":{name:"keyword.puppet"}},match:/\b(undef)\b/dgv},line_comment:{patterns:[{captures:{"1":{name:"comment.line.number-sign.puppet"},"2":{name:"punctuation.definition.comment.puppet"}},match:/^((#)[^\n]*(?=\n?$)\n?)/dgv,name:"meta.comment.full-line.puppet"},{captures:{"1":{name:"punctuation.definition.comment.puppet"}},match:/(#)[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.number-sign.puppet"}]},nested_braces:{begin:/\{/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\}/dgv,patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:/\{/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\}/dgv,patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:/\[/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\]/dgv,patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:/\[/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\]/dgv,patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_parens:{begin:/\(/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\)/dgv,patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:/\(/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\)/dgv,patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},numbers:{patterns:[{comment:"HEX 0x 0-f",match:/(?<![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd})([\-\+]?)0x(?:[0-9a-f])+(?![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd})/dgiv,name:"constant.numeric.hexadecimal.puppet"},{comment:"INTEGERS [(+|-)] digits [e [(+|-)] digits]",match:/(?<![\p{L}\p{M}\p{N}\p{Pc}]|\.)([\-\+]?)(?<!\p{Nd})\p{Nd}+(?:e(\+|-)?\p{Nd}+)?(?![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.)/dgiv,name:"constant.numeric.integer.puppet"},{comment:"FLOAT [(+|-)] digits . digits [e [(+|-)] digits]",match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\-\+]?)\p{Nd}+\.\p{Nd}+(?:e(\+|-)?\p{Nd}+)?(?![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd})/dgiv,name:"constant.numeric.integer.puppet"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variable"},{include:"#hash"},{include:"#array"},{include:"#function_call"},{include:"#constants"},{include:"#puppet-datatypes"}]},"puppet-datatypes":{patterns:[{comment:"Puppet Data type",match:/(?<![a-zA-Z\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])/dgv,name:"storage.type.puppet"}]},"regex-literal":{comment:"Puppet Regular expression literal without interpolation",match:/(\/)([^\n]+?)[^\\]\//dgv,name:"string.regexp.literal.puppet"},"resource-definition":{begin:/(?:^|\b)(::[a-z][a-z0-9_]*|[a-z][a-z0-9_]*|(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\p{space}*(\{)\p{space}*/dgv,beginCaptures:{"1":{name:"meta.definition.resource.puppet storage.type.puppet"}},contentName:"entity.name.section.puppet",end:/:/dgv,patterns:[{include:"#strings"},{include:"#variable"},{include:"#array"}]},"resource-parameters":{patterns:[{captures:{"1":{name:"variable.other.puppet"},"2":{name:"punctuation.definition.variable.puppet"}},match:/((\$+)[a-zA-Z_][a-zA-Z0-9_]*)\p{space}*(?=,|\))/dgv,name:"meta.function.argument.puppet"},{begin:/((\$+)[a-zA-Z_][a-zA-Z0-9_]*)\p{space}*(=)\p{space}*\p{space}*/dgv,captures:{"1":{name:"variable.other.puppet"},"2":{name:"punctuation.definition.variable.puppet"},"3":{name:"keyword.operator.assignment.puppet"}},end:/(?=,|\))/dgv,name:"meta.function.argument.puppet",patterns:[{include:"#parameter-default-types"}]}]},"single-quoted-string":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.single.puppet",patterns:[{include:"#escaped_char"}]},strings:{patterns:[{include:"#double-quoted-string"},{include:"#single-quoted-string"}]},variable:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.puppet"}},match:/(\$)(\p{Nd}+)/dgv,name:"variable.other.readwrite.global.pre-defined.puppet"},{captures:{"1":{name:"punctuation.definition.variable.puppet"}},match:/(\$)_[a-zA-Z0-9_]*/dgv,name:"variable.other.readwrite.global.puppet"},{captures:{"1":{name:"punctuation.definition.variable.puppet"}},match:/(\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)/dgv,name:"variable.other.readwrite.global.puppet"}]}},scopeName:"source.puppet",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"Puppet",fileTypes:["pp"],foldingStartMarker:/(^\p{space}*\/\*|(\{|\[|\()\p{space}*(?=\n?$))/dgv,foldingStopMarker:/(\*\/|^\p{space}*(\}|\]|\)))/dgv,name:"puppet",patterns:[{include:"#line_comment"},{include:"#constants"},{begin:/^\p{space}*\/\*/dgv,end:/\*\//dgv,name:"comment.block.puppet"},{begin:/\b(node)\b/dgv,captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.class.puppet"}},end:/(?=\{)/dgv,name:"meta.definition.class.puppet",patterns:[{match:/\bdefault\b/dgv,name:"keyword.puppet"},{include:"#strings"},{include:"#regex-literal"}]},{begin:/\b(class)\p{space}+((?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|[a-z][a-z0-9_]*)\p{space}*/dgv,captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.class.puppet"}},end:/(?=\{)/dgv,name:"meta.definition.class.puppet",patterns:[{begin:/\b(inherits)\b\p{space}+/dgv,captures:{"1":{name:"storage.modifier.puppet"}},end:/(?=\(|\{)/dgv,name:"meta.definition.class.inherits.puppet",patterns:[{match:/\b((?:[\-_A-Za-z0-9"\.]+::)*[\-_A-Za-z0-9"\.]+)\b/dgv,name:"support.type.puppet"}]},{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:/^\p{space}*(plan)\p{space}+((?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|[a-z][a-z0-9_]*)\p{space}*/dgv,captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.plan.puppet"}},end:/(?=\{)/dgv,name:"meta.definition.plan.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:/^\p{space}*(define|function)\p{space}+([a-z][a-z0-9_]*|(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\p{space}*(\()/dgv,captures:{"1":{name:"storage.type.function.puppet"},"2":{name:"entity.name.function.puppet"}},end:/(?=\{)/dgv,name:"meta.function.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{captures:{"1":{name:"keyword.control.puppet"}},match:/\b(case|else|elsif|if|unless)(?!::)\b/dgv},{include:"#keywords"},{include:"#resource-definition"},{include:"#heredoc"},{include:"#strings"},{include:"#puppet-datatypes"},{include:"#array"},{match:/((\$?)"?[a-zA-Z_\x7F-ÿ][a-zA-Z0-9_\x7F-ÿ]*"?):(?=\p{space}+|(?=\n?$))/dgv,name:"entity.name.section.puppet"},{include:"#numbers"},{include:"#variable"},{begin:/\b(import|include|contain|require)\p{space}+(?![^\n]*=>)/dgv,beginCaptures:{"1":{name:"keyword.control.import.include.puppet"}},contentName:"variable.parameter.include.puppet",end:/(?=\p{space}|(?=\n?$))/dgv,name:"meta.include.puppet"},{match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*(?==>)\p{space}*/dgv,name:"constant.other.key.puppet"},{match:/(?<=\{)\p{space}*[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*(?=\})/dgv,name:"constant.other.bareword.puppet"},{match:/\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\b(?![^\n]*\{)/dgv,name:"support.function.puppet"},{match:/=>/dgv,name:"punctuation.separator.key-value.puppet"},{match:/->/dgv,name:"keyword.control.orderarrow.puppet"},{match:/~>/dgv,name:"keyword.control.notifyarrow.puppet"},{include:"#regex-literal"}],repository:{array:{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.definition.array.begin.puppet"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.array.end.puppet"}},name:"meta.array.puppet",patterns:[{match:/\p{space}*,\p{space}*/dgv},{include:"#parameter-default-types"},{include:"#line_comment"}]},constants:{patterns:[{match:/\b(absent|directory|false|file|present|running|stopped|true)\b(?![^\n]*\{)/dgv,name:"constant.language.puppet"}]},"double-quoted-string":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.double.interpolated.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},escaped_char:{match:/\\[^\n]/dgv,name:"constant.character.escape.puppet"},function_call:{begin:/([a-zA-Z_][a-zA-Z0-9_]*)(\()/dgv,end:/\)/dgv,name:"meta.function-call.puppet",patterns:[{include:"#parameter-default-types"},{match:/,/dgv,name:"punctuation.separator.parameters.puppet"}]},hash:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.hash.begin.puppet"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.hash.end.puppet"}},name:"meta.hash.puppet",patterns:[{match:/\b[\p{L}\p{M}\p{N}\p{Pc}]+\p{space}*(?==>)\p{space}*/dgv,name:"constant.other.key.puppet"},{include:"#parameter-default-types"},{include:"#line_comment"}]},heredoc:{patterns:[{begin:/@\([\p{Zs}\t]*"([^\:\/\) \t]+)"[\p{Zs}\t]*(:[\p{Zs}\t]*[a-z][a-zA-Z0-9_\+]*[\p{Zs}\t]*)?(\/[\p{Zs}\t]*[tsrnL\$]*)?[\p{Zs}\t]*\)/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/^[\p{Zs}\t]*(\|[\p{Zs}\t]*-|\||-)?[\p{Zs}\t]*\1/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.interpolated.heredoc.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},{begin:/@\([\p{Zs}\t]*([^\:\/\) \t]+)[\p{Zs}\t]*(:[\p{Zs}\t]*[a-z][a-zA-Z0-9_\+]*[\p{Zs}\t]*)?(\/[\p{Zs}\t]*[tsrnL\$]*)?[\p{Zs}\t]*\)/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/^[\p{Zs}\t]*(\|[\p{Zs}\t]*-|\||-)?[\p{Zs}\t]*\1/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.unquoted.heredoc.puppet"}]},interpolated_puppet:{patterns:[{begin:/(\$\{)(\p{Nd}+)/dgv,beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.pre-defined.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:/(\$\{)(_[a-zA-Z0-9_]*)/dgv,beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:/(\$\{)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)/dgv,beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.puppet"}},contentName:"source.puppet",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]}]},keywords:{captures:{"1":{name:"keyword.puppet"}},match:/\b(undef)\b/dgv},line_comment:{patterns:[{captures:{"1":{name:"comment.line.number-sign.puppet"},"2":{name:"punctuation.definition.comment.puppet"}},match:/^((#)[^\n]*(?=\n?$)\n?)/dgv,name:"meta.comment.full-line.puppet"},{captures:{"1":{name:"punctuation.definition.comment.puppet"}},match:/(#)[^\n]*(?=\n?$)\n?/dgv,name:"comment.line.number-sign.puppet"}]},nested_braces:{begin:/\{/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\}/dgv,patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:/\{/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\}/dgv,patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:/\[/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\]/dgv,patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:/\[/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\]/dgv,patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_parens:{begin:/\(/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\)/dgv,patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:/\(/dgv,captures:{"1":{name:"punctuation.section.scope.puppet"}},end:/\)/dgv,patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},numbers:{patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd})([\-\+]?)0x(?:[0-9a-f])+(?![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd})/dgiv,name:"constant.numeric.hexadecimal.puppet"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}]|\.)([\-\+]?)(?<!\p{Nd})\p{Nd}+(?:e(\+|-)?\p{Nd}+)?(?![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd}|\.)/dgiv,name:"constant.numeric.integer.puppet"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])([\-\+]?)\p{Nd}+\.\p{Nd}+(?:e(\+|-)?\p{Nd}+)?(?![\p{L}\p{M}\p{N}\p{Pc}]|\p{Nd})/dgiv,name:"constant.numeric.integer.puppet"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variable"},{include:"#hash"},{include:"#array"},{include:"#function_call"},{include:"#constants"},{include:"#puppet-datatypes"}]},"puppet-datatypes":{patterns:[{match:/(?<![a-zA-Z\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])/dgv,name:"storage.type.puppet"}]},"regex-literal":{match:/(\/)([^\n]+?)[^\\]\//dgv,name:"string.regexp.literal.puppet"},"resource-definition":{begin:/(?:^|\b)(::[a-z][a-z0-9_]*|[a-z][a-z0-9_]*|(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\p{space}*(\{)\p{space}*/dgv,beginCaptures:{"1":{name:"meta.definition.resource.puppet storage.type.puppet"}},contentName:"entity.name.section.puppet",end:/:/dgv,patterns:[{include:"#strings"},{include:"#variable"},{include:"#array"}]},"resource-parameters":{patterns:[{captures:{"1":{name:"variable.other.puppet"},"2":{name:"punctuation.definition.variable.puppet"}},match:/((\$+)[a-zA-Z_][a-zA-Z0-9_]*)\p{space}*(?=,|\))/dgv,name:"meta.function.argument.puppet"},{begin:/((\$+)[a-zA-Z_][a-zA-Z0-9_]*)\p{space}*(=)\p{space}*\p{space}*/dgv,captures:{"1":{name:"variable.other.puppet"},"2":{name:"punctuation.definition.variable.puppet"},"3":{name:"keyword.operator.assignment.puppet"}},end:/(?=,|\))/dgv,name:"meta.function.argument.puppet",patterns:[{include:"#parameter-default-types"}]}]},"single-quoted-string":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.single.puppet",patterns:[{include:"#escaped_char"}]},strings:{patterns:[{include:"#double-quoted-string"},{include:"#single-quoted-string"}]},variable:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.puppet"}},match:/(\$)(\p{Nd}+)/dgv,name:"variable.other.readwrite.global.pre-defined.puppet"},{captures:{"1":{name:"punctuation.definition.variable.puppet"}},match:/(\$)_[a-zA-Z0-9_]*/dgv,name:"variable.other.readwrite.global.puppet"},{captures:{"1":{name:"punctuation.definition.variable.puppet"}},match:/(\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)/dgv,name:"variable.other.readwrite.global.puppet"}]}},scopeName:"source.puppet",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/python.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Python",name:"python",patterns:[{include:"#statement"},{include:"#expression"}],repository:{"annotated-parameter":{begin:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.annotation.python"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:/<<=|>>=|\/\/=|\*\*=|\+=|-=|\/=|@=|\*=|%=|~=|\^=|&=|\|=|=(?!=)/dgv,name:"keyword.operator.assignment.python"},backticks:{begin:/`/dgv,end:/(?:`|(?<!\\)(\n))/dgv,name:"invalid.deprecated.backtick.python",patterns:[{include:"#expression"}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:/(?<!\.)\b((Arithmetic|Assertion|Attribute|Buffer|BlockingIO|BrokenPipe|ChildProcess|(Connection(Aborted|Refused|Reset)?)|EOF|Environment|FileExists|FileNotFound|FloatingPoint|IO|Import|Indentation|Index|Interrupted|IsADirectory|NotADirectory|Permission|ProcessLookup|Timeout|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|Reference|Runtime|Recursion|Syntax|System|Tab|Type|UnboundLocal|Unicode(Encode|Decode|Translate)?|Value|Windows|ZeroDivision|ModuleNotFound)Error|((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes|Resource)?Warning|SystemExit|Stop(Async)?Iteration|KeyboardInterrupt|GeneratorExit|(Base)?Exception)\b/dgv,name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:/(?<!\.)\b(__import__|abs|aiter|all|any|anext|ascii|bin|breakpoint|callable|chr|compile|copyright|credits|delattr|dir|divmod|enumerate|eval|exec|exit|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|license|locals|map|max|memoryview|min|next|oct|open|ord|pow|print|quit|range|reload|repr|reversed|round|setattr|sorted|sum|vars|zip)\b/dgv,name:"support.function.builtin.python"},{match:/(?<!\.)\b(file|reduce|intern|raw_input|unicode|cmp|basestring|execfile|long|xrange)\b/dgv,name:"variable.legacy.builtin.python"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{match:/(?<!\.)\b(bool|bytearray|bytes|classmethod|complex|dict|float|frozenset|int|list|object|property|set|slice|staticmethod|str|tuple|type|super)\b/dgv,name:"support.type.python"},"call-wrapper-inheritance":{begin:/\b(?=([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(\())/dgv,comment:"same as a function call, but in inheritance context",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:/\p{space}*(class)\p{space}+(?=[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*(:|\())/dgv,beginCaptures:{"1":{name:"storage.type.class.python"}},end:/(:)/dgv,endCaptures:{"1":{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.inheritance.begin.python"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:/(\*\*|\*)/dgv,name:"keyword.operator.unpacking.arguments.python"},{match:/,/dgv,name:"punctuation.separator.inheritance.python"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.python"},{match:/\bmetaclass\b/dgv,name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{"1":{name:"entity.other.inherited-class.python variable.parameter.class.python"},"2":{name:"keyword.operator.assignment.python"}},match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.class.python"}]},codetags:{captures:{"1":{name:"keyword.codetag.notation.python"}},match:/\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\b/dgv},comments:{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("#\\p{space}*(type:)(?:(?=(\\p{space}*))\\2)(?!(?=\\n?$)|#)","dgv",{"hiddenCaptures":[2]}),beginCaptures:{"0":{name:"meta.typehint.comment.python"},"1":{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:/(?:(?=\n?$)|(?=#))/dgv,name:"comment.line.number-sign.python",patterns:[{match:/ignore(?=\p{space}*(?:(?=\n?$)|#))/dgvy,name:"comment.typehint.ignore.notation.python"},{match:/(?<!\.)\b(bool|bytes|float|int|object|str|List|Dict|Iterable|Sequence|Set|FrozenSet|Callable|Union|Tuple|Any|None)\b/dgv,name:"comment.typehint.type.notation.python"},{match:/([\[\]\(\)\,\.\=\*]|(->))/dgv,name:"comment.typehint.punctuation.notation.python"},{match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:/(#)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:/((?=\n?$))/dgv,name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:/(#)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:/((?=\n?$)|(?="""))/dgv,name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:/(#)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:/((?=\n?$)|(?='''))/dgv,name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.dict.begin.python"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.dict.end.python"}},patterns:[{match:/:/dgv,name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:/^\p{space}*((@))\p{space}*(?=[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,beginCaptures:{"1":{name:"entity.name.function.decorator.python"},"2":{name:"punctuation.definition.decorator.python"}},end:/(\))([^\n]*?)(?=\p{space}*(?:#|(?=\n?$)))|(?=\n|#)/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{"2":{name:"punctuation.separator.period.python"}},match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)|(\.)/dgv,name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{"1":{name:"invalid.illegal.decorator.python"}},match:/\p{space}*([^\(\p{Alpha}\p{space}_\.\#\\][^\n]*?)(?=#|(?=\n?$))/dgv,name:"invalid.illegal.decorator.python"}]},docstring:{patterns:[{begin:/('''|""")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},end:/((?!))/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.multi.python",patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:/([rR])('''|""")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.raw.multi.python",patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{begin:/('|")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},end:/((?!))|(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.single.python",patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:/([rR])('|")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)|(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.raw.single.python",patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{captures:{"1":{name:"keyword.control.flow.python"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*((?:>>>|\\.\\.\\.)\\p{space})(?=\\p{space}*\\P{space})","dgv",{"strategy":"clip_search"})},"docstring-statement":{begin:/^(?=\p{space}*[rR]?('''|"""|'|"))/dgv,comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:/((?<=(?!))|^)(?!\p{space}*[rR]?('''|"""|'|"))/dgv,patterns:[{include:"#docstring"}]},"double-one-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?="""))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:/\.\.\./dgv,name:"constant.other.ellipsis.python"},"escape-sequence":{match:/\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\"'abfnrtv])/dgv,name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:/\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{[\p{L}\p{M}\p{N}\p{Pc}\p{space}]+?\})/dgv,name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:/\{[^\n]*?\}/dgv},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:/\{\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}\}/dgv,name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:/(\b[fF])([bBuU])?('''|""")/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:/(\3)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:/(\b[fF])([bBuU])?((['"]))/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:/(\3)|((?<!\\)\n)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:/(\{)(\p{space}*?)(\})/dgv},{match:/(\{\{|\}\})/dgv,name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:/(\}(?!\}))/dgv,name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:/(\{)(?=[^\n\}]*(?=\n?$)\n?)/dgv,beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:/(\})|(?=\n)/dgv,endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:/(\})/dgv,endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|'''|"""))|\n/dgv,name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:/(\b[bBuU])([fF])('''|""")/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:/(\3)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:/(\b[bBuU])([fF])((['"]))/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:/(\3)|((?<!\\)\n)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|'''|"""))|\n/dgv,name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:/(\b(?:[rR][fF]|[fF][rR]))('''|""")/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:/(\b(?:[rR][fF]|[fF][rR]))((['"]))/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:/(\2)|((?<!\\)\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|(['"])|((?<!\\)\n)))|\n/dgv,name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:/(\})|(?=\n)/dgv,endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|(['"])|((?<!\\)\n)))|\n/dgv,name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:/(=(![rsa])?)(?=\})/dgv,name:"storage.type.format.python"},{match:/(=?![rsa])(?=\})/dgv,name:"storage.type.format.python"},{captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},match:/(=?(?:![rsa])?)(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)(?=\})/dgv},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:/(=?(?:![rsa])?)(:)(?=[^\n]*?\{)/dgv,beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},end:/(?=\})/dgv,patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:/([bcdeEfFgGnosxX\%])(?=\})/dgv,name:"storage.type.format.python"},{match:/(\.\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(,)/dgv,name:"storage.type.format.python"},{match:/(\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(#)/dgv,name:"storage.type.format.python"},{match:/([\-\+ ])/dgv,name:"storage.type.format.python"},{match:/([\<\>\=\^])/dgv,name:"storage.type.format.python"},{match:/([\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:/(=(![rsa])?)(?=\})/dgv,name:"storage.type.format.python"},{match:/(=?![rsa])(?=\})/dgv,name:"storage.type.format.python"},{captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},match:/(=?(?:![rsa])?)(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)(?=\})/dgv},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:/(=?(?:![rsa])?)(:)(?=[^\n]*?\{)/dgv,beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},end:/(?=\})|(?=\n)/dgv,patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:/([bcdeEfFgGnosxX\%])(?=\})/dgv,name:"storage.type.format.python"},{match:/(\.\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(,)/dgv,name:"storage.type.format.python"},{match:/(\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(#)/dgv,name:"storage.type.format.python"},{match:/([\-\+ ])/dgv,name:"storage.type.format.python"},{match:/([\<\>\=\^])/dgv,name:"storage.type.format.python"},{match:/([\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"storage.type.format.python"}]},"function-arguments":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:/(?=\))(?!\)\p{space}*\()/dgv,patterns:[{match:/(,)/dgv,name:"punctuation.separator.arguments.python"},{captures:{"1":{name:"keyword.operator.unpacking.arguments.python"}},match:/(?:(?<=[\,\(])|^)\p{space}*(\*{1,2})/dgv},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{"1":{name:"variable.parameter.function-call.python"},"2":{name:"keyword.operator.assignment.python"}},match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"punctuation.definition.arguments.begin.python"}},match:/\p{space}*(\))\p{space}*(\()/dgv}]},"function-call":{begin:/\b(?=([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(\())/dgv,comment:"Regular function call of the type \"name(args)\"",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:/\p{space}*(?:\b(async)\p{space}+)?\b(def)\p{space}+(?=[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}]*\p{space}*\()/dgv,beginCaptures:{"1":{name:"storage.type.function.async.python"},"2":{name:"storage.type.function.python"}},end:/(:|(?=[\#'"\n]))/dgv,endCaptures:{"1":{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.function.python"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"meta.function-call.generic.python"}]},generator:{begin:/\bfor\b/dgv,beginCaptures:{"0":{name:"keyword.control.flow.python"}},comment:"Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n",end:/\bin\b/dgv,endCaptures:{"0":{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-anno":{match:/->/dgv,name:"invalid.illegal.annotation.python"},"illegal-names":{captures:{"1":{name:"keyword.control.flow.python"},"2":{name:"keyword.control.import.python"}},match:/\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\.)lambda|lambda(?=\p{space}*[\.\=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\b/dgv},"illegal-object-name":{comment:"It's illegal to name class or function \"True\"",match:/\b(True|False|None)\b/dgv,name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:/&&|\|\||--|\+\+/dgv,name:"invalid.illegal.operator.python"},{match:/[\?\$]/dgv,name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:/!\b/dgv,name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:/\b(?<!\.)(from)\b(?=[^\n]+import)/dgv,beginCaptures:{"1":{name:"keyword.control.import.python"}},end:/(?=\n?$)|(?=import)/dgv,patterns:[{match:/\.+/dgv,name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:/\b(?<!\.)(import)\b/dgv,beginCaptures:{"1":{name:"keyword.control.import.python"}},end:/(?=\n?$)/dgv,patterns:[{match:/\b(?<!\.)as\b/dgv,name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:/(?=\n?$)[^\n]^/dgv},"inheritance-identifier":{captures:{"1":{name:"entity.other.inherited-class.python"}},match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:/\b(?=[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\[)/dgv,end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:/(?=\])/dgv,patterns:[{match:/:/dgv,name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"meta.indexed-name.python"}]},lambda:{patterns:[{captures:{"1":{name:"keyword.control.flow.python"}},match:/((?<=\.)lambda|lambda(?=\p{space}*[\.\=]))/dgv},{captures:{"1":{name:"storage.type.function.lambda.python"}},match:/\b(lambda)\p{space}*?(?=[\,\n]|(?=\n?$))/dgv},{begin:/\b(lambda)\b/dgv,beginCaptures:{"1":{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:/(:)|(\n)/dgv,endCaptures:{"1":{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:/\//dgv,name:"keyword.operator.positional.parameter.python"},{match:/(\*\*|\*)/dgv,name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}},match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=:|(?=\n?$)))/dgv},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:/\blambda(?=\p{space}*[\,\)])/dgv,name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:/\blambda(?=\p{space}*[\:\,\)])/dgv,name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"keyword.operator.python"}},end:/(,)|(?=:|(?=\n?$))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{"1":{name:"punctuation.separator.continuation.line.python"},"2":{name:"invalid.illegal.line.continuation.python"}},match:/(\\)\p{space}*(\P{space}[^\n]*(?=\n?$)\n?)/dgv},{begin:/(\\)\p{space}*(?=\n?$)\n?/dgv,beginCaptures:{"1":{name:"punctuation.separator.continuation.line.python"}},end:/*@__PURE__*/ new EmulatedRegExp("(?=^\\p{space}*(?=\\n?$))|(?!(\\p{space}*[rR]?('''|\"\"\"|'|\"))|(^(?=\\n?$)))","dgv",{"strategy":"clip_search"}),patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.list.begin.python"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:/\b(True|False|None|NotImplemented|Ellipsis)\b/dgv,name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:/(=)/dgv,beginCaptures:{"1":{name:"keyword.operator.python"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{"1":{name:"support.function.magic.python"}},comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:/\b(__(?:abs|add|aenter|aexit|aiter|and|anext|await|bool|call|ceil|class_getitem|cmp|coerce|complex|contains|copy|deepcopy|del|delattr|delete|delitem|delslice|dir|div|divmod|enter|eq|exit|float|floor|floordiv|format|ge|get|getattr|getattribute|getinitargs|getitem|getnewargs|getslice|getstate|gt|hash|hex|iadd|iand|idiv|ifloordiv||ilshift|imod|imul|index|init|instancecheck|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|missing|mod|mul|ne|neg|new|next|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|reduce|reduce_ex|repr|reversed|rfloordiv||rlshift|rmod|rmul|ror|round|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|set_name|setslice|setstate|sizeof|str|sub|subclasscheck|truediv|trunc|unicode|xor|matmul|rmatmul|imatmul|init_subclass|set_name|fspath|bytes|prepare|length_hint)__)\b/dgv},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{"1":{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:/\b(__(?:all|annotations|bases|builtins|class|closure|code|debug|defaults|dict|doc|file|func|globals|kwdefaults|match_args|members|metaclass|methods|module|mro|mro_entries|name|qualname|post_init|self|signature|slots|subclasses|version|weakref|wrapped|classcell|spec|path|package|future|traceback)__)\b/dgv},"member-access":{begin:/(\.)\p{space}*(?!\.)/dgv,beginCaptures:{"1":{name:"punctuation.separator.period.python"}},end:/(?<=\P{space})(?=[^\p{L}\p{M}\p{N}\p{Pc}])|(^|(?<=\p{space}))(?=[^\\\p{L}\p{M}\p{N}\p{Pc}\p{space}])|(?=\n?$)/dgv,name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-class":{begin:/(\.)\p{space}*(?!\.)/dgv,beginCaptures:{"1":{name:"punctuation.separator.period.python"}},end:/(?<=\P{space})(?=[^\p{L}\p{M}\p{N}\p{Pc}])|(?=\n?$)/dgv,name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:/\b[0-9]+[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"invalid.illegal.name.python"}]},"number-bin":{captures:{"1":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(0[bB])(_?[01])+\b/dgv,name:"constant.numeric.bin.python"},"number-dec":{captures:{"1":{name:"storage.type.imaginary.number.python"},"2":{name:"invalid.illegal.dec.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE\.]))\b/dgv,name:"constant.numeric.dec.python"},"number-float":{captures:{"1":{name:"storage.type.imaginary.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:(?:\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\.)(?:[eE][\+\-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*[eE][\+\-]?[0-9](?:_?[0-9])*)([jJ])?\b/dgv,name:"constant.numeric.float.python"},"number-hex":{captures:{"1":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(0[xX])(_?[0-9a-fA-F])+\b/dgv,name:"constant.numeric.hex.python"},"number-long":{captures:{"2":{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])([1-9][0-9]*|0)([lL])\b/dgv,name:"constant.numeric.bin.python"},"number-oct":{captures:{"1":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(0[oO])(_?[0-7])+\b/dgv,name:"constant.numeric.oct.python"},"odd-function-call":{begin:/(?<=\]|\))\p{space}*(?=\()/dgv,comment:"A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n",end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{"1":{name:"keyword.operator.logical.python"},"2":{name:"keyword.control.flow.python"},"3":{name:"keyword.operator.bitwise.python"},"4":{name:"keyword.operator.arithmetic.python"},"5":{name:"keyword.operator.comparison.python"},"6":{name:"keyword.operator.assignment.python"}},match:/\b(?<!\.)(?:(and|or|not|in|is)|(for|if|else|await|yield(?:\p{space}+from)?))(?!\p{space}*:)\b|(<<|>>|&|\||\^|~)|(\*\*|\*|\+|-|%|\/\/|\/|@)|(!=|==|>=|<=|<|>)|(:=)/dgv},"parameter-special":{captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"variable.parameter.function.language.special.self.python"},"3":{name:"variable.parameter.function.language.special.cls.python"},"4":{name:"punctuation.separator.parameters.python"}},match:/\b((self)|(cls))\b\p{space}*(?:(,)|(?=\)))/dgv},parameters:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.python"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:/\//dgv,name:"keyword.operator.positional.parameter.python"},{match:/(\*\*|\*)/dgv,name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}},match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=[\)\#\n\=]))/dgv},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:/:/dgv,name:"punctuation.separator.colon.python"},{match:/,/dgv,name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:/(\()(\?P=[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?)(\))/dgv,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{"1":{name:"entity.name.tag.backreference.regexp"}},match:/(\\[1-9]\p{Nd}?)/dgv,name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:/\./dgv,name:"support.other.match.any.regexp"},{match:/\^/dgv,name:"support.other.match.begin.regexp"},{match:/\$/dgv,name:"support.other.match.end.regexp"},{match:/[\+\*\?]\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:/\\[abfnrtv\\]/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:/\\([0-7]{1,3})/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(")/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(")|(?<!\\)(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(""")/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(""")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:/\\([^\n]|\n)/dgv,name:"constant.character.escape.regexp"},"regexp-escape-character":{match:/\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})/dgv,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:/\\([AbBdDsSwWZ])/dgv,name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:/\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/dgv,name:"constant.character.unicode.regexp"},"regexp-flags":{match:/\(\?[aiLmsux]+\)/dgv,name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:/\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}/dgv,name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(')/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(')|(?<!\\)(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(''')/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(''')/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"return-annotation":{begin:/(->)/dgv,beginCaptures:{"1":{name:"punctuation.separator.annotation.result.python"}},end:/(?=:)/dgv,patterns:[{include:"#expression"}]},"round-braces":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.begin.python"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:/;(?=\n?$)/dgv,name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?='''))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:/\b(_*[\p{Upper}][_\p{Nd}]*[\p{Upper}])[\p{Upper}\p{Nd}]*(_[\p{L}\p{M}\p{N}\p{Pc}]*)?\b/dgv,name:"constant.other.caps.python"},"special-variables":{captures:{"1":{name:"variable.language.special.self.python"},"2":{name:"variable.language.special.cls.python"}},match:/\b(?<!\.)(?:(self)|(cls))\b/dgv},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:/\b((async\p{space}+)?\p{space}*def)\b/dgv,name:"storage.type.function.python"},{comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:/\b(?<!\.)as\b(?=[^\n]*[\:\\])/dgv,name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:/\b(?<!\.)as\b/dgv,name:"keyword.control.import.python"},{match:/\b(?<!\.)(async|continue|del|assert|break|finally|for|from|elif|else|if|except|pass|raise|return|try|while|with)\b/dgv,name:"keyword.control.flow.python"},{match:/\b(?<!\.)(global|nonlocal)\b/dgv,name:"storage.modifier.declaration.python"},{match:/\b(?<!\.)(class)\b/dgv,name:"storage.type.class.python"},{captures:{"1":{name:"keyword.control.flow.python"}},match:/^\p{space}*(case|match)(?=\p{space}*([\-\+\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\(\[\{'"\:\#]|(?=\n?$)))\b/dgv}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:/(\b[bB])('''|""")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:/(\b[bB])((['"]))/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)|((?<!\\)\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}},match:/(\{\{|\}\}|\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)?\})/dgv,name:"meta.format.brace.python"},{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}},match:/(\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:)[^'"\{\}\n]*(?:\{[^'"\}\n]*?\}[^'"\{\}\n]*)*\})/dgv,name:"meta.format.brace.python"}]},"string-consume-escape":{match:/\\['"\n\\]/dgv},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{"1":{name:"constant.character.format.placeholder.other.python"}},match:/(%(\([\p{L}\p{M}\p{N}\p{Pc}\p{space}]*\))?[\-\+\#0 ]*(\p{Nd}+|\*)?(\.(\p{Nd}+|\*))?([hlL])?[diouxXeEfFgGcrsab\%])/dgv,name:"meta.format.percent.python"},"string-line-continuation":{match:/\\(?=\n?$)/dgv,name:"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{begin:/(?=\{%([^\n]*?(?!'''|"""))%\})/dgv,comment:"template using {% ... %}",end:/(?='''|""")/dgv,patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:/(?=\{%([^\n]*?(?!'''|"""))%\})/dgv,comment:"template using {% ... %}",end:/(?='''|""")/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!'''|""")[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!'''|""")\})/dgv,comment:"odd format or format-like syntax",end:/(?='''|""")/dgv,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!'''|""")[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!'''|""")\})/dgv,comment:"odd format or format-like syntax",end:/(?='''|""")/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:/(?:\b([rR])(?=[uU]))?([uU])?('''|""")/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},end:/(\3)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:/(?:\b([rR])(?=[uU]))?([uU])?((['"]))/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},end:/(\3)|((?<!\\)\n)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:/(\b(?:R[bB]|[bB]R))('''|""")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:/(\b(?:R[bB]|[bB]R))((['"]))/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)|((?<!\\)\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:/\b(([uU]R)|(R))('''|""")/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},end:/(\4)()()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:/\b(([uU]R)|(R))((['"]))/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},end:/(\4)|((?<!\\)\n)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:/(?=\{%([^\n]*?(?!(['"])|((?<!\\)\n)))%\})/dgv,comment:"template using {% ... %}",end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:/(?=\{%([^\n]*?(?!(['"])|((?<!\\)\n)))%\})/dgv,comment:"template using {% ... %}",end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!(['"])|((?<!\\)\n))[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!(['"])|((?<!\\)\n))\})/dgv,comment:"odd format or format-like syntax",end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!(['"])|((?<!\\)\n))[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!(['"])|((?<!\\)\n))\})/dgv,comment:"odd format or format-like syntax",end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},scopeName:"source.python",embeddedLangs:undefined,aliases:["py"]})
3
+ const lang = Object.freeze({displayName:"Python",name:"python",patterns:[{include:"#statement"},{include:"#expression"}],repository:{"annotated-parameter":{begin:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.annotation.python"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:/<<=|>>=|\/\/=|\*\*=|\+=|-=|\/=|@=|\*=|%=|~=|\^=|&=|\|=|=(?!=)/dgv,name:"keyword.operator.assignment.python"},backticks:{begin:/`/dgv,end:/(?:`|(?<!\\)(\n))/dgv,name:"invalid.deprecated.backtick.python",patterns:[{include:"#expression"}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:/(?<!\.)\b((Arithmetic|Assertion|Attribute|Buffer|BlockingIO|BrokenPipe|ChildProcess|(Connection(Aborted|Refused|Reset)?)|EOF|Environment|FileExists|FileNotFound|FloatingPoint|IO|Import|Indentation|Index|Interrupted|IsADirectory|NotADirectory|Permission|ProcessLookup|Timeout|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|Reference|Runtime|Recursion|Syntax|System|Tab|Type|UnboundLocal|Unicode(Encode|Decode|Translate)?|Value|Windows|ZeroDivision|ModuleNotFound)Error|((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes|Resource)?Warning|SystemExit|Stop(Async)?Iteration|KeyboardInterrupt|GeneratorExit|(Base)?Exception)\b/dgv,name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:/(?<!\.)\b(__import__|abs|aiter|all|any|anext|ascii|bin|breakpoint|callable|chr|compile|copyright|credits|delattr|dir|divmod|enumerate|eval|exec|exit|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|license|locals|map|max|memoryview|min|next|oct|open|ord|pow|print|quit|range|reload|repr|reversed|round|setattr|sorted|sum|vars|zip)\b/dgv,name:"support.function.builtin.python"},{match:/(?<!\.)\b(file|reduce|intern|raw_input|unicode|cmp|basestring|execfile|long|xrange)\b/dgv,name:"variable.legacy.builtin.python"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{match:/(?<!\.)\b(bool|bytearray|bytes|classmethod|complex|dict|float|frozenset|int|list|object|property|set|slice|staticmethod|str|tuple|type|super)\b/dgv,name:"support.type.python"},"call-wrapper-inheritance":{begin:/\b(?=([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(\())/dgv,end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:/\p{space}*(class)\p{space}+(?=[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*(:|\())/dgv,beginCaptures:{"1":{name:"storage.type.class.python"}},end:/(:)/dgv,endCaptures:{"1":{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.inheritance.begin.python"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:/(\*\*|\*)/dgv,name:"keyword.operator.unpacking.arguments.python"},{match:/,/dgv,name:"punctuation.separator.inheritance.python"},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.python"},{match:/\bmetaclass\b/dgv,name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{"1":{name:"entity.other.inherited-class.python variable.parameter.class.python"},"2":{name:"keyword.operator.assignment.python"}},match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.type.class.python"}]},codetags:{captures:{"1":{name:"keyword.codetag.notation.python"}},match:/\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\b/dgv},comments:{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("#\\p{space}*(type:)(?:(?=(\\p{space}*))\\2)(?!(?=\\n?$)|#)","dgv",{"hiddenCaptures":[2]}),beginCaptures:{"0":{name:"meta.typehint.comment.python"},"1":{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:/(?:(?=\n?$)|(?=#))/dgv,name:"comment.line.number-sign.python",patterns:[{match:/ignore(?=\p{space}*(?:(?=\n?$)|#))/dgvy,name:"comment.typehint.ignore.notation.python"},{match:/(?<!\.)\b(bool|bytes|float|int|object|str|List|Dict|Iterable|Sequence|Set|FrozenSet|Callable|Union|Tuple|Any|None)\b/dgv,name:"comment.typehint.type.notation.python"},{match:/([\[\]\(\)\,\.\=\*]|(->))/dgv,name:"comment.typehint.punctuation.notation.python"},{match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:/(#)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:/((?=\n?$))/dgv,name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:/(#)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:/((?=\n?$)|(?="""))/dgv,name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:/(#)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:/((?=\n?$)|(?='''))/dgv,name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.dict.begin.python"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.dict.end.python"}},patterns:[{match:/:/dgv,name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:/^\p{space}*((@))\p{space}*(?=[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,beginCaptures:{"1":{name:"entity.name.function.decorator.python"},"2":{name:"punctuation.definition.decorator.python"}},end:/(\))([^\n]*?)(?=\p{space}*(?:#|(?=\n?$)))|(?=\n|#)/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{"2":{name:"punctuation.separator.period.python"}},match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)|(\.)/dgv,name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{"1":{name:"invalid.illegal.decorator.python"}},match:/\p{space}*([^\(\p{Alpha}\p{space}_\.\#\\][^\n]*?)(?=#|(?=\n?$))/dgv,name:"invalid.illegal.decorator.python"}]},docstring:{patterns:[{begin:/('''|""")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},end:/((?!))/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.multi.python",patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:/([rR])('''|""")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.raw.multi.python",patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{begin:/('|")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},end:/((?!))|(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.single.python",patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:/([rR])('|")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)|(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.raw.single.python",patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{captures:{"1":{name:"keyword.control.flow.python"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*((?:>>>|\\.\\.\\.)\\p{space})(?=\\p{space}*\\P{space})","dgv",{"strategy":"clip_search"})},"docstring-statement":{begin:/^(?=\p{space}*[rR]?('''|"""|'|"))/dgv,end:/((?<=(?!))|^)(?!\p{space}*[rR]?('''|"""|'|"))/dgv,patterns:[{include:"#docstring"}]},"double-one-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?="))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?="""))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?="""))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:/\.\.\./dgv,name:"constant.other.ellipsis.python"},"escape-sequence":{match:/\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\"'abfnrtv])/dgv,name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:/\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{[\p{L}\p{M}\p{N}\p{Pc}\p{space}]+?\})/dgv,name:"constant.character.escape.python"}]},expression:{patterns:[{include:"#expression-base"},{include:"#member-access"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv}]},"expression-bare":{patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{patterns:[{include:"#expression-bare"},{include:"#member-access"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:/\{[^\n]*?\}/dgv},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:/\{\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}\}/dgv,name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:/(\b[fF])([bBuU])?('''|""")/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:/(\3)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:/(\b[fF])([bBuU])?((['"]))/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:/(\3)|((?<!\\)\n)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}},match:/(\{)(\p{space}*?)(\})/dgv},{match:/(\{\{|\}\})/dgv,name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:/(\}(?!\}))/dgv,name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:/(\{)(?=[^\n\}]*(?=\n?$)\n?)/dgv,beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},end:/(\})|(?=\n)/dgv,endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},end:/(\})/dgv,endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|'''|"""))|\n/dgv,name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:/(\b[bBuU])([fF])('''|""")/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:/(\3)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:/(\b[bBuU])([fF])((['"]))/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:/(\3)|((?<!\\)\n)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|'''|"""))|\n/dgv,name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:/(\b(?:[rR][fF]|[fF][rR]))('''|""")/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:/(\b(?:[rR][fF]|[fF][rR]))((['"]))/dgv,beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:/(\2)|((?<!\\)\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|(['"])|((?<!\\)\n)))|\n/dgv,name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},end:/(\})|(?=\n)/dgv,endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:/([^\n]+?)(((?=\n?$)\n?)|(?=[\\\}\{]|(['"])|((?<!\\)\n)))|\n/dgv,name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:/(=(![rsa])?)(?=\})/dgv,name:"storage.type.format.python"},{match:/(=?![rsa])(?=\})/dgv,name:"storage.type.format.python"},{captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},match:/(=?(?:![rsa])?)(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)(?=\})/dgv},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:/(=?(?:![rsa])?)(:)(?=[^\n]*?\{)/dgv,beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},end:/(?=\})/dgv,patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:/([bcdeEfFgGnosxX\%])(?=\})/dgv,name:"storage.type.format.python"},{match:/(\.\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(,)/dgv,name:"storage.type.format.python"},{match:/(\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(#)/dgv,name:"storage.type.format.python"},{match:/([\-\+ ])/dgv,name:"storage.type.format.python"},{match:/([\<\>\=\^])/dgv,name:"storage.type.format.python"},{match:/([\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:/(=(![rsa])?)(?=\})/dgv,name:"storage.type.format.python"},{match:/(=?![rsa])(?=\})/dgv,name:"storage.type.format.python"},{captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},match:/(=?(?:![rsa])?)(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)(?=\})/dgv},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:/(=?(?:![rsa])?)(:)(?=[^\n]*?\{)/dgv,beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},end:/(?=\})|(?=\n)/dgv,patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:/([bcdeEfFgGnosxX\%])(?=\})/dgv,name:"storage.type.format.python"},{match:/(\.\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(,)/dgv,name:"storage.type.format.python"},{match:/(\p{Nd}+)/dgv,name:"storage.type.format.python"},{match:/(#)/dgv,name:"storage.type.format.python"},{match:/([\-\+ ])/dgv,name:"storage.type.format.python"},{match:/([\<\>\=\^])/dgv,name:"storage.type.format.python"},{match:/([\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"storage.type.format.python"}]},"function-arguments":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:/(?=\))(?!\)\p{space}*\()/dgv,patterns:[{match:/(,)/dgv,name:"punctuation.separator.arguments.python"},{captures:{"1":{name:"keyword.operator.unpacking.arguments.python"}},match:/(?:(?<=[\,\(])|^)\p{space}*(\*{1,2})/dgv},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{"1":{name:"variable.parameter.function-call.python"},"2":{name:"keyword.operator.assignment.python"}},match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)(?!=)/dgv},{match:/=(?!=)/dgv,name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"punctuation.definition.arguments.begin.python"}},match:/\p{space}*(\))\p{space}*(\()/dgv}]},"function-call":{begin:/\b(?=([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(\())/dgv,end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:/\p{space}*(?:\b(async)\p{space}+)?\b(def)\p{space}+(?=[\p{Alpha}_][\p{Alpha}\p{M}\p{Nd}\p{Pc}]*\p{space}*\()/dgv,beginCaptures:{"1":{name:"storage.type.function.async.python"},"2":{name:"storage.type.function.python"}},end:/(:|(?=[\#'"\n]))/dgv,endCaptures:{"1":{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"entity.name.function.python"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"meta.function-call.generic.python"}]},generator:{begin:/\bfor\b/dgv,beginCaptures:{"0":{name:"keyword.control.flow.python"}},end:/\bin\b/dgv,endCaptures:{"0":{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-anno":{match:/->/dgv,name:"invalid.illegal.annotation.python"},"illegal-names":{captures:{"1":{name:"keyword.control.flow.python"},"2":{name:"keyword.control.import.python"}},match:/\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\.)lambda|lambda(?=\p{space}*[\.\=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\b/dgv},"illegal-object-name":{match:/\b(True|False|None)\b/dgv,name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:/&&|\|\||--|\+\+/dgv,name:"invalid.illegal.operator.python"},{match:/[\?\$]/dgv,name:"invalid.illegal.operator.python"},{match:/!\b/dgv,name:"invalid.illegal.operator.python"}]},import:{patterns:[{begin:/\b(?<!\.)(from)\b(?=[^\n]+import)/dgv,beginCaptures:{"1":{name:"keyword.control.import.python"}},end:/(?=\n?$)|(?=import)/dgv,patterns:[{match:/\.+/dgv,name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:/\b(?<!\.)(import)\b/dgv,beginCaptures:{"1":{name:"keyword.control.import.python"}},end:/(?=\n?$)/dgv,patterns:[{match:/\b(?<!\.)as\b/dgv,name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{match:/(?=\n?$)[^\n]^/dgv},"inheritance-identifier":{captures:{"1":{name:"entity.other.inherited-class.python"}},match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:/\b(?=[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\[)/dgv,end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:/(?=\])/dgv,patterns:[{match:/:/dgv,name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"meta.indexed-name.python"}]},lambda:{patterns:[{captures:{"1":{name:"keyword.control.flow.python"}},match:/((?<=\.)lambda|lambda(?=\p{space}*[\.\=]))/dgv},{captures:{"1":{name:"storage.type.function.lambda.python"}},match:/\b(lambda)\p{space}*?(?=[\,\n]|(?=\n?$))/dgv},{begin:/\b(lambda)\b/dgv,beginCaptures:{"1":{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:/(:)|(\n)/dgv,endCaptures:{"1":{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:/\//dgv,name:"keyword.operator.positional.parameter.python"},{match:/(\*\*|\*)/dgv,name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}},match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=:|(?=\n?$)))/dgv},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:/\blambda(?=\p{space}*[\,\)])/dgv,name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:/\blambda(?=\p{space}*[\:\,\)])/dgv,name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(=)/dgv,beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"keyword.operator.python"}},end:/(,)|(?=:|(?=\n?$))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{"1":{name:"punctuation.separator.continuation.line.python"},"2":{name:"invalid.illegal.line.continuation.python"}},match:/(\\)\p{space}*(\P{space}[^\n]*(?=\n?$)\n?)/dgv},{begin:/(\\)\p{space}*(?=\n?$)\n?/dgv,beginCaptures:{"1":{name:"punctuation.separator.continuation.line.python"}},end:/*@__PURE__*/ new EmulatedRegExp("(?=^\\p{space}*(?=\\n?$))|(?!(\\p{space}*[rR]?('''|\"\"\"|'|\"))|(^(?=\\n?$)))","dgv",{"strategy":"clip_search"}),patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.list.begin.python"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:/\b(True|False|None|NotImplemented|Ellipsis)\b/dgv,name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:/(=)/dgv,beginCaptures:{"1":{name:"keyword.operator.python"}},end:/(,)|(?=\))/dgv,endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{"1":{name:"support.function.magic.python"}},match:/\b(__(?:abs|add|aenter|aexit|aiter|and|anext|await|bool|call|ceil|class_getitem|cmp|coerce|complex|contains|copy|deepcopy|del|delattr|delete|delitem|delslice|dir|div|divmod|enter|eq|exit|float|floor|floordiv|format|ge|get|getattr|getattribute|getinitargs|getitem|getnewargs|getslice|getstate|gt|hash|hex|iadd|iand|idiv|ifloordiv||ilshift|imod|imul|index|init|instancecheck|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|missing|mod|mul|ne|neg|new|next|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|reduce|reduce_ex|repr|reversed|rfloordiv||rlshift|rmod|rmul|ror|round|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|set_name|setslice|setstate|sizeof|str|sub|subclasscheck|truediv|trunc|unicode|xor|matmul|rmatmul|imatmul|init_subclass|set_name|fspath|bytes|prepare|length_hint)__)\b/dgv},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{"1":{name:"support.variable.magic.python"}},match:/\b(__(?:all|annotations|bases|builtins|class|closure|code|debug|defaults|dict|doc|file|func|globals|kwdefaults|match_args|members|metaclass|methods|module|mro|mro_entries|name|qualname|post_init|self|signature|slots|subclasses|version|weakref|wrapped|classcell|spec|path|package|future|traceback)__)\b/dgv},"member-access":{begin:/(\.)\p{space}*(?!\.)/dgv,beginCaptures:{"1":{name:"punctuation.separator.period.python"}},end:/(?<=\P{space})(?=[^\p{L}\p{M}\p{N}\p{Pc}])|(^|(?<=\p{space}))(?=[^\\\p{L}\p{M}\p{N}\p{Pc}\p{space}])|(?=\n?$)/dgv,name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{match:/\b([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\b/dgv,name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-class":{begin:/(\.)\p{space}*(?!\.)/dgv,beginCaptures:{"1":{name:"punctuation.separator.period.python"}},end:/(?<=\P{space})(?=[^\p{L}\p{M}\p{N}\p{Pc}])|(?=\n?$)/dgv,name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:/\b[0-9]+[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"invalid.illegal.name.python"}]},"number-bin":{captures:{"1":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(0[bB])(_?[01])+\b/dgv,name:"constant.numeric.bin.python"},"number-dec":{captures:{"1":{name:"storage.type.imaginary.number.python"},"2":{name:"invalid.illegal.dec.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE\.]))\b/dgv,name:"constant.numeric.dec.python"},"number-float":{captures:{"1":{name:"storage.type.imaginary.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:(?:\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\.)(?:[eE][\+\-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*[eE][\+\-]?[0-9](?:_?[0-9])*)([jJ])?\b/dgv,name:"constant.numeric.float.python"},"number-hex":{captures:{"1":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(0[xX])(_?[0-9a-fA-F])+\b/dgv,name:"constant.numeric.hex.python"},"number-long":{captures:{"2":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])([1-9][0-9]*|0)([lL])\b/dgv,name:"constant.numeric.bin.python"},"number-oct":{captures:{"1":{name:"storage.type.number.python"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}\.])(0[oO])(_?[0-7])+\b/dgv,name:"constant.numeric.oct.python"},"odd-function-call":{begin:/(?<=\]|\))\p{space}*(?=\()/dgv,end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{"1":{name:"keyword.operator.logical.python"},"2":{name:"keyword.control.flow.python"},"3":{name:"keyword.operator.bitwise.python"},"4":{name:"keyword.operator.arithmetic.python"},"5":{name:"keyword.operator.comparison.python"},"6":{name:"keyword.operator.assignment.python"}},match:/\b(?<!\.)(?:(and|or|not|in|is)|(for|if|else|await|yield(?:\p{space}+from)?))(?!\p{space}*:)\b|(<<|>>|&|\||\^|~)|(\*\*|\*|\+|-|%|\/\/|\/|@)|(!=|==|>=|<=|<|>)|(:=)/dgv},"parameter-special":{captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"variable.parameter.function.language.special.self.python"},"3":{name:"variable.parameter.function.language.special.cls.python"},"4":{name:"punctuation.separator.parameters.python"}},match:/\b((self)|(cls))\b\p{space}*(?:(,)|(?=\)))/dgv},parameters:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.python"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:/\//dgv,name:"keyword.operator.positional.parameter.python"},{match:/(\*\*|\*)/dgv,name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}},match:/([\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*)\p{space}*(?:(,)|(?=[\)\#\n\=]))/dgv},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:/:/dgv,name:"punctuation.separator.colon.python"},{match:/,/dgv,name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:/(\()(\?P=[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?)(\))/dgv,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{"1":{name:"entity.name.tag.backreference.regexp"}},match:/(\\[1-9]\p{Nd}?)/dgv,name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:/\./dgv,name:"support.other.match.any.regexp"},{match:/\^/dgv,name:"support.other.match.begin.regexp"},{match:/\$/dgv,name:"support.other.match.end.regexp"},{match:/[\+\*\?]\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:/\\[abfnrtv\\]/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:/\\([0-7]{1,3})/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(")/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(")|(?<!\\)(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(""")/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(""")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:/\\([^\n]|\n)/dgv,name:"constant.character.escape.regexp"},"regexp-escape-character":{match:/\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})/dgv,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:/\\([AbBdDsSwWZ])/dgv,name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:/\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/dgv,name:"constant.character.unicode.regexp"},"regexp-flags":{match:/\(\?[aiLmsux]+\)/dgv,name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:/\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}/dgv,name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(')/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(')|(?<!\\)(\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:/\b(([uU]r)|([bB]r)|(r[bB]?))(''')/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},end:/(''')/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"return-annotation":{begin:/(->)/dgv,beginCaptures:{"1":{name:"punctuation.separator.annotation.result.python"}},end:/(?=:)/dgv,patterns:[{include:"#expression"}]},"round-braces":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.begin.python"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:/;(?=\n?$)/dgv,name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?='))|((?=(?<!\\)\n))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\]|(?='''))/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\)|(?='''))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:/\b(_*[\p{Upper}][_\p{Nd}]*[\p{Upper}])[\p{Upper}\p{Nd}]*(_[\p{L}\p{M}\p{N}\p{Pc}]*)?\b/dgv,name:"constant.other.caps.python"},"special-variables":{captures:{"1":{name:"variable.language.special.self.python"},"2":{name:"variable.language.special.cls.python"}},match:/\b(?<!\.)(?:(self)|(cls))\b/dgv},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:/\b((async\p{space}+)?\p{space}*def)\b/dgv,name:"storage.type.function.python"},{match:/\b(?<!\.)as\b(?=[^\n]*[\:\\])/dgv,name:"keyword.control.flow.python"},{match:/\b(?<!\.)as\b/dgv,name:"keyword.control.import.python"},{match:/\b(?<!\.)(async|continue|del|assert|break|finally|for|from|elif|else|if|except|pass|raise|return|try|while|with)\b/dgv,name:"keyword.control.flow.python"},{match:/\b(?<!\.)(global|nonlocal)\b/dgv,name:"storage.modifier.declaration.python"},{match:/\b(?<!\.)(class)\b/dgv,name:"storage.type.class.python"},{captures:{"1":{name:"keyword.control.flow.python"}},match:/^\p{space}*(case|match)(?=\p{space}*([\-\+\p{L}\p{M}\p{N}\p{Pc}\p{Nd}\(\[\{'"\:\#]|(?=\n?$)))\b/dgv}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:/(\b[bB])('''|""")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:/(\b[bB])((['"]))/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)|((?<!\\)\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}},match:/(\{\{|\}\}|\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:[\p{L}\p{M}\p{N}\p{Pc}]?[\<\>\=\^]?[\-\+ ]?#?\p{Nd}*,?(\.\p{Nd}+)?[bcdeEfFgGnosxX\%]?)?\})/dgv,name:"meta.format.brace.python"},{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}},match:/(\{[\p{L}\p{M}\p{N}\p{Pc}]*(\.[\p{Alpha}_][\p{L}\p{M}\p{N}\p{Pc}]*|\[[^\]'"]+\])*(![rsa])?(:)[^'"\{\}\n]*(?:\{[^'"\}\n]*?\}[^'"\{\}\n]*)*\})/dgv,name:"meta.format.brace.python"}]},"string-consume-escape":{match:/\\['"\n\\]/dgv},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{"1":{name:"constant.character.format.placeholder.other.python"}},match:/(%(\([\p{L}\p{M}\p{N}\p{Pc}\p{space}]*\))?[\-\+\#0 ]*(\p{Nd}+|\*)?(\.(\p{Nd}+|\*))?([hlL])?[diouxXeEfFgGcrsab\%])/dgv,name:"meta.format.percent.python"},"string-line-continuation":{match:/\\(?=\n?$)/dgv,name:"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{begin:/(?=\{%([^\n]*?(?!'''|"""))%\})/dgv,end:/(?='''|""")/dgv,patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:/(?=\{%([^\n]*?(?!'''|"""))%\})/dgv,end:/(?='''|""")/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!'''|""")[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!'''|""")\})/dgv,end:/(?='''|""")/dgv,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!'''|""")[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!'''|""")\})/dgv,end:/(?='''|""")/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:/(?:\b([rR])(?=[uU]))?([uU])?('''|""")/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},end:/(\3)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:/(?:\b([rR])(?=[uU]))?([uU])?((['"]))/dgv,beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},end:/(\3)|((?<!\\)\n)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:/(\b(?:R[bB]|[bB]R))('''|""")/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:/(\b(?:R[bB]|[bB]R))((['"]))/dgv,beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},end:/(\2)|((?<!\\)\n)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:/\b(([uU]R)|(R))('''|""")/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},end:/(\4)()()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:/\b(([uU]R)|(R))((['"]))/dgv,beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},end:/(\4)|((?<!\\)\n)()()/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:/(?=\{%([^\n]*?(?!(['"])|((?<!\\)\n)))%\})/dgv,end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:/(?=\{%([^\n]*?(?!(['"])|((?<!\\)\n)))%\})/dgv,end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!(['"])|((?<!\\)\n))[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!(['"])|((?<!\\)\n))\})/dgv,end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:/(?!\{\{)(?=\{([\p{L}\p{M}\p{N}\p{Pc}]*?(?!(['"])|((?<!\\)\n))[^\!\:\.\[\}\p{L}\p{M}\p{N}\p{Pc}])[^\n]*?(?!(['"])|((?<!\\)\n))\})/dgv,end:/(?=(['"])|((?<!\\)\n))/dgv,patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},scopeName:"source.python",embeddedLangs:undefined,aliases:["py"]})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/regexp.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"RegExp",fileTypes:["re"],name:"regexp",patterns:[{include:"#regexp-expression"}],repository:{codetags:{captures:{"1":{name:"keyword.codetag.notation.python"}},match:/\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\b/dgv},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:/\{[^\n]*?\}/dgv},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:/\{\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}\}/dgv,name:"keyword.operator.quantifier.regexp"},"fstring-formatting-braces":{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:/(\{)(\p{space}*?)(\})/dgv},{match:/(\{\{|\}\})/dgv,name:"constant.character.escape.python"}]},"regexp-backreference":{captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:/(\()(\?P=[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?)(\))/dgv,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{"1":{name:"entity.name.tag.backreference.regexp"}},match:/(\\[1-9]\p{Nd}?)/dgv,name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:/\./dgv,name:"support.other.match.any.regexp"},{match:/\^/dgv,name:"support.other.match.begin.regexp"},{match:/\$/dgv,name:"support.other.match.end.regexp"},{match:/[\+\*\?]\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"regexp-charecter-set-escapes":{patterns:[{match:/\\[abfnrtv\\]/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:/\\([0-7]{1,3})/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-escape-catchall":{match:/\\([^\n]|\n)/dgv,name:"constant.character.escape.regexp"},"regexp-escape-character":{match:/\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})/dgv,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:/\\([AbBdDsSwWZ])/dgv,name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:/\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/dgv,name:"constant.character.unicode.regexp"},"regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#regexp-character-set"},{include:"#regexp-comments"},{include:"#regexp-flags"},{include:"#regexp-named-group"},{include:"#regexp-backreference"},{include:"#regexp-lookahead"},{include:"#regexp-lookahead-negative"},{include:"#regexp-lookbehind"},{include:"#regexp-lookbehind-negative"},{include:"#regexp-conditional"},{include:"#regexp-parentheses-non-capturing"},{include:"#regexp-parentheses"}]},"regexp-flags":{match:/\(\?[aiLmsux]+\)/dgv,name:"storage.modifier.flag.regexp"},"regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#regexp-expression"}]},"regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-quantifier":{match:/\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}/dgv,name:"keyword.operator.quantifier.regexp"}},scopeName:"source.regexp.python",embeddedLangs:undefined,aliases:["regex"]})
1
+ const lang = Object.freeze({displayName:"RegExp",fileTypes:["re"],name:"regexp",patterns:[{include:"#regexp-expression"}],repository:{codetags:{captures:{"1":{name:"keyword.codetag.notation.python"}},match:/\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\b/dgv},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:/\{[^\n]*?\}/dgv},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:/\{\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}\}/dgv,name:"keyword.operator.quantifier.regexp"},"fstring-formatting-braces":{patterns:[{captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}},match:/(\{)(\p{space}*?)(\})/dgv},{match:/(\{\{|\}\})/dgv,name:"constant.character.escape.python"}]},"regexp-backreference":{captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:/(\()(\?P=[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?)(\))/dgv,name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{"1":{name:"entity.name.tag.backreference.regexp"}},match:/(\\[1-9]\p{Nd}?)/dgv,name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:/\./dgv,name:"support.other.match.any.regexp"},{match:/\^/dgv,name:"support.other.match.begin.regexp"},{match:/\$/dgv,name:"support.other.match.end.regexp"},{match:/[\+\*\?]\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-character-set":{patterns:[{match:/\[\^?\](?![^\n]*?\])/dgv},{begin:/(\[)(\^)?(\])?/dgv,beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:/[^\n]/dgv,name:"constant.character.set.regexp"}]}]},"regexp-charecter-set-escapes":{patterns:[{match:/\\[abfnrtv\\]/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:/\\([0-7]{1,3})/dgv,name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-comments":{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"regexp-conditional":{begin:/(\()\?\(([\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?|\p{Nd}+)\)/dgv,beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-escape-catchall":{match:/\\([^\n]|\n)/dgv,name:"constant.character.escape.regexp"},"regexp-escape-character":{match:/\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})/dgv,name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:/\\([AbBdDsSwWZ])/dgv,name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:/\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/dgv,name:"constant.character.unicode.regexp"},"regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#regexp-character-set"},{include:"#regexp-comments"},{include:"#regexp-flags"},{include:"#regexp-named-group"},{include:"#regexp-backreference"},{include:"#regexp-lookahead"},{include:"#regexp-lookahead-negative"},{include:"#regexp-lookbehind"},{include:"#regexp-lookbehind-negative"},{include:"#regexp-conditional"},{include:"#regexp-parentheses-non-capturing"},{include:"#regexp-parentheses"}]},"regexp-flags":{match:/\(\?[aiLmsux]+\)/dgv,name:"storage.modifier.flag.regexp"},"regexp-lookahead":{begin:/(\()\?=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookahead-negative":{begin:/(\()\?!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookbehind":{begin:/(\()\?<=/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookbehind-negative":{begin:/(\()\?<!/dgv,beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-named-group":{begin:/(\()(\?P<[\p{L}\p{M}\p{N}\p{Pc}]+(?:\p{space}+[\p{Alpha}\p{Nd}]+)?>)/dgv,beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#regexp-expression"}]},"regexp-parentheses":{begin:/\(/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-parentheses-non-capturing":{begin:/\(\?:/dgv,beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-quantifier":{match:/\{(\p{Nd}+|\p{Nd}+,(\p{Nd}+)?|,\p{Nd}+)\}/dgv,name:"keyword.operator.quantifier.regexp"}},scopeName:"source.regexp.python",embeddedLangs:undefined,aliases:["regex"]})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/riscv.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"RISC-V",fileTypes:["S","s","riscv","asm"],name:"riscv",patterns:[{comment:"ok actually this are instructions, but one also could call them funtions…",match:/\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r\|w\|s\|c]|csr[w\|s\|c]i)\b/dgv,name:"support.function.pseudo.riscv"},{match:/\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\b/dgv,name:"support.function.riscv"},{comment:"priviledged instructions",match:/\b(ecall|ebreak|sfence\.vma|mret|sret|uret|wfi)\b/dgv,name:"support.function.riscv.privileged"},{comment:"M extension (multiplication and division)",match:/\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\b/dgv,name:"support.function.riscv.m"},{comment:"C extension (compressed instructions)",match:/\b(c\.addi4spn|c\.fld|c\.lq|c\.lw|c\.flw|c\.ld|c\.fsd|c\.sq|c\.sw|c\.fsw|c\.sd|c\.nop|c\.addi|c\.jal|c\.addiw|c\.li|c\.addi16sp|c\.lui|c\.srli|c\.srli64|c\.srai|c\.srai64|c\.andi|c\.sub|c\.xor|c\.or|c\.and|c\.subw|c\.addw|c\.j|c\.beqz|c\.bnez)\b/dgv,name:"support.function.riscv.c"},{comment:"A extension (atomic instructions)",match:/\b(lr\.[w\|d]|sc\.[w\|d]|amoswap\.[w\|d]|amoadd\.[w\|d]|amoxor\.[w\|d]|amoand\.[w\|d]|amoor\.[w\|d]|amomin\.[w\|d]|amomax\.[w\|d]|amominu\.[w\|d]|amomaxu\.[w\|d])\b/dgv,name:"support.function.riscv.a"},{comment:"F extension (single precision floating point)",match:/\b(flw|fsw|fmadd\.s|fmsub\.s|fnmsub\.s|fnmadd\.s|fadd\.s|fsub\.s|fmul\.s|fdiv\.s|fsqrt\.s|fsgnj\.s|fsgnjn\.s|fsgnjx\.s|fmin\.s|fmax\.s|fcvt\.w\.s|fcvt\.wu\.s|fmv\.x\.w|feq\.s|flt\.s|fle\.s|fclass\.s|fcvt\.s\.w|fcvt\.s\.wu|fmv\.w\.x|fcvt\.l\.s|fcvt\.lu\.s|fcvt\.s\.l|fcvt\.s\.lu)\b/dgv,name:"support.function.riscv.f"},{comment:"D extension (double precision floating point)",match:/\b(fld|fsd|fmadd\.d|fmsub\.d|fnmsub\.d|fnmadd\.d|fadd\.d|fsub\.d|fmul\.d|fdiv\.d|fsqrt\.d|fsgnj\.d|fsgnjn\.d|fsgnjx\.d|fmin\.d|fmax\.d|fcvt\.s\.d|fcvt\.d\.s|feq\.d|flt\.d|fle\.d|fclass\.d|fcvt\.w\.d|fcvt\.wu\.d|fcvt\.d\.w|fcvt\.d\.wu|fcvt\.l\.d|fcvt\.lu\.d|fmv\.x\.d|fcvt\.d\.l|fcvt\.d\.lu|fmv\.d\.x)\b/dgv,name:"support.function.riscv.d"},{match:/\.(skip|ascii|asciiz|byte|[2\|4\|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\p{space}*(noat|at)|[s\|u]leb128|string|incbin|zero|rodata|comm|common)\b/dgv,name:"storage.type.riscv"},{match:/\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\b/dgv,name:"storage.modifier.riscv"},{captures:{"1":{name:"entity.name.function.label.riscv"}},match:/\b([A-Za-z0-9_]+):/dgv,name:"meta.function.label.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\b/dgv,name:"variable.other.register.usable.by-number.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\b/dgv,name:"variable.other.register.usable.by-name.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\b/dgv,name:"variable.other.csr.names.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\b/dgv,name:"variable.other.register.usable.floating-point.riscv"},{match:/\b\p{Nd}+\.\p{Nd}+\b/dgv,name:"constant.numeric.float.riscv"},{match:/\b(\p{Nd}+|0(x|X)[a-fA-F0-9]+)\b/dgv,name:"constant.numeric.integer.riscv"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block"},{begin:/\/\//dgv,end:/\n/dgv,name:"comment.line.double-slash"},{begin:/*@__PURE__*/ new EmulatedRegExp("^\\p{space}*#\\p{space}*(define)\\p{space}+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\()(\\p{space}*([a-zA-Z_][a-zA-Z0-9_]*)\\p{space}*((,)\\p{space}*([a-zA-Z_][a-zA-Z0-9_]*)\\p{space}*)*(?:\\.\\.\\.)?)(\\)))?","dgv",{"hiddenCaptures":[6,9],"transfers":[[3,[6,9]]]}),beginCaptures:{"1":{name:"keyword.control.import.define.c"},"2":{name:"entity.name.function.preprocessor.c"},"4":{name:"punctuation.definition.parameters.c"},"5":{name:"variable.parameter.preprocessor.c"},"7":{name:"punctuation.separator.parameters.c"},"8":{name:"punctuation.definition.parameters.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.macro.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"},{include:"$base"}]},{begin:/^\p{space}*#\p{space}*(error|warning)\b/dgv,captures:{"1":{name:"keyword.control.import.error.c"}},end:/(?=\n?$)/dgv,name:"meta.preprocessor.diagnostic.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"}]},{begin:/^\p{space}*#\p{space}*(include|import)\b\p{space}+/dgv,captures:{"1":{name:"keyword.control.import.include.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.c.include",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:/^\p{space}*#\p{space}*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\b/dgv,captures:{"1":{name:"keyword.control.import.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"}]},{begin:/(^[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.riscv"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/#|(\/\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.riscv"}},end:/\n/dgv,name:"comment.line.number-sign.riscv"}]}],scopeName:"source.riscv",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"RISC-V",fileTypes:["S","s","riscv","asm"],name:"riscv",patterns:[{match:/\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r\|w\|s\|c]|csr[w\|s\|c]i)\b/dgv,name:"support.function.pseudo.riscv"},{match:/\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\b/dgv,name:"support.function.riscv"},{match:/\b(ecall|ebreak|sfence\.vma|mret|sret|uret|wfi)\b/dgv,name:"support.function.riscv.privileged"},{match:/\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\b/dgv,name:"support.function.riscv.m"},{match:/\b(c\.addi4spn|c\.fld|c\.lq|c\.lw|c\.flw|c\.ld|c\.fsd|c\.sq|c\.sw|c\.fsw|c\.sd|c\.nop|c\.addi|c\.jal|c\.addiw|c\.li|c\.addi16sp|c\.lui|c\.srli|c\.srli64|c\.srai|c\.srai64|c\.andi|c\.sub|c\.xor|c\.or|c\.and|c\.subw|c\.addw|c\.j|c\.beqz|c\.bnez)\b/dgv,name:"support.function.riscv.c"},{match:/\b(lr\.[w\|d]|sc\.[w\|d]|amoswap\.[w\|d]|amoadd\.[w\|d]|amoxor\.[w\|d]|amoand\.[w\|d]|amoor\.[w\|d]|amomin\.[w\|d]|amomax\.[w\|d]|amominu\.[w\|d]|amomaxu\.[w\|d])\b/dgv,name:"support.function.riscv.a"},{match:/\b(flw|fsw|fmadd\.s|fmsub\.s|fnmsub\.s|fnmadd\.s|fadd\.s|fsub\.s|fmul\.s|fdiv\.s|fsqrt\.s|fsgnj\.s|fsgnjn\.s|fsgnjx\.s|fmin\.s|fmax\.s|fcvt\.w\.s|fcvt\.wu\.s|fmv\.x\.w|feq\.s|flt\.s|fle\.s|fclass\.s|fcvt\.s\.w|fcvt\.s\.wu|fmv\.w\.x|fcvt\.l\.s|fcvt\.lu\.s|fcvt\.s\.l|fcvt\.s\.lu)\b/dgv,name:"support.function.riscv.f"},{match:/\b(fld|fsd|fmadd\.d|fmsub\.d|fnmsub\.d|fnmadd\.d|fadd\.d|fsub\.d|fmul\.d|fdiv\.d|fsqrt\.d|fsgnj\.d|fsgnjn\.d|fsgnjx\.d|fmin\.d|fmax\.d|fcvt\.s\.d|fcvt\.d\.s|feq\.d|flt\.d|fle\.d|fclass\.d|fcvt\.w\.d|fcvt\.wu\.d|fcvt\.d\.w|fcvt\.d\.wu|fcvt\.l\.d|fcvt\.lu\.d|fmv\.x\.d|fcvt\.d\.l|fcvt\.d\.lu|fmv\.d\.x)\b/dgv,name:"support.function.riscv.d"},{match:/\.(skip|ascii|asciiz|byte|[2\|4\|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\p{space}*(noat|at)|[s\|u]leb128|string|incbin|zero|rodata|comm|common)\b/dgv,name:"storage.type.riscv"},{match:/\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\b/dgv,name:"storage.modifier.riscv"},{captures:{"1":{name:"entity.name.function.label.riscv"}},match:/\b([A-Za-z0-9_]+):/dgv,name:"meta.function.label.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\b/dgv,name:"variable.other.register.usable.by-number.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\b/dgv,name:"variable.other.register.usable.by-name.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\b/dgv,name:"variable.other.csr.names.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\b/dgv,name:"variable.other.register.usable.floating-point.riscv"},{match:/\b\p{Nd}+\.\p{Nd}+\b/dgv,name:"constant.numeric.float.riscv"},{match:/\b(\p{Nd}+|0(x|X)[a-fA-F0-9]+)\b/dgv,name:"constant.numeric.integer.riscv"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block"},{begin:/\/\//dgv,end:/\n/dgv,name:"comment.line.double-slash"},{begin:/*@__PURE__*/ new EmulatedRegExp("^\\p{space}*#\\p{space}*(define)\\p{space}+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\()(\\p{space}*([a-zA-Z_][a-zA-Z0-9_]*)\\p{space}*((,)\\p{space}*([a-zA-Z_][a-zA-Z0-9_]*)\\p{space}*)*(?:\\.\\.\\.)?)(\\)))?","dgv",{"hiddenCaptures":[6,9],"transfers":[[3,[6,9]]]}),beginCaptures:{"1":{name:"keyword.control.import.define.c"},"2":{name:"entity.name.function.preprocessor.c"},"4":{name:"punctuation.definition.parameters.c"},"5":{name:"variable.parameter.preprocessor.c"},"7":{name:"punctuation.separator.parameters.c"},"8":{name:"punctuation.definition.parameters.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.macro.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"},{include:"$base"}]},{begin:/^\p{space}*#\p{space}*(error|warning)\b/dgv,captures:{"1":{name:"keyword.control.import.error.c"}},end:/(?=\n?$)/dgv,name:"meta.preprocessor.diagnostic.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"}]},{begin:/^\p{space}*#\p{space}*(include|import)\b\p{space}+/dgv,captures:{"1":{name:"keyword.control.import.include.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.c.include",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:/^\p{space}*#\p{space}*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\b/dgv,captures:{"1":{name:"keyword.control.import.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"}]},{begin:/(^[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.riscv"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/#|(\/\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.riscv"}},end:/\n/dgv,name:"comment.line.number-sign.riscv"}]}],scopeName:"source.riscv",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang