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
66 /* Put the tokens into the symbol table, so that GDB and other debuggers
68 enum ace_yytokentype
{
86 #define ACE_DYNAMIC 258
87 #define ACE_STATIC 259
88 #define ACE_SUSPEND 260
89 #define ACE_RESUME 261
90 #define ACE_REMOVE 262
91 #define ACE_USTREAM 263
92 #define ACE_MODULE_T 264
93 #define ACE_STREAM_T 265
94 #define ACE_SVC_OBJ_T 266
95 #define ACE_ACTIVE 267
96 #define ACE_INACTIVE 268
97 #define ACE_PATHNAME 269
99 #define ACE_STRING 271
104 /* Copy the first part of user declarations. */
107 #include "ace/Svc_Conf.h"
109 #if (ACE_USES_CLASSIC_SVC_CONF == 1)
111 #include "ace/Module.h"
112 #include "ace/Stream.h"
113 #include "ace/Service_Types.h"
114 #include "ace/ace_wchar.h"
117 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
121 static ACE_Module_Type
*
122 ace_get_module (ACE_Service_Type
const * sr
,
123 ACE_TCHAR
const * svc_name
,
124 int & ace_ace_yyerrno
);
126 #define YYDEBUG_LEXER_TEXT (ace_yytext[ace_yyleng] = '\0', ace_yytext)
128 // Force the pretty debugging code to compile.
131 // Bison 2.3 template contains switch statement with a "default:", but
132 // without a "case:" label. Suppressing a compiler warning for Visual
134 #if defined (_MSC_VER)
135 # pragma warning ( disable : 4065 )
138 // Normalize the message literal's type to match ace_yyerror() prototype
141 // Prevent yacc(1) from declaring a trivial YYSTYPE just because
142 // YYSTYPE is not a macro definition. On the other hand we want
143 // YYSTYPE_IS_DECLARED to be as localized as possible to avoid
144 // poluting the global namespace - there may be other yacc(1) parsers
145 // that want to play nice with ACE
146 #define YYSTYPE_IS_DECLARED
148 ACE_END_VERSIONED_NAMESPACE_DECL
152 /* Enabling traces. */
157 /* Enabling verbose error messages. */
158 #ifdef YYERROR_VERBOSE
159 # undef YYERROR_VERBOSE
160 # define YYERROR_VERBOSE 1
162 # define YYERROR_VERBOSE 0
165 /* Enabling the token table. */
166 #ifndef YYTOKEN_TABLE
167 # define YYTOKEN_TABLE 0
170 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
172 # define ace_yystype YYSTYPE /* obsolescent; will be withdrawn */
173 # define YYSTYPE_IS_DECLARED 1
174 # define YYSTYPE_IS_TRIVIAL 1
179 /* Copy the second part of user declarations. */
182 /* Line 216 of yacc.c. */
190 typedef YYTYPE_UINT8 ace_yytype_uint8
;
192 using ace_yytype_uint8
= unsigned char;
196 typedef YYTYPE_INT8 ace_yytype_int8
;
197 #elif (defined __STDC__ || defined __C99__FUNC__ \
198 || defined __cplusplus || defined _MSC_VER)
199 using ace_yytype_int8
= signed char;
201 typedef short int ace_yytype_int8
;
205 typedef YYTYPE_UINT16 ace_yytype_uint16
;
207 using ace_yytype_uint16
= unsigned short;
211 typedef YYTYPE_INT16 ace_yytype_int16
;
213 using ace_yytype_int16
= short;
217 # ifdef __SIZE_TYPE__
218 # define YYSIZE_T __SIZE_TYPE__
219 # elif defined size_t
220 # define YYSIZE_T size_t
221 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
222 || defined __cplusplus || defined _MSC_VER)
223 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
224 # define YYSIZE_T size_t
226 # define YYSIZE_T unsigned int
230 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
235 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
236 # define YY_(msgid) dgettext ("bison-runtime", msgid)
240 # define YY_(msgid) msgid
244 /* Suppress unused-variable warnings by "using" E. */
245 #if ! defined lint || defined __GNUC__
246 # define YYUSE(e) ((void) (e))
248 # define YYUSE(e) /* empty */
251 /* Identity function, used to suppress warnings about constant conditions. */
255 #if (defined __STDC__ || defined __C99__FUNC__ \
256 || defined __cplusplus || defined _MSC_VER)
269 #if ! defined ace_yyoverflow || YYERROR_VERBOSE
271 /* The parser invokes alloca or malloc; define the necessary symbols. */
273 # ifdef YYSTACK_USE_ALLOCA
274 # if YYSTACK_USE_ALLOCA
276 # define YYSTACK_ALLOC __builtin_alloca
277 # elif defined __BUILTIN_VA_ARG_INCR
278 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
280 # define YYSTACK_ALLOC __alloca
281 # elif defined _MSC_VER
282 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
283 # define alloca _alloca
285 # define YYSTACK_ALLOC alloca
286 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
287 || defined __cplusplus || defined _MSC_VER)
288 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
297 # ifdef YYSTACK_ALLOC
298 /* Pacify GCC's `empty if-body' warning. */
299 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
300 # ifndef YYSTACK_ALLOC_MAXIMUM
301 /* The OS might guarantee only one guard page at the bottom of the stack,
302 and a page size can be as small as 4096 bytes. So we cannot safely
303 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
304 to allow for a few compiler-allocated temporary stack slots. */
305 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
308 # define YYSTACK_ALLOC YYMALLOC
309 # define YYSTACK_FREE YYFREE
310 # ifndef YYSTACK_ALLOC_MAXIMUM
311 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
313 # if (defined __cplusplus && ! defined _STDLIB_H \
314 && ! ((defined YYMALLOC || defined malloc) \
315 && (defined YYFREE || defined free)))
316 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
322 # define YYMALLOC malloc
323 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
324 || defined __cplusplus || defined _MSC_VER)
325 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
330 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
331 || defined __cplusplus || defined _MSC_VER)
332 void free (void *); /* INFRINGES ON USER NAME SPACE */
336 #endif /* ! defined ace_yyoverflow || YYERROR_VERBOSE */
339 #if (! defined ace_yyoverflow \
340 && (! defined __cplusplus \
341 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
343 /* A type that is properly aligned for any stack member. */
346 ace_yytype_int16 ace_yyss
;
350 /* The size of the maximum gap between one aligned stack and the next. */
351 # define YYSTACK_GAP_MAXIMUM (sizeof (union ace_yyalloc) - 1)
353 /* The size of an array large to enough to hold all stacks, each with
355 # define YYSTACK_BYTES(N) \
356 ((N) * (sizeof (ace_yytype_int16) + sizeof (YYSTYPE)) \
357 + YYSTACK_GAP_MAXIMUM)
359 /* Copy COUNT objects from FROM to TO. The source and destination do
362 # if defined __GNUC__ && 1 < __GNUC__
363 # define YYCOPY(To, From, Count) \
364 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
366 # define YYCOPY(To, From, Count) \
370 for (ace_yyi = 0; ace_yyi < (Count); ace_yyi++) \
371 (To)[ace_yyi] = (From)[ace_yyi]; \
377 /* Relocate STACK from its old location to the new one. The
378 local variables YYSIZE and YYSTACKSIZE give the old and new number of
379 elements in the stack, and YYPTR gives the new location of the
380 stack. Advance YYPTR to a properly aligned location for the next
382 # define YYSTACK_RELOCATE(Stack) \
385 YYSIZE_T ace_yynewbytes; \
386 YYCOPY (&ace_yyptr->Stack, Stack, ace_yysize); \
387 Stack = &ace_yyptr->Stack; \
388 ace_yynewbytes = ace_yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
389 ace_yyptr += ace_yynewbytes / sizeof (*ace_yyptr); \
395 /* YYFINAL -- State number of the termination state. */
397 /* YYLAST -- Last index in YYTABLE. */
400 /* YYNTOKENS -- Number of terminals. */
402 /* YYNNTS -- Number of nonterminals. */
404 /* YYNRULES -- Number of rules. */
406 /* YYNRULES -- Number of states. */
409 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
411 #define YYMAXUTOK 271
413 #define YYTRANSLATE(YYX) \
414 ((unsigned int) (YYX) <= YYMAXUTOK ? ace_yytranslate[YYX] : YYUNDEFTOK)
416 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
417 static const ace_yytype_uint8 ace_yytranslate
[] =
419 0, 2, 2, 2, 2, 2, 2, 2, 2, 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 20, 21, 22, 2, 2, 2, 2, 2, 2, 2,
424 2, 2, 2, 2, 2, 2, 2, 2, 19, 2,
425 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
426 2, 2, 2, 2, 2, 2, 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, 17, 2, 18, 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, 2, 2, 2, 2,
440 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
441 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
442 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
443 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
444 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
445 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
450 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
452 static const ace_yytype_uint8 ace_yyprhs
[] =
454 0, 0, 3, 6, 9, 10, 12, 14, 16, 18,
455 20, 22, 26, 30, 33, 36, 39, 43, 44, 49,
456 51, 53, 54, 59, 60, 63, 64, 66, 68, 70,
457 72, 74, 79, 81, 83, 84, 88, 94, 99, 102,
458 105, 108, 110, 111, 113, 115
461 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
462 static const ace_yytype_int8 ace_yyrhs
[] =
464 24, 0, -1, 24, 25, -1, 24, 1, -1, -1,
465 26, -1, 27, -1, 28, -1, 29, -1, 30, -1,
466 31, -1, 3, 38, 42, -1, 4, 15, 42, -1,
467 5, 15, -1, 6, 15, -1, 7, 15, -1, 8,
468 33, 34, -1, -1, 8, 15, 32, 34, -1, 26,
469 -1, 27, -1, -1, 17, 35, 36, 18, -1, -1,
470 36, 37, -1, -1, 26, -1, 27, -1, 28, -1,
471 29, -1, 30, -1, 15, 41, 40, 39, -1, 12,
472 -1, 13, -1, -1, 43, 19, 15, -1, 43, 19,
473 15, 20, 21, -1, 19, 15, 20, 21, -1, 9,
474 22, -1, 11, 22, -1, 10, 22, -1, 16, -1,
475 -1, 14, -1, 15, -1, 16, -1
478 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
479 static const ace_yytype_uint16 ace_yyrline
[] =
481 0, 72, 72, 81, 85, 89, 90, 91, 92, 93,
482 94, 98, 108, 115, 122, 129, 136, 140, 140, 147,
483 150, 157, 156, 166, 170, 178, 182, 185, 199, 208,
484 217, 239, 246, 250, 255, 261, 265, 269, 276, 280,
485 284, 291, 292, 296, 297, 298
489 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
490 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
491 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
492 static const char *const ace_yytname
[] =
494 "$end", "error", "$undefined", "ACE_DYNAMIC", "ACE_STATIC",
495 "ACE_SUSPEND", "ACE_RESUME", "ACE_REMOVE", "ACE_USTREAM", "ACE_MODULE_T",
496 "ACE_STREAM_T", "ACE_SVC_OBJ_T", "ACE_ACTIVE", "ACE_INACTIVE",
497 "ACE_PATHNAME", "ACE_IDENT", "ACE_STRING", "'{'", "'}'", "':'", "'('",
498 "')'", "'*'", "$accept", "svc_config_entries", "svc_config_entry",
499 "dynamic", "static", "suspend", "resume", "remove", "stream", "@1",
500 "stream_ops", "stream_modules", "@2", "module_list", "module",
501 "svc_location", "status", "svc_initializer", "type", "parameters_opt",
507 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
509 static const ace_yytype_uint16 ace_yytoknum
[] =
511 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
512 265, 266, 267, 268, 269, 270, 271, 123, 125, 58,
517 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
518 static const ace_yytype_uint8 ace_yyr1
[] =
520 0, 23, 24, 24, 24, 25, 25, 25, 25, 25,
521 25, 26, 27, 28, 29, 30, 31, 32, 31, 33,
522 33, 35, 34, 34, 36, 36, 37, 37, 37, 37,
523 37, 38, 39, 39, 39, 40, 40, 40, 41, 41,
524 41, 42, 42, 43, 43, 43
527 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
528 static const ace_yytype_uint8 ace_yyr2
[] =
530 0, 2, 2, 2, 0, 1, 1, 1, 1, 1,
531 1, 3, 3, 2, 2, 2, 3, 0, 4, 1,
532 1, 0, 4, 0, 2, 0, 1, 1, 1, 1,
533 1, 4, 1, 1, 0, 3, 5, 4, 2, 2,
537 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
538 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
539 means the default is an error. */
540 static const ace_yytype_uint8 ace_yydefact
[] =
542 4, 0, 1, 3, 0, 0, 0, 0, 0, 0,
543 2, 5, 6, 7, 8, 9, 10, 0, 42, 42,
544 13, 14, 15, 17, 19, 20, 23, 0, 0, 0,
545 0, 41, 11, 12, 23, 21, 16, 38, 40, 39,
546 43, 44, 45, 0, 34, 0, 18, 25, 0, 32,
547 33, 31, 0, 0, 0, 35, 22, 26, 27, 28,
548 29, 30, 24, 37, 0, 36
551 /* YYDEFGOTO[NTERM-NUM]. */
552 static const ace_yytype_int8 ace_yydefgoto
[] =
554 -1, 1, 10, 11, 12, 13, 14, 15, 16, 34,
555 26, 36, 47, 53, 62, 18, 51, 44, 30, 32,
559 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
561 #define YYPACT_NINF -13
562 static const ace_yytype_int8 ace_yypact
[] =
564 -13, 20, -13, -13, 1, 3, 7, 14, 18, 4,
565 -13, -13, -13, -13, -13, -13, -13, 21, 19, 19,
566 -13, -13, -13, -13, -13, -13, -2, 12, 15, 16,
567 -5, -13, -13, -13, -2, -13, -13, -13, -13, -13,
568 -13, -13, -13, 24, 0, 17, -13, -13, 22, -13,
569 -13, -13, 25, -1, 26, 23, -13, -13, -13, -13,
570 -13, -13, -13, -13, 27, -13
573 /* YYPGOTO[NTERM-NUM]. */
574 static const ace_yytype_int8 ace_yypgoto
[] =
576 -13, -13, -13, -9, -8, -12, -7, -4, -13, -13,
577 -13, 28, -13, -13, -13, -13, -13, -13, -13, 31,
581 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
582 positive, shift that token. If negative, reduce the rule which
583 number is the opposite. If zero, do what YYDEFACT says.
584 If YYTABLE_NINF, syntax error. */
585 #define YYTABLE_NINF -1
586 static const ace_yytype_uint8 ace_yytable
[] =
588 24, 25, 4, 5, 6, 7, 8, 4, 5, 40,
589 41, 42, 49, 50, 43, 35, 17, 56, 19, 23,
590 2, 3, 20, 4, 5, 6, 7, 8, 9, 21,
591 27, 28, 29, 22, 37, 31, 52, 38, 39, 48,
592 55, 59, 54, 64, 57, 58, 60, 63, 65, 61,
593 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
597 static const ace_yytype_int8 ace_yycheck
[] =
599 9, 9, 3, 4, 5, 6, 7, 3, 4, 14,
600 15, 16, 12, 13, 19, 17, 15, 18, 15, 15,
601 0, 1, 15, 3, 4, 5, 6, 7, 8, 15,
602 9, 10, 11, 15, 22, 16, 19, 22, 22, 15,
603 15, 53, 20, 20, 53, 53, 53, 21, 21, 53,
604 19, -1, -1, -1, -1, -1, -1, -1, -1, -1,
608 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
609 symbol of state STATE-NUM. */
610 static const ace_yytype_uint8 ace_yystos
[] =
612 0, 24, 0, 1, 3, 4, 5, 6, 7, 8,
613 25, 26, 27, 28, 29, 30, 31, 15, 38, 15,
614 15, 15, 15, 15, 26, 27, 33, 9, 10, 11,
615 41, 16, 42, 42, 32, 17, 34, 22, 22, 22,
616 14, 15, 16, 19, 40, 43, 34, 35, 15, 12,
617 13, 39, 19, 36, 20, 15, 18, 26, 27, 28,
618 29, 30, 37, 21, 20, 21
621 #define ace_yyerrok (ace_yyerrstatus = 0)
622 #define ace_yyclearin (ace_yychar = YYEMPTY)
626 #define YYACCEPT goto ace_yyacceptlab
627 #define YYABORT goto ace_yyabortlab
628 #define YYERROR goto ace_yyerrorlab
631 /* Like YYERROR except do call ace_yyerror. This remains here temporarily
632 to ease the transition to the new meaning of YYERROR, for GCC.
633 Once GCC version 2 has supplanted version 1, this can go. */
635 #define YYFAIL goto ace_yyerrlab
637 #define YYRECOVERING() (!!ace_yyerrstatus)
639 #define YYBACKUP(Token, Value) \
641 if (ace_yychar == YYEMPTY && ace_yylen == 1) \
643 ace_yychar = (Token); \
644 ace_yylval = (Value); \
645 ace_yytoken = YYTRANSLATE (ace_yychar); \
651 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_("syntax error: cannot back up")); \
658 #define YYERRCODE 256
661 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
662 If N is 0, then set CURRENT to the empty location which ends
663 the previous symbol: RHS[0] (always defined). */
665 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
666 #ifndef YYLLOC_DEFAULT
667 # define YYLLOC_DEFAULT(Current, Rhs, N) \
671 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
672 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
673 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
674 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
678 (Current).first_line = (Current).last_line = \
679 YYRHSLOC (Rhs, 0).last_line; \
680 (Current).first_column = (Current).last_column = \
681 YYRHSLOC (Rhs, 0).last_column; \
687 /* YY_LOCATION_PRINT -- Print the location on the stream.
688 This macro was not mandated originally: define only if we know
689 we won't break user code: when these are the locations we know. */
691 #ifndef YY_LOCATION_PRINT
692 # if YYLTYPE_IS_TRIVIAL
693 # define YY_LOCATION_PRINT(File, Loc) \
694 ACE_OS::fprintf (File, "%d.%d-%d.%d", \
695 (Loc).first_line, (Loc).first_column, \
696 (Loc).last_line, (Loc).last_column)
698 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
703 /* YYLEX -- calling `ace_yylex' with the right arguments. */
706 # define YYLEX ace_yylex (&ace_yylval, YYLEX_PARAM)
708 # define YYLEX ace_yylex (&ace_yylval)
711 /* Enable debugging if requested. */
715 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
716 # define YYFPRINTF ACE_OS::fprintf
719 # define YYDPRINTF(Args) \
725 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
729 YYFPRINTF (stderr, "%s ", Title); \
730 ace_yy_symbol_print (stderr, \
732 YYFPRINTF (stderr, "\n"); \
737 /*--------------------------------.
738 | Print this symbol on YYOUTPUT. |
739 `--------------------------------*/
742 #if (defined __STDC__ || defined __C99__FUNC__ \
743 || defined __cplusplus || defined _MSC_VER)
745 ace_yy_symbol_value_print (FILE *ace_yyoutput
, int ace_yytype
, YYSTYPE
const * const ace_yyvaluep
)
748 ace_yy_symbol_value_print (ace_yyoutput
, ace_yytype
, ace_yyvaluep
)
751 YYSTYPE
const * const ace_yyvaluep
;
757 if (ace_yytype
< YYNTOKENS
)
758 YYPRINT (ace_yyoutput
, ace_yytoknum
[ace_yytype
], *ace_yyvaluep
);
760 YYUSE (ace_yyoutput
);
770 /*--------------------------------.
771 | Print this symbol on YYOUTPUT. |
772 `--------------------------------*/
774 #if (defined __STDC__ || defined __C99__FUNC__ \
775 || defined __cplusplus || defined _MSC_VER)
777 ace_yy_symbol_print (FILE *ace_yyoutput
, int ace_yytype
, YYSTYPE
const * const ace_yyvaluep
)
780 ace_yy_symbol_print (ace_yyoutput
, ace_yytype
, ace_yyvaluep
)
783 YYSTYPE
const * const ace_yyvaluep
;
786 if (ace_yytype
< YYNTOKENS
)
787 YYFPRINTF (ace_yyoutput
, "token %s (", ace_yytname
[ace_yytype
]);
789 YYFPRINTF (ace_yyoutput
, "nterm %s (", ace_yytname
[ace_yytype
]);
791 ace_yy_symbol_value_print (ace_yyoutput
, ace_yytype
, ace_yyvaluep
);
792 YYFPRINTF (ace_yyoutput
, ")");
795 /*------------------------------------------------------------------.
796 | ace_yy_stack_print -- Print the state stack from its BOTTOM up to its |
798 `------------------------------------------------------------------*/
800 #if (defined __STDC__ || defined __C99__FUNC__ \
801 || defined __cplusplus || defined _MSC_VER)
803 ace_yy_stack_print (ace_yytype_int16
*bottom
, ace_yytype_int16
*top
)
806 ace_yy_stack_print (bottom
, top
)
807 ace_yytype_int16
*bottom
;
808 ace_yytype_int16
*top
;
811 YYFPRINTF (stderr
, "Stack now");
812 for (; bottom
<= top
; ++bottom
)
813 YYFPRINTF (stderr
, " %d", *bottom
);
814 YYFPRINTF (stderr
, "\n");
817 # define YY_STACK_PRINT(Bottom, Top) \
820 ace_yy_stack_print ((Bottom), (Top)); \
824 /*------------------------------------------------.
825 | Report that the YYRULE is going to be reduced. |
826 `------------------------------------------------*/
828 #if (defined __STDC__ || defined __C99__FUNC__ \
829 || defined __cplusplus || defined _MSC_VER)
831 ace_yy_reduce_print (YYSTYPE
*ace_yyvsp
, int ace_yyrule
)
834 ace_yy_reduce_print (ace_yyvsp
, ace_yyrule
)
839 int ace_yynrhs
= ace_yyr2
[ace_yyrule
];
841 unsigned long int ace_yylno
= ace_yyrline
[ace_yyrule
];
842 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
843 ace_yyrule
- 1, ace_yylno
);
844 /* The symbols being reduced. */
845 for (ace_yyi
= 0; ace_yyi
< ace_yynrhs
; ace_yyi
++)
847 ACE_OS::fprintf (stderr
, " $%d = ", ace_yyi
+ 1);
848 ace_yy_symbol_print (stderr
, ace_yyrhs
[ace_yyprhs
[ace_yyrule
] + ace_yyi
],
849 &(ace_yyvsp
[(ace_yyi
+ 1) - (ace_yynrhs
)])
851 ACE_OS::fprintf (stderr
, "\n");
855 # define YY_REDUCE_PRINT(Rule) \
858 ace_yy_reduce_print (ace_yyvsp, Rule); \
861 /* Nonzero means print parse trace. It is left uninitialized so that
862 multiple parsers can coexist. */
865 # define YYDPRINTF(Args)
866 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
867 # define YY_STACK_PRINT(Bottom, Top)
868 # define YY_REDUCE_PRINT(Rule)
869 #endif /* !YYDEBUG */
872 /* YYINITDEPTH -- initial size of the parser's stacks. */
874 # define YYINITDEPTH 200
877 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
878 if the built-in stack extension method is used).
880 Do not make this value too large; the results are undefined if
881 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
882 evaluated with infinite-precision integer arithmetic. */
885 # define YYMAXDEPTH 10000
892 # ifndef ace_yystrlen
893 # if defined __GLIBC__ && defined _STRING_H
894 # define ace_yystrlen strlen
896 /* Return the length of YYSTR. */
897 #if (defined __STDC__ || defined __C99__FUNC__ \
898 || defined __cplusplus || defined _MSC_VER)
900 ace_yystrlen (const char *ace_yystr
)
903 ace_yystrlen (ace_yystr
)
904 const char *ace_yystr
;
908 for (ace_yylen
= 0; ace_yystr
[ace_yylen
]; ace_yylen
++)
915 # ifndef ace_yystpcpy
916 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
917 # define ace_yystpcpy stpcpy
919 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
921 #if (defined __STDC__ || defined __C99__FUNC__ \
922 || defined __cplusplus || defined _MSC_VER)
924 ace_yystpcpy (char *ace_yydest
, const char *ace_yysrc
)
927 ace_yystpcpy (ace_yydest
, ace_yysrc
)
929 const char *ace_yysrc
;
932 char *ace_yyd
= ace_yydest
;
933 const char *ace_yys
= ace_yysrc
;
935 while ((*ace_yyd
++ = *ace_yys
++) != '\0')
943 # ifndef ace_yytnamerr
944 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
945 quotes and backslashes, so that it's suitable for ace_yyerror. The
946 heuristic is that double-quoting is unnecessary unless the string
947 contains an apostrophe, a comma, or backslash (other than
948 backslash-backslash). YYSTR is taken from ace_yytname. If YYRES is
949 null, do not copy; instead, return the length of what the result
952 ace_yytnamerr (char *ace_yyres
, const char *ace_yystr
)
954 if (*ace_yystr
== '"')
956 YYSIZE_T ace_yyn
= 0;
957 char const *ace_yyp
= ace_yystr
;
964 goto do_not_strip_quotes
;
967 if (*++ace_yyp
!= '\\')
968 goto do_not_strip_quotes
;
972 ace_yyres
[ace_yyn
] = *ace_yyp
;
978 ace_yyres
[ace_yyn
] = '\0';
981 do_not_strip_quotes
: ;
985 return ace_yystrlen (ace_yystr
);
987 return ace_yystpcpy (ace_yyres
, ace_yystr
) - ace_yyres
;
991 /* Copy into YYRESULT an error message about the unexpected token
992 YYCHAR while in state YYSTATE. Return the number of bytes copied,
993 including the terminating null byte. If YYRESULT is null, do not
994 copy anything; just return the number of bytes that would be
995 copied. As a special case, return 0 if an ordinary "syntax error"
996 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
999 ace_yysyntax_error (char *ace_yyresult
, int ace_yystate
, int ace_yychar
)
1001 int ace_yyn
= ace_yypact
[ace_yystate
];
1003 if (! (YYPACT_NINF
< ace_yyn
&& ace_yyn
<= YYLAST
))
1007 int ace_yytype
= YYTRANSLATE (ace_yychar
);
1008 YYSIZE_T ace_yysize0
= ace_yytnamerr (0, ace_yytname
[ace_yytype
]);
1009 YYSIZE_T ace_yysize
= ace_yysize0
;
1010 YYSIZE_T ace_yysize1
;
1011 int ace_yysize_overflow
= 0;
1012 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
1013 char const *ace_yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
1017 /* This is so xgettext sees the translatable formats that are
1018 constructed on the fly. */
1019 YY_("syntax error, unexpected %s");
1020 YY_("syntax error, unexpected %s, expecting %s");
1021 YY_("syntax error, unexpected %s, expecting %s or %s");
1022 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1023 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1026 char const *ace_yyf
;
1027 static char const ace_yyunexpected
[] = "syntax error, unexpected %s";
1028 static char const ace_yyexpecting
[] = ", expecting %s";
1029 static char const ace_yyor
[] = " or %s";
1030 char ace_yyformat
[sizeof ace_yyunexpected
1031 + sizeof ace_yyexpecting
- 1
1032 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
1033 * (sizeof ace_yyor
- 1))];
1034 char const *ace_yyprefix
= ace_yyexpecting
;
1036 /* Start YYX at -YYN if negative to avoid negative indexes in
1038 int ace_yyxbegin
= ace_yyn
< 0 ? -ace_yyn
: 0;
1040 /* Stay within bounds of both ace_yycheck and ace_yytname. */
1041 int ace_yychecklim
= YYLAST
- ace_yyn
+ 1;
1042 int ace_yyxend
= ace_yychecklim
< YYNTOKENS
? ace_yychecklim
: YYNTOKENS
;
1043 int ace_yycount
= 1;
1045 ace_yyarg
[0] = ace_yytname
[ace_yytype
];
1046 ace_yyfmt
= ace_yystpcpy (ace_yyformat
, ace_yyunexpected
);
1048 for (ace_yyx
= ace_yyxbegin
; ace_yyx
< ace_yyxend
; ++ace_yyx
)
1049 if (ace_yycheck
[ace_yyx
+ ace_yyn
] == ace_yyx
&& ace_yyx
!= YYTERROR
)
1051 if (ace_yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
1054 ace_yysize
= ace_yysize0
;
1055 ace_yyformat
[sizeof ace_yyunexpected
- 1] = '\0';
1058 ace_yyarg
[ace_yycount
++] = ace_yytname
[ace_yyx
];
1059 ace_yysize1
= ace_yysize
+ ace_yytnamerr (0, ace_yytname
[ace_yyx
]);
1060 ace_yysize_overflow
|= (ace_yysize1
< ace_yysize
);
1061 ace_yysize
= ace_yysize1
;
1062 ace_yyfmt
= ace_yystpcpy (ace_yyfmt
, ace_yyprefix
);
1063 ace_yyprefix
= ace_yyor
;
1066 ace_yyf
= YY_(ace_yyformat
);
1067 ace_yysize1
= ace_yysize
+ ace_yystrlen (ace_yyf
);
1068 ace_yysize_overflow
|= (ace_yysize1
< ace_yysize
);
1069 ace_yysize
= ace_yysize1
;
1071 if (ace_yysize_overflow
)
1072 return YYSIZE_MAXIMUM
;
1076 /* Avoid sprintf, as that infringes on the user's name space.
1077 Don't have undefined behavior even if the translation
1078 produced a string with the wrong number of "%s"s. */
1079 char *ace_yyp
= ace_yyresult
;
1081 while ((*ace_yyp
= *ace_yyf
) != '\0')
1083 if (*ace_yyp
== '%' && ace_yyf
[1] == 's' && ace_yyi
< ace_yycount
)
1085 ace_yyp
+= ace_yytnamerr (ace_yyp
, ace_yyarg
[ace_yyi
++]);
1098 #endif /* YYERROR_VERBOSE */
1101 /*-----------------------------------------------.
1102 | Release the memory associated to this symbol. |
1103 `-----------------------------------------------*/
1106 #if (defined __STDC__ || defined __C99__FUNC__ \
1107 || defined __cplusplus || defined _MSC_VER)
1109 ace_yydestruct (const char *ace_yymsg
, int ace_yytype
, YYSTYPE
*ace_yyvaluep
)
1112 ace_yydestruct (ace_yymsg
, ace_yytype
, ace_yyvaluep
)
1113 const char *ace_yymsg
;
1115 YYSTYPE
*ace_yyvaluep
;
1118 YYUSE (ace_yyvaluep
);
1121 ace_yymsg
= "Deleting";
1122 YY_SYMBOL_PRINT (ace_yymsg
, ace_yytype
, ace_yyvaluep
, ace_yylocationp
);
1133 /* Prevent warnings from -Wmissing-prototypes. */
1135 #ifdef YYPARSE_PARAM
1136 #if defined __STDC__ || defined __cplusplus
1137 int ace_yyparse (void *YYPARSE_PARAM
);
1141 #else /* ! YYPARSE_PARAM */
1142 #if defined __STDC__ || defined __cplusplus
1143 int ace_yyparse (void);
1147 #endif /* ! YYPARSE_PARAM */
1158 #ifdef YYPARSE_PARAM
1159 #if (defined __STDC__ || defined __C99__FUNC__ \
1160 || defined __cplusplus || defined _MSC_VER)
1162 ace_yyparse (void *YYPARSE_PARAM
)
1165 ace_yyparse (YYPARSE_PARAM
)
1166 void *YYPARSE_PARAM
;
1168 #else /* ! YYPARSE_PARAM */
1169 #if (defined __STDC__ || defined __C99__FUNC__ \
1170 || defined __cplusplus || defined _MSC_VER)
1180 /* The look-ahead symbol. */
1183 /* The semantic value of the look-ahead symbol. */
1186 /* Number of syntax errors so far. */
1192 /* Number of tokens to shift before error messages enabled. */
1193 int ace_yyerrstatus
;
1194 /* Look-ahead token as an internal (translated) token number. */
1195 int ace_yytoken
= 0;
1197 /* Buffer for error messages, and its allocated size. */
1198 char ace_yymsgbuf
[128];
1199 char *ace_yymsg
= ace_yymsgbuf
;
1200 YYSIZE_T ace_yymsg_alloc
= sizeof ace_yymsgbuf
;
1203 /* Three stacks and their tools:
1204 `ace_yyss': related to states,
1205 `ace_yyvs': related to semantic values,
1206 `ace_yyls': related to locations.
1208 Refer to the stacks thru separate pointers, to allow ace_yyoverflow
1209 to reallocate them elsewhere. */
1211 /* The state stack. */
1212 ace_yytype_int16 ace_yyssa
[YYINITDEPTH
];
1213 ace_yytype_int16
*ace_yyss
= ace_yyssa
;
1214 ace_yytype_int16
*ace_yyssp
;
1216 /* The semantic value stack. */
1217 YYSTYPE ace_yyvsa
[YYINITDEPTH
];
1218 YYSTYPE
*ace_yyvs
= ace_yyvsa
;
1223 #define YYPOPSTACK(N) (ace_yyvsp -= (N), ace_yyssp -= (N))
1225 YYSIZE_T ace_yystacksize
= YYINITDEPTH
;
1227 /* The variables used to return semantic value and location from the
1232 /* The number of symbols on the RHS of the reduced rule.
1233 Keep to zero when no symbol should be popped. */
1236 YYDPRINTF ((stderr
, "Starting parse\n"));
1239 ace_yyerrstatus
= 0;
1241 ace_yychar
= YYEMPTY
; /* Cause a token to be read. */
1243 /* Initialize stack pointers.
1244 Waste one element of value and location stack
1245 so that they stay on the same level as the state stack.
1246 The wasted elements are never initialized. */
1248 ace_yyssp
= ace_yyss
;
1249 ace_yyvsp
= ace_yyvs
;
1251 goto ace_yysetstate
;
1253 /*------------------------------------------------------------.
1254 | ace_yynewstate -- Push a new state, which is found in ace_yystate. |
1255 `------------------------------------------------------------*/
1257 /* In all cases, when you get here, the value and location stacks
1258 have just been pushed. So pushing a state here evens the stacks. */
1262 *ace_yyssp
= ace_yystate
;
1264 if (ace_yyss
+ ace_yystacksize
- 1 <= ace_yyssp
)
1266 /* Get the current used size of the three stacks, in elements. */
1267 YYSIZE_T ace_yysize
= ace_yyssp
- ace_yyss
+ 1;
1269 #ifdef ace_yyoverflow
1271 /* Give user a chance to reallocate the stack. Use copies of
1272 these so that the &'s don't force the real ones into
1274 YYSTYPE
*ace_yyvs1
= ace_yyvs
;
1275 ace_yytype_int16
*ace_yyss1
= ace_yyss
;
1278 /* Each stack pointer address is followed by the size of the
1279 data in use in that stack, in bytes. This used to be a
1280 conditional around just the two extra args, but that might
1281 be undefined if ace_yyoverflow is a macro. */
1282 ace_yyoverflow (YY_("memory exhausted"),
1283 &ace_yyss1
, ace_yysize
* sizeof (*ace_yyssp
),
1284 &ace_yyvs1
, ace_yysize
* sizeof (*ace_yyvsp
),
1288 ace_yyss
= ace_yyss1
;
1289 ace_yyvs
= ace_yyvs1
;
1291 #else /* no ace_yyoverflow */
1292 # ifndef YYSTACK_RELOCATE
1293 goto ace_yyexhaustedlab
;
1295 /* Extend the stack our own way. */
1296 if (YYMAXDEPTH
<= ace_yystacksize
)
1297 goto ace_yyexhaustedlab
;
1298 ace_yystacksize
*= 2;
1299 if (YYMAXDEPTH
< ace_yystacksize
)
1300 ace_yystacksize
= YYMAXDEPTH
;
1303 ace_yytype_int16
*ace_yyss1
= ace_yyss
;
1304 union ace_yyalloc
*ace_yyptr
=
1305 (union ace_yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (ace_yystacksize
));
1307 goto ace_yyexhaustedlab
;
1308 YYSTACK_RELOCATE (ace_yyss
);
1309 YYSTACK_RELOCATE (ace_yyvs
);
1311 # undef YYSTACK_RELOCATE
1312 if (ace_yyss1
!= ace_yyssa
)
1313 YYSTACK_FREE (ace_yyss1
);
1316 #endif /* no ace_yyoverflow */
1318 ace_yyssp
= ace_yyss
+ ace_yysize
- 1;
1319 ace_yyvsp
= ace_yyvs
+ ace_yysize
- 1;
1322 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
1323 (unsigned long int) ace_yystacksize
));
1325 if (ace_yyss
+ ace_yystacksize
- 1 <= ace_yyssp
)
1329 YYDPRINTF ((stderr
, "Entering state %d\n", ace_yystate
));
1338 /* Do appropriate processing given the current state. Read a
1339 look-ahead token if we need one and don't already have one. */
1341 /* First try to decide what to do without reference to look-ahead token. */
1342 ace_yyn
= ace_yypact
[ace_yystate
];
1343 if (ace_yyn
== YYPACT_NINF
)
1346 /* Not known => get a look-ahead token if don't already have one. */
1348 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1349 if (ace_yychar
== YYEMPTY
)
1351 YYDPRINTF ((stderr
, "Reading a token: "));
1355 if (ace_yychar
<= YYEOF
)
1357 ace_yychar
= ace_yytoken
= YYEOF
;
1358 YYDPRINTF ((stderr
, "Now at end of input.\n"));
1362 ace_yytoken
= YYTRANSLATE (ace_yychar
);
1363 YY_SYMBOL_PRINT ("Next token is", ace_yytoken
, &ace_yylval
, &ace_yylloc
);
1366 /* If the proper action on seeing token YYTOKEN is to reduce or to
1367 detect an error, take that action. */
1368 ace_yyn
+= ace_yytoken
;
1369 if (ace_yyn
< 0 || YYLAST
< ace_yyn
|| ace_yycheck
[ace_yyn
] != ace_yytoken
)
1371 ace_yyn
= ace_yytable
[ace_yyn
];
1374 if (ace_yyn
== 0 || ace_yyn
== YYTABLE_NINF
)
1380 if (ace_yyn
== YYFINAL
)
1383 /* Count tokens shifted since error; after three, turn off error
1385 if (ace_yyerrstatus
)
1388 /* Shift the look-ahead token. */
1389 YY_SYMBOL_PRINT ("Shifting", ace_yytoken
, &ace_yylval
, &ace_yylloc
);
1391 /* Discard the shifted token unless it is eof. */
1392 if (ace_yychar
!= YYEOF
)
1393 ace_yychar
= YYEMPTY
;
1395 ace_yystate
= ace_yyn
;
1396 *++ace_yyvsp
= ace_yylval
;
1398 goto ace_yynewstate
;
1401 /*-----------------------------------------------------------.
1402 | ace_yydefault -- do the default action for the current state. |
1403 `-----------------------------------------------------------*/
1405 ace_yyn
= ace_yydefact
[ace_yystate
];
1411 /*-----------------------------.
1412 | ace_yyreduce -- Do a reduction. |
1413 `-----------------------------*/
1415 /* ace_yyn is the number of a rule to reduce with. */
1416 ace_yylen
= ace_yyr2
[ace_yyn
];
1418 /* If YYLEN is nonzero, implement the default value of the action:
1421 Otherwise, the following line sets YYVAL to garbage.
1422 This behavior is undocumented and Bison
1423 users should not rely upon it. Assigning to YYVAL
1424 unconditionally makes the parser a bit smaller, and it avoids a
1425 GCC warning that YYVAL may be used uninitialized. */
1426 ace_yyval
= ace_yyvsp
[1-ace_yylen
];
1429 YY_REDUCE_PRINT (ace_yyn
);
1435 if ((ace_yyvsp
[(2) - (2)].parse_node_
) != 0)
1437 (ace_yyvsp
[(2) - (2)].parse_node_
)->apply (ACE_SVC_CONF_PARAM
->config
, ACE_SVC_CONF_PARAM
->yyerrno
);
1438 delete (ace_yyvsp
[(2) - (2)].parse_node_
);
1440 ACE_SVC_CONF_PARAM
->obstack
.release ();
1447 ACE_SVC_CONF_PARAM
->obstack
.release ();
1454 if ((ace_yyvsp
[(2) - (3)].svc_record_
) != 0)
1455 (ace_yyval
.parse_node_
) = new ACE_Dynamic_Node ((ace_yyvsp
[(2) - (3)].svc_record_
), (ace_yyvsp
[(3) - (3)].ident_
));
1457 (ace_yyval
.parse_node_
) = 0;
1464 (ace_yyval
.parse_node_
) = new ACE_Static_Node ((ace_yyvsp
[(2) - (3)].ident_
), (ace_yyvsp
[(3) - (3)].ident_
));
1471 (ace_yyval
.parse_node_
) = new ACE_Suspend_Node ((ace_yyvsp
[(2) - (2)].ident_
));
1478 (ace_yyval
.parse_node_
) = new ACE_Resume_Node ((ace_yyvsp
[(2) - (2)].ident_
));
1485 (ace_yyval
.parse_node_
) = new ACE_Remove_Node ((ace_yyvsp
[(2) - (2)].ident_
));
1492 (ace_yyval
.parse_node_
) = new ACE_Stream_Node ((ace_yyvsp
[(2) - (3)].static_node_
), (ace_yyvsp
[(3) - (3)].parse_node_
));
1498 { (ace_yyval
.static_node_
) = new ACE_Static_Node ((ace_yyvsp
[(2) - (2)].ident_
)); ;}
1504 (ace_yyval
.parse_node_
) = new ACE_Dummy_Node ((ace_yyvsp
[(3) - (4)].static_node_
), (ace_yyvsp
[(4) - (4)].parse_node_
));
1523 // Initialize left context...
1524 (ace_yyval
.static_node_
) = (ace_yyvsp
[(0) - (1)].static_node_
);
1531 ACE_UNUSED_ARG ((ace_yyvsp
[(2) - (4)]));
1532 (ace_yyval
.parse_node_
) = (ace_yyvsp
[(3) - (4)].parse_node_
);
1538 { (ace_yyval
.parse_node_
) = 0; ;}
1544 if ((ace_yyvsp
[(2) - (2)].parse_node_
) != 0)
1546 (ace_yyvsp
[(2) - (2)].parse_node_
)->link ((ace_yyvsp
[(1) - (2)].parse_node_
));
1547 (ace_yyval
.parse_node_
) = (ace_yyvsp
[(2) - (2)].parse_node_
);
1554 { (ace_yyval
.parse_node_
) = 0; ;}
1566 ACE_Static_Node
*sn
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1567 ACE_Module_Type
*mt
= ace_get_module (sn
->record (ACE_SVC_CONF_PARAM
->config
),
1568 (ace_yyvsp
[(1) - (1)].static_node_
)->name (),
1569 ACE_SVC_CONF_PARAM
->yyerrno
);
1571 if (((ACE_Stream_Type
*) sn
->record (ACE_SVC_CONF_PARAM
->config
)->type ())->push (mt
) == -1)
1573 ACELIB_ERROR ((LM_ERROR
,
1574 ACE_TEXT ("Problem with static\n")));
1575 ACE_SVC_CONF_PARAM
->yyerrno
++;
1583 ACE_Static_Node
*sn
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1584 ACE_Module_Type
*mt
= ace_get_module (sn
->record (ACE_SVC_CONF_PARAM
->config
),
1586 ACE_SVC_CONF_PARAM
->yyerrno
);
1595 ACE_Static_Node
*sn
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1596 ACE_Module_Type
*mt
= ace_get_module (sn
->record (ACE_SVC_CONF_PARAM
->config
),
1597 (ace_yyvsp
[(1) - (1)].static_node_
)->name (),
1598 ACE_SVC_CONF_PARAM
->yyerrno
);
1607 ACE_Static_Node
*stream
= (ace_yyvsp
[(-1) - (1)].static_node_
);
1608 ACE_Static_Node
*module
= (ace_yyvsp
[(1) - (1)].static_node_
);
1609 ACE_Module_Type
*mt
= ace_get_module (stream
->record (ACE_SVC_CONF_PARAM
->config
),
1611 ACE_SVC_CONF_PARAM
->yyerrno
);
1613 ACE_Stream_Type
*st
=
1614 dynamic_cast<ACE_Stream_Type
*> (const_cast<ACE_Service_Type_Impl
*> (stream
->record (ACE_SVC_CONF_PARAM
->config
)->type ()));
1615 if (!st
|| (mt
!= 0 && st
->remove (mt
) == -1))
1617 ACELIB_ERROR ((LM_ERROR
,
1618 ACE_TEXT ("cannot remove Module_Type %s from STREAM_Type %s\n"),
1621 ACE_SVC_CONF_PARAM
->yyerrno
++;
1629 (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_
));
1636 (ace_yyval
.type_
) = 1;
1643 (ace_yyval
.type_
) = 0;
1650 (ace_yyval
.type_
) = 1;
1657 (ace_yyval
.location_node_
) = new ACE_Object_Node ((ace_yyvsp
[(1) - (3)].ident_
), (ace_yyvsp
[(3) - (3)].ident_
));
1664 (ace_yyval
.location_node_
) = new ACE_Function_Node ((ace_yyvsp
[(1) - (5)].ident_
), (ace_yyvsp
[(3) - (5)].ident_
));
1671 (ace_yyval
.location_node_
) = new ACE_Static_Function_Node ((ace_yyvsp
[(2) - (4)].ident_
));
1678 (ace_yyval
.type_
) = ACE_MODULE_T
;
1685 (ace_yyval
.type_
) = ACE_SVC_OBJ_T
;
1692 (ace_yyval
.type_
) = ACE_STREAM_T
;
1698 { (ace_yyval
.ident_
) = 0; ;}
1702 /* Line 1267 of yacc.c. */
1706 YY_SYMBOL_PRINT ("-> $$ =", ace_yyr1
[ace_yyn
], &ace_yyval
, &ace_yyloc
);
1708 YYPOPSTACK (ace_yylen
);
1710 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1712 *++ace_yyvsp
= ace_yyval
;
1715 /* Now `shift' the result of the reduction. Determine what state
1716 that goes to, based on the state we popped back to and the rule
1717 number reduced by. */
1719 ace_yyn
= ace_yyr1
[ace_yyn
];
1721 ace_yystate
= ace_yypgoto
[ace_yyn
- YYNTOKENS
] + *ace_yyssp
;
1722 if (0 <= ace_yystate
&& ace_yystate
<= YYLAST
&& ace_yycheck
[ace_yystate
] == *ace_yyssp
)
1723 ace_yystate
= ace_yytable
[ace_yystate
];
1725 ace_yystate
= ace_yydefgoto
[ace_yyn
- YYNTOKENS
];
1727 goto ace_yynewstate
;
1730 /*------------------------------------.
1731 | ace_yyerrlab -- here on detecting error |
1732 `------------------------------------*/
1734 /* If not already recovering from an error, report this error. */
1735 if (!ace_yyerrstatus
)
1738 #if ! YYERROR_VERBOSE
1739 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, YY_("syntax error"));
1742 YYSIZE_T ace_yysize
= ace_yysyntax_error (0, ace_yystate
, ace_yychar
);
1743 if (ace_yymsg_alloc
< ace_yysize
&& ace_yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
1745 YYSIZE_T ace_yyalloc
= 2 * ace_yysize
;
1746 if (! (ace_yysize
<= ace_yyalloc
&& ace_yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
1747 ace_yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
1748 if (ace_yymsg
!= ace_yymsgbuf
)
1749 YYSTACK_FREE (ace_yymsg
);
1750 ace_yymsg
= (char *) YYSTACK_ALLOC (ace_yyalloc
);
1752 ace_yymsg_alloc
= ace_yyalloc
;
1755 ace_yymsg
= ace_yymsgbuf
;
1756 ace_yymsg_alloc
= sizeof ace_yymsgbuf
;
1760 if (0 < ace_yysize
&& ace_yysize
<= ace_yymsg_alloc
)
1762 (void) ace_yysyntax_error (ace_yymsg
, ace_yystate
, ace_yychar
);
1763 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, ace_yymsg
);
1767 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, YY_("syntax error"));
1768 if (ace_yysize
!= 0)
1769 goto ace_yyexhaustedlab
;
1777 if (ace_yyerrstatus
== 3)
1779 /* If just tried and failed to reuse look-ahead token after an
1780 error, discard it. */
1782 if (ace_yychar
<= YYEOF
)
1784 /* Return failure if at end of input. */
1785 if (ace_yychar
== YYEOF
)
1790 ace_yydestruct ("Error: discarding",
1791 ace_yytoken
, &ace_yylval
);
1792 ace_yychar
= YYEMPTY
;
1796 /* Else will try to reuse look-ahead token after shifting the error
1801 /*---------------------------------------------------.
1802 | ace_yyerrorlab -- error raised explicitly by YYERROR. |
1803 `---------------------------------------------------*/
1806 /* Pacify compilers like GCC when the user code never invokes
1807 YYERROR and the label ace_yyerrorlab therefore never appears in user
1809 if (/*CONSTCOND*/ 0)
1810 goto ace_yyerrorlab
;
1812 /* Do not reclaim the symbols of the rule which action triggered
1814 YYPOPSTACK (ace_yylen
);
1816 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1817 ace_yystate
= *ace_yyssp
;
1821 /*-------------------------------------------------------------.
1822 | ace_yyerrlab1 -- common code for both syntax error and YYERROR. |
1823 `-------------------------------------------------------------*/
1825 ace_yyerrstatus
= 3; /* Each real token shifted decrements this. */
1829 ace_yyn
= ace_yypact
[ace_yystate
];
1830 if (ace_yyn
!= YYPACT_NINF
)
1832 ace_yyn
+= YYTERROR
;
1833 if (0 <= ace_yyn
&& ace_yyn
<= YYLAST
&& ace_yycheck
[ace_yyn
] == YYTERROR
)
1835 ace_yyn
= ace_yytable
[ace_yyn
];
1841 /* Pop the current state because it cannot handle the error token. */
1842 if (ace_yyssp
== ace_yyss
)
1846 ace_yydestruct ("Error: popping",
1847 ace_yystos
[ace_yystate
], ace_yyvsp
);
1849 ace_yystate
= *ace_yyssp
;
1850 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1853 if (ace_yyn
== YYFINAL
)
1856 *++ace_yyvsp
= ace_yylval
;
1859 /* Shift the error token. */
1860 YY_SYMBOL_PRINT ("Shifting", ace_yystos
[ace_yyn
], ace_yyvsp
, ace_yylsp
);
1862 ace_yystate
= ace_yyn
;
1863 goto ace_yynewstate
;
1866 /*-------------------------------------.
1867 | ace_yyacceptlab -- YYACCEPT comes here. |
1868 `-------------------------------------*/
1873 /*-----------------------------------.
1874 | ace_yyabortlab -- YYABORT comes here. |
1875 `-----------------------------------*/
1880 #ifndef ace_yyoverflow
1881 /*-------------------------------------------------.
1882 | ace_yyexhaustedlab -- memory exhaustion comes here. |
1883 `-------------------------------------------------*/
1885 ace_yyerror (ACE_SVC_CONF_PARAM
->yyerrno
, ACE_SVC_CONF_PARAM
->yylineno
, YY_("memory exhausted"));
1891 if (ace_yychar
!= YYEOF
&& ace_yychar
!= YYEMPTY
)
1892 ace_yydestruct ("Cleanup: discarding lookahead",
1893 ace_yytoken
, &ace_yylval
);
1894 /* Do not reclaim the symbols of the rule which action triggered
1895 this YYABORT or YYACCEPT. */
1896 YYPOPSTACK (ace_yylen
);
1897 YY_STACK_PRINT (ace_yyss
, ace_yyssp
);
1898 while (ace_yyssp
!= ace_yyss
)
1900 ace_yydestruct ("Cleanup: popping",
1901 ace_yystos
[*ace_yyssp
], ace_yyvsp
);
1904 #if defined ace_yyoverflow && !defined ACE_LACKS_FREE
1905 if (ace_yyss
!= ace_yyssa
)
1906 YYSTACK_FREE (ace_yyss
);
1909 if (ace_yymsg
!= ace_yymsgbuf
)
1910 YYSTACK_FREE (ace_yymsg
);
1912 /* Make sure YYID is used. */
1913 return YYID (ace_yyresult
);
1920 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
1922 // Prints the error string to standard output. Cleans up the error
1926 ace_yyerror (int ace_yyerrno
, int ace_yylineno
, ACE_TCHAR
const * s
)
1928 #if defined (ACE_NLOGGING)
1929 ACE_UNUSED_ARG (ace_yyerrno
);
1930 ACE_UNUSED_ARG (ace_yylineno
);
1932 #endif /* ACE_NLOGGING */
1934 ACELIB_ERROR ((LM_ERROR
,
1935 ACE_TEXT ("ACE (%P|%t) [error %d] on line %d: %C\n"),
1942 ace_yyerror (ACE_TCHAR
const * s
)
1944 ace_yyerror (-1, -1, s
);
1947 // Note that SRC_REC represents left context, which is the STREAM *
1950 static ACE_Module_Type
*
1951 ace_get_module (ACE_Service_Type
const * sr
,
1952 ACE_TCHAR
const * svc_name
,
1955 ACE_Stream_Type
const * const st
=
1958 : dynamic_cast<ACE_Stream_Type
const *> (sr
->type ()));
1959 ACE_Module_Type
const * const mt
= (st
== 0 ? 0 : st
->find (svc_name
));
1961 if (sr
== 0 || st
== 0 || mt
== 0)
1963 ACELIB_ERROR ((LM_ERROR
,
1964 ACE_TEXT ("cannot locate Module_Type %s ")
1965 ACE_TEXT ("in STREAM_Type %s\n"),
1967 (sr
? sr
->name () : ACE_TEXT ("(nil)"))));
1971 return const_cast<ACE_Module_Type
*> (mt
);
1974 #if defined (SVC_CONF_Y_DEBUGGING)
1975 // Main driver program.
1978 ACE_TMAIN (int argc
, ACE_TCHAR
*argv
[])
1980 ACE_Svc_Conf_Param
param (0, stdin
);
1982 // Try to reopen any filename argument to use YYIN.
1983 if (argc
> 1 && (ace_yyin
= freopen (argv
[1], "r", stdin
)) == 0)
1984 (void) ACE_OS::ACE_OS::fprintf (stderr
, ACE_TEXT ("usage: %s [file]\n"), argv
[0]), ACE_OS::exit (1);
1986 return ::ace_yyparse (¶m
);
1988 #endif /* SVC_CONF_Y_DEBUGGING */
1990 ACE_END_VERSIONED_NAMESPACE_DECL
1992 #endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */