diff options
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml')
| -rw-r--r-- | vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml | 660 |
1 files changed, 660 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml new file mode 100644 index 0000000..d3e0627 --- /dev/null +++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml | |||
| @@ -0,0 +1,660 @@ | |||
| 1 | <lexer> | ||
| 2 | <config> | ||
| 3 | <name>Batchfile</name> | ||
| 4 | <alias>bat</alias> | ||
| 5 | <alias>batch</alias> | ||
| 6 | <alias>dosbatch</alias> | ||
| 7 | <alias>winbatch</alias> | ||
| 8 | <filename>*.bat</filename> | ||
| 9 | <filename>*.cmd</filename> | ||
| 10 | <mime_type>application/x-dos-batch</mime_type> | ||
| 11 | <case_insensitive>true</case_insensitive> | ||
| 12 | </config> | ||
| 13 | <rules> | ||
| 14 | <state name="arithmetic"> | ||
| 15 | <rule pattern="0[0-7]+"> | ||
| 16 | <token type="LiteralNumberOct"/> | ||
| 17 | </rule> | ||
| 18 | <rule pattern="0x[\da-f]+"> | ||
| 19 | <token type="LiteralNumberHex"/> | ||
| 20 | </rule> | ||
| 21 | <rule pattern="\d+"> | ||
| 22 | <token type="LiteralNumberInteger"/> | ||
| 23 | </rule> | ||
| 24 | <rule pattern="[(),]+"> | ||
| 25 | <token type="Punctuation"/> | ||
| 26 | </rule> | ||
| 27 | <rule pattern="([=+\-*/!~]|%|\^\^)+"> | ||
| 28 | <token type="Operator"/> | ||
| 29 | </rule> | ||
| 30 | <rule pattern="((?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^"\n\x1a&<>|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[\w\W])+"> | ||
| 31 | <usingself state="variable"/> | ||
| 32 | </rule> | ||
| 33 | <rule pattern="(?=[\x00|&])"> | ||
| 34 | <token type="Text"/> | ||
| 35 | <pop depth="1"/> | ||
| 36 | </rule> | ||
| 37 | <rule> | ||
| 38 | <include state="follow"/> | ||
| 39 | </rule> | ||
| 40 | </state> | ||
| 41 | <state name="else?"> | ||
| 42 | <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)"> | ||
| 43 | <usingself state="text"/> | ||
| 44 | </rule> | ||
| 45 | <rule pattern="else(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])"> | ||
| 46 | <token type="Keyword"/> | ||
| 47 | <pop depth="1"/> | ||
| 48 | </rule> | ||
| 49 | <rule> | ||
| 50 | <pop depth="1"/> | ||
| 51 | </rule> | ||
| 52 | </state> | ||
| 53 | <state name="sqstring"> | ||
| 54 | <rule> | ||
| 55 | <include state="variable-or-escape"/> | ||
| 56 | </rule> | ||
| 57 | <rule pattern="[^%]+|%"> | ||
| 58 | <token type="LiteralStringSingle"/> | ||
| 59 | </rule> | ||
| 60 | </state> | ||
| 61 | <state name="root"> | ||
| 62 | <rule pattern="\)((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*)"> | ||
| 63 | <token type="CommentSingle"/> | ||
| 64 | </rule> | ||
| 65 | <rule pattern="(?=((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))"> | ||
| 66 | <token type="Text"/> | ||
| 67 | <push state="follow"/> | ||
| 68 | </rule> | ||
| 69 | <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)"> | ||
| 70 | <usingself state="text"/> | ||
| 71 | </rule> | ||
| 72 | <rule> | ||
| 73 | <include state="redirect"/> | ||
| 74 | </rule> | ||
| 75 | <rule pattern="[\n\x1a]+"> | ||
| 76 | <token type="Text"/> | ||
| 77 | </rule> | ||
| 78 | <rule pattern="\("> | ||
| 79 | <token type="Punctuation"/> | ||
| 80 | <push state="root/compound"/> | ||
| 81 | </rule> | ||
| 82 | <rule pattern="@+"> | ||
| 83 | <token type="Punctuation"/> | ||
| 84 | </rule> | ||
| 85 | <rule pattern="((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?<=m))(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)"> | ||
| 86 | <bygroups> | ||
| 87 | <token type="Keyword"/> | ||
| 88 | <usingself state="text"/> | ||
| 89 | </bygroups> | ||
| 90 | <push state="follow"/> | ||
| 91 | </rule> | ||
| 92 | <rule pattern="(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|])*)"> | ||
| 93 | <bygroups> | ||
| 94 | <token type="Keyword"/> | ||
| 95 | <usingself state="text"/> | ||
| 96 | </bygroups> | ||
| 97 | <push state="follow"/> | ||
| 98 | </rule> | ||
| 99 | <rule pattern="(setlocal|endlocal|prompt|verify|rename|mklink|rmdir|shift|start|color|dpath|title|chdir|erase|pushd|ftype|break|pause|mkdir|assoc|date|path|time|popd|keys|exit|type|copy|echo|move|dir|del|ren|ver|cls|vol|rd|md|cd)(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])"> | ||
| 100 | <token type="Keyword"/> | ||
| 101 | <push state="follow"/> | ||
| 102 | </rule> | ||
| 103 | <rule pattern="(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)"> | ||
| 104 | <bygroups> | ||
| 105 | <token type="Keyword"/> | ||
| 106 | <usingself state="text"/> | ||
| 107 | <token type="Punctuation"/> | ||
| 108 | </bygroups> | ||
| 109 | <push state="call"/> | ||
| 110 | </rule> | ||
| 111 | <rule pattern="call(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])"> | ||
| 112 | <token type="Keyword"/> | ||
| 113 | </rule> | ||
| 114 | <rule pattern="(for(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))"> | ||
| 115 | <bygroups> | ||
| 116 | <token type="Keyword"/> | ||
| 117 | <usingself state="text"/> | ||
| 118 | <token type="Keyword"/> | ||
| 119 | </bygroups> | ||
| 120 | <push state="for/f" state="for"/> | ||
| 121 | </rule> | ||
| 122 | <rule pattern="(for(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))"> | ||
| 123 | <bygroups> | ||
| 124 | <token type="Keyword"/> | ||
| 125 | <usingself state="text"/> | ||
| 126 | <token type="Keyword"/> | ||
| 127 | </bygroups> | ||
| 128 | <push state="for/l" state="for"/> | ||
| 129 | </rule> | ||
| 130 | <rule pattern="for(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])(?!\^)"> | ||
| 131 | <token type="Keyword"/> | ||
| 132 | <push state="for2" state="for"/> | ||
| 133 | </rule> | ||
| 134 | <rule pattern="(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)"> | ||
| 135 | <bygroups> | ||
| 136 | <token type="Keyword"/> | ||
| 137 | <usingself state="text"/> | ||
| 138 | <token type="Punctuation"/> | ||
| 139 | </bygroups> | ||
| 140 | <push state="label"/> | ||
| 141 | </rule> | ||
| 142 | <rule pattern="(if(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)"> | ||
| 143 | <bygroups> | ||
| 144 | <token type="Keyword"/> | ||
| 145 | <usingself state="text"/> | ||
| 146 | <token type="Keyword"/> | ||
| 147 | <usingself state="text"/> | ||
| 148 | <token type="Keyword"/> | ||
| 149 | <usingself state="text"/> | ||
| 150 | </bygroups> | ||
| 151 | <push state="(?" state="if"/> | ||
| 152 | </rule> | ||
| 153 | <rule pattern="rem(((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+)?.*|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*))"> | ||
| 154 | <token type="CommentSingle"/> | ||
| 155 | <push state="follow"/> | ||
| 156 | </rule> | ||
| 157 | <rule pattern="(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)"> | ||
| 158 | <bygroups> | ||
| 159 | <token type="Keyword"/> | ||
| 160 | <usingself state="text"/> | ||
| 161 | <token type="Keyword"/> | ||
| 162 | </bygroups> | ||
| 163 | <push state="arithmetic"/> | ||
| 164 | </rule> | ||
| 165 | <rule pattern="(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|^=]|\^[\n\x1a]?[^"=])+)?)((?:(?:\^[\n\x1a]?)?=)?)"> | ||
| 166 | <bygroups> | ||
| 167 | <token type="Keyword"/> | ||
| 168 | <usingself state="text"/> | ||
| 169 | <token type="Keyword"/> | ||
| 170 | <usingself state="text"/> | ||
| 171 | <usingself state="variable"/> | ||
| 172 | <token type="Punctuation"/> | ||
| 173 | </bygroups> | ||
| 174 | <push state="follow"/> | ||
| 175 | </rule> | ||
| 176 | <rule> | ||
| 177 | <push state="follow"/> | ||
| 178 | </rule> | ||
| 179 | </state> | ||
| 180 | <state name="follow"> | ||
| 181 | <rule pattern="((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))(.*)"> | ||
| 182 | <bygroups> | ||
| 183 | <token type="Text"/> | ||
| 184 | <token type="Punctuation"/> | ||
| 185 | <token type="Text"/> | ||
| 186 | <token type="NameLabel"/> | ||
| 187 | <token type="CommentSingle"/> | ||
| 188 | </bygroups> | ||
| 189 | </rule> | ||
| 190 | <rule> | ||
| 191 | <include state="redirect"/> | ||
| 192 | </rule> | ||
| 193 | <rule pattern="(?=[\n\x1a])"> | ||
| 194 | <token type="Text"/> | ||
| 195 | <pop depth="1"/> | ||
| 196 | </rule> | ||
| 197 | <rule pattern="\|\|?|&&?"> | ||
| 198 | <token type="Punctuation"/> | ||
| 199 | <pop depth="1"/> | ||
| 200 | </rule> | ||
| 201 | <rule> | ||
| 202 | <include state="text"/> | ||
| 203 | </rule> | ||
| 204 | </state> | ||
| 205 | <state name="bqstring"> | ||
| 206 | <rule> | ||
| 207 | <include state="variable-or-escape"/> | ||
| 208 | </rule> | ||
| 209 | <rule pattern="[^%]+|%"> | ||
| 210 | <token type="LiteralStringBacktick"/> | ||
| 211 | </rule> | ||
| 212 | </state> | ||
| 213 | <state name="for2"> | ||
| 214 | <rule pattern="\)"> | ||
| 215 | <token type="Punctuation"/> | ||
| 216 | </rule> | ||
| 217 | <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(do(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))"> | ||
| 218 | <bygroups> | ||
| 219 | <usingself state="text"/> | ||
| 220 | <token type="Keyword"/> | ||
| 221 | </bygroups> | ||
| 222 | <pop depth="1"/> | ||
| 223 | </rule> | ||
| 224 | <rule pattern="[\n\x1a]+"> | ||
| 225 | <token type="Text"/> | ||
| 226 | </rule> | ||
| 227 | <rule> | ||
| 228 | <include state="follow"/> | ||
| 229 | </rule> | ||
| 230 | </state> | ||
| 231 | <state name="label/compound"> | ||
| 232 | <rule pattern="(?=\))"> | ||
| 233 | <token type="Text"/> | ||
| 234 | <pop depth="1"/> | ||
| 235 | </rule> | ||
| 236 | <rule pattern="((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*)?)((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[^)]|[^"%^\n\x1a&<>|)])*)"> | ||
| 237 | <bygroups> | ||
| 238 | <token type="NameLabel"/> | ||
| 239 | <token type="CommentSingle"/> | ||
| 240 | </bygroups> | ||
| 241 | <pop depth="1"/> | ||
| 242 | </rule> | ||
| 243 | </state> | ||
| 244 | <state name="for"> | ||
| 245 | <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(in)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\()"> | ||
| 246 | <bygroups> | ||
| 247 | <usingself state="text"/> | ||
| 248 | <token type="Keyword"/> | ||
| 249 | <usingself state="text"/> | ||
| 250 | <token type="Punctuation"/> | ||
| 251 | </bygroups> | ||
| 252 | <pop depth="1"/> | ||
| 253 | </rule> | ||
| 254 | <rule> | ||
| 255 | <include state="follow"/> | ||
| 256 | </rule> | ||
| 257 | </state> | ||
| 258 | <state name="redirect/compound"> | ||
| 259 | <rule pattern="((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(>>?&|<&)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)"> | ||
| 260 | <bygroups> | ||
| 261 | <token type="LiteralNumberInteger"/> | ||
| 262 | <token type="Punctuation"/> | ||
| 263 | <token type="Text"/> | ||
| 264 | <token type="LiteralNumberInteger"/> | ||
| 265 | </bygroups> | ||
| 266 | </rule> | ||
| 267 | <rule pattern="((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])(?<!\^[\n\x1a])\d)?)(>>?|<)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0)])+))+))"> | ||
| 268 | <bygroups> | ||
| 269 | <token type="LiteralNumberInteger"/> | ||
| 270 | <token type="Punctuation"/> | ||
| 271 | <usingself state="text"/> | ||
| 272 | </bygroups> | ||
| 273 | </rule> | ||
| 274 | </state> | ||
| 275 | <state name="if"> | ||
| 276 | <rule pattern="((?:cmdextversion|errorlevel)(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\d+)"> | ||
| 277 | <bygroups> | ||
| 278 | <token type="Keyword"/> | ||
| 279 | <usingself state="text"/> | ||
| 280 | <token type="LiteralNumberInteger"/> | ||
| 281 | </bygroups> | ||
| 282 | <pop depth="1"/> | ||
| 283 | </rule> | ||
| 284 | <rule pattern="(defined(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))"> | ||
| 285 | <bygroups> | ||
| 286 | <token type="Keyword"/> | ||
| 287 | <usingself state="text"/> | ||
| 288 | <usingself state="variable"/> | ||
| 289 | </bygroups> | ||
| 290 | <pop depth="1"/> | ||
| 291 | </rule> | ||
| 292 | <rule pattern="(exist(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))"> | ||
| 293 | <bygroups> | ||
| 294 | <token type="Keyword"/> | ||
| 295 | <usingself state="text"/> | ||
| 296 | </bygroups> | ||
| 297 | <pop depth="1"/> | ||
| 298 | </rule> | ||
| 299 | <rule pattern="((?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))"> | ||
| 300 | <bygroups> | ||
| 301 | <usingself state="arithmetic"/> | ||
| 302 | <token type="OperatorWord"/> | ||
| 303 | <usingself state="arithmetic"/> | ||
| 304 | </bygroups> | ||
| 305 | <pop depth="1"/> | ||
| 306 | </rule> | ||
| 307 | <rule pattern="(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+)"> | ||
| 308 | <usingself state="text"/> | ||
| 309 | <push state="#pop" state="if2"/> | ||
| 310 | </rule> | ||
| 311 | </state> | ||
| 312 | <state name="root/compound"> | ||
| 313 | <rule pattern="\)"> | ||
| 314 | <token type="Punctuation"/> | ||
| 315 | <pop depth="1"/> | ||
| 316 | </rule> | ||
| 317 | <rule pattern="(?=((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))"> | ||
| 318 | <token type="Text"/> | ||
| 319 | <push state="follow/compound"/> | ||
| 320 | </rule> | ||
| 321 | <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)"> | ||
| 322 | <usingself state="text"/> | ||
| 323 | </rule> | ||
| 324 | <rule> | ||
| 325 | <include state="redirect/compound"/> | ||
| 326 | </rule> | ||
| 327 | <rule pattern="[\n\x1a]+"> | ||
| 328 | <token type="Text"/> | ||
| 329 | </rule> | ||
| 330 | <rule pattern="\("> | ||
| 331 | <token type="Punctuation"/> | ||
| 332 | <push state="root/compound"/> | ||
| 333 | </rule> | ||
| 334 | <rule pattern="@+"> | ||
| 335 | <token type="Punctuation"/> | ||
| 336 | </rule> | ||
| 337 | <rule pattern="((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?<=m))(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0)])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)"> | ||
| 338 | <bygroups> | ||
| 339 | <token type="Keyword"/> | ||
| 340 | <usingself state="text"/> | ||
| 341 | </bygroups> | ||
| 342 | <push state="follow/compound"/> | ||
| 343 | </rule> | ||
| 344 | <rule pattern="(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|)])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|)])*)"> | ||
| 345 | <bygroups> | ||
| 346 | <token type="Keyword"/> | ||
| 347 | <usingself state="text"/> | ||
| 348 | </bygroups> | ||
| 349 | <push state="follow/compound"/> | ||
| 350 | </rule> | ||
| 351 | <rule pattern="(setlocal|endlocal|prompt|verify|rename|mklink|rmdir|shift|start|color|dpath|title|chdir|erase|pushd|ftype|break|pause|mkdir|assoc|date|path|time|popd|keys|exit|type|copy|echo|move|dir|del|ren|ver|cls|vol|rd|md|cd)(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))"> | ||
| 352 | <token type="Keyword"/> | ||
| 353 | <push state="follow/compound"/> | ||
| 354 | </rule> | ||
| 355 | <rule pattern="(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)"> | ||
| 356 | <bygroups> | ||
| 357 | <token type="Keyword"/> | ||
| 358 | <usingself state="text"/> | ||
| 359 | <token type="Punctuation"/> | ||
| 360 | </bygroups> | ||
| 361 | <push state="call/compound"/> | ||
| 362 | </rule> | ||
| 363 | <rule pattern="call(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))"> | ||
| 364 | <token type="Keyword"/> | ||
| 365 | </rule> | ||
| 366 | <rule pattern="(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))"> | ||
| 367 | <bygroups> | ||
| 368 | <token type="Keyword"/> | ||
| 369 | <usingself state="text"/> | ||
| 370 | <token type="Keyword"/> | ||
| 371 | </bygroups> | ||
| 372 | <push state="for/f" state="for"/> | ||
| 373 | </rule> | ||
| 374 | <rule pattern="(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))"> | ||
| 375 | <bygroups> | ||
| 376 | <token type="Keyword"/> | ||
| 377 | <usingself state="text"/> | ||
| 378 | <token type="Keyword"/> | ||
| 379 | </bygroups> | ||
| 380 | <push state="for/l" state="for"/> | ||
| 381 | </rule> | ||
| 382 | <rule pattern="for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^)"> | ||
| 383 | <token type="Keyword"/> | ||
| 384 | <push state="for2" state="for"/> | ||
| 385 | </rule> | ||
| 386 | <rule pattern="(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)"> | ||
| 387 | <bygroups> | ||
| 388 | <token type="Keyword"/> | ||
| 389 | <usingself state="text"/> | ||
| 390 | <token type="Punctuation"/> | ||
| 391 | </bygroups> | ||
| 392 | <push state="label/compound"/> | ||
| 393 | </rule> | ||
| 394 | <rule pattern="(if(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)"> | ||
| 395 | <bygroups> | ||
| 396 | <token type="Keyword"/> | ||
| 397 | <usingself state="text"/> | ||
| 398 | <token type="Keyword"/> | ||
| 399 | <usingself state="text"/> | ||
| 400 | <token type="Keyword"/> | ||
| 401 | <usingself state="text"/> | ||
| 402 | </bygroups> | ||
| 403 | <push state="(?" state="if"/> | ||
| 404 | </rule> | ||
| 405 | <rule pattern="rem(((?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+)?.*|(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))(?:(?:[^\n\x1a^)]|\^[\n\x1a]?[^)])*))"> | ||
| 406 | <token type="CommentSingle"/> | ||
| 407 | <push state="follow/compound"/> | ||
| 408 | </rule> | ||
| 409 | <rule pattern="(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)"> | ||
| 410 | <bygroups> | ||
| 411 | <token type="Keyword"/> | ||
| 412 | <usingself state="text"/> | ||
| 413 | <token type="Keyword"/> | ||
| 414 | </bygroups> | ||
| 415 | <push state="arithmetic/compound"/> | ||
| 416 | </rule> | ||
| 417 | <rule pattern="(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|^=)]|\^[\n\x1a]?[^"=])+)?)((?:(?:\^[\n\x1a]?)?=)?)"> | ||
| 418 | <bygroups> | ||
| 419 | <token type="Keyword"/> | ||
| 420 | <usingself state="text"/> | ||
| 421 | <token type="Keyword"/> | ||
| 422 | <usingself state="text"/> | ||
| 423 | <usingself state="variable"/> | ||
| 424 | <token type="Punctuation"/> | ||
| 425 | </bygroups> | ||
| 426 | <push state="follow/compound"/> | ||
| 427 | </rule> | ||
| 428 | <rule> | ||
| 429 | <push state="follow/compound"/> | ||
| 430 | </rule> | ||
| 431 | </state> | ||
| 432 | <state name="follow/compound"> | ||
| 433 | <rule pattern="(?=\))"> | ||
| 434 | <token type="Text"/> | ||
| 435 | <pop depth="1"/> | ||
| 436 | </rule> | ||
| 437 | <rule pattern="((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))(.*)"> | ||
| 438 | <bygroups> | ||
| 439 | <token type="Text"/> | ||
| 440 | <token type="Punctuation"/> | ||
| 441 | <token type="Text"/> | ||
| 442 | <token type="NameLabel"/> | ||
| 443 | <token type="CommentSingle"/> | ||
| 444 | </bygroups> | ||
| 445 | </rule> | ||
| 446 | <rule> | ||
| 447 | <include state="redirect/compound"/> | ||
| 448 | </rule> | ||
| 449 | <rule pattern="(?=[\n\x1a])"> | ||
| 450 | <token type="Text"/> | ||
| 451 | <pop depth="1"/> | ||
| 452 | </rule> | ||
| 453 | <rule pattern="\|\|?|&&?"> | ||
| 454 | <token type="Punctuation"/> | ||
| 455 | <pop depth="1"/> | ||
| 456 | </rule> | ||
| 457 | <rule> | ||
| 458 | <include state="text"/> | ||
| 459 | </rule> | ||
| 460 | </state> | ||
| 461 | <state name="text"> | ||
| 462 | <rule pattern="""> | ||
| 463 | <token type="LiteralStringDouble"/> | ||
| 464 | <push state="string"/> | ||
| 465 | </rule> | ||
| 466 | <rule> | ||
| 467 | <include state="variable-or-escape"/> | ||
| 468 | </rule> | ||
| 469 | <rule pattern="[^"%^\n\x1a&<>|\t\v\f\r ,;=\xa0\d)]+|."> | ||
| 470 | <token type="Text"/> | ||
| 471 | </rule> | ||
| 472 | </state> | ||
| 473 | <state name="redirect"> | ||
| 474 | <rule pattern="((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(>>?&|<&)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)"> | ||
| 475 | <bygroups> | ||
| 476 | <token type="LiteralNumberInteger"/> | ||
| 477 | <token type="Punctuation"/> | ||
| 478 | <token type="Text"/> | ||
| 479 | <token type="LiteralNumberInteger"/> | ||
| 480 | </bygroups> | ||
| 481 | </rule> | ||
| 482 | <rule pattern="((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])(?<!\^[\n\x1a])\d)?)(>>?|<)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))"> | ||
| 483 | <bygroups> | ||
| 484 | <token type="LiteralNumberInteger"/> | ||
| 485 | <token type="Punctuation"/> | ||
| 486 | <usingself state="text"/> | ||
| 487 | </bygroups> | ||
| 488 | </rule> | ||
| 489 | </state> | ||
| 490 | <state name="label"> | ||
| 491 | <rule pattern="((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*)?)((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[\w\W]|[^"%^\n\x1a&<>|])*)"> | ||
| 492 | <bygroups> | ||
| 493 | <token type="NameLabel"/> | ||
| 494 | <token type="CommentSingle"/> | ||
| 495 | </bygroups> | ||
| 496 | <pop depth="1"/> | ||
| 497 | </rule> | ||
| 498 | </state> | ||
| 499 | <state name="arithmetic/compound"> | ||
| 500 | <rule pattern="(?=\))"> | ||
| 501 | <token type="Text"/> | ||
| 502 | <pop depth="1"/> | ||
| 503 | </rule> | ||
| 504 | <rule pattern="0[0-7]+"> | ||
| 505 | <token type="LiteralNumberOct"/> | ||
| 506 | </rule> | ||
| 507 | <rule pattern="0x[\da-f]+"> | ||
| 508 | <token type="LiteralNumberHex"/> | ||
| 509 | </rule> | ||
| 510 | <rule pattern="\d+"> | ||
| 511 | <token type="LiteralNumberInteger"/> | ||
| 512 | </rule> | ||
| 513 | <rule pattern="[(),]+"> | ||
| 514 | <token type="Punctuation"/> | ||
| 515 | </rule> | ||
| 516 | <rule pattern="([=+\-*/!~]|%|\^\^)+"> | ||
| 517 | <token type="Operator"/> | ||
| 518 | </rule> | ||
| 519 | <rule pattern="((?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^"\n\x1a&<>|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[^)])+"> | ||
| 520 | <usingself state="variable"/> | ||
| 521 | </rule> | ||
| 522 | <rule pattern="(?=[\x00|&])"> | ||
| 523 | <token type="Text"/> | ||
| 524 | <pop depth="1"/> | ||
| 525 | </rule> | ||
| 526 | <rule> | ||
| 527 | <include state="follow"/> | ||
| 528 | </rule> | ||
| 529 | </state> | ||
| 530 | <state name="string"> | ||
| 531 | <rule pattern="""> | ||
| 532 | <token type="LiteralStringDouble"/> | ||
| 533 | <pop depth="1"/> | ||
| 534 | </rule> | ||
| 535 | <rule pattern="(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))"> | ||
| 536 | <token type="NameVariable"/> | ||
| 537 | </rule> | ||
| 538 | <rule pattern="\^!|%%"> | ||
| 539 | <token type="LiteralStringEscape"/> | ||
| 540 | </rule> | ||
| 541 | <rule pattern="[^"%^\n\x1a]+|[%^]"> | ||
| 542 | <token type="LiteralStringDouble"/> | ||
| 543 | </rule> | ||
| 544 | <rule> | ||
| 545 | <pop depth="1"/> | ||
| 546 | </rule> | ||
| 547 | </state> | ||
| 548 | <state name="variable"> | ||
| 549 | <rule pattern="""> | ||
| 550 | <token type="LiteralStringDouble"/> | ||
| 551 | <push state="string"/> | ||
| 552 | </rule> | ||
| 553 | <rule> | ||
| 554 | <include state="variable-or-escape"/> | ||
| 555 | </rule> | ||
| 556 | <rule pattern="[^"%^\n\x1a]+|."> | ||
| 557 | <token type="NameVariable"/> | ||
| 558 | </rule> | ||
| 559 | </state> | ||
| 560 | <state name="call/compound"> | ||
| 561 | <rule pattern="(?=\))"> | ||
| 562 | <token type="Text"/> | ||
| 563 | <pop depth="1"/> | ||
| 564 | </rule> | ||
| 565 | <rule pattern="(:?)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))"> | ||
| 566 | <bygroups> | ||
| 567 | <token type="Punctuation"/> | ||
| 568 | <token type="NameLabel"/> | ||
| 569 | </bygroups> | ||
| 570 | <pop depth="1"/> | ||
| 571 | </rule> | ||
| 572 | </state> | ||
| 573 | <state name="for/f"> | ||
| 574 | <rule pattern="(")((?:(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"])*?")([\n\x1a\t\v\f\r ,;=\xa0]*)(\))"> | ||
| 575 | <bygroups> | ||
| 576 | <token type="LiteralStringDouble"/> | ||
| 577 | <usingself state="string"/> | ||
| 578 | <token type="Text"/> | ||
| 579 | <token type="Punctuation"/> | ||
| 580 | </bygroups> | ||
| 581 | </rule> | ||
| 582 | <rule pattern="""> | ||
| 583 | <token type="LiteralStringDouble"/> | ||
| 584 | <push state="#pop" state="for2" state="string"/> | ||
| 585 | </rule> | ||
| 586 | <rule pattern="('(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?')([\n\x1a\t\v\f\r ,;=\xa0]*)(\))"> | ||
| 587 | <bygroups> | ||
| 588 | <usingself state="sqstring"/> | ||
| 589 | <token type="Text"/> | ||
| 590 | <token type="Punctuation"/> | ||
| 591 | </bygroups> | ||
| 592 | </rule> | ||
| 593 | <rule pattern="(`(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?`)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))"> | ||
| 594 | <bygroups> | ||
| 595 | <usingself state="bqstring"/> | ||
| 596 | <token type="Text"/> | ||
| 597 | <token type="Punctuation"/> | ||
| 598 | </bygroups> | ||
| 599 | </rule> | ||
| 600 | <rule> | ||
| 601 | <include state="for2"/> | ||
| 602 | </rule> | ||
| 603 | </state> | ||
| 604 | <state name="for/l"> | ||
| 605 | <rule pattern="-?\d+"> | ||
| 606 | <token type="LiteralNumberInteger"/> | ||
| 607 | </rule> | ||
| 608 | <rule> | ||
| 609 | <include state="for2"/> | ||
| 610 | </rule> | ||
| 611 | </state> | ||
| 612 | <state name="if2"> | ||
| 613 | <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(==)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))"> | ||
| 614 | <bygroups> | ||
| 615 | <usingself state="text"/> | ||
| 616 | <token type="Operator"/> | ||
| 617 | <usingself state="text"/> | ||
| 618 | </bygroups> | ||
| 619 | <pop depth="1"/> | ||
| 620 | </rule> | ||
| 621 | <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))"> | ||
| 622 | <bygroups> | ||
| 623 | <usingself state="text"/> | ||
| 624 | <token type="OperatorWord"/> | ||
| 625 | <usingself state="text"/> | ||
| 626 | </bygroups> | ||
| 627 | <pop depth="1"/> | ||
| 628 | </rule> | ||
| 629 | </state> | ||
| 630 | <state name="(?"> | ||
| 631 | <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)"> | ||
| 632 | <usingself state="text"/> | ||
| 633 | </rule> | ||
| 634 | <rule pattern="\("> | ||
| 635 | <token type="Punctuation"/> | ||
| 636 | <push state="#pop" state="else?" state="root/compound"/> | ||
| 637 | </rule> | ||
| 638 | <rule> | ||
| 639 | <pop depth="1"/> | ||
| 640 | </rule> | ||
| 641 | </state> | ||
| 642 | <state name="call"> | ||
| 643 | <rule pattern="(:?)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))"> | ||
| 644 | <bygroups> | ||
| 645 | <token type="Punctuation"/> | ||
| 646 | <token type="NameLabel"/> | ||
| 647 | </bygroups> | ||
| 648 | <pop depth="1"/> | ||
| 649 | </rule> | ||
| 650 | </state> | ||
| 651 | <state name="variable-or-escape"> | ||
| 652 | <rule pattern="(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))"> | ||
| 653 | <token type="NameVariable"/> | ||
| 654 | </rule> | ||
| 655 | <rule pattern="%%|\^[\n\x1a]?(\^!|[\w\W])"> | ||
| 656 | <token type="LiteralStringEscape"/> | ||
| 657 | </rule> | ||
| 658 | </state> | ||
| 659 | </rules> | ||
| 660 | </lexer> \ No newline at end of file | ||
