|
|
1.1 ! root 1: /* yacc.y - yacc ASN.1 parser */ ! 2: ! 3: %token DEFINITIONS CCE BGIN END ID MODULEREFERENCE DOT ! 4: TYPEREFERENCE VALUEREFERENCE IDENTIFIER BOOLEAN TRUE ! 5: FALSE INTEGER LBRACE RBRACE COMMA LBRACKET RBRACKET ! 6: NUMBER MINUS BIT STRING BSTRING HSTRING OCTET NIL ! 7: SEQUENCE OPTIONAL DEFAULT COMPONENTS OF SET CHOICE ! 8: LANGLE IMPLICIT UNIVERSAL APPLICATION PRIVATE ANY ! 9: OBJECT LPAREN RPAREN CSTRING MACROREFERENCE MACRO TYPE ! 10: NOTATION VALUE PRODUCTIONREFERENCE BAR ASTRING QSTRING ! 11: QIDENTIFIER QNUMBER QEMPTY LOCALTYPEREFERENCE ! 12: LOCALVALUEREFERENCE VVALUE RANGLE ! 13: ! 14: %% ! 15: ! 16: ModuleDefinition: MODULEREFERENCE ! 17: DEFINITIONS CCE ! 18: BGIN ! 19: ModuleBody ! 20: END ! 21: ; ! 22: ! 23: ModuleBody: AssignmentList ! 24: | empty ! 25: ; ! 26: ! 27: AssignmentList: Assignment AssignmentList ! 28: | Assignment ! 29: ; ! 30: ! 31: Assignment: Typeassignment ! 32: | Valueassignment ! 33: ; ! 34: ! 35: Externaltypereference: MODULEREFERENCE DOT TYPEREFERENCE ! 36: ; ! 37: ! 38: Externalvaluereference: MODULEREFERENCE DOT VALUEREFERENCE ! 39: ; ! 40: ! 41: DefinedType: Externaltypereference ! 42: | TYPEREFERENCE ! 43: ; ! 44: ! 45: DefinedValue: Externalvaluereference ! 46: | VALUEREFERENCE ! 47: ; ! 48: ! 49: Typeassignment: TYPEREFERENCE CCE Type ! 50: ; ! 51: ! 52: Valueassignment: VALUEREFERENCE Type CCE Value ! 53: ; ! 54: ! 55: Type: BuiltinType ! 56: | DefinedType ! 57: ; ! 58: ! 59: BuiltinType: BooleanType ! 60: | IntegerType ! 61: | BitStringType ! 62: | OctetStringType ! 63: | NullType ! 64: | SequenceType ! 65: | SequenceOfType ! 66: | SetType ! 67: | SetOfType ! 68: | ChoiceType ! 69: | SelectionType ! 70: | TaggedType ! 71: | AnyType ! 72: | ObjectIdentifierType ! 73: /* | CharacterStringType ! 74: | UsefulType */ ! 75: ; ! 76: ! 77: NamedType: IDENTIFIER Type ! 78: | Type ! 79: | SelectionType ! 80: ; ! 81: ! 82: Value: BuiltinValue ! 83: | DefinedValue ! 84: ; ! 85: ! 86: BuiltinValue: BooleanValue ! 87: | IntegerValue ! 88: | BitStringValue ! 89: | OctetStringValue ! 90: | NullValue ! 91: | SequenceValue ! 92: | SequenceOfValue ! 93: | SetValue ! 94: | SetOfValue ! 95: | ChoiceValue ! 96: | SelectionValue ! 97: | TaggedValue ! 98: | AnyValue ! 99: | ObjectIdentifierValue ! 100: /* | CharacterStringValue */ ! 101: ; ! 102: ! 103: NamedValue: IDENTIFIER Value ! 104: | Value ! 105: ; ! 106: ! 107: BooleanType: BOOLEAN ! 108: ; ! 109: ! 110: BooleanValue: TRUE ! 111: | FALSE ! 112: ; ! 113: ! 114: IntegerType: INTEGER ! 115: | INTEGER LBRACE NamedNumberList RBRACE ! 116: ; ! 117: ! 118: NamedNumberList: NamedNumber ! 119: | NamedNumberList COMMA NamedNumber ! 120: ; ! 121: ! 122: NamedNumber: IDENTIFIER LPAREN SignedNumber RPAREN ! 123: | IDENTIFIER LPAREN DefinedValue RPAREN ! 124: ; ! 125: ! 126: SignedNumber: NUMBER ! 127: | MINUS NUMBER ! 128: ; ! 129: ! 130: IntegerValue: SignedNumber ! 131: | IDENTIFIER ! 132: ; ! 133: ! 134: BitStringType: BIT STRING ! 135: | BIT STRING LBRACE NamedBitList RBRACE ! 136: ; ! 137: ! 138: NamedBitList: NamedBit ! 139: | NamedBitList COMMA NamedBit ! 140: ; ! 141: ! 142: NamedBit: IDENTIFIER LPAREN NUMBER RPAREN ! 143: | IDENTIFIER LPAREN DefinedValue RPAREN ! 144: ; ! 145: ! 146: BitStringValue: BSTRING ! 147: | HSTRING ! 148: | LBRACE IdentifierList RBRACE ! 149: | LBRACE RBRACE ! 150: ; ! 151: ! 152: IdentifierList: IDENTIFIER ! 153: | IdentifierList COMMA IDENTIFIER ! 154: ; ! 155: ! 156: OctetStringType: OCTET STRING ! 157: ; ! 158: ! 159: OctetStringValue: BSTRING ! 160: | HSTRING ! 161: ; ! 162: ! 163: NullType: NIL ! 164: ; ! 165: ! 166: NullValue: NIL ! 167: ; ! 168: ! 169: SequenceType: SEQUENCE LBRACE ElementTypeList RBRACE ! 170: | SEQUENCE LBRACE RBRACE ! 171: ; ! 172: ! 173: ElementTypeList: ElementType ! 174: | ElementTypeList COMMA ElementType ! 175: ; ! 176: ! 177: ElementType: NamedType ! 178: | NamedType OPTIONAL ! 179: | NamedType DEFAULT Value ! 180: | COMPONENTS OF Type ! 181: ; ! 182: ! 183: SequenceValue: LBRACE ElementValueList RBRACE ! 184: | LBRACE RBRACE ! 185: ; ! 186: ! 187: ElementValueList: NamedValue ! 188: | ElementValueList COMMA NamedValue ! 189: ; ! 190: ! 191: SequenceOfType: SEQUENCE OF Type ! 192: | SEQUENCE ! 193: ; ! 194: ! 195: SequenceOfValue: LBRACE ValueList RBRACE ! 196: | LBRACE RBRACE ! 197: ; ! 198: ! 199: ValueList: Value ! 200: | ValueList COMMA Value ! 201: ; ! 202: ! 203: SetType: SET LBRACE ElementTypeList RBRACE ! 204: | SET LBRACE RBRACE ! 205: ; ! 206: ! 207: SetValue: LBRACE ElementValueList RBRACE ! 208: | LBRACE RBRACE ! 209: ; ! 210: ! 211: SetOfType: SET OF Type ! 212: | SET ! 213: ; ! 214: ! 215: SetOfValue: LBRACE ValueList RBRACE ! 216: | LBRACE RBRACE ! 217: ; ! 218: ! 219: ChoiceType: CHOICE LBRACE AlternativeTypeList RBRACE ! 220: ; ! 221: ! 222: AlternativeTypeList: NamedType ! 223: | AlternativeTypeList COMMA NamedType ! 224: ; ! 225: ! 226: ChoiceValue: NamedValue ! 227: ; ! 228: ! 229: SelectionType: IDENTIFIER LANGLE Type ! 230: ; ! 231: ! 232: SelectionValue: NamedValue ! 233: ; ! 234: ! 235: TaggedType: Tag Type ! 236: | Tag IMPLICIT Type ! 237: ; ! 238: ! 239: Tag: LBRACKET Class ClassNumber RBRACKET ! 240: ; ! 241: ! 242: ClassNumber: NUMBER ! 243: | DefinedValue ! 244: ; ! 245: ! 246: Class: UNIVERSAL ! 247: | APPLICATION ! 248: | PRIVATE ! 249: | empty ! 250: ; ! 251: ! 252: TaggedValue: Value ! 253: ; ! 254: ! 255: AnyType: ANY ! 256: ; ! 257: ! 258: AnyValue: Type Value ! 259: ; ! 260: ! 261: ObjectIdentifierType: OBJECT IDENTIFIER ! 262: ; ! 263: ! 264: ObjectIdentifierValue: LBRACE ObjIdComponentList RBRACE ! 265: | LBRACE DefinedValue ObjIdComponentList RBRACE ! 266: ; ! 267: ! 268: ObjIdComponentList: ObjIdComponent ! 269: | ObjIdComponent ObjIdComponentList ! 270: ; ! 271: ! 272: ObjIdComponent: NameForm ! 273: | NumberForm ! 274: | NameAndNumberForm ! 275: ; ! 276: ! 277: NameForm: IDENTIFIER ! 278: ; ! 279: ! 280: NumberForm: NUMBER ! 281: | DefinedValue ! 282: ; ! 283: ! 284: NameAndNumberForm: IDENTIFIER LPAREN NumberForm RPAREN ! 285: ; ! 286: ! 287: /* CharacterStringType: TYPEREFERENCE ! 288: ; ! 289: ! 290: CharacterStringValue: CSTRING ! 291: ; ! 292: ! 293: UsefulType: TYPEREFERENCE ! 294: ; ! 295: */ ! 296: empty: /* empty */ ! 297: ; ! 298: ! 299: ! 300: /* Macro stuff */ ! 301: ! 302: MacroDefinition: MACROREFERENCE ! 303: MACRO CCE ! 304: BGIN ! 305: MacroBody ! 306: END ! 307: ; ! 308: ! 309: MacroBody: TypeProduction ! 310: | ValueProduction ! 311: | SupportingProductions ! 312: ; ! 313: ! 314: TypeProduction: TYPE NOTATION ! 315: CCE ! 316: MacroAlternativeList ! 317: ; ! 318: ! 319: ValueProduction: VALUE NOTATION ! 320: CCE ! 321: MacroAlternativeList ! 322: ; ! 323: ! 324: SupportingProductions: ProductionList ! 325: | empty ! 326: ; ! 327: ! 328: ProductionList: Production ! 329: | ProductionList Production ! 330: ; ! 331: ! 332: Production: PRODUCTIONREFERENCE ! 333: CCE ! 334: MacroAlternativeList ! 335: ; ! 336: ! 337: MacroAlternativeList: MacroAlternative ! 338: | MacroAlternativeList BAR MacroAlternative ! 339: ; ! 340: ! 341: MacroAlternative: SymbolList ! 342: ; ! 343: ! 344: SymbolList: SymbolElement ! 345: | SymbolList SymbolElement ! 346: ; ! 347: ! 348: SymbolElement: SymbolDefn ! 349: | EmbeddedDefinitions ! 350: ; ! 351: ! 352: SymbolDefn: ASTRING ! 353: | PRODUCTIONREFERENCE ! 354: | QSTRING ! 355: | QIDENTIFIER ! 356: | QNUMBER ! 357: | QEMPTY ! 358: | TYPE ! 359: | TYPE LPAREN LOCALTYPEREFERENCE RPAREN ! 360: | VALUE LPAREN MacroType RPAREN ! 361: | VALUE LPAREN LOCALVALUEREFERENCE RPAREN ! 362: | VALUE LPAREN VVALUE MacroType RPAREN ! 363: ; ! 364: ! 365: MacroType: LOCALVALUEREFERENCE ! 366: | Type ! 367: ; ! 368: ! 369: EmbeddedDefinitions: RANGLE EmbeddedDefinitionList LANGLE ! 370: ; ! 371: ! 372: EmbeddedDefinitionList: EmbeddedDefinition ! 373: | EmbeddedDefinitionList EmbeddedDefinition ! 374: ; ! 375: ! 376: EmbeddedDefinition: LocalTypeAssignment ! 377: | LocalValueAssignment ! 378: ; ! 379: ! 380: LocalTypeAssignment: LOCALTYPEREFERENCE CCE MacroType ! 381: ; ! 382: ! 383: LocalValueAssignment: LOCALVALUEREFERENCE MacroType CCE MacroValue ! 384: ; ! 385: ! 386: MacroValue: Value ! 387: | LOCALVALUEREFERENCE ! 388: ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.