Skip to content

Commit

Permalink
feat: Add CICS Acquire statement (#2483)
Browse files Browse the repository at this point in the history
  • Loading branch information
KutluOzel-b authored Oct 4, 2024
1 parent f021bac commit f7cfa0d
Show file tree
Hide file tree
Showing 10 changed files with 167 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
]
},
"cics-keywords": {
"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|APPEND|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|BYTEOFFSET|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|CONTAINERCNT|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|DAYCOUNT|DAYOFMONTH|DAYOFWEEK|DAYOFYEAR|DAYS|DAYSLEFT|DCOUNTER|DDMMYY|DDMMYYYY|DEBKEY|DEBREC|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|LINK|LINKAGE|LINKLEVEL|LIST|LISTLENGTH|LLID|LOAD|LOCATION|LOCALCCSID|LOCALITY|LOCALITYLEN|LOGMESSAGE|LOGMODE|LOGONLOGMODE|LOGONMSG|LOW-VALUE|LOW-VALUES|LUNAME|MAIN|MAJORVERSION|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|MILLISECS|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|PURGEABILITY|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|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|SIGDATA|SIGNAL|SIGNOFF|SIGNON|SIT|SNAMELENGTH|SOAPFAULT|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|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|ANALYZERSTAT|APPLICATION|APPLMAJORVER|APPLMINORVER|APPLMICROVER|ATOMSERVICE|AVAILSTATUS|CHANGEAGENT|CHANGEAGREL|CHANGEUSRID|CONVERTER|DEFINESOURCE|DEFINETIME|ENABLESTATUS|HFSFILE|INSTALLAGENT|INSTALLTIME|INSTALLUSRID|IPFAMILY|IPRESOLVED|LOCATION|PIPELINE|PORT|PLATFORM|REDIRECTTYPE|SOCKETCLOSE|SOCKPOOLSIZE|TEMPLATENAME|USAGE|WEBSERVICE)(?![\\-\\w])",
"match": "(?<![\\-\\w])(?i:ABCODE|ABDUMP|ABEND|ABORT|ABPROGRAM|ABSTIME|ACCUM|ACEE|ACQACTIVITY|ACQPROCESS|ACQUACTIVITY|ACQUIRE|ACTION|ACTIVITY|ACTIVITYID|ACTPARTN|ADD|ADDRESS|AFTER|AID|ALARM|ALL|ALLOCATE|ALTER|ALTERNATE|ALTSCRNHT|ALTSCRNWD|AND|ANYKEY|APLKYBD|APLTEXT|APPLID|APPEND|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|BYTEOFFSET|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|CONTAINERCNT|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|DAYCOUNT|DAYOFMONTH|DAYOFWEEK|DAYOFYEAR|DAYS|DAYSLEFT|DCOUNTER|DDMMYY|DDMMYYYY|DEBKEY|DEBREC|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|LINK|LINKAGE|LINKLEVEL|LIST|LISTLENGTH|LLID|LOAD|LOCATION|LOCALCCSID|LOCALITY|LOCALITYLEN|LOGMESSAGE|LOGMODE|LOGONLOGMODE|LOGONMSG|LOW-VALUE|LOW-VALUES|LUNAME|MAIN|MAJORVERSION|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|MILLISECS|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|PURGEABILITY|PUSH|PUT|QNAME|QUERY|QUERYPARM|QUERYSTRING|QUERYSTRLEN|QUEUE|QUOTE|QUOTES|RANDOM|RBA|RBN|RDATT|READ|READNEXT|READPREV|READQ|REALM|REALMLEN|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|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|SIGDATA|SIGNAL|SIGNOFF|SIGNON|SIT|SNAMELENGTH|SOAPFAULT|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|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|ANALYZERSTAT|APPLICATION|APPLMAJORVER|APPLMINORVER|APPLMICROVER|ATOMSERVICE|AVAILSTATUS|CHANGEAGENT|CHANGEAGREL|CHANGEUSRID|CONVERTER|DEFINESOURCE|DEFINETIME|ENABLESTATUS|HFSFILE|INSTALLAGENT|INSTALLTIME|INSTALLUSRID|IPFAMILY|IPRESOLVED|LOCATION|PIPELINE|PORT|PLATFORM|REDIRECTTYPE|SOCKETCLOSE|SOCKPOOLSIZE|TEMPLATENAME|USAGE|WEBSERVICE)(?![\\-\\w])",
"name": "keyword.verb.cics"
},
"number-constant": {
Expand Down
1 change: 1 addition & 0 deletions server/dialect-idms/src/main/resources/KeywordsIdms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
ABEND=The ABEND statement abnormally terminates the issuing task and optionally writes a task dump to the log file.
ACCEPT=The ACCEPT statement transfers data or system date-related information into the data area referenced by the specified identifier.<br>[Read more](https://www.ibm.com/support/knowledgecenter/en/SS6SG3_6.2.0/com.ibm.cobol62.ent.doc/PGandLR/ref/rlpsacce.htm)<br>\u00A9 Copyright IBM Corporation 1994, 2019.<br>U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.<br>***<br>[IDMS] The ACCEPT statement transfers database, transaction, or task-related information to a specified location in program variable storage.
ATTACH=The ATTACH statement initiates a new task within the CA IDMS system.
ACQUIRE= enables a program that is executing outside a particular BTS process to access an activity within the process. It allows the program to: Read and write to the activity's data-containers.Issue various commands, such as RUN and LINK, against the activity (if the acquired activity is a root activity, against the process).
BIND=The BIND statement establishes processing initiation, subschema record addressability, communication with a database procedure, or a connection with a CA IDMS system.
CHANGE=The CHANGE PRIORITY statement changes the dispatching priority of the issuing task.
CHECK=The CHECK TERMINAL statement delays task processing until a previously issued I/O request has completed.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ class IdmsDialectTest {
void testKeywords() {
IdmsDialect dialect = new IdmsDialect(mock(CopybookService.class), mock(MessageService.class));
Map<String, String> result = dialect.getKeywords();
assertEquals(46, result.size());
assertEquals(47, result.size());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ AUTHENTICATE : A U T H E N T I C A T E;
AUTOPAGE : A U T O P A G E;
AUXILIARY : A U X I L I A R Y;
AVAILSTATUS: A V A I L S T A T U S;
ACQUIRE : A C Q U I R E;
BASE64 : B A S E '6' '4';
BASICAUTH : B A S I C A U T H;
BELOW : B E L O W;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,11 @@ cics_maxlength: ((MAXLENGTH | MAXFLENGTH) cics_data_value);
cics_abend: ABEND (ABCODE cics_name | CANCEL | NODUMP | cics_handle_response)*;

/** ACQUIRE */
cics_acquire: PROCESS cics_data_value (PROCESSTYPE cics_data_value |
ACTIVITYID cics_data_value | cics_handle_response?);
cics_acquire:ACQUIRE (cics_acquire_process | cics_acquire_activityId ) ;

cics_acquire_process: ((PROCESS | PROCESSTYPE) cics_data_value | cics_handle_response)+;

cics_acquire_activityId: (ACTIVITYID cics_data_value | cics_handle_response)+;

/** ADD SUBEVENT */
cics_add: ADD (SUBEVENT cics_data_value | EVENT cics_data_value | cics_handle_response)+;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* Copyright (c) 2024 Broadcom.
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Broadcom, Inc. - initial API and implementation
*
*/
package org.eclipse.lsp.cobol.implicitDialects.cics.utility;

import org.antlr.v4.runtime.ParserRuleContext;

import org.eclipse.lsp.cobol.common.dialects.DialectProcessingContext;
import org.eclipse.lsp.cobol.common.error.ErrorSeverity;
import org.eclipse.lsp.cobol.common.error.SyntaxError;
import org.eclipse.lsp.cobol.implicitDialects.cics.CICSParser;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.eclipse.lsp.cobol.implicitDialects.cics.CICSParser.RULE_cics_acquire;
import static org.eclipse.lsp.cobol.implicitDialects.cics.CICSParser.RULE_cics_acquire_process;

/** Checks CICS Acquire rules for required and invalid options */
public class CICSAcquireOptionsCheckUtility extends CICSOptionsCheckBaseUtility {

public static final int RULE_INDEX = RULE_cics_acquire;

private static final Map<String, ErrorSeverity> DUPLICATE_CHECK_OPTIONS =
new HashMap<String, ErrorSeverity>() {
{
put("ACQUIRE", ErrorSeverity.ERROR);
put("PROCESS", ErrorSeverity.ERROR);
put("PROCESSTYPE", ErrorSeverity.ERROR);
put("ACTIVITYID", ErrorSeverity.ERROR);
}
};

public CICSAcquireOptionsCheckUtility(
DialectProcessingContext context, List<SyntaxError> errors) {
super(context, errors, DUPLICATE_CHECK_OPTIONS);
}

/**
* Entrypoint to check CICS Acquire rule options
*
* @param ctx ParserRuleContext subclass containing options
* @param <E> A subclass of ParserRuleContext
*/
public <E extends ParserRuleContext> void checkOptions(E ctx) {
if (ctx.getRuleIndex() == RULE_cics_acquire_process)
checkAcquireProcess((CICSParser.Cics_acquire_processContext) ctx);

checkDuplicates(ctx);
}
private void checkAcquireProcess(CICSParser.Cics_acquire_processContext ctx) {
checkHasMandatoryOptions(ctx.PROCESS(), ctx, "PROCESS");
checkHasMandatoryOptions(ctx.PROCESSTYPE(), ctx, "PROCESSTYPE");
}
}
Loading

0 comments on commit f7cfa0d

Please sign in to comment.