home *** CD-ROM | disk | FTP | other *** search
- #ifndef lint
- char yysccsid[] = "@(#)yaccpar 1.4 (Berkeley) 02/25/90";
- #endif
- #line 41 "sdefyacc.y"
- #ifndef SCHEMA_DEF_H
- #include "schema_def.h"
- #endif
-
- #ifndef SD_ERROR_H
- #include "sd_error.h"
- #endif
-
- /*
- * Try to get rid of (some of) these
- */
- #include <ctype.h>
- #include <stdio.h>
- #include <iostream.h>
- #include <string.h>
-
- /*
- * defines the type YYSTYPE in a somewhat hacky way...
- */
- #include "yystype.h"
-
- /* include the lex stuff*/
- #include "lex.h"
-
- /* include this to make the CC compiler happy.*/
- extern int yyparse( void );
-
- /**
- ** Declarations of strings used as args to sd_signal_error
- **/
- /* schema_r.y*/
- static kb_STRING MISSING_LBRACE_IGNORED_STR = "Missing left brace ignored";
- static kb_STRING MISSING_LBRACE_FATAL_STR = "Missing left brace fatal";
-
- /* schema_macros.h*/
- static kb_STRING MISSING_SEMICOLON_STR = "Missing semicolon";
- static kb_STRING MISSING_COMMA_STR = "Missing comma?";
- static kb_STRING MULTIPLE_CONTEXTLESS_STR = "Contextless multiply declared";
- static kb_STRING MULTIPLE_NO_LINKS_STR = "No_links_to_instances multiply declared";
-
-
- #line 47 "y_tab.c"
- #define CLASS_SCHEMA 257
- #define INSTANCE_SCHEMA 258
- #define META_KNOWLEDGE_INSTANCE 259
- #define BASE_RELATION_CLASS 260
- #define BASE_ATTRIBUTE_CLASS 261
- #define BASE_MESSAGE_CLASS 262
- #define ATTRIBUTE_SPECIALIZATION_CLASS 263
- #define RELATION_SPECIALIZATION_CLASS 264
- #define MESSAGE_SPECIALIZATION_CLASS 265
- #define DECLARE_ATTRIBUTE_SLOTS 266
- #define DECLARE_RELATION_SLOTS 267
- #define DECLARE_MESSAGE_SLOTS 268
- #define SUBCLASS_OF 269
- #define INSTANCE_OF 270
- #define META_SCHEMA 271
- #define META_SLOT 272
- #define META_VALUE 273
- #define SYSTEM_SCHEMA 274
- #define INVERSE_RELATION 275
- #define VALUE_TYPE 276
- #define CARDINALITY 277
- #define SPECIALIZATION_OF 278
- #define DECLARATIONS 279
- #define CONTEXTLESS 280
- #define NO_LINKS_TO_INSTANCES 281
- #define SYSTEM_RELATIONS_FIRST 282
- #define USER_RELATIONS_FIRST 283
- #define RELATIONS 284
- #define ATTRIBUTES 285
- #define MESSAGES 286
- #define SLOT_CONTROL 287
- #define NUM 288
- #define CHAR 289
- #define STRING 290
- #define C_IDENTIFIER 291
- #define NAME_STRING 292
- #define EMPTY 293
- #define MULTIPLE 294
- #define SINGLE 295
- #define NULL_VALUE 296
- #define KB_BEFORE_GET 297
- #define KB_AFTER_GET 298
- #define KB_BEFORE_PUT 299
- #define KB_AFTER_PUT 300
- #define KB_BEFORE_DEL 301
- #define KB_AFTER_DEL 302
- #define KB_INCLUSION_RELATION_SPEC 303
- #define KB_EXCLUSION_RELATION_SPEC 304
- #define KB_INCLUSION_ATTRIBUTE_SPEC 305
- #define KB_EXCLUSION_ATTRIBUTE_SPEC 306
- #define KB_INCLUSION_MESSAGE_SPEC 307
- #define KB_EXCLUSION_MESSAGE_SPEC 308
- #define SD_TRUE 309
- #define SD_FALSE 310
- #define ALL_SLOTS 311
- #define NO_SLOTS 312
- #define VT_schar 313
- #define VT_char 314
- #define VT_uchar 315
- #define VT_short 316
- #define VT_int 317
- #define VT_long 318
- #define VT_ushort 319
- #define VT_uint 320
- #define VT_ulong 321
- #define VT_float 322
- #define VT_double 323
- #define VT_void_ptr 324
- #define VT_kb_STRING 325
- #define VT_kb_ANY 326
- #define VT_kb_SLOT_ID 327
- #define VT_kb_SCHEMA_ID 328
- #define VT_kb_FUNCTION_ID 329
- #define VT_kb_BOOLEAN 330
- #define YYERRCODE 256
- short yylhs[] = { -1,
- 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 0, 3, 3, 3, 3, 4, 4,
- 5, 5, 8, 7, 7, 10, 7, 7, 12, 7,
- 7, 9, 9, 11, 11, 13, 13, 14, 15, 16,
- 6, 6, 6, 6, 6, 6, 24, 24, 24, 24,
- 28, 34, 30, 25, 36, 41, 38, 26, 27, 27,
- 43, 43, 43, 43, 45, 45, 45, 50, 46, 44,
- 44, 44, 44, 51, 51, 51, 54, 52, 31, 31,
- 31, 32, 32, 32, 32, 33, 33, 39, 39, 39,
- 40, 40, 40, 40, 40, 49, 49, 47, 47, 48,
- 48, 62, 62, 62, 53, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 55, 55, 55, 64, 64, 64,
- 63, 63, 29, 29, 58, 58, 37, 37, 66, 42,
- 23, 20, 19, 19, 19, 67, 67, 67, 67, 67,
- 67, 68, 68, 68, 68, 68, 68, 65, 65, 56,
- 56, 56, 56, 70, 70, 70, 69, 69, 69, 69,
- 71, 71, 59, 59, 59, 59, 59, 59, 57, 57,
- 60, 60, 60, 17, 17, 17, 72, 72, 35, 35,
- 73, 73, 73, 73, 78, 74, 74, 80, 75, 75,
- 82, 76, 76, 83, 83, 84, 84, 77, 77, 85,
- 85, 85, 86, 87, 89, 90, 90, 90, 21, 21,
- 21, 22, 88, 88, 88, 92, 92, 92, 91, 91,
- 79, 79, 93, 93, 93, 97, 94, 95, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 96, 96, 96,
- 96, 99, 99, 99, 99, 98, 98, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 81, 81, 101, 101,
- 101, 105, 102, 103, 104, 104, 104, 104, 104, 104,
- 104, 106, 106, 107, 107,
- };
- short yylen[] = { 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 1, 2,
- 1, 2, 0, 5, 1, 0, 5, 1, 0, 5,
- 1, 1, 2, 1, 2, 1, 2, 4, 7, 2,
- 0, 1, 1, 1, 1, 1, 2, 2, 3, 3,
- 1, 0, 7, 3, 1, 0, 7, 3, 1, 1,
- 2, 2, 3, 3, 1, 1, 1, 0, 10, 2,
- 2, 3, 3, 1, 1, 1, 0, 8, 3, 3,
- 2, 0, 3, 3, 3, 0, 3, 3, 3, 2,
- 0, 3, 5, 3, 3, 0, 3, 0, 3, 0,
- 3, 1, 1, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 0, 1, 3, 1, 3, 2,
- 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 1, 2, 3, 1, 3, 2, 1, 1, 1, 1,
- 1, 1, 0, 1, 1, 1, 1, 1, 1, 5,
- 2, 2, 1, 1, 1, 0, 0, 1, 0, 2,
- 1, 1, 1, 1, 0, 3, 1, 0, 3, 1,
- 0, 3, 1, 0, 3, 0, 3, 1, 2, 1,
- 1, 1, 5, 6, 3, 2, 2, 1, 1, 1,
- 0, 1, 0, 2, 4, 1, 3, 2, 1, 5,
- 1, 2, 1, 1, 1, 0, 7, 5, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 0, 2, 4,
- 2, 0, 1, 3, 2, 1, 5, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
- 1, 0, 5, 5, 0, 2, 4, 4, 4, 2,
- 3, 1, 5, 3, 1,
- };
- short yydefred[] = { 0,
- 46, 51, 55, 0, 65, 66, 67, 74, 75, 76,
- 0, 0, 0, 0, 0, 0, 0, 19, 21, 42,
- 43, 44, 45, 0, 0, 59, 60, 0, 0, 158,
- 159, 0, 140, 0, 0, 0, 0, 0, 20, 22,
- 3, 6, 5, 133, 8, 9, 7, 10, 4, 11,
- 12, 13, 47, 48, 0, 134, 0, 139, 137, 61,
- 62, 0, 70, 71, 0, 0, 58, 0, 0, 0,
- 0, 49, 50, 54, 0, 63, 64, 0, 72, 73,
- 0, 0, 184, 185, 0, 32, 0, 0, 0, 34,
- 0, 36, 0, 141, 0, 0, 0, 0, 135, 90,
- 0, 136, 0, 56, 24, 33, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 0, 0, 27, 35, 30, 37,
- 40, 131, 0, 81, 0, 126, 132, 0, 52, 0,
- 0, 0, 0, 89, 88, 174, 177, 175, 176, 1,
- 2, 0, 178, 0, 0, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 0, 145, 143,
- 144, 0, 142, 128, 0, 80, 79, 168, 169, 171,
- 172, 0, 170, 0, 161, 167, 0, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 0, 0, 0, 0, 77,
- 0, 95, 92, 94, 0, 189, 38, 0, 127, 0,
- 130, 162, 164, 0, 85, 83, 84, 189, 99, 102,
- 103, 104, 0, 0, 0, 105, 0, 0, 0, 179,
- 0, 0, 219, 220, 0, 129, 163, 0, 166, 0,
- 101, 183, 0, 0, 0, 68, 189, 93, 0, 87,
- 194, 0, 0, 0, 57, 190, 191, 192, 193, 0,
- 222, 165, 53, 182, 181, 97, 0, 0, 0, 0,
- 0, 0, 39, 189, 78, 0, 212, 188, 0, 0,
- 0, 208, 210, 211, 235, 0, 0, 0, 231, 233,
- 234, 281, 0, 0, 0, 277, 279, 280, 0, 180,
- 0, 0, 209, 0, 0, 232, 0, 282, 278, 69,
- 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 236, 0,
- 0, 0, 217, 216, 215, 0, 0, 0, 229, 224,
- 213, 207, 0, 238, 0, 284, 0, 290, 0, 0,
- 286, 292, 283, 214, 226, 0, 0, 205, 0, 0,
- 0, 291, 0, 0, 225, 0, 228, 0, 268, 271,
- 272, 0, 261, 273, 274, 275, 276, 0, 0, 270,
- 259, 266, 237, 294, 287, 288, 289, 0, 227, 0,
- 0, 263, 0, 0, 0, 230, 269, 260, 0, 265,
- 0, 293, 264, 0, 267,
- };
- short yydgoto[] = { 14,
- 183, 54, 15, 16, 17, 18, 19, 34, 85, 35,
- 89, 36, 91, 86, 90, 92, 87, 125, 168, 172,
- 245, 270, 93, 20, 21, 22, 23, 24, 240, 73,
- 96, 139, 216, 187, 242, 25, 57, 67, 82, 104,
- 155, 32, 26, 27, 28, 77, 141, 208, 235, 277,
- 29, 80, 143, 237, 135, 184, 241, 101, 154, 255,
- 206, 233, 136, 175, 56, 59, 170, 171, 185, 224,
- 186, 290, 266, 267, 268, 269, 291, 280, 298, 281,
- 305, 282, 338, 325, 292, 293, 294, 335, 322, 332,
- 350, 366, 299, 300, 301, 370, 355, 391, 403, 392,
- 306, 307, 308, 342, 328, 361, 362,
- };
- short yysindex[] = { 845,
- 0, 0, 0, -211, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 845, 858, -172, 0, 0, 0,
- 0, 0, 0, 465, -211, 0, 0, 489, 518, 0,
- 0, -90, 0, -80, -71, -54, 858, -172, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 552, 0, -90, 0, 0, 0,
- 0, 573, 0, 0, 591, -199, 0, -190, 35, -211,
- -184, 0, 0, 0, -184, 0, 0, -184, 0, 0,
- -111, -180, 0, 0, -103, 0, 698, -190, -24, 0,
- -98, 0, 53, 0, 351, -156, -142, -138, 0, 0,
- 269, 0, -78, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 756, -211, 0, 0, 0, 0,
- 0, 0, -213, 0, 294, 0, 0, 525, 0, 716,
- -123, -159, -156, 0, 0, 0, 0, 0, 0, 0,
- 0, 189, 0, -49, -102, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
- 0, 101, 0, 0, 327, 0, 0, 0, 0, 0,
- 0, 229, 0, 361, 0, 0, -102, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 109, -130, -101, 113, 0,
- 62, 0, 0, 0, -68, 0, 0, -185, 0, -213,
- 0, 0, 0, 301, 0, 0, 0, 0, 0, 0,
- 0, 0, 123, -119, -156, 0, -102, 141, -159, 0,
- 142, -77, 0, 0, -211, 0, 0, 209, 0, -41,
- 0, 0, 85, 756, 153, 0, 0, 0, 181, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 193,
- 0, 0, 0, 0, 0, 0, -102, 273, -211, 73,
- 107, 130, 0, 0, 0, 115, 0, 0, -47, -190,
- 73, 0, 0, 0, 0, -47, -190, 107, 0, 0,
- 0, 0, -47, -211, 130, 0, 0, 0, 343, 0,
- 19, -211, 0, 20, 698, 0, 20, 0, 0, 0,
- -110, 20, 281, -159, 83, 756, 83, 295, 0, 239,
- -211, 314, 83, 18, 342, 344, -68, 380, 0, 381,
- 30, 370, 0, 0, 0, 390, 60, -211, 0, 0,
- 0, 0, 373, 0, 341, 0, 393, 0, -17, 157,
- 0, 0, 0, 0, 0, -39, 176, 0, 7, 391,
- 410, 0, -32, 200, 0, 60, 0, -68, 0, 0,
- 0, 435, 0, 0, 0, 0, 0, 49, -153, 0,
- 0, 0, 0, 0, 0, 0, 0, -68, 0, 436,
- 437, 0, 23, 206, 441, 0, 0, 0, 49, 0,
- -68, 0, 0, 442, 0,
- };
- short yyrindex[] = { 484,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 150, 178, 197, 0, 487, 38, 118, 0, 0, 0,
- 0, 0, 0, 0, 371, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 57, 131, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 680, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 305, 0, 0, 680, 0, 774, -166, 0, 0,
- 0, 0, 0, 0, 338, 528, 622, 0, 0, 0,
- 0, 0, 388, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 407, 0, 434,
- 644, 0, 528, 0, 0, 0, 0, 0, 0, 0,
- 0, 374, 0, 0, 627, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 627, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 555, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -146, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 792, 528, 0, 627, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 211, -37, 232, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 627, 0, 0, 133,
- 640, -125, 0, 0, 0, 0, 0, 0, 133, -166,
- -96, 0, 0, 0, 0, 640, 680, 403, 0, 0,
- 0, 0, -125, 0, -53, 0, 0, 0, 0, 0,
- 0, 0, 0, -30, 774, 0, -30, 0, 0, 0,
- -146, -30, 439, 0, 466, 0, 466, 449, 0, 0,
- 0, 0, 466, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 141, 0, 360, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 58, 0, 0, 0, 0, 0, -19, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
- };
- short yygindex[] = { 0,
- -88, -11, 0, 499, 500, 16, 22, 0, 0, 0,
- 0, 0, 0, 445, 430, 431, -79, 212, -228, 214,
- 210, 202, 230, 0, 0, 0, 0, 0, -22, 0,
- -38, -124, -163, 0, -192, 0, 0, 478, 0, 0,
- 0, 257, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -295, 0, 385, 0,
- 0, 0, -113, 0, -4, 0, 0, 0, -151, 0,
- 0, -154, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -299, -276, 250, 253, 0, 0, 0, 0,
- -317, 0, 245, 254, 0, 0, 0, -353, 0, 160,
- 246, 249, 0, 0, 0, -291, 196,
- };
- #define YYTABLESIZE 1123
- short yytable[] = { 33,
- 348, 55, 198, 253, 376, 62, 65, 360, 126, 213,
- 206, 396, 330, 100, 153, 88, 61, 64, 210, 174,
- 58, 105, 360, 228, 262, 275, 129, 340, 196, 365,
- 223, 39, 66, 346, 402, 250, 97, 15, 40, 98,
- 327, 353, 68, 72, 152, 333, 389, 265, 377, 410,
- 76, 69, 39, 79, 239, 413, 17, 348, 399, 40,
- 132, 221, 389, 153, 278, 94, 409, 373, 70, 360,
- 81, 202, 249, 257, 88, 212, 102, 30, 31, 30,
- 31, 397, 400, 273, 95, 375, 94, 200, 389, 145,
- 137, 309, 395, 11, 12, 13, 272, 339, 103, 348,
- 127, 158, 405, 83, 84, 262, 246, 372, 243, 244,
- 256, 131, 289, 284, 44, 414, 158, 16, 232, 209,
- 169, 173, 138, 177, 186, 186, 297, 304, 137, 388,
- 18, 30, 31, 140, 379, 380, 381, 382, 31, 142,
- 347, 297, 214, 297, 221, 221, 296, 408, 304, 25,
- 304, 217, 359, 207, 254, 384, 385, 386, 387, 218,
- 150, 151, 99, 230, 231, 187, 187, 229, 215, 303,
- 137, 236, 227, 234, 83, 84, 252, 28, 261, 30,
- 31, 251, 158, 243, 244, 329, 238, 196, 196, 196,
- 83, 84, 30, 31, 187, 187, 31, 187, 187, 258,
- 260, 146, 147, 148, 149, 44, 262, 263, 264, 274,
- 312, 276, 150, 151, 261, 137, 259, 315, 198, 41,
- 42, 43, 30, 31, 279, 45, 46, 47, 48, 49,
- 202, 202, 202, 283, 50, 51, 52, 187, 187, 310,
- 271, 206, 262, 263, 264, 288, 200, 200, 200, 169,
- 195, 30, 31, 198, 198, 198, 198, 198, 357, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 201, 23, 357, 33, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 321, 379, 380, 381, 382, 31, 94,
- 26, 336, 383, 15, 15, 15, 324, 173, 30, 31,
- 379, 380, 381, 382, 31, 384, 385, 386, 387, 29,
- 357, 169, 17, 17, 17, 358, 271, 144, 287, 349,
- 158, 384, 385, 386, 387, 197, 379, 380, 381, 382,
- 31, 334, 349, 367, 248, 158, 158, 158, 158, 158,
- 30, 31, 176, 222, 337, 341, 203, 384, 385, 386,
- 387, 349, 295, 343, 390, 288, 158, 158, 158, 158,
- 220, 349, 345, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 390, 390, 302, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 125, 285, 390, 288,
- 351, 369, 352, 295, 390, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 295, 226,
- 354, 356, 288, 187, 187, 247, 187, 187, 363, 91,
- 364, 368, 371, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 173, 357, 378, 393,
- 394, 219, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 31, 31, 31, 160, 195, 320, 146, 147,
- 148, 149, 398, 133, 401, 134, 406, 407, 411, 150,
- 151, 412, 415, 41, 295, 225, 14, 201, 178, 179,
- 180, 181, 124, 138, 197, 197, 197, 223, 173, 150,
- 151, 195, 195, 195, 195, 195, 204, 285, 178, 179,
- 180, 181, 173, 37, 38, 203, 203, 203, 128, 150,
- 151, 130, 201, 201, 201, 323, 326, 199, 261, 106,
- 331, 160, 344, 318, 74, 286, 211, 41, 42, 43,
- 313, 311, 316, 45, 46, 47, 48, 49, 404, 314,
- 319, 317, 50, 51, 52, 374, 262, 263, 264, 0,
- 91, 0, 41, 42, 43, 0, 0, 0, 45, 46,
- 47, 48, 49, 0, 0, 91, 0, 50, 51, 52,
- 178, 179, 180, 181, 0, 0, 0, 53, 91, 91,
- 91, 150, 151, 0, 0, 0, 0, 0, 261, 0,
- 132, 0, 0, 0, 0, 0, 125, 125, 125, 0,
- 0, 60, 125, 125, 125, 125, 125, 30, 31, 0,
- 0, 125, 125, 125, 132, 0, 262, 263, 264, 41,
- 42, 43, 295, 0, 0, 45, 46, 47, 48, 49,
- 63, 30, 31, 0, 50, 51, 52, 182, 0, 0,
- 295, 0, 82, 0, 0, 0, 173, 173, 173, 0,
- 0, 0, 173, 173, 173, 173, 173, 0, 0, 0,
- 0, 173, 173, 173, 71, 160, 160, 160, 0, 96,
- 0, 160, 160, 160, 160, 160, 199, 199, 199, 0,
- 160, 160, 160, 187, 187, 75, 187, 187, 0, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 0, 0, 78, 0, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 41, 42, 43, 0, 0, 44, 45,
- 46, 47, 48, 49, 0, 0, 98, 0, 50, 51,
- 52, 86, 0, 0, 0, 30, 31, 41, 42, 43,
- 0, 0, 44, 45, 46, 47, 48, 49, 100, 0,
- 0, 0, 50, 51, 52, 0, 0, 0, 0, 30,
- 31, 0, 0, 82, 0, 0, 41, 42, 43, 0,
- 0, 44, 45, 46, 47, 48, 49, 0, 82, 0,
- 0, 50, 51, 52, 178, 179, 180, 181, 30, 31,
- 96, 82, 82, 82, 0, 150, 151, 0, 0, 0,
- 41, 42, 43, 0, 0, 96, 45, 46, 47, 48,
- 49, 0, 0, 96, 0, 50, 51, 52, 96, 96,
- 96, 41, 42, 43, 0, 0, 0, 45, 46, 47,
- 48, 49, 0, 0, 0, 0, 50, 51, 52, 41,
- 42, 43, 0, 0, 0, 45, 46, 47, 48, 49,
- 0, 0, 0, 0, 50, 51, 52, 98, 0, 0,
- 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 98, 0, 0, 0, 98, 0, 98, 100,
- 98, 0, 0, 0, 0, 98, 98, 98, 0, 0,
- 86, 86, 86, 0, 100, 0, 0, 0, 100, 0,
- 0, 0, 100, 0, 0, 0, 0, 100, 100, 100,
- 187, 187, 0, 187, 187, 0, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 0, 0,
- 0, 0, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 186, 186, 0, 0, 0, 0, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 0, 0,
- 0, 0, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 30, 31, 0, 0,
- 0, 0, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 257, 257, 0, 0, 0, 0,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 186, 186, 0, 0, 0, 0, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10,
- };
- short yycheck[] = { 4,
- 40, 24, 40, 123, 44, 28, 29, 40, 88, 59,
- 41, 44, 123, 125, 103, 40, 28, 29, 143, 133,
- 25, 125, 40, 187, 44, 254, 125, 327, 125, 347,
- 182, 16, 123, 333, 388, 228, 75, 0, 17, 78,
- 317, 337, 123, 55, 123, 322, 40, 125, 366, 403,
- 62, 123, 37, 65, 123, 409, 0, 40, 376, 38,
- 274, 175, 40, 152, 257, 70, 44, 359, 123, 40,
- 270, 125, 224, 237, 40, 125, 81, 291, 292, 291,
- 292, 373, 378, 125, 269, 125, 91, 125, 40, 101,
- 95, 284, 125, 266, 267, 268, 248, 326, 279, 40,
- 125, 44, 398, 294, 295, 125, 220, 125, 294, 295,
- 235, 59, 40, 277, 274, 411, 59, 0, 207, 142,
- 125, 126, 279, 135, 291, 292, 281, 282, 133, 123,
- 0, 291, 292, 276, 288, 289, 290, 291, 292, 278,
- 123, 296, 154, 298, 291, 292, 40, 125, 303, 0,
- 305, 59, 123, 277, 234, 309, 310, 311, 312, 59,
- 291, 292, 274, 294, 295, 291, 292, 59, 271, 40,
- 175, 59, 184, 275, 294, 295, 296, 0, 256, 291,
- 292, 59, 125, 294, 295, 296, 125, 284, 285, 286,
- 294, 295, 291, 292, 291, 292, 0, 294, 295, 59,
- 59, 280, 281, 282, 283, 274, 284, 285, 286, 125,
- 290, 59, 291, 292, 256, 220, 239, 297, 256, 269,
- 270, 271, 291, 292, 44, 275, 276, 277, 278, 279,
- 284, 285, 286, 41, 284, 285, 286, 291, 292, 125,
- 245, 272, 284, 285, 286, 293, 284, 285, 286, 254,
- 40, 291, 292, 291, 292, 293, 294, 295, 291, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 40, 123, 291, 279, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
- 328, 329, 330, 275, 288, 289, 290, 291, 292, 304,
- 123, 324, 296, 266, 267, 268, 287, 312, 291, 292,
- 288, 289, 290, 291, 292, 309, 310, 311, 312, 123,
- 291, 326, 266, 267, 268, 296, 331, 59, 256, 334,
- 273, 309, 310, 311, 312, 125, 288, 289, 290, 291,
- 292, 61, 347, 348, 44, 288, 289, 290, 291, 292,
- 291, 292, 59, 125, 272, 61, 125, 309, 310, 311,
- 312, 366, 256, 125, 369, 293, 309, 310, 311, 312,
- 44, 376, 59, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 388, 389, 256, 256, 257, 258, 259,
- 260, 261, 262, 263, 264, 265, 59, 125, 403, 293,
- 59, 61, 59, 44, 409, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 59, 59,
- 41, 41, 293, 291, 292, 125, 294, 295, 59, 125,
- 41, 59, 40, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 59, 291, 273, 59,
- 41, 125, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 59, 256, 125, 280, 281,
- 282, 283, 273, 123, 40, 125, 41, 41, 273, 291,
- 292, 41, 41, 0, 125, 125, 0, 256, 280, 281,
- 282, 283, 59, 123, 284, 285, 286, 59, 125, 291,
- 292, 291, 292, 293, 294, 295, 41, 59, 280, 281,
- 282, 283, 125, 15, 15, 284, 285, 286, 89, 291,
- 292, 91, 291, 292, 293, 312, 315, 125, 256, 85,
- 321, 125, 331, 304, 57, 279, 152, 269, 270, 271,
- 291, 289, 298, 275, 276, 277, 278, 279, 389, 296,
- 305, 303, 284, 285, 286, 360, 284, 285, 286, -1,
- 256, -1, 269, 270, 271, -1, -1, -1, 275, 276,
- 277, 278, 279, -1, -1, 271, -1, 284, 285, 286,
- 280, 281, 282, 283, -1, -1, -1, 123, 284, 285,
- 286, 291, 292, -1, -1, -1, -1, -1, 256, -1,
- 274, -1, -1, -1, -1, -1, 269, 270, 271, -1,
- -1, 123, 275, 276, 277, 278, 279, 291, 292, -1,
- -1, 284, 285, 286, 274, -1, 284, 285, 286, 269,
- 270, 271, 273, -1, -1, 275, 276, 277, 278, 279,
- 123, 291, 292, -1, 284, 285, 286, 123, -1, -1,
- 291, -1, 125, -1, -1, -1, 269, 270, 271, -1,
- -1, -1, 275, 276, 277, 278, 279, -1, -1, -1,
- -1, 284, 285, 286, 123, 269, 270, 271, -1, 125,
- -1, 275, 276, 277, 278, 279, 284, 285, 286, -1,
- 284, 285, 286, 291, 292, 123, 294, 295, -1, 297,
- 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
- 308, -1, -1, 123, -1, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
- 328, 329, 330, 269, 270, 271, -1, -1, 274, 275,
- 276, 277, 278, 279, -1, -1, 125, -1, 284, 285,
- 286, 125, -1, -1, -1, 291, 292, 269, 270, 271,
- -1, -1, 274, 275, 276, 277, 278, 279, 125, -1,
- -1, -1, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, -1, -1, 256, -1, -1, 269, 270, 271, -1,
- -1, 274, 275, 276, 277, 278, 279, -1, 271, -1,
- -1, 284, 285, 286, 280, 281, 282, 283, 291, 292,
- 256, 284, 285, 286, -1, 291, 292, -1, -1, -1,
- 269, 270, 271, -1, -1, 271, 275, 276, 277, 278,
- 279, -1, -1, 279, -1, 284, 285, 286, 284, 285,
- 286, 269, 270, 271, -1, -1, -1, 275, 276, 277,
- 278, 279, -1, -1, -1, -1, 284, 285, 286, 269,
- 270, 271, -1, -1, -1, 275, 276, 277, 278, 279,
- -1, -1, -1, -1, 284, 285, 286, 256, -1, -1,
- -1, -1, 256, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 271, -1, -1, -1, 275, -1, 277, 256,
- 279, -1, -1, -1, -1, 284, 285, 286, -1, -1,
- 284, 285, 286, -1, 271, -1, -1, -1, 275, -1,
- -1, -1, 279, -1, -1, -1, -1, 284, 285, 286,
- 291, 292, -1, 294, 295, -1, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, -1, -1,
- -1, -1, 313, 314, 315, 316, 317, 318, 319, 320,
- 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
- 291, 292, -1, -1, -1, -1, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, -1, -1,
- -1, -1, 313, 314, 315, 316, 317, 318, 319, 320,
- 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
- 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 326, 327, 328, 329, 330, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 291, 292, -1, -1,
- -1, -1, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 291, 292, -1, -1, -1, -1,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 291, 292, -1, -1, -1, -1, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
- 266, 267, 268, 256, 257, 258, 259, 260, 261, 262,
- 263, 264, 265,
- };
- #define YYFINAL 14
- #ifndef YYDEBUG
- #define YYDEBUG 0
- #endif
- #define YYMAXTOKEN 330
- #if YYDEBUG
- char *yyname[] = {
- "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,"'('","')'",0,0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,0,"';'",0,"'='",0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- "CLASS_SCHEMA","INSTANCE_SCHEMA","META_KNOWLEDGE_INSTANCE",
- "BASE_RELATION_CLASS","BASE_ATTRIBUTE_CLASS","BASE_MESSAGE_CLASS",
- "ATTRIBUTE_SPECIALIZATION_CLASS","RELATION_SPECIALIZATION_CLASS",
- "MESSAGE_SPECIALIZATION_CLASS","DECLARE_ATTRIBUTE_SLOTS",
- "DECLARE_RELATION_SLOTS","DECLARE_MESSAGE_SLOTS","SUBCLASS_OF","INSTANCE_OF",
- "META_SCHEMA","META_SLOT","META_VALUE","SYSTEM_SCHEMA","INVERSE_RELATION",
- "VALUE_TYPE","CARDINALITY","SPECIALIZATION_OF","DECLARATIONS","CONTEXTLESS",
- "NO_LINKS_TO_INSTANCES","SYSTEM_RELATIONS_FIRST","USER_RELATIONS_FIRST",
- "RELATIONS","ATTRIBUTES","MESSAGES","SLOT_CONTROL","NUM","CHAR","STRING",
- "C_IDENTIFIER","NAME_STRING","EMPTY","MULTIPLE","SINGLE","NULL_VALUE",
- "KB_BEFORE_GET","KB_AFTER_GET","KB_BEFORE_PUT","KB_AFTER_PUT","KB_BEFORE_DEL",
- "KB_AFTER_DEL","KB_INCLUSION_RELATION_SPEC","KB_EXCLUSION_RELATION_SPEC",
- "KB_INCLUSION_ATTRIBUTE_SPEC","KB_EXCLUSION_ATTRIBUTE_SPEC",
- "KB_INCLUSION_MESSAGE_SPEC","KB_EXCLUSION_MESSAGE_SPEC","SD_TRUE","SD_FALSE",
- "ALL_SLOTS","NO_SLOTS","VT_schar","VT_char","VT_uchar","VT_short","VT_int",
- "VT_long","VT_ushort","VT_uint","VT_ulong","VT_float","VT_double","VT_void_ptr",
- "VT_kb_STRING","VT_kb_ANY","VT_kb_SLOT_ID","VT_kb_SCHEMA_ID",
- "VT_kb_FUNCTION_ID","VT_kb_BOOLEAN",
- };
- char *yyrule[] = {
- "$accept : start_sdefs",
- "garbage : C_IDENTIFIER",
- "garbage : NAME_STRING",
- "sd_keywd : SUBCLASS_OF",
- "sd_keywd : DECLARATIONS",
- "sd_keywd : META_SCHEMA",
- "sd_keywd : INSTANCE_OF",
- "sd_keywd : CARDINALITY",
- "sd_keywd : INVERSE_RELATION",
- "sd_keywd : VALUE_TYPE",
- "sd_keywd : SPECIALIZATION_OF",
- "sd_keywd : RELATIONS",
- "sd_keywd : ATTRIBUTES",
- "sd_keywd : MESSAGES",
- "start_sdefs : schema_def_components",
- "schema_def_components : schema_defs",
- "schema_def_components : forward_slot_decls",
- "schema_def_components : schema_def_components schema_defs",
- "schema_def_components : schema_def_components forward_slot_decls",
- "schema_defs : schema_def",
- "schema_defs : schema_defs schema_def",
- "forward_slot_decls : forward_slot_def",
- "forward_slot_decls : forward_slot_decls forward_slot_def",
- "$$1 :",
- "forward_slot_def : DECLARE_ATTRIBUTE_SLOTS $$1 '{' fwd_attribute_slot_decl '}'",
- "forward_slot_def : DECLARE_ATTRIBUTE_SLOTS",
- "$$2 :",
- "forward_slot_def : DECLARE_RELATION_SLOTS $$2 '{' fwd_relation_slot_decl '}'",
- "forward_slot_def : DECLARE_RELATION_SLOTS",
- "$$3 :",
- "forward_slot_def : DECLARE_MESSAGE_SLOTS $$3 '{' fwd_message_slot_decl '}'",
- "forward_slot_def : DECLARE_MESSAGE_SLOTS",
- "fwd_attribute_slot_decl : fwd_att_slot",
- "fwd_attribute_slot_decl : fwd_attribute_slot_decl fwd_att_slot",
- "fwd_relation_slot_decl : fwd_rel_slot",
- "fwd_relation_slot_decl : fwd_relation_slot_decl fwd_rel_slot",
- "fwd_message_slot_decl : fwd_msg_slot",
- "fwd_message_slot_decl : fwd_message_slot_decl fwd_msg_slot",
- "fwd_att_slot : card value_type slot_name ';'",
- "fwd_rel_slot : '(' card rel_slot_name ';' inverse_card inverse_slot_name ')'",
- "fwd_msg_slot : msg_slot_name ';'",
- "schema_def :",
- "schema_def : class_def",
- "schema_def : instance_def",
- "schema_def : meta_knowledge_instance_def",
- "schema_def : slot_control_def",
- "schema_def : error",
- "class_def : class_schema '{'",
- "class_def : class_schema sd_keywd",
- "class_def : class_schema class_name sd_keywd",
- "class_def : class_schema class_name class_def_body",
- "class_schema : CLASS_SCHEMA",
- "$$4 :",
- "class_def_body : '{' subclass_of class_decl $$4 meta_schema slot_specs '}'",
- "instance_def : instance_schema optional_instance_name instance_def_body",
- "instance_schema : INSTANCE_SCHEMA",
- "$$5 :",
- "instance_def_body : '{' instance_of inst_decl $$5 meta_schema slot_specs '}'",
- "meta_knowledge_instance_def : META_KNOWLEDGE_INSTANCE meta_knowledge_instance_name instance_def_body",
- "slot_control_def : base_slot_def",
- "slot_control_def : slot_specialization_def",
- "base_slot_def : base_slot_type '{'",
- "base_slot_def : base_slot_type sd_keywd",
- "base_slot_def : base_slot_type class_name sd_keywd",
- "base_slot_def : base_slot_type class_name base_slot_class_body",
- "base_slot_type : BASE_RELATION_CLASS",
- "base_slot_type : BASE_ATTRIBUTE_CLASS",
- "base_slot_type : BASE_MESSAGE_CLASS",
- "$$6 :",
- "base_slot_class_body : '{' subclass_of val_type_spec card_spec inverse_relation class_decl $$6 meta_schema slot_specs '}'",
- "slot_specialization_def : specialization_type '{'",
- "slot_specialization_def : specialization_type sd_keywd",
- "slot_specialization_def : specialization_type class_name sd_keywd",
- "slot_specialization_def : specialization_type class_name specialization_def_body",
- "specialization_type : ATTRIBUTE_SPECIALIZATION_CLASS",
- "specialization_type : RELATION_SPECIALIZATION_CLASS",
- "specialization_type : MESSAGE_SPECIALIZATION_CLASS",
- "$$7 :",
- "specialization_def_body : '{' subclass_of specialization_of class_decl $$7 meta_schema slot_specs '}'",
- "subclass_of : SUBCLASS_OF superclass_list sd_keywd",
- "subclass_of : SUBCLASS_OF superclass_list ';'",
- "subclass_of : SUBCLASS_OF '}'",
- "class_decl :",
- "class_decl : DECLARATIONS class_declarations ';'",
- "class_decl : DECLARATIONS class_declarations sd_keywd",
- "class_decl : DECLARATIONS class_declarations '}'",
- "meta_schema :",
- "meta_schema : META_SCHEMA meta_knowledge_spec ';'",
- "instance_of : INSTANCE_OF inst_of_class_name sd_keywd",
- "instance_of : INSTANCE_OF inst_of_class_name ';'",
- "instance_of : INSTANCE_OF '}'",
- "inst_decl :",
- "inst_decl : DECLARATIONS inst_declarations ';'",
- "inst_decl : DECLARATIONS '{' inst_declarations '}' ';'",
- "inst_decl : DECLARATIONS inst_declarations sd_keywd",
- "inst_decl : DECLARATIONS inst_declarations '}'",
- "inverse_relation :",
- "inverse_relation : INVERSE_RELATION inverse_relation_spec ';'",
- "val_type_spec :",
- "val_type_spec : VALUE_TYPE sc_value_type ';'",
- "card_spec :",
- "card_spec : CARDINALITY sc_card ';'",
- "sc_card : MULTIPLE",
- "sc_card : SINGLE",
- "sc_card : garbage",
- "specialization_of : SPECIALIZATION_OF class_name ';'",
- "sc_value_type : VT_schar",
- "sc_value_type : VT_char",
- "sc_value_type : VT_uchar",
- "sc_value_type : VT_short",
- "sc_value_type : VT_int",
- "sc_value_type : VT_long",
- "sc_value_type : VT_ushort",
- "sc_value_type : VT_uint",
- "sc_value_type : VT_ulong",
- "sc_value_type : VT_float",
- "sc_value_type : VT_double",
- "sc_value_type : VT_void_ptr",
- "sc_value_type : VT_kb_STRING",
- "sc_value_type : VT_kb_ANY",
- "sc_value_type : VT_kb_SLOT_ID",
- "sc_value_type : VT_kb_SCHEMA_ID",
- "sc_value_type : VT_kb_FUNCTION_ID",
- "sc_value_type : VT_kb_BOOLEAN",
- "sc_value_type :",
- "superclass_list :",
- "superclass_list : superclass_name",
- "superclass_list : '{' superclass_name_seq '}'",
- "superclass_name_seq : superclass_name",
- "superclass_name_seq : superclass_name_seq ',' superclass_name",
- "superclass_name_seq : superclass_name_seq superclass_name",
- "superclass_name : SYSTEM_SCHEMA",
- "superclass_name : name_string",
- "class_name : SYSTEM_SCHEMA",
- "class_name : name_string",
- "inst_of_class_name : SYSTEM_SCHEMA",
- "inst_of_class_name : name_string",
- "optional_instance_name : instance_name",
- "optional_instance_name :",
- "instance_name : name_string",
- "meta_knowledge_instance_name : name_string",
- "msg_slot_name : name_string",
- "rel_slot_name : name_string",
- "slot_name : demon_slot_name",
- "slot_name : inheritance_spec_slot_name",
- "slot_name : name_string",
- "demon_slot_name : KB_BEFORE_GET",
- "demon_slot_name : KB_AFTER_GET",
- "demon_slot_name : KB_BEFORE_PUT",
- "demon_slot_name : KB_AFTER_PUT",
- "demon_slot_name : KB_BEFORE_DEL",
- "demon_slot_name : KB_AFTER_DEL",
- "inheritance_spec_slot_name : KB_INCLUSION_RELATION_SPEC",
- "inheritance_spec_slot_name : KB_EXCLUSION_RELATION_SPEC",
- "inheritance_spec_slot_name : KB_INCLUSION_ATTRIBUTE_SPEC",
- "inheritance_spec_slot_name : KB_EXCLUSION_ATTRIBUTE_SPEC",
- "inheritance_spec_slot_name : KB_INCLUSION_MESSAGE_SPEC",
- "inheritance_spec_slot_name : KB_EXCLUSION_MESSAGE_SPEC",
- "name_string : C_IDENTIFIER",
- "name_string : NAME_STRING",
- "class_declarations :",
- "class_declarations : simple_class_declaration",
- "class_declarations : '{' '}'",
- "class_declarations : '{' class_decl_seq '}'",
- "class_decl_seq : simple_class_declaration",
- "class_decl_seq : class_decl_seq ',' simple_class_declaration",
- "class_decl_seq : class_decl_seq simple_class_declaration",
- "simple_class_declaration : search_order_declaration",
- "simple_class_declaration : CONTEXTLESS",
- "simple_class_declaration : NO_LINKS_TO_INSTANCES",
- "simple_class_declaration : garbage",
- "search_order_declaration : SYSTEM_RELATIONS_FIRST",
- "search_order_declaration : USER_RELATIONS_FIRST",
- "inst_declarations :",
- "inst_declarations : CONTEXTLESS",
- "inst_declarations : SYSTEM_RELATIONS_FIRST",
- "inst_declarations : USER_RELATIONS_FIRST",
- "inst_declarations : NO_LINKS_TO_INSTANCES",
- "inst_declarations : garbage",
- "meta_knowledge_spec : class_name",
- "meta_knowledge_spec : '{' class_name ',' meta_knowledge_instance_name '}'",
- "inverse_relation_spec : card slot_name",
- "inverse_relation_spec : '{' '}'",
- "inverse_relation_spec : NULL_VALUE",
- "card : MULTIPLE",
- "card : SINGLE",
- "card :",
- "empty :",
- "empty : EMPTY",
- "slot_specs :",
- "slot_specs : slot_specs slot_spec",
- "slot_spec : relation_slot_specs",
- "slot_spec : attribute_slot_specs",
- "slot_spec : message_slot_specs",
- "slot_spec : error",
- "$$8 :",
- "relation_slot_specs : RELATIONS $$8 relation_specs",
- "relation_slot_specs : RELATIONS",
- "$$9 :",
- "attribute_slot_specs : ATTRIBUTES $$9 attribute_specs",
- "attribute_slot_specs : ATTRIBUTES",
- "$$10 :",
- "message_slot_specs : MESSAGES $$10 message_specs",
- "message_slot_specs : MESSAGES",
- "meta_slot :",
- "meta_slot : META_SLOT meta_knowledge_spec ';'",
- "slot_control_spec :",
- "slot_control_spec : SLOT_CONTROL class_name ';'",
- "relation_specs : relation_spec",
- "relation_specs : relation_specs relation_spec",
- "relation_spec : simple_rel_spec",
- "relation_spec : complex_rel_spec",
- "relation_spec : error",
- "simple_rel_spec : empty card rel_slot_name relation_link_spec ';'",
- "complex_rel_spec : '(' simple_rel_spec slot_inverse_relation slot_control_spec meta_slot ')'",
- "slot_inverse_relation : INVERSE_RELATION slot_inverse_relation_spec ';'",
- "slot_inverse_relation_spec : inverse_card inverse_slot_name",
- "slot_inverse_relation_spec : '{' '}'",
- "slot_inverse_relation_spec : NULL_VALUE",
- "inverse_card : MULTIPLE",
- "inverse_card : SINGLE",
- "inverse_card :",
- "inverse_slot_name : name_string",
- "relation_link_spec :",
- "relation_link_spec : '=' link",
- "relation_link_spec : '=' '{' link_lst '}'",
- "link_lst : link",
- "link_lst : link_lst ',' link",
- "link_lst : link_lst link",
- "link : name_string",
- "link : '(' name_string META_VALUE meta_knowledge_spec ')'",
- "attribute_specs : attribute_spec",
- "attribute_specs : attribute_specs attribute_spec",
- "attribute_spec : simple_att_spec",
- "attribute_spec : complex_att_spec",
- "attribute_spec : error",
- "$$11 :",
- "simple_att_spec : empty card value_type slot_name $$11 att_value_spec ';'",
- "complex_att_spec : '(' simple_att_spec slot_control_spec meta_slot ')'",
- "value_type : VT_schar",
- "value_type : VT_char",
- "value_type : VT_uchar",
- "value_type : VT_short",
- "value_type : VT_int",
- "value_type : VT_long",
- "value_type : VT_ushort",
- "value_type : VT_uint",
- "value_type : VT_ulong",
- "value_type : VT_float",
- "value_type : VT_double",
- "value_type : VT_void_ptr",
- "value_type : VT_kb_STRING",
- "value_type : VT_kb_ANY",
- "value_type : VT_kb_SLOT_ID",
- "value_type : VT_kb_SCHEMA_ID",
- "value_type : VT_kb_FUNCTION_ID",
- "value_type : VT_kb_BOOLEAN",
- "value_type :",
- "att_value_spec :",
- "att_value_spec : '=' value",
- "att_value_spec : '=' '{' value_seq '}'",
- "att_value_spec : '=' NULL_VALUE",
- "value_seq :",
- "value_seq : value",
- "value_seq : value_seq ',' value",
- "value_seq : value_seq value",
- "value : simple_value",
- "value : '(' simple_value META_VALUE meta_knowledge_spec ')'",
- "simple_value : NUM",
- "simple_value : C_IDENTIFIER '(' ')'",
- "simple_value : name_string",
- "simple_value : CHAR",
- "simple_value : STRING",
- "simple_value : SD_TRUE",
- "simple_value : SD_FALSE",
- "simple_value : ALL_SLOTS",
- "simple_value : NO_SLOTS",
- "message_specs : message_spec",
- "message_specs : message_specs message_spec",
- "message_spec : simple_msg_spec",
- "message_spec : complex_msg_spec",
- "message_spec : error",
- "$$12 :",
- "simple_msg_spec : empty msg_slot_name $$12 msg_method_spec ';'",
- "complex_msg_spec : '(' simple_msg_spec slot_control_spec meta_slot ')'",
- "msg_method_spec :",
- "msg_method_spec : '=' method_spec",
- "msg_method_spec : '=' '{' method_spec '}'",
- "msg_method_spec : '=' '{' method_spec ','",
- "msg_method_spec : '=' '{' method_spec method_spec",
- "msg_method_spec : '=' NULL_VALUE",
- "msg_method_spec : '=' '{' '}'",
- "method_spec : method_function_id",
- "method_spec : '(' method_function_id META_VALUE meta_knowledge_spec ')'",
- "method_function_id : C_IDENTIFIER '(' ')'",
- "method_function_id : C_IDENTIFIER",
- };
- #endif
- #ifndef YYSTYPE
- typedef int YYSTYPE;
- #endif
- #define yyclearin (yychar=(-1))
- #define yyerrok (yyerrflag=0)
- #ifndef YYSTACKSIZE
- #ifdef YYMAXDEPTH
- #define YYSTACKSIZE YYMAXDEPTH
- #else
- #define YYSTACKSIZE 300
- #endif
- #endif
- int yydebug;
- int yynerrs;
- int yyerrflag;
- int yychar;
- short *yyssp;
- YYSTYPE *yyvsp;
- YYSTYPE yyval;
- YYSTYPE yylval;
- #define yystacksize YYSTACKSIZE
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
- #line 2127 "sdefyacc.y"
-
- void yyerror( char* s ) /* Called by yyparse on error */
- {
- if ( CURRENT_INFO->sdef_mode() != REGRESSION_MODE )
- {
- CERR << "\nLine " << CURRENT_INFO->linenum() << ": " << s ;
- }
- }
- // END yyerror()
-
-
-
-
-
-
- #line 947 "y_tab.c"
- #define YYABORT goto yyabort
- #define YYACCEPT goto yyaccept
- #define YYERROR goto yyerrlab
- int
- yyparse()
- {
- register int yym, yyn, yystate;
- #if YYDEBUG
- register char *yys;
- extern char *getenv();
-
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
- #endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
- yyloop:
- if (yyn = yydefred[yystate]) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
- #if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
- #endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- #if YYDEBUG
- if (yydebug)
- printf("yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
- #ifdef lint
- goto yynewerror;
- #endif
- yynewerror:
- yyerror("syntax error");
- #ifdef lint
- goto yyerrlab;
- #endif
- yyerrlab:
- ++yynerrs;
- yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
- #if YYDEBUG
- if (yydebug)
- printf("yydebug: state %d, error recovery shifting\
- to state %d\n", *yyssp, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
- #if YYDEBUG
- if (yydebug)
- printf("yydebug: error recovery discarding state %d\n",
- *yyssp);
- #endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
- #if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("yydebug: state %d, error recovery discards token %d (%s)\n",
- yystate, yychar, yys);
- }
- #endif
- yychar = (-1);
- goto yyloop;
- }
- yyreduce:
- #if YYDEBUG
- if (yydebug)
- printf("yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
- case 14:
- #line 309 "sdefyacc.y"
- {
- CLEANUP();
- }
- break;
- case 23:
- #line 333 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_ATTRIBUTE );
- }
- break;
- case 24:
- #line 337 "sdefyacc.y"
- {
- FOUND( "fwd_attribute_slot_decl" );
- }
- break;
- case 25:
- #line 341 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_ATTRIBUTE );
- }
- break;
- case 26:
- #line 345 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_RELATION );
- }
- break;
- case 27:
- #line 349 "sdefyacc.y"
- {
- FOUND( "fwd_relation_slot_decl" );
- }
- break;
- case 28:
- #line 353 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_RELATION );
- }
- break;
- case 29:
- #line 357 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_MESSAGE );
- }
- break;
- case 30:
- #line 361 "sdefyacc.y"
- {
- FOUND( "fwd_message_slot_decl" );
- }
- break;
- case 31:
- #line 365 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_MESSAGE )
- }
- break;
- case 32:
- #line 372 "sdefyacc.y"
- {
- FOUND( "fwd_att_slot" );
- }
- break;
- case 33:
- #line 376 "sdefyacc.y"
- {
- FOUND( "fwd_att_slot tail" );
- }
- break;
- case 34:
- #line 383 "sdefyacc.y"
- {
- FOUND( "fwd_rel_slot" );
- }
- break;
- case 35:
- #line 387 "sdefyacc.y"
- {
- FOUND( "fwd_rel_slot tail" );
- }
- break;
- case 36:
- #line 394 "sdefyacc.y"
- {
- FOUND( "fwd_msg_slot" );
- }
- break;
- case 37:
- #line 398 "sdefyacc.y"
- {
- FOUND( "fwd_msg_slot tail" );
- }
- break;
- case 42:
- #line 456 "sdefyacc.y"
- {
- FND_SCHEMA_DEF();
- RESET_SDEF();
- }
- break;
- case 43:
- #line 461 "sdefyacc.y"
- {
- FND_SCHEMA_DEF();
- RESET_SDEF();
- }
- break;
- case 44:
- #line 466 "sdefyacc.y"
- {
- FND_SCHEMA_DEF();
- RESET_SDEF();
- }
- break;
- case 45:
- #line 471 "sdefyacc.y"
- {
- FND_SCHEMA_DEF();
- ACTION( "STUB: compile slot control" );
- RESET_SDEF();
- }
- break;
- case 46:
- #line 477 "sdefyacc.y"
- {
- UNWIND_TO_SCHEMA_DEF();
- RESET_SDEF();
- }
- break;
- case 47:
- #line 488 "sdefyacc.y"
- {
- NO_SCHEMA_NAME_ERR();
- }
- break;
- case 48:
- #line 492 "sdefyacc.y"
- {
- sd_signal_error( MISSING_LBRACE_IGNORED_STR );
- NO_SCHEMA_NAME_ERR();
- }
- break;
- case 49:
- #line 497 "sdefyacc.y"
- {
- sd_signal_error( MISSING_LBRACE_FATAL_STR );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 50:
- #line 503 "sdefyacc.y"
- {
- CLASS_DEF();
- }
- break;
- case 51:
- #line 510 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_CLASS_SCHEMA );
- }
- break;
- case 52:
- #line 519 "sdefyacc.y"
- {
- BUILD_CLASS();
- }
- break;
- case 53:
- #line 523 "sdefyacc.y"
- {
- FOUND( "class_def_body" );
- }
- break;
- case 54:
- #line 535 "sdefyacc.y"
- {
- FOUND( "instance_def" );
- }
- break;
- case 55:
- #line 542 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_INSTANCE_SCHEMA );
- }
- break;
- case 56:
- #line 550 "sdefyacc.y"
- {
- BUILD_INSTANCE();
- }
- break;
- case 57:
- #line 554 "sdefyacc.y"
- {
- FOUND( "instance_def_body");
- }
- break;
- case 58:
- #line 567 "sdefyacc.y"
- {
- FOUND( "meta_knowledge_instance_def" );
- }
- break;
- case 59:
- #line 580 "sdefyacc.y"
- {
- FOUND( "slot_control_def" );
- }
- break;
- case 60:
- #line 584 "sdefyacc.y"
- {
- FOUND( "slot_control_def" );
- }
- break;
- case 61:
- #line 592 "sdefyacc.y"
- {
- NO_SCHEMA_NAME_ERR();
- }
- break;
- case 62:
- #line 596 "sdefyacc.y"
- {
- sd_signal_error( MISSING_LBRACE_IGNORED_STR );
- NO_SCHEMA_NAME_ERR();
- }
- break;
- case 63:
- #line 601 "sdefyacc.y"
- {
- sd_signal_error( MISSING_LBRACE_FATAL_STR );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 64:
- #line 607 "sdefyacc.y"
- {
- FOUND( "base_slot_class" );
- }
- break;
- case 65:
- #line 614 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_BASE_RELATION_CLASS );
- }
- break;
- case 66:
- #line 618 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_BASE_ATTRIBUTE_CLASS );
- }
- break;
- case 67:
- #line 622 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_BASE_MESSAGE_CLASS );
- }
- break;
- case 68:
- #line 631 "sdefyacc.y"
- {
- BUILD_CLASS();
- DECLARE_SLOT_CONTROL();
- }
- break;
- case 69:
- #line 636 "sdefyacc.y"
- {
- FOUND( "base_slot_class_body" );
- COMPILE_SLOT_CONTROL();
- }
- break;
- case 70:
- #line 650 "sdefyacc.y"
- {
- NO_SCHEMA_NAME_ERR();
- }
- break;
- case 71:
- #line 654 "sdefyacc.y"
- {
- sd_signal_error( MISSING_LBRACE_IGNORED_STR );
- NO_SCHEMA_NAME_ERR();
- }
- break;
- case 72:
- #line 659 "sdefyacc.y"
- {
- sd_signal_error( MISSING_LBRACE_FATAL_STR );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 73:
- #line 665 "sdefyacc.y"
- {
- FOUND( "slot_specialization_def" );
- }
- break;
- case 74:
- #line 672 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_ATTRIBUTE_SPECIALIZATION_CLASS );
- }
- break;
- case 75:
- #line 676 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_RELATION_SPECIALIZATION_CLASS );
- }
- break;
- case 76:
- #line 680 "sdefyacc.y"
- {
- FND_SCHEMA_TYPE( KB_MESSAGE_SPECIALIZATION_CLASS );
- }
- break;
- case 77:
- #line 687 "sdefyacc.y"
- {
- BUILD_CLASS();
- DECLARE_SLOT_CONTROL();
- }
- break;
- case 78:
- #line 692 "sdefyacc.y"
- {
- FOUND( "specialization_def_body" );
- COMPILE_SLOT_CONTROL();
- }
- break;
- case 79:
- #line 705 "sdefyacc.y"
- {
- MISSING_SEMICOLON();
- }
- break;
- case 80:
- #line 709 "sdefyacc.y"
- {
- FOUND( "subclass_of" );
- }
- break;
- case 81:
- #line 713 "sdefyacc.y"
- {
- sd_signal_error( KBE_NO_SUPERCLASSES );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 83:
- #line 723 "sdefyacc.y"
- {
- FOUND( "class_decl" );
- }
- break;
- case 84:
- #line 727 "sdefyacc.y"
- {
- MISSING_SEMICOLON();
- }
- break;
- case 85:
- #line 731 "sdefyacc.y"
- {
- MISSING_SEMICOLON();
- }
- break;
- case 87:
- #line 739 "sdefyacc.y"
- {
- FOUND( "meta_schema" );
- }
- break;
- case 88:
- #line 747 "sdefyacc.y"
- {
- MISSING_SEMICOLON();
- }
- break;
- case 89:
- #line 752 "sdefyacc.y"
- {
- FOUND( "instance_of" );
- }
- break;
- case 90:
- #line 756 "sdefyacc.y"
- {
- sd_signal_error( KBE_NO_SUPERCLASSES );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 92:
- #line 766 "sdefyacc.y"
- {
- FOUND( "inst_decl" );
- }
- break;
- case 93:
- #line 770 "sdefyacc.y"
- {
- FOUND( "inst_decl" );
- }
- break;
- case 94:
- #line 774 "sdefyacc.y"
- {
- MISSING_SEMICOLON();
- }
- break;
- case 95:
- #line 778 "sdefyacc.y"
- {
- MISSING_SEMICOLON();
- }
- break;
- case 96:
- #line 786 "sdefyacc.y"
- {
- INV_RELATION_EMPTY();
- }
- break;
- case 97:
- #line 790 "sdefyacc.y"
- {
- INV_RELATION();
- }
- break;
- case 98:
- #line 798 "sdefyacc.y"
- {
- VAL_TYPE_SPEC_EMPTY();
- }
- break;
- case 99:
- #line 802 "sdefyacc.y"
- {
- VAL_TYPE_SPEC();
- }
- break;
- case 100:
- #line 809 "sdefyacc.y"
- {
- CARD_SPEC_EMPTY();
- }
- break;
- case 101:
- #line 813 "sdefyacc.y"
- {
- CARD_SPEC();
- }
- break;
- case 102:
- #line 820 "sdefyacc.y"
- {
- PUT_SC_MULTIPLE_CARD();
- }
- break;
- case 103:
- #line 824 "sdefyacc.y"
- {
- PUT_SC_SINGLE_CARD();
- }
- break;
- case 104:
- #line 828 "sdefyacc.y"
- {
- sd_signal_error( KBE_BAD_CARDINALITY );
- ACTION( "Using KB_SINGLE for cardinality" );
- PUT_SC_SINGLE_CARD();
- }
- break;
- case 105:
- #line 837 "sdefyacc.y"
- {
- FOUND( "specialization_of" );
- }
- break;
- case 106:
- #line 846 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_SCHAR_TYPE);
- }
- break;
- case 107:
- #line 849 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_CHAR_TYPE );
- }
- break;
- case 108:
- #line 852 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_UCHAR_TYPE );
- }
- break;
- case 109:
- #line 855 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_SHORT_TYPE );
- }
- break;
- case 110:
- #line 858 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_INT_TYPE );
- }
- break;
- case 111:
- #line 861 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_LONG_TYPE );
- }
- break;
- case 112:
- #line 864 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_USHORT_TYPE );
- }
- break;
- case 113:
- #line 867 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_UINT_TYPE );
- }
- break;
- case 114:
- #line 870 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_ULONG_TYPE );
- }
- break;
- case 115:
- #line 873 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_FLOAT_TYPE );
- }
- break;
- case 116:
- #line 876 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_DOUBLE_TYPE );
- }
- break;
- case 117:
- #line 879 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_VOID_PTR_TYPE );
- }
- break;
- case 118:
- #line 882 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_STRING_TYPE );
- }
- break;
- case 119:
- #line 885 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_ANY_TYPE );
- }
- break;
- case 120:
- #line 888 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_SLOT_ID_TYPE );
- }
- break;
- case 121:
- #line 891 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_SCHEMA_ID_TYPE );
- }
- break;
- case 122:
- #line 894 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_FUNCTION_ID_TYPE );
- }
- break;
- case 123:
- #line 897 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( KB_BOOLEAN_TYPE );
- }
- break;
- case 124:
- #line 900 "sdefyacc.y"
- {
- CURRENT_SCHEMA->put_value_type( RK_NULL_TYPE );
- }
- break;
- case 125:
- #line 953 "sdefyacc.y"
- {
- sd_signal_error( KBE_NO_SUPERCLASSES );
- YYERROR;
- }
- break;
- case 130:
- #line 966 "sdefyacc.y"
- {
- SUPERSEQ_COMMA_MISSING();
- }
- break;
- case 131:
- #line 974 "sdefyacc.y"
- {
- SUPERCLASS_NAME( yyval );
- }
- break;
- case 132:
- #line 978 "sdefyacc.y"
- {
- SUPERCLASS_NAME( yyval );
- }
- break;
- case 133:
- #line 986 "sdefyacc.y"
- {
- sd_signal_error( KBE_SYSTEM_SCHEMA );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 134:
- #line 992 "sdefyacc.y"
- {
- CHECK_CLASS_NAME( yyvsp[0] );
- }
- break;
- case 135:
- #line 1000 "sdefyacc.y"
- {
- sd_signal_error( KBE_SYSTEM_SCHEMA );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- YYERROR;
- }
- break;
- case 136:
- #line 1006 "sdefyacc.y"
- {
- SUPERCLASS_NAME( yyvsp[0] );
- }
- break;
- case 138:
- #line 1017 "sdefyacc.y"
- {
- EMPTY_INSTANCE_NAME();
- }
- break;
- case 139:
- #line 1025 "sdefyacc.y"
- {
- INSTANCE_NAME( yyvsp[0] );
- }
- break;
- case 140:
- #line 1032 "sdefyacc.y"
- {
- METAK_INSTANCE_NAME( yyvsp[0] );
- }
- break;
- case 141:
- #line 1040 "sdefyacc.y"
- {
- FOUND( "msg_slot_name " );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- CHECK_SLOT_NAME( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 142:
- #line 1052 "sdefyacc.y"
- {
- FOUND( "rel_slot_name " );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- CHECK_SLOT_NAME( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 143:
- #line 1065 "sdefyacc.y"
- {
- DEMON_SLOT_NAME();
- }
- break;
- case 144:
- #line 1069 "sdefyacc.y"
- {
- INH_SPEC_SLOT_NAME();
- }
- break;
- case 145:
- #line 1073 "sdefyacc.y"
- {
- FOUND( "slot_name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- CHECK_SLOT_NAME( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 146:
- #line 1086 "sdefyacc.y"
- {
- FOUND( "demon slot name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- SET_DEMON_TYPE( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 147:
- #line 1095 "sdefyacc.y"
- {
- FOUND( "demon slot name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- SET_DEMON_TYPE( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 148:
- #line 1104 "sdefyacc.y"
- {
- FOUND( "demon slot name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- SET_DEMON_TYPE( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 149:
- #line 1113 "sdefyacc.y"
- {
- FOUND( "demon slot name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- SET_DEMON_TYPE( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 150:
- #line 1122 "sdefyacc.y"
- {
- FOUND( "demon slot name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- SET_DEMON_TYPE( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 151:
- #line 1131 "sdefyacc.y"
- {
- FOUND( "demon slot name" );
- #ifdef SD_ACTION
- CERR << " " << yyvsp[0];
- #endif
- SET_DEMON_TYPE( yyvsp[0] );
- PUT_SLOT_NAME( yyvsp[0] );
- }
- break;
- case 158:
- #line 1153 "sdefyacc.y"
- {
- FND_NAME_STRING( yyval , yyvsp[0] );
- }
- break;
- case 159:
- #line 1157 "sdefyacc.y"
- {
- FND_NAME_STRING( yyval , yyvsp[0] );
- }
- break;
- case 166:
- #line 1217 "sdefyacc.y"
- {
- CLASS_DECL_COMMA_MISSING();
- }
- break;
- case 168:
- #line 1231 "sdefyacc.y"
- {
- ADD_CONTEXTLESS();
- }
- break;
- case 169:
- #line 1235 "sdefyacc.y"
- {
- ADD_NO_LINKS();
- }
- break;
- case 170:
- #line 1239 "sdefyacc.y"
- {
- sd_signal_error( KBE_BAD_DECLARATION );
- ACTION( "Skipping this declaration" );
- }
- break;
- case 171:
- #line 1247 "sdefyacc.y"
- {
- FOUND( "search_order: system_relations_first " );
- ADD_SEARCH_ORDER( KB_SYSTEM_RELATIONS_FIRST );
- }
- break;
- case 172:
- #line 1252 "sdefyacc.y"
- {
- FOUND( "search_order: user_relations_first " );
- ADD_SEARCH_ORDER( KB_USER_RELATIONS_FIRST );
- }
- break;
- case 174:
- #line 1262 "sdefyacc.y"
- {
- ADD_CONTEXTLESS();
- }
- break;
- case 175:
- #line 1266 "sdefyacc.y"
- {
- sd_signal_warning( KBW_INVALID_DECLARATION );
- ACTION( "Skipping this declaration" );
- }
- break;
- case 176:
- #line 1271 "sdefyacc.y"
- {
- sd_signal_warning( KBW_INVALID_DECLARATION );
- ACTION( "Skipping this declaration" );
- }
- break;
- case 177:
- #line 1276 "sdefyacc.y"
- {
- sd_signal_warning( KBW_INVALID_DECLARATION );
- ACTION( "Skipping this declaration" );
- }
- break;
- case 178:
- #line 1281 "sdefyacc.y"
- {
- sd_signal_error( KBE_BAD_DECLARATION );
- ACTION( "Skipping this declaration" );
- }
- break;
- case 179:
- #line 1290 "sdefyacc.y"
- {
- FOUND( "meta_knowledge_spec" );
- }
- break;
- case 180:
- #line 1294 "sdefyacc.y"
- {
- FOUND( "meta_knowledge_spec" );
- }
- break;
- case 181:
- #line 1302 "sdefyacc.y"
- {
- FOUND( "inv_rel_spec" );
- }
- break;
- case 182:
- #line 1306 "sdefyacc.y"
- {
- FOUND( "inv_rel_spec" );
- }
- break;
- case 183:
- #line 1310 "sdefyacc.y"
- {
- FOUND( "inv_rel_spec" );
- }
- break;
- case 184:
- #line 1318 "sdefyacc.y"
- {
- PUT_CARDINALITY( KB_MULTIPLE );
- }
- break;
- case 185:
- #line 1322 "sdefyacc.y"
- {
- PUT_CARDINALITY( KB_SINGLE );
- }
- break;
- case 186:
- #line 1326 "sdefyacc.y"
- {
- PUT_NULL_CARDINALITY();
- }
- break;
- case 188:
- #line 1334 "sdefyacc.y"
- {
- MARK_EMPTY();
- }
- break;
- case 190:
- #line 1387 "sdefyacc.y"
- {
- SLOT_SPECS();
- }
- break;
- case 191:
- #line 1394 "sdefyacc.y"
- {
- RELATION_SLOT_SPECS();
- }
- break;
- case 192:
- #line 1398 "sdefyacc.y"
- {
- ATTRIBUTE_SLOT_SPECS();
- }
- break;
- case 193:
- #line 1402 "sdefyacc.y"
- {
- MESSAGE_SLOT_SPECS();
- }
- break;
- case 194:
- #line 1406 "sdefyacc.y"
- {
- /**
- ** STUB: might be able to figure a way
- ** to signal this under schema_def: error
- ** STUB: this doesn't work --see known_bugs.txt 7
- ** No error gets generated at this level.
- **/
- sd_signal_error( KBE_BAD_SLOT_KEYWORD );
- CURRENT_INFO->put_error_flag( KB_TRUE );
- yyerrok;
- yyclearin;
- YYERROR;
- }
- break;
- case 195:
- #line 1423 "sdefyacc.y"
- { SET_SLOT_TYPE( KB_RELATION ); }
- break;
- case 196:
- #line 1424 "sdefyacc.y"
- {
- SLOT_RELATIONS_WITH_SPEC();
- }
- break;
- case 197:
- #line 1428 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_RELATION );
- }
- break;
- case 198:
- #line 1435 "sdefyacc.y"
- { SET_SLOT_TYPE( KB_ATTRIBUTE ); }
- break;
- case 199:
- #line 1436 "sdefyacc.y"
- {
- SLOT_ATTRIBUTES_WITH_SPEC();
- }
- break;
- case 200:
- #line 1440 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_ATTRIBUTE );
- }
- break;
- case 201:
- #line 1447 "sdefyacc.y"
- { SET_SLOT_TYPE( KB_MESSAGE ); }
- break;
- case 202:
- #line 1448 "sdefyacc.y"
- {
- SLOT_MESSAGES_WITH_SPEC();
- }
- break;
- case 203:
- #line 1452 "sdefyacc.y"
- {
- SET_SLOT_TYPE( KB_MESSAGE );
- }
- break;
- case 204:
- #line 1465 "sdefyacc.y"
- {
- EMPTY_META_SLOT();
- }
- break;
- case 205:
- #line 1469 "sdefyacc.y"
- {
- META_SLOT_KNOWLEDGE_SPEC();
- }
- break;
- case 206:
- #line 1476 "sdefyacc.y"
- {
- EMPTY_SLOT_CONTROL();
- }
- break;
- case 207:
- #line 1480 "sdefyacc.y"
- {
- SLOT_CONTROL_SPEC();
- }
- break;
- case 208:
- #line 1527 "sdefyacc.y"
- {
- FOUND( "relation_spec" );
- }
- break;
- case 209:
- #line 1531 "sdefyacc.y"
- {
- FOUND( "relation_specs tail" );
- }
- break;
- case 210:
- #line 1538 "sdefyacc.y"
- {
- CHECK_SIMPLE_SPEC();
- CURRENT_SLOT->reset_sd_slot();
- }
- break;
- case 211:
- #line 1543 "sdefyacc.y"
- {
- FOUND( "complex_rel_spec" );
- CURRENT_SLOT->reset_sd_slot();
- }
- break;
- case 212:
- #line 1548 "sdefyacc.y"
- {
- ACTION( "Catching error at relation_spec" );
- ACTION( " Gobbling rest of relation spec" );
- gobble_slot();
- CURRENT_SLOT->reset_sd_slot();
- yyclearin;
- yyerrok;
- }
- break;
- case 213:
- #line 1560 "sdefyacc.y"
- {
- SIMPLE_RELATION_SPEC();
- }
- break;
- case 214:
- #line 1567 "sdefyacc.y"
- {
- COMPLEX_REL_SPEC();
- }
- break;
- case 215:
- #line 1574 "sdefyacc.y"
- {
- FOUND( "slot inverse relation specification" );
- }
- break;
- case 216:
- #line 1581 "sdefyacc.y"
- {
- FOUND( "inv_rel_spec" );
- }
- break;
- case 217:
- #line 1585 "sdefyacc.y"
- {
- FOUND( "NULL inv_rel_spec" );
- }
- break;
- case 218:
- #line 1589 "sdefyacc.y"
- {
- FOUND( "NULL inv_rel_spec" );
- }
- break;
- case 219:
- #line 1597 "sdefyacc.y"
- {
- PUT_INV_CARDINALITY( KB_MULTIPLE );
- }
- break;
- case 220:
- #line 1601 "sdefyacc.y"
- {
- PUT_INV_CARDINALITY( KB_SINGLE );
- }
- break;
- case 221:
- #line 1605 "sdefyacc.y"
- {
- PUT_INV_CARDINALITY( KB_NULL_CARDINALITY );
- }
- break;
- case 222:
- #line 1612 "sdefyacc.y"
- {
- CHECK_SLOT_NAME( yyvsp[0] );
- PUT_INV_NAME( yyvsp[0] );
- FOUND( "inverse name " );
- #ifdef SD_TRACE
- CERR << yyvsp[0];
- #endif
-
- }
- break;
- case 223:
- #line 1625 "sdefyacc.y"
- {
- MARK_EMPTY();
- }
- break;
- case 224:
- #line 1629 "sdefyacc.y"
- {
- FOUND( "one link for relation slot" );
- }
- break;
- case 225:
- #line 1633 "sdefyacc.y"
- {
- FOUND("bracketed links supplied for relation slot");
- }
- break;
- case 226:
- #line 1640 "sdefyacc.y"
- {
- FOUND( "single link value " );
- #ifdef SD_ACTION
- CERR << yyvsp[0];
- #endif
- }
- break;
- case 227:
- #line 1647 "sdefyacc.y"
- {
- FOUND( "multiple link values" );
- }
- break;
- case 228:
- #line 1651 "sdefyacc.y"
- {
- FOUND( "link_lst:" );
- ACTION( "Missing comma in relation link list" );
- sd_signal_error( "Comma missing in link list?" );
- }
- break;
- case 229:
- #line 1660 "sdefyacc.y"
- {
- FOUND( "link name " );
- #ifdef SD_TRACE
- CERR << yyvsp[0];
- #endif
- LINK_SCHEMA_NAME( yyvsp[0] );
- }
- break;
- case 230:
- #line 1668 "sdefyacc.y"
- {
- FOUND( "link with meta; link name is " );
- #ifdef SD_TRACE
- CERR << yyvsp[-4];
- #endif
- LINK_SCHEMA_META_SPEC();
- }
- break;
- case 231:
- #line 1717 "sdefyacc.y"
- {
- FOUND( "attribute_spec" );
- }
- break;
- case 232:
- #line 1721 "sdefyacc.y"
- {
- FOUND( "attribute_specs tail" );
- }
- break;
- case 233:
- #line 1728 "sdefyacc.y"
- {
- FOUND( "simple_att_spec" );
- CURRENT_SLOT->reset_sd_slot();
- }
- break;
- case 234:
- #line 1733 "sdefyacc.y"
- {
- FOUND( "complex_att_spec" );
- CURRENT_SLOT->reset_sd_slot();
- }
- break;
- case 235:
- #line 1738 "sdefyacc.y"
- {
- ACTION( "Catching error at attribute_spec" );
- ACTION( " Gobbling rest of attribute spec" );
- gobble_slot();
- CURRENT_SLOT->reset_sd_slot();
- yyclearin;
- yyerrok;
- }
- break;
- case 236:
- #line 1751 "sdefyacc.y"
- {
- SIMPLE_ATTRIBUTE_SPEC();
- }
- break;
- case 237:
- #line 1755 "sdefyacc.y"
- {
- ATTRIBUTE_VALUE_SPEC();
- }
- break;
- case 238:
- #line 1762 "sdefyacc.y"
- {
- FOUND("simple_att_spec slot_control_spec meta_slot");
- }
- break;
- case 239:
- #line 1772 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_SCHAR_TYPE);
- }
- break;
- case 240:
- #line 1775 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_CHAR_TYPE );
- }
- break;
- case 241:
- #line 1778 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_UCHAR_TYPE );
- }
- break;
- case 242:
- #line 1781 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_SHORT_TYPE );
- }
- break;
- case 243:
- #line 1784 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_INT_TYPE );
- }
- break;
- case 244:
- #line 1787 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_LONG_TYPE );
- }
- break;
- case 245:
- #line 1790 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_USHORT_TYPE );
- }
- break;
- case 246:
- #line 1793 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_UINT_TYPE );
- }
- break;
- case 247:
- #line 1796 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_ULONG_TYPE );
- }
- break;
- case 248:
- #line 1799 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_FLOAT_TYPE );
- }
- break;
- case 249:
- #line 1802 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_DOUBLE_TYPE );
- }
- break;
- case 250:
- #line 1805 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_VOID_PTR_TYPE );
- }
- break;
- case 251:
- #line 1808 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_STRING_TYPE );
- }
- break;
- case 252:
- #line 1811 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_ANY_TYPE );
- }
- break;
- case 253:
- #line 1814 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_SLOT_ID_TYPE );
- }
- break;
- case 254:
- #line 1817 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_SCHEMA_ID_TYPE );
- }
- break;
- case 255:
- #line 1820 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_FUNCTION_ID_TYPE );
- }
- break;
- case 256:
- #line 1823 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( KB_BOOLEAN_TYPE );
- }
- break;
- case 257:
- #line 1826 "sdefyacc.y"
- {
- PUT_VALUE_TYPE( RK_NULL_TYPE );
- }
- break;
- case 258:
- #line 1833 "sdefyacc.y"
- {
- MARK_EMPTY();
- }
- break;
- case 259:
- #line 1837 "sdefyacc.y"
- {
- FOUND( "one value supplied for slot" );
- }
- break;
- case 260:
- #line 1841 "sdefyacc.y"
- {
- FOUND( "bracketed values supplied for slot" );
- }
- break;
- case 261:
- #line 1845 "sdefyacc.y"
- {
- MARK_NULL();
- }
- break;
- case 263:
- #line 1854 "sdefyacc.y"
- {
- FOUND( "value in value-seq" );
- }
- break;
- case 264:
- #line 1858 "sdefyacc.y"
- {
- FOUND( "more than one value supplied for slot" );
- }
- break;
- case 265:
- #line 1862 "sdefyacc.y"
- {
- FOUND( "Missing comman in value-seq");
- yyerror( "syntax error" );
- sd_signal_error( "Missing comma in value list?" );
- }
- break;
- case 266:
- #line 1870 "sdefyacc.y"
- {
- SIMPLE_VALUE();
- }
- break;
- case 267:
- #line 1874 "sdefyacc.y"
- {
- COMPLEX_VALUE();
-
- }
- break;
- case 268:
- #line 1889 "sdefyacc.y"
- {
- MAKE_NUM_VALUE( yyvsp[0] );
- }
- break;
- case 269:
- #line 1893 "sdefyacc.y"
- {
- MAKE_FUNCTION_VALUE( yyvsp[-2] );
- }
- break;
- case 270:
- #line 1897 "sdefyacc.y"
- {
- PARSE_NAMESTRING( yyvsp[0] );
- }
- break;
- case 271:
- #line 1901 "sdefyacc.y"
- {
- MAKE_CHAR_VALUE( yyvsp[0] );
- }
- break;
- case 272:
- #line 1905 "sdefyacc.y"
- {
- MAKE_STRING_VALUE( yyvsp[0] );
- }
- break;
- case 273:
- #line 1909 "sdefyacc.y"
- {
- MAKE_BOOLEAN_VALUE( KB_TRUE );
- }
- break;
- case 274:
- #line 1913 "sdefyacc.y"
- {
- MAKE_BOOLEAN_VALUE( KB_FALSE );
- }
- break;
- case 275:
- #line 1917 "sdefyacc.y"
- {
- SET_ALL_SLOTS( );
- }
- break;
- case 276:
- #line 1921 "sdefyacc.y"
- {
- SET_NO_SLOTS();
- }
- break;
- case 277:
- #line 1967 "sdefyacc.y"
- {
- FOUND( "message_spec" );
- }
- break;
- case 278:
- #line 1971 "sdefyacc.y"
- {
- FOUND( "message_specs tail" );
- }
- break;
- case 279:
- #line 1978 "sdefyacc.y"
- {
- FOUND( "message_spec" );
- CURRENT_SLOT->reset_sd_slot();
- }
- break;
- case 280:
- #line 1983 "sdefyacc.y"
- {
- FOUND( "message_spec" );
- CURRENT_SLOT->reset_sd_slot();
- }
- break;
- case 281:
- #line 1988 "sdefyacc.y"
- {
- ACTION( "Catching error at message_spec" );
- ACTION( " Gobbling rest of message spec" );
- gobble_slot();
- CURRENT_SLOT->reset_sd_slot();
- yyclearin;
- yyerrok;
- }
- break;
- case 282:
- #line 1999 "sdefyacc.y"
- { SET_TYPE_AND_CARD(); }
- break;
- case 283:
- #line 2000 "sdefyacc.y"
- {
- SIMPLE_MSG_SPEC();
- }
- break;
- case 284:
- #line 2007 "sdefyacc.y"
- {
- COMPLEX_MSG_SPEC();
- }
- break;
- case 285:
- #line 2014 "sdefyacc.y"
- {
- FOUND( "empty msg_method_spec" );
- MARK_EMPTY();
- }
- break;
- case 286:
- #line 2019 "sdefyacc.y"
- {
- FOUND( "msg_method_spec with assignment" );
- }
- break;
- case 287:
- #line 2023 "sdefyacc.y"
- {
- FOUND( "bracketed method supplied for slot" );
- }
- break;
- case 288:
- #line 2027 "sdefyacc.y"
- {
- sd_signal_error( KBE_MULTIPLE_METHODS );
- ACTION( "Ignoring extraneous methods" );
- gobble_values();
- }
- break;
- case 289:
- #line 2033 "sdefyacc.y"
- {
- ACTION( "Recognize multiple methods" );
- ACTION( " <gobble happened at 2nd method_spec>" );
- }
- break;
- case 290:
- #line 2038 "sdefyacc.y"
- {
- MARK_NULL();
- }
- break;
- case 291:
- #line 2042 "sdefyacc.y"
- {
- MARK_NULL();
- }
- break;
- case 292:
- #line 2051 "sdefyacc.y"
- {
- FOUND( "method_spec with function ID" );
- }
- break;
- case 293:
- #line 2055 "sdefyacc.y"
- {
- MESSAGE_FUNCTION_META_SPEC();
- }
- break;
- case 294:
- #line 2062 "sdefyacc.y"
- {
- MESSAGE_FUNCTION_C_ID( yyvsp[-2] );
- if ( CURRENT_VALUE->get_error() != RK_SUCCESS )
- {
- CURRENT_VALUE->put_error( RK_SUCCESS );
- YYERROR;
- }
- }
- break;
- case 295:
- #line 2071 "sdefyacc.y"
- {
- sd_signal_warning( KBW_MISSING_FUNCTION_PARENS );
- MESSAGE_FUNCTION_C_ID( yyvsp[0] );
- if ( CURRENT_VALUE->get_error() != RK_SUCCESS )
- {
- CURRENT_VALUE->put_error( RK_SUCCESS );
- YYERROR;
- }
- }
- break;
- #line 2699 "y_tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
- #ifdef YYDEBUG
- if (yydebug)
- printf("yydebug: after reduction, shifting from state 0 to\
- state %d\n", YYFINAL);
- #endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
- #if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
- #endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
- #ifdef YYDEBUG
- if (yydebug)
- printf("yydebug: after reduction, shifting from state %d \
- to state %d\n", *yyssp, yystate);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
- yyoverflow:
- yyerror("yacc stack overflow");
- yyabort:
- return (1);
- yyaccept:
- return (0);
- }
-