|
|
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.