1 /* A Bison parser, made by GNU Bison 2.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with ace_yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
65 /* Put the tokens into the symbol table, so that GDB and other debuggers
67 enum ace_yytokentype
{
85 #define ACE_DYNAMIC 258
86 #define ACE_STATIC 259
87 #define ACE_SUSPEND 260
88 #define ACE_RESUME 261
89 #define ACE_REMOVE 262
90 #define ACE_USTREAM 263
91 #define ACE_MODULE_T 264
92 #define ACE_STREAM_T 265
93 #define ACE_SVC_OBJ_T 266
94 #define ACE_ACTIVE 267
95 #define ACE_INACTIVE 268
96 #define ACE_PATHNAME 269
98 #define ACE_STRING 271
102 /* Copy the first part of user declarations. */
105 #include "ace/Svc_Conf.h"
107 #if (ACE_USES_CLASSIC_SVC_CONF == 1)
109 #include "ace/Module.h"
110 #include "ace/Stream.h"
111 #include "ace/Service_Types.h"
112 #include "ace/ace_wchar.h"
115 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
119 static ACE_Module_Type
*
120 ace_get_module (ACE_Service_Type
const * sr
,
121 ACE_TCHAR
const * svc_name
,
122 int & ace_ace_yyerrno
);
124 #define YYDEBUG_LEXER_TEXT (ace_yytext[ace_yyleng] = '\0', ace_yytext)
126 // Force the pretty debugging code to compile.
129 // Bison 2.3 template contains switch statement with a "default:", but
130 // without a "case:" label. Suppressing a compiler warning for Visual
132 #if defined (_MSC_VER)
133 # pragma warning ( disable : 4065 )
136 // Normalize the message literal's type to match ace_yyerror() prototype
139 // Prevent yacc(1) from declaring a trivial YYSTYPE just because
140 // YYSTYPE is not a macro definition. On the other hand we want
141 // YYSTYPE_IS_DECLARED to be as localized as possible to avoid
142 // poluting the global namespace - there may be other yacc(1) parsers
143 // that want to play nice with ACE
144 #define YYSTYPE_IS_DECLARED
146 ACE_END_VERSIONED_NAMESPACE_DECL
148 /* Enabling traces. */
153 /* Enabling verbose error messages. */
154 #ifdef YYERROR_VERBOSE
155 # undef YYERROR_VERBOSE
156 # define YYERROR_VERBOSE 1
158 # define YYERROR_VERBOSE 0
161 /* Enabling the token table. */
162 #ifndef YYTOKEN_TABLE
163 # define YYTOKEN_TABLE 0
166 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
168 # define ace_yystype YYSTYPE /* obsolescent; will be withdrawn */
169 # define YYSTYPE_IS_DECLARED 1
170 # define YYSTYPE_IS_TRIVIAL 1
174 /* Copy the second part of user declarations. */
177 /* Line 216 of yacc.c. */
185 typedef YYTYPE_UINT8 ace_yytype_uint8
;
187 using ace_yytype_uint8
= unsigned char;
191 typedef YYTYPE_INT8 ace_yytype_int8
;
192 #elif (defined __STDC__ || defined __C99__FUNC__ \
193 || defined __cplusplus || defined _MSC_VER)
194 using ace_yytype_int8
= signed char;
196 typedef short int ace_yytype_int8
;
200 typedef YYTYPE_UINT16 ace_yytype_uint16
;
202 using ace_yytype_uint16
= unsigned short;
206 typedef YYTYPE_INT16 ace_yytype_int16
;
208 using ace_yytype_int16
= short;
212 # ifdef __SIZE_TYPE__
213 # define YYSIZE_T __SIZE_TYPE__
214 # elif defined size_t
215 # define YYSIZE_T size_t
216 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
217 || defined __cplusplus || defined _MSC_VER)
218 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
219 # define YYSIZE_T size_t
221 # define YYSIZE_T unsigned int
225 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
230 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
231 # define YY_(msgid) dgettext ("bison-runtime", msgid)
235 # define YY_(msgid) msgid
239 /* Suppress unused-variable warnings by "using" E. */
240 #if ! defined lint || defined __GNUC__
241 # define YYUSE(e) ((void) (e))
243 # define YYUSE(e) /* empty */
246 /* Identity function, used to suppress warnings about constant conditions. */
250 #if (defined __STDC__ || defined __C99__FUNC__ \
251 || defined __cplusplus || defined _MSC_VER)
264 #if ! defined ace_yyoverflow || YYERROR_VERBOSE
266 /* The parser invokes alloca or malloc; define the necessary symbols. */
268 # ifdef YYSTACK_USE_ALLOCA
269 # if YYSTACK_USE_ALLOCA
271 # define YYSTACK_ALLOC __builtin_alloca
272 # elif defined __BUILTIN_VA_ARG_INCR
273 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
275 # define YYSTACK_ALLOC __alloca
276 # elif defined _MSC_VER
277 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
278 # define alloca _alloca
280 # define YYSTACK_ALLOC alloca
281 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
282 || defined __cplusplus || defined _MSC_VER)
283 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
292 # ifdef YYSTACK_ALLOC
293 /* Pacify GCC's `empty if-body' warning. */
294 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
295 # ifndef YYSTACK_ALLOC_MAXIMUM
296 /* The OS might guarantee only one guard page at the bottom of the stack,
297 and a page size can be as small as 4096 bytes. So we cannot safely
298 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
299 to allow for a few compiler-allocated temporary stack slots. */
300 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
303 # define YYSTACK_ALLOC YYMALLOC
304 # define YYSTACK_FREE YYFREE
305 # ifndef YYSTACK_ALLOC_MAXIMUM
306 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
308 # if (defined __cplusplus && ! defined _STDLIB_H \
309 && ! ((defined YYMALLOC || defined malloc) \
310 && (defined YYFREE || defined free)))
311 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
317 # define YYMALLOC malloc
318 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
319 || defined __cplusplus || defined _MSC_VER)
320 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
325 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
326 || defined __cplusplus || defined _MSC_VER)
327 void free (void *); /* INFRINGES ON USER NAME SPACE */
331 #endif /* ! defined ace_yyoverflow || YYERROR_VERBOSE */
334 #if (! defined ace_yyoverflow \
335 && (! defined __cplusplus \
336 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
338 /* A type that is properly aligned for any stack member. */
341 ace_yytype_int16 ace_yyss
;
345 /* The size of the maximum gap between one aligned stack and the next. */
346 # define YYSTACK_GAP_MAXIMUM (sizeof (union ace_yyalloc) - 1)
348 /* The size of an array large to enough to hold all stacks, each with
350 # define YYSTACK_BYTES(N) \
351 ((N) * (sizeof (ace_yytype_int16) + sizeof (YYSTYPE)) \
352 + YYSTACK_GAP_MAXIMUM)
354 /* Copy COUNT objects from FROM to TO. The source and destination do
357 # if defined __GNUC__ && 1 < __GNUC__
358 # define YYCOPY(To, From, Count) \
359 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
361 # define YYCOPY(To, From, Count) \
365 for (ace_yyi = 0; ace_yyi < (Count); ace_yyi++) \
366 (To)[ace_yyi] = (From)[ace_yyi]; \
372 /* Relocate STACK from its old location to the new one. The
373 local variables YYSIZE and YYSTACKSIZE give the old and new number of
374 elements in the stack, and YYPTR gives the new location of the
375 stack. Advance YYPTR to a properly aligned location for the next
377 # define YYSTACK_RELOCATE(Stack) \
380 YYSIZE_T ace_yynewbytes; \
381 YYCOPY (&ace_yyptr->Stack, Stack, ace_yysize); \
382 Stack = &ace_yyptr->Stack; \
383 ace_yynewbytes = ace_yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
384 ace_yyptr += ace_yynewbytes / sizeof (*ace_yyptr); \
390 /* YYFINAL -- State number of the termination state. */
392 /* YYLAST -- Last index in YYTABLE. */
395 /* YYNTOKENS -- Number of terminals. */
397 /* YYNNTS -- Number of nonterminals. */
399 /* YYNRULES -- Number of rules. */
401 /* YYNRULES -- Number of states. */
404 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
406 #define YYMAXUTOK 271
408 #define YYTRANSLATE(YYX) \
409 ((unsigned int) (YYX) <= YYMAXUTOK ? ace_yytranslate[YYX] : YYUNDEFTOK)
411 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
412 static const ace_yytype_uint8 ace_yytranslate
[] =
414 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
415 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
417 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
418 20, 21, 22, 2, 2, 2, 2, 2, 2, 2,
419 2, 2, 2, 2, 2, 2, 2, 2, 19, 2,
420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
422 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
423 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
424 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
425 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
426 2, 2, 2, 17, 2, 18, 2, 2, 2, 2,
427 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
428 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
429 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
430 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
431 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
432 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
433 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
434 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
435 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
436 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
437 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
439 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
440 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
445 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
447 static const ace_yytype_uint8 ace_yyprhs
[] =
449 0, 0, 3, 6, 9, 10, 12, 14, 16, 18,
450 20, 22, 26, 30, 33, 36, 39, 43, 44, 49,
451 51, 53, 54, 59, 60, 63, 64, 66, 68, 70,
452 72, 74, 79, 81, 83, 84, 88, 94, 99, 102,
453 105, 108, 110, 111, 113, 115
456 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
457 static const ace_yytype_int8 ace_yyrhs
[] =
459 24, 0, -1, 24, 25, -1, 24, 1, -1, -1,
460 26, -1, 27, -1, 28, -1, 29, -1, 30, -1,
461 31, -1, 3, 38, 42, -1, 4, 15, 42, -1,
462 5, 15, -1, 6, 15, -1, 7, 15, -1, 8,
463 33, 34, -1, -1, 8, 15, 32, 34, -1, 26,
464 -1, 27, -1, -1, 17, 35, 36, 18, -1, -1,
465 36, 37, -1, -1, 26, -1, 27, -1, 28, -1,
466 29, -1, 30, -1, 15, 41, 40, 39, -1, 12,
467 -1, 13, -1, -1, 43, 19, 15, -1, 43, 19,
468 15, 20, 21, -1, 19, 15, 20, 21, -1, 9,
469 22, -1, 11, 22, -1, 10, 22, -1, 16, -1,
470 -1, 14, -1, 15, -1, 16, -1
473 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
474 static const ace_yytype_uint16 ace_yyrline
[] =
476 0, 72, 72, 81, 85, 89, 90, 91, 92, 93,
477 94, 98, 108, 115, 122, 129, 136, 140, 140, 147,
478 150, 157, 156, 166, 170, 178, 182, 185, 199, 208,
479 217, 239, 246, 250, 255, 261, 265, 269, 276, 280,
480 284, 291, 292, 296, 297, 298
484 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
485 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
486 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
487 static const char *const ace_yytname
[] =
489 "$end", "error", "$undefined", "ACE_DYNAMIC", "ACE_STATIC",
490 "ACE_SUSPEND", "ACE_RESUME", "ACE_REMOVE", "ACE_USTREAM", "ACE_MODULE_T",
491 "ACE_STREAM_T", "ACE_SVC_OBJ_T", "ACE_ACTIVE", "ACE_INACTIVE",
492 "ACE_PATHNAME", "ACE_IDENT", "ACE_STRING", "'{'", "'}'", "':'", "'('",
493 "')'", "'*'", "$accept", "svc_config_entries", "svc_config_entry",
494 "dynamic", "static", "suspend", "resume", "remove", "stream", "@1",
495 "stream_ops", "stream_modules", "@2", "module_list", "module",
496 "svc_location", "status", "svc_initializer", "type", "parameters_opt",
502 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
504 static const ace_yytype_uint16 ace_yytoknum
[] =
506 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
507 265, 266, 267, 268, 269, 270, 271, 123, 125, 58,
512 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
513 static const ace_yytype_uint8 ace_yyr1
[] =
515 0, 23, 24, 24, 24, 25, 25, 25, 25, 25,
516 25, 26, 27, 28, 29, 30, 31, 32, 31, 33,
517 33, 35, 34, 34, 36, 36, 37, 37, 37, 37,
518 37, 38, 39, 39, 39, 40, 40, 40, 41, 41,
519 41, 42, 42, 43, 43, 43
522 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
523 static const ace_yytype_uint8 ace_yyr2
[] =
525 0, 2, 2, 2, 0, 1, 1, 1, 1, 1,
526 1, 3, 3, 2, 2, 2, 3, 0, 4, 1,
527 1, 0, 4, 0, 2, 0, 1, 1, 1, 1,
528 1, 4, 1, 1, 0, 3, 5, 4, 2, 2,
532 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
533 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
534 means the default is an error. */
535 static const ace_yytype_uint8 ace_yydefact
[] =
537 4, 0, 1, 3, 0, 0, 0, 0, 0, 0,
538 2, 5, 6, 7, 8, 9, 10, 0, 42, 42,
539 13, 14, 15, 17, 19, 20, 23, 0, 0, 0,
540 0, 41, 11, 12, 23, 21, 16, 38, 40, 39,
541 43, 44, 45, 0, 34, 0, 18, 25, 0, 32,
542 33, 31, 0, 0, 0, 35, 22, 26, 27, 28,
543 29, 30, 24, 37, 0, 36
546 /* YYDEFGOTO[NTERM-NUM]. */
547 static const ace_yytype_int8 ace_yydefgoto
[] =
549 -1, 1, 10, 11, 12, 13, 14, 15, 16, 34,
550 26, 36, 47, 53, 62, 18, 51, 44, 30, 32,
554 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
556 #define YYPACT_NINF -13
557 static const ace_yytype_int8 ace_yypact
[] =
559 -13, 20, -13, -13, 1, 3, 7, 14, 18, 4,
560 -13, -13, -13, -13, -13, -13, -13, 21, 19, 19,
561 -13, -13, -13, -13, -13, -13, -2, 12, 15, 16,
562 -5, -13, -13, -13, -2, -13, -13, -13, -13, -13,
563 -13, -13, -13, 24, 0, 17, -13, -13, 22, -13,
564 -13, -13, 25, -1, 26, 23, -13, -13, -13, -13,
565 -13, -13, -13, -13, 27, -13
568 /* YYPGOTO[NTERM-NUM]. */
569 static const ace_yytype_int8 ace_yypgoto
[] =
571 -13, -13, -13, -9, -8, -12, -7, -4, -13, -13,
572 -13, 28, -13, -13, -13, -13, -13, -13, -13, 31,
576 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
577 positive, shift that token. If negative, reduce the rule which
578 number is the opposite. If zero, do what YYDEFACT says.
579 If YYTABLE_NINF, syntax error. */
580 #define YYTABLE_NINF -1
581 static const ace_yytype_uint8 ace_yytable
[] =
583 24, 25, 4, 5, 6, 7, 8, 4, 5, 40,
584 41, 42, 49, 50, 43, 35, 17, 56, 19, 23,
585 2, 3, 20, 4, 5, 6, 7, 8, 9, 21,
586 27, 28, 29, 22, 37, 31, 52, 38, 39, 48,
587 55, 59, 54, 64, 57, 58, 60, 63, 65, 61,
588 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
592 static const ace_yytype_int8 ace_yycheck
[] =
594 9, 9, 3, 4, 5, 6, 7, 3, 4, 14,
595 15, 16, 12, 13, 19, 17, 15, 18, 15, 15,
596 0, 1, 15, 3, 4, 5, 6, 7, 8, 15,
597 9, 10, 11, 15, 22, 16, 19, 22, 22, 15,
598 15, 53, 20, 20, 53, 53, 53, 21, 21, 53,
599 19, -1, -1, -1, -1, -1, -1, -1, -1, -1,
603 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
604 symbol of state STATE-NUM. */
605 static const ace_yytype_uint8 ace_yystos
[] =
607 0, 24, 0, 1, 3, 4, 5, 6, 7, 8,
608 25, 26, 27, 28, 29, 30, 31, 15, 38, 15,
609 15, 15, 15, 15, 26, 27, 33, 9, 10, 11,
610 41, 16, 42, 42, 32, 17, 34, 22, 22, 22,
611 14, 15, 16, 19, 40, 43, 34, 35, 15, 12,
612 13, 39, 19, 36, 20, 15, 18, 26, 27, 28,
613 29, 30, 37, 21, 20, 21
616 #define ace_yyerrok (ace_yyerrstatus = 0)
617 #define ace_yyclearin (ace_yychar = YYEMPTY)
621 #define YYACCEPT goto ace_yyacceptlab
622 #define YYABORT goto ace_yyabortlab
623 #define YYERROR goto ace_yyerrorlab
626 /* Like YYERROR except do call ace_yyerror. This remains here temporarily
627 to ease the transition to the new meaning of YYERROR, for GCC.
628 Once GCC version 2 has supplanted version 1, this can go. */
630 #define YYFAIL goto ace_yyerrlab
632 #define YYRECOVERING() (!!ace_yyerrstatus)
634 #define YYBACKUP(Token, Value) \
636 if (ace_yychar == YYEMPTY && ace_yylen == 1) \
638 ace_yychar = (Token); \
639 ace_yylval = (Value); \
640 ace_yytoken = YYTRANSLATE (ace_yychar); \
646 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_("syntax error: cannot back up")); \
653 #define YYERRCODE 256
656 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
657 If N is 0, then set CURRENT to the empty location which ends
658 the previous symbol: RHS[0] (always defined). */
660 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
661 #ifndef YYLLOC_DEFAULT
662 # define YYLLOC_DEFAULT(Current, Rhs, N) \
666 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
667 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
668 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
669 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
673 (Current).first_line = (Current).last_line = \
674 YYRHSLOC (Rhs, 0).last_line; \
675 (Current).first_column = (Current).last_column = \
676 YYRHSLOC (Rhs, 0).last_column; \
682 /* YY_LOCATION_PRINT -- Print the location on the stream.
683 This macro was not mandated originally: define only if we know
684 we won't break user code: when these are the locations we know. */
686 #ifndef YY_LOCATION_PRINT
687 # if YYLTYPE_IS_TRIVIAL
688 # define YY_LOCATION_PRINT(File, Loc) \
689 ACE_OS::fprintf (File, "%d.%d-%d.%d", \
690 (Loc).first_line, (Loc).first_column, \
691 (Loc).last_line, (Loc).last_column)
693 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
698 /* YYLEX -- calling `ace_yylex' with the right arguments. */
701 # define YYLEX ace_yylex (&ace_yylval, YYLEX_PARAM)
703 # define YYLEX ace_yylex (&ace_yylval)
706 /* Enable debugging if requested. */
710 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
711 # define YYFPRINTF ACE_OS::fprintf
714 # define YYDPRINTF(Args) \
720 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
724 YYFPRINTF (stderr, "%s ", Title); \
725 ace_yy_symbol_print (stderr, \
727 YYFPRINTF (stderr, "\n"); \
732 /*--------------------------------.
733 | Print this symbol on YYOUTPUT. |
734 `--------------------------------*/
737 #if (defined __STDC__ || defined __C99__FUNC__ \
738 || defined __cplusplus || defined _MSC_VER)
740 ace_yy_symbol_value_print (FILE *ace_yyoutput
, int ace_yytype
, YYSTYPE
const * const ace_yyvaluep
)
743 ace_yy_symbol_value_print (ace_yyoutput
, ace_yytype
, ace_yyvaluep
)
746 YYSTYPE
const * const ace_yyvaluep
;
752 if (ace_yytype
< YYNTOKENS
)
753 YYPRINT (ace_yyoutput
, ace_yytoknum
[ace_yytype
], *ace_yyvaluep
);
755 YYUSE (ace_yyoutput
);
765 /*--------------------------------.
766 | Print this symbol on YYOUTPUT. |
767 `--------------------------------*/
769 #if (defined __STDC__ || defined __C99__FUNC__ \
770 || defined __cplusplus || defined _MSC_VER)
772 ace_yy_symbol_print (FILE *ace_yyoutput
, int ace_yytype
, YYSTYPE
const * const ace_yyvaluep
)
775 ace_yy_symbol_print (ace_yyoutput
, ace_yytype
, ace_yyvaluep
)
778 YYSTYPE
const * const ace_yyvaluep
;
781 if (ace_yytype
< YYNTOKENS
)
782 YYFPRINTF (ace_yyoutput
, "token %s (", ace_yytname
[ace_yytype
]);
784 YYFPRINTF (ace_yyoutput
, "nterm %s (", ace_yytname
[ace_yytype
]);
786 ace_yy_symbol_value_print (ace_yyoutput
, ace_yytype
, ace_yyvaluep
);
787 YYFPRINTF (ace_yyoutput
, ")");
790 /*------------------------------------------------------------------.
791 | ace_yy_stack_print -- Print the state stack from its BOTTOM up to its |
793 `------------------------------------------------------------------*/
795 #if (defined __STDC__ || defined __C99__FUNC__ \
796 || defined __cplusplus || defined _MSC_VER)
798 ace_yy_stack_print (ace_yytype_int16
*bottom
, ace_yytype_int16
*top
)
801 ace_yy_stack_print (bottom
, top
)
802 ace_yytype_int16
*bottom
;
803 ace_yytype_int16
*top
;
806 YYFPRINTF (stderr
, "Stack now");
807 for (; bottom
<= top
; ++bottom
)
808 YYFPRINTF (stderr
, " %d", *bottom
);
809 YYFPRINTF (stderr
, "\n");
812 # define YY_STACK_PRINT(Bottom, Top) \
815 ace_yy_stack_print ((Bottom), (Top)); \
819 /*------------------------------------------------.
820 | Report that the YYRULE is going to be reduced. |
821 `------------------------------------------------*/
823 #if (defined __STDC__ || defined __C99__FUNC__ \
824 || defined __cplusplus || defined _MSC_VER)
826 ace_yy_reduce_print (YYSTYPE
*ace_yyvsp
, int ace_yyrule
)
829 ace_yy_reduce_print (ace_yyvsp
, ace_yyrule
)
834 int ace_yynrhs
= ace_yyr2
[ace_yyrule
];
836 unsigned long int ace_yylno
= ace_yyrline
[ace_yyrule
];
837 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
838 ace_yyrule
- 1, ace_yylno
);
839 /* The symbols being reduced. */
840 for (ace_yyi
= 0; ace_yyi
< ace_yynrhs
; ace_yyi
++)
842 ACE_OS::fprintf (stderr
, " $%d = ", ace_yyi
+ 1);
843 ace_yy_symbol_print (stderr
, ace_yyrhs
[ace_yyprhs
[ace_yyrule
] + ace_yyi
],
844 &(ace_yyvsp
[(ace_yyi
+ 1) - (ace_yynrhs
)])
846 ACE_OS::fprintf (stderr
, "\n");
850 # define YY_REDUCE_PRINT(Rule) \
853 ace_yy_reduce_print (ace_yyvsp, Rule); \
856 /* Nonzero means print parse trace. It is left uninitialized so that
857 multiple parsers can coexist. */
860 # define YYDPRINTF(Args)
861 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
862 # define YY_STACK_PRINT(Bottom, Top)
863 # define YY_REDUCE_PRINT(Rule)
864 #endif /* !YYDEBUG */
867 /* YYINITDEPTH -- initial size of the parser's stacks. */
869 # define YYINITDEPTH 200
872 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
873 if the built-in stack extension method is used).
875 Do not make this value too large; the results are undefined if
876 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
877 evaluated with infinite-precision integer arithmetic. */
880 # define YYMAXDEPTH 10000
886 # ifndef ace_yystrlen
887 # if defined __GLIBC__ && defined _STRING_H
888 # define ace_yystrlen strlen
890 /* Return the length of YYSTR. */
891 #if (defined __STDC__ || defined __C99__FUNC__ \
892 || defined __cplusplus || defined _MSC_VER)
894 ace_yystrlen (const char *ace_yystr
)
897 ace_yystrlen (ace_yystr
)
898 const char *ace_yystr
;
902 for (ace_yylen
= 0; ace_yystr
[ace_yylen
]; ace_yylen
++)
909 # ifndef ace_yystpcpy
910 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
911 # define ace_yystpcpy stpcpy
913 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
915 #if (defined __STDC__ || defined __C99__FUNC__ \
916 || defined __cplusplus || defined _MSC_VER)
918 ace_yystpcpy (char *ace_yydest
, const char *ace_yysrc
)
921 ace_yystpcpy (ace_yydest
, ace_yysrc
)
923 const char *ace_yysrc
;
926 char *ace_yyd
= ace_yydest
;
927 const char *ace_yys
= ace_yysrc
;
929 while ((*ace_yyd
++ = *ace_yys
++) != '\0')
937 # ifndef ace_yytnamerr
938 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
939 quotes and backslashes, so that it's suitable for ace_yyerror. The
940 heuristic is that double-quoting is unnecessary unless the string
941 contains an apostrophe, a comma, or backslash (other than
942 backslash-backslash). YYSTR is taken from ace_yytname. If YYRES is
943 null, do not copy; instead, return the length of what the result
946 ace_yytnamerr (char *ace_yyres
, const char *ace_yystr
)
948 if (*ace_yystr
== '"')
950 YYSIZE_T ace_yyn
= 0;
951 char const *ace_yyp
= ace_yystr
;
958 goto do_not_strip_quotes
;
961 if (*++ace_yyp
!= '\\')
962 goto do_not_strip_quotes
;
966 ace_yyres
[ace_yyn
] = *ace_yyp
;
972 ace_yyres
[ace_yyn
] = '\0';
975 do_not_strip_quotes
: ;
979 return ace_yystrlen (ace_yystr
);
981 return ace_yystpcpy (ace_yyres
, ace_yystr
) - ace_yyres
;
985 /* Copy into YYRESULT an error message about the unexpected token
986 YYCHAR while in state YYSTATE. Return the number of bytes copied,
987 including the terminating null byte. If YYRESULT is null, do not
988 copy anything; just return the number of bytes that would be
989 copied. As a special case, return 0 if an ordinary "syntax error"
990 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
993 ace_yysyntax_error (char *ace_yyresult
, int ace_yystate
, int ace_yychar
)
995 int ace_yyn
= ace_yypact
[ace_yystate
];
997 if (! (YYPACT_NINF
< ace_yyn
&& ace_yyn
<= YYLAST
))
1001 int ace_yytype
= YYTRANSLATE (ace_yychar
);
1002 YYSIZE_T ace_yysize0
= ace_yytnamerr (0, ace_yytname
[ace_yytype
]);
1003 YYSIZE_T ace_yysize
= ace_yysize0
;
1004 YYSIZE_T ace_yysize1
;
1005 int ace_yysize_overflow
= 0;
1006 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
1007 char const *ace_yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
1011 /* This is so xgettext sees the translatable formats that are
1012 constructed on the fly. */
1013 YY_("syntax error, unexpected %s");
1014 YY_("syntax error, unexpected %s, expecting %s");
1015 YY_("syntax error, unexpected %s, expecting %s or %s");
1016 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1017 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1020 char const *ace_yyf
;
1021 static char const ace_yyunexpected
[] = "syntax error, unexpected %s";
1022 static char const ace_yyexpecting
[] = ", expecting %s";
1023 static char const ace_yyor
[] = " or %s";
1024 char ace_yyformat
[sizeof ace_yyunexpected
1025 + sizeof ace_yyexpecting
- 1
1026 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
1027 * (sizeof ace_yyor
- 1))];
1028 char const *ace_yyprefix
= ace_yyexpecting
;
1030 /* Start YYX at -YYN if negative to avoid negative indexes in
1032 int ace_yyxbegin
= ace_yyn
< 0 ? -ace_yyn
: 0;
1034 /* Stay within bounds of both ace_yycheck and ace_yytname. */
1035 int ace_yychecklim
= YYLAST
- ace_yyn
+ 1;
1036 int ace_yyxend
= ace_yychecklim
< YYNTOKENS
? ace_yychecklim
: YYNTOKENS
;
1037 int ace_yycount
= 1;
1039 ace_yyarg
[0] = ace_yytname
[ace_yytype
];
1040 ace_yyfmt
= ace_yystpcpy (ace_yyformat
, ace_yyunexpected
);
1042 for (ace_yyx
= ace_yyxbegin
; ace_yyx
< ace_yyxend
; ++ace_yyx
)
1043 if (ace_yycheck
[ace_yyx
+ ace_yyn
] == ace_yyx
&& ace_yyx
!= YYTERROR
)
1045 if (ace_yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
1048 ace_yysize
= ace_yysize0
;
1049 ace_yyformat
[sizeof ace_yyunexpected
- 1] = '\0';
1052 ace_yyarg
[ace_yycount
++] = ace_yytname
[ace_yyx
];
1053 ace_yysize1
= ace_yysize
+ ace_yytnamerr (0, ace_yytname
[ace_yyx
]);
1054 ace_yysize_overflow
|= (ace_yysize1
< ace_yysize
);
1055 ace_yysize
= ace_yysize1
;
1056 ace_yyfmt
= ace_yystpcpy (ace_yyfmt
, ace_yyprefix
);
1057 ace_yyprefix
= ace_yyor
;
1060 ace_yyf
= YY_(ace_yyformat
);
1061 ace_yysize1
= ace_yysize
+ ace_yystrlen (ace_yyf
);
1062 ace_yysize_overflow
|= (ace_yysize1
< ace_yysize
);
1063 ace_yysize
= ace_yysize1
;
1065 if (ace_yysize_overflow
)
1066 return YYSIZE_MAXIMUM
;
1070 /* Avoid sprintf, as that infringes on the user's name space.
1071 Don't have undefined behavior even if the translation
1072 produced a string with the wrong number of "%s"s. */
1073 char *ace_yyp
= ace_yyresult
;
1075 while ((*ace_yyp
= *ace_yyf
) != '\0')
1077 if (*ace_yyp
== '%' && ace_yyf
[1] == 's' && ace_yyi
< ace_yycount
)
1079 ace_yyp
+= ace_yytnamerr (ace_yyp
, ace_yyarg
[ace_yyi
++]);
1092 #endif /* YYERROR_VERBOSE */
1095 /*-----------------------------------------------.
1096 | Release the memory associated to this symbol. |
1097 `-----------------------------------------------*/
1100 #if (defined __STDC__ || defined __C99__FUNC__ \
1101 || defined __cplusplus || defined _MSC_VER)
1103 ace_yydestruct (const char *ace_yymsg
, int ace_yytype
, YYSTYPE
*ace_yyvaluep
)
1106 ace_yydestruct (ace_yymsg
, ace_yytype
, ace_yyvaluep
)
1107 const char *ace_yymsg
;
1109 YYSTYPE
*ace_yyvaluep
;
1112 YYUSE (ace_yyvaluep
);
1115 ace_yymsg
= "Deleting";
1116 YY_SYMBOL_PRINT (ace_yymsg
, ace_yytype
, ace_yyvaluep
, ace_yylocationp
);
1126 /* Prevent warnings from -Wmissing-prototypes. */
1128 #ifdef YYPARSE_PARAM
1129 #if defined __STDC__ || defined __cplusplus
1130 int ace_yyparse (void *YYPARSE_PARAM
);
1134 #else /* ! YYPARSE_PARAM */
1135 #if defined __STDC__ || defined __cplusplus
1140 #endif /* ! YYPARSE_PARAM */
1150 #ifdef YYPARSE_PARAM
1151 #if (defined __STDC__ || defined __C99__FUNC__ \
1152 || defined __cplusplus || defined _MSC_VER)
1154 ace_yyparse (void *YYPARSE_PARAM
)
1157 ace_yyparse (YYPARSE_PARAM
)
1158 void *YYPARSE_PARAM
;
1160 #else /* ! YYPARSE_PARAM */
1161 #if (defined __STDC__ || defined __C99__FUNC__ \
1162 || defined __cplusplus || defined _MSC_VER)
1172 /* The look-ahead symbol. */
1175 /* The semantic value of the look-ahead symbol. */
1178 /* Number of syntax errors so far. */
1184 /* Number of tokens to shift before error messages enabled. */
1185 int ace_yyerrstatus
;
1186 /* Look-ahead token as an internal (translated) token number. */
1187 int ace_yytoken
= 0;
1189 /* Buffer for error messages, and its allocated size. */
1190 char ace_yymsgbuf
[128];
1191 char *ace_yymsg
= ace_yymsgbuf
;
1192 YYSIZE_T ace_yymsg_alloc
= sizeof ace_yymsgbuf
;
1195 /* Three stacks and their tools:
1196 `ace_yyss': related to states,
1197 `ace_yyvs': related to semantic values,
1198 `ace_yyls': related to locations.
1200 Refer to the stacks thru separate pointers, to allow ace_yyoverflow
1201 to reallocate them elsewhere. */
1203 /* The state stack. */
1204 ace_yytype_int16 ace_yyssa
[YYINITDEPTH
];
1205 ace_yytype_int16
*ace_yyss
= ace_yyssa
;
1206 ace_yytype_int16
*ace_yyssp
;
1208 /* The semantic value stack. */
1209 YYSTYPE ace_yyvsa
[YYINITDEPTH
];
1210 YYSTYPE
*ace_yyvs
= ace_yyvsa
;
1214 #define YYPOPSTACK(N) (ace_yyvsp -= (N), ace_yyssp -= (N))
1216 YYSIZE_T ace_yystacksize
= YYINITDEPTH
;
1218 /* The variables used to return semantic value and location from the
1223 /* The number of symbols on the RHS of the reduced rule.
1224 Keep to zero when no symbol should be popped. */
1227 YYDPRINTF ((stderr
, "Starting parse\n"));
1230 ace_yyerrstatus
= 0;
1232 ace_yychar
= YYEMPTY
; /* Cause a token to be read. */
1234 /* Initialize stack pointers.
1235 Waste one element of value and location stack
1236 so that they stay on the same level as the state stack.
1237 The wasted elements are never initialized. */
1239 ace_yyssp
= ace_yyss
;
1240 ace_yyvsp
= ace_yyvs
;
1242 goto ace_yysetstate
;
1244 /*------------------------------------------------------------.
1245 | ace_yynewstate -- Push a new state, which is found in ace_yystate. |
1246 `------------------------------------------------------------*/
1248 /* In all cases, when you get here, the value and location stacks
1249 have just been pushed. So pushing a state here evens the stacks. */
1253 *ace_yyssp
= ace_yystate
;
1255 if (ace_yyss
+ ace_yystacksize
- 1 <= ace_yyssp
)
1257 /* Get the current used size of the three stacks, in elements. */
1258 YYSIZE_T ace_yysize
= ace_yyssp
- ace_yyss
+ 1;
1260 #ifdef ace_yyoverflow
1262 /* Give user a chance to reallocate the stack. Use copies of
1263 these so that the &'s don't force the real ones into
1265 YYSTYPE
*ace_yyvs1
= ace_yyvs
;
1266 ace_yytype_int16
*ace_yyss1
= ace_yyss
;
1269 /* Each stack pointer address is followed by the size of the
1270 data in use in that stack, in bytes. This used to be a
1271 conditional around just the two extra args, but that might
1272 be undefined if ace_yyoverflow is a macro. */
1273 ace_yyoverflow (YY_("memory exhausted"),
1274 &ace_yyss1
, ace_yysize
* sizeof (*ace_yyssp
),
1275 &ace_yyvs1
, ace_yysize
* sizeof (*ace_yyvsp
),
1279 ace_yyss
= ace_yyss1
;
1280 ace_yyvs
= ace_yyvs1
;
1282 #else /* no ace_yyoverflow */
1283 # ifndef YYSTACK_RELOCATE
1284 goto ace_yyexhaustedlab
;
1286 /* Extend the stack our own way. */
1287 if (YYMAXDEPTH
<= ace_yystacksize
)
1288 goto ace_yyexhaustedlab
;
1289 ace_yystacksize
*= 2;
1290 if (YYMAXDEPTH
< ace_yystacksize
)
1291 ace_yystacksize
= YYMAXDEPTH
;
1294 ace_yytype_int16
*ace_yyss1
= ace_yyss
;
1295 union ace_yyalloc
*ace_yyptr
=
1296 (union ace_yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (ace_yystacksize
));
1298 goto ace_yyexhaustedlab
;
1299 YYSTACK_RELOCATE (ace_yyss
);
1300 YYSTACK_RELOCATE (ace_yyvs
);
1302 # undef YYSTACK_RELOCATE
1303 if (ace_yyss1
!= ace_yyssa
)
1304 YYSTACK_FREE (ace_yyss1
);
1307 #endif /* no ace_yyoverflow */
1309 ace_yyssp
= ace_yyss
+ ace_yysize
- 1;
1310 ace_yyvsp
= ace_yyvs
+ ace_yysize
- 1;
1313 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
1314 (unsigned long int) ace_yystacksize
));
1316 if (ace_yyss
+ ace_yystacksize
- 1 <= ace_yyssp
)
1320 YYDPRINTF ((stderr
, "Entering state %d\n", ace_yystate
));
1329 /* Do appropriate processing given the current state. Read a
1330 look-ahead token if we need one and don't already have one. */
1332 /* First try to decide what to do without reference to look-ahead token. */
1333 ace_yyn
= ace_yypact
[ace_yystate
];
1334 if (ace_yyn
== YYPACT_NINF
)
1337 /* Not known => get a look-ahead token if don't already have one. */
1339 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1340 if (ace_yychar
== YYEMPTY
)
1342 YYDPRINTF ((stderr
, "Reading a token: "));
1346 if (ace_yychar
<= YYEOF
)
1348 ace_yychar
= ace_yytoken
= YYEOF
;
1349 YYDPRINTF ((stderr
, "Now at end of input.\n"));
1353 ace_yytoken
= YYTRANSLATE (ace_yychar
);
1354 YY_SYMBOL_PRINT ("Next token is", ace_yytoken
, &ace_yylval
, &ace_yylloc
);
1357 /* If the proper action on seeing token YYTOKEN is to reduce or to
1358 detect an error, take that action. */
1359 ace_yyn
+= ace_yytoken
;
1360 if (ace_yyn
< 0 || YYLAST
< ace_yyn
|| ace_yycheck
[ace_yyn
] != ace_yytoken
)
1362 ace_yyn
= ace_yytable
[ace_yyn
];
1365 if (ace_yyn
== 0 || ace_yyn
== YYTABLE_NINF
)
1371 if (ace_yyn
== YYFINAL
)
1374 /* Count tokens shifted since error; after three, turn off error
1376 if (ace_yyerrstatus
)
1379 /* Shift the look-ahead token. */
1380 YY_SYMBOL_PRINT ("Shifting", ace_yytoken
, &ace_yylval
, &ace_yylloc
);
1382 /* Discard the shifted token unless it is eof. */
1383 if (ace_yychar
!= YYEOF
)
1384 ace_yychar
= YYEMPTY
;
1386 ace_yystate
= ace_yyn
;
1387 *++ace_yyvsp
= ace_yylval
;
1389 goto ace_yynewstate
;
1392 /*-----------------------------------------------------------.
1393 | ace_yydefault -- do the default action for the current state. |
1394 `-----------------------------------------------------------*/
1396 ace_yyn
= ace_yydefact
[ace_yystate
];
1402 /*-----------------------------.
1403 | ace_yyreduce -- Do a reduction. |
1404 `-----------------------------*/
1406 /* ace_yyn is the number of a rule to reduce with. */
1407 ace_yylen
= ace_yyr2
[ace_yyn
];
1409 /* If YYLEN is nonzero, implement the default value of the action:
1412 Otherwise, the following line sets YYVAL to garbage.
1413 This behavior is undocumented and Bison
1414 users should not rely upon it. Assigning to YYVAL
1415 unconditionally makes the parser a bit smaller, and it avoids a
1416 GCC warning that YYVAL may be used uninitialized. */
1417 ace_yyval
= ace_yyvsp
[1-ace_yylen
];
1420 YY_REDUCE_PRINT (ace_yyn
);
1426 if ((ace_yyvsp
[(2) - (2)].parse_node_
) != 0)
1428 (ace_yyvsp
[(2) - (2)].parse_node_
)->apply (ACE_SVC_CONF_PARAM
->config
, ACE_SVC_CONF_PARAM
->yyerrno
);
1429 delete (ace_yyvsp
[(2) - (2)].parse_node_
);
1431 ACE_SVC_CONF_PARAM
->obstack
.release ();
1438 ACE_SVC_CONF_PARAM
->obstack
.release ();
1445 if ((ace_yyvsp
[(2) - (3)].svc_record_
) != 0)
1446 (ace_yyval
.parse_node_
) = new ACE_Dynamic_Node ((ace_yyvsp
[(2) - (3)].svc_record_
), (ace_yyvsp
[(3) - (3)].ident_
));
1448 (ace_yyval
.parse_node_
) = 0;
1455 (ace_yyval
.parse_node_
) = new ACE_Static_Node ((ace_yyvsp
[(2) - (3)].ident_
), (ace_yyvsp
[(3) - (3)].ident_
));
1462 (ace_yyval
.parse_node_
) = new ACE_Suspend_Node ((ace_yyvsp
[(2) - (2)].ident_
));
1469 (ace_yyval
.parse_node_
) = new ACE_Resume_Node ((ace_yyvsp
[(2) - (2)].ident_
));
1476 (ace_yyval
.parse_node_
) = new ACE_Remove_Node ((ace_yyvsp
[(2) - (2)].ident_
));
1483 (ace_yyval
.parse_node_
) = new ACE_Stream_Node ((ace_yyvsp
[(2) - (3)].static_node_
), (ace_yyvsp
[(3) - (3)].parse_node_
));
1489 { (ace_yyval
.static_node_
) = new ACE_Static_Node ((ace_yyvsp
[(2) - (2)].ident_
)); ;}
1495 (ace_yyval
.parse_node_
) = new ACE_Dummy_Node ((ace_yyvsp
[(3) - (4)].static_node_
), (ace_yyvsp
[(4) - (4)].parse_node_
));
1514 // Initialize left context...
1515 (ace_yyval
.static_node_
) = (ace_yyvsp
[(0) - (1)].static_node_
);
1522 ACE_UNUSED_ARG ((ace_yyvsp
[(2) - (4)]));
1523 (ace_yyval
.parse_node_
) = (ace_yyvsp
[(3) - (4)].parse_node_
);
1529 { (ace_yyval
.parse_node_
) = 0; ;}
1535 if ((ace_yyvsp
[(2) - (2)].parse_node_
) != 0)
1537 (ace_yyvsp
[(2) - (2)].parse_node_
)->link ((ace_yyvsp
[(1) - (2)].parse_node_
));
1538 (ace_yyval
.parse_node_
) = (ace_yyvsp
[(2) - (2)].parse_node_
);
1545 { (ace_yyval
.parse_node_
) = 0; ;}
1557 ACE_Static_Node
*sn
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1558 ACE_Module_Type
*mt
= ace_get_module (sn
->record (ACE_SVC_CONF_PARAM
->config
),
1559 (ace_yyvsp
[(1) - (1)].static_node_
)->name (),
1560 ACE_SVC_CONF_PARAM
->yyerrno
);
1562 if (((ACE_Stream_Type
*) sn
->record (ACE_SVC_CONF_PARAM
->config
)->type ())->push (mt
) == -1)
1564 ACELIB_ERROR ((LM_ERROR
,
1565 ACE_TEXT ("Problem with static\n")));
1566 ACE_SVC_CONF_PARAM
->yyerrno
++;
1574 ACE_Static_Node
*sn
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1575 ACE_Module_Type
*mt
= ace_get_module (sn
->record (ACE_SVC_CONF_PARAM
->config
),
1577 ACE_SVC_CONF_PARAM
->yyerrno
);
1586 ACE_Static_Node
*sn
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1587 ACE_Module_Type
*mt
= ace_get_module (sn
->record (ACE_SVC_CONF_PARAM
->config
),
1588 (ace_yyvsp
[(1) - (1)].static_node_
)->name (),
1589 ACE_SVC_CONF_PARAM
->yyerrno
);
1598 ACE_Static_Node
*stream
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1599 ACE_Static_Node
*module
= (ace_yyvsp
[(1) - (1)].static_node_
);
1600 ACE_Module_Type
*mt
= ace_get_module (stream
->record (ACE_SVC_CONF_PARAM
->config
),
1602 ACE_SVC_CONF_PARAM
->yyerrno
);
1604 ACE_Stream_Type
*st
=
1605 dynamic_cast<ACE_Stream_Type
*> (const_cast<ACE_Service_Type_Impl
*> (stream
->record (ACE_SVC_CONF_PARAM
->config
)->type ()));
1606 if (!st
|| (mt
!= 0 && st
->remove (mt
) == -1))
1608 ACELIB_ERROR ((LM_ERROR
,
1609 ACE_TEXT ("cannot remove Module_Type %s from STREAM_Type %s\n"),
1612 ACE_SVC_CONF_PARAM
->yyerrno
++;
1620 (ace_yyval
.svc_record_
) = new ACE_Service_Type_Factory ((ace_yyvsp
[(1) - (4)].ident_
), (ace_yyvsp
[(2) - (4)].type_
), (ace_yyvsp
[(3) - (4)].location_node_
), (ace_yyvsp
[(4) - (4)].type_
));
1627 (ace_yyval
.type_
) = 1;
1634 (ace_yyval
.type_
) = 0;
1641 (ace_yyval
.type_
) = 1;
1648 (ace_yyval
.location_node_
) = new ACE_Object_Node ((ace_yyvsp
[(1) - (3)].ident_
), (ace_yyvsp
[(3) - (3)].ident_
));
1655 (ace_yyval
.location_node_
) = new ACE_Function_Node ((ace_yyvsp
[(1) - (5)].ident_
), (ace_yyvsp
[(3) - (5)].ident_
));
1662 (ace_yyval
.location_node_
) = new ACE_Static_Function_Node ((ace_yyvsp
[(2) - (4)].ident_
));
1669 (ace_yyval
.type_
) = ACE_MODULE_T
;
1676 (ace_yyval
.type_
) = ACE_SVC_OBJ_T
;
1683 (ace_yyval
.type_
) = ACE_STREAM_T
;
1689 { (ace_yyval
.ident_
) = 0; ;}
1693 /* Line 1267 of yacc.c. */
1697 YY_SYMBOL_PRINT ("-> $$ =", ace_yyr1
[ace_yyn
], &ace_yyval
, &ace_yyloc
);
1699 YYPOPSTACK (ace_yylen
);
1701 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1703 *++ace_yyvsp
= ace_yyval
;
1706 /* Now `shift' the result of the reduction. Determine what state
1707 that goes to, based on the state we popped back to and the rule
1708 number reduced by. */
1710 ace_yyn
= ace_yyr1
[ace_yyn
];
1712 ace_yystate
= ace_yypgoto
[ace_yyn
- YYNTOKENS
] + *ace_yyssp
;
1713 if (0 <= ace_yystate
&& ace_yystate
<= YYLAST
&& ace_yycheck
[ace_yystate
] == *ace_yyssp
)
1714 ace_yystate
= ace_yytable
[ace_yystate
];
1716 ace_yystate
= ace_yydefgoto
[ace_yyn
- YYNTOKENS
];
1718 goto ace_yynewstate
;
1721 /*------------------------------------.
1722 | ace_yyerrlab -- here on detecting error |
1723 `------------------------------------*/
1725 /* If not already recovering from an error, report this error. */
1726 if (!ace_yyerrstatus
)
1729 #if ! YYERROR_VERBOSE
1730 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, YY_("syntax error"));
1733 YYSIZE_T ace_yysize
= ace_yysyntax_error (0, ace_yystate
, ace_yychar
);
1734 if (ace_yymsg_alloc
< ace_yysize
&& ace_yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
1736 YYSIZE_T ace_yyalloc
= 2 * ace_yysize
;
1737 if (! (ace_yysize
<= ace_yyalloc
&& ace_yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
1738 ace_yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
1739 if (ace_yymsg
!= ace_yymsgbuf
)
1740 YYSTACK_FREE (ace_yymsg
);
1741 ace_yymsg
= (char *) YYSTACK_ALLOC (ace_yyalloc
);
1743 ace_yymsg_alloc
= ace_yyalloc
;
1746 ace_yymsg
= ace_yymsgbuf
;
1747 ace_yymsg_alloc
= sizeof ace_yymsgbuf
;
1751 if (0 < ace_yysize
&& ace_yysize
<= ace_yymsg_alloc
)
1753 (void) ace_yysyntax_error (ace_yymsg
, ace_yystate
, ace_yychar
);
1754 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, ace_yymsg
);
1758 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, YY_("syntax error"));
1759 if (ace_yysize
!= 0)
1760 goto ace_yyexhaustedlab
;
1767 if (ace_yyerrstatus
== 3)
1769 /* If just tried and failed to reuse look-ahead token after an
1770 error, discard it. */
1772 if (ace_yychar
<= YYEOF
)
1774 /* Return failure if at end of input. */
1775 if (ace_yychar
== YYEOF
)
1780 ace_yydestruct ("Error: discarding",
1781 ace_yytoken
, &ace_yylval
);
1782 ace_yychar
= YYEMPTY
;
1786 /* Else will try to reuse look-ahead token after shifting the error
1791 /*---------------------------------------------------.
1792 | ace_yyerrorlab -- error raised explicitly by YYERROR. |
1793 `---------------------------------------------------*/
1796 /* Pacify compilers like GCC when the user code never invokes
1797 YYERROR and the label ace_yyerrorlab therefore never appears in user
1799 if (/*CONSTCOND*/ 0)
1800 goto ace_yyerrorlab
;
1802 /* Do not reclaim the symbols of the rule which action triggered
1804 YYPOPSTACK (ace_yylen
);
1806 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1807 ace_yystate
= *ace_yyssp
;
1811 /*-------------------------------------------------------------.
1812 | ace_yyerrlab1 -- common code for both syntax error and YYERROR. |
1813 `-------------------------------------------------------------*/
1815 ace_yyerrstatus
= 3; /* Each real token shifted decrements this. */
1819 ace_yyn
= ace_yypact
[ace_yystate
];
1820 if (ace_yyn
!= YYPACT_NINF
)
1822 ace_yyn
+= YYTERROR
;
1823 if (0 <= ace_yyn
&& ace_yyn
<= YYLAST
&& ace_yycheck
[ace_yyn
] == YYTERROR
)
1825 ace_yyn
= ace_yytable
[ace_yyn
];
1831 /* Pop the current state because it cannot handle the error token. */
1832 if (ace_yyssp
== ace_yyss
)
1836 ace_yydestruct ("Error: popping",
1837 ace_yystos
[ace_yystate
], ace_yyvsp
);
1839 ace_yystate
= *ace_yyssp
;
1840 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1843 if (ace_yyn
== YYFINAL
)
1846 *++ace_yyvsp
= ace_yylval
;
1849 /* Shift the error token. */
1850 YY_SYMBOL_PRINT ("Shifting", ace_yystos
[ace_yyn
], ace_yyvsp
, ace_yylsp
);
1852 ace_yystate
= ace_yyn
;
1853 goto ace_yynewstate
;
1856 /*-------------------------------------.
1857 | ace_yyacceptlab -- YYACCEPT comes here. |
1858 `-------------------------------------*/
1863 /*-----------------------------------.
1864 | ace_yyabortlab -- YYABORT comes here. |
1865 `-----------------------------------*/
1870 #ifndef ace_yyoverflow
1871 /*-------------------------------------------------.
1872 | ace_yyexhaustedlab -- memory exhaustion comes here. |
1873 `-------------------------------------------------*/
1875 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, YY_("memory exhausted"));
1881 if (ace_yychar
!= YYEOF
&& ace_yychar
!= YYEMPTY
)
1882 ace_yydestruct ("Cleanup: discarding lookahead",
1883 ace_yytoken
, &ace_yylval
);
1884 /* Do not reclaim the symbols of the rule which action triggered
1885 this YYABORT or YYACCEPT. */
1886 YYPOPSTACK (ace_yylen
);
1887 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1888 while (ace_yyssp
!= ace_yyss
)
1890 ace_yydestruct ("Cleanup: popping",
1891 ace_yystos
[*ace_yyssp
], ace_yyvsp
);
1894 #if defined ace_yyoverflow && !defined ACE_LACKS_FREE
1895 if (ace_yyss
!= ace_yyssa
)
1896 YYSTACK_FREE (ace_yyss
);
1899 if (ace_yymsg
!= ace_yymsgbuf
)
1900 YYSTACK_FREE (ace_yymsg
);
1902 /* Make sure YYID is used. */
1903 return YYID (ace_yyresult
);
1909 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
1911 // Prints the error string to standard output. Cleans up the error
1915 ace_yyerror (int ace_yyerrno
, int ace_yylineno
, ACE_TCHAR
const * s
)
1917 #if defined (ACE_NLOGGING)
1918 ACE_UNUSED_ARG (ace_yyerrno
);
1919 ACE_UNUSED_ARG (ace_yylineno
);
1921 #endif /* ACE_NLOGGING */
1923 ACELIB_ERROR ((LM_ERROR
,
1924 ACE_TEXT ("ACE (%P|%t) [error %d] on line %d: %C\n"),
1931 ace_yyerror (ACE_TCHAR
const * s
)
1933 ace_yyerror (-1, -1, s
);
1936 // Note that SRC_REC represents left context, which is the STREAM *
1939 static ACE_Module_Type
*
1940 ace_get_module (ACE_Service_Type
const * sr
,
1941 ACE_TCHAR
const * svc_name
,
1944 ACE_Stream_Type
const * const st
=
1947 : dynamic_cast<ACE_Stream_Type
const *> (sr
->type ()));
1948 ACE_Module_Type
const * const mt
= (st
== 0 ? 0 : st
->find (svc_name
));
1950 if (sr
== 0 || st
== 0 || mt
== 0)
1952 ACELIB_ERROR ((LM_ERROR
,
1953 ACE_TEXT ("cannot locate Module_Type %s ")
1954 ACE_TEXT ("in STREAM_Type %s\n"),
1956 (sr
? sr
->name () : ACE_TEXT ("(nil)"))));
1960 return const_cast<ACE_Module_Type
*> (mt
);
1963 #if defined (SVC_CONF_Y_DEBUGGING)
1964 // Main driver program.
1967 ACE_TMAIN (int argc
, ACE_TCHAR
*argv
[])
1969 ACE_Svc_Conf_Param
param (0, stdin
);
1971 // Try to reopen any filename argument to use YYIN.
1972 if (argc
> 1 && (ace_yyin
= freopen (argv
[1], "r", stdin
)) == 0)
1973 (void) ACE_OS::ACE_OS::fprintf (stderr
, ACE_TEXT ("usage: %s [file]\n"), argv
[0]), ACE_OS::exit (1);
1975 return ::ace_yyparse (¶m
);
1977 #endif /* SVC_CONF_Y_DEBUGGING */
1979 ACE_END_VERSIONED_NAMESPACE_DECL
1981 #endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */