{ "name": "COBOL", "scopeName": "source.cobol", "patterns": [ { "name": "comment.line.note.python", "match": "(^[0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\\\*\\-][0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\*\\-][\\*/][\u003e ]\\s*(?i:NOTE|FIXME|TODO|CHANGED).*$)" }, { "name": "comment.line.set.cobol", "match": "(^[0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\\\*\\-][0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\*\\-][0-9 a-zA-Z\\*\\-][\\*/].*$)" }, { "name": "keyword.control.import", "match": "(?:^|\\s)((?i)\\$\\s*set.*ilusing)(?:$|.*$)" }, { "name": "comment.line.set.cobol", "match": "(?:^|\\s)((?i)\\$\\s*set)(?:$|\\s.*$)" }, { "name": "comment.line.note.python", "match": "(\\*\u003e\\s*(?i:NOTE|FIXME|TODO|CHANGED).*$)" }, { "name": "comment.line.rem.cobol", "match": "(^ \\*.*$|^\\*.*$)" }, { "name": "meta.preprocessor", "match": "(?:^|\\s)((?i)\\$\\s*(?i:if|else|then|display|xfd|end))(?:$|\\s.*$)" }, { "name": "invalid.illegal.cobol", "match": "(?:^|\\s)\u003e\u003e(?i:if|else|elif|end-if)(?:$|\\s.*$)" }, { "name": "comment.line.rem.cobol", "match": "(^[0-9][0-9][0-9][0-9][0-9][0-9])" }, { "name": "comment.line.rem.cobol", "match": "(\\*\u003e.*$)" }, { "name": "constant.numeric.integer.hexadecimal.cobol", "match": "([nN][xX]|[hHxX])'[[:xdigit:]]*'" }, { "name": "invalid.illegal.hexadecimal.cobol", "match": "([nN][xX]|[hHxX])'.*'" }, { "name": "constant.numeric.integer.hexadecimal.cobol", "match": "([nN][xX]|[hHxX])\"[[:xdigit:]]*\"" }, { "name": "invalid.illegal.hexadecimal.cobol", "match": "([nN][xX]|[hHxX])\".*\"" }, { "name": "constant.numeric.integer.octal.cobol", "match": "[oO]\"[0-7]*\"" }, { "name": "invalid.illegal.octal.cobol", "match": "[oO]\".*\"" }, { "match": "((\\b(?\u003c!-))(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(.*)(\\.|$))", "captures": { "1": { "name": "keyword.verb.cobol" }, "2": { "name": "keyword.verb.cobol" }, "3": { "name": "comment.line.cobol" } } }, { "name": "constant.numeric.cobol", "match": "(?\u003c=(\\(|\\[))((\\-\\+)*[0-9 ,\\.\\+\\-\\*\\/]+)(?=(\\)|\\]))", "captures": { "1": { "name": "keyword.start.bracket.cobol" }, "2": { "name": "constant.numeric.cobol" }, "3": { "name": "keyword.end.bracket.cobol" } } }, { "name": "constant.numeric.cobol", "match": "(\\s|^)(\\-|\\+)?((([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\s|\\.|,|\\))" }, { "name": "constant.language.cobol", "match": "\\b(?\u003c!-)(?i:true|false|null|nulls)(?=\\s|\\.|$)" }, { "name": "constant.language.figurative.cobol", "match": "\\b(?\u003c!-)(?i:zeroes|alphabetic|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\s|\\.|,|\\))" }, { "name": "string.quoted.cobol", "begin": "(?i:exec\\s+sql)", "end": "(?i:end-exec|end\\s*exec)", "patterns": [ { "name": "variable.cobol", "match": "\\:([a-zA-Z\\-])*" }, { "include": "source.sql" } ] }, { "name": "string.quoted.cobol", "begin": "(?i:exec\\s+cics)", "end": "(?i:end\\-exec|end\\s*exec)", "patterns": [ { "name": "keyword.identifiers.cobol", "match": "(?i:ABEND|ACQUIRE|ADDRESS\\s*SET|ADDRESS|ADD\\s*SUBEVENT|ALLOCATE|ASKTIME|ASSIGN|BIF\\s*DEEDIT|BIF\\s*DIGEST|BMS|BUILD\\s*ATTACH|CANCEL|CHANGE\\s*PASSWORD|CHANGE\\s*TASK|CHECK\\s*ACQPROCESS|CHECK\\s*ACTIVITY|CHECK\\s*TIMER|CONNECT\\s*PROCESS|CONVERSE|CONVERTTIME|DEFINE\\s*ACTIVITY|DEFINE\\s*COMPOSITE\\s*EVENT|DEFINE\\s*COUNTER|DEFINE\\s*INPUT\\s*EVENT|DEFINE\\s*PROCESS|DEFINE\\s*TIMER|DELAY|DELETEQ\\s*TD|DELETEQ\\s*TS|DELETE\\s*ACTIVITY|DELETE\\s*CONTAINER|DELETE\\s*COUNTER|DELETE\\s*EVENT|DELETE\\s*TIMER|DELETE|DEQ|DOCUMENT\\s*CREATE|DOCUMENT\\s*DELETE|DOCUMENT\\s*INSERT|DOCUMENT\\s*RETRIEVE|DOCUMENT\\s*SET|DUMP\\s*TRANSACTION|ENDBROWSE\\s*ACTIVITY|ENDBROWSE\\s*CONTAINER|ENDBROWSE\\s*EVENT|ENDBROWSE\\s*PROCESS|ENDBR|ENQ|ENTER\\s*TRACENUM|EXTRACT\\s*ATTACH|EXTRACT\\s*ATTRIBUTES|EXTRACT\\s*CERTIFICATE|EXTRACT\\s*LOGONMSG|EXTRACT\\s*PROCESS|EXTRACT\\s*TCPIP|EXTRACT\\s*TCT|EXTRACT\\s*WEB|FORCE\\s*TIMER|FORMATTIME|FREEMAIN||FREE|GDS\\s*ALLOCATE|GDS\\s*ASSIGN|GDS\\s*CONNECT\\s*PROCESS|GDS\\s*EXTRACT\\s*ATTRIBUTES|GDS\\s*EXTRACT\\s*PROCESS|GDS\\s*FREE|GDS\\s*ISSUE\\s*ABEND|GDS\\s*ISSUE\\s*CONFIRMATION|GDS\\s*ISSUE\\s*ERROR|GDS\\s*ISSUE\\s*PREPARE|GDS\\s*ISSUE\\s*SIGNAL|GDS\\s*RECEIVE|GDS\\s*SEND|GDS\\s*WAIT|GETMAIN|GETNEXT\\s*ACTIVITY|GETNEXT\\s*CONTAINER|GETNEXT\\s*EVENT|GETNEXT\\s*PROCESS|GET\\s*CONTAINER|GET\\s*COUNTER|GET\\s*DCOUNTER|HANDLE\\s*ABEND|HANDLE\\s*AID|HANDLE\\s*CONDITION|IGNORE\\s*CONDITION|INQUIRE\\s*ACTIVITYID|INQUIRE\\s*CONTAINER|INQUIRE\\s*EVENT|INQUIRE\\s*PROCESS|INQUIRE\\s*TIMER|INVOKE\\s*SERVICE|INVOKE\\s*WEBSERVICE|ISSUE\\s*ABEND|ISSUE\\s*ABORT|ISSUE\\s*ADD|ISSUE\\s*CONFIRMATION|ISSUE\\s*COPY|ISSUE\\s*DISCONNECT|ISSUE\\s*ENDFILE|ISSUE\\s*ENDOUTPUT|ISSUE\\s*END|ISSUE\\s*EODS|ISSUE\\s*ERASEAUP|ISSUE\\s*ERASE|ISSUE\\s*ERROR|ISSUE\\s*LOAD|ISSUE\\s*NOTE|ISSUE\\s*PASS|ISSUE\\s*PREPARE|ISSUE\\s*PRINT|ISSUE\\s*QUERY|ISSUE\\s*RECEIVE|ISSUE\\s*REPLACE|ISSUE\\s*RESET|ISSUE\\s*SEND|ISSUE\\s*SIGNAL)" }, { "name": "keyword.identifiers.cobol", "match": "(?\u003c!-)(?i:FROM|ERASE|LENGTH|RESP|ISSUE\\s*WAIT|LINK\\s*ACQPROCESS|LINK\\s*ACTIVITY|LINK|LOAD|MONITOR|MOVE\\s*CONTAINER|POINT|POP\\s*HANDLE|POST|PURGE\\s*MESSAGE|PUSH\\s*HANDLE|PUT\\s*CONTAINER|QUERY\\s*COUNTER|QUERY\\s*DCOUNTER|QUERY\\s*SECURITY|READNEXT|READPREV|READQ\\s*TD|READQ\\s*TS|READ|RECEIVE\\s*MAP\\s*MAPPINGDEV|RECEIVE\\s*MAP|RECEIVE\\s*PARTN|RECEIVE|RELEASE|REMOVE\\s*SUBEVENT|RESETBR|RESET\\s*ACQPROCESS|RESET\\s*ACTIVITY|RESUME|RETRIEVE\\s*REATTACH\\s*EVENT|RETRIEVE\\s*SUBEVENT|RETRIEVE|RETURN|REWIND\\s*COUNTER|REWIND\\s*DCOUNTER|REWRITE|ROUTE|RUN|SEND\\s*CONTROL|SEND\\s*MAP\\s*MAPPINGDEV|SEND\\s*MAP|SEND\\s*PAGE|SEND\\s*PARTNSET|SEND\\s*TEXTNOEDIT|SEND\\s*TEXT\\s*MAPPED|SEND\\s*TEXT|SEND|SIGNAL\\s*EVENT|SIGNOFF|SIGNON|SOAPFAULT\\s*ADD|SOAPFAULT\\s*CREATE|SOAPFAULT\\s*DELETE|SPOOLCLOSE|SPOOLOPEN\\s*INPUT|SPOOLOPEN\\s*OUTPUT|SPOOLREAD|SPOOLWRITE|STARTBROWSE\\s*ACTIVITY|STARTBROWSE\\s*CONTAINER|STARTBROWSE\\s*EVENT|STARTBROWSE\\s*PROCESS|STARTBR|START\\s*ATTACH|START\\s*BREXIT|START\\s*TRANSID|START|SUSPEND|SYNCPOINT\\s*ROLLBACK|SYNCPOINT|TEST\\s*EVENT|TRANSFORM\\s*DATATOXML|TRANSFORM\\s*XMLTODATA|UNLOCK|UPDATE\\s*COUNTER|UPDATE\\s*DCOUNTER|WAITCICS|WAIT\\s*CONVID|WAIT\\s*EVENT|WAIT\\s*EXTERNAL|WAIT\\s*JOURNALNAME|WAIT\\s*JOURNALNUM|WAIT\\s*SIGNAL|WAIT\\s*TERMINAL|WEB\\s*CLOSE|WEB\\s*CONVERSE|WEB\\s*ENDBROWSE\\s*FORMFIELD|WEB\\s*ENDBROWSE\\s*HTTPHEADER|WEB\\s*EXTRACT|WEB\\s*OPEN|WEB\\s*PARSE\\s*URL|WEB\\s*READNEXT\\s*FORMFIELD|WEB\\s*READNEXT\\s*HTTPHEADER|WEB\\s*READ\\s*FORMFIELD|WEB\\s*READ\\s*HTTPHEADER|WEB\\s*RECEIVE|WEB\\s*RETRIEVE|WEB\\s*SEND|WEB\\s*STARTBROWSE\\s*FORMFIELD|WEB\\s*STARTBROWSE\\s*HTTPHEADER|WEB\\s*WRITE\\s*HTTPHEADER|WRITEQ\\s*TD|WRITEQ\\s*TS|WRITE\\s*JOURNALNAME|WRITE\\s*JOURNALNUM|WRITE\\s*OPERATOR|WRITE|WSACONTEXT\\s*BUILD|WSACONTEXT\\s*DELETE|WSACONTEXT\\s*GET|WSAEPR\\s*CREATE|XCTL)" }, { "name": "constant.numeric.cobol", "match": "([0-9]*)" }, { "name": "variable.cobol", "match": "\\(.*\\)" } ] }, { "name": "string.quoted.cobol", "begin": "(?i:exec\\s*ado)", "end": "(?i:end\\-exec|end\\s*exec)", "patterns": [ { "name": "variable.cobol", "match": "\\:([a-zA-Z\\-])*" }, { "include": "source.sql" } ] }, { "name": "string.quoted.cobol", "begin": "(?i:exec\\s*html)", "end": "(?i:end\\-exec|end\\s*exec)", "patterns": [ { "include": "text.html.basic" }, { "include": "text.html.basic" } ] }, { "name": "string.quoted.double.cobol", "begin": "\"", "end": "(\"|$)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cobol" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cobol" } } }, { "name": "string.quoted.single.cobol", "begin": "'", "end": "('|$)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cobol" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cobol" } } }, { "name": "string.quoted.double.cobol", "begin": "[zZ]\"", "end": "(\"|$)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cobol" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cobol" } } }, { "name": "string.quoted.single.cobol", "begin": "[zZ]'", "end": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cobol" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cobol" } } }, { "name": "string.quoted.double.cobol", "begin": "[nN]\"", "end": "(\"|$)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cobol" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cobol" } } }, { "name": "string.quoted.single.cobol", "begin": "[nN]'", "end": "'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.cobol" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.cobol" } } }, { "name": "keyword.identifiers.cobol", "match": "\\b(?\u003c!-)(?i:id\\s*division|identification\\s*division|identification|property-id|getter|setter|entry|function-id|end\\s*attribute|attribute|interface-id|factory|ctl|class-control|options|environment\\s*division|environment-name|environment-value|environment|configuration\\s*section|configuration|decimal-point|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|fd|rd|cd|sd|printing|procedure\\s*division|procedure|debugging|declaratives|security|based-storage|size|font|national-edited|national)\\b[^-]" }, { "name": "keyword.identifiers.cobol", "match": "(\\s|^)(?i)(?i:end\\s*enum|end\\s*interface|end\\s*class|end\\s*property|end\\s*method|end\\s*object|exit\\s*method|end\\s*program|end\\s*operator|create|reset|instance|delegate|end-delegate|delegate-id|declare|debug-line|debug-name|debug-contents|sort-return|exception-object|return-code|json-code|as||stop\\srun|stop)(?=\\s|\\.|,|$)" }, { "name": "keyword.identifiers.cobol", "match": "(\\s|^)(?i)(?i:attach\\s*method|attach\\s*del|attach|detach\\s*del|detach\\s*method|detach|method|del)(?=\\s|\\.|$)" }, { "name": "keyword.other.sync.cobol", "match": "(\\s|^)(?i)(?i:sync\\s*(?i:on))(?=\\s|\\.)" }, { "name": "keyword.control.catch-exception.cobol", "match": "(\\s|^)(?i)(?i:try|finally|catch|end-try|throw)(?=\\s|\\.|$)" }, { "name": "keyword.otherverbs.cobol", "match": "\\b(?\u003c!-)(?i)(?i:else|when|select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|\\+\\+include|copy|replace)(?=\\s)" }, { "name": "keyword.identifers.cobol", "match": "\\b(?\u003c!-)(?i:assign|external|organization|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|mode|random)(?=\\s|\\.)" }, { "name": "support.function.cobol", "match": "(?\u003c!-)(?i:function)\\s(?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|sign|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)" }, { "name": "support.function.cobol", "match": "\\b(?\u003c!-)(?i:function)(?=\\s|\\.)" }, { "name": "keyword.verbs.cobol", "match": "\\b(?\u003c!-)(?i:end-accept|end-add|end-sync|end-call|end-compute|end-delete|end-display|end-divide|end-if|end-set|end-evaluate|end-multiply|end-of-page|end-perform|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)(?=\\s|\\.)" }, { "name": "keyword.other.cobol", "match": "\\b(?\u003c!-)(?:by value|by reference|by content|property-value)(?=\\s|\\.)" }, { "name": "keyword.identifers.cobol", "match": "\\b(?\u003c!-)(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|page-counter|linage-counter|linage|line-counter|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|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|initial|resident|reference|content|are|renames|like|format\\stime|values|omitted|value|ascending|descending|key|retry|until|varying|when|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|auto|line|position|col|reporting|arithmetic|localize|program|class|interface|in|at|page)(?=\\s|\\.)" }, { "match": "(\\b(?\u003c!-))(?i:type)\\s+(?:[a-zA-Z][a-zA-Z0-9\\$\\-\\._]*|[a-zA-Z])", "captures": { "0": { "name": "storage.type.cobol" }, "1": { "name": "keyword.verbs.cobol" }, "2": { "name": "entity.name.cobol" } } }, { "name": "storage.type.cobol", "match": "\\b(?\u003c!-)(?i:type|bit|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|decimal|object\\sreference|object-reference|object|list|dictionary|unsigned)(?=\\s|\\.|,)" }, { "name": "keyword.operator-id.cobol", "match": "(operator-id\\s*[+\\-\\*\\/])", "captures": { "1": { "name": "keyword.other.verb.cobol" }, "2": { "name": "meta.symbol.cobol" } } }, { "match": "(?i:self)(::)\\s*([0-9a-zA-Z_\\-\\.]*)", "captures": { "0": { "name": "storage.type.cobol" }, "1": { "name": "keyword.verbs.cobol" }, "2": { "name": "support.type.cobol" } } }, { "match": "([0-9a-zA-Z_\\-\\.]*)(::)\\s*([0-9a-zA-Z_\\-\\.]*)", "captures": { "0": { "name": "support.type.cobol" }, "1": { "name": "keyword.verbs.cobol" }, "2": { "name": "support.type.cobol" } } }, { "match": "(::)\\s*([0-9a-zA-Z_\\-\\.]*)", "captures": { "1": { "name": "keyword.verbs.cobol" }, "2": { "name": "support.type.cobol" } } }, { "match": "\\b(?\u003c!-)(?i:type\\s+)([0-9a-zA-Z\\.]*)", "captures": { "1": { "name": "keyword.verbs.cobol" }, "2": { "name": "storage.type.source.cobol" } } }, { "name": "keyword.verbs.cobol", "match": "\\b(?\u003c!-)(?i:accept|add|address|allocate|call|cancel|chain|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|if|evaluate|exhibit|named|exit|free|generate|go\\s*to|go|goback|initialize\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\s*run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|perform|purge|raise|ready|read|receive|release|return|rewrite|rounded|rollback|search|send|sort|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?=\\s|\\.|$)" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXpPnNzZ/,.]*\\([0-9]*\\)[vV][-+sS\\*$09aAbBxXpPnNzZ/,\\.]*\\([0-9]*\\)[-|+]" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXpPnNzZ/,.]*\\([0-9]*\\)[vV][-+sS\\*$09aAbBxXpPnNzZ/,\\.]*\\([0-9]*\\)" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXpPnNzZ/,.]*\\([0-9]*\\)[vV\\.][-+s\\*$09aAbBsSnNxXzZ/,]*[0-9]*" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXzZ/,.]*\\([0-9]*\\)[Vv\\.][-+s\\*0$9aAbBsSnNxpPXzZ/,]*" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPXzZ/,]*[Vv\\.][-+s\\*0$9aAbBsSnNxpPXzZ/,]*" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPXzZ/,]*" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpNNxXzZ/,.]*\\([0-9]*\\)" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXzZ]*[Vv][9aAxbXzZ]*\\([0-9]*\\)" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXzZ]*[Vv][9aAxbXzZ]*" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+\\*$9aAbBsSnpPNxXzZ/,.vV]*" }, { "name": "storage.type.picture.cobol", "match": "\\b(?\u003c!-)(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|usage\\sis\\sdisplay|usage\\sis\\sfont|usage display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|handle|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|blank\\s*screen|blank|usage\\sis|is\\spartial|usage|justified|just|right|signed|sign|seperate)(?=\\s|\\.)" }, { "name": "keyword.screens.cobol", "match": "(\\s|^)(?i)(?:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)\\b" }, { "name": "storage.modifier.cobol", "match": "\\b(?\u003c!-)(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property)(?=\\s|\\.)" }, { "name": "keyword.operator.comparison.cobol", "match": "\\s(?i:=|\u003c|\u003e|\u003c=|\u003e=|\u003c\u003e|\\+|\\-|\\*|\\/|b-and|b-or|b-xor|b-not|b-left|b-right|and|or|not|equals|equal|greater\\s*than|less\\s*than)(?=\\s|\\.)" }, { "name": "keyword.verbs.cobol", "match": "\\b(?\u003c!-)(?i:enum-id|valuetype-id|operator-id|method-id|class-id|program-id|attribute-id|implements|inherits)(?=\\s|\\.|$/)" }, { "name": "keyword.verbs.cobol", "match": "\\b(?!-)(?i:installation|author|source-computer|object-computer|date-written|date-compiled)(?=\\s|\\.)" }, { "name": "support.type.cobol", "match": "\\b(?\u003c!-)(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|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)(?=\\s|\\.|$)" }, { "name": "keyword.xml.cobol", "match": "\\b(?\u003c!-)(?i:end-xml|processing.*procedure|xml\\sparse|xml|xml-information|xml-text|xml-schema|xml-ntext|xml-namespace|xml-namespace-prefix|xml-event|xml-declaration|xml-code|xml-nnamespace-prefix|xml-nnamespace)(?=\\s|\\.|$)" }, { "name": "keyword.json.cobol", "match": "\\b(?\u003c!-)(?i:json\\s*generate|json|end-json|name\\sof)(?=\\s|\\.|$)" }, { "name": "invalid.illegal.cobol", "match": "\\b(?\u003c!-)(?i:alter|remarks)(?=\\s|\\.)" }, { "name": "keyword.filler.cobol", "match": "(?i:filler)" }, { "name": "meta.symbol.cobol", "match": "(([a-zA-Z0-9][a-zA-Z\\-0-9]+))" } ] }