|
|
1.1 root 1: %token identifier number string
2: ARRAY BEGIN BOOLEAN CARDINAL
3: CHOICE DEPENDS END ERROR
4: FALSE INTEGER LONG OF
5: PROCEDURE PROGRAM RECORD REPORTS
6: RETURNS SEQUENCE STRING TRUE
7: TYPE UNSPECIFIED UPON VERSION
8: %%
9:
10: Program :
11: identifier ':' PROGRAM number VERSION number '='
12: BEGIN DependencyList DeclarationList END '.'
13: |
14: identifier ':' PROGRAM '='
15: BEGIN DependencyList DeclarationList END '.'
16: ;
17:
18: DependencyList :
19: /* empty */
20: | DEPENDS UPON ReferencedProgramList ';'
21: ;
22:
23: ReferencedProgramList :
24: ReferencedProgram
25: | ReferencedProgramList ',' ReferencedProgram
26: ;
27:
28: ReferencedProgram :
29: identifier '(' number ')' VERSION number
30: ;
31:
32: DeclarationList :
33: /* empty */
34: | DeclarationList Declaration
35: ;
36:
37: Declaration :
38: identifier ':' TYPE '=' Type ';'
39: | identifier ':' Type '=' Constant ';'
40: ;
41:
42: Type :
43: PredefinedType
44: | ConstructedType
45: | ReferencedType
46: ;
47:
48: PredefinedType :
49: BOOLEAN
50: | CARDINAL
51: | LONG CARDINAL
52: | INTEGER
53: | LONG INTEGER
54: | STRING
55: | UNSPECIFIED
56: ;
57:
58: ConstructedType :
59: '{' CorrespondenceList '}'
60: | ARRAY NumericValue OF Type
61: | SEQUENCE MaximumNumber OF Type
62: | RECORD '[' FieldList ']'
63: | RECORD '[' ']'
64: | CHOICE DesignatorType OF '{' CandidateList '}'
65: | PROCEDURE ArgumentList ResultList ErrorList
66: | ERROR ArgumentList
67: ;
68:
69: ReferencedType :
70: identifier
71: | identifier '.' identifier
72: ;
73:
74: CorrespondenceList :
75: Correspondence
76: | CorrespondenceList ',' Correspondence
77: ;
78:
79: Correspondence :
80: identifier '(' NumericValue ')'
81: ;
82:
83: MaximumNumber :
84: NumericValue
85: | /* empty */
86: ;
87:
88: NumericValue :
89: number
90: | ReferencedConstant
91: ;
92:
93: DesignatorType :
94: /* empty */
95: | ReferencedType
96: ;
97:
98: CandidateList :
99: Candidate
100: | CandidateList ',' Candidate
101: ;
102:
103: Candidate :
104: DesignatorList '=''>' Type
105: ;
106:
107: DesignatorList :
108: Designator
109: | DesignatorList ',' Designator
110: ;
111:
112: Designator :
113: identifier
114: | Correspondence
115: ;
116:
117: ArgumentList :
118: /* empty */
119: | '[' FieldList ']'
120: ;
121:
122: ResultList :
123: /* empty */
124: | RETURNS '[' FieldList ']'
125: ;
126:
127: ErrorList :
128: /* empty */
129: | REPORTS '[' NameList ']'
130: ;
131:
132: FieldList :
133: Field
134: | FieldList ',' Field
135: ;
136:
137: Field :
138: NameList ':' Type
139: ;
140:
141: Constant :
142: PredefinedConstant
143: | ConstructedConstant
144: | ReferencedConstant
145: ;
146:
147: PredefinedConstant :
148: TRUE
149: | FALSE
150: | number
151: | '-' number
152: | '"' string '"'
153: ;
154:
155: ConstructedConstant :
156: identifier
157: | '[' ElementList ']'
158: | '[' ComponentList ']'
159: | '['']'
160: | identifier Constant
161: | number
162: ;
163:
164: ReferencedConstant :
165: identifier
166: | identifier '.' identifier
167: ;
168:
169: ElementList :
170: Constant
171: | ElementList ',' Constant
172: ;
173:
174: ComponentList :
175: Component
176: | ComponentList ',' Component
177: ;
178:
179: Component :
180: NameList ':' Constant
181: ;
182:
183: NameList :
184: identifier
185: | NameList ',' identifier
186: ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.