|
|
1.1 root 1: %token typereference identifier valuereference modulereference number
2: bstring hstring cstring CCE LBRACE RBRACE LANGLE DOT COMMA
3: LPAREN RPAREN LBRACKET RBRACKET MINUS BOOLEAN INTEGER BIT
4: STRING OCTET NULL SEQUENCE OF SET IMPLICIT CHOICE ANY EXTERNAL
5: OBJECT IDENTIFIER OPTIONAL DEFAULT COMPONENTS UNIVERSAL
6: APPLICATION PRIVATE TRUE FALSE BGIN END DEFINITIONS EXPLICIT
7: ENUMERATED EXPORTS IMPORTS ENCRYPTED REAL INCLUDES MIN MAX
8: SIZE FROM WITH COMPONENT PRESENT ABSENT DEFINED BY
9: PLUS_INFINITY MINUS_INFINITY macroreference
10: productionreference localtypereference localvaluereference BAR
11: RANGLE astring qstring qidentifier qnumber qempty MACRO TYPE
12: NOTATION VALUE value type SEMICOLON TAGS ZERO TWO TEN DOTDOT
13: DOTDOTDOT
14:
15: %%
16:
17: ModuleDefinition: ModuleIdentifier DEFINITIONS TagDefault
18: CCE BGIN ModuleBody END
19: ;
20:
21: TagDefault: EXPLICIT TAGS
22: | IMPLICIT TAGS
23: | empty
24: ;
25:
26: ModuleIdentifier: modulereference AssignedIdentifier
27: ;
28:
29: AssignedIdentifier: ObjectIdentifierValue
30: | empty
31: ;
32:
33: ModuleBody: Exports Imports AssignmentList
34: ;
35:
36: Exports: EXPORTS SymbolsExported SEMICOLON
37: ;
38:
39: SymbolsExported: SymbolList
40: | empty
41: ;
42:
43: Imports: IMPORTS SymbolsImported SEMICOLON
44: | empty
45: ;
46:
47: SymbolsImported: SymbolsFromModuleList
48: | empty
49: ;
50:
51: SymbolsFromModuleList: SymbolsFromModule SymbolsFromModuleList
52: | SymbolsFromModule
53: ;
54:
55: SymbolsFromModule: SymbolList FROM ModuleIdentifier
56: ;
57:
58: SymbolList: Symbol COMMA SymbolList
59: | Symbol
60: ;
61:
62: Symbol: typereference
63: | valuereference
64: ;
65:
66: AssignmentList: Assignment AssignmentList
67: | Assignment
68: ;
69:
70: Assignment: Typeassignment
71: | Valueassignment
72: ;
73:
74: Externaltypereference: modulereference DOT typereference
75: ;
76:
77: Externalvaluereference: modulereference DOT valuereference
78: ;
79:
80: DefinedType: Externaltypereference
81: | typereference
82: ;
83:
84: DefinedValue: Externalvaluereference
85: | valuereference
86: ;
87:
88: Typeassignment: typereference CCE Type
89: ;
90:
91: Valueassignment: valuereference Type CCE Value
92: ;
93:
94: Type: BuiltinType
95: | DefinedType
96: | SubType
97: ;
98:
99: BuiltinType: BooleanType
100: | IntegerType
101: | BitStringType
102: | OctetStringType
103: | NullType
104: | SequenceType
105: | SequenceOfType
106: | SetType
107: | SetOfType
108: | ChoiceType
109: | SelectionType
110: | TaggedType
111: | AnyType
112: | ObjectIdentifierType
113: | CharacterStringType
114: | UsefulType
115: | EnumeratedType
116: | RealType
117: | EncryptedType
118: ;
119:
120: NamedType: identifier Type
121: | Type
122: | SelectionType
123: ;
124:
125: Value: BuiltinValue
126: | DefinedValue
127: ;
128:
129: BuiltinValue: BooleanValue
130: | IntegerValue
131: | BitStringValue
132: | OctetStringValue
133: | NullValue
134: | SequenceValue
135: | SequenceOfValue
136: | SetValue
137: | SetOfValue
138: | ChoiceValue
139: | SelectionValue
140: | TaggedValue
141: | AnyValue
142: | ObjectIdentifierValue
143: | CharacterStringValue
144: | EnumeratedValue
145: | RealValue
146: | EncryptedValue
147: ;
148:
149: NamedValue: identifier Value
150: | Value
151: ;
152:
153: BooleanType: BOOLEAN
154: ;
155:
156: BooleanValue: TRUE
157: | FALSE
158: ;
159:
160: IntegerType: INTEGER
161: | INTEGER LBRACE NamedNumberList RBRACE
162: ;
163:
164: NamedNumberList: NamedNumber
165: | NamedNumberList COMMA NamedNumber
166: ;
167:
168: NamedNumber: identifier LPAREN SignedNumber RPAREN
169: | identifier LPAREN DefinedValue RPAREN
170: ;
171:
172: SignedNumber: number
173: | MINUS number
174: ;
175:
176: IntegerValue: SignedNumber
177: | identifier
178: ;
179:
180: EnumeratedType: ENUMERATED LBRACE Enumeration RBRACE
181: ;
182:
183: Enumeration: NamedNumber
184: | NamedNumber COMMA Enumeration
185: ;
186:
187: EnumeratedValue: identifier
188: ;
189:
190: RealType: REAL
191: ;
192:
193: RealValue: NumericRealValue
194: | SpecialRealValue
195: ;
196:
197: NumericRealValue: LBRACE Mantissa COMMA Base COMMA Exponent RBRACE
198: | ZERO
199: ;
200:
201: Mantissa: SignedNumber
202: ;
203:
204: Base: TWO
205: | TEN
206: ;
207:
208: Exponent: SignedNumber
209: ;
210:
211: SpecialRealValue: PLUS_INFINITY
212: | MINUS_INFINITY
213: ;
214:
215: BitStringType: BIT STRING
216: | BIT STRING LBRACE NamedBitList RBRACE
217: ;
218:
219: NamedBitList: NamedBit
220: | NamedBitList COMMA NamedBit
221: ;
222:
223: NamedBit: identifier LPAREN number RPAREN
224: | identifier LPAREN number RPAREN
225: ;
226:
227: BitStringValue: bstring
228: | hstring
229: | LBRACE IdentifierList RBRACE
230: ;
231:
232: IdentifierList: identifier
233: | IdentifierList COMMA identifier
234: ;
235:
236: OctetStringType: OCTET STRING
237: ;
238:
239: OctetStringValue: bstring
240: | hstring
241: ;
242:
243: NullType: NULL
244: ;
245:
246: NullValue: NULL
247: ;
248:
249: SequenceType: SEQUENCE LBRACE ElementTypeList RBRACE
250: | SEQUENCE LBRACE RBRACE
251: ;
252:
253: ElementTypeList: ElementType
254: | ElementTypeList COMMA ElementType
255: ;
256:
257: ElementType: NamedType
258: | NamedType OPTIONAL
259: | NamedType DEFAULT Value
260: | COMPONENTS OF Type
261: ;
262:
263: SequenceValue: LBRACE ElementValueList RBRACE
264: | LBRACE RBRACE
265: ;
266:
267: ElementValueList: NamedValue
268: | ElementValueList COMMA NamedValue
269: ;
270:
271: SequenceOfType: SEQUENCE OF Type
272: | SEQUENCE
273: ;
274:
275: SequenceOfValue: LBRACE ValueList RBRACE
276: | LBRACE RBRACE
277: ;
278:
279: ValueList: Value
280: | ValueList COMMA Value
281: ;
282:
283: SetType: SET LBRACE ElementTypeList RBRACE
284: | SET LBRACE RBRACE
285: ;
286:
287: SetValue: LBRACE ElementValueList RBRACE
288: | LBRACE RBRACE
289: ;
290:
291: SetOfType: SET OF Type
292: | SET
293: ;
294:
295: SetOfValue: LBRACE ValueList RBRACE
296: | LBRACE RBRACE
297: ;
298:
299: ChoiceType: CHOICE LBRACE AlternativeTypeList RBRACE
300: ;
301:
302: AlternativeTypeList: NamedType
303: | AlternativeTypeList COMMA NamedType
304: ;
305:
306: ChoiceValue: NamedValue
307: ;
308:
309: SelectionType: identifier LANGLE Type
310: ;
311:
312: SelectionValue: NamedValue
313: ;
314:
315: TaggedType: Tag Type
316: | Tag IMPLICIT Type
317: | Tag EXPLICIT Type
318: ;
319:
320: Tag: LBRACKET Class ClassNumber RBRACKET
321: ;
322:
323: ClassNumber: number
324: | DefinedValue
325: ;
326:
327: Class: UNIVERSAL
328: | APPLICATION
329: | PRIVATE
330: | empty
331: ;
332:
333: TaggedValue: Value
334: ;
335:
336: AnyType: ANY
337: | ANY DEFINED BY identifier
338: ;
339:
340: AnyValue: Type Value
341: ;
342:
343: ObjectIdentifierType: OBJECT IDENTIFIER
344: ;
345:
346: ObjectIdentifierValue: LBRACE ObjIdComponentList RBRACE
347: | LBRACE DefinedValue ObjIdComponentList RBRACE
348: ;
349:
350: ObjIdComponentList: ObjIdComponent
351: | ObjIdComponent ObjIdComponentList
352: ;
353:
354: ObjIdComponent: NameForm
355: | NumberForm
356: | NameAndNumberForm
357: ;
358:
359: NameForm: identifier
360: ;
361:
362: NumberForm: number
363: | DefinedValue
364: ;
365:
366: NameAndNumberForm: identifier LPAREN NumberForm RPAREN
367: ;
368:
369: EncryptedType: ENCRYPTED Type
370: ;
371:
372: EncryptedValue: Value
373: ;
374:
375: CharacterStringType: typereference
376: ;
377:
378: CharacterStringValue: cstring
379: ;
380:
381: UsefulType: typereference
382: ;
383:
384: SubType: ParentType SubtypeSpec
385: | SET SizeConstraint OF Type
386: | SEQUENCE SizeConstraint OF Type
387: ;
388:
389: ParentType: Type
390: ;
391:
392: SubtypeSpec: LPAREN SubtypeAlternative SubtypeAlternativeList RPAREN
393: ;
394:
395: SubtypeAlternativeList: BAR SubtypeAlternative SubtypeAlternativeList
396: | empty
397: ;
398:
399: SubtypeAlternative: SubtypeValueSet
400: | SubtypeConstraint
401: ;
402:
403: SubtypeValueSet: SingleValue
404: | ContaindSubtype
405: | ValueRange
406: | PermittedAlphabet
407: ;
408:
409: SubtypeConstraint: SizeConstraint
410: | InnerTypeConstraint
411: ;
412:
413: SingleValue: Value
414: ;
415:
416: ContaindSubtype: INCLUDES Type
417: ;
418:
419: ValueRange: LowerEndpoint DOTDOT UpperEndpoint
420: ;
421:
422: LowerEndpoint: LowerEndValue
423: | LowerEndValue LANGLE
424: ;
425:
426: UpperEndpoint: UpperEndValue
427: | LANGLE UpperEndValue
428: ;
429:
430: LowerEndValue: Value
431: | MIN
432: ;
433:
434: UpperEndValue: Value
435: | MAX
436: ;
437:
438: SizeConstraint: SIZE SubtypeSpec
439: ;
440:
441: PermittedAlphabet: FROM SubtypeSpec
442: ;
443:
444: InnerTypeConstraint: WITH COMPONENT SingleTypeConstraint
445: | WITH COMPONENTS MultipleTypeConstraints
446: ;
447:
448: SingleTypeConstraint: SubtypeSpec
449: ;
450:
451: MultipleTypeConstraints:FullSpecification
452: | PartialSpecification
453: ;
454:
455: FullSpecification: LBRACE TypeConstraints RBRACE
456: ;
457:
458: PartialSpecification: LBRACE DOTDOTDOT COMMA TypeConstraints RBRACE
459: ;
460:
461: TypeConstraints: NamedConstraint
462: | NamedConstraint COMMA TypeConstraints
463: ;
464:
465: NamedConstraint: identifier Constraint
466: | Constraint
467: ;
468:
469: Constraint: ValueConstraint PresenceConstraint
470: ;
471:
472: ValueConstraint: SubtypeSpec
473: | empty
474: ;
475:
476: PresenceConstraint: PRESENT
477: | ABSENT
478: | empty
479: ;
480:
481: /* Macro defintions */
482:
483: MacroDefinition: macroreference MACRO CCE MacroSubstance
484: ;
485:
486: MacroSubstance: BGIN MacroBody END
487: | macroreference
488: | Externalmacroreference
489: ;
490:
491: MacroBody: TypeProduction
492: | ValueProduction
493: | SupportingProductions
494: ;
495:
496: TypeProduction: TYPE NOTATION CCE MacroAlternativeList
497: ;
498:
499: ValueProduction: VALUE NOTATION CCE MacroAlternativeList
500: ;
501:
502: SupportingProductions: ProductionList
503: | empty
504: ;
505:
506: ProductionList: Production
507: | ProductionList Production
508: ;
509:
510: Production: productionreference CCE MacroAlternativeList
511: ;
512:
513: Externalmacroreference: modulereference DOT macroreference
514: ;
515:
516: MacroAlternativeList: MacroAlternative
517: | MacroAlternativeList BAR MacroAlternative
518: ;
519:
520: MacroAlternative: SymbolList
521: ;
522:
523: SymbolList: SymbolElement
524: | SymbolList SymbolElement
525: ;
526:
527: SymbolElement: SymbolDefn
528: | EmbeddedDefinitions
529: ;
530:
531: SymbolDefn: astring
532: | productionreference
533: | qstring
534: | qidentifier
535: | qnumber
536: | qempty
537: | type
538: | type LPAREN localtypereference RPAREN
539: | value LPAREN MacroType RPAREN
540: | value LPAREN localvaluereference RPAREN
541: | value LPAREN VALUE MacroType RPAREN
542: ;
543:
544: MacroType: localtypereference
545: | Type
546: ;
547:
548: EmbeddedDefinitions: LANGLE EmbeddedDefinitionList RANGLE
549: ;
550:
551: EmbeddedDefinitionList: EmbeddedDefinition
552: | EmbeddedDefinitionList EmbeddedDefinition
553: ;
554:
555: EmbeddedDefinition: LocalTypeassignment
556: | LocalValueassignment
557: ;
558:
559: LocalTypeassignment: localtypereference CCE MacroType
560: ;
561:
562: LocalValueassignment: localvaluereference MacroType CCE MacroValue
563: ;
564:
565: MacroValue: Value
566: | localvaluereference
567: ;
568:
569: empty: /* empty */
570: ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.