{"name":"PLI","scopeName":"source.pli","patterns":[{"name":"constant.numeric.pl1","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"},{"name":"comment.block.pl1","contentName":"comment.block.pl1","begin":"\\/\\*","end":"\\*\\/"},{"name":"string.quoted.double.pl1","contentName":"string.quoted.double.pl1","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pl1"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pl1"}}},{"name":"string.quoted.single.pl1","contentName":"string.quoted.single.pl1","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pl1"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pl1"}}},{"name":"keyword.pli","match":"(?\u003c![-_a-zA-Z0-9])(?i:ABNORMAL|ABS|ACOS|ACOSF|ADD|ADDBUFF|ADDR|ADDRDATA|ALIAS|ALIGNED|ALL|ALLOC|ALLOCATION|ALLOCN|ALLOCSIZE|ANY|ANYCONDITION|AREA|ASCII|ASIN|ASINF|ASM|ASMTDLI|ASSEMBLER|ASSIGNABLE|ATAN|ATAND|ATANF|ATANH|ATTENTION|ATTN|AUTO|AUTOMATIC|AVAILABLEAREA|BACKWARDS|BASED|BIGENDIAN|BIN|BINARY|BINARYVALUE|BIND|BINVALUE|BIT|BITLOCATION|BKWD|BLKSIZE|BOOL|BUF|BUFFERED|BUFFERS|BUFND|BUFNI|BUFOFF|BUFSP|BUILTIN|BX|BY|BYADDR|BYTE|BYVALUE|B4|CAST|CDS|CEIL|CENTERLEFT|CENTERRIGHT|CENTRELEFT|CENTRERIGHT|CHAR|CHARACTER|CHARG|CHARGRAPHIC|CHARVAL|CHECK|CHECKSTG|CMPAT|COBOL|COL|COLLATE|COLUMN|COMMENT|COMPARE|COMPILEDATE|COMPILETIME|COMPLETION|COMPLEX|COND|CONDITION|CONJG|CONN|CONNECTED|CONSECUTIVE|CONTROLLED|CONV|CONVERSION|COPY|COS|COSD|COSF|COSH|COUNT|COUNTER|CPLN|CPLX|CS|CSTG|CTL|CTLASA|CTL360|CURRENTSIZE|CURRENTSTORAGE|DATA|DATAFIELD|DATE|DATETIME|DAYS|DAYSTODATE|DAYSTOSECS|DB|DCL|DEC|DECIMAL|DEF|DEFINE|DEFINED|DESCRIPTOR|DESCRIPTORS|DFT|DIM|DIMENSION|DIRECT|DIVIDE|DOWNTHRU|EDIT|ELSE|EMPTY|ENDFILE|ENDPAGE|ENTRYADDR|ENV|ENVIRONMENT|EPSILON|ERF|ERFC|ERROR|EVENT|EXCL|EXCLUSIVE|EXIT|EXP|EXPF|EXPONENT|EXPORTS|EXT|EXTERNAL|FB|FBS|FILE|FILEDDINT|FILEDDTEST|FILEDDWORD|FILEID|FILEOPEN|FILEREAD|FILESEEK|FILETELL|FILEWRITE|FINISH|FIRST|FILETELL|FILEWRITE|FINISH|FIRST|FIXED|FIXEDOVERFLOW|FLOAT|FLOOR|FLUSH|FOFL|FORTRAN|FROM|FROMALIEN|FS|GAMMA|GENERIC|GENKEY|GETENV|GO|GRAPHIC|GX|HANDLE|HBOUND|HEX|HEXADEC|HEXIMAGE|HIGH|HUGE|IAND|IEEE|IEOR|IGNORE|IMAG|IN|INDEX|INDEXAREA|INDEXED|INIT|INITIAL|INLINE|INOT|INPUT|INT|INTER|INTERNAL|INTO|IOR|IRRED|IRREDUCIBLE|ISIGNED|ISLL|ISMAIN|ISRL|IUNSIGNED|KEY|KEYED|KEYFROM|KEYLENGTH|KEYLOC|KEYTO|LABEL|LAST|LBOUND|LEFT|LENGTH|LIKE|LIMITED|LINE|LINENO|LINESIZE|LINKAGE|LIST|LITTLEENDIAN|LOCATE|LOCATION|LOG|LOGF|LOGGAMMA|LOG10|LOG10F|LOG2|LOW|LOWERCASE|LOWER2|MACCOL|MACLMAR|MACNAME|MACRMAR|MAIN|MAX|MAXEXP|MAXLENGTH|MEMINDEX|MEMSEARCH|MEMVERIFY|MEMVERIFYR|MESEARCHR|MIN|MINEXP|MOD|MPSTR|MULTIPLY|NAME|NATIVE|NCP|NEW|NOCHARG|NOCHARGRAPHIC|NOCHECK|NOCMPAT|NOCONV|NOCONVERSION|NODESCRIPTOR|NOEXECOPS|NOFIXEDOVERFLOW|NOFOFL|NOINLINE|NOLOCK|NOMAP|NOMAPIN|NOMAPOUT|NONASSIGNABLE|NONCONNECTED|NONNATIVE|NOOFL|NOOVERFLOW|NORESCAN|NORMAL|NOSIZE|NOSTRG|NOSTRINGRANGE|NOSTRINGSIZE|NOSTRZ|NOSUBRG|NOSUBSCRIPTRANGE|NOUFL|NOUNDERFLOW|NOWRITE|NOZDIV|NOZERODIVIDE|OFFSET|OFFSETADD|OFFSETDIFF|OFFSETSUBTRACT|OFFSETVALUE|OFL|OMITTED|ONCHAR|ONCODE|ONCONDCOND|ONCONDID|ONCOUNT|ONFILE|ONGSOURCE|ONKEY|ONLOC|ONSOURCE|ONSUBCODE|ONWCHAR|ONWSOURCE|OPTIONAL|OPTIONS|ORDER|ORDINAL|ORDINALNAME|ORDINALPRED|ORDINALSUCC|OTHER|OTHERWISE|OUTPUT|OVERFLOW|PACKAGENAME|PAGE|PAGENO|PAGESIZE|PARAMETER|PARMSET|PASSWORD|PENDING|PIC|PICTURE|PLACES|POINTER|POINTERADD|POINTERDIFF|POINTERSUBTRACT|POINTERVALUE|POLY|POS|POSITION|PREC|PRECISION|PRED|PRESENT|PRINT|PRIORITY|PROC|PROCEDURENAME|PROD|PTR|PTRADD|PTRVALUE|PUTENV|QUOTE|RADIX|RAISE2|RANDOM|RANGE|RANK|REAL|RECORD|RECSIZE|RECURSIVE|RED|REDUCIBLE|REENTRANT|REFER|REGIONAL|REM|REORDER|REPATTERN|REPEAT|REPLACEBY2|REPLY|REREAD|RESCAN|RESERVED|RESERVES|RESIGNAL|RESPEC|RETCODE|RETURNS|REUSE|REVERSE|RIGHT|ROUND|SAMEKEY|SCALARVARYING|SCALE|SEARCH|SEARCHR|SECS|SECSTODATE|SECSTODAYS|SEQL|SEQUENTIAL|SERIALIZE4|SET|SIGN|SIGNED|SIN|SIND|SINF|SINH|SIS|SIZE|SKIP|SNAP|SOURCEFILE|SOURCELINE|SQRT|SQRTF|STATEMENT|STATIC|STATUS|STG|STMT|STORAGE|STREAM|STRG|STRING|STRINGRANGE|STRINGSIZE|STRUCTURE|STRZ|SUBRG|SUBSCRIPTRANGE|SUBSTR|SUBTRACT|SUCC|SUM|SYSIN|SYSNULL|SYSPARM|SYSPRINT|SYSTEM|SYSVERSION|TALLY|TAN|TAND|TANF|TANH|TASK|THEN|THREADID|TIME|TINY|TITLE|TO|TOTAL|TPK|TPM|TRANSIENT|TRANSLATE|TRANSMIT|TRIM|TRKOFL|TRUNC|TYPE|UFL|UNAL|UNALIGNED|UNALLOCATED|UNBUF|UNBUFFERED|UNDEFINEDFILE|UNDERFLOW|UNDF|UNLOCK|UNSIGNED|UNSPEC|UNTIL|UPDATE|UPPERCASE|UPTHRU|VALID|VALIDDATE|VALUE|VAR|VARGLIST|VARGSIZE|VARIABLE|VARYING|VARYINGZ|VB|VBS|VERIFY|VERIFYR|VS|VSAM|WAIT|WCHAR|WCHARVAL|WEEKDAY|WHEN|WHIGH|WHILE|WIDECHAR|WHEN|WHIGH|WHILE|WIDECHAR|WLOW|XMLCHAR|Y4DATE|Y4JULIAN|Y4YEAR|ZDIV|ZERODIVIDE)(?=\\s+|;|\\(|\\))"},{"name":"support.function.pli","match":"(?:^|\\s+)(?i:PLIASCII|PLICTF|PLICTFHX|PLIDUMP|PLIEBCDIC|PLIFILL|PLIMOVE|PLIOVER|PLIRETC|PLIRETV|PLISAXA|PLISAXB|PLISAXC|PLISRTx|PLITEST)(?=\\s+|;|\\(|\\))"},{"name":"meta.preprocessor.pli","match":"(?:^|\\s+)(?i:%ACTIVATE|%ACT|%INCLUDE|%DECLARE|%DCL|%LIST|%NOLIST|%OPTION|%PAGE|%POP|%PRINT|%NOPRINT|%PROCESS|%PUSH|%REPLACE|%SKIP|%XINCLUDE)(?=\\s+|;|\\(|\\))"},{"name":"meta.preprocessor.pli","match":"(?:^|\\s+)(?i:%[0-9a-zA-Z]*|%[0-9a-zA-Z]*)(?=\\s+|;|:|\\(|\\))"},{"name":"keyword.pli","match":"(?:^|\\s+)(?i:BEGIN|CALL|CLOSE|DECLARE|DEFAULT|DEFINEALIAS|DELAY|DELETE|DISPLAY|DO|END|ENTRY|FETCH|FORMAT|FREE|GET|GOTO|IF|LEAVE|NULL|ON|OPEN|PACKAGE|PROCEDURE|PUT|READ|RELEASE|RETURN|REVERT|REWRITE|SELECT|SIGNAL|STOP|WRITE)(?=\\s+|;|\\(|\\))"}]}