This is part of the Heirloom Computing Elastic Batch Platform forum on paas.heirloomcomputing.com.
The implementation of the IBM VSE Job Control Subsystem syntax accepted EBP is described below in extended Bachus-Naur form and syntax "railroad" diagrams.
Not shown in the diagrams are CA Dynam/D extensions often seen in VSE JCS environments. Dataset names or standard input datasets containing ==@ are replaced by EBP configured PARAM symbolics dynampartition (the ==) and dyamcpu (the @). An === is replaced with the dynampartition and increasing sequential characters (AA, AB, ..., ZY, ZZ).
Index
- job
- headers
- footer
- step
- stepcard
- commentcard
- endofdatacard
- endofjobcard
- comment
- jobcard
- jobname
- jobacct
- joboptions
- acctitem
- jobprogrammer
- eojcard
- execcard
- execwhat
- execkeywords
- execpgm
- execproc
- execparm
- execparmitem
- execsize
- sizespec
- execdspace
- execgo
- execnpa
- exectrace
- execos390
- execreal
- listcard
- lstkeyword
- listoption
- dlblcard
- dlblpositional
- dddate
- ddname
- dddsn
- dsnpart
- dsnfixed
- dsnvariable
- pdsgdgpart
- ddkeywords
- ddcodes
- dddsf
- dddisp
- dddispstatus
- dddispnormal
- dddispabnormal
- ddsysoutchr
- ddprotocols
- dcbprotocol
- ddbufno
- ddbufni
- ddbufnd
- ddbufsp
- ddcisize
- ddrecords
- ddcat
- ddblksz
- ddlrecl
- ddrecfm
- assgncard
- cuuspec
- cuu
- extentcard
- extlu
- extsn
- exttype
- extseqno
- extblkno
- exttracks
- logcard
- nologcard
- logtype
- pausecard
- setcard
- setname
- setnameval
- libdefcard
- libdef
- ldkeyword
- concatdd
- ldcat
- libname
- jcllib
- nameval
- name
- execnameval
- nonexecname
- parenlist
- value
- optname
- ifcontin
- ifthencard
- elsecard
- endifcard
- ifexpr
- andorexpr
- reloper
- relexpr
- booloper
- anyexpr
- quotedstring
- anything
- idres
- idnonexprres
- idresint
- idresvar
- idresintvar
- intvar
- intidres
- idintvar
- ID
- variable
- comma
- reserved
- nonexprreserved
- execreserved
- exprreserved
- nonexecreserved
- INT
- HEX
- NEWLINE
- WS
- SLASHAMP
- SLASHSTAR
- SPECIAL
- INTL
Rules
-
job Top
A JCL Job Deck consists of a JOB card (appears to be optional in some systems) various "before a step" cards, inline procedures and then steps
Visual notation:
-
headers Top
Text notation:
Visual notation:
-
step Top
Visual notation:
-
stepcard Top
Text notation:
stepcard : assgncard | dlblcard | extentcard | libdefcard | setcard | logcard | nologcard | pausecard | ifthencard | commentcard | elsecard | endifcard | endofdatacard ;Visual notation:
-
commentcard Top
Comment cards contain arbitrary comments (Note: starting in column 5).
Visual notation:
-
endofdatacard Top
End of Control card indicates that comments with control codes are to be processed
Visual notation:
-
endofjobcard Top
End of Job card indicates that JCL for this job is complete
Visual notation:
-
comment Top
Most cards may contain comments after white-space (WS) and contain anything other than a new-line (NEWLINE) character up until column 72. A non-blank character in column 72 continues the comment onto the next card
Visual notation:
-
jobcard Top
A job card starts a JCS Deck, its optional. if missing jobname becomes job number
Text notation:
Visual notation:
-
jobname Top
Text notation:
Visual notation:
-
jobacct Top
Heirloom Computing EBP ignores the Job accounting information by you may use it to managed your submissions.
Visual notation:
-
joboptions Top
Text notation:
Visual notation:
-
acctitem Top
Text notation:
Visual notation:
-
jobprogrammer Top
Place your name between apostrophes on the comment card
Visual notation:
-
eojcard Top
End of Job Card
Visual notation:
-
execcard Top
Defines a job step within the job that runs a program or invokes an inline or cataloged procedure
Visual notation:
-
execwhat Top
Visual notation:
-
execkeywords Top
Text notation:
Visual notation:
-
execpgm Top
Specify a program that is contained on the System Lib directories specified as start-up properties or with the CONFIG Heirloom Computing EBP Web Service
Visual notation:
-
execproc Top
Indicate an inline or cataloged system-defined or user-defined procedure. Inline PROCs precede the step that references them between PROC and PEND statements. System cataloged procedures are on the System Lib directories specified with the EBP properties or with the CONFIG Heirloom Computing EBP Web Service. User-defined cataloged procedures are in partitioned datasets (DSORG=PO) that are under the System Lib directories
Visual notation:
-
execparm Top
Pass a parameter to a program on an EXEC statement with PARM. Heirloom Computing EBP property ebp.parmcount or CONFIG Heirloom Computing EBP Web Service item indicates whether the parameter string is broken on space-boundaries into individual arguments (Heirloom Computing EBP default) or they are passed as a single character string (IBM EBP default). alternatively, use a list of PARM=(...) items to always indicate multiple parameters to a program. Alternatively, Specify the PARMDD parameter indicating the DD name that will be processed by the program as a PARM. The COBOL program must be prepared to handle this as the string "PARMDD=ddname" is passed as the argument to the program which must then ATTACH it
Text notation:
Visual notation:
-
execparmitem Top
Text notation:
Visual notation:
-
execsize Top
Checked for syntax and ignored
Visual notation:
-
sizespec Top
Text notation:
Visual notation:
-
execdspace Top
Visual notation:
-
execgo Top
Text notation:
execgo : GO ;Visual notation:
-
execnpa Top
Text notation:
execnpa : NPA ;Visual notation:
-
exectrace Top
Text notation:
exectrace : TRACE ;Visual notation:
-
execos390 Top
Text notation:
execos390 : OS390 ;Visual notation:
-
execreal Top
Text notation:
execreal : REAL ;Visual notation:
-
listcard Top
$$ LST JECL card assigns listing output devices which act like permanent DDs
Text notation:
listcard : '*' WS '$$' WS lstkeyword WS listoption ( comma listoption )* comment NEWLINE | '*' WS '$$' WS lstkeyword WS ( listoption comma )+ comment NEWLINE '*' WS '$$' WS listoption ( comma listoption )* comment NEWLINE ;Visual notation:
-
lstkeyword Top
do not distinguish between $$ LST and $$ PUN
Visual notation:
-
listoption Top
Text notation:
Visual notation:
-
dlblcard Top
DLBL Cards map DDNAMEs referred to within programs with datasets (DSNAME, DSN) on disk. Also specify DUMMY for /dev/null operation or SYSOUT=* to have Heirloom Computing EBP hold the output dataset for viewing with the LIST Web Service.
Text notation:
Visual notation:
-
dlblpositional Top
Visual notation:
-
dddate Top
mm/dd/yyyy, dd/mm/yyyy or yyyy/day
Visual notation:
-
ddname Top
Visual notation:
-
dddsn Top
Handle both "filename" and "'file-id'" which can have GDG components
Text notation:
Visual notation:
-
dsnpart Top
Text notation:
dsnpart : ( dsnfixed | dsnvariable ) ( '.' ( dsnfixed | dsnvariable ) )* | '&&' dsnfixed ( '.' '.' dsnfixed )? | '&&&' dsnfixed ( '.' '.' dsnfixed )? ;Visual notation:
-
dsnfixed Top
Fixed portions of a DSN, "A", "ABC", "AAA"
Text notation:
dsnfixed : idres ;Visual notation:
-
dsnvariable Top
variable portions of a DSN, "&C", "&C.DE", "AB&C", "AB&C.DE"
Visual notation:
-
pdsgdgpart Top
Text notation:
Visual notation:
-
ddkeywords Top
Text notation:
Visual notation:
-
ddcodes Top
Visual notation:
-
dddsf Top
Text notation:
dddsf : DSF ;Visual notation:
-
dddisp Top
Text notation:
dddisp : DISP '=(' dddispstatus comma dddispnormal comma dddispabnormal ')' | DISP '=(' dddispstatus comma dddispnormal ')' | DISP '=(' dddispstatus ')' | DISP '=' dddispstatus ;Visual notation:
-
dddispstatus Top
Initial DD status of NEW indicates that the dataset will be created in the Data Lib directories specified in the EBP start-up properties or modified with the CONFIG Heirloom Computing EBP Web Service. Specify ebp.datalib.1..ebp.datalib.9 different directories to be searched for DSNs. Further, DSNs of the form A.B.C.D will be checked against existing files Datalib1/A/B/C/D, Datalib1/a/b/c/d, Datalib1/A/B/C.D, ... etc. Also, property ebp.newdsndirectory=yes indicates that DISP=NEW datasets with embedded . are created as directories. A.B.C.D is created as file D under directory Datalib1/A/B/C, with intervening directories created as necessary
Visual notation:
-
dddispnormal Top
Visual notation:
-
dddispabnormal Top
Visual notation:
-
ddsysoutchr Top
Text notation:
Visual notation:
-
ddprotocols Top
EBP extension to indicate file system protocols, or file formats, to a COBOL program that are specified to the COBOL runtime as prefixes. Multiple may be specified
Text notation:
ddprotocols : ( PROTOCOL | PROTO ) '=' dcbprotocol | ( PROTOCOL | PROTO ) '=(' dcbprotocol ( comma dcbprotocol)* ')' ;Visual notation:
-
dcbprotocol Top
EBP extension to indicate file formats. Global protocols: REMOTE - remote connection to file server; ENV - cluster name is a ddname, same as OFILE(name) VSAM - High level indication this is an indexed-sequential format of some kind. Variable-length, Line Sequential, Physical Sequential protocols: ECOBOL - Carriage-return/line-feed (Windows), new-line (Linux/UNIX); Variable-length, Non Indexed, Physical Sequential protocols: ECOBOL - 4-byte little-endian length followed by data; MF - 4-byte big-endian length followed by data of that length; IBMV - 2-byte big-endian length plus 2-bytes of zeros followed by data of that length minus 4; IBMVB - 4-byte big-endian block size followed by records in IBMV format; SYNC - 2-byte big-endial length followed by data of that length. VSAM-to-SQL Bridge protocol: VSQL - indicating the dataset name is mapped using information in the executing jar as to the table name and database connection information VSAM protocols: EC, E-ISAM, E_ISAM, EISAM - Elastic COBOL ISAM file format; MF, MFU, MFW - Micro Focus IDX 3 file format; AS400 - AS/400 file format; ISAM, CISAM, C-ISAM, C_ISAM - C ISAM file format; DISAM, D-ISAM, D_ISAM - D ISAM file format; ACON, ACU, ACUCOBOL - Acu COBOL file format; VIS4, VISION4, VIS, VISION - Vision File Format; none-of-the-above - Elastic COBOL
Text notation:
dcbprotocol : idresvar ;Visual notation:
-
ddbufno Top
BUFNO=number-of-buffers
Visual notation:
-
ddbufni Top
BUFNI=number-of-buffers
Visual notation:
-
ddbufnd Top
BUFND=number-of-buffers
Visual notation:
-
ddbufsp Top
BUFSP=number-of-buffers
Visual notation:
-
ddcisize Top
CISIZE=control-interval-size
Visual notation:
-
ddrecords Top
RECORDS=number-of-records
Visual notation:
-
ddcat Top
CAT=catalog (high level qualifier of DSN in EBP)
Visual notation:
-
ddblksz Top
Visual notation:
-
ddlrecl Top
Visual notation:
-
ddrecfm Top
Visual notation:
-
assgncard Top
ASSGN and DLBL are both considered like DD DUMMY cards
Visual notation:
-
cuuspec Top
Visual notation:
-
cuu Top
Visual notation:
-
extentcard Top
Extent card is checked for syntax and ignored
Text notation:
Visual notation:
-
extlu Top
Text notation:
Visual notation:
-
extsn Top
Text notation:
Visual notation:
-
exttype Top
Text notation:
Visual notation:
-
extseqno Top
Text notation:
Visual notation:
-
extblkno Top
Text notation:
Visual notation:
-
exttracks Top
Text notation:
Visual notation:
-
logcard Top
equate LOG with MSGCLASS and MSGLEVEL of entire job
Visual notation:
-
nologcard Top
Visual notation:
-
logtype Top
equate various log types with message classes (single letter or number)
Visual notation:
-
pausecard Top
Treat PAUSE statement like TYPRUN=HOLD, holds at the job level not between steps
Visual notation:
-
setcard Top
Text notation:
Visual notation:
-
setname Top
Text notation:
Visual notation:
-
setnameval Top
Text notation:
setnameval : nameval ;Visual notation:
-
libdefcard Top
Indicate the list of partitioned datasets that are searched for programs
Text notation:
Visual notation:
-
libdef Top
LIBDEF is similar to EXTENT and ASSGN and DLBL, like a STEPLIB or JOBLIB
Text notation:
libdef : LIBDEF ;Visual notation:
-
ldkeyword Top
Text notation:
Visual notation:
-
concatdd Top
Text notation:
concatdd : ;Visual notation:
-
ldcat Top
Text notation:
ldcat : idres ;Visual notation:
-
libname Top
Text notation:
Visual notation:
-
jcllib Top
Visual notation:
-
nameval Top
Text notation:
Visual notation:
-
name Top
Text notation:
name : idres ;Visual notation:
-
execnameval Top
Text notation:
execnameval : nonexecname '=' intidres | nonexecname '=*' | nonexecname '=' dsnpart pdsgdgpart | nonexecname '=' reserved | nonexecname '=' quotedstring | nonexecname parenlist | nonexecname '=' | 'COND=' ;Visual notation:
-
nonexecname Top
Text notation:
Visual notation:
-
parenlist Top
Visual notation:
-
value Top
Text notation:
Visual notation:
-
optname Top
Text notation:
Visual notation:
-
ifcontin Top
Visual notation:
-
ifthencard Top
Visual notation:
-
elsecard Top
Visual notation:
-
endifcard Top
Visual notation:
-
ifexpr Top
Visual notation:
-
andorexpr Top
Visual notation:
-
reloper Top
Text notation:
Visual notation:
-
relexpr Top
Text notation:
Visual notation:
-
booloper Top
Visual notation:
-
anyexpr Top
Text notation:
Visual notation:
-
quotedstring Top
Use a quoted string for parameters, datasets, symbolic parameters. Double enclosed apostrophes.
Visual notation:
-
anything Top
Text notation:
Visual notation:
-
idres Top
identifier or reserved word
Visual notation:
-
idnonexprres Top
identifier or non expression reserved word
Text notation:
Visual notation:
-
idresint Top
identifier, reserved word or int
Visual notation:
-
idresvar Top
identifier, reserved word or variable
Visual notation:
-
idresintvar Top
identifier, reserved word, integer or variable
Visual notation:
-
intvar Top
integer or variable
Visual notation:
-
intidres Top
integer possibly followed by an ID or reserved word
Visual notation:
-
idintvar Top
identifier, integer or variable
Visual notation:
-
ID Top
Heirloom Computing EBP Identifiers consist of $, #, @ and A through Z followed by up to 7 of the same. Symbolic Parameters start with &, IDs with embedded & indicate a concatenation of two symbolic parameters.
Text notation:
ID : ('a'..'z'|'A'..'Z'|'$'|'#'|'@') ('a'..'z'|'A'..'Z'|'0'..'9'|'$'|'#'|'@'|'-'|'_')* ;Visual notation:
-
variable Top
Visual notation:
-
comma Top
keyword parameter values that contain comma-separated lists may span lines
Visual notation:
-
reserved Top
Text notation:
Visual notation:
-
nonexprreserved Top
Text notation:
Visual notation:
-
execreserved Top
Visual notation:
-
exprreserved Top
Text notation:
Visual notation:
-
nonexecreserved Top
Text notation:
nonexecreserved : ASSGN | AUTO | BLKSZ | BUFND | BUFNI | BUFNO | BUFSP | CAT | CATALOG | CISIZE | CLASS | DA | DATE | DELETE | DEST | DLBL | DISP | DSF | DSPACE | DU | DUMP | EQ | EOJ | EXEC | EXTENT | FORMDEF | GE | GO | GT | JNM | JOB | KEEP | LE | LIBDEF | LOG | LRECL | LST | LT | MOD | NE | NEW | NOLOG | NPA | OBJ | OLD | OS390 | PAGEDEF | PAUSE | PGM | PERM | PRI | PROTO | PROTOCOL | PUN | REAL | RECFM | RECORDS | SD | SEARCH | SEC | SETPARM | SHR | SIZE | SOURCE | TEMP | VSAM ;Visual notation:
-
INT Top
Text notation:
INT : ('0'..'9')+ ;Visual notation:
-
HEX Top
Text notation:
HEX : ('0'..'9' | 'a'..'f' | 'A'..'F')+ ;Visual notation:
-
NEWLINE Top
Text notation:
NEWLINE : '\r'? '\n' ;Visual notation:
-
WS Top
Text notation:
WS : (' '|'\t')+ ;Visual notation:
-
SLASHAMP Top
End of Job card
Text notation:
SLASHAMP : '/&' ;Visual notation:
-
SLASHSTAR Top
Text notation:
SLASHSTAR : '/*' ;Visual notation:
-
SPECIAL Top
SPECIAL token not used but required to define all other chars
Text notation:
SPECIAL : ( '~' | '`' | '!' | '@' | '#' | '$' | '%' | '^' | '&' | '*' | '(' | ')' | '-' | '_' | '+' | '\'' | '"' | '=' | '{' | '}' | '[' | ']' | '|' | ':' | ';' | ',' | '.' | '<' | '>' | '?' | '/' | '\\' | INTL ) ;Visual notation:
-
INTL Top
Text notation:
INTL : . ;Visual notation:
0 Comments