@portll/cobolwork 0.2.117 → 0.2.140

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/card.mjs ADDED
@@ -0,0 +1,18 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // Where a source line's fields sit on the card. COBOL in fixed or variable reference format has a
3
+ // sequence area (columns 1-6), an indicator (7), program text (8-72, or 8-250 in variable format) and
4
+ // what follows, which the compiler ignores. A JCL or utility control statement is columns 1-72, with
5
+ // its sequence number after. Free-format COBOL is text from end to end.
6
+
7
+ export const TEXT_END = { fixed: 72, variable: 250 };
8
+ export const STATEMENT_END = 72;
9
+
10
+ export function cobolCard(line, format) {
11
+ const end = TEXT_END[format];
12
+ if (!end) return { sequence: '', indicator: '', text: line, ignored: '' };
13
+ return { sequence: line.slice(0, 6), indicator: line[6] || ' ', text: line.slice(7, end), ignored: line.slice(end) };
14
+ }
15
+
16
+ export function statementCard(line) {
17
+ return { text: line.slice(0, STATEMENT_END), sequence: line.slice(STATEMENT_END) };
18
+ }
@@ -106,45 +106,48 @@ export const DFHRESP = {
106
106
 
107
107
  export const DFHVALUE = {
108
108
  ABEND: 900, ACQFAIL: 515, ACQUIRED: 69, ACQUIRING: 71, ACTIVE: 181, ACTIVITY: 1002, ADD: 291,
109
- ADDABLE: 41, ADDFAIL: 519, ADVANCE: 265, AINIT: 282, ALARM: 501, ALL: 856, ALLCONN: 169,
110
- ALLOCATD: 81, ALLOCATED: 81, ALLQUERY: 431, ALLVALUES: 860, ALTERABLE: 52, ALTERNATE: 197,
111
- ALTPRTCOPY: 446, ANALYZER: 1126, AND: 1005, ANY: 158, APLKYBD: 391, APLTEXT: 393, APPC: 124,
112
- APPCPARALLEL: 374, APPCSINGLE: 373, APPEND: 1036, APPLICATION: 559, APPLID: 303, APPLNAME: 338,
113
- ASACTL: 224, ASCII7: 616, ASCII8: 617, ASSEMBLER: 150, ASSERTED: 1104, ASYNCHRONOUS: 570, ATI: 75,
114
- ATOM: 1119, ATOMSERVICE: 1179, ATTACH: 576, ATTENTION: 524, ATTLSAWARE: 1205, AUDALARM: 395,
115
- AUTOACTIVE: 630, AUTOARCH: 262, AUTOAUTH: 1095, AUTOCONN: 170, AUTOINACTIVE: 631, AUTOINIT: 284,
116
- AUTOINSTALL: 1140, AUTOPAGE: 80, AUTOPAGEABLE: 80, AUTOREGISTER: 1094, AUTOSTART: 618,
117
- AUTOTERMID: 1120, AUXILIARY: 247, AUXPAUSE: 313, AUXSTART: 312, AUXSTOP: 314, AVAILABLE: 95,
118
- BACKOUT: 192, BACKTRANS: 397, BACKUPNONBWO: 800, BASE: 10, BASE64: 50, BASEAPI: 1052,
119
- BASESPACE: 664, BASICAUTH: 1092, BDAM: 2, BEGINSESSION: 510, BELOW: 159, BGAM: 63, BINARY: 1038,
120
- BINIT: 283, BIT: 1020, BLK: 47, BLOCKED: 16, BOTH: 1100, BRIDGE: 935, BROWSABLE: 39, BSAM: 61,
121
- BTAM: 62, BUNDLE: 1180, BUSY: 612, C: 149, CACHE: 791, CANCEL: 526, CANCELLED: 624,
122
- CANCELLING: 1025, CAPTURESPEC: 1195, CATEGORY: 474, CBE: 582, CBER: 581, CCE: 583, CD: 491,
123
- CEDF: 370, CERTIFICAUTH: 1093, CERTUSER: 1061, CFE: 584, CFTABLE: 833, CGROUP: 902, CHANNEL: 1047,
124
- CHAR: 1019, CHUNKEND: 737, CHUNKNO: 735, CHUNKYES: 736, CICS: 660, CICSAPI: 1052,
109
+ ADDABLE: 41, ADDFAIL: 519, ADDRESS: 859, ADVANCE: 265, AINIT: 282, ALARM: 501, ALL: 856,
110
+ ALLCONN: 169, ALLOCATD: 81, ALLOCATED: 81, ALLQUERY: 431, ALLVALUES: 860, ALTERABLE: 52,
111
+ ALTERNATE: 197, ALTPRTCOPY: 446, ANALYZER: 1126, AND: 1005, ANY: 158, APLKYBD: 391, APLTEXT: 393,
112
+ APPC: 124, APPCPARALLEL: 374, APPCSINGLE: 373, APPEND: 1036, APPLICATION: 559, APPLID: 303,
113
+ APPLNAME: 338, ASACTL: 224, ASCII7: 616, ASCII8: 617, ASRUNTRAN: 1209, ASSEMBLER: 150,
114
+ ASSERTED: 1104, ASYNCHRONOUS: 570, ASYNCSERVICE: 1213, ATI: 75, ATOM: 1119, ATOMSERVICE: 1179,
115
+ ATTACH: 576, ATTENTION: 524, ATTLSAWARE: 1205, AUDALARM: 395, AUTOACTIVE: 630, AUTOARCH: 262,
116
+ AUTOAUTH: 1095, AUTOCONN: 170, AUTOINACTIVE: 631, AUTOINIT: 284, AUTOINSTALL: 1140, AUTOPAGE: 80,
117
+ AUTOPAGEABLE: 80, AUTOREGISTER: 1094, AUTOSTART: 618, AUTOTERMID: 1120, AUXILIARY: 247,
118
+ AUXPAUSE: 313, AUXSTART: 312, AUXSTOP: 314, AVAILABLE: 95, AWARE: 1256, BACKOUT: 192,
119
+ BACKTRANS: 397, BACKUPNONBWO: 800, BASE: 10, BASE64: 50, BASEAPI: 1052, BASESPACE: 664,
120
+ BASICAUTH: 1092, BDAM: 2, BEGINSESSION: 510, BELOW: 159, BGAM: 63, BINARY: 1038, BINIT: 283,
121
+ BIT: 1020, BLK: 47, BLOCKED: 16, BOTH: 1100, BRIDGE: 935, BROWSABLE: 39, BSAM: 61, BTAM: 62,
122
+ BUNDLE: 1180, BUSY: 612, C: 149, CACHE: 791, CANCEL: 526, CANCELLED: 624, CANCELLING: 1025,
123
+ CAPTURESPEC: 1195, CATEGORY: 474, CBE: 582, CBER: 581, CCE: 583, CD: 491, CEDF: 370,
124
+ CERTIFICAUTH: 1093, CERTUSER: 1061, CFE: 584, CFTABLE: 833, CGROUP: 902, CHANNEL: 1047,
125
+ CHAR: 1019, CHECK: 1241, CHUNKEND: 737, CHUNKNO: 735, CHUNKYES: 736, CICS: 660, CICSAPI: 1052,
125
126
  CICSDATAKEY: 379, CICSECURITY: 195, CICSEXECKEY: 381, CICSTABLE: 101, CKOPEN: 1055,
126
127
  CLASSCACHE: 1075, CLEAR: 640, CLICONVERT: 743, CLIENT: 1122, CLIENTAUTH: 1032, CLIENTCERT: 1087,
127
128
  CLOSE: 741, CLOSED: 19, CLOSEFAILED: 349, CLOSELEAVE: 261, CLOSEREQ: 22, CLOSEREQUEST: 22,
128
129
  CLOSING: 21, CLOUD: 848, CMDPROT: 673, CMDSECEXT: 207, CMDSECNO: 205, CMDSECYES: 207, COBOL: 151,
129
130
  COBOLII: 375, COLD: 788, COLDACQ: 72, COLDQUERY: 433, COLDSTART: 266, COLLECTION: 473, COLOR: 399,
130
131
  COMMAREA: 1048, COMMIT: 208, COMMITFAIL: 792, COMPAT: 107, COMPLETE: 1026, COMPOSITE: 1003,
131
- COMPRESS: 1130, CONFFREE: 82, CONFRECEIVE: 83, CONFRECV: 83, CONFSEND: 84, CONNECT: 903,
132
- CONNECTED: 690, CONNECTING: 904, CONNECTION: 755, CONSISTENT: 723, CONSOLE: 66, CONTAINER: 869,
133
- CONTENTION: 836, CONTEXT: 574, CONTROLSHUT: 623, CONVERSE: 600, CONVIDLE: 518, COORDINATOR: 770,
134
- COPID: 908, COPY: 401, CORBA: 1101, CORBASERVER: 1141, CPLUSPLUS: 148, CREATE: 67, CREATESPI: 844,
135
- CRITICAL: 11, CSDAPI: 840, CSDBATCH: 841, CSIGN: 905, CTERM: 906, CTLGALL: 632, CTLGMODIFY: 633,
136
- CTLGNONE: 634, CTRLABLE: 56, CTX: 907, CURRENT: 260, CURRENTPGM: 870, CUSERID: 909, CUSTOM: 579,
137
- DAE: 684, DAEOPT: 684, DATA: 508, DATASET: 756, DATASETFULL: 793, DATASTREAM: 543, DB2CONN: 1142,
138
- DB2ENTRY: 1143, DB2TRAN: 1184, DBTRAN: 1184, DEADLOCK: 794, DEBUG: 1082, DEC: 46, DEFAULT: 198,
139
- DEFAULTUSER: 1070, DEFINITION: 990, DEFRESP1: 497, DEFRESP1OR2: 528, DEFRESP2: 498, DEFRESP3: 499,
140
- DELAY: 637, DELETABLE: 43, DELETE: 292, DELETEFAIL: 520, DELEXITERROR: 795, DEREGERROR: 679,
141
- DEREGISTERED: 678, DEST: 235, DISABLED: 24, DISABLEDHOST: 1125, DISABLING: 25, DISCARDFAIL: 513,
142
- DISCARDING: 1118, DISCONNING: 910, DISCREQ: 444, DISK1: 252, DISK2: 253, DISK2PAUSE: 254,
143
- DISPATCHABLE: 228, DISPATCHER: 1144, DJAR: 1189, DOCDELETE: 295, DOCTEMPLATE: 1145,
144
- DOESNOTEQUAL: 861, DOESNOTEXIST: 872, DOESNOTSTART: 862, DORMANT: 1024, DPLSUBSET: 383,
145
- DRAINING: 619, DREPAPI: 843, DREPBATCH: 845, DS3270: 615, DUALCASE: 403, DUMMY: 781,
146
- DUPERROR: 106, DUPNOREPLACE: 105, DUPREPLACE: 104, DYNAMIC: 178, EB: 490, EBCDIC: 1039, ECI: 1098,
147
- EJB: 1102, EMERGENCY: 268, EMPTY: 210, EMPTYREQ: 31, ENABLED: 23, ENABLING: 51, ENDAFFINITY: 790,
132
+ COMPRESS: 1130, CONFFREE: 82, CONFIG: 1232, CONFRECEIVE: 83, CONFRECV: 83, CONFSEND: 84,
133
+ CONNECT: 903, CONNECTED: 690, CONNECTING: 904, CONNECTION: 755, CONSISTENT: 723, CONSOLE: 66,
134
+ CONTAINER: 869, CONTENTION: 836, CONTEXT: 574, CONTROLSHUT: 623, CONVERSE: 600, CONVIDLE: 518,
135
+ COORDINATOR: 770, COPID: 908, COPY: 401, CORBA: 1101, CORBASERVER: 1141, CPLUSPLUS: 148,
136
+ CREATE: 67, CREATESPI: 844, CRITICAL: 11, CSDAPI: 840, CSDBATCH: 841, CSIGN: 905, CTERM: 906,
137
+ CTLGALL: 632, CTLGMODIFY: 633, CTLGNONE: 634, CTRLABLE: 56, CTX: 907, CURRENT: 260,
138
+ CURRENTPGM: 870, CUSERID: 909, CUSTOM: 579, DAE: 684, DAEOPT: 684, DATA: 508, DATASET: 756,
139
+ DATASETFULL: 793, DATASTREAM: 543, DB2CONN: 1142, DB2ENTRY: 1143, DB2TRAN: 1184, DBTRAN: 1184,
140
+ DEADLOCK: 794, DEBUG: 1082, DEC: 46, DEFAULT: 198, DEFAULTUSER: 1070, DEFINITION: 990,
141
+ DEFRESP1: 497, DEFRESP1OR2: 528, DEFRESP2: 498, DEFRESP3: 499, DELAY: 637, DELETABLE: 43,
142
+ DELETE: 292, DELETEFAIL: 520, DELEXITERROR: 795, DEREGERROR: 679, DEREGISTERED: 678, DEST: 235,
143
+ DIAGNOSTICS: 1231, DISABLED: 24, DISABLEDHOST: 1125, DISABLING: 25, DISCARD: 1254,
144
+ DISCARDFAIL: 513, DISCARDING: 1118, DISCONNECT: 1247, DISCONNING: 910, DISCOVER: 1252,
145
+ DISCREQ: 444, DISK1: 252, DISK2: 253, DISK2PAUSE: 254, DISPATCHABLE: 228, DISPATCHER: 1144,
146
+ DJAR: 1189, DOCDELETE: 295, DOCTEMPLATE: 1145, DOESNOTEQUAL: 861, DOESNOTEXIST: 872,
147
+ DOESNOTSTART: 862, DORMANT: 1024, DPLSUBSET: 383, DRAINING: 619, DREPAPI: 843, DREPBATCH: 845,
148
+ DS3270: 615, DSIE: 1206, DUALCASE: 403, DUMMY: 781, DUMP: 1223, DUMPCODE: 1218, DUPERROR: 106,
149
+ DUPNOREPLACE: 105, DUPREPLACE: 104, DYNAMIC: 178, EB: 490, EBCDIC: 1039, ECI: 1098, EJB: 1102,
150
+ EMERGENCY: 268, EMPTY: 210, EMPTYREQ: 31, ENABLED: 23, ENABLING: 51, ENDAFFINITY: 790,
148
151
  ENQMODEL: 1188, ENQUEUE: 1146, ENTRYPOINT: 993, EPADAPTER: 1196, EPADAPTERSET: 1200, EQUAL: 911,
149
152
  EQUALS: 863, ESDS: 5, EVENT: 334, EVENTBINDING: 1191, EVENTPROCESS: 1192, EVENTUAL: 3,
150
153
  EXCEPT: 332, EXCEPTRESP: 523, EXCI: 650, EXCTL: 48, EXECENQ: 751, EXECENQADDR: 752,
@@ -155,116 +158,124 @@ export const DFHVALUE = {
155
158
  FIXED: 12, FLUSH: 783, FMH: 502, FMHPARM: 385, FOPEN: 272, FORCE: 342, FORCECANCEL: 655,
156
159
  FORCECLOSE: 351, FORCECLOSING: 353, FORCED: 1013, FORCEPURGE: 237, FORCLOSING: 353,
157
160
  FORMATEDF: 606, FORMATTED: 542, FORMFEED: 407, FOUTPUT: 271, FREE: 85, FREEING: 94, FROMEPR: 850,
158
- FULL: 212, FULLAPI: 384, FULLAUTO: 1073, FWDRECOVABLE: 354, GENERIC: 651, GET: 748, GMT: 604,
159
- GOHIGHERTHAN: 873, GOINGOUT: 172, GOLOWERTHAN: 874, GREATERTHAN: 864, GROUP: 913,
160
- GROUPRESYNC: 947, GRPLIST: 842, GTFSTART: 317, GTFSTOP: 318, HEAD: 750, HEURBACKOUT: 758,
161
- HEURCOMMIT: 757, HEX: 45, HFORM: 409, HFSFILE: 1040, HIGH: 914, HILIGHT: 413, HOLD: 163,
162
- HOME: 1103, HOSTNAME: 302, HTTP: 1096, HTTPNO: 1034, HTTPS: 1029, HTTPYES: 1033, IDENTIFY: 1074,
163
- IDNTY: 328, IGNORE: 1, IGNORERR: 816, IIOP: 1097, IMMCLOSE: 350, IMMCLOSING: 352, IMMEDIATE: 2,
164
- IMMQUIESCED: 706, IMPORT: 992, INACTIVE: 378, INBOUND: 547, INCOMPLETE: 1014, INDEXRECFULL: 796,
165
- INDIRECT: 122, INDOUBT: 620, INFLIGHT: 621, INITCOMPLETE: 628, INITIAL: 789, INITING: 1112,
166
- INOUT: 532, INPUT: 226, INSERVICE: 73, INSTALLED: 550, INSTALLFAIL: 512, INTERNAL: 1058,
167
- INTRA: 222, INTSTART: 310, INTSTOP: 311, INVALID: 359, IOERROR: 797, IPCONN: 1176, IPECI: 936,
168
- IPIC: 1089, IPV4: 300, IPV6: 301, IRC: 121, ISNOTGREATER: 865, ISNOTLESS: 866, ISOLATE: 658,
169
- JAVA: 147, JOURNALMODEL: 1185, JOURNALNAME: 1147, JOURNALNUM: 1148, JVM: 1080, JVMPOOL: 1149,
170
- JVMPROFILE: 1150, JVMPROGRAM: 1151, JVMSERVER: 1193, KATAKANA: 415, KEEP: 786, KERBEROS: 1105,
171
- KEYED: 8, KILL: 232, KSDS: 6, LCKSTRUCFULL: 832, LE370: 377, LEAVE: 811, LESSTHAN: 867,
172
- LIBRARY: 1177, LIC: 493, LIGHTPEN: 417, LINK: 577, LOAD: 834, LOC24: 159, LOC31: 158, LOCAL: 605,
173
- LOCKING: 837, LOG: 54, LOGICAL: 216, LOGREPLICATE: 1198, LOGTERM: 269, LOSE: 544, LOW: 915,
174
- LPA: 165, LSRPOOL: 1152, LU61: 125, LUP: 541, LUSTAT: 525, LUW: 246, MAIN: 248, MAP: 155,
175
- MAPSET: 155, MCHCTL: 241, MDT: 506, MESSAGEID: 1197, METADATA: 857, MIXED: 403, MNPS: 999,
176
- MOD: 813, MODE24: 190, MODE31: 191, MODEANY: 189, MODEL: 370, MONITOR: 1153, MORE: 492,
177
- MQCONN: 1175, MRO: 938, MSRCONTROL: 419, MTOM: 460, MTOMNOXOP: 469, MVS: 780, MVSTCB: 1154,
178
- N906: 931, N906D: 921, NEGATIVE: 530, NEW: 28, NEWCOPY: 167, NEWSESSION: 485, NOALARM: 500,
179
- NOALTPRTCOPY: 447, NOANALYZER: 1127, NOAPLKYBD: 392, NOAPLTEXT: 394, NOAPPEND: 1037,
180
- NOAPPLNAME: 339, NOATI: 76, NOAUDALARM: 396, NOAUTHENTIC: 1091, NOAUTO: 1071, NOAUTOARCH: 263,
181
- NOBACKOUT: 193, NOBACKTRANS: 398, NOCEDF: 371, NOCLASSCACHE: 1076, NOCLEAR: 641,
161
+ FULL: 212, FULLAPI: 384, FULLAUTO: 1073, FWDRECOVABLE: 354, GATHER: 1224, GENERIC: 651, GET: 748,
162
+ GMT: 604, GOHIGHERTHAN: 873, GOINGOUT: 172, GOLOWERTHAN: 874, GREATERTHAN: 864, GROUP: 913,
163
+ GROUPRESYNC: 947, GRPLIST: 842, GTFSTART: 317, GTFSTOP: 318, HEAD: 750, HEAP: 1229,
164
+ HEURBACKOUT: 758, HEURCOMMIT: 757, HEX: 45, HFORM: 409, HFSFILE: 1040, HIGH: 914, HILIGHT: 413,
165
+ HOLD: 163, HOME: 1103, HOSTNAME: 302, HTTP: 1096, HTTPNO: 1034, HTTPS: 1029, HTTPYES: 1033,
166
+ IDENTIFY: 1074, IDNTY: 328, IGNORE: 1, IGNORERR: 816, IIOP: 1097, IMMCLOSE: 350, IMMCLOSING: 352,
167
+ IMMEDIATE: 2, IMMQUIESCED: 706, IMPORT: 992, INACTIVE: 378, INBOUND: 547, INCOMPLETE: 1014,
168
+ INDEXRECFULL: 796, INDIRECT: 122, INDOUBT: 620, INFLIGHT: 621, INITCOMPLETE: 628, INITIAL: 789,
169
+ INITING: 1112, INITPROP: 1261, INOUT: 532, INPUT: 226, INSERVICE: 73, INSTALLED: 550,
170
+ INSTALLFAIL: 512, INTERNAL: 1058, INTRA: 222, INTSTART: 310, INTSTOP: 311, INVALID: 359,
171
+ IOERROR: 797, IPCONN: 1176, IPECI: 936, IPIC: 1089, IPV4: 300, IPV6: 301, IRC: 121,
172
+ ISNOTGREATER: 865, ISNOTLESS: 866, ISOLATE: 658, JAVA: 147, JAVACORE: 1228, JMS: 1239,
173
+ JOURNALMODEL: 1185, JOURNALNAME: 1147, JOURNALNUM: 1148, JVM: 1080, JVMPOOL: 1149,
174
+ JVMPROFILE: 1150, JVMPROGRAM: 1151, JVMSERVER: 1193, JWT: 1217, KATAKANA: 415, KEEP: 786,
175
+ KERBEROS: 1105, KEYED: 8, KILL: 232, KSDS: 6, LCKSTRUCFULL: 832, LE370: 377, LEAVE: 811,
176
+ LESSTHAN: 867, LIBERTY: 1222, LIBRARY: 1177, LIC: 493, LIGHTPEN: 417, LINK: 577, LOAD: 834,
177
+ LOC24: 159, LOC31: 158, LOCAL: 605, LOCKING: 837, LOG: 54, LOGICAL: 216, LOGREPLICATE: 1198,
178
+ LOGTERM: 269, LOSE: 544, LOW: 915, LPA: 165, LSRPOOL: 1152, LU61: 125, LUP: 541, LUSTAT: 525,
179
+ LUW: 246, MAIN: 248, MAP: 155, MAPSET: 155, MCHCTL: 241, MDT: 506, MESSAGE: 1245, MESSAGEID: 1197,
180
+ METADATA: 857, MIXED: 403, MNPS: 999, MOD: 813, MODE24: 190, MODE31: 191, MODEANY: 189,
181
+ MODEL: 370, MODIFY: 1242, MONITOR: 1153, MORE: 492, MQCONN: 1175, MQMONITOR: 1207, MRO: 938,
182
+ MSRCONTROL: 419, MTOM: 460, MTOMNOXOP: 469, MVS: 780, MVSTCB: 1154, N906: 931, N906D: 921,
183
+ NEGATIVE: 530, NEW: 28, NEWCOPY: 167, NEWSESSION: 485, NOALARM: 500, NOALTPRTCOPY: 447,
184
+ NOANALYZER: 1127, NOAPLKYBD: 392, NOAPLTEXT: 394, NOAPPEND: 1037, NOAPPLNAME: 339, NOATI: 76,
185
+ NOAUDALARM: 396, NOAUTHENTIC: 1091, NOAUTO: 1071, NOAUTOARCH: 263, NOAUTOSTART: 1208,
186
+ NOBACKOUT: 193, NOBACKTRANS: 398, NOCEDF: 371, NOCHECK: 1240, NOCLASSCACHE: 1076, NOCLEAR: 641,
182
187
  NOCLICONVERT: 744, NOCLOSE: 742, NOCMDPROT: 674, NOCOLOR: 400, NOCOMPAT: 108, NOCOMPRESS: 1131,
183
188
  NOCONNECT: 916, NOCONV: 556, NOCONVERSE: 601, NOCONVERT: 734, NOCOPY: 402, NOCREATE: 68,
184
- NOCTL: 223, NODAE: 685, NODAEOPT: 685, NODE: 1155, NODEBUG: 1083, NODISCREQ: 445,
185
- NODOCDELETE: 296, NODUALCASE: 404, NOEMPTYREQ: 32, NOEVENT: 335, NOEXCEPT: 333, NOEXCTL: 49,
186
- NOEXIT: 917, NOEXITTRACE: 363, NOEXTENDEDDS: 406, NOFMH: 503, NOFMHPARM: 386, NOFORCE: 1054,
187
- NOFORMATEDF: 607, NOFORMFEED: 408, NOHFORM: 410, NOHILIGHT: 414, NOHOLD: 164, NOIDNTY: 329,
188
- NOINCONVERT: 745, NOISOLATE: 657, NOJVM: 1081, NOKATAKANA: 416, NOKEEP: 787, NOLIGHTPEN: 418,
189
- NOLOAD: 835, NOLOG: 55, NOLOGREPLICA: 1199, NOLOSTLOCKS: 710, NOMDT: 507, NOMSGJRNL: 531,
190
- NOMSRCONTROL: 420, NOMTOM: 461, NOMTOMNOXOP: 470, NONAUTOCONN: 171, NONCICS: 661,
191
- NONCRITICAL: 1090, NONE: 496, NONLE370: 1084, NONRESIDENT: 1202, NONTRANS: 572, NOOBFORMAT: 422,
192
- NOOBOPERID: 388, NOOUTCONVERT: 746, NOOUTLINE: 424, NOPARTITIONS: 426, NOPERF: 331,
193
- NOPHASEOUT: 1110, NOPRESETSEC: 243, NOPRINTADAPT: 428, NOPROGSYMBOL: 430, NOPRTCOPY: 449,
194
- NOPS: 997, NOQUERY: 432, NORECOVDATA: 700, NOREENTPROT: 681, NORELEASE: 918, NORELREQ: 443,
189
+ NOCTL: 223, NODAE: 685, NODAEOPT: 685, NODE: 1155, NODEBUG: 1083, NODEJSAPP: 1215,
190
+ NODISCOVER: 1253, NODISCREQ: 445, NODOCDELETE: 296, NODUALCASE: 404, NOEMIT: 1262, NOEMPTYREQ: 32,
191
+ NOEVENT: 335, NOEXCEPT: 333, NOEXCTL: 49, NOEXIT: 917, NOEXITTRACE: 363, NOEXTENDEDDS: 406,
192
+ NOFMH: 503, NOFMHPARM: 386, NOFORCE: 1054, NOFORMATEDF: 607, NOFORMFEED: 408, NOHFORM: 410,
193
+ NOHILIGHT: 414, NOHOLD: 164, NOIDNTY: 329, NOINCONVERT: 745, NOISOLATE: 657, NOJVM: 1081,
194
+ NOKATAKANA: 416, NOKEEP: 787, NOLIGHTPEN: 418, NOLOAD: 835, NOLOG: 55, NOLOGREPLICA: 1199,
195
+ NOLOSTLOCKS: 710, NOMDT: 507, NOMSGJRNL: 531, NOMSRCONTROL: 420, NOMTOM: 461, NOMTOMNOXOP: 470,
196
+ NONAUTOCONN: 171, NONCICS: 661, NONCRITICAL: 1090, NONE: 496, NONLE370: 1084, NONRESIDENT: 1202,
197
+ NONTRANS: 572, NOOBFORMAT: 422, NOOBOPERID: 388, NOOTELTRACE: 1258, NOOUTCONVERT: 746,
198
+ NOOUTLINE: 424, NOPARTITIONS: 426, NOPERF: 331, NOPHASEOUT: 1110, NOPRESETSEC: 243,
199
+ NOPRINTADAPT: 428, NOPROGSYMBOL: 430, NOPROP: 1259, NOPRTCOPY: 449, NOPS: 997, NOQUERY: 432,
200
+ NORECOVDATA: 700, NOREENTPROT: 681, NORELEASE: 918, NORELREQ: 443, NOREPLICATOR: 1212,
195
201
  NORESRCE: 337, NORESYNC: 934, NORETAINED: 711, NOREUSE: 294, NORMAL: 1016, NORMALBKOUT: 356,
196
202
  NORMALRESP: 522, NORMI: 775, NOROLLBACK: 919, NOSECURITY: 196, NOSENDMTOM: 464, NOSHUTDOWN: 289,
197
203
  NOSOSI: 435, NOSPI: 694, NOSRVCONVERT: 739, NOSSL: 1031, NOSTSN: 487, NOSWITCH: 285,
198
204
  NOSYNCPOINT: 603, NOSYSDUMP: 185, NOSYSLOG: 784, NOTADDABLE: 42, NOTALLOWED: 327,
199
- NOTALTERABLE: 53, NOTAPPLIC: 1, NOTASKSTART: 608, NOTBROWSABLE: 40, NOTBRWBLE: 40, NOTBUSY: 613,
200
- NOTCDEB: 495, NOTCONNECTED: 691, NOTCTRLABLE: 57, NOTDEFINED: 659, NOTDELBLE: 44,
205
+ NOTALTERABLE: 53, NOTAPPLIC: 1, NOTASKSTART: 608, NOTAWARE: 1257, NOTBROWSABLE: 40, NOTBRWBLE: 40,
206
+ NOTBUSY: 613, NOTCDEB: 495, NOTCONNECTED: 691, NOTCTRLABLE: 57, NOTDEFINED: 659, NOTDELBLE: 44,
201
207
  NOTDELETABLE: 44, NOTDYNAMIC: 1021, NOTEMPTY: 211, NOTERMINAL: 214, NOTEXTENDED: 1129,
202
208
  NOTEXTKYBD: 437, NOTEXTPRINT: 439, NOTFIRED: 1000, NOTFWDRCVBLE: 361, NOTHOTPOOL: 1066,
203
209
  NOTINBOUND: 546, NOTINIT: 376, NOTINSTALLED: 551, NOTKEYED: 9, NOTLPA: 166, NOTPENDING: 127,
204
210
  NOTPURGEABLE: 161, NOTRANDUMP: 187, NOTREADABLE: 36, NOTREADY: 259, NOTRECOVABLE: 30,
205
- NOTREQUIRED: 667, NOTRLS: 721, NOTROUTABLE: 1022, NOTSOS: 669, NOTSUPPORTED: 15,
206
- NOTSUSPENDED: 1027, NOTTABLE: 100, NOTTI: 78, NOTUPDATABLE: 38, NOTUPDBLE: 38, NOTWAIT: 920,
207
- NOUCTRAN: 451, NOUSER: 1011, NOVALIDATION: 441, NOVFORM: 412, NOWAIT: 341, NOWRITE: 275,
208
- NOXOPDIRECT: 466, NOXOPSUPPORT: 468, NOZCPTRACE: 365, NRS: 774, OBFORMAT: 421, OBOPERID: 387,
209
- OBTAINING: 96, OFF: 200, OK: 274, OLD: 26, OLDCOPY: 162, OLDSESSION: 486, ON: 201, OPEN: 18,
210
- OPENAPI: 1053, OPENERROR: 798, OPENING: 20, OPENINPUT: 256, OPENOUTPUT: 257, OPID: 933,
211
- OPTIONAL: 326, OPTIONS: 759, OR: 1006, OTS: 1107, OUTLINE: 423, OUTPUT: 227, OUTSERVICE: 74,
212
- OWNER: 753, PAGEABLE: 79, PARTITIONS: 425, PARTITIONSET: 156, PARTNER: 1182, PATH: 11,
213
- PDSMEMBER: 1035, PENDBEGIN: 558, PENDDATA: 560, PENDFREE: 86, PENDING: 126, PENDINIT: 1113,
214
- PENDPASS: 565, PENDRECEIVE: 87, PENDRELEASE: 562, PENDRESOLVE: 1114, PENDSTART: 561,
215
- PENDSTSN: 557, PENDUNSOL: 564, PERF: 330, PERMANENT: 484, PHASEIN: 168, PHASEOUT: 1111,
216
- PHYSICAL: 215, PIPELINE: 1124, PL1: 152, PLI: 152, POLICYSCOPE: 994, POOL: 922, POSITIVE: 529,
217
- POST: 636, POSTCOMMAND: 697, PRECOMMAND: 696, PRESETSEC: 242, PRIMARY: 110, PRINCIPAL: 199,
218
- PRINTADAPT: 427, PRIVATE: 174, PROCESS: 1010, PROCESSTYPE: 1190, PROFILE: 157, PROGAUTO: 1072,
219
- PROGRAM: 154, PROGRAMDEF: 1178, PROGRAMINIT: 698, PROGSYMBOL: 429, PROTECTED: 504, PROVIDER: 1041,
220
- PRTCOPY: 448, PUBLISH: 1085, PURGE: 236, PURGEABLE: 160, PUT: 749, QR: 1057, QUASIRENT: 1050,
221
- QUEUE: 814, QUIESCED: 707, QUIESCING: 708, READABLE: 35, READBACK: 209, READONLY: 275, READY: 258,
222
- REBUILD: 923, RECEIVE: 88, RECEIVER: 1046, RECONNECT: 924, RECOVDATA: 701, RECOVERABLE: 29,
223
- RECOVERED: 277, RECOVERLOCKS: 712, RECOVERY: 1156, REENTPROT: 680, REFPARMS: 858, REGERROR: 677,
224
- REGION: 575, REGISTERED: 670, REJECT: 815, RELATED: 675, RELEASE: 563, RELEASED: 70,
225
- RELEASING: 549, RELOAD: 1078, RELOADING: 1079, RELREQ: 442, REMLOSTLOCKS: 713, REMOTE: 4,
226
- REMOVE: 276, REMSESSION: 740, REMTABLE: 103, REPEATABLE: 724, REPLYTOEPR: 852, REQCONTEXT: 854,
227
- REQUEST: 249, REQUESTER: 1042, REQUESTMODEL: 1157, REQUIRED: 666, REREAD: 812, RESET: 290,
228
- RESETLOCKS: 714, RESIDENT: 1201, RESOLVED: 347, RESOLVING: 1115, RESPCONTEXT: 855,
211
+ NOTREQUIRED: 667, NOTRLS: 721, NOTROUTABLE: 1022, NOTSHARED: 1238, NOTSOS: 669, NOTSUPPORTED: 15,
212
+ NOTSUSPENDED: 1027, NOTTABLE: 100, NOTTI: 78, NOTUPDATABLE: 38, NOTUPDBLE: 38, NOTUSED: 1248,
213
+ NOTWAIT: 920, NOUCTRAN: 451, NOUSER: 1011, NOVALIDATION: 441, NOVFORM: 412, NOWAIT: 341,
214
+ NOWRITE: 275, NOXOPDIRECT: 466, NOXOPSUPPORT: 468, NOZCPTRACE: 365, NRS: 774, OBFORMAT: 421,
215
+ OBOPERID: 387, OBTAINING: 96, OFF: 200, OK: 274, OLD: 26, OLDCOPY: 162, OLDSESSION: 486, ON: 201,
216
+ OPEN: 18, OPENAPI: 1053, OPENERROR: 798, OPENING: 20, OPENINPUT: 256, OPENOUTPUT: 257, OPID: 933,
217
+ OPTIONAL: 326, OPTIONS: 759, OR: 1006, OSGI: 1221, OTELTRACE: 1263, OTS: 1107, OUTLINE: 423,
218
+ OUTPUT: 227, OUTSERVICE: 74, OVERRIDE: 1236, OWNER: 753, PAGEABLE: 79, PARTITIONS: 425,
219
+ PARTITIONSET: 156, PARTNER: 1182, PATCH: 1220, PATH: 11, PAUSED: 1233, PDSMEMBER: 1035,
220
+ PENDBEGIN: 558, PENDDATA: 560, PENDFREE: 86, PENDING: 126, PENDINIT: 1113, PENDPASS: 565,
221
+ PENDRECEIVE: 87, PENDRELEASE: 562, PENDRESOLVE: 1114, PENDSTART: 561, PENDSTSN: 557,
222
+ PENDUNSOL: 564, PERF: 330, PERMANENT: 484, PHASEIN: 168, PHASEOUT: 1111, PHYSICAL: 215,
223
+ PIPELINE: 1124, PL1: 152, PLI: 152, POLICY: 1243, POLICYRULE: 1244, POLICYSCOPE: 994, POOL: 922,
224
+ POSITIVE: 529, POST: 636, POSTCOMMAND: 697, PRECOMMAND: 696, PRESETSEC: 242, PRIMARY: 110,
225
+ PRINCIPAL: 199, PRINTADAPT: 427, PRIVATE: 174, PROCESS: 1010, PROCESSTYPE: 1190, PROFILE: 157,
226
+ PROGAUTO: 1072, PROGRAM: 154, PROGRAMDEF: 1178, PROGRAMINIT: 698, PROGSYMBOL: 429, PROPONLY: 1260,
227
+ PROTECTED: 504, PROVIDER: 1041, PRTCOPY: 448, PUBLISH: 1085, PURGE: 236, PURGEABLE: 160, PUT: 749,
228
+ QR: 1057, QUASIRENT: 1050, QUEUE: 814, QUIESCED: 707, QUIESCING: 708, READABLE: 35, READBACK: 209,
229
+ READONLY: 275, READY: 258, REBUILD: 923, RECEIVE: 88, RECEIVER: 1046, RECONNECT: 924,
230
+ RECOVDATA: 701, RECOVERABLE: 29, RECOVERED: 277, RECOVERLOCKS: 712, RECOVERY: 1156,
231
+ REENTPROT: 680, REFPARMS: 858, REFRESH: 1227, REFRESHPKGS: 1225, REGERROR: 677, REGION: 575,
232
+ REGISTERED: 670, REJECT: 815, RELATED: 675, RELEASE: 563, RELEASED: 70, RELEASING: 549,
233
+ RELOAD: 1078, RELOADING: 1079, RELREQ: 442, REMLOSTLOCKS: 713, REMOTE: 4, REMOVE: 276,
234
+ REMSESSION: 740, REMTABLE: 103, REPEATABLE: 724, REPLICATOR: 1211, REPLYTOEPR: 852,
235
+ REQCONTEXT: 854, REQUEST: 249, REQUESTER: 1042, REQUESTMODEL: 1157, REQUIRED: 666, REREAD: 812,
236
+ RESET: 290, RESETLOCKS: 714, RESIDENT: 1201, RESOLVED: 347, RESOLVING: 1115, RESPCONTEXT: 855,
229
237
  RESPECTED: 1109, RESRCE: 336, RESSECEXT: 204, RESSECINT: 203, RESSECNO: 202, RESSECYES: 204,
230
- RESYNC: 702, RETAINED: 715, RETRACT: 1086, RETRY: 716, REUSE: 293, REVERTED: 264, RFC1123: 646,
231
- RFC3339: 647, RLS: 720, RLSACTIVE: 730, RLSGONE: 799, RLSINACTIVE: 731, RLSSERVER: 761, RMI: 771,
232
- ROLLBACK: 89, ROUTABLE: 1023, ROUTE: 638, RPG: 153, RRCOMMITFAIL: 830, RRDS: 7, RRINDOUBT: 831,
233
- RRMS: 1063, RRSUR: 939, RTR: 527, RU: 494, RUNNING: 229, RZINSTOR: 940, SAMESENDMTOM: 462,
234
- SCAN: 1088, SCHEDULER: 941, SCS: 614, SECONDINIT: 626, SECUSER: 1060, SEND: 90, SENDER: 1045,
235
- SENDMTOM: 463, SERVER: 1123, SERVICE: 475, SESSION: 372, SESSIONFAIL: 517, SESSIONLOST: 516,
238
+ RESUMED: 1234, RESYNC: 702, RETAINED: 715, RETRACT: 1086, RETRY: 716, REUSE: 293, REVERTED: 264,
239
+ RFC1123: 646, RFC3339: 647, RLS: 720, RLSACTIVE: 730, RLSGONE: 799, RLSINACTIVE: 731,
240
+ RLSSERVER: 761, RMI: 771, ROLLBACK: 89, ROUTABLE: 1023, ROUTE: 638, RPG: 153, RRCOMMITFAIL: 830,
241
+ RRDS: 7, RREPL: 1210, RRINDOUBT: 831, RRMS: 1063, RRSUR: 939, RTR: 527, RU: 494, RUNNING: 229,
242
+ RZINSTOR: 940, SAMESENDMTOM: 462, SCAN: 1088, SCHEDULER: 941, SCS: 614, SECERROR: 1214,
243
+ SECONDINIT: 626, SECURITY: 1216, SECUSER: 1060, SEND: 90, SENDER: 1045, SENDMTOM: 463,
244
+ SERVER: 1123, SERVERDUMP: 1226, SERVICE: 475, SESSION: 372, SESSIONFAIL: 517, SESSIONLOST: 516,
236
245
  SESSIONS: 1187, SETFAIL: 514, SHARE: 27, SHARED: 173, SHUNTED: 762, SHUTDISABLED: 645,
237
246
  SHUTDOWN: 288, SHUTENABLED: 644, SIGN: 925, SIGNEDOFF: 245, SIGNEDON: 244, SINGLEOFF: 324,
238
- SINGLEON: 323, SKIP: 810, SMF: 255, SNPS: 998, SOAP: 1044, SOCKET: 942, SOMEAVAIL: 1204, SOS: 668,
239
- SOSABOVE: 683, SOSBELOW: 682, SOSI: 434, SPECIAL: 98, SPECIFIC: 652, SPECTRACE: 177, SPI: 693,
240
- SPRSTRACE: 175, SQLCODE: 926, SRVCONVERT: 738, SSL: 1030, STANDARD: 97, STANDBY: 629,
241
- STANTRACE: 176, START: 635, STARTED: 609, STARTING: 772, STARTSWITH: 868, STARTTERM: 943,
242
- STARTUP: 180, STATIC: 179, STATS: 1158, STOPPED: 610, STOPPING: 348, STORAGE: 1159,
243
- STREAMNAME: 1160, STSN: 509, STSNSET: 488, STSNTEST: 489, SUBORDINATE: 773, SUBPOOL: 1161,
244
- SUBSPACE: 663, SUMMUNLIKE: 566, SUPPORTED: 1106, SURROGATE: 371, SUSPENDED: 231, SWITCH: 188,
245
- SWITCHALL: 287, SWITCHING: 225, SWITCHNEXT: 286, SYNCFREE: 91, SYNCHRONOUS: 571, SYNCPOINT: 602,
246
- SYNCRECEIVE: 92, SYNCRECV: 92, SYNCSEND: 93, SYSCONNECT: 653, SYSDUMP: 184, SYSDUMPCODE: 1162,
247
- SYSLOG: 785, SYSPLEX: 656, SYSTEM: 643, SYSTEMOFF: 320, SYSTEMON: 319, T3278M2: 533, T3278M3: 534,
248
- T3278M4: 535, T3278M5: 536, T3279M2: 537, T3279M3: 538, T3279M4: 539, T3279M5: 540, TABLE: 847,
249
- TABLEMGR: 1163, TAKEOVER: 111, TAPE1: 250, TAPE2: 251, TASK: 233, TASKSTART: 611,
247
+ SINGLEON: 323, SKIP: 810, SMF: 255, SNAPTRACE: 1230, SNPS: 998, SOAP: 1044, SOCKET: 942,
248
+ SOMEAVAIL: 1204, SOS: 668, SOSABOVE: 683, SOSBELOW: 682, SOSI: 434, SPECIAL: 98, SPECIFIC: 652,
249
+ SPECTRACE: 177, SPI: 693, SPRSTRACE: 175, SQLCODE: 926, SRRACTIVE: 1250, SRRINACTIVE: 1251,
250
+ SRVCONVERT: 738, SSL: 1030, STACKTRACE: 1237, STANDARD: 97, STANDBY: 629, STANTRACE: 176,
251
+ START: 635, STARTED: 609, STARTING: 772, STARTSWITH: 868, STARTTERM: 943, STARTUP: 180,
252
+ STATIC: 179, STATS: 1158, STOPPED: 610, STOPPING: 348, STORAGE: 1159, STREAMNAME: 1160, STSN: 509,
253
+ STSNSET: 488, STSNTEST: 489, SUBORDINATE: 773, SUBPOOL: 1161, SUBSPACE: 663, SUMMUNLIKE: 566,
254
+ SUPPORTED: 1106, SURROGATE: 371, SUSPENDED: 231, SWITCH: 188, SWITCHALL: 287, SWITCHING: 225,
255
+ SWITCHNEXT: 286, SYNCFREE: 91, SYNCHRONOUS: 571, SYNCPOINT: 602, SYNCRECEIVE: 92, SYNCRECV: 92,
256
+ SYNCSEND: 93, SYSCONNECT: 653, SYSDUMP: 184, SYSDUMPCODE: 1162, SYSLOG: 785, SYSPLEX: 656,
257
+ SYSTEM: 643, SYSTEMOFF: 320, SYSTEMON: 319, T3278M2: 533, T3278M3: 534, T3278M4: 535,
258
+ T3278M5: 536, T3279M2: 537, T3279M3: 538, T3279M4: 539, T3279M5: 540, TABLE: 847, TABLEMGR: 1163,
259
+ TABLEONLY: 1219, TAKEOVER: 111, TAPE1: 250, TAPE2: 251, TASK: 233, TASKEND: 1264, TASKSTART: 611,
250
260
  TASKSUBPOOL: 1164, TCAM: 64, TCAMSNA: 65, TCEXITALL: 366, TCEXITALLOFF: 369, TCEXITNONE: 368,
251
261
  TCEXITSYSTEM: 367, TCLASS: 239, TCPIP: 802, TCPIPSERVICE: 1166, TDQ: 767, TDQUEUE: 767,
252
262
  TEMPLATENAME: 1168, TEMPORARY: 483, TERM: 234, TERMINAL: 213, TERMINATE: 1077, TEXTKYBD: 436,
253
263
  TEXTPRINT: 438, THIRDINIT: 627, THREADSAFE: 1051, TIME: 240, TIMEOUT: 511, TIMER: 1004,
254
264
  TOEPR: 851, TPOOL: 932, TPS55M2: 552, TPS55M3: 553, TPS55M4: 554, TPS55M5: 555, TRACE: 760,
255
- TRANCLASS: 1169, TRANDATA: 944, TRANDUMP: 186, TRANDUMPCODE: 1170, TRANIDONLY: 452, TRANS: 573,
256
- TRANSACTION: 1171, TRANSTART: 580, TSMODEL: 1183, TSQ: 768, TSQUEUE: 768, TTI: 77, TWAIT: 927,
257
- TX: 929, TXID: 928, TYPETERM: 1186, UCTRAN: 450, UKOPEN: 1056, UNATTEMPTED: 820, UNAVAILABLE: 672,
258
- UNBLOCKED: 17, UNCOMMITTED: 722, UNCONNECTED: 703, UNDEFINED: 14, UNDETERMINED: 355,
259
- UNENABLED: 33, UNENABLING: 34, UNEXPECTED: 1015, UNEXPIRED: 1018, UNINSTALLED: 548, UNKNOWN: 774,
260
- UNPROTECTED: 505, UNQUIESCED: 709, UNREGISTERED: 671, UNRESOLVED: 1116, UNSOLDATA: 521,
261
- UNUSABLE: 1117, UOW: 246, UPDATABLE: 37, UPDATING: 1049, URIMAP: 1173, URMTERMID: 1121, USER: 642,
262
- USERDATAKEY: 380, USEREXECKEY: 382, USERID: 930, USEROFF: 322, USERON: 321, USERTABLE: 102,
263
- UTC: 1203, VALID: 360, VALIDATION: 440, VARIABLE: 13, VERIFY: 1099, VFORM: 411, VRRDS: 732,
264
- VSAM: 3, VTAM: 60, WAIT: 340, WAITCOMMIT: 763, WAITER: 754, WAITFORGET: 622, WAITING: 765,
265
- WAITRMI: 766, WAITRRMS: 1063, WARMSTART: 267, WBE: 585, WEB: 945, WEBSERVICE: 1174, WIN: 545,
266
- WMQ: 578, XCF: 665, XM: 123, XMLTRANSFORM: 1194, XMRUNTRAN: 946, XNOTDONE: 144, XOK: 143,
267
- XOPDIRECT: 465, XOPSUPPORT: 467, XPLINK: 1068, ZCPTRACE: 364,
265
+ TRAN: 1235, TRANCLASS: 1169, TRANDATA: 944, TRANDUMP: 186, TRANDUMPCODE: 1170, TRANIDONLY: 452,
266
+ TRANS: 573, TRANSACTION: 1171, TRANSTART: 580, TSMODEL: 1183, TSQ: 768, TSQUEUE: 768, TTI: 77,
267
+ TWAIT: 927, TX: 929, TXID: 928, TYPETERM: 1186, UCTRAN: 450, UKOPEN: 1056, UNATTEMPTED: 820,
268
+ UNAVAILABLE: 672, UNBLOCKED: 17, UNCOMMITTED: 722, UNCONNECTED: 703, UNDEFINED: 14,
269
+ UNDETERMINED: 355, UNENABLED: 33, UNENABLING: 34, UNEXPECTED: 1015, UNEXPIRED: 1018,
270
+ UNINSTALLED: 548, UNKNOWN: 774, UNPROTECTED: 505, UNQUIESCED: 709, UNREGISTERED: 671,
271
+ UNRESOLVED: 1116, UNSOLDATA: 521, UNUSABLE: 1117, UOW: 246, UPDATABLE: 37, UPDATING: 1049,
272
+ URIMAP: 1173, URMTERMID: 1121, USED: 1249, USER: 642, USERDATAKEY: 380, USEREXECKEY: 382,
273
+ USERID: 930, USEROFF: 322, USERON: 321, USERTABLE: 102, UTC: 1203, VALID: 360, VALIDATEWARN: 1266,
274
+ VALIDATEYES: 1265, VALIDATION: 440, VARIABLE: 13, VERIFY: 1099, VFORM: 411, VRRDS: 732, VSAM: 3,
275
+ VTAM: 60, WAIT: 340, WAITCOMMIT: 763, WAITER: 754, WAITFORGET: 622, WAITING: 765, WAITRMI: 766,
276
+ WAITRRMS: 1063, WARMSTART: 267, WBE: 585, WEB: 945, WEBSERVICE: 1174, WIN: 545, WLMHEALTH: 1246,
277
+ WMQ: 578, WRITE: 1255, XCF: 665, XM: 123, XMLTRANSFORM: 1194, XMRUNTRAN: 946, XNOTDONE: 144,
278
+ XOK: 143, XOPDIRECT: 465, XOPSUPPORT: 467, XPLINK: 1068, ZCPTRACE: 364,
268
279
  };
269
280
 
270
281
  export const DFHAID_NAMES = `
package/lib/control.mjs CHANGED
@@ -574,7 +574,7 @@ export function buildControl(prog, resolve, { extra = null } = {}) {
574
574
  const body = n.k === 'perform' ? add('call', { st: n.st, range: rangeOf(n.target, n.thru), succ: [step] }) : lowerList(n.body, step, loopCtx);
575
575
  nodes[t].succ = [outcome(t, true, next), outcome(t, false, body)];
576
576
  nodes[head].succ = [n.testAfter ? body : t];
577
- if (n.st.loops) loopHeads.push({ head, step, loops: n.st.loops });
577
+ if (n.st.loops) loopHeads.push({ head, step, loops: n.st.loops, test: t, testAfter: n.testAfter, body: n.k === 'inline' ? n.body : null });
578
578
  return head;
579
579
  }
580
580
  case 'goto': {
@@ -1486,6 +1486,118 @@ export function buildControl(prog, resolve, { extra = null } = {}) {
1486
1486
  // so the pair is joined at whichever of the two checks comes last.
1487
1487
  const outcomeAt = new Map();
1488
1488
  for (const node of nodes) if (node.kind === 'outcome') outcomeAt.set(`${node.test}|${node.value}`, node);
1489
+ // A backward scan for the last byte past the spaces, VARYING I FROM the field's length BY -1 UNTIL
1490
+ // I < 1 OR F(I:1) > SPACE, leaves I from 1 to that length where F > SPACES held as it began: a
1491
+ // field that compares above spaces has a byte above a space, under any collating sequence, and the
1492
+ // scan meets it before 0. The witness dies with a write to F or to anything its subscript reads.
1493
+ const keptOnStep = new Map();
1494
+ const isSpaces = (toks) => toks.length === 1 && (WORD(toks[0], 'SPACE') || WORD(toks[0], 'SPACES') || (toks[0].t === 'lit' && !toks[0].prefix && /^ +$/.test(String(toks[0].v))));
1495
+ const textOf = (toks) => toks.map((t) => (t.t === 'word' ? t.u : String(t.v))).join(' ');
1496
+ // A whole alphanumeric item or table element, with the fields its subscript reads.
1497
+ const scanned = (toks) => {
1498
+ const base = toks[0] && toks[0].t === 'word' ? resolve(toks[0]) : null;
1499
+ if (!base || base.index || base.level === 88 || base.size == null || categoryOf(base)?.k !== 'A' || variableLength(base)) return null;
1500
+ let i = 1;
1501
+ while (i + 1 < toks.length && (WORD(toks[i], 'OF') || WORD(toks[i], 'IN')) && toks[i + 1].t === 'word') i += 2;
1502
+ const reads = [];
1503
+ if (i < toks.length) {
1504
+ if (toks[i].v !== '(' || toks[toks.length - 1].v !== ')') return null;
1505
+ let depth = 0;
1506
+ for (let j = i; j < toks.length; j++) {
1507
+ const t = toks[j];
1508
+ if (t.v === ':') return null;
1509
+ if (t.v === '(' || t.v === ')') { depth += t.v === '(' ? 1 : -1; if (!depth && j < toks.length - 1) return null; continue; }
1510
+ const f = t.t === 'word' ? resolve(t) : null;
1511
+ if (f) reads.push(f.level === 88 && f.parent ? f.parent : f);
1512
+ }
1513
+ }
1514
+ return { base, reads };
1515
+ };
1516
+ // What an outcome says is above spaces (`above`) or only not all spaces.
1517
+ const notBlank = (tree, outcome, out = []) => {
1518
+ if (tree.k === 'not') return notBlank(tree.a, !outcome, out);
1519
+ if ((tree.k === 'and' && outcome) || (tree.k === 'or' && !outcome)) { notBlank(tree.a, outcome, out); notBlank(tree.b, outcome, out); return out; }
1520
+ if (tree.k !== 'rel') return out;
1521
+ const op = outcome ? tree.op : NEGATE[tree.op];
1522
+ if (isSpaces(tree.right) && (op === '>' || op === '<>')) out.push({ toks: tree.left, above: op === '>' });
1523
+ else if (isSpaces(tree.left) && (op === '<' || op === '<>')) out.push({ toks: tree.right, above: op === '<' });
1524
+ return out;
1525
+ };
1526
+ const scans = [];
1527
+ for (const { head, step, test, testAfter, body, loops } of loopHeads) {
1528
+ if (testAfter || !body || loops.length !== 1 || !body.every((el) => el.k === 'stmt' && el.st.verb === 'CONTINUE')) continue;
1529
+ const loop = loops[0];
1530
+ const counter = loop.counter ? resolve(loop.counter) : null;
1531
+ const cap = intCap(counter);
1532
+ const tree = nodes[test].tree;
1533
+ if (cap == null || !tree || tree.k !== 'or' || !loop.by || loop.by.map((t) => t.v).join('') !== '-1') continue;
1534
+ const from = loop.from || [];
1535
+ let start = numberOf(constValue(from));
1536
+ if (start == null && WORD(from[0], 'LENGTH') && WORD(from[1], 'OF')) start = scanned(from.slice(2))?.base.size ?? null;
1537
+ if (start == null || !Number.isInteger(start) || start < 1 || start > cap) continue;
1538
+ const isCounter = (toks) => toks.length === 1 && toks[0].t === 'word' && resolve(toks[0]) === counter;
1539
+ const done = (r) => r.k === 'rel' && isCounter(r.left) && (r.op === '<' ? numberOf(constValue(r.right)) === 1 : (r.op === '<=' || r.op === '=') && numberOf(constValue(r.right)) === 0);
1540
+ const probe = (r) => {
1541
+ if (r.k !== 'rel') return null;
1542
+ const [el, op] = isSpaces(r.right) ? [r.left, r.op] : isSpaces(r.left) ? [r.right, FLIP[r.op]] : [null, null];
1543
+ if (!el || (op !== '>' && op !== '<>') || el.length < 6) return null;
1544
+ const tail = el.slice(-5);
1545
+ if (tail[0].v !== '(' || !isCounter([tail[1]]) || tail[2].v !== ':' || numberOf(constValue([tail[3]])) !== 1 || tail[4].v !== ')') return null;
1546
+ const toks = el.slice(0, -5);
1547
+ const s = scanned(toks);
1548
+ return s && s.base.size === start ? { toks, above: op === '>' } : null;
1549
+ };
1550
+ const p = done(tree.a) ? probe(tree.b) : done(tree.b) ? probe(tree.a) : null;
1551
+ const exit = p && outcomeAt.get(`${test}|true`);
1552
+ if (exit) scans.push({ ...p, counter, start, exit, head, step, at: loop.counter });
1553
+ }
1554
+ // The scan's counter never passes its start: the step runs only once I < 1 has failed, so it
1555
+ // cannot wrap, and the body writes nothing.
1556
+ for (const s of scans) {
1557
+ const key = fieldKey(s.counter);
1558
+ noteField(key, s.counter);
1559
+ const h = { id: checks.length, key, field: s.counter, file: s.at.file, line: s.at.line, tCons: { hi: s.start, hiInc: true }, fCons: null, restricts: false, x: null, t: nFacts++, f: null };
1560
+ checks.push(h);
1561
+ nodes[s.head].genStmt = [...(nodes[s.head].genStmt || []), h.t];
1562
+ keptOnStep.set(s.step, [...(keptOnStep.get(s.step) || []), h.t]);
1563
+ }
1564
+ if (scans.length) {
1565
+ const witness = new Map();
1566
+ const bitFor = (toks, above) => {
1567
+ const k = `${above ? '>' : '<>'}|${textOf(toks)}`;
1568
+ if (witness.has(k)) return witness.get(k);
1569
+ const s = scanned(toks);
1570
+ const bit = nFacts++;
1571
+ for (const f of [s.base, ...s.reads]) {
1572
+ const key = fieldKey(f);
1573
+ noteField(key, f);
1574
+ checks.push({ pseudo: true, key, field: f, x: null, t: bit, f: null });
1575
+ }
1576
+ witness.set(k, bit);
1577
+ return bit;
1578
+ };
1579
+ const wanted = new Set(scans.map((s) => textOf(s.toks)));
1580
+ for (const id of tests) {
1581
+ const n = nodes[id];
1582
+ if (!n.tree) continue;
1583
+ for (const outcome of [true, false]) {
1584
+ for (const nb of notBlank(n.tree, outcome)) {
1585
+ if (!wanted.has(textOf(nb.toks)) || !scanned(nb.toks)) continue;
1586
+ n.gen[String(outcome)].push(bitFor(nb.toks, false));
1587
+ if (nb.above) n.gen[String(outcome)].push(bitFor(nb.toks, true));
1588
+ }
1589
+ }
1590
+ }
1591
+ for (const s of scans) {
1592
+ const bit = witness.get(`${s.above ? '>' : '<>'}|${textOf(s.toks)}`);
1593
+ if (bit == null) continue;
1594
+ const key = fieldKey(s.counter);
1595
+ noteField(key, s.counter);
1596
+ const y = { id: checks.length, key, field: s.counter, file: s.at.file, line: s.at.line, tCons: { numeric: true, lo: 1, loInc: true, hi: s.start, hiInc: true }, fCons: null, restricts: false, x: null, t: nFacts++, f: null, bounds: { lo: 1, hi: s.start } };
1597
+ checks.push(y);
1598
+ (s.exit.implies ||= []).push([bit, y.t]);
1599
+ }
1600
+ }
1489
1601
  const MAX_BOUNDS_PER_RELATION = 8;
1490
1602
  for (const c of [...checks]) {
1491
1603
  if (c.pseudo || c.test == null) continue;
@@ -2049,6 +2161,11 @@ export function buildControl(prog, resolve, { extra = null } = {}) {
2049
2161
  } else if (n.kind === 'step' && stepped.has(id)) {
2050
2162
  keepAcross(n, [{ ...stepped.get(id), sizeError: false }]);
2051
2163
  }
2164
+ if (n.kind === 'step' && keptOnStep.has(id)) {
2165
+ const bits = new Uint32Array(words);
2166
+ for (const b of keptOnStep.get(id)) bits[b >>> 5] |= 1 << (b & 31);
2167
+ (n.keeps ||= []).push({ bits, guards: null });
2168
+ }
2052
2169
  });
2053
2170
 
2054
2171
  // ---- must-analysis ----