PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.28.0
Code Block Pro – Beautiful Syntax Highlighting v1.28.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / cobol.tmLanguage.json

cobol.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.28.0, at build/shiki/languages/cobol.tmLanguage.json

1,126 lines 46.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "_copyright": "The MIT License (MIT)\nCopyright (c) 2015-2023 spgennard\nSource: https://github.com/spgennard/vscode_cobol/blob/main/syntaxes/COBOL.tmLanguage.json",
3 "$schema": "https://raw.githubusercontent.com/spgennard/vscode_cobol/main/schemas/tmlanguage.json",
4 "fileTypes": [
5 "ccp",
6 "scbl",
7 "cobol",
8 "cbl",
9 "cblle",
10 "cblsrce",
11 "cblcpy",
12 "lks",
13 "pdv",
14 "cpy",
15 "copybook",
16 "cobcopy",
17 "fd",
18 "sel",
19 "scb",
20 "scbl",
21 "sqlcblle",
22 "cob",
23 "dds",
24 "def",
25 "src",
26 "ss",
27 "wks",
28 "bib",
29 "pco"
30 ],
31 "name": "cobol",
32 "patterns": [
33 {
34 "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)",
35 "name": "token.info-token.cobol"
36 },
37 {
38 "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)",
39 "captures": {
40 "1": {
41 "name": "constant.numeric.cobol"
42 },
43 "2": {
44 "name": "comment.line.cobol.newpage"
45 }
46 }
47 },
48 {
49 "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)",
50 "captures": {
51 "1": {
52 "name": "constant.numeric.cobol"
53 },
54 "2": {
55 "name": "comment.line.cobol.fixed"
56 }
57 }
58 },
59 {
60 "match": "(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)",
61 "captures": {
62 "1": {
63 "name": "constant.numeric.cobol"
64 },
65 "2": {
66 "name": "comment.line.cobol.newpage"
67 }
68 }
69 },
70 {
71 "match": "^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$",
72 "name": "constant.numeric.cobol"
73 },
74 {
75 "match": "(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)",
76 "captures": {
77 "1": {
78 "name": "constant.numeric.cobol"
79 },
80 "2": {
81 "name": "comment.line.cobol.fixed"
82 }
83 }
84 },
85 {
86 "match": "(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)",
87 "captures": {
88 "1": {
89 "name": "constant.cobol"
90 },
91 "2": {
92 "name": "comment.line.cobol.fixed"
93 }
94 }
95 },
96 {
97 "match": "^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)",
98 "captures": {
99 "1": {
100 "name": "constant.numeric.cobol"
101 },
102 "2": {
103 "name": "variable.other.constant"
104 }
105 }
106 },
107 {
108 "match": "^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))",
109 "captures": {
110 "1": {
111 "name": "constant.numeric.cobol"
112 },
113 "2": {
114 "name": "variable.other.constant"
115 },
116 "3": {
117 "name": "keyword.identifers.cobol"
118 }
119 }
120 },
121 {
122 "match": "(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)",
123 "captures": {
124 "1": {
125 "name": "constant.cobol"
126 },
127 "2": {
128 "name": "comment.line.cobol.newpage"
129 }
130 }
131 },
132 {
133 "match": "^\\*.*$",
134 "name": "comment.line.cobol.fixed"
135 },
136 {
137 "match": "((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)",
138 "captures": {
139 "1": {
140 "name": "keyword.control.directive.conditional.cobol"
141 },
142 "2": {
143 "name": "entity.name.function.preprocessor.cobol"
144 },
145 "3": {
146 "name": "entity.name.function.cobol"
147 },
148 "4": {
149 "name": "keyword.control.directive.conditional.cobol"
150 }
151 }
152 },
153 {
154 "match": "((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))",
155 "captures": {
156 "1": {
157 "name": "entity.name.function.preprocessor.cobol"
158 },
159 "2": {
160 "name": "storage.modifier.import.cobol"
161 },
162 "3": {
163 "name": "punctuation.begin.bracket.round.cobol"
164 },
165 "4": {
166 "name": "string.quoted.other.cobol"
167 },
168 "5": {
169 "name": "punctuation.end.bracket.round.cobol"
170 }
171 }
172 },
173 {
174 "match": "((?i:\\$\\s*set\\s+)(ilusing)(\")(.*)(\"))",
175 "captures": {
176 "1": {
177 "name": "entity.name.function.preprocessor.cobol"
178 },
179 "2": {
180 "name": "storage.modifier.import.cobol"
181 },
182 "3": {
183 "name": "punctuation.definition.string.begin.cobol"
184 },
185 "4": {
186 "name": "string.quoted.other.cobol"
187 },
188 "5": {
189 "name": "punctuation.definition.string.begin.cobol"
190 }
191 }
192 },
193 {
194 "match": "((?i:\\$set))\\s+(\\w+)\\s*(\")(\\w*)(\")",
195 "captures": {
196 "1": {
197 "name": "keyword.control.directive.conditional.cobol"
198 },
199 "2": {
200 "name": "entity.name.function.preprocessor.cobol"
201 },
202 "3": {
203 "name": "punctuation.definition.string.begin.cobol"
204 },
205 "4": {
206 "name": "string.quoted.other.cobol"
207 },
208 "5": {
209 "name": "punctuation.definition.string.begin.cobol"
210 }
211 }
212 },
213 {
214 "match": "((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))",
215 "captures": {
216 "1": {
217 "name": "keyword.control.directive.conditional.cobol"
218 },
219 "2": {
220 "name": "entity.name.function.preprocessor.cobol"
221 },
222 "3": {
223 "name": "punctuation.begin.bracket.round.cobol"
224 },
225 "4": {
226 "name": "string.quoted.other.cobol"
227 },
228 "5": {
229 "name": "punctuation.end.bracket.round.cobol"
230 }
231 }
232 },
233 {
234 "match": "(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$",
235 "captures": {
236 "0": {
237 "name": "keyword.control.directive.conditional.cobol"
238 },
239 "1": {
240 "name": "invalid.illegal.directive"
241 },
242 "2": {
243 "name": "comment.line.set.cobol"
244 }
245 }
246 },
247 {
248 "match": "(\\$region|\\$end-region)(.*$)",
249 "captures": {
250 "1": {
251 "name": "keyword.control.directive.cobol"
252 },
253 "2": {
254 "name": "entity.other.attribute-name.preprocessor.cobol"
255 }
256 }
257 },
258 {
259 "begin": "\\$(?i:doc)(.*$)",
260 "end": "\\$(?i:end-doc)(.*$)",
261 "name": "invalid.illegal.iscobol"
262 },
263 {
264 "match": ">>\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$",
265 "name": "invalid.illegal.meta.preprocessor.cobolit"
266 },
267 {
268 "match": "((((>>|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))",
269 "captures": {
270 "1": {
271 "name": "keyword.control.directive.conditional.cobol"
272 },
273 "2": {
274 "name": "entity.name.function.preprocessor.cobol"
275 },
276 "3": {
277 "name": "entity.name.function.preprocessor.cobol"
278 }
279 }
280 },
281 {
282 "match": "(\\*>)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)",
283 "captures": {
284 "1": {
285 "name": "comment.line.scantoken.cobol"
286 },
287 "2": {
288 "name": "keyword.cobol"
289 },
290 "3": {
291 "name": "string.cobol"
292 }
293 }
294 },
295 {
296 "match": "(\\*>.*$)",
297 "name": "comment.line.modern"
298 },
299 {
300 "match": "(>>.*)$",
301 "name": "strong comment.line.set.acucobol"
302 },
303 {
304 "match": "([nNuU][xX]|[hHxX])'\\h*'",
305 "name": "constant.numeric.integer.hexadecimal.cobol"
306 },
307 {
308 "match": "([nNuU][xX]|[hHxX])'.*'",
309 "name": "invalid.illegal.hexadecimal.cobol"
310 },
311 {
312 "match": "([nNuU][xX]|[hHxX])\"\\h*\"",
313 "name": "constant.numeric.integer.hexadecimal.cobol"
314 },
315 {
316 "match": "([nNuU][xX]|[hHxX])\".*\"",
317 "name": "invalid.illegal.hexadecimal.cobol"
318 },
319 {
320 "match": "[bB]\"[0-1]\"",
321 "name": "constant.numeric.integer.boolean.cobol"
322 },
323 {
324 "match": "[bB]'[0-1]'",
325 "name": "constant.numeric.integer.boolean.cobol"
326 },
327 {
328 "match": "[oO]\"[0-7]*\"",
329 "name": "constant.numeric.integer.octal.cobol"
330 },
331 {
332 "match": "[oO]\".*\"",
333 "name": "invalid.illegal.octal.cobol"
334 },
335 {
336 "match": "(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)",
337 "name": "meta.symbol.cobol.forced"
338 },
339 {
340 "begin": "((?<![-_a-zA-Z0-9()-])(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(\\.|$))",
341 "beginCaptures": {
342 "0": {
343 "name": "keyword.identifiers.cobol"
344 }
345 },
346 "patterns": [
347 {
348 "match": "(^[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ])",
349 "name": "constant.numeric.cobol"
350 },
351 {
352 "match": "(?i:with|debugging|mode)",
353 "name": "keyword.identifiers.cobol"
354 }
355 ],
356 "name": "comment.block.cobol.remark",
357 "end": "(?=((?<![-_])(?i:remarks|author|date-written|source-computer|object-computer|installation|date-compiled|special-names|security|environment\\s+division|data\\s+division|working-storage\\s+section|input-output\\s+section|linkage\\s+section|procedure\\s+division|local-storage\\s+section)|^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*]\\*.*$|^\\+$))"
358 },
359 {
360 "match": "(?<=(\\(|\\[))((\\-\\+)*\\s*[0-9 ,\\.\\+\\-\\*\\/]+)(?=(\\)|\\]))",
361 "name": "constant.numeric.cobol",
362 "captures": {
363 "1": {
364 "name": "keyword.start.bracket.cobol"
365 },
366 "2": {
367 "name": "constant.numeric.cobol"
368 },
369 "3": {
370 "name": "keyword.end.bracket.cobol"
371 }
372 },
373 "comment": "simple numerics in () and []"
374 },
375 {
376 "include": "#number-complex-constant"
377 },
378 {
379 "include": "#number-simple-constant"
380 },
381 {
382 "match": "(?<![-_])(?i:true|false|null|nulls)(?![0-9A-Za-z_-])",
383 "name": "constant.language.cobol"
384 },
385 {
386 "match": "(?<![-_])(?i:zeroes|alphabetic-lower|alphabetic-upper|alphanumeric-edited|alphabetic|alphabet|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\s+|\\.|,|\\))",
387 "name": "constant.language.figurative.cobol"
388 },
389 {
390 "begin": "(?i:exec\\s+sqlims|exec\\s+sql)",
391 "name": "keyword.verb.cobol",
392 "contentName": "meta.embedded.block.sql",
393 "patterns": [
394 {
395 "match": "(^\\s*\\*.*)$",
396 "name": "comment.line.sql"
397 },
398 {
399 "match": "(\\:([0-9a-zA-Z\\-_])*)",
400 "name": "variable.cobol"
401 },
402 {
403 "include": "source.sql"
404 }
405 ],
406 "end": "(?i:end\\-exec)"
407 },
408 {
409 "begin": "(?i:exec\\s+cics)",
410 "name": "keyword.verb.cobol",
411 "contentName": "meta.embedded.block.cics",
412 "patterns": [
413 {
414 "match": "(\\()",
415 "name": "meta.symbol.cobol"
416 },
417 {
418 "include": "#cics-keywords"
419 },
420 {
421 "include": "#string-double-quoted-constant"
422 },
423 {
424 "include": "#string-quoted-constant"
425 },
426 {
427 "include": "#number-complex-constant"
428 },
429 {
430 "include": "#number-simple-constant"
431 },
432 {
433 "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",
434 "name": "variable.cobol"
435 }
436 ],
437 "end": "(?i:end\\-exec)"
438 },
439 {
440 "begin": "(?i:exec\\s+dli)",
441 "name": "keyword.verb.cobol",
442 "contentName": "meta.embedded.block.dli",
443 "patterns": [
444 {
445 "match": "(\\()",
446 "name": "meta.symbol.cobol"
447 },
448 {
449 "include": "#dli-keywords"
450 },
451 {
452 "include": "#string-double-quoted-constant"
453 },
454 {
455 "include": "#string-quoted-constant"
456 },
457 {
458 "include": "#number-complex-constant"
459 },
460 {
461 "include": "#number-simple-constant"
462 },
463 {
464 "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",
465 "name": "variable.cobol"
466 }
467 ],
468 "end": "(?i:end\\-exec)"
469 },
470 {
471 "begin": "(?i:exec\\s+sqlims)",
472 "name": "keyword.verb.cobol",
473 "contentName": "meta.embedded.block.sql",
474 "patterns": [
475 {
476 "match": "(\\:([a-zA-Z\\-])*)",
477 "name": "variable.cobol"
478 },
479 {
480 "include": "source.sql"
481 }
482 ],
483 "end": "(?i:end\\-exec)"
484 },
485 {
486 "begin": "(?i:exec\\s+ado)",
487 "name": "keyword.verb.cobol",
488 "contentName": "meta.embedded.block.sql",
489 "patterns": [
490 {
491 "match": "(\\:([a-zA-Z\\-])*)",
492 "name": "variable.cobol"
493 },
494 {
495 "include": "source.sql"
496 }
497 ],
498 "end": "(?i:end\\-exec)"
499 },
500 {
501 "begin": "(?i:exec\\s+html)",
502 "name": "keyword.verb.cobol",
503 "contentName": "meta.embedded.block.html",
504 "patterns": [
505 {
506 "include": "text.html.basic"
507 }
508 ],
509 "end": "(?i:end\\-exec)"
510 },
511 {
512 "begin": "(?i:exec\\s+java)",
513 "name": "keyword.verb.cobol",
514 "contentName": "meta.embedded.block.java",
515 "patterns": [
516 {
517 "include": "source.java"
518 }
519 ],
520 "end": "(?i:end\\-exec)"
521 },
522 {
523 "match": "(\")(CBL_.*)(\")",
524 "captures": {
525 "1": {
526 "name": "punctuation.definition.string.begin.cobol"
527 },
528 "2": {
529 "name": "support.function.cobol"
530 },
531 "3": {
532 "name": "punctuation.definition.string.end.cobol"
533 }
534 }
535 },
536 {
537 "match": "(\")(PC_.*)(\")",
538 "captures": {
539 "1": {
540 "name": "punctuation.definition.string.begin.cobol"
541 },
542 "2": {
543 "name": "support.function.cobol"
544 },
545 "3": {
546 "name": "punctuation.definition.string.end.cobol"
547 }
548 }
549 },
550 {
551 "begin": "\"",
552 "beginCaptures": {
553 "0": {
554 "name": "punctuation.definition.string.begin.cobol"
555 }
556 },
557 "end": "(\"|$)",
558 "endCaptures": {
559 "0": {
560 "name": "punctuation.definition.string.end.cobol"
561 }
562 },
563 "name": "string.quoted.double.cobol"
564 },
565 {
566 "match": "(\\')(CBL_.*)(\\')",
567 "captures": {
568 "1": {
569 "name": "punctuation.definition.string.begin.cobol"
570 },
571 "2": {
572 "name": "support.function.cobol"
573 },
574 "3": {
575 "name": "punctuation.definition.string.end.cobol"
576 }
577 }
578 },
579 {
580 "match": "(\\')(PC_.*)(\\')",
581 "captures": {
582 "1": {
583 "name": "punctuation.definition.string.begin.cobol"
584 },
585 "2": {
586 "name": "support.function.cobol"
587 },
588 "3": {
589 "name": "punctuation.definition.string.end.cobol"
590 }
591 }
592 },
593 {
594 "begin": "'",
595 "beginCaptures": {
596 "0": {
597 "name": "punctuation.definition.string.begin.cobol"
598 }
599 },
600 "end": "('|$)",
601 "endCaptures": {
602 "0": {
603 "name": "punctuation.definition.string.end.cobol"
604 }
605 },
606 "name": "string.quoted.single.cobol"
607 },
608 {
609 "begin": "(?<![\\-\\w])[gGzZ]\"",
610 "beginCaptures": {
611 "0": {
612 "name": "punctuation.definition.string.begin.cobol"
613 }
614 },
615 "end": "(\"|$)",
616 "endCaptures": {
617 "0": {
618 "name": "punctuation.definition.string.end.cobol"
619 }
620 },
621 "name": "string.quoted.double.cobol"
622 },
623 {
624 "begin": "(?<![\\-\\w])[gGzZ]'",
625 "beginCaptures": {
626 "0": {
627 "name": "punctuation.definition.string.begin.cobol"
628 }
629 },
630 "end": "'",
631 "endCaptures": {
632 "0": {
633 "name": "punctuation.definition.string.end.cobol"
634 }
635 },
636 "name": "string.quoted.single.cobol"
637 },
638 {
639 "begin": "(?<![\\-\\w])[gGnN]\"",
640 "beginCaptures": {
641 "0": {
642 "name": "punctuation.definition.string.begin.cobol"
643 }
644 },
645 "end": "(\"|$)",
646 "endCaptures": {
647 "0": {
648 "name": "punctuation.definition.string.end.cobol"
649 }
650 },
651 "name": "string.quoted.double.cobol"
652 },
653 {
654 "begin": "(?<![\\-\\w])[gGnN]'",
655 "beginCaptures": {
656 "0": {
657 "name": "punctuation.definition.string.begin.cobol"
658 }
659 },
660 "end": "'",
661 "endCaptures": {
662 "0": {
663 "name": "punctuation.definition.string.end.cobol"
664 }
665 },
666 "name": "string.quoted.single.cobol"
667 },
668 {
669 "begin": "(?<![\\-\\w])[uU]\"",
670 "beginCaptures": {
671 "0": {
672 "name": "punctuation.definition.string.begin.cobol"
673 }
674 },
675 "end": "(\"|$)",
676 "endCaptures": {
677 "0": {
678 "name": "punctuation.definition.string.end.cobol"
679 }
680 },
681 "name": "string.quoted.utf8.double.cobol"
682 },
683 {
684 "begin": "(?<![\\-\\w])[uU]'",
685 "beginCaptures": {
686 "0": {
687 "name": "punctuation.definition.string.begin.cobol"
688 }
689 },
690 "end": "'",
691 "endCaptures": {
692 "0": {
693 "name": "punctuation.definition.string.end.cobol"
694 }
695 },
696 "name": "string.quoted.utf8.single.cobol"
697 },
698 {
699 "match": "(?<![-_])(?i:id\\s+division|identification\\s+division|identification|id|property-id|getter|setter|entry|function-id|end\\s+attribute|attribute|interface-id|indexer-id|factory|ctl|class-control|options|environment\\s+division|environment-name|environment-value|environment|configuration\\s+section|configuration|decimal-point\\s+is|decimal-point|console\\s+is|call-convention|special-names|cursor\\s+is|update|picture\\s+symbol|currency\\s+sign|currency|repository|input-output\\s+section|input-output|file\\s+section|file-control|select|optional|i-o-control|data\\s+division|working-storage\\s+section|working-storage|section|local-storage|linkage\\s+section|linkage|communication|report|screen\\s+section|object-storage|object\\s+section|class-object|fd|rd|cd|sd|printing|procedure\\s+division|procedure|division|references|debugging|end\\s+declaratives|declaratives|end\\s+static|end\\s+factory|end\\s+class-object|based-storage|size|font|national-edited|national)(?![0-9A-Za-z_-])",
700 "name": "keyword.identifiers.cobol"
701 },
702 {
703 "match": "(?<![-_])((?i:valuetype-id|operator-id|method-id|method|property-id|attribute-id|enum-id|iterator-id|class-id|program-id|operator-id|end\\s+program|end\\s+valuetype|extension))[\\.]*[\\s]+([a-zA-Z0-9_-]*)",
704 "captures": {
705 "1": {
706 "name": "keyword.verb.cobol"
707 },
708 "2": {
709 "name": "entity.name.function.cobol"
710 }
711 }
712 },
713 {
714 "match": "(?<![-_])(?i:implements|inherits|constraints|constrain)(?=\\s|\\.)",
715 "name": "keyword.verb.cobol"
716 },
717 {
718 "match": "(?<![-_])(?i:end\\s+enum|end\\s+interface|end\\s+class|end\\s+property|end\\s+method|end\\s+object|end\\s+iterator|end\\s+function|end\\s+operator|end\\s+program|end\\s+indexer|create|reset|instance|delegate|end-delegate|delegate-id|declare|exception-object|as|stop\\s+iterator|stop\\s+run|stop)(?=\\s|\\.|,|\\))",
719 "name": "keyword.identifiers.cobol"
720 },
721 {
722 "match": "\\s+(?i:attach\\s+method|attach\\s+del|attach|detach\\s+del|detach\\s+method|detach|method|del)(?=\\s|\\.|$)",
723 "name": "keyword.identifiers.cobol"
724 },
725 {
726 "match": "\\s+(?i:sync\\s+(?i:on))(?=\\s|\\.)",
727 "name": "keyword.other.sync.cobol"
728 },
729 {
730 "match": "\\s+(?i:try|finally|catch|end-try|throw)(?=\\s|\\.|$)",
731 "name": "keyword.control.catch-exception.cobol"
732 },
733 {
734 "match": "(?<![-_])(?i:select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|chaining|yielding|\\+\\+include|copy|replace)(?=\\s)",
735 "name": "keyword.otherverb.cobol"
736 },
737 {
738 "match": "(?i:dynamic)\\s+(?i:length)(?=\\s|\\.)",
739 "name": "storage.type.dynamiclength.cobol"
740 },
741 {
742 "match": "(?<![-_])(?i:assign|external|prototype|organization|organisation|indexed|column|plus|line\\*s*sequential|sequential|access|dynamic|relative|label|block|contains|standard|records|record\\s+key|record|is|alternate|duplicates|reel|tape|terminal|disk\\sfilename|disk|disc|recording\\smode|mode|random)(?=\\s|\\.)",
743 "name": "keyword.identifers.cobol"
744 },
745 {
746 "match": "(?<![-_])(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|substitute-case|substitute|seconds-from-formatted-time|seconds-past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)(?=\\s|\\.|\\(|\\))",
747 "name": "support.function.cobol"
748 },
749 {
750 "match": "(?<![-_])(?i:DFHRESP|DFHVALUE)(\\s*\\(\\s*)([a-zA-Z]*)(\\s*\\))",
751 "captures": {
752 "0": {
753 "name": "support.function.cics.cobol"
754 },
755 "1": {
756 "name": "punctuation.definition.string.end.cobol"
757 },
758 "2": {
759 "name": "keyword.identifers.cobol"
760 },
761 "3": {
762 "name": "punctuation.definition.string.end.cobol"
763 }
764 }
765 },
766 {
767 "match": "(?<![-_])(?i:function)(?=\\s|\\.)",
768 "name": "keyword.verb.cobol"
769 },
770 {
771 "match": "(?<![-_])(?i:end-accept|end-add|end-sync|end-compute|end-delete|end-display|end-divide|end-set|end-multiply|end-of-page|end-read|end-receive|end-return|end-rewrite|end-search|end-start|end-string|end-subtract|end-unstring|end-write|program|class|interface|enum|interface)(?![0-9A-Za-z_-])",
772 "name": "keyword.verb.cobol"
773 },
774 {
775 "match": "(?<![-_])(?:by value|by reference|by content|property-value)(?![0-9A-Za-z_-])",
776 "name": "keyword.other.cobol"
777 },
778 {
779 "match": "(?<![-_])(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|source|control|full|required|of|input|output|i-o|extend|file|error|exception|overflow|goto|off|on|proceed|procedures|procedure|through|invalid|data|normal|eop|returning|to|for|giving|into|by|params|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|common|initial|resident|reference|content|are\\sstandard|are|renames|like|format\\stime|values|omitted|value|constant|ascending|descending|key|retry|until|varying|with|no|advancing|up|down|uccurs|ignore\\s+lock|lock|length|delimited|count|delimiter|redefines|from\\s+console|from\\s+command-line|from\\s+user\\s+name|from\\s+day\\s+yyyyddd|from\\s+day|from\\s+time|from\\s+day-of-week|from\\s+escape|from\\s+day\\s+yyyyddd|from\\s+date\\s+yyyymmdd|from\\s+date|from|raising|crt\\s+status|status|class|upon\\s+crt|upon|lines|columns|step|linage|auto|line|position|col|reports|code-set|reporting|arithmetic|localize|program|class|interface|in|at\\s+end|page|name)(?![0-9A-Za-z_-])",
780 "name": "keyword.identifers.cobol"
781 },
782 {
783 "match": "(?<![-_])(?i:type|new)\\s+([a-zA-Z][a-zA-Z0-9\\$\\-\\._]*|[a-zA-Z])(?=\\.$)",
784 "captures": {
785 "0": {
786 "name": "keyword.verb.cobol"
787 },
788 "1": {
789 "name": "storage.type.cobol"
790 }
791 },
792 "comment": "type ssss "
793 },
794 {
795 "match": "(?<![-_])(?i:string)(?=\\s+value|\\.)",
796 "name": "storage.type.cobol"
797 },
798 {
799 "match": "(?<![-_])(?i:bit|byte|binary-char|binary-char-unsigned|binary-short|binary-short-unsigned|binary.long|binary-c-long|binary-long-unsigned|binary-long|binary-double|binary-double-unsigned|float-short|float-extended|float-long|bit|condition-value|characters|character\\s+type|character|comma|crt|decimal|object\\+sreference|object-reference|object|list|dictionary|unsigned)(?=\\s|\\.|,|\\]|\\[)",
800 "name": "storage.type.cobol"
801 },
802 {
803 "match": "(operator-id\\s+[+\\-\\*\\/])",
804 "name": "keyword.operator-id.cobol",
805 "captures": {
806 "1": {
807 "name": "keyword.other.verb.cobol"
808 },
809 "2": {
810 "name": "meta.symbol.cobol"
811 }
812 },
813 "comment": "operator-id ssss "
814 },
815 {
816 "match": "(?i:self)(\\:\\:)([0-9a-zA-Z_\\-\\.]*)(?=\\.$)",
817 "captures": {
818 "1": {
819 "name": "punctuation.accessor.cobol.b3"
820 },
821 "2": {
822 "name": "entity.name.function.b3"
823 }
824 },
825 "comment": " ::.. "
826 },
827 {
828 "match": "(\\:\\:)([0-9a-zA-Z_\\-\\.]*)",
829 "captures": {
830 "1": {
831 "name": "punctuation.accessor.cobol"
832 },
833 "2": {
834 "name": "entity.name.function.cobol"
835 }
836 },
837 "comment": " ::.. "
838 },
839 {
840 "match": "(?<![-_])(?i:type)\\s+([0-9a-zA-Z\\.]*)",
841 "captures": {
842 "0": {
843 "name": "keyword.verb.cobol.aa"
844 },
845 "1": {
846 "name": "storage.type.cobol.bb"
847 }
848 }
849 },
850 {
851 "match": "(?<![-_])(?i:if|else|end-if|exit\\s+iterator|exit\\s+program|exit\\s+method|evaluate|end-evaluate|exit\\s+perform|perform|end-perform|when\\s+other|when|continue|call|end-call|chain|end-chain|invoke|end\\s+invoke|go\\s+to|go|sort|merge|use|xml|parse|stop\\s+run|goback\\s+returning|goback|raise|exit\\s+function|exit\\sparagraph|await)(?![0-9A-Za-z_-])",
852 "name": "keyword.control.cobol"
853 },
854 {
855 "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)[-|+]",
856 "captures": {
857 "1": {
858 "name": "storage.type.picture10.cobol"
859 },
860 "2": {
861 "name": "constant.numeric.cobol"
862 },
863 "3": {
864 "name": "storage.type.picture10.cobol"
865 },
866 "4": {
867 "name": "constant.numeric.cobol"
868 }
869 }
870 },
871 {
872 "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)",
873 "captures": {
874 "1": {
875 "name": "storage.type.picture9.cobol"
876 },
877 "2": {
878 "name": "constant.numeric.cobol"
879 },
880 "3": {
881 "name": "storage.type.picture9.cobol"
882 },
883 "4": {
884 "name": "constant.numeric.cobol"
885 }
886 }
887 },
888 {
889 "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV\\.][-+s\\*$09aAbBsSnNxXuUzZ/,]*[0-9\\.()])*",
890 "captures": {
891 "1": {
892 "name": "storage.type.picture8.cobol"
893 },
894 "2": {
895 "name": "constant.numeric.cobol"
896 },
897 "3": {
898 "name": "storage.type.picture8.cobol"
899 }
900 }
901 },
902 {
903 "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*",
904 "name": "storage.type.picture7.cobol"
905 },
906 {
907 "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*",
908 "name": "storage.type.picture6.cobol"
909 },
910 {
911 "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxuUXzZ/,.]*)\\(([0-9]*)\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*",
912 "captures": {
913 "1": {
914 "name": "storage.type.picture5.cobol"
915 },
916 "2": {
917 "name": "constant.numeric.cobol"
918 }
919 }
920 },
921 {
922 "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpNNxXuUzZ/,.]*\\([0-9]*\\)",
923 "name": "storage.type.picture4.cobol"
924 },
925 {
926 "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\\([0-9]*\\)",
927 "name": "storage.type.picture3.cobol"
928 },
929 {
930 "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*",
931 "name": "storage.type.picture2.cobol"
932 },
933 {
934 "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+\\*$9aAbBsSnpPNxXuUzZ/,.vV]*",
935 "name": "storage.type.picture1.cobol"
936 },
937 {
938 "match": "((?<![-_])(?i:binary|computational-4|comp-4|computational-5|comp-5))\\(([0-9]*)\\)",
939 "captures": {
940 "1": {
941 "name": "invalid.illegal.keyword.verb.acu.cobol"
942 },
943 "2": {
944 "name": "invalid.illegal.constant.numeric.integer"
945 }
946 }
947 },
948 {
949 "match": "(?i:cblt-x1-compx-const|cblt-x2-compx-const|cblt-x4-compx-const|cblt-alphanum-const|cblt-x9-compx|cblt-x8-compx|cblt-x8-comp5|cblt-x4-compx|cblt-x4-comp5|cblt-x2-compx|cblt-x2-comp5|cblt-x1-compx|cblt-x1-comp5|cblt-x1|cblt-vfile-status|cblt-vfile-handle|cblt-sx8-comp5|cblt-sx4-comp5|cblt-sx2-comp5|cblt-sx1-comp5|cblt-subsys-params|cblt-splitjoin-buf|cblt-screen-position|cblt-rtncode|cblt-request-context|cblt-reqhand-service-info|cblt-reqhand-service-funcs|cblt-reqhand-response|cblt-reqhand-funcs|cblt-prog-info-params|cblt-prog-info-arg-info|cblt-printer-properties|cblt-printer-name|cblt-printer-info|cblt-printer-default|cblt-ppointer|cblt-pointer|cblt-os-ssize|cblt-os-size|cblt-os-offset|cblt-os-info-params|cblt-os-flags|cblt-node-name|cblt-nls-msg-params|cblt-nls-msg-number-pair|cblt-nls-msg-ins-struct|cblt-nls-msg-buffer|cblt-mouse-shape|cblt-mouse-rect|cblt-mouse-pos|cblt-mouse-event|cblt-mem-validate-param|cblt-idp-exit-service-funcs|cblt-idp-exit-info|cblt-HWND|cblt-HINSTANCE|cblt-get-scr-line-draw-buffer|cblt-get-scr-graphics-buffer|cblt-generic-attr-value|cblt-generic-attr-rgb-values|cblt-generic-attr-information|cblt-file-status|cblt-fileexist-buf|cblt-exit-params|cblt-exit-info-params|cblt-cancel-proc-params|cblt-bytestream-handle|cblt-alphanum)",
950 "name": "support.function.cbltypes.cobol"
951 },
952 {
953 "match": "(?<![-_])(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|group-usage|usage\\sis\\sdisplay|usage\\sis\\sfont|usage\\s+display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|display\\s+blank\\s+when|blank\\s+when|blank\\s+screen|blank|usage\\sis|is\\spartial|usage|justified|just|right|signed|trailing\\s+separate|sign|seperate|sql)(?=\\s|\\.|\\))",
954 "name": "storage.type.picture.cobol"
955 },
956 {
957 "match": "(?i:byte-length)\\s+[0-9]+",
958 "name": "storage.type.length.cobol"
959 },
960 {
961 "match": "(?<![-_])(?i:accept|add|address|allocate|cancel|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|evaluate|exhibit|named|exit|free|generate|go\\s+to|initialize\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\s+run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|purge|ready|read|kept|receive|release|return|rewrite|rounded|rollback|search|send|sort|collating\\s+sequence|collating|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?![0-9A-Za-z_-])",
962 "name": "keyword.verb.cobol"
963 },
964 {
965 "match": "(?<![-_])(?i:thread-local)(?![0-9A-Za-z_-])",
966 "name": "keyword.verb.cobol"
967 },
968 {
969 "match": "(\\s+|^)(?i:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)(?![0-9A-Za-z_-])",
970 "name": "keyword.screens.cobol"
971 },
972 {
973 "match": "(\\s+|^)(?i:bold|high|lowlight|low|standard|background-high|background-low|background-standard)(?![0-9A-Za-z_-])",
974 "name": "invalid.illegal.screens.acu.cobol"
975 },
976 {
977 "match": "(?<![-_])(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property|async-void|async-value|async)(?=\\s|\\.)",
978 "name": "storage.modifier.cobol"
979 },
980 {
981 "match": "=|<|>|<=|>=|<>|\\+|\\-|\\*|\\/|(?<![-_])(?i:b-and|b-or|b-xor|b-exor|b-not|b-left|b-right|and|or|equals|equal|greater\\s+than|less\\s+than|greater)(?![0-9A-Za-z_-])",
982 "name": "keyword.operator.cobol"
983 },
984 {
985 "match": "(?i:not\\s+at\\s+end)(?![0-9A-Za-z_-])",
986 "name": "keyword.verb.cobol"
987 },
988 {
989 "match": "(?<![-_])(?i:not)(?![0-9A-Za-z_-])",
990 "name": "keyword.operator.cobol"
991 },
992 {
993 "match": "(?<![-_])(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|sysprint|syslist|syslst|printer|syserr|console|c01|c02|c03|c04|c05|c06|c07|c08|c09|c10|c11|c12|formfeed|switch-0|switch-10|switch-11|switch-12|switch-13|switch-13|switch-14|switch-15|switch-1|switch-2|switch-3|switch-4|switch-5|switch-6|switch-7|switch-8|switch-9|sw0|sw11|sw12|sw13|sw14|sw15|sw1|sw2|sw3|sw4|sw5|sw6|sw7|sw8|sw9|sw10|lc_all|lc_collate|lc_ctype|lc_messages|lc_monetary|lc_numeric|lc_time|ucs-4|utf-8|utf-16)(?![0-9A-Za-z_-])",
994 "name": "support.type.cobol"
995 },
996 {
997 "match": "(?<![-_])(?i:end-xml|processing.*procedure|xml\\sparse|xml|xml-information|xml-text|xml-schemal|xml-declaration)(?![0-9A-Za-z_-])",
998 "name": "keyword.xml.cobol"
999 },
1000 {
1001 "match": "(?<![-_])(?i:json\\s+generate|json|end-json|name\\sof)(?![0-9A-Za-z_-])",
1002 "name": "keyword.json.cobol"
1003 },
1004 {
1005 "match": "(?<![-_])(?i:modify|inquire|tab|title|event|center|label-offset|cell|help-id|cells|push-button|radio-button|page-layout-screen|entry-field|list-box|label|default-font|id|no-tab|unsorted|color|height|width|bind|thread|erase|modeless|scroll|system|menu|title-bar|wrap|destroy|resizeable|user-gray|large-font|newline|3-d|data-columns|display-columns|alignment|separation|cursor-frame-width|divider-color|drag-color|heading-color|heading-divider-color|num-rows|record-data|tiled-headings|vpadding|centered-headings|column-headings|self-act|cancel-button|vscroll|report-composer|clsid|primary-interface|active-x-control|default-interface|default-source|auto-minimize|auto-resize|resource|engraved|initial-state|frame|acuactivexcontrol|activex-res|grid|box|message|namespace|class-name|module|constructor|version|strong|culture|method|handle|exception-value|read-only|dividers|graphical|indexed|termination-value|permanent|boxed|visible|centered|record-position|convert)(?=\\s|\\.|,|;|$)",
1006 "name": "invalid.illegal.acu.cobol"
1007 },
1008 {
1009 "match": "(?<![-_])(?i:actual|auto|automatic|based-storage|complex|connect|contained|core-index|db-access-control-key|db-data-name|db-exception|db-record-name|db-set-name|db-status|dead-lock|endcobol|end-disable|end-enable|end-send|end-transceive|eos|file-limits|file-limit|formatted|sort-status|usage-mode)(?=\\s|\\.|,|;|$)",
1010 "name": "invalid.illegal.netcobol.cobol"
1011 },
1012 {
1013 "match": "(?<![-_])(?i:System-Info|Terminal-Info)(?![0-9A-Za-z_-])",
1014 "name": "support.type.cobol.acu strong"
1015 },
1016 {
1017 "match": "(?<![-_])(?i:alter)(?=\\s|\\.)",
1018 "name": "invalid.illegal.cobol"
1019 },
1020 {
1021 "match": "(?<![-_])(?i:apply|areas|area|clock-units|code|com-reg|controls|dbcs|destination|detail|display-1|ending|every|insert|kanjikey|last|left|less|limits|limit|memory|metaclass|modules|more-labels|multiple|native_binary|native|negative|number|numeric-edited|other|padding|password|pf|ph|postive|processing|queue|recording|reload|removal|rerun|reserve|reserved|rewind|segment-limit|segment|separate|sequence|skip1|skip2|skip3|standard-1|standard-2|sub-queue-1|sub-queue-2|sub-queue-3|sum|symbolic|synchronized|sync|table|test|text|than|top|trace|trailing|unit|words|write-only|at|basis|beginning|bottom|cbl|cf|ch|de|positive|egcs|egi|emi|end|reversed|rf|rh|run|same|order|heading|esi)(?![0-9A-Za-z_-])",
1022 "name": "keyword.ibmreserved.cobol"
1023 },
1024 {
1025 "match": "(?<![-_])(?i:active-class|aligned|anycase|boolean|cols|col|condition|ec|eo|system-default|function-pointer)(?![0-9A-Za-z_-])",
1026 "name": "strong keyword.potential.reserved.cobol"
1027 },
1028 {
1029 "match": "(?i:filler)",
1030 "name": "keyword.filler.cobol"
1031 },
1032 {
1033 "match": "(?<![-_])(?i:address-of|date|day-of-week|day|debug-content|debug-item|debug-line|debug-item|debug-sub-1|debug-sub-2|debug-sub-3|shift-in|shift-out|sort-control|sort-core-size|sort-file-size|sort-message|sort-return|sort-mode-size|sort-return|tally|time|when-compiled|line-counter|page-counter|return-code|linage-counter|debug-line|debug-name|debug-contents|json-code|json-status|xml-code|xml-event|xml-information|xml-namespace-prefix|xml-namespace|xml-nnamespace-repfix|xml-nnamespace|xml-ntext|jnienvptr)(?![0-9A-Za-z_-])",
1034 "name": "variable.language"
1035 },
1036 {
1037 "match": "(?<![-_])(?i:shortint1|shortint2|shortint3|shortint4|shortint5|shortint6|shortint7|longint1|longint2|longint3|longint4|longint5|longint6|bigint1|bigint2|blob-locator|clob-locator|dbclob-locator|dbclob-file|blob-file|clob-file|clob|dbclob|blob|varbinary|long-varbinary|time-record|timestamp-record|timestamp-offset-record|timestamp-offset|timestamp|rowid|xml|long-varchar)(?=\\s|\\.|\\)|\\()",
1038 "name": "storage.type.sql.picture.cobol"
1039 },
1040 {
1041 "match": "(?<![-_])(?i:self)",
1042 "name": "keyword.other.self.cobol"
1043 },
1044 {
1045 "match": "(?<![-_])(?i:super)",
1046 "name": "keyword.other.super.cobol"
1047 },
1048 {
1049 "match": "(^[0-9][0-9][0-9][0-9][0-9][0-9])",
1050 "name": "constant.numeric.cobol"
1051 },
1052 {
1053 "match": "(\\()([0-9]*)(:)([0-9]*)(\\))",
1054 "captures": {
1055 "1": {
1056 "name": "meta.symbol.cobol"
1057 },
1058 "2": {
1059 "name": "constant.numeric.integer"
1060 },
1061 "3": {
1062 "name": "meta.symbol.cobol"
1063 },
1064 "4": {
1065 "name": "constant.numeric.integer"
1066 },
1067 "5": {
1068 "name": "meta.symbol.cobol"
1069 }
1070 }
1071 },
1072 {
1073 "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",
1074 "name": "meta.symbol.cobol"
1075 }
1076 ],
1077 "repository": {
1078 "cics-keywords": {
1079 "match": "(?<![\\-\\w])(?i:abcode|abdump|abend|abort|abprogram|abstime|accum|acee|acqactivity|acqprocess|acquactivity|action|activity|activityid|actpartn|add|address|after|aid|alarm|all|allocate|alter|alternate|altscrnht|altscrnwd|and|anykey|aplkybd|apltext|applid|as|asa|asis|asktime|asraintrpt|asrakey|asrapsw|asraregs|asraspc|asrastg|assign|asynchronous|at|attach|attachid|attributes|authenticate|autopage|auxiliary|base64|basicauth|below|bif|binary|bit|bodycharset|bookmark|brdata|brdatalength|brexit|bridge|browsetoken|btrans|buffer|build|burgeability|caddrlength|cancel|card|cbuff|ccsid|certificate|change|changetime|channel|char|characterset|check|chunkend|chunking|chunkno|chunkyes|cicsdatakey|ciphers|class|clear|cliconvert|client|clientaddr|clientaddrnu|clientconv|clientname|clntaddr6nu|clntipfamily|close|closestatus|clrpartn|cmdsec|cnamelength|cnotcompl|codepage|color|commarea|commonname|commonnamlen|comparemax|comparemin|complete|composite|compstatus|condition|confirm|confirmation|connect|consistent|console|container|contexttype|control|convdata|converse|convertst|converttime|convid|copy|counter|country|countrylen|create|critical|ctlchar|current|cursor|cwa|cwaleng|data|data1|data2|datalength|datalenth|dataonly|datapointer|dataset|datastr|datatoxml|datatype|datcontainer|date|dateform|datesep|datestring|day|daycount|dayofmonth|dayofweek|dayofyear|days|daysleft|day-of-week|dcounter|ddmmyy|ddmmyyyy|debkey|debrec|debug-contents|debug-item|debug-line|debug-name|debug-sub-1|debug-sub-2|debug-sub-3|deedit|default|define|defresp|defscrnht|defscrnwd|delay|delete|deleteq|delimiter|deq|destcount|destid|destidleng|detail|detaillength|dfhresp|dfhvalue|digest|digesttype|disconnect|docdelete|docsize|docstatus|doctoken|document|ds3270|dsscs|dump|dumpcode|dumpid|duprec|ecaddr|ecblist|eib|elemname|elemnamelen|elemns|elemnslen|end|endactivity|endbr|endbrowse|endfile|endoutput|enq|enter|entry|entryname|eoc|eods|eprfield|eprfrom|eprinto|eprlength|eprset|eprtype|equal|erase|eraseaup|error|errterm|esmreason|esmresp|event|eventtype|eventual|ewasupp|exception|expect|expirytime|extds|external|extract|facility|facilitytokn|false|faultactlen|faultactor|faultcode|faultcodelen|faultcodestr|faultstring|faultstrlen|fci|fct|field|file|firestatus|flength|fmh|fmhparm|for|force|formattime|formfeed|formfield|free|freekb|freemain|from|fromactivity|fromccsid|fromchannel|fromcodepage|fromdoc|fromflength|fromlength|fromprocess|frset|fulldate|function|gchars|gcodes|gds|generic|get|getmain|getnext|gmmi|groupid|gtec|gteq|handle|head|header|hex|high-value|high-values|hilight|hold|honeom|host|hostcodepage|hostlength|hosttype|hours|httpheader|httpmethod|httprnum|httpversion|httpvnum|ignore|immediate|in|increment|initimg|initparm|initparmlen|inpartn|input|inputevent|inputmsg|inputmsglen|inquire|insert|integer|interval|into|intoccsid|intocodepage|invalidcount|invite|invmpsz|invoke|invokingprog|invpartn|invreq|issue|issuer|item|iutype|journalname|jtypeid|jusfirst|juslast|justify|katakana|keep|keylength|keynumber|l40|l64|l80|label|langinuse|languagecode|last|lastusetime|ldc|ldcmnem|ldcnum|leavekb|length|lengthlist|level|lightpen|linage-counter|line|lineaddr|line-counter|link|list|listlength|llid|load|locality|localitylen|logmessage|logmode|logonlogmode|logonmsg|low-value|low-values|luname|main|map|mapcolumn|mapfail|mapheight|mapline|maponly|mapped|mappingdev|mapset|mapwidth|massinsert|maxdatalen|maxflength|maximum|maxlength|maxlifetime|maxproclen|mcc|mediatype|message|messageid|metadata|metadatalen|method|methodlength|milliseconds|minimum|minutes|mmddyy|mmddyyyy|mode|modename|monitor|month|monthofyear|move|msr|msrcontrol|name|namelength|natlang|natlanginuse|netname|newpassword|newphrase|newphraselen|next|nexttransid|nleom|noautopage|nocc|nocheck|nocliconvert|noclose|nodata|node|nodocdelete|nodump|noedit|noflush|nohandle|noinconvert|none|nooutconert|noqueue|noquiesce|nosrvconvert|nosuspend|note|notpurgeable|notruncate|nowait|nscontainer|null|nulls|numciphers|numevents|numitems|numrec|numroutes|numsegments|numtab|of|oidcard|on|opclass|open|operation|operator|operid|operkeys|operpurge|opid|opsecurity|options|or|orgabcode|organization|organizatlen|orgunit|orgunitlen|outdescr|outline|outpartn|output|owner|pa1|pa2|pa3|page|pagenum|page-counter|paging|parse|partn|partner|partnfail|partnpage|partns|partnset|pass|passbk|password|passwordlen|path|pathlength|pct|pf1|pf10|pf11|pf12|pf13|pf14|pf15|pf16|pf17|pf18|pf19|pf2|pf20|pf21|pf22|pf23|pf24|pf3|pf4|pf5|pf6|pf7|pf8|pf9|pfxleng|phrase|phraselen|piplength|piplist|point|pool|pop|portnumber|portnumnu|post|ppt|predicate|prefix|prepare|princonvid|prinsysid|print|priority|privacy|process|processtype|proclength|procname|profile|program|protect|ps|punch|purge|purgeable|push|put|qname|query|queryparm|querystring|querystrlen|queue|quote|quotes|random|rba|rbn|rdatt|read|readnext|readprev|readq|reattach|receive|receiver|recfm|record|recordlen|recordlength|reduce|refparms|refparmslen|relatesindex|relatestype|relatesuri|release|remove|repeatable|repetable|replace|reply|replylength|reqid|requesttype|resclass|reset|resetbr|resid|residlength|resource|resp|resp2|ressec|restart|restype|result|resume|retain|retcode|retcord|retriece|retrieve|return|returnprog|return-code|rewind|rewrite|ridfld|role|rolelength|rollback|route|routecodes|rprocess|rresource|rrn|rtermid|rtransid|run|saddrlength|scheme|schemename|scope|scopelen|scrnht|scrnwd|seconds|security|segmentlist|send|sender|serialnum|serialnumlen|server|serveraddr|serveraddrnu|serverconv|servername|service|session|sesstoken|set|shared|shift-in|shift-out|sigdata|signal|signoff|signon|sit|snamelength|soapfault|sort-control|sort-core-size|sort-file-size|sort-message|sort-mode-size|sort-return|sosi|space|spaces|spoolclose|spoolopen|spoolread|spoolwrite|srvconvert|srvraddr6nu|srvripfamily|ssltype|start|startbr|startbrowse|startcode|state|statelen|stationid|status|statuscode|statuslen|statustext|storage|strfield|stringformat|subaddr|subcodelen|subcodestr|subevent|subevent1|subevent2|subevent3|subevent4|subevent5|subevent6|subevent7|subevent8|sum|suspend|suspstatus|symbol|symbollist|synchronous|synclevel|synconreturn|syncpoint|sysid|tables|tally|task|taskpriority|tcpip|tcpipservice|tct|tctua|tctualeng|td|tellerid|template|termcode|termid|terminal|termpriority|test|text|textkybd|textlength|textprint|time|timeout|timer|timesep|title|to|toactivity|tochannel|tocontainer|toflength|token|tolength|toprocess|trace|tracenum|trailer|tranpriority|transaction|transform|transid|trigger|trt|true|ts|twa|twaleng|type|typename|typenamelen|typens|typenslen|unattend|uncommitted|unescaped|unexpin|unlock|until|uow|update|uri|urimap|url|urllength|userdatakey|userid|username|usernamelen|userpriority|using|validation|value|valuelength|verify|versionlen|volume|volumeleng|wait|waitcics|web|when-compiled|wpmedia1|wpmedia2|wpmedia3|wpmedia4|wrap|write|writeq|wsacontext|wsaepr|xctl|xmlcontainer|xmltodata|xmltransform|xrba|year|yyddd|yyddmm|yymmdd|yyyyddd|yyyyddmm|yyyymmdd|zero|zeroes|zeros)(?![\\-\\w])",
1080 "name": "keyword.verb.cics"
1081 },
1082 "dli-keywords": {
1083 "match": "(?<![\\-\\w])(?i:accept|chkp|deq|dlet|gnp|gn|gu|isrt|load|log|pos|query|refresh|repl|retrieve|rolb|roll|rols|schd|sets|setu|symchkp|term|xrst)(?![\\-\\w])",
1084 "name": "keyword.verb.dli"
1085 },
1086 "string-quoted-constant": {
1087 "begin": "'",
1088 "beginCaptures": {
1089 "0": {
1090 "name": "punctuation.definition.string.begin.cobol"
1091 }
1092 },
1093 "end": "('|$)",
1094 "endCaptures": {
1095 "0": {
1096 "name": "punctuation.definition.string.end.cobol"
1097 }
1098 },
1099 "name": "string.quoted.single.cobol"
1100 },
1101 "string-double-quoted-constant": {
1102 "begin": "\"",
1103 "beginCaptures": {
1104 "0": {
1105 "name": "punctuation.definition.string.begin.cobol"
1106 }
1107 },
1108 "end": "(\"|$)",
1109 "endCaptures": {
1110 "0": {
1111 "name": "punctuation.definition.string.end.cobol"
1112 }
1113 }
1114 },
1115 "number-complex-constant": {
1116 "match": "(\\-|\\+)?((([0-9]+(\\.[0-9]+))|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\s|\\.$|,|\\))",
1117 "name": "constant.numeric.cobol"
1118 },
1119 "number-simple-constant": {
1120 "match": "(\\-|\\+)?([0-9]+)(?=\\s|\\.$|,|\\))",
1121 "name": "constant.numeric.cobol"
1122 }
1123 },
1124 "scopeName": "source.cobol"
1125 }
1126