00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #define ACE_YYBISON 1
00038
00039
00040 #define ACE_YYSKELETON_NAME "yacc.c"
00041
00042
00043 #define ACE_YYPURE 1
00044
00045
00046 #define ACE_YYLSP_NEEDED 0
00047
00048
00049
00050
00051 #ifndef ACE_YYTOKENTYPE
00052 # define ACE_YYTOKENTYPE
00053
00054
00055 enum ace_yytokentype {
00056 ACE_DYNAMIC = 258,
00057 ACE_STATIC = 259,
00058 ACE_SUSPEND = 260,
00059 ACE_RESUME = 261,
00060 ACE_REMOVE = 262,
00061 ACE_USTREAM = 263,
00062 ACE_MODULE_T = 264,
00063 ACE_STREAM_T = 265,
00064 ACE_SVC_OBJ_T = 266,
00065 ACE_ACTIVE = 267,
00066 ACE_INACTIVE = 268,
00067 ACE_PATHNAME = 269,
00068 ACE_IDENT = 270,
00069 ACE_STRING = 271
00070 };
00071 #endif
00072 #define ACE_DYNAMIC 258
00073 #define ACE_STATIC 259
00074 #define ACE_SUSPEND 260
00075 #define ACE_RESUME 261
00076 #define ACE_REMOVE 262
00077 #define ACE_USTREAM 263
00078 #define ACE_MODULE_T 264
00079 #define ACE_STREAM_T 265
00080 #define ACE_SVC_OBJ_T 266
00081 #define ACE_ACTIVE 267
00082 #define ACE_INACTIVE 268
00083 #define ACE_PATHNAME 269
00084 #define ACE_IDENT 270
00085 #define ACE_STRING 271
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 #include "ace/Svc_Conf.h"
00096
00097 #if (ACE_USES_CLASSIC_SVC_CONF == 1)
00098
00099 #include "ace/ARGV.h"
00100 #include "ace/Module.h"
00101 #include "ace/Stream.h"
00102 #include "ace/Service_Types.h"
00103 #include "ace/OS_NS_string.h"
00104
00105
00106 #include "ace/ace_wchar.h"
00107
00108 ACE_RCSID (ace,
00109 Svc_Conf_y,
00110 "Svc_Conf_y.cpp,v 4.82 2006/05/03 03:37:40 mesnier_p Exp")
00111
00112 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00113
00114
00115
00116 static ACE_Module_Type *ace_get_module (const ACE_Service_Type *sr,
00117 const ACE_Service_Type *sv,
00118 int & ace_ace_yyerrno);
00119
00120 static ACE_Module_Type *ace_get_module (const ACE_Service_Type *sr,
00121 const ACE_TCHAR *svc_name,
00122 int & ace_ace_yyerrno);
00123
00124 #define ACE_YYDEBUG_LEXER_TEXT (ace_yytext[ace_yyleng] = '\0', ace_yytext)
00125
00126
00127
00128
00129 ACE_END_VERSIONED_NAMESPACE_DECL
00130
00131
00132
00133 #ifndef ACE_YYDEBUG
00134 # define ACE_YYDEBUG 0
00135 #endif
00136
00137
00138 #ifdef ACE_YYERROR_VERBOSE
00139 # undef ACE_YYERROR_VERBOSE
00140 # define ACE_YYERROR_VERBOSE 1
00141 #else
00142 # define ACE_YYERROR_VERBOSE 0
00143 #endif
00144
00145 #if ! defined (ACE_YYSTYPE) && ! defined (ACE_YYSTYPE_IS_DECLARED)
00146 typedef int ACE_YYSTYPE;
00147 # define ace_yystype ACE_YYSTYPE
00148 # define ACE_YYSTYPE_IS_DECLARED 1
00149 # define ACE_YYSTYPE_IS_TRIVIAL 1
00150 #endif
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160 #if ! defined (ace_yyoverflow) || ACE_YYERROR_VERBOSE
00161
00162 # ifndef ACE_YYFREE
00163 # define ACE_YYFREE free
00164 # endif
00165 # ifndef ACE_YYMALLOC
00166 # define ACE_YYMALLOC malloc
00167 # endif
00168
00169
00170
00171 # ifdef ACE_YYSTACK_USE_ALLOCA
00172 # if ACE_YYSTACK_USE_ALLOCA
00173 # ifdef __GNUC__
00174 # define ACE_YYSTACK_ALLOC __builtin_alloca
00175 # else
00176 # define ACE_YYSTACK_ALLOC alloca
00177 # endif
00178 # endif
00179 # endif
00180
00181 # ifdef ACE_YYSTACK_ALLOC
00182
00183 # define ACE_YYSTACK_FREE(Ptr) do { ; } while (0)
00184 # else
00185 # if defined (__STDC__) || defined (__cplusplus)
00186 # include <stdlib.h>
00187 # define ACE_YYSIZE_T size_t
00188 # endif
00189 # define ACE_YYSTACK_ALLOC ACE_YYMALLOC
00190 # define ACE_YYSTACK_FREE ACE_YYFREE
00191 # endif
00192 #endif
00193
00194
00195 #if (! defined (ace_yyoverflow) \
00196 && (! defined (__cplusplus) \
00197 || (defined (ACE_YYSTYPE_IS_TRIVIAL) && ACE_YYSTYPE_IS_TRIVIAL)))
00198
00199
00200 union ace_yyalloc
00201 {
00202 short int ace_yyss;
00203 ACE_YYSTYPE ace_yyvs;
00204 };
00205
00206
00207 # define ACE_YYSTACK_GAP_MAXIMUM (sizeof (union ace_yyalloc) - 1)
00208
00209
00210
00211 # define ACE_YYSTACK_BYTES(N) \
00212 ((N) * (sizeof (short int) + sizeof (ACE_YYSTYPE)) \
00213 + ACE_YYSTACK_GAP_MAXIMUM)
00214
00215
00216
00217 # ifndef ACE_YYCOPY
00218 # if defined (__GNUC__) && 1 < __GNUC__
00219 # define ACE_YYCOPY(To, From, Count) \
00220 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00221 # else
00222 # define ACE_YYCOPY(To, From, Count) \
00223 do \
00224 { \
00225 register ACE_YYSIZE_T ace_yyi; \
00226 for (ace_yyi = 0; ace_yyi < (Count); ace_yyi++) \
00227 (To)[ace_yyi] = (From)[ace_yyi]; \
00228 } \
00229 while (0)
00230 # endif
00231 # endif
00232
00233
00234
00235
00236
00237
00238 # define ACE_YYSTACK_RELOCATE(Stack) \
00239 do \
00240 { \
00241 ACE_YYSIZE_T ace_yynewbytes; \
00242 ACE_YYCOPY (&ace_yyptr->Stack, Stack, ace_yysize); \
00243 Stack = &ace_yyptr->Stack; \
00244 ace_yynewbytes = ace_yystacksize * sizeof (*Stack) + ACE_YYSTACK_GAP_MAXIMUM; \
00245 ace_yyptr += ace_yynewbytes / sizeof (*ace_yyptr); \
00246 } \
00247 while (0)
00248
00249 #endif
00250
00251 #if defined (__STDC__) || defined (__cplusplus)
00252 typedef signed char ace_yysigned_char;
00253 #else
00254 typedef short int ace_yysigned_char;
00255 #endif
00256
00257
00258 #define ACE_YYFINAL 2
00259
00260 #define ACE_YYLAST 62
00261
00262
00263 #define ACE_YYNTOKENS 23
00264
00265 #define ACE_YYNNTS 21
00266
00267 #define ACE_YYNRULES 45
00268
00269 #define ACE_YYNSTATES 66
00270
00271
00272 #define ACE_YYUNDEFTOK 2
00273 #define ACE_YYMAXUTOK 271
00274
00275 #define ACE_YYTRANSLATE(ACE_YYX) \
00276 ((unsigned int) (ACE_YYX) <= ACE_YYMAXUTOK ? ace_yytranslate[ACE_YYX] : ACE_YYUNDEFTOK)
00277
00278
00279 static const unsigned char ace_yytranslate[] =
00280 {
00281 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00282 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00285 20, 21, 22, 2, 2, 2, 2, 2, 2, 2,
00286 2, 2, 2, 2, 2, 2, 2, 2, 19, 2,
00287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00292 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00293 2, 2, 2, 17, 2, 18, 2, 2, 2, 2,
00294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00306 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00307 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00308 15, 16
00309 };
00310
00311 #if ACE_YYDEBUG
00312
00313
00314 static const unsigned char ace_yyprhs[] =
00315 {
00316 0, 0, 3, 6, 9, 10, 12, 14, 16, 18,
00317 20, 22, 26, 30, 33, 36, 39, 43, 44, 49,
00318 51, 53, 54, 59, 60, 63, 64, 66, 68, 70,
00319 72, 74, 79, 81, 83, 84, 88, 94, 99, 102,
00320 105, 108, 110, 111, 113, 115
00321 };
00322
00323
00324 static const ace_yysigned_char ace_yyrhs[] =
00325 {
00326 24, 0, -1, 24, 25, -1, 24, 1, -1, -1,
00327 26, -1, 27, -1, 28, -1, 29, -1, 30, -1,
00328 31, -1, 3, 38, 42, -1, 4, 15, 42, -1,
00329 5, 15, -1, 6, 15, -1, 7, 15, -1, 8,
00330 33, 34, -1, -1, 8, 15, 32, 34, -1, 26,
00331 -1, 27, -1, -1, 17, 35, 36, 18, -1, -1,
00332 36, 37, -1, -1, 26, -1, 27, -1, 28, -1,
00333 29, -1, 30, -1, 15, 41, 40, 39, -1, 12,
00334 -1, 13, -1, -1, 43, 19, 15, -1, 43, 19,
00335 15, 20, 21, -1, 19, 15, 20, 21, -1, 9,
00336 22, -1, 11, 22, -1, 10, 22, -1, 16, -1,
00337 -1, 14, -1, 15, -1, 16, -1
00338 };
00339
00340
00341 static const unsigned short int ace_yyrline[] =
00342 {
00343 0, 62, 62, 71, 75, 79, 80, 81, 82, 83,
00344 84, 88, 98, 105, 112, 119, 126, 130, 130, 137,
00345 140, 147, 146, 155, 159, 167, 171, 196, 210, 219,
00346 228, 250, 257, 261, 266, 272, 276, 280, 287, 291,
00347 295, 302, 303, 307, 308, 309
00348 };
00349 #endif
00350
00351 #if ACE_YYDEBUG || ACE_YYERROR_VERBOSE
00352
00353
00354 static const char *const ace_yytname[] =
00355 {
00356 "$end", "error", "$undefined", "ACE_DYNAMIC", "ACE_STATIC",
00357 "ACE_SUSPEND", "ACE_RESUME", "ACE_REMOVE", "ACE_USTREAM", "ACE_MODULE_T",
00358 "ACE_STREAM_T", "ACE_SVC_OBJ_T", "ACE_ACTIVE", "ACE_INACTIVE",
00359 "ACE_PATHNAME", "ACE_IDENT", "ACE_STRING", "'{'", "'}'", "':'", "'('",
00360 "')'", "'*'", "$accept", "svc_config_entries", "svc_config_entry",
00361 "dynamic", "static", "suspend", "resume", "remove", "stream", "@1",
00362 "stream_ops", "stream_modules", "@2", "module_list", "module",
00363 "svc_location", "status", "svc_initializer", "type", "parameters_opt",
00364 "pathname", 0
00365 };
00366 #endif
00367
00368 # ifdef ACE_YYPRINT
00369
00370
00371 static const unsigned short int ace_yytoknum[] =
00372 {
00373 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00374 265, 266, 267, 268, 269, 270, 271, 123, 125, 58,
00375 40, 41, 42
00376 };
00377 # endif
00378
00379
00380 static const unsigned char ace_yyr1[] =
00381 {
00382 0, 23, 24, 24, 24, 25, 25, 25, 25, 25,
00383 25, 26, 27, 28, 29, 30, 31, 32, 31, 33,
00384 33, 35, 34, 34, 36, 36, 37, 37, 37, 37,
00385 37, 38, 39, 39, 39, 40, 40, 40, 41, 41,
00386 41, 42, 42, 43, 43, 43
00387 };
00388
00389
00390 static const unsigned char ace_yyr2[] =
00391 {
00392 0, 2, 2, 2, 0, 1, 1, 1, 1, 1,
00393 1, 3, 3, 2, 2, 2, 3, 0, 4, 1,
00394 1, 0, 4, 0, 2, 0, 1, 1, 1, 1,
00395 1, 4, 1, 1, 0, 3, 5, 4, 2, 2,
00396 2, 1, 0, 1, 1, 1
00397 };
00398
00399
00400
00401
00402 static const unsigned char ace_yydefact[] =
00403 {
00404 4, 0, 1, 3, 0, 0, 0, 0, 0, 0,
00405 2, 5, 6, 7, 8, 9, 10, 0, 42, 42,
00406 13, 14, 15, 17, 19, 20, 23, 0, 0, 0,
00407 0, 41, 11, 12, 23, 21, 16, 38, 40, 39,
00408 43, 44, 45, 0, 34, 0, 18, 25, 0, 32,
00409 33, 31, 0, 0, 0, 35, 22, 26, 27, 28,
00410 29, 30, 24, 37, 0, 36
00411 };
00412
00413
00414 static const ace_yysigned_char ace_yydefgoto[] =
00415 {
00416 -1, 1, 10, 11, 12, 13, 14, 15, 16, 34,
00417 26, 36, 47, 53, 62, 18, 51, 44, 30, 32,
00418 45
00419 };
00420
00421
00422
00423 #define ACE_YYPACT_NINF -13
00424 static const ace_yysigned_char ace_yypact[] =
00425 {
00426 -13, 20, -13, -13, 1, 3, 7, 14, 18, 4,
00427 -13, -13, -13, -13, -13, -13, -13, 21, 19, 19,
00428 -13, -13, -13, -13, -13, -13, -2, 12, 15, 16,
00429 -5, -13, -13, -13, -2, -13, -13, -13, -13, -13,
00430 -13, -13, -13, 24, 0, 17, -13, -13, 22, -13,
00431 -13, -13, 25, -1, 26, 23, -13, -13, -13, -13,
00432 -13, -13, -13, -13, 27, -13
00433 };
00434
00435
00436 static const ace_yysigned_char ace_yypgoto[] =
00437 {
00438 -13, -13, -13, -9, -8, -12, -7, -4, -13, -13,
00439 -13, 28, -13, -13, -13, -13, -13, -13, -13, 31,
00440 -13
00441 };
00442
00443
00444
00445
00446
00447 #define ACE_YYTABLE_NINF -1
00448 static const unsigned char ace_yytable[] =
00449 {
00450 24, 25, 4, 5, 6, 7, 8, 4, 5, 40,
00451 41, 42, 49, 50, 43, 35, 17, 56, 19, 23,
00452 2, 3, 20, 4, 5, 6, 7, 8, 9, 21,
00453 27, 28, 29, 22, 37, 31, 52, 38, 39, 48,
00454 55, 59, 54, 64, 57, 58, 60, 63, 65, 61,
00455 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00456 0, 0, 46
00457 };
00458
00459 static const ace_yysigned_char ace_yycheck[] =
00460 {
00461 9, 9, 3, 4, 5, 6, 7, 3, 4, 14,
00462 15, 16, 12, 13, 19, 17, 15, 18, 15, 15,
00463 0, 1, 15, 3, 4, 5, 6, 7, 8, 15,
00464 9, 10, 11, 15, 22, 16, 19, 22, 22, 15,
00465 15, 53, 20, 20, 53, 53, 53, 21, 21, 53,
00466 19, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00467 -1, -1, 34
00468 };
00469
00470
00471
00472 static const unsigned char ace_yystos[] =
00473 {
00474 0, 24, 0, 1, 3, 4, 5, 6, 7, 8,
00475 25, 26, 27, 28, 29, 30, 31, 15, 38, 15,
00476 15, 15, 15, 15, 26, 27, 33, 9, 10, 11,
00477 41, 16, 42, 42, 32, 17, 34, 22, 22, 22,
00478 14, 15, 16, 19, 40, 43, 34, 35, 15, 12,
00479 13, 39, 19, 36, 20, 15, 18, 26, 27, 28,
00480 29, 30, 37, 21, 20, 21
00481 };
00482
00483 #if ! defined (ACE_YYSIZE_T) && defined (__SIZE_TYPE__)
00484 # define ACE_YYSIZE_T __SIZE_TYPE__
00485 #endif
00486 #if ! defined (ACE_YYSIZE_T) && defined (size_t)
00487 # define ACE_YYSIZE_T size_t
00488 #endif
00489 #if ! defined (ACE_YYSIZE_T)
00490 # if defined (__STDC__) || defined (__cplusplus)
00491 # include <stddef.h>
00492 # define ACE_YYSIZE_T size_t
00493 # endif
00494 #endif
00495 #if ! defined (ACE_YYSIZE_T)
00496 # define ACE_YYSIZE_T unsigned int
00497 #endif
00498
00499 #define ace_yyerrok (ace_yyerrstatus = 0)
00500 #define ace_yyclearin (ace_yychar = ACE_YYEMPTY)
00501 #define ACE_YYEMPTY (-2)
00502 #define ACE_YYEOF 0
00503
00504 #define ACE_YYACCEPT goto ace_yyacceptlab
00505 #define ACE_YYABORT goto ace_yyabortlab
00506 #define ACE_YYERROR goto ace_yyerrorlab
00507
00508
00509
00510
00511
00512
00513 #define ACE_YYFAIL goto ace_yyerrlab
00514
00515 #define ACE_YYRECOVERING() (!!ace_yyerrstatus)
00516
00517 #define ACE_YYBACKUP(Token, Value) \
00518 do \
00519 if (ace_yychar == ACE_YYEMPTY && ace_yylen == 1) \
00520 { \
00521 ace_yychar = (Token); \
00522 ace_yylval = (Value); \
00523 ace_yytoken = ACE_YYTRANSLATE (ace_yychar); \
00524 ACE_YYPOPSTACK; \
00525 goto ace_yybackup; \
00526 } \
00527 else \
00528 { \
00529 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, "syntax error: cannot back up");\
00530 ACE_YYERROR; \
00531 } \
00532 while (0)
00533
00534
00535 #define ACE_YYTERROR 1
00536 #define ACE_YYERRCODE 256
00537
00538
00539
00540
00541
00542
00543 #define ACE_YYRHSLOC(Rhs, K) ((Rhs)[K])
00544 #ifndef ACE_YYLLOC_DEFAULT
00545 # define ACE_YYLLOC_DEFAULT(Current, Rhs, N) \
00546 do \
00547 if (N) \
00548 { \
00549 (Current).first_line = ACE_YYRHSLOC (Rhs, 1).first_line; \
00550 (Current).first_column = ACE_YYRHSLOC (Rhs, 1).first_column; \
00551 (Current).last_line = ACE_YYRHSLOC (Rhs, N).last_line; \
00552 (Current).last_column = ACE_YYRHSLOC (Rhs, N).last_column; \
00553 } \
00554 else \
00555 { \
00556 (Current).first_line = (Current).last_line = \
00557 ACE_YYRHSLOC (Rhs, 0).last_line; \
00558 (Current).first_column = (Current).last_column = \
00559 ACE_YYRHSLOC (Rhs, 0).last_column; \
00560 } \
00561 while (0)
00562 #endif
00563
00564
00565
00566
00567
00568
00569 #ifndef ACE_YY_LOCATION_PRINT
00570 # if ACE_YYLTYPE_IS_TRIVIAL
00571 # define ACE_YY_LOCATION_PRINT(File, Loc) \
00572 ACE_OS::fprintf (File, "%d.%d-%d.%d", \
00573 (Loc).first_line, (Loc).first_column, \
00574 (Loc).last_line, (Loc).last_column)
00575 # else
00576 # define ACE_YY_LOCATION_PRINT(File, Loc) ((void) 0)
00577 # endif
00578 #endif
00579
00580
00581
00582
00583 #ifdef ACE_YYLEX_PARAM
00584 # define ACE_YYLEX ace_yylex (&ace_yylval, ACE_YYLEX_PARAM)
00585 #else
00586 # define ACE_YYLEX ace_yylex (&ace_yylval)
00587 #endif
00588
00589
00590 #if ACE_YYDEBUG
00591
00592 # ifndef ACE_YYFPRINTF
00593 # include <stdio.h>
00594 # define ACE_YYFPRINTF ACE_OS::fprintf
00595 # endif
00596
00597 # define ACE_YYDPRINTF(Args) \
00598 do { \
00599 if (ace_yydebug) \
00600 ACE_YYFPRINTF Args; \
00601 } while (0)
00602
00603 # define ACE_YY_SYMBOL_PRINT(Title, Type, Value, Location) \
00604 do { \
00605 if (ace_yydebug) \
00606 { \
00607 ACE_YYFPRINTF (stderr, "%s ", Title); \
00608 ace_yysymprint (stderr, \
00609 Type, Value); \
00610 ACE_YYFPRINTF (stderr, "\n"); \
00611 } \
00612 } while (0)
00613
00614
00615
00616
00617
00618
00619 #if defined (__STDC__) || defined (__cplusplus)
00620 static void
00621 ace_yy_stack_print (short int *bottom, short int *top)
00622 #else
00623 static void
00624 ace_yy_stack_print (bottom, top)
00625 short int *bottom;
00626 short int *top;
00627 #endif
00628 {
00629 ACE_YYFPRINTF (stderr, "Stack now");
00630 for (; bottom <= top; ++bottom)
00631 ACE_YYFPRINTF (stderr, " %d", *bottom);
00632 ACE_YYFPRINTF (stderr, "\n");
00633 }
00634
00635 # define ACE_YY_STACK_PRINT(Bottom, Top) \
00636 do { \
00637 if (ace_yydebug) \
00638 ace_yy_stack_print ((Bottom), (Top)); \
00639 } while (0)
00640
00641
00642
00643
00644
00645
00646 #if defined (__STDC__) || defined (__cplusplus)
00647 static void
00648 ace_yy_reduce_print (int ace_yyrule)
00649 #else
00650 static void
00651 ace_yy_reduce_print (ace_yyrule)
00652 int ace_yyrule;
00653 #endif
00654 {
00655 int ace_yyi;
00656 unsigned int ace_yylno = ace_yyrline[ace_yyrule];
00657 ACE_YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
00658 ace_yyrule - 1, ace_yylno);
00659
00660 for (ace_yyi = ace_yyprhs[ace_yyrule]; 0 <= ace_yyrhs[ace_yyi]; ace_yyi++)
00661 ACE_YYFPRINTF (stderr, "%s ", ace_yytname [ace_yyrhs[ace_yyi]]);
00662 ACE_YYFPRINTF (stderr, "-> %s\n", ace_yytname [ace_yyr1[ace_yyrule]]);
00663 }
00664
00665 # define ACE_YY_REDUCE_PRINT(Rule) \
00666 do { \
00667 if (ace_yydebug) \
00668 ace_yy_reduce_print (Rule); \
00669 } while (0)
00670
00671
00672
00673 int ace_yydebug;
00674 #else
00675 # define ACE_YYDPRINTF(Args)
00676 # define ACE_YY_SYMBOL_PRINT(Title, Type, Value, Location)
00677 # define ACE_YY_STACK_PRINT(Bottom, Top)
00678 # define ACE_YY_REDUCE_PRINT(Rule)
00679 #endif
00680
00681
00682
00683 #ifndef ACE_YYINITDEPTH
00684 # define ACE_YYINITDEPTH 200
00685 #endif
00686
00687
00688
00689
00690
00691
00692
00693
00694 #ifndef ACE_YYMAXDEPTH
00695 # define ACE_YYMAXDEPTH 10000
00696 #endif
00697
00698
00699
00700 #if ACE_YYERROR_VERBOSE
00701
00702 # ifndef ace_yystrlen
00703 # if defined (__GLIBC__) && defined (_STRING_H)
00704 # define ace_yystrlen strlen
00705 # else
00706
00707 static ACE_YYSIZE_T
00708 # if defined (__STDC__) || defined (__cplusplus)
00709 ace_yystrlen (const char *ace_yystr)
00710 # else
00711 ace_yystrlen (ace_yystr)
00712 const char *ace_yystr;
00713 # endif
00714 {
00715 register const char *ace_yys = ace_yystr;
00716
00717 while (*ace_yys++ != '\0')
00718 continue;
00719
00720 return ace_yys - ace_yystr - 1;
00721 }
00722 # endif
00723 # endif
00724
00725 # ifndef ace_yystpcpy
00726 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
00727 # define ace_yystpcpy stpcpy
00728 # else
00729
00730
00731 static char *
00732 # if defined (__STDC__) || defined (__cplusplus)
00733 ace_yystpcpy (ACE_TCHAR *ace_yydest, const char *ace_yysrc)
00734 # else
00735 ace_yystpcpy (ace_yydest, ace_yysrc)
00736 char *ace_yydest;
00737 const char *ace_yysrc;
00738 # endif
00739 {
00740 register char *ace_yyd = ace_yydest;
00741 register const char *ace_yys = ace_yysrc;
00742
00743 while ((*ace_yyd++ = *ace_yys++) != '\0')
00744 continue;
00745
00746 return ace_yyd - 1;
00747 }
00748 # endif
00749 # endif
00750
00751 #endif
00752
00753
00754
00755 #if ACE_YYDEBUG
00756
00757
00758
00759
00760 #if defined (__STDC__) || defined (__cplusplus)
00761 static void
00762 ace_yysymprint (FILE *ace_yyoutput, int ace_yytype, ACE_YYSTYPE *ace_yyvaluep)
00763 #else
00764 static void
00765 ace_yysymprint (ace_yyoutput, ace_yytype, ace_yyvaluep)
00766 FILE *ace_yyoutput;
00767 int ace_yytype;
00768 ACE_YYSTYPE *ace_yyvaluep;
00769 #endif
00770 {
00771
00772 (void) ace_yyvaluep;
00773
00774 if (ace_yytype < ACE_YYNTOKENS)
00775 ACE_YYFPRINTF (ace_yyoutput, "token %s (", ace_yytname[ace_yytype]);
00776 else
00777 ACE_YYFPRINTF (ace_yyoutput, "nterm %s (", ace_yytname[ace_yytype]);
00778
00779
00780 # ifdef ACE_YYPRINT
00781 if (ace_yytype < ACE_YYNTOKENS)
00782 ACE_YYPRINT (ace_yyoutput, ace_yytoknum[ace_yytype], *ace_yyvaluep);
00783 # endif
00784 switch (ace_yytype)
00785 {
00786 default:
00787 break;
00788 }
00789 ACE_YYFPRINTF (ace_yyoutput, ")");
00790 }
00791
00792 #endif
00793
00794
00795
00796
00797 #if defined (__STDC__) || defined (__cplusplus)
00798 static void
00799 ace_yydestruct (const char *ace_yymsg, int ace_yytype, ACE_YYSTYPE *ace_yyvaluep)
00800 #else
00801 static void
00802 ace_yydestruct (ace_yymsg, ace_yytype, ace_yyvaluep)
00803 const char *ace_yymsg;
00804 int ace_yytype;
00805 ACE_YYSTYPE *ace_yyvaluep;
00806 #endif
00807 {
00808
00809 (void) ace_yyvaluep;
00810 (void) ace_yytype;
00811
00812 if (!ace_yymsg)
00813 ace_yymsg = "Deleting";
00814 ACE_YY_SYMBOL_PRINT (ace_yymsg, ace_yytype, ace_yyvaluep, ace_yylocationp);
00815 }
00816
00817
00818 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00819
00820
00821
00822 #ifdef ACE_YYPARSE_PARAM
00823 # if defined (__STDC__) || defined (__cplusplus)
00824 int ace_yyparse (void *ACE_YYPARSE_PARAM);
00825 # else
00826 int ace_yyparse ();
00827 # endif
00828 #else
00829 #if defined (__STDC__) || defined (__cplusplus)
00830 int ace_yyparse (void);
00831 #else
00832 int ace_yyparse ();
00833 #endif
00834 #endif
00835
00836
00837
00838
00839
00840
00841 #ifdef ACE_YYPARSE_PARAM
00842 # if defined (__STDC__) || defined (__cplusplus)
00843 int ace_yyparse (void *ACE_YYPARSE_PARAM)
00844 # else
00845 int ace_yyparse (ACE_YYPARSE_PARAM)
00846 void *ACE_YYPARSE_PARAM;
00847 # endif
00848 #else
00849 #if defined (__STDC__) || defined (__cplusplus)
00850 int
00851 ace_yyparse (void)
00852 #else
00853 int
00854 ace_yyparse ()
00855
00856 #endif
00857 #endif
00858 {
00859
00860 int ace_yychar;
00861
00862
00863 ACE_YYSTYPE ace_yylval;
00864
00865 #if defined (ACE_YYSTYPE_IS_TRIVIAL)
00866 ace_yylval = 0;
00867 #else
00868 ace_yylval.type_ = 0;
00869 #endif
00870
00871
00872 int ace_yynerrs;
00873
00874 register int ace_yystate;
00875 register int ace_yyn;
00876 int ace_yyresult;
00877
00878 int ace_yyerrstatus;
00879
00880 int ace_yytoken = 0;
00881
00882
00883
00884
00885
00886
00887
00888
00889
00890
00891 short int ace_yyssa[ACE_YYINITDEPTH];
00892 short int *ace_yyss = ace_yyssa;
00893 register short int *ace_yyssp;
00894
00895
00896 ACE_YYSTYPE ace_yyvsa[ACE_YYINITDEPTH];
00897 ACE_YYSTYPE *ace_yyvs = ace_yyvsa;
00898 register ACE_YYSTYPE *ace_yyvsp;
00899
00900
00901
00902 #define ACE_YYPOPSTACK (ace_yyvsp--, ace_yyssp--)
00903
00904 ACE_YYSIZE_T ace_yystacksize = ACE_YYINITDEPTH;
00905
00906
00907
00908 ACE_YYSTYPE ace_yyval;
00909
00910
00911
00912
00913 int ace_yylen;
00914
00915 ACE_YYDPRINTF ((stderr, "Starting parse\n"));
00916
00917 ace_yystate = 0;
00918 ace_yyerrstatus = 0;
00919 ace_yynerrs = 0;
00920 ace_yychar = ACE_YYEMPTY;
00921
00922
00923
00924
00925
00926
00927 ace_yyssp = ace_yyss;
00928 ace_yyvsp = ace_yyvs;
00929
00930
00931 ace_yyvsp[0] = ace_yylval;
00932
00933 goto ace_yysetstate;
00934
00935
00936
00937
00938 ace_yynewstate:
00939
00940
00941
00942 ace_yyssp++;
00943
00944 ace_yysetstate:
00945 *ace_yyssp = ace_yystate;
00946
00947 if (ace_yyss + ace_yystacksize - 1 <= ace_yyssp)
00948 {
00949
00950 ACE_YYSIZE_T ace_yysize = ace_yyssp - ace_yyss + 1;
00951
00952 #ifdef ace_yyoverflow
00953 {
00954
00955
00956
00957 ACE_YYSTYPE *ace_yyvs1 = ace_yyvs;
00958 short int *ace_yyss1 = ace_yyss;
00959
00960
00961
00962
00963
00964
00965 ace_yyoverflow ("parser stack overflow",
00966 &ace_yyss1, ace_yysize * sizeof (*ace_yyssp),
00967 &ace_yyvs1, ace_yysize * sizeof (*ace_yyvsp),
00968
00969 &ace_yystacksize);
00970
00971 ace_yyss = ace_yyss1;
00972 ace_yyvs = ace_yyvs1;
00973 }
00974 #else
00975 # ifndef ACE_YYSTACK_RELOCATE
00976 goto ace_yyoverflowlab;
00977 # else
00978
00979 if (ACE_YYMAXDEPTH <= ace_yystacksize)
00980 goto ace_yyoverflowlab;
00981 ace_yystacksize *= 2;
00982 if (ACE_YYMAXDEPTH < ace_yystacksize)
00983 ace_yystacksize = ACE_YYMAXDEPTH;
00984
00985 {
00986 short int *ace_yyss1 = ace_yyss;
00987 union ace_yyalloc *ace_yyptr =
00988 (union ace_yyalloc *) ACE_YYSTACK_ALLOC (ACE_YYSTACK_BYTES (ace_yystacksize));
00989 if (! ace_yyptr)
00990 goto ace_yyoverflowlab;
00991 ACE_YYSTACK_RELOCATE (ace_yyss);
00992 ACE_YYSTACK_RELOCATE (ace_yyvs);
00993
00994 # undef ACE_YYSTACK_RELOCATE
00995 if (ace_yyss1 != ace_yyssa)
00996 ACE_YYSTACK_FREE (ace_yyss1);
00997 }
00998 # endif
00999 #endif
01000
01001 ace_yyssp = ace_yyss + ace_yysize - 1;
01002 ace_yyvsp = ace_yyvs + ace_yysize - 1;
01003
01004
01005 ACE_YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01006 (unsigned long int) ace_yystacksize));
01007
01008 if (ace_yyss + ace_yystacksize - 1 <= ace_yyssp)
01009 ACE_YYABORT;
01010 }
01011
01012 ACE_YYDPRINTF ((stderr, "Entering state %d\n", ace_yystate));
01013
01014 goto ace_yybackup;
01015
01016
01017
01018
01019 ace_yybackup:
01020
01021
01022
01023
01024
01025
01026
01027 ace_yyn = ace_yypact[ace_yystate];
01028 if (ace_yyn == ACE_YYPACT_NINF)
01029 goto ace_yydefault;
01030
01031
01032
01033
01034 if (ace_yychar == ACE_YYEMPTY)
01035 {
01036 ACE_YYDPRINTF ((stderr, "Reading a token: "));
01037 ace_yychar = ACE_YYLEX;
01038 }
01039
01040 if (ace_yychar <= ACE_YYEOF)
01041 {
01042 ace_yychar = ace_yytoken = ACE_YYEOF;
01043 ACE_YYDPRINTF ((stderr, "Now at end of input.\n"));
01044 }
01045 else
01046 {
01047 ace_yytoken = ACE_YYTRANSLATE (ace_yychar);
01048 ACE_YY_SYMBOL_PRINT ("Next token is", ace_yytoken, &ace_yylval, &ace_yylloc);
01049 }
01050
01051
01052
01053 ace_yyn += ace_yytoken;
01054 if (ace_yyn < 0 || ACE_YYLAST < ace_yyn || ace_yycheck[ace_yyn] != ace_yytoken)
01055 goto ace_yydefault;
01056 ace_yyn = ace_yytable[ace_yyn];
01057 if (ace_yyn <= 0)
01058 {
01059 if (ace_yyn == 0 || ace_yyn == ACE_YYTABLE_NINF)
01060 goto ace_yyerrlab;
01061 ace_yyn = -ace_yyn;
01062 goto ace_yyreduce;
01063 }
01064
01065 if (ace_yyn == ACE_YYFINAL)
01066 ACE_YYACCEPT;
01067
01068
01069 ACE_YY_SYMBOL_PRINT ("Shifting", ace_yytoken, &ace_yylval, &ace_yylloc);
01070
01071
01072 if (ace_yychar != ACE_YYEOF)
01073 ace_yychar = ACE_YYEMPTY;
01074
01075 *++ace_yyvsp = ace_yylval;
01076
01077
01078
01079
01080 if (ace_yyerrstatus)
01081 ace_yyerrstatus--;
01082
01083 ace_yystate = ace_yyn;
01084 goto ace_yynewstate;
01085
01086
01087
01088
01089
01090 ace_yydefault:
01091 ace_yyn = ace_yydefact[ace_yystate];
01092 if (ace_yyn == 0)
01093 goto ace_yyerrlab;
01094 goto ace_yyreduce;
01095
01096
01097
01098
01099
01100 ace_yyreduce:
01101
01102 ace_yylen = ace_yyr2[ace_yyn];
01103
01104
01105
01106
01107
01108
01109
01110
01111
01112 ace_yyval = ace_yyvsp[1-ace_yylen];
01113
01114
01115 ACE_YY_REDUCE_PRINT (ace_yyn);
01116 switch (ace_yyn)
01117 {
01118 case 2:
01119
01120 {
01121 if ((ace_yyvsp[0].parse_node_) != 0)
01122 {
01123 (ace_yyvsp[0].parse_node_)->apply (ACE_SVC_CONF_PARAM->config, ACE_SVC_CONF_PARAM->yyerrno);
01124 delete (ace_yyvsp[0].parse_node_);
01125 }
01126 ACE_SVC_CONF_PARAM->obstack.release ();
01127 ;}
01128 break;
01129
01130 case 3:
01131
01132 {
01133 ACE_SVC_CONF_PARAM->obstack.release ();
01134 ;}
01135 break;
01136
01137 case 11:
01138
01139 {
01140 if ((ace_yyvsp[-1].svc_record_) != 0)
01141 (ace_yyval.parse_node_) = new ACE_Dynamic_Node ((ace_yyvsp[-1].svc_record_), (ace_yyvsp[0].ident_));
01142 else
01143 (ace_yyval.parse_node_) = 0;
01144 ;}
01145 break;
01146
01147 case 12:
01148
01149 {
01150 (ace_yyval.parse_node_) = new ACE_Static_Node ((ace_yyvsp[-1].ident_), (ace_yyvsp[0].ident_));
01151 ;}
01152 break;
01153
01154 case 13:
01155
01156 {
01157 (ace_yyval.parse_node_) = new ACE_Suspend_Node ((ace_yyvsp[0].ident_));
01158 ;}
01159 break;
01160
01161 case 14:
01162
01163 {
01164 (ace_yyval.parse_node_) = new ACE_Resume_Node ((ace_yyvsp[0].ident_));
01165 ;}
01166 break;
01167
01168 case 15:
01169
01170 {
01171 (ace_yyval.parse_node_) = new ACE_Remove_Node ((ace_yyvsp[0].ident_));
01172 ;}
01173 break;
01174
01175 case 16:
01176
01177 {
01178 (ace_yyval.parse_node_) = new ACE_Stream_Node ((ace_yyvsp[-1].static_node_), (ace_yyvsp[0].parse_node_));
01179 ;}
01180 break;
01181
01182 case 17:
01183
01184 { (ace_yyval.static_node_) = new ACE_Static_Node ((ace_yyvsp[0].ident_)); ;}
01185 break;
01186
01187 case 18:
01188
01189 {
01190 (ace_yyval.parse_node_) = new ACE_Dummy_Node ((ace_yyvsp[-1].static_node_), (ace_yyvsp[0].parse_node_));
01191 ;}
01192 break;
01193
01194 case 19:
01195
01196 {
01197 ;}
01198 break;
01199
01200 case 20:
01201
01202 {
01203 ;}
01204 break;
01205
01206 case 21:
01207
01208 {
01209
01210 (ace_yyval.static_node_) = (ace_yyvsp[-1].static_node_);
01211 ;}
01212 break;
01213
01214 case 22:
01215
01216 {
01217 (ace_yyval.parse_node_) = (ace_yyvsp[-1].parse_node_);
01218 ;}
01219 break;
01220
01221 case 23:
01222
01223 { (ace_yyval.parse_node_) = 0; ;}
01224 break;
01225
01226 case 24:
01227
01228 {
01229 if ((ace_yyvsp[0].parse_node_) != 0)
01230 {
01231 (ace_yyvsp[0].parse_node_)->link ((ace_yyvsp[-1].parse_node_));
01232 (ace_yyval.parse_node_) = (ace_yyvsp[0].parse_node_);
01233 }
01234 ;}
01235 break;
01236
01237 case 25:
01238
01239 { (ace_yyval.parse_node_) = 0; ;}
01240 break;
01241
01242 case 26:
01243
01244 {
01245 ACE_Static_Node *svc_type = (ace_yyvsp[0].static_node_);
01246
01247 if (svc_type != 0)
01248 {
01249 ACE_Static_Node *module = (ace_yyvsp[-2].static_node_);
01250
01251 ACE_ARGV args (svc_type->parameters ());
01252 ACE_Module_Type *mt = ace_get_module (module->record (ACE_SVC_CONF_PARAM->config),
01253 svc_type->record (ACE_SVC_CONF_PARAM->config),
01254 ACE_SVC_CONF_PARAM->yyerrno);
01255 ACE_Stream_Type *st =
01256 dynamic_cast<ACE_Stream_Type *> (const_cast<ACE_Service_Type_Impl *> (module->record (ACE_SVC_CONF_PARAM->config)->type ()));
01257
01258 if (mt->init (args.argc (), args.argv ()) == -1
01259 || st->push (mt) == -1)
01260 {
01261 ACE_ERROR ((LM_ERROR,
01262 ACE_LIB_TEXT ("dynamic initialization failed for Module %s\n"),
01263 svc_type->name ()));
01264 ACE_SVC_CONF_PARAM->yyerrno++;
01265 }
01266 }
01267 ;}
01268 break;
01269
01270 case 27:
01271
01272 {
01273 ACE_Static_Node *sn = (ace_yyvsp[-2].static_node_);
01274 ACE_Module_Type *mt = ace_get_module (sn->record (ACE_SVC_CONF_PARAM->config),
01275 (ace_yyvsp[0].static_node_)->name (),
01276 ACE_SVC_CONF_PARAM->yyerrno);
01277
01278 if (((ACE_Stream_Type *) sn->record (ACE_SVC_CONF_PARAM->config)->type ())->push (mt) == -1)
01279 {
01280 ACE_ERROR ((LM_ERROR,
01281 ACE_LIB_TEXT ("Problem with static\n")));
01282 ACE_SVC_CONF_PARAM->yyerrno++;
01283 }
01284 ;}
01285 break;
01286
01287 case 28:
01288
01289 {
01290 ACE_Static_Node *sn = (ace_yyvsp[-2].static_node_);
01291 ACE_Module_Type *mt = ace_get_module (sn->record (ACE_SVC_CONF_PARAM->config),
01292 sn->name (),
01293 ACE_SVC_CONF_PARAM->yyerrno);
01294 if (mt != 0)
01295 mt->suspend ();
01296 ;}
01297 break;
01298
01299 case 29:
01300
01301 {
01302 ACE_Static_Node *sn = (ace_yyvsp[-2].static_node_);
01303 ACE_Module_Type *mt = ace_get_module (sn->record (ACE_SVC_CONF_PARAM->config),
01304 (ace_yyvsp[0].static_node_)->name (),
01305 ACE_SVC_CONF_PARAM->yyerrno);
01306 if (mt != 0)
01307 mt->resume ();
01308 ;}
01309 break;
01310
01311 case 30:
01312
01313 {
01314 ACE_Static_Node *stream = (ace_yyvsp[-2].static_node_);
01315 ACE_Static_Node *module = (ace_yyvsp[0].static_node_);
01316 ACE_Module_Type *mt = ace_get_module (stream->record (ACE_SVC_CONF_PARAM->config),
01317 module->name (),
01318 ACE_SVC_CONF_PARAM->yyerrno);
01319
01320 ACE_Stream_Type *st =
01321 dynamic_cast<ACE_Stream_Type *> (const_cast<ACE_Service_Type_Impl *> (stream->record (ACE_SVC_CONF_PARAM->config)->type ()));
01322 if (mt != 0 && st->remove (mt) == -1)
01323 {
01324 ACE_ERROR ((LM_ERROR,
01325 ACE_LIB_TEXT ("cannot remove Module_Type %s from STREAM_Type %s\n"),
01326 module->name (),
01327 stream->name ()));
01328 ACE_SVC_CONF_PARAM->yyerrno++;
01329 }
01330 ;}
01331 break;
01332
01333 case 31:
01334
01335 {
01336 (ace_yyval.svc_record_) = new ACE_Service_Type_Factory ((ace_yyvsp[-3].ident_), (ace_yyvsp[-2].type_), (ace_yyvsp[-1].location_node_), (ace_yyvsp[0].type_));
01337 ;}
01338 break;
01339
01340 case 32:
01341
01342 {
01343 (ace_yyval.type_) = 1;
01344 ;}
01345 break;
01346
01347 case 33:
01348
01349 {
01350 (ace_yyval.type_) = 0;
01351 ;}
01352 break;
01353
01354 case 34:
01355
01356 {
01357 (ace_yyval.type_) = 1;
01358 ;}
01359 break;
01360
01361 case 35:
01362
01363 {
01364 (ace_yyval.location_node_) = new ACE_Object_Node ((ace_yyvsp[-2].ident_), (ace_yyvsp[0].ident_));
01365 ;}
01366 break;
01367
01368 case 36:
01369
01370 {
01371 (ace_yyval.location_node_) = new ACE_Function_Node ((ace_yyvsp[-4].ident_), (ace_yyvsp[-2].ident_));
01372 ;}
01373 break;
01374
01375 case 37:
01376
01377 {
01378 (ace_yyval.location_node_) = new ACE_Static_Function_Node ((ace_yyvsp[-2].ident_));
01379 ;}
01380 break;
01381
01382 case 38:
01383
01384 {
01385 (ace_yyval.type_) = ACE_MODULE_T;
01386 ;}
01387 break;
01388
01389 case 39:
01390
01391 {
01392 (ace_yyval.type_) = ACE_SVC_OBJ_T;
01393 ;}
01394 break;
01395
01396 case 40:
01397
01398 {
01399 (ace_yyval.type_) = ACE_STREAM_T;
01400 ;}
01401 break;
01402
01403 case 42:
01404
01405 { (ace_yyval.ident_) = 0; ;}
01406 break;
01407
01408
01409 }
01410
01411
01412
01413
01414 ace_yyvsp -= ace_yylen;
01415 ace_yyssp -= ace_yylen;
01416
01417
01418 ACE_YY_STACK_PRINT (ace_yyss, ace_yyssp);
01419
01420 *++ace_yyvsp = ace_yyval;
01421
01422
01423
01424
01425
01426
01427 ace_yyn = ace_yyr1[ace_yyn];
01428
01429 ace_yystate = ace_yypgoto[ace_yyn - ACE_YYNTOKENS] + *ace_yyssp;
01430 if (0 <= ace_yystate && ace_yystate <= ACE_YYLAST && ace_yycheck[ace_yystate] == *ace_yyssp)
01431 ace_yystate = ace_yytable[ace_yystate];
01432 else
01433 ace_yystate = ace_yydefgoto[ace_yyn - ACE_YYNTOKENS];
01434
01435 goto ace_yynewstate;
01436
01437
01438
01439
01440
01441 ace_yyerrlab:
01442
01443 if (!ace_yyerrstatus)
01444 {
01445 ++ace_yynerrs;
01446 #if ACE_YYERROR_VERBOSE
01447 ace_yyn = ace_yypact[ace_yystate];
01448
01449 if (ACE_YYPACT_NINF < ace_yyn && ace_yyn < ACE_YYLAST)
01450 {
01451 ACE_YYSIZE_T ace_yysize = 0;
01452 int ace_yytype = ACE_YYTRANSLATE (ace_yychar);
01453 const char* ace_yyprefix;
01454 char *ace_yymsg;
01455 int ace_yyx;
01456
01457
01458
01459 int ace_yyxbegin = ace_yyn < 0 ? -ace_yyn : 0;
01460
01461
01462 int ace_yychecklim = ACE_YYLAST - ace_yyn;
01463 int ace_yyxend = ace_yychecklim < ACE_YYNTOKENS ? ace_yychecklim : ACE_YYNTOKENS;
01464 int ace_yycount = 0;
01465
01466 ace_yyprefix = ", expecting ";
01467 for (ace_yyx = ace_yyxbegin; ace_yyx < ace_yyxend; ++ace_yyx)
01468 if (ace_yycheck[ace_yyx + ace_yyn] == ace_yyx && ace_yyx != ACE_YYTERROR)
01469 {
01470 ace_yysize += ace_yystrlen (ace_yyprefix) + ace_yystrlen (ace_yytname [ace_yyx]);
01471 ace_yycount += 1;
01472 if (ace_yycount == 5)
01473 {
01474 ace_yysize = 0;
01475 break;
01476 }
01477 }
01478 ace_yysize += (sizeof ("syntax error, unexpected ")
01479 + ace_yystrlen (ace_yytname[ace_yytype]));
01480 ace_yymsg = (ACE_TCHAR *) ACE_YYSTACK_ALLOC (ace_yysize);
01481 if (ace_yymsg != 0)
01482 {
01483 char *ace_yyp = ace_yystpcpy (ace_yymsg, "syntax error, unexpected ");
01484 ace_yyp = ace_yystpcpy (ace_yyp, ace_yytname[ace_yytype]);
01485
01486 if (ace_yycount < 5)
01487 {
01488 ace_yyprefix = ", expecting ";
01489 for (ace_yyx = ace_yyxbegin; ace_yyx < ace_yyxend; ++ace_yyx)
01490 if (ace_yycheck[ace_yyx + ace_yyn] == ace_yyx && ace_yyx != ACE_YYTERROR)
01491 {
01492 ace_yyp = ace_yystpcpy (ace_yyp, ace_yyprefix);
01493 ace_yyp = ace_yystpcpy (ace_yyp, ace_yytname[ace_yyx]);
01494 ace_yyprefix = " or ";
01495 }
01496 }
01497 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, ace_yymsg);
01498 ACE_YYSTACK_FREE (ace_yymsg);
01499 }
01500 else
01501 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, "syntax error; also virtual memory exhausted");
01502 }
01503 else
01504 #endif
01505 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, "syntax error");
01506 }
01507
01508
01509
01510 if (ace_yyerrstatus == 3)
01511 {
01512
01513
01514
01515 if (ace_yychar <= ACE_YYEOF)
01516 {
01517
01518
01519 if (ace_yychar == ACE_YYEOF)
01520 for (;;)
01521 {
01522
01523 ACE_YYPOPSTACK;
01524 if (ace_yyssp == ace_yyss)
01525 ACE_YYABORT;
01526 ace_yydestruct ("Error: popping",
01527 ace_yystos[*ace_yyssp], ace_yyvsp);
01528 }
01529 }
01530 else
01531 {
01532 ace_yydestruct ("Error: discarding", ace_yytoken, &ace_yylval);
01533 ace_yychar = ACE_YYEMPTY;
01534 }
01535 }
01536
01537
01538
01539 goto ace_yyerrlab1;
01540
01541
01542
01543
01544
01545 ace_yyerrorlab:
01546
01547 #if defined (__GNUC__) || defined (ACE_WIN32)
01548
01549
01550 if (0)
01551 goto ace_yyerrorlab;
01552 #endif
01553
01554 ace_yyvsp -= ace_yylen;
01555 ace_yyssp -= ace_yylen;
01556 ace_yystate = *ace_yyssp;
01557 goto ace_yyerrlab1;
01558
01559
01560
01561
01562
01563 ace_yyerrlab1:
01564 ace_yyerrstatus = 3;
01565
01566 for (;;)
01567 {
01568 ace_yyn = ace_yypact[ace_yystate];
01569 if (ace_yyn != ACE_YYPACT_NINF)
01570 {
01571 ace_yyn += ACE_YYTERROR;
01572 if (0 <= ace_yyn && ace_yyn <= ACE_YYLAST && ace_yycheck[ace_yyn] == ACE_YYTERROR)
01573 {
01574 ace_yyn = ace_yytable[ace_yyn];
01575 if (0 < ace_yyn)
01576 break;
01577 }
01578 }
01579
01580
01581 if (ace_yyssp == ace_yyss)
01582 ACE_YYABORT;
01583
01584
01585 ace_yydestruct ("Error: popping", ace_yystos[ace_yystate], ace_yyvsp);
01586 ACE_YYPOPSTACK;
01587 ace_yystate = *ace_yyssp;
01588 ACE_YY_STACK_PRINT (ace_yyss, ace_yyssp);
01589 }
01590
01591 if (ace_yyn == ACE_YYFINAL)
01592 ACE_YYACCEPT;
01593
01594 *++ace_yyvsp = ace_yylval;
01595
01596
01597
01598 ACE_YY_SYMBOL_PRINT ("Shifting", ace_yystos[ace_yyn], ace_yyvsp, ace_yylsp);
01599
01600 ace_yystate = ace_yyn;
01601 goto ace_yynewstate;
01602
01603
01604
01605
01606
01607 ace_yyacceptlab:
01608 ace_yyresult = 0;
01609 goto ace_yyreturn;
01610
01611
01612
01613
01614 ace_yyabortlab:
01615 ace_yydestruct ("Error: discarding lookahead",
01616 ace_yytoken, &ace_yylval);
01617 ace_yychar = ACE_YYEMPTY;
01618 ace_yyresult = 1;
01619 goto ace_yyreturn;
01620
01621 #ifndef ace_yyoverflow
01622
01623
01624
01625 ace_yyoverflowlab:
01626 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, "parser stack overflow");
01627 ace_yyresult = 2;
01628
01629 #endif
01630
01631 ace_yyreturn:
01632 #ifndef ace_yyoverflow
01633 if (ace_yyss != ace_yyssa)
01634 ACE_YYSTACK_FREE (ace_yyss);
01635 #endif
01636 return ace_yyresult;
01637 }
01638
01639
01640
01641
01642 void
01643 ace_yyerror (int ace_yyerrno, int ace_yylineno, const char *s)
01644 {
01645 #if defined (ACE_NLOGGING)
01646 ACE_UNUSED_ARG (ace_yyerrno);
01647 ACE_UNUSED_ARG (ace_yylineno);
01648 ACE_UNUSED_ARG (s);
01649 #endif
01650
01651 ACE_ERROR ((LM_ERROR,
01652 ACE_LIB_TEXT ("[error %d] on line %d: %s\n"),
01653 ace_yyerrno,
01654 ace_yylineno,
01655 s));
01656 }
01657
01658
01659
01660
01661 static ACE_Module_Type *
01662 ace_get_module (const ACE_Service_Type *sr,
01663 const ACE_TCHAR *svc_name,
01664 int & ace_yyerrno)
01665 {
01666 const ACE_Service_Type_Impl *type = sr->type ();
01667 ACE_Stream_Type *st = sr == 0
01668 ? 0
01669 : dynamic_cast<ACE_Stream_Type *> (const_cast<ACE_Service_Type_Impl *> (type));
01670 ACE_Module_Type *mt = st == 0 ? 0 : st->find (svc_name);
01671
01672 if (sr == 0 || st == 0 || mt == 0)
01673 {
01674 ACE_ERROR ((LM_ERROR,
01675 ACE_LIB_TEXT ("cannot locate Module_Type %s in STREAM_Type %s\n"),
01676 svc_name,
01677 sr->name ()));
01678 ace_yyerrno++;
01679 }
01680
01681 return mt;
01682 }
01683
01684 static ACE_Module_Type *
01685 ace_get_module (const ACE_Service_Type *sr,
01686 const ACE_Service_Type *sv,
01687 int & ace_yyerrno)
01688 {
01689 const ACE_Service_Type_Impl *type = sr->type ();
01690 ACE_Stream_Type *st = sr == 0 ? 0 : (ACE_Stream_Type *) type;
01691
01692 type = sv->type ();
01693 ACE_Module_Type *mt = (ACE_Module_Type *) type;
01694 const ACE_TCHAR *module_type_name = sr->name ();
01695
01696 if (sr == 0 || st == 0 || mt == 0)
01697 {
01698 ACE_ERROR ((LM_ERROR,
01699 ACE_LIB_TEXT ("cannot locate Module_Type %s or STREAM_Type %s\n"),
01700 module_type_name,
01701 sr->name ()));
01702 ace_yyerrno++;
01703 }
01704
01705
01706
01707 ACE_Module<ACE_SYNCH> *mp = (ACE_Module<ACE_SYNCH> *) mt->object ();
01708
01709 if (ACE_OS::strcmp (mp->name (), module_type_name) != 0)
01710 {
01711 ACE_DEBUG ((LM_DEBUG,
01712 ACE_LIB_TEXT ("warning: assigning Module_Type name %s to Module %s since names differ\n"),
01713 module_type_name,
01714 mp->name ()));
01715 mp->name (module_type_name);
01716 }
01717
01718 return mt;
01719 }
01720
01721 #if defined (DEBUGGING)
01722
01723
01724 int
01725 main (int argc, char *argv[])
01726 {
01727 ACE_Svc_Conf_Param param (stdin);
01728
01729
01730 if (argc > 1 && (ace_yyin = freopen (argv[1], "r", stdin)) == 0)
01731 (void) ACE_OS::ACE_OS::fprintf (stderr, ACE_LIB_TEXT ("usage: %s [file]\n"), argv[0]), ACE_OS::exit (1);
01732
01733 return ::ace_yyparse (¶m);
01734 }
01735 #endif
01736
01737 ACE_END_VERSIONED_NAMESPACE_DECL
01738
01739 #endif