-
Notifications
You must be signed in to change notification settings - Fork 0
/
dbd.mi
108 lines (95 loc) · 4.12 KB
/
dbd.mi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
INHERITANCE.
dbd-object:
<dbd-unit; dbd; dataset-unit; dataset; segm-unit; segm;
sfield: <field; lchild; xdfld>; key-value>.
key-value:
<key-value-symbol; key-value-symbol-slash; key-value-integer;
key-value-real; key-value-string; key-value-string-x; key-value-string-c;
key-value-star; key-value-list; key-value-empty>.
SYNTAX.
Start = dbd-unit.
dbd-unit::= dbd-head => dbd [datasets => dataset-unit] + " " ;
dbd::= [dbd-label-name-label => symbol]! "DBD"
[ "NAME" "=" dbd-name => key-value
| "ACCESS" "=" dbd-access => key-value
| "RMNAME" "=" dbd-rmname => key-value
| "FRSPC" "=" dbd-frspc => key-value
| "PSNAME" "=" dbd-psname => key-value
| "PASSWD" "=" dbd-passwd => key-value
| "DATXEXIT" "=" dbd-datxexit => key-value
| "EXIT" "=" dbd-exit => key-value
| "VERSION" "=" dbd-version => key-value
| ","
]+ "" dbd-eol-eol=>symbol;
dataset-unit ::= dataset-head => dataset [segments=> segm-unit] + "" dataset [dataset-name-label => symbol]!
"DATASET"
[ "DD1" "=" dataset-dd1 => key-value
| "DD2" "=" dataset-dd2 => key-value
| "OWFLW" "=" dataset-owflw => key-value
| "BLOCK" "=" dataset-block => key-value
| "RECORD" "=" dataset-record => key-value
| "SIZE" "=" dataset-size => key-value
| "RECFRM" "=" dataset-recfrm => key-value
| "REL" "=" dataset-rel => key-value
| "SCAN" "=" dataset-scan => key-value
| "DEVICE" "=" dataset-device => key-value
| "RMNAME" "=" dataset-rmname => key-value
| "FRSPC" "=" dataset-frspc => key-value
| "SEGM" "=" dataset-segm => key-value
| "MINLEN" "=" dataset-minlen => key-value
| "LOGICAL"
| ","
]+ "" dataset-eline-eol=>symbol ;
segm-unit::= segm-head => segm [sfields => sfield] * "";
segm::= "SEGM"
[ "NAME" "=" segm-name => key-value
| "PARENT" "=" segm-parent => key-value
| "BYTES" "=" segm-bytes => key-value
| "POINTER" "=" segm-pointer => key-value
| "FREQ" "=" segm-freq => key-value
| "RULES" "=" segm-rules => key-value
| "EXIT" "=" segm-exit => key-value
| "DSGROUP" "=" segm-dsgroup => key-value
| "SSPTR" "=" segm-ssptr => key-value
| "COMPRTN" "=" segm-comprtn => key-value
| "SOURCE" "=" segm-source => key-value
| "RMNAME" "=" segm-rmname => key-value
| ","
] + ""segm-eline-eol => symbol;
field::= "FIELD"
[ "NAME" "=" field-name => key-value
| "BYTES" "=" field-bytes => key-value
| "START" "=" field-start => key-value
| "TYPE" "=" field-type => key-value
| ","
] + "" field-eline-eol => symbol;
lchild::= "LCHILD"
[ "NAME" "=" lchild-name => key-value
| "POINTER" "=" lchild-pointer => key-value
| "PAIR" "=" lchild-pair => key-value
| "RULES" "=" lchild-rules => key-value
| "INDEX" "=" lchild-index => key-value
| "RKSIZE" "=" lchild-rksize => key-value
| ","
]+ "" lchild-eline-eol =>symbol;
xdfld::= "XDFLD"
[ "NAME" "=" xdfld-name => key-value
| "SEGMENT" "=" xdfld-segment => key-value
| "CONST" "=" xdfld-const => key-value
| "SRCH" "=" xdfld-srch => key-value
| "SUBSEQ" "=" xdfld-subseq => key-value
| "DDATA" "=" xdfld-ddata => key-value
| "NULLVAL" "=" xdfld-nullval => key-value
| "EXTRN" "=" xdfld-extrn => key-value
| ","
] + "" xdfld-eline-eol =>symbol;
key-value-symbol::= key-id => symbol;
key-value-symbol-slash::= "/" key-ids => symbol;
key-value-integer::= key-integer => integer;
key-value-real::= key-real => real;
key-value-string::= key-string => string;
key-value-string-x::= key-xstring => string;
key-value-string-c::= key-cstring => string;
key-value-star::= "*";
key-value-list::= "(" [key-items => key-value] + "," ")" ;
key-value-empty::= key-empty => integer;