github-linguist 9.4.0 → 9.6.0

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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/etc.json +1 -1
  3. data/grammars/markdown.mojo.codeblock.json +1 -0
  4. data/grammars/markdown.move.codeblock.json +1 -1
  5. data/grammars/source.4dm.json +1 -1
  6. data/grammars/source.abl.json +1 -1
  7. data/grammars/source.apex.json +1 -1
  8. data/grammars/source.astro.json +1 -1
  9. data/grammars/source.baml-jinja.json +1 -0
  10. data/grammars/source.baml.json +1 -0
  11. data/grammars/source.bb.json +1 -1
  12. data/grammars/source.brs.embedded.xml.json +1 -0
  13. data/grammars/source.bsl.json +1 -1
  14. data/grammars/source.c++.json +1 -1
  15. data/grammars/source.c.json +1 -1
  16. data/grammars/source.c3.json +1 -1
  17. data/grammars/source.cel.json +1 -0
  18. data/grammars/source.clarion.json +1 -1
  19. data/grammars/source.cmake.json +1 -1
  20. data/grammars/source.cmakecache.json +1 -1
  21. data/grammars/source.cpan-mirror.json +1 -0
  22. data/grammars/source.cpan-skiplist.json +1 -0
  23. data/grammars/source.cs.json +1 -1
  24. data/grammars/source.csv.json +1 -1
  25. data/grammars/source.curlrc.json +1 -1
  26. data/grammars/source.dart.json +1 -1
  27. data/grammars/source.daslang.json +1 -1
  28. data/grammars/source.data-weave.json +1 -1
  29. data/grammars/source.emacs.lisp.json +1 -1
  30. data/grammars/source.firrtl.json +1 -1
  31. data/grammars/source.flatbuffers.json +1 -0
  32. data/grammars/source.gdscript.json +1 -1
  33. data/grammars/source.gimprc.json +1 -0
  34. data/grammars/source.gimpres.json +1 -0
  35. data/grammars/source.graphql.json +1 -1
  36. data/grammars/source.gtkrc.json +1 -0
  37. data/grammars/source.hack.json +1 -1
  38. data/grammars/source.hosts.json +1 -1
  39. data/grammars/source.il.json +1 -0
  40. data/grammars/source.ilecobol.json +1 -1
  41. data/grammars/source.ink.json +1 -1
  42. data/grammars/source.interp.json +1 -0
  43. data/grammars/source.jac.json +1 -1
  44. data/grammars/source.jactoml.json +1 -0
  45. data/grammars/source.jai.json +1 -1
  46. data/grammars/source.julia.json +1 -1
  47. data/grammars/source.just.json +1 -1
  48. data/grammars/source.lean4.markdown.json +1 -1
  49. data/grammars/source.liquidsoap.json +1 -0
  50. data/grammars/source.llvm.json +1 -1
  51. data/grammars/source.luau.json +1 -1
  52. data/grammars/source.m2.json +1 -1
  53. data/grammars/source.m3u.json +1 -1
  54. data/grammars/source.matlab.json +1 -1
  55. data/grammars/source.mc.json +1 -1
  56. data/grammars/source.mdx.astro.json +1 -1
  57. data/grammars/source.mermaid.json +1 -1
  58. data/grammars/source.metta.json +1 -0
  59. data/grammars/source.mo.json +1 -1
  60. data/grammars/source.mojo.json +1 -1
  61. data/grammars/source.moonbit.config.json +1 -0
  62. data/grammars/source.moonbit.json +1 -1
  63. data/grammars/source.move.json +1 -1
  64. data/grammars/source.opy.json +1 -0
  65. data/grammars/source.pic.json +1 -1
  66. data/grammars/source.pkgconf.json +1 -0
  67. data/grammars/source.powerquery.json +1 -0
  68. data/grammars/source.powershell.json +1 -1
  69. data/grammars/source.prisma.json +1 -1
  70. data/grammars/source.quint.json +1 -0
  71. data/grammars/source.rascal.json +1 -1
  72. data/grammars/source.rascript.json +1 -1
  73. data/grammars/source.record-jar.json +1 -1
  74. data/grammars/source.redscript.json +1 -0
  75. data/grammars/source.rego.json +1 -1
  76. data/grammars/source.ron.json +1 -1
  77. data/grammars/source.rpgle.json +1 -1
  78. data/grammars/source.slang.json +1 -1
  79. data/grammars/source.slint.json +1 -1
  80. data/grammars/source.soql.json +1 -1
  81. data/grammars/source.spicedb-yaml.json +1 -0
  82. data/grammars/source.spicedb.json +1 -0
  83. data/grammars/source.stan.json +1 -1
  84. data/grammars/source.surrealql.json +1 -1
  85. data/grammars/source.swift.json +1 -1
  86. data/grammars/source.tsp.json +1 -1
  87. data/grammars/source.uri-list.json +1 -0
  88. data/grammars/source.v.json +1 -1
  89. data/grammars/source.vento.json +1 -1
  90. data/grammars/source.wgsl.json +1 -1
  91. data/grammars/spicedb-yaml.injection.json +1 -0
  92. data/grammars/text.cachedir.json +1 -0
  93. data/grammars/text.cookie-jar.json +1 -0
  94. data/grammars/text.html.vue.json +1 -1
  95. data/grammars/text.mac-tts.json +1 -0
  96. data/grammars/text.roff.json +1 -1
  97. data/grammars/text.srt.json +1 -1
  98. data/grammars/version +1 -1
  99. data/lib/linguist/VERSION +1 -1
  100. data/lib/linguist/classifier.rb +2 -1
  101. data/lib/linguist/generated.rb +16 -0
  102. data/lib/linguist/generic.yml +2 -0
  103. data/lib/linguist/heuristics.yml +17 -0
  104. data/lib/linguist/language.rb +8 -0
  105. data/lib/linguist/languages.json +1 -1
  106. data/lib/linguist/languages.yml +173 -12
  107. data/lib/linguist/lazy_blob.rb +19 -1
  108. data/lib/linguist/samples.json +1 -1
  109. data/lib/linguist/source/rugged.rb +16 -1
  110. data/lib/linguist/vendor.yml +3 -0
  111. metadata +30 -3
  112. data/grammars/source.vscode.c3.json +0 -1
  113. data/grammars/text.html.vento.json +0 -1
@@ -1 +1 @@
1
- {"name":"RPGLE","scopeName":"source.rpgle","patterns":[{"name":"rpgle.free.allfree","begin":"(?i)(?=(\\*\\*(FREE)))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"keyword.other.rpgle.free.precompiler.allfree","match":"(?i)^\\*\\*FREE"},{"include":"#ctarrays"},{"include":"#freeSQL"},{"include":"#rpglecommon"},{"include":"#freeformat"}]},{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"include":"#tempfreeformat"},{"include":"#fixedSQL"},{"include":"#freeSQL"},{"include":"#precompiler"},{"include":"#ctarrays"},{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"include":"#fixedformat"},{"include":"#freeformat"}],"repository":{"comments":{"patterns":[{"name":"comment.line.rpgle.free","match":"(//).*"}]},"constants":{"patterns":[{"name":"constant.language.rpgle.indicator","match":"(?i)[*]\\b(IN)([0-9]{0,2})\\b"},{"name":"constant.language.rpgle","match":"[*][a-zA-Z][a-zA-Z0-9]*"},{"name":"constant.numeric.rpgle","match":"\\b\\d+\\.?\\d*?\\b"}]},"ctarrays":{"patterns":[{"begin":"(?=^(\\*{2})(?!free))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"string.other.rpgle.ctarray","begin":"^(\\*{2}(\\ |CTDATA))"}]}]},"fixedSQL":{"patterns":[{"begin":"(?i)(?=(^.{5}(C)(\\/EXEC)\\s+(SQL)\\b))","end":"(?i)(?=(^.{5}(C)(\\/END\\-EXEC)\\b))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(C)(\\/EXEC)\\s+(sql)\\b"},{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(C[\\+|\\/])"},{"include":"#sqlcommon"}]},{"name":"keyword.other.rpgle.sql","match":"(?i)(\\/END\\-EXEC)"}]},"fixedcomment":{"patterns":[{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"name":"comment.gutter","match":"^.{5}"},{"name":"comment.block.line.rpgle.fixed","begin":"(?i)(?\u003c=((?\u003c=^.{5}((H|F|D|I|C|O|P))).{74}))","end":"\n"}]},"fixedformat":{"patterns":[{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"},{"name":"rpgle.fixed.h","begin":"(?i)(?\u003c=^.{5}H)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"entity.name.function.rpgle.fixed.h.keywords","match":"\\b(?i)(VALIDATE|USRPRF|TIMFMT|THREAD|TEXT|SRTSEQ|PRFDTA|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECEDIT|DEBUG|DATFMT|DATEDIT|CVTOPT|DCLOPT|CURSYM|COPYRIGHT|CCSIDCVT|CCSID|COPYNEST|BNDDIR|AUT|ALWNULL|ALTSEQ|ALLOC|ACTGRP)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.f","begin":"(?i)(?\u003c=^.{5}F)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.f.type","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{10})))(I|O|U|C)"},{"name":"constant.language.rpgle.fixed.f.designation","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{11})).{3})(P|S|R|T|F)"},{"name":"constant.language.rpgle.fixed.f.eof","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{12})).{2})E"},{"name":"constant.language.rpgle.fixed.f.addition","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{13})).{2})A"},{"name":"constant.language.rpgle.fixed.f.sequence","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{14})).{2})(A|D)"},{"name":"constant.language.rpgle.fixed.f.format","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{15})).{2})(E|F)"},{"name":"constant.language.rpgle.fixed.fi.recordlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F)([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.limitproc","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{5})L"},{"name":"constant.language.rpgle.fixed.fi.keyfieldlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F).{6})([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{11})(A|D|F|G|K|P|T|Z)"},{"name":"constant.language.rpgle.fixed.fi.fileorg","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F.{12})(?i)(I|T)"},{"name":"constant.language.rpgle.fixed.f.device","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{13})(PRINTER|DISK|WORKSTN|SPECIAL|SEQ)"},{"name":"entity.name.function.rpgle.fixed.f","match":"\\b(?i)(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.d","begin":"(?i)(?\u003c=^.{5}D)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"string.quoted.single.rpgle.fixed","begin":"'","end":"'","patterns":[{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"}]},{"name":"variable.other.rpgle.fixed.d.extended.name","match":"(?i)(?\u003c=^.{5}D).[a-zA-Z_][a-zA-Z0-9_]{1,71}[.]{3}"},{"name":"constant.language.rpgle.fixed.d.external","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{15}))E"},{"name":"constant.language.rpgle.fixed.d.dstype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{16}))(S|U)"},{"name":"constant.language.rpgle.fixed.d.dectype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{17}))(DS|PI|PR|(S\\s)|(C\\s))"},{"name":"constant.language.rpgle.fixed.d.from","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{21}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.d.to","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{26}))((\\+|\\-|\\s)(([0-9]|\\s){6}))"},{"name":"constant.language.rpgle.fixed.d.datatype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{33}))(A|B|D|F|G|I|N|P|S|T|U|Z|\\*)"},{"name":"constant.language.rpgle.fixed.d.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{34}))([0-9]|\\s){2}"},{"name":"entity.name.function.rpgle.fixed.d.keywords","match":"\\b(?i)(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|RTNPARM|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PERRCD|PACKEVEN|PACKED|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.i","begin":"(?i)(?\u003c=^.{5}I)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.i.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{10}))[A-Za-z0-9]{2}"},{"name":"constant.language.rpgle.fixed.i.number","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{12}))N"},{"name":"constant.language.rpgle.fixed.i.option","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{13}))O"},{"name":"constant.language.rpgle.fixed.i.recordid","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{14}))(([0-9]{2})|((H|L)([1-9]))|(RT)|((U)([1-8]))|(\\*\\*))"},{"name":"constant.language.rpgle.fixed.i.pos1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{16}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{21}))N"},{"name":"constant.language.rpgle.fixed.i.czd1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{22}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{23}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{24}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{29}))N"},{"name":"constant.language.rpgle.fixed.i.czd2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{30}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{31}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{32}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{37}))N"},{"name":"constant.language.rpgle.fixed.i.czd3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{38}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{39}))([A-Z0-9])"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.c","begin":"(?i)(?\u003c=^.{5}C)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.c.ctrl","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{0}))((L[0-9])|LR|SR|AN)"},{"name":"constant.language.rpgle.fixed.c.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{2}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|(U[1-8])|(O[A-G])|OV))"},{"name":"keyword.other.rpgle.fixed.c.extfactor2","begin":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))((\\s{10})|CALLP|WHEN\\s{2}|RETURN|ON-ERROR|IF\\s{2}|FOR|EVALR|EVAL|ELSEIF|DOW\\s{2}|DOU\\s{2})","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)(AND|COMP|CAB|CAS|DOU|DOW|FOR|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"variable.other","match":"((?i)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*)|\\(|\\)|\\%"}]},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)\\b(AND|COMP|CAB|CAS|DOU|DOW|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"keyword.other.rpgle.fixed.c.operation","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDUR|SUB|SQRT|SORTA|SND\\-MSG|SHTDN|SETON|SETOFF|SETLL|SETGT|SELECT|SCAN|ROLBK|RETURN|RESET|REL|REALLOC|READPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|ON\\-EXIT|ON\\-EXCP|ON\\-ERROR|OCCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MONITOR|MLLZO|MLHZO|MHLZO|MHHZO|LOOKUP|LEAVESR|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FORCE|FOR|FEOD|EXTRCT|EXSR|EXFMT|EXCEPT|EVAL-CORR|EVALR|EVAL|ENDSR|ENDSL|ENDMON|ENDIF|ENDFOR|ENDDO|ENDCS|END|ELSEIF|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELETE|DEFINE|DEALLOC|DATA-INTO|DATA-GEN|COMP|COMMIT|CLOSE|CLEAR|CHECKR|CHECK|CHAIN|CAT|CAS|CALLP|CALLB|CALL|CAB|BITON|BITOFF|BEGSR|AND|ALLOC|ADDUR|ADD|ACQ)"},{"name":"constant.language.rpgle.fixed.c.len","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{57}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.c.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{62}))([0-9]|\\s){2}"},{"name":"constant.language.rpgle.fixed.c.hi","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{64}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.lo","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{66}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.eq","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{68}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"}]},{"name":"rpgle.fixed.o","begin":"(?i)(?\u003c=^.{5}O)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.o.type","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{10}))(H|D|T|E)"},{"name":"constant.language.rpgle.fixed.o.fetch","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{11}))(F|R)"},{"name":"constant.language.rpgle.fixed.o.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{14}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n02","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{17}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n03","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{20}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.spacebefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{33}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.spaceafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{36}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipbefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{39}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{42}))([0-9]|\\s){3}"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.p","begin":"(?i)(?\u003c=^.{5}P)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.p.beginend","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{17}))(B|E)"},{"name":"entity.name.function.rpgle.fixed.p.keywords","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{37}))(SERIALIZE|REQPROTO|PGMINFO|EXPORT)"},{"include":"#rpglecommon"}]}]},"freeSQL":{"patterns":[{"begin":"(?i)(?=(^\\s*(EXEC)\\s+(SQL)\\b))","end":"(?=(;))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(EXEC)\\s+(SQL)\\b"},{"include":"#sqlcommon"}]},{"name":"comment.line.rpgle.sql","match":"(?\u003c=(;))\\s*.*"},{"name":"rpgle.free.sql.end","match":";"}]},"freedefkeywords":{"patterns":[{"name":"entity.name.function.rpgle.free.definition.keywords","match":"(?i)\\b(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|SQLTYPE|SAMEPOS|RTNPARM|REQPROTO|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PGMINFO|PERRCD|PACKEVEN|PACKED|OVERLOAD|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NULLIND|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"}]},"freeformat":{"patterns":[{"name":"rpgle.free.control","begin":"(?i)\\b(?=CTL\\-OPT)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.control","match":"(?i)\\b(CTL\\-OPT)\\b"},{"name":"entity.name.function.rpgle.free.control.keywords","match":"(?i)\\b(VALIDATE|USRPRF|TRUNCNBR|TIMFMT|THREAD|TEXT|STGMDL|SRTSEQ|REQPREXP|PRFDTA|PGMINFO|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECPREC|DECEDIT|DEBUG|DATFMT|DATEYY|DATEDIT|DCLOPT|CVTOPT|CURSYM|COPYRIGHT|COPYNEST|CHARCOUNTTYPES|CHARCOUNT|CCSIDCVT|CCSID|BNDDIR|AUT|ALWNULL|ALTSEQ|ACTGRP|ALLOC)\\b"}]},{"name":"rpgle.free.file","begin":"(?i)\\b(?=DCL\\-F)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.file","match":"(?i)\\b(DCL\\-F)\\b"},{"name":"entity.name.function.rpgle.free.file.keywords","match":"(?i)\\b(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"}]},{"name":"storage.type.rpgle.free.definition.subr","match":"(?i)\\b(BEG|END)SR\\b"},{"name":"rpgle.free.definition.simple","begin":"(?i)(?=(\\b(DCL\\-)(S|C|PARM|SUBF)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.simple","match":"(?i)\\b(DCL\\-)(S|C|PARM|SUBF)\\b"},{"include":"#freeidentifiers"},{"name":"comment.line.rpgle.free","match":"(//).*"}]},{"name":"rpgle.free.definition.complex-single","begin":"(?i)(?=(\\b(DCL\\-)(PR|DS)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex-single.dcl","match":"(?i)\\b(DCL\\-)(PR|DS)\\b"},{"name":"storage.type.rpgle.free.definition.complex-single.end","match":"(?i)\\b(END\\-)(PR|DS)\\b"},{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]},{"name":"rpgle.free.definition.complex","begin":"(?i)(?=(\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"include":"#freedefkeywords"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"keyword.other.rpgle.free","match":"(?i)(?\u003c![A-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ])(ACQ|ADDUR|ALLOC|AND|BEGSR|CALLP|CHAIN|CLEAR|CLOSE|COMMIT|DATA\\-GEN|DATA\\-INTO|DEALLOC|DELETE|DOU|DOW|DSPLY|DUMP|ELSEIF|ELSE|ENDDO|ENDFOR|ENDIF|ENDMON|ENDSL|ENDSR|EVAL\\-CORR|EVALR|EVAL|EXCEPT|EXFMT|EXSR|FEOD|FOR\\-EACH|FOR|FORCE|IF|IN|ITER|LEAVESR|LEAVE|MONITOR|NEXT|ON\\-ERROR|ON\\-EXCP|ON\\-EXIT|OPEN|OR|OTHER|OUT|POST|READC|READE|READP|READPE|READ|REL|RESET|RETURN|ROLBK|SELECT|SETGT|SETLL|SHTDN|SND\\-MSG|SORTA|TEST|UNLOCK|UPDATE|WHEN\\-IN|WHEN\\-IS|WHEN|WRITE|XML\\-INTO|XML\\-SAX)(?![-A-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ])"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},"freeidentifiers":{"patterns":[{"name":"variable.other.rpgle.free.definition.identifier","begin":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*","end":"(?=\n)","patterns":[{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]}]},"keywords":{"patterns":[{"name":"keyword.operator.rpgle","match":"\\*{1,2}(=)?|=|\u003c\u003e|((\u003c|\u003e|\\+|\\-|\\/)(=)?)"},{"name":"keyword.other.rpgle","match":":|\\.|\\,|((\\b(?i)(TO|BY|DOWNTO|IN|AND|OR|NOT)\\b))"},{"name":"support.function.rpgle.bif","match":"[%](?i)(YEARS|XML|XLATE|XFOOT|UPPER|UNSH|UNS|UCS2|TRIMR|TRIML|TRIM|TLOOKUPLT|TLOOKUPLE|TLOOKUPGT|TLOOKUPGE|TLOOKUP|TIMESTAMP|TIME|THIS|TARGET|SUBST|SUBDT|SUBARR|STR|STATUS|SQRT|SPLIT|SIZE|SHTDN|SECONDS|SCANRPL|SCANR|SCAN|RIGHT|REPLACE|REM|REALLOC|RANGE|PROC|PASSED|PARSER|PARMNUM|PARMS|PADDR|OPEN|OMITTED|OCCUR|NULLIND|MSG|MSECONDS|MONTHS|MINUTES|MINARR|MIN|MAXARR|MAX|LOWER|LOVAL|LOOKUPLT|LOOKUPLE|LOOKUPGT|LOOKUPGE|LOOKUP|LIST|LEN|LEFT|KDS|INTH|INT|HOURS|HIVAL|HANDLER|GRAPH|GEN|FOUND|FLOAT|FIELDS|ERROR|EQUAL|EOF|ELEM|EDITW|EDITFLT|EDITC|DIV|DIFF|DECPOS|DECH|DEC|DAYS|DATE|DATA|CONCATARR|CONCAT|CHECKR|CHECK|CHARCOUNT|CHAR|BITXOR|BITOR|BITNOT|BITAND|ALLOC|ADDR|ABS)"}]},"precompiler":{"patterns":[{"name":"rpgle.fixed.precompiler.title","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.fixed.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.title"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.title"}}},{"name":"rpgle.free.precompiler.title","begin":"(?i)^\\s*(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.free.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.title"}}},{"name":"rpgle.fixed.precompiler.include","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(INCLUDE|COPY))\\s","end":"\n","patterns":[{"name":"string.other.rpgle.precompiler.include","begin":"\\S","end":"\\s"},{"name":"comment.other.rpgle.precompiler.include","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.include"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.include"}}},{"name":"rpgle.free.precompiler.include","begin":"(?i)^\\s*(\\/(INCLUDE|COPY))\\s+(\\S+)(.*)","end":"\n","beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.include"},"3":{"name":"string.other.rpgle.precompiler.include"},"4":{"name":"comment.other.rpgle.precompiler.include"}}},{"name":"rpgle.fixed.precompiler.conditional","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(ELSEIF|IF))\\b(NOT|UNDEFINED|DEFINED)\\b(.*)","end":"(?i)(?=^.{5})(H|F|D|I|C|O|P|\\s)(\\/ENDIF)","patterns":[{"include":"#fixedformat"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"},"3":{"name":"keyword.other.rpgle.fixed.precompiler.defcheck"}},"endCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"}}},{"name":"rpgle.free.precompiler.conditional","begin":"(?i)(?=(^[\\s]*\\/IF))","end":"(?i)(?=(^[\\s]*\\/ENDIF))","patterns":[{"name":"keyword.control.rpgle.precompiler.if","match":"(?i)^[\\s]*\\/(ELSEIF|IF)"},{"name":"keyword.other.rpgle.precompiler.defcheck","match":"(?i)\\s*\\b(NOT|UNDEFINED|DEFINED)\\b"},{"include":"#freeformat"}]},{"name":"rpgle.precompiler.charcount","begin":"(?i)(?=(^[\\s]*\\/CHARCOUNT))","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler.charcount","match":"(?i)^[\\s]*\\/CHARCOUNT"},{"name":"keyword.other.rpgle.precompiler.charcount.mode","match":"(?i)\\s*\\b(NATURAL|STDCHARSIZE)\\b"}]},{"name":"rpgle.fixed.precompiler.misc","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(UNDEFINE|SPACE|FREE|EOF|END-FREE|ELSE|EJECT|DEFINE|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.misc"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.misc"}}},{"name":"rpgle.free.precompiler.misc","begin":"(?i)^[\\s]*(\\/(UNDEFINE|TITLE|SPACE|INCLUDE|FREE|EOF|ENDIF|END-FREE|ELSE|EJECT|DEFINE|COPY|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.misc"}}}]},"rpglecommon":{"patterns":[{"include":"#comments"},{"include":"#freedefkeywords"},{"include":"#sqlvariables"},{"include":"#constants"},{"include":"#precompiler"},{"include":"#keywords"},{"include":"#strings"}]},"sqlcommon":{"patterns":[{"name":"comment.line.rpgle.rpgle.sql","match":"//.*"},{"name":"constant.language.rpgle.sql.globals","match":"(?i)\\b(CLIENT_HOST|CLIENT_IPADDR|CLIENT_PORT|JOB_NAME|PACKAGE_NAME|PACKAGE_SCHEMA|PACKAGE_VERSION|PROCESS_ID|ROUTINE_SCHEMA|ROUTINE_SPECIFIC_NAME|ROUTINE_TYPE|SERVER_MODE_JOB_NAME|THREAD_ID)\\b"},{"name":"support.function.rpgle.sql","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(?=\\()"},{"name":"constant.language.rpgle.sql.schema","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(\\.|\\/)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*"},{"name":"variable.parameter.rpgle.sql","match":"[:][a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ\\.]*"},{"name":"keyword.operator.rpgle.sql.reserved","match":"(?i)\\b(ZONE|YES|YEARS|YEAR|XSROBJECT|XSLTRANSFORM|XMLVALIDATE|XMLTEXT|XMLTABLE|XMLSERIALIZE|XMLROW|XMLPI|XMLPARSE|XMLNAMESPACES|XMLGROUP|XMLFOREST|XMLELEMENT|XMLDOCUMENT|XMLCONCAT|XMLCOMMENT|XMLCAST|XMLATTRIBUTES|XMLAGG|WRKSTNNAME|WRITE|WRAPPER|WRAPPED|WITHOUT|WITHIN|WITH|WHILE|WHERE|WHENEVER|WHEN|WAIT|VOLATILE|VIEW|VERSION|VCAT|VARIANT|VARIABLE|VALUES|VALUE|USING|USERID|USER|USE|USAGE|URI|UPDATING|UPDATE|UNTIL|UNNEST|UNIT|UNIQUE|UNION|UNDO|TYPE|TRUNCATE|TRIM_ARRAY|TRIM|TRIGGER|TRANSFER|TRANSACTION|TO|TIMESTAMP|TIME|THREADSAFE|THEN|TABLESPACES|TABLESPACE|TABLE|SYSTEM_USER|SYNONYM|SUMMARY|SUBSTRING|STOGROUP|STATIC|STATEMENT|STARTING|START|STACKED|SQLID|SQL|SPECIFIC|SOURCE|SOME|SNAN|SKIP|SIMPLE|SIGNAL|SET|SESSION_USER|SESSION|SEQUENCE|SENSITIVE|SELECT|SECURED|SECQTY|SECONDS|SECOND|SEARCH|SCROLL|SCRATCHPAD|SCHEMA|SBCS|SAVEPOINT|RUN|RRN|ROW_NUMBER|ROWS|ROWNUMBER|ROW|ROUTINE|ROLLUP|ROLLBACK|RIGHT|RID|REVOKE|RETURNS|RETURNING|RETURN|RESULT_SET_LOCATOR|RESULT|RESTART|RESIGNAL|RESET|REPEAT|RENAME|RELEASE|REGEXP_LIKE|REFRESH|REFERENCING|REFERENCES|RECOVERY|READS|READ|RCDFMT|RANK|RANGE|QUERY|PROGRAMID|PROGRAM|PROCEDURE|PRIVILEGES|PRIQTY|PRIOR|PRIMARY|PREVVAL|PREPARE|POSITION|PLAN|PIPE|PIECESIZE|PERMISSION|PCTFREE|PATH|PASSWORD|PASSING|PARTITIONS|PARTITIONING|PARTITIONED|PARTITION|PART|PARAMETER|PAGESIZE|PAGE|PADDED|PACKAGE|OVERRIDING|OVERLAY|OVER|OUTER|OUT|ORGANIZE|ORDINALITY|ORDER|OR|OPTION|OPTIMIZE|OPEN|ONLY|ON|OMIT|OLD_TABLE|OLD|OFFSET|OF|OBID|NVARCHAR|NULLS|NULL|NOT|NORMALIZED|NOORDER|NONE|NOMINVALUE|NOMAXVALUE|NODENUMBER|NODENAME|NOCYCLE|NOCACHE|NO|NEXTVAL|NEW_TABLE|NEW|NESTED|NCLOB|NCHAR|NATIONAL|NAN|NAMESPACE|MONTHS|MONTH|MODIFIES|MODE|MIXED|MINVALUE|MINUTES|MINUTE|MINPCTUSED|MICROSECONDS|MICROSECOND|MERGE|MAXVALUE|MATERIALIZED|MATCHED|MASK|MAINTAINED|LOOP|LONG|LOGGED|LOG|LOCKSIZE|LOCK|LOCATOR|LOCATION|LOCALTIMESTAMP|LOCALTIME|LOCALDATE|LOCAL|LISTAGG|LINKTYPE|LIMIT|LIKE|LEVEL2|LEFT|LEAVE|LATERAL|LANGUAGE|LABEL|KEY|KEEP|JSON_VALUE|JSON_TABLE|JSON_QUERY|JSON_OBJECTAGG|JSON_OBJECT|JSON_EXISTS|JSON_ARRAYAGG|JSON_ARRAY|JOIN|JAVA|ITERATE|ISOLATION|IS|INTO|INTERSECT|INTEGRITY|INSERTING|INSERT|INSENSITIVE|INOUT|INNER|INLINE|INHERIT|INFINITY|INF|INDICATOR|INDEXBP|INDEX|INCREMENT|INCLUSIVE|INCLUDING|INCLUDE|IMPLICITLY|IMMEDIATE|IGNORE|IF|IDENTITY|ID|HOURS|HOUR|HOLD|HINT|HAVING|HASHED_VALUE|HASH|HANDLER|GROUP|GRAPHIC|GRANT|GOTO|GO|GLOBAL|GET|GENERATED|GENERAL|GBPCACHE|FUNCTION|FULL|FROM|FREEPAGE|FREE|FORMAT|FOREIGN|FOR|FINAL|FILE|FIELDPROC|FETCH|FENCED|EXTRACT|EXTERNAL|EXTEND|EXIT|EXISTS|EXECUTE|EXCLUSIVE|EXCLUDING|EXCEPTION|EXCEPT|EVERY|ESCAPE|ERROR|ENFORCED|ENDING|END|ENCRYPTION|ENCODING|ENABLE|EMPTY|ELSEIF|ELSE|EACH|DYNAMIC|DROP|DOUBLE|DOCUMENT|DO|DISTINCT|DISCONNECT|DISALLOW|DISABLE|DIAGNOSTICS|DETERMINISTIC|DESCRIPTOR|DESCRIBE|DESC|DENSE_RANK|DENSERANK|DELETING|DELETE|DEFINITION|DEFINE|DEFER|DEFAULTS|DEFAULT|DECLARE|DEALLOCATE|DEACTIVATE|DBPARTITIONNUM|DBPARTITIONNAME|DBINFO|DB2SQL|DB2GENRL|DB2GENERAL|DAYS|DAY|DATE|DATAPARTITIONNUM|DATAPARTITIONNAME|DATABASE|DATA|CYCLE|CURSOR|CURRENT_USER|CURRENT_TIMEZONE|CURRENT_TIMESTAMP|CURRENT_TIME|CURRENT_SERVER|CURRENT_SCHEMA|CURRENT_PATH|CURRENT_DATE|CURRENT|CUBE|CROSS|CREATEIN|CREATE|COUNT_BIG|COUNT|COPY|CONTINUE|CONTENT|CONTAINS|CONSTRAINT|CONSTANT|CONNECT_BY_ROOT|CONNECTION|CONNECT|CONDITION|CONCURRENT|CONCAT|COMPRESS|COMPACT|COMMIT|COMMENT|COLUMN|COLLECTION|COLLECT|CLUSTER|CLOSE|CL|CHECK|CHARACTER|CHAR|CCSID|CAST|CASE|CARDINALITY|CALLED|CALL|CACHE|BY|BUFFERPOOL|BIT|BIND|BINARY|BETWEEN|BEGIN|BEFORE|AUTONOMOUS|AUTHORIZATION|ATTRIBUTES|ATOMIC|AT|ASSOCIATE|ASENSITIVE|ASC|AS|ARRAY_AGG|ARRAY|APPLNAME|APPEND|ANY|AND|ALTER|ALLOW|ALLOCATE|ALL|ALIAS|ADD|ACTIVATE|ACTION|ACCTNG|ACCORDING|ABSENT)\\b"},{"include":"source.sql"}]},"sqlvariables":{"patterns":[{"name":"variable.language.rpgle.sql","match":"(?i)\\b(SQLWRN|SQLWNA|SQLWN9|SQLWN8|SQLWN7|SQLWN6|SQLWN5|SQLWN4|SQLWN3|SQLWN2|SQLWN1|SQLWN0|SQLWARN|SQLSTT|SQLSTATE|SQLCODE|SQLCOD|SQLERRP|SQLERRML|SQLERRMC|SQLERRD|SQLERR|SQLERP|SQLERM|SQLERL|SQLER6|SQLER5|SQLER4|SQLER3|SQLER2|SQLER1)\\b"}]},"strings":{"patterns":[{"name":"string.other.rpgle.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.rpgle","begin":"'","end":"'"}]},"tempfreeformat":{"patterns":[{"begin":"(?i)(?=((\\/FREE\\b)))","end":"(?i)(?=((\\/END-FREE\\b)))","patterns":[{"name":"keyword.control.rpgle.precompiler","match":"(?i)^.*(\\/FREE\\b)"},{"include":"#rpglecommon"},{"include":"#freeformat"},{"include":"#freeSQL"}]},{"name":"keyword.control.rpgle.precompiler","match":"^.*(\\/END-FREE\\b)"}]}}}
1
+ {"name":"RPGLE","scopeName":"source.rpgle","patterns":[{"name":"rpgle.free.allfree","begin":"(?i)(?=(\\*\\*(FREE)))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"keyword.other.rpgle.free.precompiler.allfree","match":"(?i)^\\*\\*FREE"},{"include":"#ctarrays"},{"include":"#freeSQL"},{"include":"#rpglecommon"},{"include":"#freeformat"}]},{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"include":"#tempfreeformat"},{"include":"#fixedSQL"},{"include":"#freeSQL"},{"include":"#precompiler"},{"include":"#ctarrays"},{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"include":"#fixedformat"},{"include":"#freeformat"}],"repository":{"comments":{"patterns":[{"name":"comment.line.rpgle.free","match":"(//).*"}]},"constants":{"patterns":[{"name":"constant.language.rpgle.indicator","match":"(?i)[*]\\b(IN)([0-9]{0,2})\\b"},{"name":"constant.language.rpgle","match":"[*][a-zA-Z][a-zA-Z0-9]*"},{"name":"constant.numeric.rpgle","match":"\\b\\d+\\.?\\d*?\\b"}]},"ctarrays":{"patterns":[{"begin":"(?=^(\\*{2})(?!free))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"string.other.rpgle.ctarray","begin":"^(\\*{2}(\\ |CTDATA))"}]}]},"fixedSQL":{"patterns":[{"begin":"(?i)(?=(^.{5}(C)(\\/EXEC)\\s+(SQL)\\b))","end":"(?i)(?=(^.{5}(C)(\\/END\\-EXEC)\\b))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(C)(\\/EXEC)\\s+(sql)\\b"},{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(C[\\+|\\/])"},{"include":"#sqlcommon"}]},{"name":"keyword.other.rpgle.sql","match":"(?i)(\\/END\\-EXEC)"}]},"fixedcomment":{"patterns":[{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"name":"comment.gutter","match":"^.{5}"},{"name":"comment.block.line.rpgle.fixed","begin":"(?i)(?\u003c=((?\u003c=^.{5}((H|F|D|I|C|O|P))).{74}))","end":"\n"}]},"fixedformat":{"patterns":[{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"},{"name":"rpgle.fixed.h","begin":"(?i)(?\u003c=^.{5}H)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"entity.name.function.rpgle.fixed.h.keywords","match":"\\b(?i)(VALIDATE|USRPRF|TIMFMT|THREAD|TEXT|SRTSEQ|PRFDTA|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECEDIT|DEBUG|DATFMT|DATEDIT|CVTOPT|DCLOPT|CURSYM|COPYRIGHT|CCSIDCVT|CCSID|COPYNEST|BNDDIR|AUT|ALWNULL|ALTSEQ|ALLOC|ACTGRP)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.f","begin":"(?i)(?\u003c=^.{5}F)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.f.type","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{10})))(I|O|U|C)"},{"name":"constant.language.rpgle.fixed.f.designation","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{11})).{3})(P|S|R|T|F)"},{"name":"constant.language.rpgle.fixed.f.eof","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{12})).{2})E"},{"name":"constant.language.rpgle.fixed.f.addition","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{13})).{2})A"},{"name":"constant.language.rpgle.fixed.f.sequence","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{14})).{2})(A|D)"},{"name":"constant.language.rpgle.fixed.f.format","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{15})).{2})(E|F)"},{"name":"constant.language.rpgle.fixed.fi.recordlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F)([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.limitproc","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{5})L"},{"name":"constant.language.rpgle.fixed.fi.keyfieldlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F).{6})([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{11})(A|D|F|G|K|P|T|Z)"},{"name":"constant.language.rpgle.fixed.fi.fileorg","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F.{12})(?i)(I|T)"},{"name":"constant.language.rpgle.fixed.f.device","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{13})(PRINTER|DISK|WORKSTN|SPECIAL|SEQ)"},{"name":"entity.name.function.rpgle.fixed.f","match":"\\b(?i)(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.d","begin":"(?i)(?\u003c=^.{5}D)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"string.quoted.single.rpgle.fixed","begin":"'","end":"'","patterns":[{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"}]},{"name":"variable.other.rpgle.fixed.d.extended.name","match":"(?i)(?\u003c=^.{5}D).[a-zA-Z_][a-zA-Z0-9_]{1,71}[.]{3}"},{"name":"constant.language.rpgle.fixed.d.external","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{15}))E"},{"name":"constant.language.rpgle.fixed.d.dstype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{16}))(S|U)"},{"name":"constant.language.rpgle.fixed.d.dectype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{17}))(DS|PI|PR|(S\\s)|(C\\s))"},{"name":"constant.language.rpgle.fixed.d.from","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{21}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.d.to","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{26}))((\\+|\\-|\\s)(([0-9]|\\s){6}))"},{"name":"constant.language.rpgle.fixed.d.datatype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{33}))(A|B|D|F|G|I|N|P|S|T|U|Z|\\*)"},{"name":"constant.language.rpgle.fixed.d.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{34}))([0-9]|\\s){2}"},{"name":"entity.name.function.rpgle.fixed.d.keywords","match":"\\b(?i)(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|RTNPARM|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PERRCD|PACKEVEN|PACKED|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.i","begin":"(?i)(?\u003c=^.{5}I)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.i.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{10}))[A-Za-z0-9]{2}"},{"name":"constant.language.rpgle.fixed.i.number","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{12}))N"},{"name":"constant.language.rpgle.fixed.i.option","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{13}))O"},{"name":"constant.language.rpgle.fixed.i.recordid","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{14}))(([0-9]{2})|((H|L)([1-9]))|(RT)|((U)([1-8]))|(\\*\\*))"},{"name":"constant.language.rpgle.fixed.i.pos1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{16}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{21}))N"},{"name":"constant.language.rpgle.fixed.i.czd1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{22}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{23}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{24}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{29}))N"},{"name":"constant.language.rpgle.fixed.i.czd2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{30}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{31}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{32}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{37}))N"},{"name":"constant.language.rpgle.fixed.i.czd3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{38}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{39}))([A-Z0-9])"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.c","begin":"(?i)(?\u003c=^.{5}C)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.c.ctrl","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{0}))((L[0-9])|LR|SR|AN)"},{"name":"constant.language.rpgle.fixed.c.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{2}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|(U[1-8])|(O[A-G])|OV))"},{"name":"keyword.other.rpgle.fixed.c.extfactor2","begin":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))((\\s{10})|CALLP|WHEN\\s{2}|RETURN|ON-ERROR|IF\\s{2}|FOR|EVALR|EVAL|ELSEIF|DOW\\s{2}|DOU\\s{2})","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)(AND|COMP|CAB|CAS|DOU|DOW|FOR|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"variable.other","match":"((?i)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*)|\\(|\\)|\\%"}]},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)\\b(AND|COMP|CAB|CAS|DOU|DOW|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"keyword.other.rpgle.fixed.c.operation","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDUR|SUB|SQRT|SORTA|SND\\-MSG|SHTDN|SETON|SETOFF|SETLL|SETGT|SELECT|SCAN|ROLBK|RETURN|RESET|REL|REALLOC|READPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|ON\\-EXIT|ON\\-EXCP|ON\\-ERROR|OCCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MONITOR|MLLZO|MLHZO|MHLZO|MHHZO|LOOKUP|LEAVESR|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FORCE|FOR|FEOD|EXTRCT|EXSR|EXFMT|EXCEPT|EVAL-CORR|EVALR|EVAL|ENDSR|ENDSL|ENDMON|ENDIF|ENDFOR|ENDDO|ENDCS|END|ELSEIF|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELETE|DEFINE|DEALLOC|DATA-INTO|DATA-GEN|COMP|COMMIT|CLOSE|CLEAR|CHECKR|CHECK|CHAIN|CAT|CAS|CALLP|CALLB|CALL|CAB|BITON|BITOFF|BEGSR|AND|ALLOC|ADDUR|ADD|ACQ)"},{"name":"constant.language.rpgle.fixed.c.len","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{57}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.c.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{62}))([0-9]|\\s){2}"},{"name":"constant.language.rpgle.fixed.c.hi","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{64}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.lo","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{66}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.eq","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{68}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"}]},{"name":"rpgle.fixed.o","begin":"(?i)(?\u003c=^.{5}O)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.o.type","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{10}))(H|D|T|E)"},{"name":"constant.language.rpgle.fixed.o.fetch","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{11}))(F|R)"},{"name":"constant.language.rpgle.fixed.o.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{14}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n02","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{17}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n03","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{20}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.spacebefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{33}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.spaceafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{36}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipbefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{39}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{42}))([0-9]|\\s){3}"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.p","begin":"(?i)(?\u003c=^.{5}P)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.p.beginend","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{17}))(B|E)"},{"name":"entity.name.function.rpgle.fixed.p.keywords","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{37}))(SERIALIZE|REQPROTO|PGMINFO|EXPORT)"},{"include":"#rpglecommon"}]}]},"freeSQL":{"patterns":[{"begin":"(?i)(?=(^\\s*(EXEC)\\s+(SQL)\\b))","end":"(?=(;))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(EXEC)\\s+(SQL)\\b"},{"include":"#sqlcommon"}]},{"name":"comment.line.rpgle.sql","match":"(?\u003c=(;))\\s*.*"},{"name":"rpgle.free.sql.end","match":";"}]},"freedefkeywords":{"patterns":[{"name":"entity.name.function.rpgle.free.definition.keywords","match":"(?i)\\b(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|SQLTYPE|SAMEPOS|RTNPARM|REQPROTO|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PGMINFO|PERRCD|PACKEVEN|PACKED|OVERLOAD|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NULLIND|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"}]},"freeformat":{"patterns":[{"name":"rpgle.free.control","begin":"(?i)\\b(?=CTL\\-OPT)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.control","match":"(?i)\\b(CTL\\-OPT)\\b"},{"name":"entity.name.function.rpgle.free.control.keywords","match":"(?i)\\b(VALIDATE|USRPRF|TRUNCNBR|TIMFMT|THREAD|TEXT|STGMDL|SRTSEQ|REQPREXP|PRFDTA|PGMINFO|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECPREC|DECEDIT|DEBUG|DATFMT|DATEYY|DATEDIT|DCLOPT|CVTOPT|CURSYM|COPYRIGHT|COPYNEST|CHARCOUNTTYPES|CHARCOUNT|CCSIDCVT|CCSID|BNDDIR|AUT|ALWNULL|ALTSEQ|ACTGRP|ALLOC)\\b"}]},{"name":"rpgle.free.file","begin":"(?i)\\b(?=DCL\\-F)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.file","match":"(?i)\\b(DCL\\-F)\\b"},{"name":"entity.name.function.rpgle.free.file.keywords","match":"(?i)\\b(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"}]},{"name":"storage.type.rpgle.free.definition.subr","match":"(?i)\\b(BEG|END)SR\\b"},{"name":"rpgle.free.definition.simple","begin":"(?i)(?=(\\b(DCL\\-)(S|C|PARM|SUBF)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.simple","match":"(?i)\\b(DCL\\-)(S|C|PARM|SUBF)\\b"},{"include":"#freeidentifiers"},{"name":"comment.line.rpgle.free","match":"(//).*"}]},{"name":"rpgle.free.definition.complex","begin":"(?i)(?=(\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"include":"#freedefkeywords"},{"include":"#rpglecommon"},{"name":"variable.other.rpgle.free.definition.identifier","match":"\\b[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*\\b"}]},{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"keyword.other.rpgle.free","match":"(?i)(?\u003c![A-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ])(ACQ|ADDUR|ALLOC|AND|BEGSR|CALLP|CHAIN|CLEAR|CLOSE|COMMIT|DATA\\-GEN|DATA\\-INTO|DEALLOC|DELETE|DOU|DOW|DSPLY|DUMP|ELSEIF|ELSE|ENDDO|ENDFOR|ENDIF|ENDMON|ENDSL|ENDSR|EVAL\\-CORR|EVALR|EVAL|EXCEPT|EXFMT|EXSR|FEOD|FOR\\-EACH|FOR|FORCE|IF|IN|ITER|LEAVESR|LEAVE|MONITOR|NEXT|ON\\-ERROR|ON\\-EXCP|ON\\-EXIT|OPEN|OR|OTHER|OUT|POST|READC|READE|READP|READPE|READ|REL|RESET|RETURN|ROLBK|SELECT|SETGT|SETLL|SHTDN|SND\\-MSG|SORTA|TEST|UNLOCK|UPDATE|WHEN\\-IN|WHEN\\-IS|WHEN|WRITE|XML\\-INTO|XML\\-SAX)(?![-A-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ])"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},"freeidentifiers":{"patterns":[{"name":"variable.other.rpgle.free.definition.identifier","begin":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*","end":"(?=\n)","patterns":[{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]}]},"keywords":{"patterns":[{"name":"keyword.operator.rpgle","match":"\\*{1,2}(=)?|=|\u003c\u003e|((\u003c|\u003e|\\+|\\-|\\/)(=)?)"},{"name":"keyword.other.rpgle","match":":|\\.|\\,|((\\b(?i)(TO|BY|DOWNTO|IN|AND|OR|NOT)\\b))"},{"name":"support.function.rpgle.bif","match":"[%](?i)(YEARS|XML|XLATE|XFOOT|UPPER|UNSH|UNS|UCS2|TRIMR|TRIML|TRIM|TLOOKUPLT|TLOOKUPLE|TLOOKUPGT|TLOOKUPGE|TLOOKUP|TIMESTAMP|TIME|THIS|TARGET|SUBST|SUBDT|SUBARR|STR|STATUS|SQRT|SPLIT|SIZE|SHTDN|SECONDS|SCANRPL|SCANR|SCAN|RIGHT|REPLACE|REM|REALLOC|RANGE|PROC|PASSED|PARSER|PARMNUM|PARMS|PADDR|OPEN|OMITTED|OCCUR|NULLIND|MSG|MSECONDS|MONTHS|MINUTES|MINARR|MIN|MAXARR|MAX|LOWER|LOVAL|LOOKUPLT|LOOKUPLE|LOOKUPGT|LOOKUPGE|LOOKUP|LIST|LEN|LEFT|KDS|INTH|INT|HOURS|HIVAL|HANDLER|GRAPH|GEN|FOUND|FLOAT|FIELDS|ERROR|EQUAL|EOF|ELEM|EDITW|EDITFLT|EDITC|DIV|DIFF|DECPOS|DECH|DEC|DAYS|DATE|DATA|CONCATARR|CONCAT|CHECKR|CHECK|CHARCOUNT|CHAR|BITXOR|BITOR|BITNOT|BITAND|ALLOC|ADDR|ABS)"}]},"precompiler":{"patterns":[{"name":"rpgle.fixed.precompiler.title","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.fixed.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.title"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.title"}}},{"name":"rpgle.free.precompiler.title","begin":"(?i)^\\s*(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.free.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.title"}}},{"name":"rpgle.fixed.precompiler.include","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(INCLUDE|COPY))\\s","end":"\n","patterns":[{"name":"string.other.rpgle.precompiler.include","begin":"\\S","end":"\\s"},{"name":"comment.other.rpgle.precompiler.include","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.include"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.include"}}},{"name":"rpgle.free.precompiler.include","begin":"(?i)^\\s*(\\/(INCLUDE|COPY))\\s+(\\S+)(.*)","end":"\n","beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.include"},"3":{"name":"string.other.rpgle.precompiler.include"},"4":{"name":"comment.other.rpgle.precompiler.include"}}},{"name":"rpgle.fixed.precompiler.conditional","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(ELSEIF|IF))\\b(NOT|UNDEFINED|DEFINED)\\b(.*)","end":"(?i)(?=^.{5})(H|F|D|I|C|O|P|\\s)(\\/ENDIF)","patterns":[{"include":"#fixedformat"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"},"3":{"name":"keyword.other.rpgle.fixed.precompiler.defcheck"}},"endCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"}}},{"name":"rpgle.free.precompiler.conditional","begin":"(?i)(?=(^[\\s]*\\/IF))","end":"(?i)(?=(^[\\s]*\\/ENDIF))","patterns":[{"name":"keyword.control.rpgle.precompiler.if","match":"(?i)^[\\s]*\\/(ELSEIF|IF)"},{"name":"keyword.other.rpgle.precompiler.defcheck","match":"(?i)\\s*\\b(NOT|UNDEFINED|DEFINED)\\b"},{"include":"#freeformat"}]},{"name":"rpgle.precompiler.charcount","begin":"(?i)(?=(^[\\s]*\\/CHARCOUNT))","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler.charcount","match":"(?i)^[\\s]*\\/CHARCOUNT"},{"name":"keyword.other.rpgle.precompiler.charcount.mode","match":"(?i)\\s*\\b(NATURAL|STDCHARSIZE)\\b"}]},{"name":"rpgle.fixed.precompiler.misc","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(UNDEFINE|SPACE|FREE|EOF|END-FREE|ELSE|EJECT|DEFINE|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.misc"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.misc"}}},{"name":"rpgle.free.precompiler.misc","begin":"(?i)^[\\s]*(\\/(UNDEFINE|TITLE|SPACE|INCLUDE|FREE|EOF|ENDIF|END-FREE|ELSE|EJECT|DEFINE|COPY|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.misc"}}}]},"rpglecommon":{"patterns":[{"include":"#comments"},{"include":"#freedefkeywords"},{"include":"#sqlvariables"},{"include":"#constants"},{"include":"#precompiler"},{"include":"#keywords"},{"include":"#strings"}]},"sqlcommon":{"patterns":[{"name":"comment.line.rpgle.rpgle.sql","match":"//.*"},{"name":"constant.language.rpgle.sql.globals","match":"(?i)\\b(CLIENT_HOST|CLIENT_IPADDR|CLIENT_PORT|JOB_NAME|PACKAGE_NAME|PACKAGE_SCHEMA|PACKAGE_VERSION|PROCESS_ID|ROUTINE_SCHEMA|ROUTINE_SPECIFIC_NAME|ROUTINE_TYPE|SERVER_MODE_JOB_NAME|THREAD_ID)\\b"},{"name":"support.function.rpgle.sql","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(?=\\()"},{"name":"constant.language.rpgle.sql.schema","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(\\.|\\/)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*"},{"name":"variable.parameter.rpgle.sql","match":"[:][a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ\\.]*"},{"name":"keyword.operator.rpgle.sql.reserved","match":"(?i)\\b(ZONE|YES|YEARS|YEAR|XSROBJECT|XSLTRANSFORM|XMLVALIDATE|XMLTEXT|XMLTABLE|XMLSERIALIZE|XMLROW|XMLPI|XMLPARSE|XMLNAMESPACES|XMLGROUP|XMLFOREST|XMLELEMENT|XMLDOCUMENT|XMLCONCAT|XMLCOMMENT|XMLCAST|XMLATTRIBUTES|XMLAGG|WRKSTNNAME|WRITE|WRAPPER|WRAPPED|WITHOUT|WITHIN|WITH|WHILE|WHERE|WHENEVER|WHEN|WAIT|VOLATILE|VIEW|VERSION|VCAT|VARIANT|VARIABLE|VALUES|VALUE|USING|USERID|USER|USE|USAGE|URI|UPDATING|UPDATE|UNTIL|UNNEST|UNIT|UNIQUE|UNION|UNDO|TYPE|TRUNCATE|TRIM_ARRAY|TRIM|TRIGGER|TRANSFER|TRANSACTION|TO|TIMESTAMP|TIME|THREADSAFE|THEN|TABLESPACES|TABLESPACE|TABLE|SYSTEM_USER|SYNONYM|SUMMARY|SUBSTRING|STOGROUP|STATIC|STATEMENT|STARTING|START|STACKED|SQLID|SQL|SPECIFIC|SOURCE|SOME|SNAN|SKIP|SIMPLE|SIGNAL|SET|SESSION_USER|SESSION|SEQUENCE|SENSITIVE|SELECT|SECURED|SECQTY|SECONDS|SECOND|SEARCH|SCROLL|SCRATCHPAD|SCHEMA|SBCS|SAVEPOINT|RUN|RRN|ROW_NUMBER|ROWS|ROWNUMBER|ROW|ROUTINE|ROLLUP|ROLLBACK|RIGHT|RID|REVOKE|RETURNS|RETURNING|RETURN|RESULT_SET_LOCATOR|RESULT|RESTART|RESIGNAL|RESET|REPEAT|RENAME|RELEASE|REGEXP_LIKE|REFRESH|REFERENCING|REFERENCES|RECOVERY|READS|READ|RCDFMT|RANK|RANGE|QUERY|PROGRAMID|PROGRAM|PROCEDURE|PRIVILEGES|PRIQTY|PRIOR|PRIMARY|PREVVAL|PREPARE|POSITION|PLAN|PIPE|PIECESIZE|PERMISSION|PCTFREE|PATH|PASSWORD|PASSING|PARTITIONS|PARTITIONING|PARTITIONED|PARTITION|PART|PARAMETER|PAGESIZE|PAGE|PADDED|PACKAGE|OVERRIDING|OVERLAY|OVER|OUTER|OUT|ORGANIZE|ORDINALITY|ORDER|OR|OPTION|OPTIMIZE|OPEN|ONLY|ON|OMIT|OLD_TABLE|OLD|OFFSET|OF|OBID|NVARCHAR|NULLS|NULL|NOT|NORMALIZED|NOORDER|NONE|NOMINVALUE|NOMAXVALUE|NODENUMBER|NODENAME|NOCYCLE|NOCACHE|NO|NEXTVAL|NEW_TABLE|NEW|NESTED|NCLOB|NCHAR|NATIONAL|NAN|NAMESPACE|MONTHS|MONTH|MODIFIES|MODE|MIXED|MINVALUE|MINUTES|MINUTE|MINPCTUSED|MICROSECONDS|MICROSECOND|MERGE|MAXVALUE|MATERIALIZED|MATCHED|MASK|MAINTAINED|LOOP|LONG|LOGGED|LOG|LOCKSIZE|LOCK|LOCATOR|LOCATION|LOCALTIMESTAMP|LOCALTIME|LOCALDATE|LOCAL|LISTAGG|LINKTYPE|LIMIT|LIKE|LEVEL2|LEFT|LEAVE|LATERAL|LANGUAGE|LABEL|KEY|KEEP|JSON_VALUE|JSON_TABLE|JSON_QUERY|JSON_OBJECTAGG|JSON_OBJECT|JSON_EXISTS|JSON_ARRAYAGG|JSON_ARRAY|JOIN|JAVA|ITERATE|ISOLATION|IS|INTO|INTERSECT|INTEGRITY|INSERTING|INSERT|INSENSITIVE|INOUT|INNER|INLINE|INHERIT|INFINITY|INF|INDICATOR|INDEXBP|INDEX|INCREMENT|INCLUSIVE|INCLUDING|INCLUDE|IMPLICITLY|IMMEDIATE|IGNORE|IF|IDENTITY|ID|HOURS|HOUR|HOLD|HINT|HAVING|HASHED_VALUE|HASH|HANDLER|GROUP|GRAPHIC|GRANT|GOTO|GO|GLOBAL|GET|GENERATED|GENERAL|GBPCACHE|FUNCTION|FULL|FROM|FREEPAGE|FREE|FORMAT|FOREIGN|FOR|FINAL|FILE|FIELDPROC|FETCH|FENCED|EXTRACT|EXTERNAL|EXTEND|EXIT|EXISTS|EXECUTE|EXCLUSIVE|EXCLUDING|EXCEPTION|EXCEPT|EVERY|ESCAPE|ERROR|ENFORCED|ENDING|END|ENCRYPTION|ENCODING|ENABLE|EMPTY|ELSEIF|ELSE|EACH|DYNAMIC|DROP|DOUBLE|DOCUMENT|DO|DISTINCT|DISCONNECT|DISALLOW|DISABLE|DIAGNOSTICS|DETERMINISTIC|DESCRIPTOR|DESCRIBE|DESC|DENSE_RANK|DENSERANK|DELETING|DELETE|DEFINITION|DEFINE|DEFER|DEFAULTS|DEFAULT|DECLARE|DEALLOCATE|DEACTIVATE|DBPARTITIONNUM|DBPARTITIONNAME|DBINFO|DB2SQL|DB2GENRL|DB2GENERAL|DAYS|DAY|DATE|DATAPARTITIONNUM|DATAPARTITIONNAME|DATABASE|DATA|CYCLE|CURSOR|CURRENT_USER|CURRENT_TIMEZONE|CURRENT_TIMESTAMP|CURRENT_TIME|CURRENT_SERVER|CURRENT_SCHEMA|CURRENT_PATH|CURRENT_DATE|CURRENT|CUBE|CROSS|CREATEIN|CREATE|COUNT_BIG|COUNT|COPY|CONTINUE|CONTENT|CONTAINS|CONSTRAINT|CONSTANT|CONNECT_BY_ROOT|CONNECTION|CONNECT|CONDITION|CONCURRENT|CONCAT|COMPRESS|COMPACT|COMMIT|COMMENT|COLUMN|COLLECTION|COLLECT|CLUSTER|CLOSE|CL|CHECK|CHARACTER|CHAR|CCSID|CAST|CASE|CARDINALITY|CALLED|CALL|CACHE|BY|BUFFERPOOL|BIT|BIND|BINARY|BETWEEN|BEGIN|BEFORE|AUTONOMOUS|AUTHORIZATION|ATTRIBUTES|ATOMIC|AT|ASSOCIATE|ASENSITIVE|ASC|AS|ARRAY_AGG|ARRAY|APPLNAME|APPEND|ANY|AND|ALTER|ALLOW|ALLOCATE|ALL|ALIAS|ADD|ACTIVATE|ACTION|ACCTNG|ACCORDING|ABSENT)\\b"},{"include":"source.sql"}]},"sqlvariables":{"patterns":[{"name":"variable.language.rpgle.sql","match":"(?i)\\b(SQLWRN|SQLWNA|SQLWN9|SQLWN8|SQLWN7|SQLWN6|SQLWN5|SQLWN4|SQLWN3|SQLWN2|SQLWN1|SQLWN0|SQLWARN|SQLSTT|SQLSTATE|SQLCODE|SQLCOD|SQLERRP|SQLERRML|SQLERRMC|SQLERRD|SQLERR|SQLERP|SQLERM|SQLERL|SQLER6|SQLER5|SQLER4|SQLER3|SQLER2|SQLER1)\\b"}]},"strings":{"patterns":[{"name":"string.other.rpgle.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.rpgle","begin":"'","end":"'"}]},"tempfreeformat":{"patterns":[{"begin":"(?i)(?=((\\/FREE\\b)))","end":"(?i)(?=((\\/END-FREE\\b)))","patterns":[{"name":"keyword.control.rpgle.precompiler","match":"(?i)^.*(\\/FREE\\b)"},{"include":"#rpglecommon"},{"include":"#freeformat"},{"include":"#freeSQL"}]},{"name":"keyword.control.rpgle.precompiler","match":"^.*(\\/END-FREE\\b)"}]}}}
@@ -1 +1 @@
1
- {"name":"Slang","scopeName":"source.slang","patterns":[{"include":"#preprocessor-rule-enabled"},{"include":"#preprocessor-rule-disabled"},{"include":"#preprocessor-rule-conditional"},{"include":"#predefined_macros"},{"include":"#comments"},{"include":"#switch_statement"},{"name":"keyword.control.slang","match":"\\b(break|continue|do|else|for|goto|if|return|while|try|throw|catch|defer|discard)\\b"},{"include":"#storage_types"},{"name":"keyword.other.typedef.slang","match":"typedef"},{"name":"keyword.other.additional.slang","match":"\\b(throws|using|__generic|func|associatedtype|override|public|internal|private|import|module|implementing|__include|export|__exported|groupshared|let|var|property|extension|in|out|inout|ref|namespace|this|cbuffer|tbuffer|(dynamic_)?uniform|typealias|new|__extern_cpp|__(target|stage)_intrinsic|__intrinsic_asm|spirv_asm|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each|where|typename|constexpr|dyn|some|implicit|noncopyable)\\b"},{"name":"storage.modifier.slang","match":"\\b(const|extern|register|restrict|static|volatile|inline|nointerpolation|precise|row_major|column_major|snorm|unorm|globallycoherent|layout)\\b"},{"name":"constant.language.slang","match":"\\b(nullptr|none|true|false)\\b"},{"include":"#operators"},{"include":"#numbers"},{"include":"#strings"},{"name":"meta.preprocessor.macro.slang","begin":"((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.definition.parameters.end.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.directive.define.slang"},"6":{"name":"punctuation.definition.directive.slang"},"7":{"name":"entity.name.function.preprocessor.slang"},"8":{"name":"punctuation.definition.parameters.begin.slang"},"9":{"patterns":[{"match":"(?\u003c=[(,])\\s*((?\u003c!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*","captures":{"1":{"name":"variable.parameter.preprocessor.slang"}}},{"name":"punctuation.separator.parameters.slang","match":","},{"name":"ellipses.slang punctuation.vararg-ellipses.variable.parameter.preprocessor.slang","match":"\\.\\.\\."}]}}},{"name":"meta.preprocessor.diagnostic.slang","begin":"^\\s*((#)\\s*(error|warning))\\b\\s*","end":"(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.unquoted.single.slang","begin":"[^'\"]","end":"(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#line_continuation_character"},{"include":"#comments"}]}],"beginCaptures":{"1":{"name":"keyword.control.directive.diagnostic.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.include.slang","begin":"^\\s*((#)\\s*(include(?:_next)?|import|module|implementing|__include))\\b\\s*","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"string.quoted.double.include.slang","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.other.lt-gt.include.slang","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}],"beginCaptures":{"1":{"name":"keyword.control.directive.$3.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#pragma-mark"},{"include":"#preprocessor-version"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*line)\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.line.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.slang","begin":"^\\s*(?:((#)\\s*undef))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.undef.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"meta.preprocessor.pragma.slang","begin":"^\\s*(?:((#)\\s*pragma))\\b","end":"(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#strings"},{"name":"entity.other.attribute-name.pragma.preprocessor.slang","match":"[a-zA-Z_$][\\w\\-$]*"},{"include":"#numbers"},{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"keyword.control.directive.pragma.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"name":"support.type.stdint.slang","match":"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|intptr_t|uintptr_t)\n\\b"},{"name":"support.type.string.slang","match":"(?x) \\b(string)\\b"},{"name":"support.type.ptr.slang","match":"(?x) \\b(Ptr)\\b"},{"name":"support.type.hlsl.slang","match":"(?x) \\b((RW)?StructuredBuffer|(RW)?Buffer|(RW)?ByteAddressBuffer|ConstantBuffer|ParameterBlock|(RW)?Texture([1-3]D|Cube)(MS)?(Array)?|Sampler(Comparison)?State|RaytracingAccelerationStructure)\\b"},{"name":"support.type.vector.slang","match":"(?x) \\b(bool|char|half|float|int|double|uint)[1-4](x[1-4])?\\b"},{"include":"#block"},{"include":"#parens"},{"include":"#line_continuation_character"},{"name":"meta.bracket.square.access.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])","end":"\\]","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.definition.begin.bracket.square.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.slang"}}},{"name":"storage.modifier.array.bracket.square.slang","match":"\\[\\s*\\]"},{"name":"punctuation.terminator.statement.slang","match":";"},{"name":"punctuation.separator.delimiter.slang","match":","}],"repository":{"access-method":{"name":"meta.function-call.member.slang","begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))\\s*(?:(\\.)|(-\u003e))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:-\u003e)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.object.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"name":"punctuation.separator.dot-access.slang","match":"\\."},{"name":"punctuation.separator.pointer-access.slang","match":"-\u003e"},{"name":"variable.object.slang","match":"[a-zA-Z_][a-zA-Z_0-9]*"},{"name":"everything.else.slang","match":".+"}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"access_qualifier":{"name":"meta.variable.qualifer.access_qualifier","match":"(?x)(:)\\s*\\b(read|write)\\b \\((([A-z]+)(,\\s*([A-z]+)\\s*)*)?(\\))","captures":{"1":{"name":"punctuation.separator.delimiter.colon.slang"},"2":{"name":"keyword.other.additional.slang"},"3":{"patterns":[{"include":"#shader_stages"}]},"5":{"patterns":[{"include":"#shader_stages"}]}}},"backslash_escapes":{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},"block":{"patterns":[{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"},{"name":"meta.variable.qualifer","begin":"(?x) (\\b([a-zA-Z_][a-zA-Z_0-9]*)\\b)\\s*(?=:\\s*((read|write).*))","end":";","patterns":[{"include":"#access_qualifier"}],"beginCaptures":{"1":{"name":"variable.other.slang"},"3":{"patterns":[{"include":"#access_qualifier"}]}},"endCaptures":{"0":{"name":"punctuation.semicolon.slang"}}}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-conditional-block"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#c_function_call"},{"name":"meta.initialization.slang","begin":"(?x)\n(?:\n (?:\n\t(?=\\s)(?\u003c!else|new|return)\n\t(?\u003c=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?\u003c=operator) (?:[-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.slang"},"2":{"name":"punctuation.section.parens.begin.bracket.round.initialization.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.initialization.slang"}}},{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#parens-block"},{"include":"$base"}]},"c_conditional_context":{"patterns":[{"include":"$self"},{"include":"#block_innards"}]},"c_function_call":{"name":"meta.function-call.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|__target_intrinsic|__intrinsic_asm|spirv_asm|expand|each)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)","patterns":[{"include":"#function-call-innards"}]},"case_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)case(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.case.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.slang"}}},"comments":{"patterns":[{"name":"comment.line.double-slash.documentation.slang","begin":"(?:^)(?\u003e\\s*)(\\/\\/[!\\/]+)","end":"(?\u003c=\\n)(?\u003c!\\\\\\n)","patterns":[{"include":"#line_continuation_character"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out|ref"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.documentation.slang"}}},{"name":"comment.block.documentation.slang","match":"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)","captures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"},"2":{"patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}]},"3":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.documentation.slang","begin":"((?\u003e\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))","end":"([!*]*\\*\\/)","patterns":[{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|\u003c|\u003e|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.italic.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.bold.doxygen.slang"}}},{"match":"((?\u003c=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"markup.inline.raw.string.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?"},{"match":"((?\u003c=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"patterns":[{"name":"keyword.other.parameter.direction.$0.slang","match":"in|out"}]},"3":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.doxygen.slang","match":"(?\u003c=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?"},{"name":"storage.type.class.gtkdoc","match":"(?:\\b[A-Z]+:|@[a-z_]+:)"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.documentation.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.documentation.slang"}}},{"name":"comment.block.banner.slang","match":"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.slang"}}},{"name":"comment.block.slang","begin":"(\\/\\*)","end":"(\\*\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.end.slang"}}},{"name":"comment.line.banner.slang","match":"^\\/\\/ =(\\s*.*?)\\s*=$\\n?","captures":{"1":{"name":"meta.toc-list.banner.line.slang"}}},{"begin":"((?:^[ \\t]+)?)(?=\\/\\/)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.slang","begin":"(\\/\\/)","end":"(?=\\n)","patterns":[{"include":"#line_continuation_character"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.slang"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.slang"}}}]},"default_statement":{"name":"meta.conditional.case.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)default(?!\\w))","end":"(:)","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.control.default.slang"}},"endCaptures":{"1":{"name":"punctuation.separator.colon.case.default.slang"}}},"disabled":{"begin":"^\\s*#\\s*if(n?def)?\\b.*$","end":"^\\s*#\\s*endif\\b","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]},"evaluation_context":{"patterns":[{"include":"#function-call-innards"},{"include":"$base"}]},"function-call-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#block_innards"}]},"function-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#operators"},{"include":"#vararg_ellipses"},{"name":"meta.function.definition.parameters.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"\\)","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.parameters.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.slang"}}},{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"$base"}]},"inline_comment":{"match":"(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/))","captures":{"1":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"2":{"name":"comment.block.slang"},"3":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},"line_continuation_character":{"patterns":[{"match":"(\\\\)\\n","captures":{"1":{"name":"constant.character.escape.line-continuation.slang"}}}]},"member_access":{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"variable.other.member.slang"}}},"method_access":{"contentName":"meta.function-call.member.slang","begin":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()","end":"(\\))","patterns":[{"include":"#function-call-innards"}],"beginCaptures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"match":"((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))","captures":{"1":{"name":"variable.other.object.access.slang"},"2":{"name":"punctuation.separator.dot-access.slang"},"3":{"name":"punctuation.separator.pointer-access.slang"}}}]},"5":{"name":"entity.name.function.member.slang"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.slang"}}},"numbers":{"match":"(?\u003c!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])*","captures":{"0":{"patterns":[{"begin":"(?=.)","end":"$","patterns":[{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"10":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"11":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.hexadecimal.slang"},"5":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"9":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfFzZhH](?!\\w))?$","captures":{"10":{"name":"keyword.operator.minus.exponent.decimal.slang"},"11":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"12":{"name":"keyword.other.unit.suffix.floating-point.slang"},"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"constant.numeric.decimal.point.slang"},"5":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"6":{"name":"punctuation.separator.constant.numeric"},"8":{"name":"keyword.other.unit.exponent.decimal.slang"},"9":{"name":"keyword.operator.plus.exponent.decimal.slang"}}},{"match":"(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.binary.slang"},"2":{"name":"constant.numeric.binary.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?|[uU]?z|z[uU])|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.octal.slang"},"2":{"name":"constant.numeric.octal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"4":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?|[uU]?z|z[uU])|[fF])(?!\\w))?$","captures":{"1":{"name":"keyword.other.unit.hexadecimal.slang"},"2":{"name":"constant.numeric.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.hexadecimal.slang"},"6":{"name":"keyword.operator.plus.exponent.hexadecimal.slang"},"7":{"name":"keyword.operator.minus.exponent.hexadecimal.slang"},"8":{"name":"constant.numeric.exponent.hexadecimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"match":"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?|[uU]?z|z[uU])|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$","captures":{"2":{"name":"constant.numeric.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"3":{"name":"punctuation.separator.constant.numeric"},"5":{"name":"keyword.other.unit.exponent.decimal.slang"},"6":{"name":"keyword.operator.plus.exponent.decimal.slang"},"7":{"name":"keyword.operator.minus.exponent.decimal.slang"},"8":{"name":"constant.numeric.exponent.decimal.slang","patterns":[{"name":"punctuation.separator.constant.numeric","match":"(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"}]},"9":{"name":"keyword.other.unit.suffix.integer.slang"}}},{"name":"invalid.illegal.constant.numeric","match":"(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-])+"}]}]}}},"operators":{"patterns":[{"name":"keyword.operator.sizeof.slang","match":"(?\u003c![\\w$])(sizeof|countof)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(as)(?![\\w$])"},{"name":"keyword.other.additional.slang","match":"(?\u003c![\\w$])(is)(?![\\w$])"},{"name":"keyword.operator.decrement.slang","match":"--"},{"name":"keyword.operator.increment.slang","match":"\\+\\+"},{"name":"keyword.operator.assignment.compound.slang","match":"%=|\\+=|-=|\\*=|(?\u003c!\\()/="},{"name":"keyword.operator.assignment.compound.bitwise.slang","match":"\u0026=|\\^=|\u003c\u003c=|\u003e\u003e=|\\|="},{"name":"keyword.operator.bitwise.shift.slang","match":"\u003c\u003c|\u003e\u003e"},{"name":"keyword.operator.comparison.slang","match":"!=|\u003c=|\u003e=|==|\u003c|\u003e"},{"name":"keyword.operator.logical.slang","match":"\u0026\u0026|!|\\|\\|"},{"name":"keyword.operator.slang","match":"\u0026|\\||\\^|~"},{"name":"keyword.operator.assignment.slang","match":"="},{"name":"keyword.operator.slang","match":"%|\\*|/|-|\\+"},{"begin":"(\\?)","end":"(:)","patterns":[{"include":"#function-call-innards"},{"include":"$base"}],"beginCaptures":{"1":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"1":{"name":"keyword.operator.ternary.slang"}}}]},"parens":{"name":"meta.parens.slang","begin":"\\(","end":"\\)","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"parens-block":{"name":"meta.parens.block.slang","begin":"\\(","end":"\\)","patterns":[{"include":"#block_innards"},{"name":"punctuation.range-based.slang","match":"(?-mix:(?\u003c!:):(?!:))"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},"pragma-mark":{"name":"meta.section.slang","match":"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))","captures":{"1":{"name":"meta.preprocessor.pragma.slang"},"2":{"name":"keyword.control.directive.pragma.pragma-mark.slang"},"3":{"name":"punctuation.definition.directive.slang"},"4":{"name":"entity.name.tag.pragma-mark.slang"}}},"predefined_macros":{"patterns":[{"match":"\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b","captures":{"1":{"name":"entity.name.other.preprocessor.macro.predefined.$1.slang"}}},{"name":"entity.name.other.preprocessor.macro.predefined.probably.$1.slang","match":"\\b__([A-Z_]+)__\\b"}]},"preprocessor-rule-conditional":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-block":{"patterns":[{"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"name":"meta.preprocessor.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"match":"^\\s*#\\s*(else|elif|endif)\\b","captures":{"0":{"name":"invalid.illegal.stray-$1.slang"}}}]},"preprocessor-rule-conditional-line":{"patterns":[{"name":"keyword.control.directive.conditional.slang","match":"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|\u0026\u0026|\\|\\||\\\\\\s*\\n)))"},{"name":"invalid.illegal.macro-name.slang","match":"\\bdefined\\b"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"begin":"\\?","end":":","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.slang"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.slang"}}},{"include":"#operators"},{"name":"constant.language.slang","match":"\\b(NULL|true|false|TRUE|FALSE)\\b"},{"name":"entity.name.function.preprocessor.slang","match":"[a-zA-Z_$][\\w$]*"},{"include":"#line_continuation_character"},{"begin":"\\(","end":"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.slang"}}}]},"preprocessor-rule-define-line-blocks":{"patterns":[{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"},{"include":"#preprocessor-rule-define-line-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{"patterns":[{"include":"#vararg_ellipses"},{"name":"meta.block.slang","begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-blocks"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.slang"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.slang"}}},{"name":"punctuation.section.parens.begin.bracket.round.slang","match":"\\("},{"name":"punctuation.section.parens.end.bracket.round.slang","match":"\\)"},{"name":"meta.function.slang","begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)","end":"(?\u003c=\\))(?!\\w)|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}]},{"name":"string.quoted.double.slang","begin":"\"","end":"\"|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"include":"#method_access"},{"include":"#member_access"},{"include":"$base"}]},"preprocessor-rule-define-line-functions":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#vararg_ellipses"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#operators"},{"begin":"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|countof|where|(__)?(f|b)wd_diff|__dispatch_kernel|no_diff|__constref|expand|each)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.slang"}}},{"begin":"\\(","end":"(\\))|(?\u003c!\\\\)(?=\\s*\\n)","patterns":[{"include":"#preprocessor-rule-define-line-functions"}],"beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.slang"}}},{"include":"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif"},{"include":"#preprocessor-rule-enabled-else"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"include":"#preprocessor-rule-enabled-elif-block"},{"include":"#preprocessor-rule-enabled-else-block"},{"include":"#preprocessor-rule-disabled-elif"},{"begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-disabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"},"3":{"name":"constant.numeric.preprocessor.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-block":{"patterns":[{"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"^\\s*((#)\\s*endif\\b)","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"contentName":"comment.block.preprocessor.else-branch.in-block.slang","begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.if-branch.in-block.slang","begin":"^\\s*((#)\\s*elif\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}},"endCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}}]},"preprocessor-rule-enabled-elif":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"$base"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-elif-block":{"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"name":"meta.preprocessor.slang","begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))","end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?\u003c!\\\\)(?=\\n)","patterns":[{"include":"#preprocessor-rule-conditional-line"}]},{"include":"#comments"},{"begin":"\\n","end":"(?=^\\s*((#)\\s*(?:endif)\\b))","patterns":[{"contentName":"comment.block.preprocessor.elif-branch.in-block.slang","begin":"^\\s*((#)\\s*(else)\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"contentName":"comment.block.preprocessor.elif-branch.slang","begin":"^\\s*((#)\\s*(elif)\\b)","end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))","patterns":[{"include":"#disabled"},{"include":"#pragma-mark"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},{"include":"#block_innards"}]}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-rule-enabled-else-block":{"begin":"^\\s*((#)\\s*else\\b)","end":"(?=^\\s*((#)\\s*endif\\b))","patterns":[{"include":"#block_innards"}],"beginCaptures":{"0":{"name":"meta.preprocessor.slang"},"1":{"name":"keyword.control.directive.conditional.slang"},"2":{"name":"punctuation.definition.directive.slang"}}},"preprocessor-version":{"name":"meta.section.slang","match":"^\\s*((#\\s*(version|lang|language))\\s+(.*))","captures":{"2":{"name":"keyword.control.directive.version.slang"},"4":{"name":"constant.numeric.decimal.slang"}}},"probably_a_parameter":{"match":"(?\u003c=[a-zA-Z_0-9] |[\u0026*\u003e\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))","captures":{"1":{"name":"variable.parameter.probably.slang"}}},"shader_stages":{"name":"variable.other.constant.shader_stage","match":"\\b(vertex|fragment|compute|hull|domain|geometry|raygen|intersection|anyhit|closesthit|miss|mesh|amplification|callable)\\b"},"static_assert":{"begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)static_assert|_Static_assert(?!\\w))((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"name":"meta.static_assert.message.slang","begin":"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)","end":"(?=\\))","patterns":[{"include":"#string_context"}],"beginCaptures":{"1":{"name":"punctuation.separator.delimiter.comma.slang"}}},{"include":"#evaluation_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"10":{"name":"punctuation.section.arguments.begin.bracket.round.static_assert.slang"},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"keyword.other.static_assert.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.static_assert.slang"}}},"storage_types":{"patterns":[{"name":"storage.type.built-in.primitive.slang","match":"(?-mix:(?\u003c!\\w)(?:unsigned|signed|double|_Bool|short|float|half|long|void|char|bool|int|uint)(?!\\w))"},{"match":"\\b(namespace|enum|enum\\s+class|struct|class|interface)\\s+(\\[.*\\])?\\s*([A-Za-z0-9_]+)((\\.|::)([A-Za-z0-9_]+))*","captures":{"1":{"name":"keyword.$1.slang"},"3":{"patterns":[{}]},"4":{"name":"support.type.$1.slang"},"6":{"name":"punctuation.separator.dot-access.slang"},"7":{"name":"support.type.$1.slang"}}},{"name":"meta.asm.slang","begin":"(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)","end":"(?!\\G)","patterns":[{"match":"(?:^)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"include":"#comments"},{"begin":"(((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\()","end":"(\\))","patterns":[{"name":"string.quoted.double.slang","contentName":"meta.embedded.assembly.slang","begin":"(R?)(\")","end":"(\")","patterns":[{"include":"#backslash_escapes"},{"include":"#string_escaped_char"}],"beginCaptures":{"1":{"name":"meta.encoding.slang"},"2":{"name":"punctuation.definition.string.begin.assembly.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.assembly.slang"}}},{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.inner.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.inner.slang"}}},{"match":"\\[((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?\u003e\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z)))\\]","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"variable.other.asm.label.slang"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"8":{"name":"comment.block.slang"},"9":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}}},{"name":"punctuation.separator.delimiter.colon.assembly.slang","match":":"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.bracket.round.assembly.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.assembly.slang"}}}],"beginCaptures":{"1":{"name":"storage.type.asm.slang"},"2":{"name":"storage.modifier.slang"}}}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.slang","match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )"},{"name":"invalid.illegal.unknown-escape.slang","match":"\\\\."}]},"string_placeholder":{"patterns":[{"name":"constant.other.placeholder.slang","match":"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type"},{"match":"(%)(?!\"\\s*(PRI|SCN))","captures":{"1":{"name":"invalid.illegal.placeholder.slang"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.raw","begin":"((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(","end":"\\)\\2(\\3)\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin"},"1":{"name":"meta.encoding"},"3":{"name":"invalid.illegal.delimiter-too-long"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end"},"1":{"name":"invalid.illegal.delimiter-too-long"}}},{"name":"string.quoted.double.slang","begin":"((?:u|u8|U|L)?)?\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"},{"include":"#line_continuation_character"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}]},"switch_conditional_parentheses":{"name":"meta.conditional.switch.slang","begin":"((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))(\\()","end":"(\\))","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}],"beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"3":{"name":"comment.block.slang"},"4":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"5":{"name":"punctuation.section.parens.begin.bracket.round.conditional.switch.slang"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.bracket.round.conditional.switch.slang"}}},"switch_statement":{"name":"meta.block.switch.slang","begin":"(((?\u003e(?:(?:(?\u003e(?\u003c!\\s)\\s+)|(\\/\\*)((?\u003e(?:[^\\*]|(?\u003e\\*+)[^\\/])*)((?\u003e\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?\u003c=\\W))|(?=\\W))|\\A)|\\Z))))((?\u003c!\\w)switch|__(target|stage)_switch(?!\\w)))","end":"(?:(?\u003c=\\}|%\u003e|\\?\\?\u003e)|(?=[;\u003e\\[\\]=]))","patterns":[{"name":"meta.head.switch.slang","begin":"\\G ?","end":"((?:\\{|\u003c%|\\?\\?\u003c|(?=;)))","patterns":[{"include":"#switch_conditional_parentheses"},{"include":"$self"}],"endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.switch.slang"}}},{"name":"meta.body.switch.slang","begin":"(?\u003c=\\{|\u003c%|\\?\\?\u003c)","end":"(\\}|%\u003e|\\?\\?\u003e)","patterns":[{"include":"#default_statement"},{"include":"#case_statement"},{"include":"$self"},{"include":"#block_innards"}],"endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.switch.slang"}}},{"name":"meta.tail.switch.slang","begin":"(?\u003c=\\}|%\u003e|\\?\\?\u003e)[\\s\\n]*","end":"[\\s\\n]*(?=;)","patterns":[{"include":"$self"}]}],"beginCaptures":{"1":{"name":"meta.head.switch.slang"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.slang punctuation.definition.comment.begin.slang"},"4":{"name":"comment.block.slang"},"5":{"patterns":[{"name":"comment.block.slang punctuation.definition.comment.end.slang","match":"\\*\\/"},{"name":"comment.block.slang","match":"\\*"}]},"6":{"name":"keyword.control.switch.slang"}}},"vararg_ellipses":{"name":"punctuation.vararg-ellipses.slang","match":"(?\u003c!\\.)\\.\\.\\.(?!\\.)"}}}
1
+ {"name":"Slang","scopeName":"source.slang","patterns":[{"include":"#preprocessor"},{"include":"#comments"},{"include":"#hover-kind-prefix"},{"include":"#attributes"},{"include":"#strings"},{"include":"#numbers"},{"include":"#compile-time"},{"include":"#spirv-asm-blocks"},{"include":"#enum-definitions"},{"include":"#buffer-definitions"},{"include":"#type-declaration-headers"},{"include":"#extension-base-type"},{"include":"#type-declarations"},{"include":"#associatedtype-declarations"},{"include":"#typealias-types"},{"include":"#typedef-types"},{"include":"#return-types"},{"include":"#cast-types"},{"include":"#generic-parameters"},{"include":"#modern-type-annotations"},{"include":"#traditional-declarations"},{"include":"#where-clauses"},{"include":"#semantics"},{"include":"#types"},{"include":"#keywords"},{"include":"#constants"},{"include":"#function-calls"},{"include":"#operators"}],"repository":{"array-extents":{"patterns":[{"name":"meta.array.extent.slang","begin":"\\[","end":"\\]","patterns":[{"include":"#comments"},{"include":"#numbers"},{"name":"keyword.operator.expression.slang","match":"\\b(?:each|expand|optional|nonempty|__first|__last|__trimFirst|__trimLast|__packBranch)\\b"},{"name":"punctuation.accessor.slang","match":"(?:::|\\.)"},{"name":"keyword.operator.slang","match":"\\+\\+|--|\u003c\u003c|\u003e\u003e|\u003c=|\u003e=|==|!=|\\+=|-=|\\*=|/=|%=|\u0026=|\\|=|\\^=|\u003c\u003c=|\u003e\u003e=|[+\\-*/%\u0026|^~!=\u003c\u003e?:]"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"0":{"name":"punctuation.section.brackets.slang"}},"endCaptures":{"0":{"name":"punctuation.section.brackets.slang"}}}]},"associatedtype-declarations":{"patterns":[{"name":"meta.declaration.associatedtype.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((associatedtype))\\b\\s+([A-Za-z_][A-Za-z_0-9]*)","end":"(?=\\s*;)","patterns":[{"include":"#comments"},{"include":"#declaration-generic-parameters"},{"name":"meta.associatedtype.constraint.slang","begin":"(:)","end":"(?=\\s*(?:\\bwhere\\b|;))","patterns":[{"include":"#comments"},{"include":"#type-reference-list"},{"include":"#keywords"},{"include":"#operators"}],"beginCaptures":{"1":{"name":"punctuation.separator.type.annotation.slang"}}},{"include":"#where-clauses"}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"3":{"name":"keyword.declaration.slang"},"4":{"name":"entity.name.type.slang"}}}]},"attribute-arguments":{"patterns":[{"name":"meta.attribute.arguments.slang","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#attribute-arguments"},{"include":"#types"},{"include":"#constants"},{"include":"#keywords"},{"name":"punctuation.accessor.attribute.slang","match":"::|\\."},{"include":"#operators"},{"name":"variable.other.slang","match":"\\b[A-Za-z_][A-Za-z_0-9]*\\b"}],"beginCaptures":{"0":{"name":"punctuation.section.group.slang"}},"endCaptures":{"0":{"name":"punctuation.section.group.slang"}}}]},"attributes":{"patterns":[{"name":"meta.attribute.slang","begin":"(?\u003c![\\w\\]\\)])(\\[\\[?)(?=[A-Za-z_])","end":"(\\]\\]?)","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#attribute-arguments"},{"name":"punctuation.accessor.attribute.slang","match":"::|\\."},{"name":"entity.name.type.attribute.slang","match":"\\b[A-Za-z_][A-Za-z_0-9]*\\b"},{"name":"punctuation.separator.attribute.slang","match":","}],"beginCaptures":{"1":{"name":"punctuation.definition.attribute.begin.slang"}},"endCaptures":{"1":{"name":"punctuation.definition.attribute.end.slang"}}}]},"base-type-clause":{"patterns":[{"name":"meta.inheritance.slang","begin":"(:)","end":"(?=\\s*(?:\\bwhere\\b|\\{|;))","patterns":[{"include":"#comments"},{"include":"#type-reference-list"},{"name":"punctuation.separator.comma.slang","match":","}],"beginCaptures":{"1":{"name":"punctuation.separator.type.annotation.slang"}}}]},"buffer-definitions":{"patterns":[{"name":"meta.declaration.buffer.slang","begin":"(?x)\\b(buffer)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b(?=[^;]*\\{)","end":"(?=\\s*;)","patterns":[{"include":"#comments"},{"name":"meta.buffer.body.slang","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#attributes"},{"include":"#strings"},{"include":"#numbers"},{"include":"#compile-time"},{"include":"#traditional-declarations"},{"include":"#modern-type-annotations"},{"include":"#semantics"},{"include":"#types"},{"include":"#keywords"},{"include":"#constants"},{"include":"#function-calls"},{"include":"#operators"}],"beginCaptures":{"0":{"name":"punctuation.section.group.slang"}},"endCaptures":{"0":{"name":"punctuation.section.group.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*;)","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"entity.name.type.slang"}}}]},"cast-types":{"patterns":[{"match":"(?x)\\b(as|is)\\b\\s+((?!if\\b|else\\b|switch\\b|case\\b|default\\b|return\\b|for\\b|while\\b|do\\b|break\\b|continue\\b|discard\\b|defer\\b)(?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=)\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*(?:[),;:\\]}]|\\?|$))","captures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"}}}]},"comments":{"patterns":[{"name":"comment.block.documentation.slang","begin":"/\\*[*!](?!/)","end":"\\*/","patterns":[{"include":"#doc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.slang"}}},{"name":"comment.line.documentation.slang","begin":"//[/!](?:\u003c)?","end":"$","patterns":[{"include":"#doc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.slang"}}},{"name":"comment.block.slang","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.slang"}}},{"name":"comment.line.double-slash.slang","match":"//.*$"}]},"compile-time":{"patterns":[{"name":"keyword.control.compile-time.slang","match":"\\$for\\b"},{"name":"variable.other.compile-time.slang","match":"\\$[A-Za-z_][A-Za-z_0-9]*\\b"},{"name":"support.function.compile-time.slang","match":"\\bRange\\b(?=\\s*\\()"}]},"constants":{"patterns":[{"name":"constant.language.slang","match":"\\b(?:true|false|nullptr|none)\\b"}]},"declaration-generic-parameters":{"patterns":[{"name":"meta.generic.parameters.slang","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#numbers"},{"name":"meta.generic.value-parameter.slang","begin":"(?x)\\b(let)\\b(?:\\s+(each)\\b)?\\s+([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:=|,|\u003e))","patterns":[{"include":"#type-reference-list"}],"beginCaptures":{"1":{"name":"keyword.declaration.slang"},"2":{"name":"keyword.operator.expression.slang"},"3":{"name":"variable.parameter.slang"},"4":{"name":"punctuation.separator.type.annotation.slang"}}},{"name":"meta.generic.constraint.slang","begin":"(?x)\\b(each)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:=|,|\u003e))","patterns":[{"include":"#type-reference-list"}],"beginCaptures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"},"3":{"name":"punctuation.separator.type.annotation.slang"}}},{"match":"(?x)\\b(each)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b((?:bool|int(?:8_t|16_t|32_t|64_t)?|uint(?:8_t|16_t|32_t|64_t)?|half|float(?:16_t|32_t|64_t)?|double)[1-4](?:x[1-4])?)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b","captures":{"1":{"name":"storage.type.numeric.slang"},"2":{"name":"variable.parameter.slang"}}},{"match":"(?x)\\b((?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype))\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b","captures":{"1":{"name":"storage.type.builtin.slang"},"2":{"name":"variable.parameter.slang"}}},{"match":"(?x)\\b((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure|(?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer)))\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b","captures":{"1":{"name":"entity.name.type.slang"},"2":{"name":"variable.parameter.slang"}}},{"name":"meta.generic.constraint.slang","begin":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:,|=|\u003e))","patterns":[{"include":"#type-reference-list"}],"beginCaptures":{"1":{"name":"entity.name.type.slang"},"2":{"name":"punctuation.separator.type.annotation.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"entity.name.type.slang"}}},{"name":"keyword.declaration.slang","match":"\\blet\\b"},{"name":"keyword.operator.expression.slang","match":"\\b(?:each|expand|optional|nonempty|__first|__last|__trimFirst|__trimLast|__packBranch)\\b"},{"name":"keyword.operator.assignment.slang","match":"="},{"name":"punctuation.separator.comma.slang","match":","}],"beginCaptures":{"0":{"name":"punctuation.definition.generic.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.generic.end.slang"}}}]},"declarator-name-generic-parameters":{"patterns":[{"name":"meta.declarator.generic.parameters.slang","begin":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\u003c[^{};\\n]*\u003e\\s*\\()","end":"(?=\\s*(?:\\(|=|;|,|\\)|\\[|:))","patterns":[{"include":"#declaration-generic-parameters"}],"beginCaptures":{"1":{"name":"entity.name.function.slang"}}}]},"doc-tags":{"patterns":[{"name":"keyword.other.documentation.visibility.slang","match":"//@\\s*(?:public|internal|hidden|private):"},{"match":"([@\\\\]param)(?:\\s*\\[(?:in|out|inout|ref)\\])?\\s+([A-Za-z_][A-Za-z_0-9]*)","captures":{"1":{"name":"storage.type.class.doxygen.slang"},"2":{"name":"variable.parameter.slang"}}},{"name":"storage.type.class.doxygen.slang","match":"[@\\\\](?:return|returns|remarks|remark|see|example|category|internal|experimental|deprecated|brief|details|note|warning|todo|tparam|sa|ref)\\b"},{"name":"storage.type.class.doxygen.slang","match":"[@\\\\][A-Za-z_][A-Za-z_0-9]*\\b"},{"name":"markup.inline.raw.string.slang","match":"`[^`]+`"}]},"enum-definitions":{"patterns":[{"name":"meta.declaration.enum.slang","begin":"(?x)\\b(enum)\\b(?:\\s+(class))?\\s+([A-Za-z_][A-Za-z_0-9]*)\\b(?=[^;\\n]*\\{)","end":"(?=\\s*(?://|/\\*|;|$))","patterns":[{"include":"#comments"},{"include":"#base-type-clause"},{"name":"meta.enum.body.slang","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#numbers"},{"include":"#strings"},{"name":"meta.enum.member.slang","begin":"(?x)(?:(?\u003c=\\{)|(?\u003c=,))\\s*([A-Za-z_][A-Za-z_0-9]*)\\b","end":"(?=\\s*(?:,|\\}))","patterns":[{"include":"#comments"},{"include":"#numbers"},{"include":"#strings"},{"include":"#constants"},{"include":"#function-calls"},{"include":"#types"},{"include":"#keywords"},{"include":"#operators"}],"beginCaptures":{"1":{"name":"variable.other.enummember.slang"}}},{"include":"#constants"},{"include":"#function-calls"},{"include":"#types"},{"include":"#keywords"},{"include":"#operators"}],"beginCaptures":{"0":{"name":"punctuation.section.group.slang"}},"endCaptures":{"0":{"name":"punctuation.section.group.slang"}}}],"beginCaptures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"keyword.declaration.type.slang"},"3":{"name":"entity.name.type.slang"}}}]},"escape-sequences":{"patterns":[{"name":"constant.character.escape.slang","match":"\\\\(?:['\"?\\\\abfnrtv]|x[0-9A-Fa-f]+|[0-7]{1,3})"}]},"extension-base-type":{"patterns":[{"match":"(?x)\\b(extension)\\b(?:\\s*\u003c[^\u003c\u003e{};\\n]*\u003e)?\\s+((?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*(?::|\\{|;|\\bwhere\\b))","captures":{"1":{"name":"keyword.declaration.extension.slang"},"2":{"name":"entity.name.type.slang"}}}]},"function-calls":{"patterns":[{"name":"meta.qualified.type.call.slang","begin":"(?x)\\b((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure|(?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer)|__[_A-Za-z0-9]*Type|[A-Z][A-Za-z_0-9]*))\\b(?=\\s*(?:\u003c[^;\\n]*\u003e)?\\s*(?:\\.|::)[^;\"'\\n]*\\b[A-Za-z_][A-Za-z_0-9]*\\b\\s*(?:\u003c[^{};\\n]*\u003e\\s*)?\\()","end":"(?=\\b[A-Za-z_][A-Za-z_0-9]*\\b\\s*(?:\u003c[^{};\\n]*\u003e\\s*)?\\()","patterns":[{"include":"#types"},{"match":"(?x)\\b((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure|(?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer)|__[_A-Za-z0-9]*Type|[A-Z][A-Za-z_0-9]*))\\b(?=\\s*(?:\u003c|\\.|::|$))","captures":{"1":{"name":"entity.name.type.slang"}}},{"include":"#type-argument-list"},{"name":"punctuation.accessor.slang","match":"(?:::|\\.)"}],"beginCaptures":{"1":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b((?!if\\b|else\\b|switch\\b|case\\b|default\\b|return\\b|try\\b|throw\\b|throws\\b|catch\\b|while\\b|for\\b|do\\b|break\\b|continue\\b|discard\\b|defer\\b|let\\b|var\\b|func\\b|typedef\\b|typealias\\b|property\\b|get\\b|set\\b|class\\b|struct\\b|interface\\b|enum\\b|extension\\b|associatedtype\\b|namespace\\b|using\\b|import\\b|module\\b|implementing\\b|cbuffer\\b|tbuffer\\b|where\\b|syntax\\b|attribute_syntax\\b|semantic\\b|type_param\\b|__generic\\b|__extension\\b|__init\\b|__subscript\\b|__import\\b|__include\\b|__ignored_block\\b|__transparent_block\\b|__file_decl\\b|__require_capability\\b|__generic_value_param\\b|typename\\b|static\\b|const\\b|extern\\b|inline\\b|public\\b|private\\b|internal\\b|protected\\b|uniform\\b|dynamic_uniform\\b|groupshared\\b|shared\\b|volatile\\b|coherent\\b|restrict\\b|readonly\\b|writeonly\\b|export\\b|override\\b|__extern_cpp\\b|param\\b|require\\b|row_major\\b|column_major\\b|nointerpolation\\b|noperspective\\b|linear\\b|sample\\b|centroid\\b|precise\\b|in\\b|out\\b|inout\\b|ref\\b|__ref\\b|__constref\\b|dyn\\b|some\\b|implicit\\b|noncopyable\\b|constexpr\\b|mutating\\b|highp\\b|lowp\\b|mediump\\b|__builtin\\b|__global\\b|point\\b|line\\b|triangle\\b|lineadj\\b|triangleadj\\b|vertices\\b|indices\\b|primitives\\b|payload\\b|__prefix\\b|__postfix\\b|__exported\\b|layout\\b|hitAttributeEXT\\b|__intrinsic_op\\b|__target_intrinsic\\b|__specialized_for_target\\b|__glsl_extension\\b|__glsl_version\\b|__spirv_version\\b|__wgsl_extension\\b|__cuda_sm_version\\b|__builtin_type\\b|__builtin_requirement\\b|__magic_type\\b|__magic_enum\\b|__intrinsic_type\\b|__implicit_conversion\\b|__attributeTarget\\b|as\\b|is\\b|this\\b|This\\b|sizeof\\b|alignof\\b|countof\\b|no_diff\\b|fwd_diff\\b|bwd_diff\\b|__fwd_diff\\b|__bwd_diff\\b|__dispatch_kernel\\b|each\\b|expand\\b|optional\\b|nonempty\\b|spirv_asm\\b|__return_val\\b|__first\\b|__last\\b|__trimFirst\\b|__trimLast\\b|__packBranch\\b|__getAddress\\b|__floatAsInt\\b|true\\b|false\\b|nullptr\\b|none\\b|Range\\b)[A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:\u003c[^\u003c\u003e{}\\[\\];=()\\n\u0026|!?+\\-/%]*(?\u003c=[^\\s])\u003e\\s*)?\\()","captures":{"1":{"name":"entity.name.function.slang"}}}]},"generic-parameters":{"patterns":[{"name":"meta.generic.value-parameter.slang","begin":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*(let)\\b(?:\\s+(each)\\b)?\\s+([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:=|,|\u003e))","patterns":[{"include":"#type-reference-list"}],"beginCaptures":{"1":{"name":"keyword.declaration.slang"},"2":{"name":"keyword.operator.expression.slang"},"3":{"name":"variable.parameter.slang"},"4":{"name":"punctuation.separator.type.annotation.slang"}}},{"name":"meta.generic.constraint.slang","begin":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*(each)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:=|,|\u003e))","patterns":[{"include":"#type-reference-list"}],"beginCaptures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"},"3":{"name":"punctuation.separator.type.annotation.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*(each)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*((?:bool|int(?:8_t|16_t|32_t|64_t)?|uint(?:8_t|16_t|32_t|64_t)?|half|float(?:16_t|32_t|64_t)?|double)[1-4](?:x[1-4])?)\\s+([A-Za-z_][A-Za-z_0-9]*)(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"storage.type.numeric.slang"},"2":{"name":"variable.parameter.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*((?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype)(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=)\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)\\s+([A-Za-z_][A-Za-z_0-9]*)(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"storage.type.builtin.slang"},"2":{"name":"variable.parameter.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure|(?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer))(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=)\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)\\s+([A-Za-z_][A-Za-z_0-9]*)(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"entity.name.type.slang"},"2":{"name":"variable.parameter.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*([A-Za-z_][A-Za-z_0-9]*)\\s*(:)\\s*((?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype)(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=)\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"entity.name.type.slang"},"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"storage.type.builtin.slang"}}},{"match":"(?x)(?:(?\u003c=\u003c)|(?\u003c=,))\\s*([A-Za-z_][A-Za-z_0-9]*)\\s*(:)\\s*((?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=)\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*(?:,|=|\u003e))","captures":{"1":{"name":"entity.name.type.slang"},"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"entity.name.type.slang"}}}]},"hover-kind-prefix":{"patterns":[{"name":"meta.annotation.kind-prefix.slang","match":"\\((?:parameter|generic type parameter|generic type pack parameter|generic value parameter|generic value pack parameter|associated constant|field|global value|global variable|local value|local variable)\\)(?=\\s+[A-Za-z_])"}]},"keywords":{"patterns":[{"name":"keyword.control.slang","match":"(?\u003c!\\.)(?\u003c!::)(?\u003c!-\u003e)\\b(?:if|else|switch|case|default|return|try|throw|throws|catch|while|for|do|break|continue|discard|defer|spirv_asm|__target_switch|__stage_switch|__intrinsic_asm|__GPU_FOREACH)\\b"},{"name":"keyword.declaration.slang","match":"(?\u003c!\\.)(?\u003c!::)(?\u003c!-\u003e)\\b(?:let|var|func|typedef|typealias|property|get|set|class|struct|interface|enum|extension|associatedtype|namespace|using|import|module|implementing|cbuffer|tbuffer|where|syntax|attribute_syntax|semantic|type_param|__generic|__extension|__init|__subscript|__import|__include|__ignored_block|__transparent_block|__file_decl|__require_capability|__generic_value_param|typename)\\b"},{"name":"storage.modifier.slang","match":"(?\u003c!\\.)(?\u003c!::)(?\u003c!-\u003e)\\b(?:static|const|extern|inline|public|private|internal|protected|uniform|dynamic_uniform|groupshared|shared|volatile|coherent|restrict|readonly|writeonly|export|override|__extern_cpp|param|require|row_major|column_major|nointerpolation|noperspective|linear|sample|centroid|precise|in|out|inout|ref|__ref|__constref|dyn|some|implicit|noncopyable|constexpr|mutating|highp|lowp|mediump|__builtin|__global|point|line|triangle|lineadj|triangleadj|vertices|indices|primitives|payload|__prefix|__postfix|__exported|layout|hitAttributeEXT|__intrinsic_op|__target_intrinsic|__specialized_for_target|__glsl_extension|__glsl_version|__spirv_version|__wgsl_extension|__cuda_sm_version|__builtin_type|__builtin_requirement|__magic_type|__magic_enum|__intrinsic_type|__implicit_conversion|__attributeTarget)\\b"},{"name":"keyword.operator.expression.slang","match":"(?\u003c!\\.)(?\u003c!::)(?\u003c!-\u003e)\\b(?:as|is|this|This|sizeof|alignof|countof|no_diff|fwd_diff|bwd_diff|__fwd_diff|__bwd_diff|__dispatch_kernel|each|expand|optional|nonempty|__return_val|__first|__last|__trimFirst|__trimLast|__packBranch|__getAddress|__floatAsInt)\\b"}]},"line-continuation":{"patterns":[{"name":"constant.character.escape.line-continuation.slang","match":"\\\\$"}]},"modern-type-annotations":{"patterns":[{"name":"meta.type.annotation.slang","begin":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\s*(:)(?!\\s*(?:SV_[A-Za-z_0-9]+\\b|register\\b|packoffset\\b|read\\b|write\\b))\\s*((?:bool|int(?:8_t|16_t|32_t|64_t)?|uint(?:8_t|16_t|32_t|64_t)?|half|float(?:16_t|32_t|64_t)?|double)[1-4](?:x[1-4])?)\\b","end":"(?=\\s*(?:=|,|\\)|;|\\{|\\}|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"storage.type.numeric.slang"}}},{"name":"meta.type.annotation.slang","begin":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\s*(:)(?!\\s*(?:SV_[A-Za-z_0-9]+\\b|register\\b|packoffset\\b|read\\b|write\\b))\\s*((?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype))\\b","end":"(?=\\s*(?:=|,|\\)|;|\\{|\\}|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"storage.type.builtin.slang"}}},{"name":"meta.type.annotation.slang","begin":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\s*(:)(?!\\s*(?:SV_[A-Za-z_0-9]+\\b|register\\b|packoffset\\b|read\\b|write\\b))\\s*((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure))\\b","end":"(?=\\s*(?:=|,|\\)|;|\\{|\\}|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"entity.name.type.slang"}}},{"name":"meta.type.annotation.slang","begin":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\s*(:)(?!\\s*(?:SV_[A-Za-z_0-9]+\\b|register\\b|packoffset\\b|read\\b|write\\b))\\s*((?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer))\\b","end":"(?=\\s*(?:=|,|\\)|;|\\{|\\}|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\s*(:)(?!\\s*(?:SV_[A-Za-z_0-9]+\\b|register\\b|packoffset\\b|read\\b|write\\b))\\s*((?!if\\b|else\\b|switch\\b|case\\b|default\\b|return\\b|for\\b|while\\b|do\\b|break\\b|continue\\b|discard\\b|defer\\b)(?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];=)\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*(?:=|,|\\)|;|\\{|\\}|\\]|\\bwhere\\b))","captures":{"2":{"name":"punctuation.separator.type.annotation.slang"},"3":{"name":"entity.name.type.slang"}}}]},"numbers":{"patterns":[{"name":"constant.numeric.integer.hexadecimal.slang","match":"\\b0[xX][0-9A-Fa-f](?:[0-9A-Fa-f_]*[0-9A-Fa-f])?(?:[uU](?:ll|LL|l|L)?|(?:ll|LL|l|L)[uU]?)?\\b"},{"name":"constant.numeric.integer.binary.slang","match":"\\b0[bB][01](?:[01_]*[01])?(?:[uU](?:ll|LL|l|L)?|(?:ll|LL|l|L)[uU]?)?\\b"},{"name":"constant.numeric.float.slang","match":"(?x)\\b(?:\\d(?:[\\d_]*\\d)?(?:\\.\\d*(?:[\\d_]*\\d)?)?|\\.\\d(?:[\\d_]*\\d)?)(?:[eE][+-]?\\d(?:[\\d_]*\\d)?)?(?:[fFhH]|lf|LF)?\\b"},{"name":"constant.numeric.integer.decimal.slang","match":"\\b\\d(?:[\\d_]*\\d)?(?:[uU](?:ll|LL|l|L)?|(?:ll|LL|l|L)[uU]?)?\\b"}]},"operators":{"patterns":[{"name":"keyword.operator.access.slang","match":"=\u003e|-\u003e|::|\\."},{"name":"keyword.operator.slang","match":"\\+\\+|--|\u0026\u0026|\\|\\||\u003c\u003c|\u003e\u003e|\u003c=|\u003e=|==|!=|\\+=|-=|\\*=|/=|%=|\u0026=|\\|=|\\^=|\u003c\u003c=|\u003e\u003e=|[+\\-*/%\u0026|^~!=\u003c\u003e?:]"},{"name":"punctuation.section.group.slang","match":"[{}()]"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"punctuation.separator.comma.slang","match":","},{"name":"punctuation.terminator.statement.slang","match":";"}]},"preprocessor":{"patterns":[{"name":"meta.preprocessor.include.slang","begin":"^(\\s*)(#)\\s*(include)\\b","end":"$","patterns":[{"include":"#line-continuation"},{"name":"string.quoted.other.include.slang","begin":"\u003c","end":"\u003e","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"include":"#strings"},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.control.directive.slang"},"3":{"name":"keyword.control.directive.slang"}}},{"name":"meta.preprocessor.define.slang","begin":"^(\\s*)(#)\\s*(define)\\b\\s*([A-Za-z_][A-Za-z_0-9]*)?","end":"(?\u003c!\\\\)$","patterns":[{"include":"#line-continuation"},{"include":"#strings"},{"include":"#numbers"},{"include":"#comments"},{"name":"keyword.control.directive.slang","match":"\\bdefined\\b"},{"name":"entity.name.function.preprocessor.slang","match":"\\b[A-Za-z_][A-Za-z_0-9]*\\b(?=\\s*\\()"},{"name":"entity.name.other.preprocessor.macro.slang","match":"\\b[A-Za-z_][A-Za-z_0-9]*\\b"}],"beginCaptures":{"2":{"name":"keyword.control.directive.slang"},"3":{"name":"keyword.control.directive.slang"},"4":{"name":"entity.name.function.preprocessor.slang"}}},{"name":"meta.preprocessor.language-version.slang","begin":"^(\\s*)(#)\\s*(language|lang|version)\\b","end":"(?\u003c!\\\\)$","patterns":[{"include":"#line-continuation"},{"include":"#comments"},{"include":"#numbers"},{"name":"keyword.control.directive.slang","match":"\\b(?:slang|latest|core|es|compatibility)\\b"},{"name":"entity.name.other.preprocessor.macro.slang","match":"\\b[A-Za-z_][A-Za-z_0-9]*\\b"}],"beginCaptures":{"2":{"name":"keyword.control.directive.slang"},"3":{"name":"keyword.control.directive.slang"}}},{"name":"meta.preprocessor.slang","begin":"^(\\s*)(#)\\s*(if|ifdef|ifndef|elif|else|endif|undef|pragma|line|error|warning)\\b","end":"(?\u003c!\\\\)$","patterns":[{"include":"#line-continuation"},{"include":"#strings"},{"include":"#numbers"},{"include":"#comments"},{"name":"keyword.control.directive.slang","match":"\\bdefined\\b"},{"name":"entity.name.other.preprocessor.macro.slang","match":"\\b[A-Za-z_][A-Za-z_0-9]*\\b"}],"beginCaptures":{"2":{"name":"keyword.control.directive.slang"},"3":{"name":"keyword.control.directive.slang"}}}]},"return-types":{"patterns":[{"name":"meta.return.type.slang","begin":"(?x)(-\u003e)\\s*((?:bool|int(?:8_t|16_t|32_t|64_t)?|uint(?:8_t|16_t|32_t|64_t)?|half|float(?:16_t|32_t|64_t)?|double)[1-4](?:x[1-4])?)\\b","end":"(?=\\s*(?:\\{|;|,|\\)|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"1":{"name":"keyword.operator.return-type.slang"},"2":{"name":"storage.type.numeric.slang"}}},{"name":"meta.return.type.slang","begin":"(?x)(-\u003e)\\s*((?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype))\\b","end":"(?=\\s*(?:\\{|;|,|\\)|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"1":{"name":"keyword.operator.return-type.slang"},"2":{"name":"storage.type.builtin.slang"}}},{"name":"meta.return.type.slang","begin":"(?x)(-\u003e)\\s*((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure))\\b","end":"(?=\\s*(?:\\{|;|,|\\)|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"1":{"name":"keyword.operator.return-type.slang"},"2":{"name":"entity.name.type.slang"}}},{"name":"meta.return.type.slang","begin":"(?x)(-\u003e)\\s*((?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer))\\b","end":"(?=\\s*(?:\\{|;|,|\\)|\\]|\\bwhere\\b))","patterns":[{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"1":{"name":"keyword.operator.return-type.slang"},"2":{"name":"entity.name.type.slang"}}},{"match":"(?x)(-\u003e)\\s*((?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*(?:\\{|;|,|\\)|\\]|\\bwhere\\b))","captures":{"1":{"name":"keyword.operator.return-type.slang"},"2":{"name":"entity.name.type.slang"}}}]},"semantics":{"patterns":[{"match":"(:)\\s*(SV_[A-Za-z_0-9]+)\\b","captures":{"1":{"name":"punctuation.separator.semantic.slang"},"2":{"name":"variable.other.enummember.slang"}}},{"match":"(:)\\s*(register|packoffset|read|write)\\b","captures":{"1":{"name":"punctuation.separator.semantic.slang"},"2":{"name":"support.function.semantic.slang"}}}]},"spirv-asm-blocks":{"patterns":[{"name":"meta.embedded.block.spirv-asm.slang","begin":"\\b(spirv_asm)\\b\\s*(\\{)","end":"(\\})","beginCaptures":{"1":{"name":"keyword.control.slang"},"2":{"name":"punctuation.section.group.slang"}},"endCaptures":{"1":{"name":"punctuation.section.group.slang"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.raw.slang","begin":"R\"([^\"\\r\\n()]*)\\(","end":"\\)\\1\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.double.slang","begin":"\"","end":"\"|$","patterns":[{"include":"#escape-sequences"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}},{"name":"string.quoted.single.slang","begin":"'","end":"'|$","patterns":[{"include":"#escape-sequences"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.slang"}}}]},"traditional-declarations":{"patterns":[{"match":"(?x)\\b(implementing)\\b\\s+([A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*)\\b(?=\\s*;)","captures":{"1":{"name":"keyword.declaration.slang"},"2":{"name":"entity.name.type.slang"}}},{"name":"meta.declaration.traditional.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((expand)\\b\\s+)(each)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*\\s*[A-Za-z_][A-Za-z_0-9]*\\b(?:\\s*\u003c[^{};\\n]*\u003e\\s*)?\\s*(?:\\(|=|;|,|\\)|\\[|:))","end":"(?=\\s*(?:\\(|=|;|,|\\)|:))","patterns":[{"include":"#declarator-name-generic-parameters"},{"include":"#type-argument-list"},{"include":"#array-extents"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:=|;|,|\\)|\\[|:))","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"3":{"name":"keyword.operator.expression.slang"},"4":{"name":"keyword.operator.expression.slang"},"5":{"name":"entity.name.type.slang"}}},{"name":"meta.declaration.traditional.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((expand)\\b\\s+)?((?:bool|int(?:8_t|16_t|32_t|64_t)?|uint(?:8_t|16_t|32_t|64_t)?|half|float(?:16_t|32_t|64_t)?|double)[1-4](?:x[1-4])?)\\b(?=\\s*(?:\u003c[^;\\n]*\u003e\\s*)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*\\s*[A-Za-z_][A-Za-z_0-9]*\\b(?:\\s*\u003c[^{};\\n]*\u003e\\s*)?\\s*(?:\\(|=|;|,|\\)|\\[|:))","end":"(?=\\s*(?:\\(|=|;|,|\\)|:))","patterns":[{"include":"#declarator-name-generic-parameters"},{"include":"#type-argument-list"},{"include":"#array-extents"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:=|;|,|\\)|\\[|:))","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"2":{"name":"keyword.operator.expression.slang"},"4":{"name":"storage.type.numeric.slang"}}},{"name":"meta.declaration.traditional.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((expand)\\b\\s+)?((?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype))\\b(?=\\s*(?:\u003c[^;\\n]*\u003e\\s*)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*\\s*[A-Za-z_][A-Za-z_0-9]*\\b(?:\\s*\u003c[^{};\\n]*\u003e\\s*)?\\s*(?:\\(|=|;|,|\\)|\\[|:))","end":"(?=\\s*(?:\\(|=|;|,|\\)|:))","patterns":[{"include":"#declarator-name-generic-parameters"},{"include":"#type-argument-list"},{"include":"#array-extents"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:=|;|,|\\)|\\[|:))","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"2":{"name":"keyword.operator.expression.slang"},"4":{"name":"storage.type.builtin.slang"}}},{"name":"meta.declaration.traditional.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((expand)\\b\\s+)?((?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure))\\b(?=\\s*(?:\u003c[^;\\n]*\u003e\\s*)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*\\s*[A-Za-z_][A-Za-z_0-9]*\\b(?:\\s*\u003c[^{};\\n]*\u003e\\s*)?\\s*(?:\\(|=|;|,|\\)|\\[|:))","end":"(?=\\s*(?:\\(|=|;|,|\\)|:))","patterns":[{"include":"#declarator-name-generic-parameters"},{"include":"#type-argument-list"},{"include":"#array-extents"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:=|;|,|\\)|\\[|:))","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"2":{"name":"keyword.operator.expression.slang"},"4":{"name":"entity.name.type.slang"}}},{"name":"meta.declaration.traditional.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((expand)\\b\\s+)?((?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer))\\b(?=\\s*(?:\u003c[^;\\n]*\u003e\\s*)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*\\s*[A-Za-z_][A-Za-z_0-9]*\\b(?:\\s*\u003c[^{};\\n]*\u003e\\s*)?\\s*(?:\\(|=|;|,|\\)|\\[|:))","end":"(?=\\s*(?:\\(|=|;|,|\\)|:))","patterns":[{"include":"#declarator-name-generic-parameters"},{"include":"#type-argument-list"},{"include":"#array-extents"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:=|;|,|\\)|\\[|:))","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"2":{"name":"keyword.operator.expression.slang"},"4":{"name":"entity.name.type.slang"}}},{"name":"meta.declaration.traditional.slang","begin":"(?x)\\b((?:(?:static|const|extern|inline|nointerpolation|noperspective|linear|sample|centroid|precise|shared|groupshared|uniform|volatile|coherent|restrict|readonly|writeonly|export|dynamic_uniform|public|private|internal|protected|param|require|in|out|inout|ref|__ref|__constref|dyn|override|__extern_cpp)\\b\\s+)*)((expand)\\b\\s+)?((?!if\\b|else\\b|switch\\b|case\\b|default\\b|return\\b|for\\b|while\\b|do\\b|break\\b|continue\\b|discard\\b|defer\\b|let\\b|var\\b|func\\b|struct\\b|class\\b|interface\\b|enum\\b|extension\\b|associatedtype\\b|namespace\\b|using\\b|import\\b|module\\b|implementing\\b|typealias\\b|typedef\\b|cbuffer\\b|tbuffer\\b|where\\b|expand\\b|each\\b|optional\\b|nonempty\\b|spirv_asm\\b|__return_val\\b|__first\\b|__last\\b|__trimFirst\\b|__trimLast\\b|__packBranch\\b|__getAddress\\b|__floatAsInt\\b)(?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*)\\b(?=\\s*(?:\u003c[^;\\n]*\u003e\\s*)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*\\s*[A-Za-z_][A-Za-z_0-9]*\\b(?:\\s*\u003c[^{};\\n]*\u003e\\s*)?\\s*(?:\\(|=|;|,|\\)|\\[|:))","end":"(?=\\s*(?:\\(|=|;|,|\\)|:))","patterns":[{"include":"#declarator-name-generic-parameters"},{"include":"#type-argument-list"},{"include":"#array-extents"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.slang"}}},{"match":"\\b([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*(?:=|;|,|\\)|\\[|:))","captures":{"1":{"name":"variable.other.slang"}}}],"beginCaptures":{"1":{"name":"storage.modifier.slang"},"2":{"name":"keyword.operator.expression.slang"},"4":{"name":"entity.name.type.slang"}}}]},"type-argument-list":{"patterns":[{"begin":"\u003c","end":"\u003e","patterns":[{"include":"#numbers"},{"match":"\\b(each)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b","captures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"}}},{"name":"keyword.operator.expression.slang","match":"\\b(?:let|expand|each|optional|nonempty|__first|__last|__trimFirst|__trimLast|__packBranch|__getAddress|__floatAsInt)\\b"},{"include":"#types"},{"match":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*)\\b(?=\\s*(?:\u003c|\\[|\\*))","captures":{"1":{"name":"entity.name.type.slang"}}},{"include":"#type-argument-list"},{"name":"punctuation.section.group.slang","match":"[()]"},{"name":"punctuation.separator.comma.slang","match":","},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"punctuation.accessor.slang","match":"(?:::|\\.)"},{"name":"keyword.operator.slang","match":"\\+\\+|--|\u003c\u003c|\u003e\u003e|\u003c=|\u003e=|==|!=|\\+=|-=|\\*=|/=|%=|\u0026=|\\|=|\\^=|\u003c\u003c=|\u003e\u003e=|[+\\-/%\u0026|^~!=?:]"},{"name":"keyword.operator.slang","match":"\\*"}],"beginCaptures":{"0":{"name":"punctuation.definition.generic.begin.slang"}},"endCaptures":{"0":{"name":"punctuation.definition.generic.end.slang"}}}]},"type-declaration-headers":{"patterns":[{"name":"meta.declaration.type.slang","begin":"(?x)\\b(enum)\\b(?:\\s+(class))?\\s+([A-Za-z_][A-Za-z_0-9]*)","end":"(?=\\s*(?://|/\\*|\\{|;|$))","patterns":[{"include":"#comments"},{"include":"#declaration-generic-parameters"},{"include":"#base-type-clause"},{"include":"#where-clauses"}],"beginCaptures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"keyword.declaration.type.slang"},"3":{"name":"entity.name.type.slang"}}},{"name":"meta.declaration.type.slang","begin":"(?x)\\b(struct|class|interface)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)","end":"(?=\\s*(?://|/\\*|\\{|;|$))","patterns":[{"include":"#comments"},{"include":"#declaration-generic-parameters"},{"include":"#base-type-clause"},{"include":"#where-clauses"}],"beginCaptures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"entity.name.type.slang"}}},{"name":"meta.declaration.type.slang","begin":"(?x)\\b(cbuffer|tbuffer)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)","end":"(?=\\s*(?://|/\\*|\\{|;|$))","patterns":[{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"entity.name.type.slang"}}}]},"type-declarations":{"patterns":[{"match":"(?x)\\b(namespace|module)\\b\\s+([A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*)","captures":{"1":{"name":"keyword.declaration.slang"},"2":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b(enum)\\b(?:\\s+(class))?\\s+([A-Za-z_][A-Za-z_0-9]*)","captures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"keyword.declaration.type.slang"},"3":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b(struct|class|interface)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)","captures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b(cbuffer|tbuffer)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)","captures":{"1":{"name":"keyword.declaration.type.slang"},"2":{"name":"entity.name.type.slang"}}},{"match":"(?x)\\b(typealias)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b","captures":{"1":{"name":"keyword.declaration.typealias.slang"},"2":{"name":"entity.name.type.alias.slang"}}},{"match":"(?x)\\b(typedef)\\b\\s+[^;\\n=]+\\s+([A-Za-z_][A-Za-z_0-9]*)\\b(?=\\s*;)","captures":{"1":{"name":"keyword.declaration.typedef.slang"},"2":{"name":"entity.name.type.alias.slang"}}}]},"type-reference-list":{"patterns":[{"include":"#types"},{"match":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*)\\b(?=\\s*(?:\u003c|\\[|\\*|,|\u003e|\\)|\\]|\\{|;|:|\\bwhere\\b|$))","captures":{"1":{"name":"entity.name.type.slang"}}},{"include":"#type-argument-list"},{"name":"punctuation.section.brackets.slang","match":"[\\[\\]]"},{"name":"keyword.operator.slang","match":"\\*"}]},"typealias-types":{"patterns":[{"match":"(?x)\\b(typealias)\\b[^=;\\n]*(=)\\s*((?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)(?=\\s*;)","captures":{"1":{"name":"keyword.declaration.typealias.slang"},"2":{"name":"keyword.operator.assignment.slang"},"3":{"name":"entity.name.type.slang"}}}]},"typedef-types":{"patterns":[{"match":"(?x)\\b(typedef)\\b\\s+((?:functype\\s*\\([^)]*\\)\\s*-\u003e\\s*)?[A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*(?:\\s*\u003c[^\u003c\u003e{}\\[\\];\\n]*\u003e)?(?:\\s*(?:\\[[^\\]\\n]*\\]|\\*))*)\\s+([A-Za-z_][A-Za-z_0-9]*)(?=\\s*;)","captures":{"1":{"name":"keyword.declaration.typedef.slang"},"2":{"name":"entity.name.type.slang"},"3":{"name":"entity.name.type.alias.slang"}}}]},"types":{"patterns":[{"name":"storage.type.builtin.slang","match":"\\b(?:void|bool|int8_t|int16_t|int32_t|int64_t|int|uint8_t|uint16_t|uint32_t|uint64_t|uint|half|float16_t|float32_t|float64_t|float|double|string|vector|matrix|functype)\\b"},{"name":"storage.type.numeric.slang","match":"\\b(?:bool|int(?:8_t|16_t|32_t|64_t)?|uint(?:8_t|16_t|32_t|64_t)?|half|float(?:16_t|32_t|64_t)?|double)[1-4](?:x[1-4])?\\b"},{"name":"entity.name.type.slang","match":"\\b(?:String|Array|Tuple|Optional|Conditional|Result|Ptr|ImmutablePtr|Atomic|DescriptorHandle|DifferentialPair|ParameterBlock|ConstantBuffer|TextureBuffer|SamplerState|SamplerComparisonState|SubpassInput|SubpassInputMS|RaytracingAccelerationStructure)\\b"},{"name":"entity.name.type.slang","match":"\\b(?:(?:Depth|Feedback|RasterizerOrdered|RW)?Texture(?:1D|2D|3D|Cube)(?:Array)?(?:MS(?:Array)?)?|Sampler(?:1D|2D|3D|Cube)(?:Array)?(?:Shadow)?|(?:Append|Consume|RW)?StructuredBuffer|(?:RW)?Buffer|(?:RW|RasterizerOrdered)?ByteAddressBuffer)\\b"},{"name":"support.type.internal.slang","match":"\\b__[_A-Za-z0-9]*Type\\b"}]},"where-clauses":{"patterns":[{"name":"meta.where-clause.slang","begin":"\\b(where)\\b","end":"(?=\\s*(?:\\bwhere\\b|\\{|;))","patterns":[{"include":"#comments"},{"include":"#numbers"},{"name":"meta.where-constraint.slang","begin":"(?x)\\b(optional)\\b\\s+([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:\\bwhere\\b|\\{|;|$))","patterns":[{"include":"#comments"},{"include":"#numbers"},{"include":"#type-reference-list"},{"include":"#operators"}],"beginCaptures":{"1":{"name":"keyword.operator.expression.slang"},"2":{"name":"entity.name.type.slang"},"3":{"name":"punctuation.separator.type.annotation.slang"}}},{"name":"meta.where-constraint.slang","begin":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*)\\b\\s*(:)","end":"(?=\\s*(?:\\bwhere\\b|\\{|;|$))","patterns":[{"include":"#comments"},{"include":"#numbers"},{"include":"#type-reference-list"},{"name":"keyword.operator.expression.slang","match":"\\b(?:optional|nonempty)\\b"},{"include":"#operators"}],"beginCaptures":{"1":{"name":"entity.name.type.slang"},"2":{"name":"punctuation.separator.type.annotation.slang"}}},{"include":"#type-reference-list"},{"name":"keyword.operator.expression.slang","match":"\\b(?:optional|nonempty)\\b"},{"name":"keyword.operator.expression.slang","match":"\\b(?:expand|each|__first|__last|__trimFirst|__trimLast|__packBranch)\\b"},{"match":"(?x)\\b([A-Za-z_][A-Za-z_0-9]*(?:(?:\\s*(?:::|\\.))\\s*[A-Za-z_][A-Za-z_0-9]*)*)\\b(?=\\s*(?:==|!=|\u0026\u0026|\\|\\||[+\\-*/%\u0026|^~!=\u003c\u003e?:,()]))","captures":{"1":{"name":"entity.name.type.slang"}}},{"include":"#operators"}],"beginCaptures":{"1":{"name":"keyword.declaration.slang"}}}]}}}