1216 lines
27 KiB
C++
1216 lines
27 KiB
C++
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1997 - 1998
|
|
//
|
|
// File: parser.cpp
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
/*
|
|
* Created by CSD YACC (IBM PC) from "parser.y" */
|
|
|
|
#include <basetsd.h>
|
|
#line 2 "parser.y"
|
|
#include "bnparse.h"
|
|
// disable warning C4102: unreferenced label
|
|
#pragma warning (disable : 4102)
|
|
# define tokenEOF 0
|
|
# define tokenNil 258
|
|
# define tokenError 259
|
|
# define tokenIdent 260
|
|
# define tokenString 261
|
|
# define tokenInteger 262
|
|
# define tokenReal 263
|
|
# define tokenArray 264
|
|
# define tokenContinuous 265
|
|
# define tokenCreator 266
|
|
# define tokenDefault 267
|
|
# define tokenDiscrete 268
|
|
# define tokenFormat 269
|
|
# define tokenFunction 270
|
|
# define tokenImport 271
|
|
# define tokenIs 272
|
|
# define tokenKeyword 273
|
|
# define tokenLeak 274
|
|
# define tokenNA 275
|
|
# define tokenName 276
|
|
# define tokenNamed 277
|
|
# define tokenNetwork 278
|
|
# define tokenNode 279
|
|
# define tokenOf 280
|
|
# define tokenParent 281
|
|
# define tokenPosition 282
|
|
# define tokenProbability 283
|
|
# define tokenProperties 284
|
|
# define tokenProperty 285
|
|
# define tokenPropIdent 286
|
|
# define tokenStandard 287
|
|
# define tokenState 288
|
|
# define tokenType 289
|
|
# define tokenUser 290
|
|
# define tokenVersion 291
|
|
# define tokenWordChoice 292
|
|
# define tokenWordReal 293
|
|
# define tokenWordString 294
|
|
# define tokenAs 295
|
|
# define tokenLevel 296
|
|
# define tokenDomain 297
|
|
# define tokenDistribution 298
|
|
# define tokenDecisionGraph 299
|
|
# define tokenBranch 300
|
|
# define tokenOn 301
|
|
# define tokenLeaf 302
|
|
# define tokenVertex 303
|
|
# define tokenMultinoulli 304
|
|
# define tokenMerge 305
|
|
# define tokenWith 306
|
|
# define tokenFor 307
|
|
# define tokenRangeOp 308
|
|
# define UNARY 309
|
|
#define yyclearin yychar = -1
|
|
#define yyerrok yyerrflag = 0
|
|
#ifndef YYMAXDEPTH
|
|
#define YYMAXDEPTH 150
|
|
#endif
|
|
YYSTYPE yylval, yyval;
|
|
#ifndef YYFARDATA
|
|
#define YYFARDATA /*nothing*/
|
|
#endif
|
|
#if ! defined YYSTATIC
|
|
#define YYSTATIC /*nothing*/
|
|
#endif
|
|
#ifndef YYOPTTIME
|
|
#define YYOPTTIME 0
|
|
#endif
|
|
#ifndef YYR_T
|
|
#define YYR_T int
|
|
#endif
|
|
typedef YYR_T yyr_t;
|
|
#ifndef YYEXIND_T
|
|
#define YYEXIND_T unsigned int
|
|
#endif
|
|
typedef YYEXIND_T yyexind_t;
|
|
#ifndef YYACT
|
|
#define YYACT yyact
|
|
#endif
|
|
#ifndef YYPACT
|
|
#define YYPACT yypact
|
|
#endif
|
|
#ifndef YYPGO
|
|
#define YYPGO yypgo
|
|
#endif
|
|
#ifndef YYR1
|
|
#define YYR1 yyr1
|
|
#endif
|
|
#ifndef YYR2
|
|
#define YYR2 yyr2
|
|
#endif
|
|
#ifndef YYCHK
|
|
#define YYCHK yychk
|
|
#endif
|
|
#ifndef YYDEF
|
|
#define YYDEF yydef
|
|
#endif
|
|
#ifndef YYV
|
|
#define YYV yyv
|
|
#endif
|
|
#ifndef YYS
|
|
#define YYS yys
|
|
#endif
|
|
#ifndef YYLOCAL
|
|
#define YYLOCAL
|
|
#endif
|
|
# define YYERRCODE 256
|
|
|
|
#line 473 "parser.y"
|
|
|
|
YYSTATIC short yyexca[] ={
|
|
#if !(YYOPTTIME)
|
|
-1, 1,
|
|
#endif
|
|
0, -1,
|
|
-2, 0,
|
|
#if !(YYOPTTIME)
|
|
-1, 76,
|
|
#endif
|
|
125, 168,
|
|
44, 168,
|
|
-2, 176,
|
|
#if !(YYOPTTIME)
|
|
-1, 260,
|
|
#endif
|
|
125, 73,
|
|
-2, 91,
|
|
};
|
|
# define YYNPROD 200
|
|
#if YYOPTTIME
|
|
YYSTATIC yyexind_t yyexcaind[] = {
|
|
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,
|
|
4,
|
|
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,
|
|
10,
|
|
};
|
|
#endif
|
|
# define YYLAST 451
|
|
YYSTATIC short YYFARDATA YYACT[]={
|
|
|
|
303, 24, 25, 80, 79, 120, 121, 89, 127, 295,
|
|
128, 126, 158, 129, 160, 20, 31, 157, 239, 206,
|
|
84, 306, 226, 225, 104, 133, 168, 54, 198, 178,
|
|
221, 98, 197, 254, 16, 102, 98, 6, 17, 15,
|
|
190, 185, 180, 62, 179, 80, 79, 238, 180, 78,
|
|
179, 235, 18, 19, 171, 170, 169, 99, 96, 270,
|
|
255, 101, 99, 180, 90, 179, 234, 91, 93, 94,
|
|
77, 90, 213, 209, 91, 208, 304, 232, 103, 309,
|
|
130, 308, 224, 119, 24, 25, 80, 79, 24, 25,
|
|
174, 297, 298, 296, 184, 137, 135, 299, 282, 274,
|
|
122, 261, 251, 216, 87, 148, 46, 28, 138, 139,
|
|
140, 115, 207, 75, 175, 136, 191, 155, 86, 143,
|
|
144, 145, 82, 278, 189, 264, 134, 173, 125, 118,
|
|
277, 52, 50, 48, 45, 27, 214, 22, 319, 74,
|
|
77, 264, 230, 152, 330, 317, 315, 317, 316, 247,
|
|
318, 228, 318, 317, 315, 110, 316, 66, 318, 97,
|
|
290, 289, 181, 181, 314, 272, 236, 166, 61, 165,
|
|
311, 59, 164, 142, 95, 111, 286, 243, 242, 287,
|
|
242, 113, 233, 240, 69, 70, 241, 196, 112, 67,
|
|
265, 229, 188, 60, 181, 215, 181, 319, 313, 319,
|
|
293, 202, 203, 69, 70, 319, 312, 68, 256, 124,
|
|
117, 259, 146, 53, 77, 23, 181, 131, 292, 263,
|
|
132, 192, 194, 186, 222, 205, 51, 37, 100, 109,
|
|
33, 159, 83, 8, 81, 85, 49, 39, 218, 38,
|
|
40, 26, 73, 116, 47, 30, 250, 161, 153, 200,
|
|
141, 162, 181, 172, 65, 258, 64, 76, 149, 177,
|
|
176, 80, 79, 77, 181, 177, 176, 80, 79, 183,
|
|
63, 44, 253, 35, 182, 302, 301, 281, 92, 285,
|
|
182, 294, 80, 79, 193, 92, 271, 123, 284, 201,
|
|
283, 280, 210, 279, 269, 182, 305, 307, 80, 79,
|
|
199, 310, 268, 181, 273, 320, 219, 262, 147, 321,
|
|
322, 222, 291, 223, 267, 324, 325, 326, 327, 328,
|
|
329, 323, 300, 260, 249, 275, 237, 76, 150, 151,
|
|
212, 211, 187, 114, 72, 154, 29, 245, 227, 288,
|
|
244, 276, 163, 266, 257, 246, 248, 204, 108, 107,
|
|
105, 71, 36, 42, 88, 252, 41, 32, 156, 55,
|
|
43, 34, 21, 5, 14, 13, 12, 11, 10, 9,
|
|
195, 7, 4, 3, 2, 1, 57, 56, 106, 58,
|
|
167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
|
|
0, 220, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 231, 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,
|
|
220 };
|
|
YYSTATIC short YYFARDATA YYPACT[]={
|
|
|
|
-1000,-1000,-241,-1000,-245, 14,-172,-245,-1000,-1000,
|
|
-1000,-1000,-1000,-1000,-1000, 12,-153,-1000,-1000,-283,
|
|
190,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 187,
|
|
-172,-172,-1000,-1000,-1000,-1000, 11,-154, 10, 9,
|
|
186, 8, 172, -98, -82,-1000,-1000,-1000,-259,-1000,
|
|
-276,-156,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 6,
|
|
6, 6,-1000, 115,-1000,-1000,-1000,-229,-224,-225,
|
|
6,-101, -13, 85,-1000, 6,-303,-302,-176,-1000,
|
|
-1000, 84,-1000,-292,-182, 176,-1000,-270, 1,-165,
|
|
-1000,-1000,-1000,-217,-166,-1000,-1000,-1000,-1000,-1000,
|
|
6, 6, 6,-1000,-1000, 114,-1000,-1000,-1000,-1000,
|
|
-1000, 6, 6, 6, 171,-155,-1000,-1000,-259,-172,
|
|
-172,-217,-1000,-1000,-1000,-276,-172,-289,-290,-289,
|
|
-1000,-1000,-156,-172,-1000, 113, 110, 108,-238,-1000,
|
|
-1, -1,-1000,-167,-227, 183,-1000, 148,-1000,-1000,
|
|
-1000,-1000,-1000,-1000,-237, 181,-1000,-1000,-1000,-237,
|
|
182,-172,-1000,-1000,-1000,-1000,-1000, 143,-248,-1000,
|
|
-1000,-252, -1,-1000, 5,-1000,-1000,-1000,-1000,-217,
|
|
-217,-1000,-1000,-1000,-1000, -72, 30, 13,-157,-1000,
|
|
-172,-1000,-259,-1000, 20,-289,-179,-271, 60,-1000,
|
|
98,-1000,-1000,-1000,-1000,-172,-185, 138,-196,-211,
|
|
-1000,-1000, 107,-1000,-223,-280,-1000,-1000, 142,-1000,
|
|
-303, 136,-1000, 181,-1000,-1000,-1000,-1000,-1000,-1000,
|
|
5,-1000, 56, 30,-1000,-1000,-1000,-1000, 6,-158,
|
|
-1000,-259, 20,-1000,-1000,-172,-1000, 6, 170,-1000,
|
|
-159, 179,-1000,-1000, 97,-1000,-1000,-1000,-1000,-1000,
|
|
19, 106,-1000,-161,-172,-1000, 7, -2,-1000,-162,
|
|
-1000, 6,-1000, 135,-1000,-1000,-1000,-1000,-1000, 102,
|
|
101, 20, 178, 159,-169,-1000,-1000,-163,-172,-1000,
|
|
-1000, 134, 36, 6, 126,-1000,-1000,-1000,-1000,-1000,
|
|
81, 157, 120, 111, 36,-1000,-1000,-1000, 36, 36,
|
|
-1000,-169,-1000,-1000, 36, 36, 36, 36, 36, 36,
|
|
103,-1000,-1000,-1000, 111, 105, 105, 44, 44, 44,
|
|
-1000 };
|
|
YYSTATIC short YYFARDATA YYPGO[]={
|
|
|
|
0, 380, 9, 112, 208, 159, 60, 379, 378, 377,
|
|
21, 29, 376, 375, 374, 373, 372, 371, 233, 369,
|
|
368, 367, 366, 365, 364, 363, 362, 361, 360, 359,
|
|
7, 358, 117, 357, 356, 354, 353, 352, 351, 350,
|
|
349, 348, 157, 347, 344, 343, 341, 339, 33, 338,
|
|
337, 336, 334, 333, 332, 331, 330, 326, 324, 323,
|
|
314, 308, 307, 304, 302, 294, 293, 291, 290, 288,
|
|
281, 277, 30, 276, 275, 0, 273, 271, 270, 256,
|
|
254, 253, 127, 250, 249, 114, 245, 244, 242, 139,
|
|
113, 116, 238, 237, 236, 235, 118, 234, 122, 232,
|
|
124, 231 };
|
|
YYSTATIC yyr_t YYFARDATA YYR1[]={
|
|
|
|
0, 14, 13, 15, 17, 17, 18, 18, 18, 18,
|
|
18, 18, 16, 25, 25, 27, 26, 28, 28, 29,
|
|
29, 29, 30, 30, 30, 31, 31, 32, 32, 9,
|
|
12, 7, 34, 35, 24, 33, 36, 33, 37, 20,
|
|
38, 38, 39, 39, 39, 39, 39, 8, 40, 43,
|
|
45, 43, 44, 44, 46, 47, 46, 48, 48, 48,
|
|
6, 4, 4, 50, 49, 41, 51, 52, 54, 21,
|
|
55, 55, 58, 60, 55, 53, 53, 53, 61, 61,
|
|
56, 62, 62, 63, 63, 57, 57, 59, 59, 64,
|
|
64, 65, 65, 65, 69, 68, 70, 70, 70, 2,
|
|
2, 2, 71, 66, 67, 73, 73, 74, 74, 72,
|
|
72, 3, 3, 3, 11, 11, 11, 11, 10, 10,
|
|
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
|
|
75, 76, 19, 77, 77, 78, 78, 78, 79, 79,
|
|
80, 80, 1, 1, 1, 1, 1, 5, 5, 81,
|
|
42, 42, 83, 42, 82, 82, 84, 84, 85, 85,
|
|
85, 86, 22, 87, 88, 88, 88, 89, 89, 90,
|
|
90, 90, 90, 90, 90, 90, 90, 91, 92, 92,
|
|
92, 23, 93, 95, 95, 95, 96, 96, 94, 97,
|
|
97, 97, 98, 98, 98, 98, 99, 101, 100, 100 };
|
|
YYSTATIC yyr_t YYFARDATA YYR2[]={
|
|
|
|
0, 0, 2, 2, 1, 2, 1, 1, 1, 1,
|
|
1, 1, 2, 2, 1, 0, 4, 0, 2, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
|
|
4, 4, 0, 0, 6, 0, 0, 3, 0, 6,
|
|
0, 3, 1, 1, 1, 1, 1, 3, 4, 2,
|
|
0, 6, 0, 1, 0, 0, 4, 0, 1, 3,
|
|
1, 1, 1, 0, 4, 7, 0, 0, 0, 9,
|
|
2, 1, 0, 0, 6, 0, 2, 1, 1, 3,
|
|
4, 0, 3, 1, 3, 0, 4, 0, 2, 3,
|
|
3, 0, 4, 2, 0, 2, 0, 1, 3, 1,
|
|
1, 1, 0, 2, 4, 0, 1, 1, 3, 1,
|
|
3, 2, 2, 1, 2, 2, 1, 1, 1, 1,
|
|
3, 3, 3, 3, 3, 3, 1, 1, 1, 2,
|
|
2, 0, 5, 0, 3, 1, 1, 1, 2, 2,
|
|
6, 4, 3, 3, 1, 1, 3, 1, 1, 0,
|
|
5, 4, 0, 4, 3, 1, 1, 3, 1, 1,
|
|
1, 0, 4, 3, 0, 1, 3, 3, 1, 3,
|
|
3, 2, 2, 2, 2, 1, 1, 3, 0, 1,
|
|
3, 4, 4, 0, 1, 3, 3, 1, 3, 0,
|
|
1, 3, 4, 4, 4, 6, 2, 4, 0, 2 };
|
|
YYSTATIC short YYFARDATA YYCHK[]={
|
|
|
|
-1000, -13, -14, -15, -16, -25, 278, -17, -18, -19,
|
|
-20, -21, -22, -23, -24, 284, 279, 283, 297, 298,
|
|
260, -26, 123, -4, 260, 261, -18, 123, 260, -51,
|
|
-86, 299, -33, 40, -27, -76, -37, 40, -4, -93,
|
|
-4, -34, -36, -28, -77, 123, 260, -87, 123, -94,
|
|
123, 40, 123, 41, 125, -29, -9, -12, -7, 269,
|
|
291, 266, 125, -78, -79, -80, -42, 271, 289, 285,
|
|
286, -38, -52, -88, -89, -90, -4, -10, 308, 263,
|
|
262, -97, -98, -99, 296, -95, -96, 260, -35, -30,
|
|
58, 61, 272, -30, -30, 59, 287, -5, 260, 286,
|
|
-5, 286, 260, -30, 125, -39, -8, -40, -41, -42,
|
|
256, 276, 289, 282, -53, 124, 256, 125, 44, -30,
|
|
308, 308, -10, -4, 125, 44, 303, 300, 302, 305,
|
|
262, 41, 44, 295, 125, 261, -10, 261, -30, -30,
|
|
-30, -83, 59, -30, -30, -30, 41, -61, 260, -89,
|
|
-4, -4, -10, -98, -4, -32, -31, 306, 301,-101,
|
|
304, -32, -96, -4, 59, 59, 59, -1, 264, 294,
|
|
293, 292, -81, -82, 91, -85, 261, 260, -11, 45,
|
|
43, -10, 275, -82, 261, 268, 40, -54, 44,-100,
|
|
277, -91, 40,-100, 40, -4, 44, 280, 280, -82,
|
|
-84, -85, -10, -10, -43, 297, 91, -3, 45, 43,
|
|
262, -55, -56, 59, 123, -30, 260, -4, -92, -90,
|
|
-4, -72, -11, -32, 261, 294, 293, -49, 91, 93,
|
|
44, -4, 262, 44, 262, 262, 59, -57, 270, 298,
|
|
41, 44, 44, 41, -91, -50, -85, 93, -3, -58,
|
|
-30, 260, -90, -11, -48, -6, -4, -44, -30, 41,
|
|
-59, 260, -62, 40, 44, 93, -45, -60, -64, -65,
|
|
40, 267, 59, -63, 260, -6, -46, 123, 125, -66,
|
|
-67, -71, 260, -68, -69, -30, 41, 44, -47, 59,
|
|
59, -72, 40, 41, -70, -2, 262, 260, 261, 260,
|
|
-48, -73, -74, -75, 40, 260, -10, 261, 45, 43,
|
|
-30, 44, 125, 41, 44, 43, 45, 42, 47, 94,
|
|
-75, -75, -75, -2, -75, -75, -75, -75, -75, -75,
|
|
41 };
|
|
YYSTATIC short YYFARDATA YYDEF[]={
|
|
|
|
1, -2, 0, 2, 0, 0, 14, 3, 4, 6,
|
|
7, 8, 9, 10, 11, 0, 0, 66, 161, 0,
|
|
35, 12, 15, 13, 61, 62, 5, 131, 38, 0,
|
|
0, 0, 32, 36, 17, 133, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 40, 67, 162, 164, 181,
|
|
189, 183, 33, 37, 16, 18, 19, 20, 21, 0,
|
|
0, 0, 132, 0, 135, 136, 137, 0, 0, 0,
|
|
0, 0, 75, 0, 165, 0, -2, 175, 0, 118,
|
|
119, 0, 190, 0, 0, 0, 184, 187, 0, 0,
|
|
22, 23, 24, 0, 0, 134, 138, 139, 147, 148,
|
|
0, 0, 0, 152, 39, 0, 42, 43, 44, 45,
|
|
46, 0, 0, 0, 0, 0, 77, 163, 0, 0,
|
|
174, 173, 171, 172, 188, 0, 0, 28, 0, 28,
|
|
196, 182, 0, 0, 34, 0, 0, 0, 0, 149,
|
|
0, 0, 41, 0, 0, 0, 68, 76, 78, 166,
|
|
167, 170, 169, 191, 198, 0, 27, 25, 26, 198,
|
|
0, 0, 185, 186, 29, 30, 31, 141, 0, 144,
|
|
145, 0, 0, 151, 0, 155, 158, 159, 160, 0,
|
|
0, 116, 117, 153, 47, 0, 0, 0, 0, 192,
|
|
0, 193, 178, 194, 0, 28, 0, 0, 0, 150,
|
|
0, 156, 114, 115, 48, 0, 0, 0, 0, 0,
|
|
113, 69, 0, 71, 85, 0, 79, 199, 0, 179,
|
|
176, 0, 109, 0, 140, 142, 143, 146, 63, 154,
|
|
0, 49, 0, 0, 111, 112, 70, 72, 0, 0,
|
|
177, 0, 0, 197, 195, 57, 157, 52, 0, 87,
|
|
0, 81, 180, 110, 0, 58, 60, 50, 53, 65,
|
|
-2, 0, 80, 0, 0, 64, 54, 0, 88, 102,
|
|
94, 0, 86, 0, 83, 59, 51, 55, 74, 0,
|
|
0, 0, 0, 0, 96, 93, 82, 0, 57, 89,
|
|
90, 103, 105, 0, 95, 97, 99, 100, 101, 84,
|
|
0, 0, 106, 107, 0, 126, 127, 128, 0, 0,
|
|
92, 0, 56, 104, 0, 0, 0, 0, 0, 0,
|
|
0, 129, 130, 98, 108, 121, 122, 123, 124, 125,
|
|
120 };
|
|
#ifdef YYRECOVER
|
|
YYSTATIC short yyrecover[] = {
|
|
-1000 };
|
|
#endif
|
|
/* SCCSWHAT( "@(#)yypars.c 3.1 88/11/16 22:00:49 " ) */
|
|
#line 3 "yypars.c"
|
|
# define YYFLAG -1000
|
|
# define YYERROR goto yyerrlab
|
|
# define YYACCEPT return 0
|
|
# define YYABORT return 1
|
|
|
|
#ifdef YYDEBUG /* RRR - 10/9/85 */
|
|
#define yyprintf(a, b, c, d) printf(a, b, c, d)
|
|
#else
|
|
#define yyprintf(a, b, c, d)
|
|
#endif
|
|
|
|
#ifndef YYPRINT
|
|
#define YYPRINT printf
|
|
#endif
|
|
|
|
/* parser for yacc output */
|
|
|
|
#ifdef YYDUMP
|
|
int yydump = 1; /* 1 for dumping */
|
|
void yydumpinfo(void);
|
|
#endif
|
|
#ifdef YYDEBUG
|
|
YYSTATIC int yydebug = 0; /* 1 for debugging */
|
|
#endif
|
|
|
|
#ifndef YYVGLOBAL
|
|
YYSTATIC
|
|
#endif
|
|
YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
|
|
YYSTATIC short yys[YYMAXDEPTH]; /* the parse stack */
|
|
|
|
#if ! defined(YYRECURSIVE)
|
|
YYSTATIC int yychar = -1; /* current input token number */
|
|
YYSTATIC int yynerrs = 0; /* number of errors */
|
|
YYSTATIC short yyerrflag = 0; /* error recovery flag */
|
|
#endif
|
|
|
|
#ifdef YYRECOVER
|
|
/*
|
|
** yyscpy : copy f onto t and return a ptr to the null terminator at the
|
|
** end of t.
|
|
*/
|
|
YYSTATIC
|
|
char *yyscpy(register char* t, register char* f)
|
|
{
|
|
while (*t = *f++)
|
|
t++;
|
|
|
|
return t; /* ptr to the null char */
|
|
}
|
|
#endif
|
|
|
|
#ifndef YYNEAR
|
|
#define YYNEAR
|
|
#endif
|
|
#ifndef YYPASCAL
|
|
#define YYPASCAL
|
|
#endif
|
|
#ifndef YYLOCAL
|
|
#define YYLOCAL
|
|
#endif
|
|
#if ! defined YYPARSER
|
|
#define YYPARSER yyparse
|
|
#endif
|
|
#if ! defined YYLEX
|
|
#define YYLEX yylex
|
|
#endif
|
|
|
|
#if defined(YYRECURSIVE)
|
|
|
|
YYSTATIC int yychar = -1; /* current input token number */
|
|
YYSTATIC int yynerrs = 0; /* number of errors */
|
|
YYSTATIC short yyerrflag = 0; /* error recovery flag */
|
|
|
|
YYSTATIC short yyn;
|
|
YYSTATIC short yystate = 0;
|
|
YYSTATIC short *yyps= &yys[-1];
|
|
YYSTATIC YYSTYPE *yypv= &yyv[-1];
|
|
YYSTATIC short yyj;
|
|
YYSTATIC short yym;
|
|
|
|
#endif
|
|
|
|
YYLOCAL YYNEAR YYPASCAL YYPARSER()
|
|
{
|
|
#if !defined(YYRECURSIVE)
|
|
|
|
register short yyn;
|
|
short yystate = 0;
|
|
short* yyps = &yys[-1];
|
|
YYSTYPE* yypv = &yyv[-1];
|
|
short yyj, yym;
|
|
#endif
|
|
|
|
#ifdef YYDUMP
|
|
yydumpinfo();
|
|
#endif
|
|
yystack: /* put a state and value onto the stack */
|
|
yyprintf("state %d, char %d\n", yystate, yychar, 0);
|
|
|
|
if (++yyps > &yys[YYMAXDEPTH])
|
|
{
|
|
yyerror("yacc stack overflow");
|
|
YYABORT;
|
|
}
|
|
|
|
*yyps = yystate;
|
|
++yypv;
|
|
|
|
*yypv = yyval;
|
|
|
|
yynewstate:
|
|
|
|
yyn = YYPACT[yystate];
|
|
|
|
if (yyn <= YYFLAG) /* simple state, no lookahead */
|
|
goto yydefault;
|
|
|
|
if (yychar < 0) /* need a lookahead */
|
|
yychar = YYLEX();
|
|
|
|
if (((yyn += (short)yychar) < 0) || (yyn >= YYLAST))
|
|
goto yydefault;
|
|
|
|
if (YYCHK[ yyn = YYACT[yyn]] == yychar)
|
|
{
|
|
/* valid shift */
|
|
yychar = -1;
|
|
yyval = yylval;
|
|
yystate = yyn;
|
|
|
|
if (yyerrflag > 0)
|
|
--yyerrflag;
|
|
goto yystack;
|
|
}
|
|
|
|
yydefault:
|
|
/* default state action */
|
|
if ((yyn = YYDEF[yystate]) == -2)
|
|
{
|
|
register short* yyxi;
|
|
|
|
if (yychar < 0)
|
|
yychar = YYLEX();
|
|
|
|
/*
|
|
** search exception table, we find a -1 followed by the current state.
|
|
** if we find one, we'll look through terminal,state pairs. if we find
|
|
** a terminal which matches the current one, we have a match.
|
|
** the exception table is when we have a reduce on a terminal.
|
|
*/
|
|
|
|
#if YYOPTTIME
|
|
for (yyxi = yyexca + yyexcaind[yystate]; *yyxi != yychar && *yyxi >= 0; yyxi += 2)
|
|
;
|
|
#else
|
|
for (yyxi = yyexca; *yyxi != -1 || yyxi[1] != yystate; yyxi += 2)
|
|
;
|
|
|
|
while (*(yyxi += 2) >= 0)
|
|
{
|
|
if (*yyxi == yychar)
|
|
break;
|
|
}
|
|
#endif
|
|
|
|
if ((yyn = yyxi[1]) < 0)
|
|
{
|
|
YYACCEPT; // accept
|
|
}
|
|
}
|
|
|
|
if (yyn == 0) /* error */
|
|
{
|
|
/* error ... attempt to resume parsing */
|
|
|
|
switch (yyerrflag)
|
|
{
|
|
case 0: /* brand new error */
|
|
#ifdef YYRECOVER
|
|
{
|
|
register int i,j;
|
|
|
|
for (i = 0; yyrecover[i] != -1000 && yystate > yyrecover[i]; i += 3)
|
|
;
|
|
|
|
if (yystate == yyrecover[i])
|
|
{
|
|
yyprintf("recovered, from state %d to state %d on token %d\n",
|
|
yystate, yyrecover[i + 2], yyrecover[i + 1]);
|
|
|
|
j = yyrecover[i + 1];
|
|
|
|
if (j < 0)
|
|
{
|
|
/*
|
|
** here we have one of the injection set, so we're not quite
|
|
** sure that the next valid thing will be a shift. so we'll
|
|
** count it as an error and continue.
|
|
** actually we're not absolutely sure that the next token
|
|
** we were supposed to get is the one when j > 0. for example,
|
|
** for(+) {;} error recovery with yyerrflag always set, stops
|
|
** after inserting one ; before the +. at the point of the +,
|
|
** we're pretty sure the guy wants a 'for' loop. without
|
|
** setting the flag, when we're almost absolutely sure, we'll
|
|
** give him one, since the only thing we can shift on this
|
|
** error is after finding an expression followed by a +
|
|
*/
|
|
yyerrflag++;
|
|
j = -j;
|
|
}
|
|
|
|
if (yyerrflag <= 1)
|
|
{
|
|
/* only on first insertion */
|
|
yyrecerr(yychar, j); /* what was, what should be first */
|
|
}
|
|
|
|
yyval = yyeval(j);
|
|
yystate = yyrecover[i + 2];
|
|
goto yystack;
|
|
}
|
|
}
|
|
#endif
|
|
yyerror("syntax error");
|
|
|
|
yyerrlab:
|
|
++yynerrs;
|
|
|
|
case 1:
|
|
case 2: /* incompletely recovered error ... try again */
|
|
yyerrflag = 3;
|
|
|
|
/* find a state where "error" is a legal shift action */
|
|
while (yyps >= yys)
|
|
{
|
|
yyn = YYPACT[*yyps] + YYERRCODE;
|
|
|
|
if (yyn>= 0 && yyn < YYLAST && YYCHK[YYACT[yyn]] == YYERRCODE)
|
|
{
|
|
yystate = YYACT[yyn]; /* simulate a shift of "error" */
|
|
goto yystack;
|
|
}
|
|
yyn = YYPACT[*yyps];
|
|
|
|
/* the current yyps has no shift onn "error", pop stack */
|
|
yyprintf("error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1], 0);
|
|
--yyps;
|
|
--yypv;
|
|
}
|
|
|
|
/* there is no state on the stack with an error shift ... abort */
|
|
yyabort:
|
|
YYABORT;
|
|
|
|
case 3: /* no shift yet; clobber input char */
|
|
yyprintf("error recovery discards char %d\n", yychar, 0, 0);
|
|
|
|
if (yychar == 0)
|
|
goto yyabort; /* don't discard EOF, quit */
|
|
|
|
yychar = -1;
|
|
goto yynewstate; /* try again in the same state */
|
|
}
|
|
}
|
|
|
|
/* reduction by production yyn */
|
|
yyreduce:
|
|
{
|
|
register YYSTYPE *yypvt;
|
|
yyprintf("reduce %d\n",yyn, 0, 0);
|
|
yypvt = yypv;
|
|
yyps -= YYR2[yyn];
|
|
yypv -= YYR2[yyn];
|
|
yyval = yypv[1];
|
|
yym = yyn;
|
|
yyn = (short)YYR1[yyn]; /* consult goto table to find next state */
|
|
yyj = YYPGO[yyn] + *yyps + 1;
|
|
|
|
if (yyj >= YYLAST || YYCHK[yystate = YYACT[yyj]] != -yyn)
|
|
{
|
|
yystate = YYACT[YYPGO[yyn]];
|
|
}
|
|
#ifdef YYDUMP
|
|
yydumpinfo();
|
|
#endif
|
|
switch (yym)
|
|
{
|
|
|
|
case 1:
|
|
#line 76 "parser.y"
|
|
{ yyclearin; } break;
|
|
case 13:
|
|
#line 97 "parser.y"
|
|
{ SetNetworkSymb(yypvt[-0].zsr); } break;
|
|
case 15:
|
|
#line 100 "parser.y"
|
|
{ _eBlk = EBLKNET; } break;
|
|
case 16:
|
|
#line 102 "parser.y"
|
|
{ _eBlk = EBLKNONE; } break;
|
|
case 19:
|
|
#line 109 "parser.y"
|
|
{ SetFormat(yypvt[-0].zsr); } break;
|
|
case 20:
|
|
#line 110 "parser.y"
|
|
{ SetVersion(yypvt[-0].real); } break;
|
|
case 21:
|
|
#line 111 "parser.y"
|
|
{ SetCreator(yypvt[-0].zsr); } break;
|
|
case 29:
|
|
#line 128 "parser.y"
|
|
{ yyval.zsr = yypvt[-1].zsr; } break;
|
|
case 30:
|
|
#line 131 "parser.y"
|
|
{ yyval.real = yypvt[-1].real; } break;
|
|
case 31:
|
|
#line 134 "parser.y"
|
|
{ yyval.zsr = yypvt[-1].zsr; } break;
|
|
case 32:
|
|
#line 138 "parser.y"
|
|
{ _eBlk = EBLKIGN; WarningSkip(yypvt[-1].zsr); } break;
|
|
case 33:
|
|
#line 140 "parser.y"
|
|
{ SkipUntil("}"); } break;
|
|
case 34:
|
|
#line 141 "parser.y"
|
|
{ _eBlk = EBLKNONE; } break;
|
|
case 36:
|
|
#line 145 "parser.y"
|
|
{ SkipUntil(")"); } break;
|
|
case 38:
|
|
#line 150 "parser.y"
|
|
{ _eBlk = EBLKNODE; StartNodeDecl(yypvt[-0].zsr); } break;
|
|
case 39:
|
|
#line 153 "parser.y"
|
|
{ CheckNodeInfo(); _eBlk = EBLKNONE; } break;
|
|
case 47:
|
|
#line 167 "parser.y"
|
|
{ SetNodeFullName(yypvt[-0].zsr); } break;
|
|
case 49:
|
|
#line 173 "parser.y"
|
|
{ SetNodeDomain(yypvt[-0].zsr); } break;
|
|
case 50:
|
|
#line 174 "parser.y"
|
|
{ SetNodeCstate(yypvt[-2].ui); } break;
|
|
case 55:
|
|
#line 182 "parser.y"
|
|
{ ClearCstr(); } break;
|
|
case 56:
|
|
#line 182 "parser.y"
|
|
{ SetStates(); } break;
|
|
case 60:
|
|
#line 190 "parser.y"
|
|
{ AddStr(yypvt[-0].zsr); } break;
|
|
case 63:
|
|
#line 196 "parser.y"
|
|
{ ClearCstr(); } break;
|
|
case 65:
|
|
#line 199 "parser.y"
|
|
{ SetNodePosition(yypvt[-3].integer, yypvt[-1].integer); } break;
|
|
case 66:
|
|
#line 203 "parser.y"
|
|
{ _eBlk = EBLKPROB; ClearNodeInfo(); } break;
|
|
case 67:
|
|
#line 205 "parser.y"
|
|
{ SetNodeSymb(yypvt[-0].zsr, false); } break;
|
|
case 68:
|
|
#line 207 "parser.y"
|
|
{ CheckParentList(); } break;
|
|
case 69:
|
|
#line 208 "parser.y"
|
|
{ _eBlk = EBLKNONE; } break;
|
|
case 71:
|
|
#line 212 "parser.y"
|
|
{ EmptyProbEntries(); } break;
|
|
case 72:
|
|
#line 215 "parser.y"
|
|
{ InitProbEntries(); } break;
|
|
case 73:
|
|
#line 217 "parser.y"
|
|
{ CheckProbEntries(); } break;
|
|
case 78:
|
|
#line 226 "parser.y"
|
|
{ AddSymb(yypvt[-0].zsr); } break;
|
|
case 79:
|
|
#line 227 "parser.y"
|
|
{ AddSymb(yypvt[-0].zsr); } break;
|
|
case 86:
|
|
#line 241 "parser.y"
|
|
{ CheckCIFunc(yypvt[-1].zsr); } break;
|
|
case 91:
|
|
#line 252 "parser.y"
|
|
{ _vui.clear(); CheckDPI(false); } break;
|
|
case 92:
|
|
#line 253 "parser.y"
|
|
{ CheckDPI(false); } break;
|
|
case 93:
|
|
#line 254 "parser.y"
|
|
{ CheckDPI(true); } break;
|
|
case 94:
|
|
#line 257 "parser.y"
|
|
{ _vui.clear(); } break;
|
|
case 97:
|
|
#line 261 "parser.y"
|
|
{ AddUi(yypvt[-0].ui); } break;
|
|
case 98:
|
|
#line 262 "parser.y"
|
|
{ AddUi(yypvt[-0].ui); } break;
|
|
case 99:
|
|
#line 265 "parser.y"
|
|
{ yyval.ui = UiDpi(yypvt[-0].ui); } break;
|
|
case 100:
|
|
#line 266 "parser.y"
|
|
{ yyval.ui = UiDpi(yypvt[-0].zsr); } break;
|
|
case 101:
|
|
#line 267 "parser.y"
|
|
{ yyval.ui = UiDpi(yypvt[-0].zsr); } break;
|
|
case 102:
|
|
#line 270 "parser.y"
|
|
{ _vreal.clear(); } break;
|
|
case 103:
|
|
#line 270 "parser.y"
|
|
{ CheckProbVector(); } break;
|
|
case 104:
|
|
#line 273 "parser.y"
|
|
{ CheckPDF(yypvt[-3].zsr); } break;
|
|
case 109:
|
|
#line 284 "parser.y"
|
|
{ AddReal(yypvt[-0].real); } break;
|
|
case 110:
|
|
#line 285 "parser.y"
|
|
{ AddReal(yypvt[-0].real); } break;
|
|
case 111:
|
|
#line 289 "parser.y"
|
|
{ yyval.integer = -INT(yypvt[-0].ui); } break;
|
|
case 112:
|
|
#line 290 "parser.y"
|
|
{ yyval.integer = +INT(yypvt[-0].ui); } break;
|
|
case 113:
|
|
#line 291 "parser.y"
|
|
{ yyval.integer = INT(yypvt[-0].ui); } break;
|
|
case 114:
|
|
#line 294 "parser.y"
|
|
{ yyval.real = -yypvt[-0].real; } break;
|
|
case 115:
|
|
#line 295 "parser.y"
|
|
{ yyval.real = yypvt[-0].real; } break;
|
|
case 117:
|
|
#line 297 "parser.y"
|
|
{ yyval.real = -1; } break;
|
|
case 118:
|
|
#line 300 "parser.y"
|
|
{ yyval.real = yypvt[-0].real; } break;
|
|
case 119:
|
|
#line 301 "parser.y"
|
|
{ yyval.real = REAL(yypvt[-0].ui); } break;
|
|
case 126:
|
|
#line 310 "parser.y"
|
|
{ CheckIdent(yypvt[-0].zsr); } break;
|
|
case 131:
|
|
#line 319 "parser.y"
|
|
{ StartProperties(); } break;
|
|
case 132:
|
|
#line 321 "parser.y"
|
|
{ EndProperties(); } break;
|
|
case 138:
|
|
#line 331 "parser.y"
|
|
{ ImportPropStandard(); } break;
|
|
case 139:
|
|
#line 332 "parser.y"
|
|
{ ImportProp(yypvt[-0].zsr); } break;
|
|
case 140:
|
|
#line 335 "parser.y"
|
|
{ AddPropType(yypvt[-4].zsr, yypvt[-2].ui, yypvt[-0].zsr); } break;
|
|
case 141:
|
|
#line 336 "parser.y"
|
|
{ AddPropType(yypvt[-2].zsr, yypvt[-0].ui, ZSREF()); } break;
|
|
case 142:
|
|
#line 339 "parser.y"
|
|
{ yyval.ui = fPropString | fPropArray; } break;
|
|
case 143:
|
|
#line 340 "parser.y"
|
|
{ yyval.ui = fPropArray; } break;
|
|
case 144:
|
|
#line 341 "parser.y"
|
|
{ yyval.ui = fPropString; } break;
|
|
case 145:
|
|
#line 342 "parser.y"
|
|
{ yyval.ui = 0; } break;
|
|
case 146:
|
|
#line 343 "parser.y"
|
|
{ yyval.ui = fPropChoice; } break;
|
|
case 149:
|
|
#line 352 "parser.y"
|
|
{ ClearVpv(); } break;
|
|
case 150:
|
|
#line 352 "parser.y"
|
|
{ CheckProperty(yypvt[-3].zsr); } break;
|
|
case 152:
|
|
#line 354 "parser.y"
|
|
{ ClearVpv(); } break;
|
|
case 153:
|
|
#line 354 "parser.y"
|
|
{ CheckProperty(yypvt[-3].zsr); } break;
|
|
case 158:
|
|
#line 365 "parser.y"
|
|
{ AddPropVar( yypvt[-0].zsr ); } break;
|
|
case 159:
|
|
#line 366 "parser.y"
|
|
{ AddPropVar( yypvt[-0].zsr ); } break;
|
|
case 160:
|
|
#line 367 "parser.y"
|
|
{ AddPropVar( yypvt[-0].real ); } break;
|
|
case 161:
|
|
#line 371 "parser.y"
|
|
{ ClearDomain(); } break;
|
|
case 162:
|
|
#line 373 "parser.y"
|
|
{ CheckDomain( yypvt[-1].zsr ); } break;
|
|
case 167:
|
|
#line 385 "parser.y"
|
|
{ AddRange(yypvt[-0].zsr, false ); } break;
|
|
case 168:
|
|
#line 386 "parser.y"
|
|
{ AddRange(yypvt[-0].zsr, true ); } break;
|
|
case 169:
|
|
#line 393 "parser.y"
|
|
{ SetRanges( true, yypvt[-2].real, true, yypvt[-0].real ); } break;
|
|
case 170:
|
|
#line 395 "parser.y"
|
|
{ SetRanges( yypvt[-2].zsr, yypvt[-0].zsr ); } break;
|
|
case 171:
|
|
#line 397 "parser.y"
|
|
{ SetRanges( false, 0.0, true, yypvt[-0].real ); } break;
|
|
case 172:
|
|
#line 399 "parser.y"
|
|
{ SetRanges( ZSREF(), yypvt[-0].zsr ); } break;
|
|
case 173:
|
|
#line 401 "parser.y"
|
|
{ SetRanges( true, yypvt[-1].real, false, 0.0 ); } break;
|
|
case 174:
|
|
#line 403 "parser.y"
|
|
{ SetRanges( yypvt[-1].zsr, ZSREF() ); } break;
|
|
case 175:
|
|
#line 405 "parser.y"
|
|
{ SetRanges( true, yypvt[-0].real, true, yypvt[-0].real ); } break;
|
|
case 176:
|
|
#line 407 "parser.y"
|
|
{ SetRanges( yypvt[-0].zsr, yypvt[-0].zsr ); } break;/* End of actions */
|
|
}
|
|
}
|
|
goto yystack; /* stack new state and value */
|
|
}
|
|
|
|
|
|
|
|
#ifdef YYDUMP
|
|
YYLOCAL
|
|
void YYNEAR YYPASCAL yydumpinfo(void)
|
|
{
|
|
short stackindex;
|
|
short valindex;
|
|
|
|
//dump yys
|
|
printf("short yys[%d] {\n", YYMAXDEPTH);
|
|
for (stackindex = 0; stackindex < YYMAXDEPTH; stackindex++){
|
|
if (stackindex)
|
|
printf(", %s", stackindex % 10 ? "\0" : "\n");
|
|
printf("%6d", yys[stackindex]);
|
|
}
|
|
printf("\n};\n");
|
|
|
|
//dump yyv
|
|
printf("YYSTYPE yyv[%d] {\n", YYMAXDEPTH);
|
|
for (valindex = 0; valindex < YYMAXDEPTH; valindex++){
|
|
if (valindex)
|
|
printf(", %s", valindex % 5 ? "\0" : "\n");
|
|
printf("%#*x", 3+sizeof(YYSTYPE), yyv[valindex]);
|
|
}
|
|
printf("\n};\n");
|
|
}
|
|
#endif
|