Revert to Current Include Style
[ACE_TAO.git] / ACE / ace / Svc_Conf_y.cpp
blob5e1265369d6b7b64ff37a87866bc447ead88468e
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)
11 any later version.
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. */
47 #define YYBISON 1
49 /* Bison version. */
50 #define YYBISON_VERSION "2.3"
52 /* Skeleton name. */
53 #define YYSKELETON_NAME "yacc.c"
55 /* Pure parsers. */
56 #define YYPURE 1
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
63 /* Tokens. */
64 #ifndef YYTOKENTYPE
65 # define YYTOKENTYPE
66 /* Put the tokens into the symbol table, so that GDB and other debuggers
67 know about them. */
68 enum ace_yytokentype {
69 ACE_DYNAMIC = 258,
70 ACE_STATIC = 259,
71 ACE_SUSPEND = 260,
72 ACE_RESUME = 261,
73 ACE_REMOVE = 262,
74 ACE_USTREAM = 263,
75 ACE_MODULE_T = 264,
76 ACE_STREAM_T = 265,
77 ACE_SVC_OBJ_T = 266,
78 ACE_ACTIVE = 267,
79 ACE_INACTIVE = 268,
80 ACE_PATHNAME = 269,
81 ACE_IDENT = 270,
82 ACE_STRING = 271
84 #endif
85 /* Tokens. */
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
98 #define ACE_IDENT 270
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
119 // Prototypes.
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.
129 // #define YYDEBUG 1
131 // Bison 2.3 template contains switch statement with a "default:", but
132 // without a "case:" label. Suppressing a compiler warning for Visual
133 // C++.
134 #if defined (_MSC_VER)
135 # pragma warning ( disable : 4065 )
136 #endif
138 // Normalize the message literal's type to match ace_yyerror() prototype
139 #define YY_ ACE_TEXT
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. */
153 #ifndef YYDEBUG
154 # define YYDEBUG 0
155 #endif
157 /* Enabling verbose error messages. */
158 #ifdef YYERROR_VERBOSE
159 # undef YYERROR_VERBOSE
160 # define YYERROR_VERBOSE 1
161 #else
162 # define YYERROR_VERBOSE 0
163 #endif
165 /* Enabling the token table. */
166 #ifndef YYTOKEN_TABLE
167 # define YYTOKEN_TABLE 0
168 #endif
170 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
171 typedef int YYSTYPE;
172 # define ace_yystype YYSTYPE /* obsolescent; will be withdrawn */
173 # define YYSTYPE_IS_DECLARED 1
174 # define YYSTYPE_IS_TRIVIAL 1
175 #endif
179 /* Copy the second part of user declarations. */
182 /* Line 216 of yacc.c. */
185 #ifdef short
186 # undef short
187 #endif
189 #ifdef YYTYPE_UINT8
190 typedef YYTYPE_UINT8 ace_yytype_uint8;
191 #else
192 using ace_yytype_uint8 = unsigned char;
193 #endif
195 #ifdef YYTYPE_INT8
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;
200 #else
201 typedef short int ace_yytype_int8;
202 #endif
204 #ifdef YYTYPE_UINT16
205 typedef YYTYPE_UINT16 ace_yytype_uint16;
206 #else
207 using ace_yytype_uint16 = unsigned short;
208 #endif
210 #ifdef YYTYPE_INT16
211 typedef YYTYPE_INT16 ace_yytype_int16;
212 #else
213 using ace_yytype_int16 = short;
214 #endif
216 #ifndef YYSIZE_T
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
225 # else
226 # define YYSIZE_T unsigned int
227 # endif
228 #endif
230 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
232 #ifndef YY_
233 # if YYENABLE_NLS
234 # if ENABLE_NLS
235 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
236 # define YY_(msgid) dgettext ("bison-runtime", msgid)
237 # endif
238 # endif
239 # ifndef YY_
240 # define YY_(msgid) msgid
241 # endif
242 #endif
244 /* Suppress unused-variable warnings by "using" E. */
245 #if ! defined lint || defined __GNUC__
246 # define YYUSE(e) ((void) (e))
247 #else
248 # define YYUSE(e) /* empty */
249 #endif
251 /* Identity function, used to suppress warnings about constant conditions. */
252 #ifndef lint
253 # define YYID(n) (n)
254 #else
255 #if (defined __STDC__ || defined __C99__FUNC__ \
256 || defined __cplusplus || defined _MSC_VER)
257 static int
258 YYID (int i)
259 #else
260 static int
261 YYID (i)
262 int i;
263 #endif
265 return i;
267 #endif
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
275 # ifdef __GNUC__
276 # define YYSTACK_ALLOC __builtin_alloca
277 # elif defined __BUILTIN_VA_ARG_INCR
278 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
279 # elif defined _AIX
280 # define YYSTACK_ALLOC __alloca
281 # elif defined _MSC_VER
282 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
283 # define alloca _alloca
284 # else
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 */
289 # ifndef _STDLIB_H
290 # define _STDLIB_H 1
291 # endif
292 # endif
293 # endif
294 # endif
295 # endif
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 */
306 # endif
307 # else
308 # define YYSTACK_ALLOC YYMALLOC
309 # define YYSTACK_FREE YYFREE
310 # ifndef YYSTACK_ALLOC_MAXIMUM
311 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
312 # endif
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 */
317 # ifndef _STDLIB_H
318 # define _STDLIB_H 1
319 # endif
320 # endif
321 # ifndef YYMALLOC
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 */
326 # endif
327 # endif
328 # ifndef YYFREE
329 # define YYFREE free
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 */
333 # endif
334 # endif
335 # endif
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. */
344 union ace_yyalloc
346 ace_yytype_int16 ace_yyss;
347 YYSTYPE ace_yyvs;
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
354 N elements. */
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
360 not overlap. */
361 # ifndef YYCOPY
362 # if defined __GNUC__ && 1 < __GNUC__
363 # define YYCOPY(To, From, Count) \
364 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
365 # else
366 # define YYCOPY(To, From, Count) \
367 do \
369 YYSIZE_T ace_yyi; \
370 for (ace_yyi = 0; ace_yyi < (Count); ace_yyi++) \
371 (To)[ace_yyi] = (From)[ace_yyi]; \
373 while (YYID (0))
374 # endif
375 # endif
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
381 stack. */
382 # define YYSTACK_RELOCATE(Stack) \
383 do \
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); \
391 while (YYID (0))
393 #endif
395 /* YYFINAL -- State number of the termination state. */
396 #define YYFINAL 2
397 /* YYLAST -- Last index in YYTABLE. */
398 #define YYLAST 62
400 /* YYNTOKENS -- Number of terminals. */
401 #define YYNTOKENS 23
402 /* YYNNTS -- Number of nonterminals. */
403 #define YYNNTS 21
404 /* YYNRULES -- Number of rules. */
405 #define YYNRULES 45
406 /* YYNRULES -- Number of states. */
407 #define YYNSTATES 66
409 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
410 #define YYUNDEFTOK 2
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,
446 15, 16
449 #if YYDEBUG
450 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
451 YYRHS. */
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
487 #endif
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",
502 "pathname", 0
504 #endif
506 # ifdef YYPRINT
507 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
508 token YYLEX-NUM. */
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,
513 40, 41, 42
515 # endif
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,
534 2, 1, 0, 1, 1, 1
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
560 STATE-NUM. */
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,
594 0, 0, 46
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,
605 -1, -1, 34
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)
623 #define YYEMPTY (-2)
624 #define YYEOF 0
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) \
640 do \
641 if (ace_yychar == YYEMPTY && ace_yylen == 1) \
643 ace_yychar = (Token); \
644 ace_yylval = (Value); \
645 ace_yytoken = YYTRANSLATE (ace_yychar); \
646 YYPOPSTACK (1); \
647 goto ace_yybackup; \
649 else \
651 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_("syntax error: cannot back up")); \
652 YYERROR; \
654 while (YYID (0))
657 #define YYTERROR 1
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) \
668 do \
669 if (YYID (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; \
676 else \
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; \
683 while (YYID (0))
684 #endif
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)
697 # else
698 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
699 # endif
700 #endif
703 /* YYLEX -- calling `ace_yylex' with the right arguments. */
705 #ifdef YYLEX_PARAM
706 # define YYLEX ace_yylex (&ace_yylval, YYLEX_PARAM)
707 #else
708 # define YYLEX ace_yylex (&ace_yylval)
709 #endif
711 /* Enable debugging if requested. */
712 #if YYDEBUG
714 # ifndef YYFPRINTF
715 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
716 # define YYFPRINTF ACE_OS::fprintf
717 # endif
719 # define YYDPRINTF(Args) \
720 do { \
721 if (ace_yydebug) \
722 YYFPRINTF Args; \
723 } while (YYID (0))
725 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
726 do { \
727 if (ace_yydebug) \
729 YYFPRINTF (stderr, "%s ", Title); \
730 ace_yy_symbol_print (stderr, \
731 Type, Value); \
732 YYFPRINTF (stderr, "\n"); \
734 } while (YYID (0))
737 /*--------------------------------.
738 | Print this symbol on YYOUTPUT. |
739 `--------------------------------*/
741 /*ARGSUSED*/
742 #if (defined __STDC__ || defined __C99__FUNC__ \
743 || defined __cplusplus || defined _MSC_VER)
744 static void
745 ace_yy_symbol_value_print (FILE *ace_yyoutput, int ace_yytype, YYSTYPE const * const ace_yyvaluep)
746 #else
747 static void
748 ace_yy_symbol_value_print (ace_yyoutput, ace_yytype, ace_yyvaluep)
749 FILE *ace_yyoutput;
750 int ace_yytype;
751 YYSTYPE const * const ace_yyvaluep;
752 #endif
754 if (!ace_yyvaluep)
755 return;
756 # ifdef YYPRINT
757 if (ace_yytype < YYNTOKENS)
758 YYPRINT (ace_yyoutput, ace_yytoknum[ace_yytype], *ace_yyvaluep);
759 # else
760 YYUSE (ace_yyoutput);
761 # endif
762 switch (ace_yytype)
764 default:
765 break;
770 /*--------------------------------.
771 | Print this symbol on YYOUTPUT. |
772 `--------------------------------*/
774 #if (defined __STDC__ || defined __C99__FUNC__ \
775 || defined __cplusplus || defined _MSC_VER)
776 static void
777 ace_yy_symbol_print (FILE *ace_yyoutput, int ace_yytype, YYSTYPE const * const ace_yyvaluep)
778 #else
779 static void
780 ace_yy_symbol_print (ace_yyoutput, ace_yytype, ace_yyvaluep)
781 FILE *ace_yyoutput;
782 int ace_yytype;
783 YYSTYPE const * const ace_yyvaluep;
784 #endif
786 if (ace_yytype < YYNTOKENS)
787 YYFPRINTF (ace_yyoutput, "token %s (", ace_yytname[ace_yytype]);
788 else
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 |
797 | TOP (included). |
798 `------------------------------------------------------------------*/
800 #if (defined __STDC__ || defined __C99__FUNC__ \
801 || defined __cplusplus || defined _MSC_VER)
802 static void
803 ace_yy_stack_print (ace_yytype_int16 *bottom, ace_yytype_int16 *top)
804 #else
805 static void
806 ace_yy_stack_print (bottom, top)
807 ace_yytype_int16 *bottom;
808 ace_yytype_int16 *top;
809 #endif
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) \
818 do { \
819 if (ace_yydebug) \
820 ace_yy_stack_print ((Bottom), (Top)); \
821 } while (YYID (0))
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)
830 static void
831 ace_yy_reduce_print (YYSTYPE *ace_yyvsp, int ace_yyrule)
832 #else
833 static void
834 ace_yy_reduce_print (ace_yyvsp, ace_yyrule)
835 YYSTYPE *ace_yyvsp;
836 int ace_yyrule;
837 #endif
839 int ace_yynrhs = ace_yyr2[ace_yyrule];
840 int ace_yyi;
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) \
856 do { \
857 if (ace_yydebug) \
858 ace_yy_reduce_print (ace_yyvsp, Rule); \
859 } while (YYID (0))
861 /* Nonzero means print parse trace. It is left uninitialized so that
862 multiple parsers can coexist. */
863 int ace_yydebug;
864 #else /* !YYDEBUG */
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. */
873 #ifndef YYINITDEPTH
874 # define YYINITDEPTH 200
875 #endif
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. */
884 #ifndef YYMAXDEPTH
885 # define YYMAXDEPTH 10000
886 #endif
890 #if YYERROR_VERBOSE
892 # ifndef ace_yystrlen
893 # if defined __GLIBC__ && defined _STRING_H
894 # define ace_yystrlen strlen
895 # else
896 /* Return the length of YYSTR. */
897 #if (defined __STDC__ || defined __C99__FUNC__ \
898 || defined __cplusplus || defined _MSC_VER)
899 static YYSIZE_T
900 ace_yystrlen (const char *ace_yystr)
901 #else
902 static YYSIZE_T
903 ace_yystrlen (ace_yystr)
904 const char *ace_yystr;
905 #endif
907 YYSIZE_T ace_yylen;
908 for (ace_yylen = 0; ace_yystr[ace_yylen]; ace_yylen++)
909 continue;
910 return ace_yylen;
912 # endif
913 # endif
915 # ifndef ace_yystpcpy
916 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
917 # define ace_yystpcpy stpcpy
918 # else
919 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
920 YYDEST. */
921 #if (defined __STDC__ || defined __C99__FUNC__ \
922 || defined __cplusplus || defined _MSC_VER)
923 static char *
924 ace_yystpcpy (char *ace_yydest, const char *ace_yysrc)
925 #else
926 static char *
927 ace_yystpcpy (ace_yydest, ace_yysrc)
928 char *ace_yydest;
929 const char *ace_yysrc;
930 #endif
932 char *ace_yyd = ace_yydest;
933 const char *ace_yys = ace_yysrc;
935 while ((*ace_yyd++ = *ace_yys++) != '\0')
936 continue;
938 return ace_yyd - 1;
940 # endif
941 # endif
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
950 would have been. */
951 static YYSIZE_T
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;
959 for (;;)
960 switch (*++ace_yyp)
962 case '\'':
963 case ',':
964 goto do_not_strip_quotes;
966 case '\\':
967 if (*++ace_yyp != '\\')
968 goto do_not_strip_quotes;
969 /* Fall through. */
970 default:
971 if (ace_yyres)
972 ace_yyres[ace_yyn] = *ace_yyp;
973 ace_yyn++;
974 break;
976 case '"':
977 if (ace_yyres)
978 ace_yyres[ace_yyn] = '\0';
979 return ace_yyn;
981 do_not_strip_quotes: ;
984 if (! ace_yyres)
985 return ace_yystrlen (ace_yystr);
987 return ace_yystpcpy (ace_yyres, ace_yystr) - ace_yyres;
989 # endif
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
997 size calculation. */
998 static YYSIZE_T
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))
1004 return 0;
1005 else
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];
1014 int ace_yyx;
1016 # if 0
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");
1024 # endif
1025 char *ace_yyfmt;
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
1037 YYCHECK. */
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)
1053 ace_yycount = 1;
1054 ace_yysize = ace_yysize0;
1055 ace_yyformat[sizeof ace_yyunexpected - 1] = '\0';
1056 break;
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;
1074 if (ace_yyresult)
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;
1080 int ace_yyi = 0;
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++]);
1086 ace_yyf += 2;
1088 else
1090 ace_yyp++;
1091 ace_yyf++;
1095 return ace_yysize;
1098 #endif /* YYERROR_VERBOSE */
1101 /*-----------------------------------------------.
1102 | Release the memory associated to this symbol. |
1103 `-----------------------------------------------*/
1105 /*ARGSUSED*/
1106 #if (defined __STDC__ || defined __C99__FUNC__ \
1107 || defined __cplusplus || defined _MSC_VER)
1108 static void
1109 ace_yydestruct (const char *ace_yymsg, int ace_yytype, YYSTYPE *ace_yyvaluep)
1110 #else
1111 static void
1112 ace_yydestruct (ace_yymsg, ace_yytype, ace_yyvaluep)
1113 const char *ace_yymsg;
1114 int ace_yytype;
1115 YYSTYPE *ace_yyvaluep;
1116 #endif
1118 YYUSE (ace_yyvaluep);
1120 if (!ace_yymsg)
1121 ace_yymsg = "Deleting";
1122 YY_SYMBOL_PRINT (ace_yymsg, ace_yytype, ace_yyvaluep, ace_yylocationp);
1124 switch (ace_yytype)
1127 default:
1128 break;
1133 /* Prevent warnings from -Wmissing-prototypes. */
1135 #ifdef YYPARSE_PARAM
1136 #if defined __STDC__ || defined __cplusplus
1137 int ace_yyparse (void *YYPARSE_PARAM);
1138 #else
1139 int ace_yyparse ();
1140 #endif
1141 #else /* ! YYPARSE_PARAM */
1142 #if defined __STDC__ || defined __cplusplus
1143 int ace_yyparse (void);
1144 #else
1145 int ace_yyparse ();
1146 #endif
1147 #endif /* ! YYPARSE_PARAM */
1154 /*----------.
1155 | ace_yyparse. |
1156 `----------*/
1158 #ifdef YYPARSE_PARAM
1159 #if (defined __STDC__ || defined __C99__FUNC__ \
1160 || defined __cplusplus || defined _MSC_VER)
1162 ace_yyparse (void *YYPARSE_PARAM)
1163 #else
1165 ace_yyparse (YYPARSE_PARAM)
1166 void *YYPARSE_PARAM;
1167 #endif
1168 #else /* ! YYPARSE_PARAM */
1169 #if (defined __STDC__ || defined __C99__FUNC__ \
1170 || defined __cplusplus || defined _MSC_VER)
1172 ace_yyparse (void)
1173 #else
1175 ace_yyparse ()
1177 #endif
1178 #endif
1180 /* The look-ahead symbol. */
1181 int ace_yychar;
1183 /* The semantic value of the look-ahead symbol. */
1184 YYSTYPE ace_yylval;
1186 /* Number of syntax errors so far. */
1187 int ace_yynerrs;
1189 int ace_yystate;
1190 int ace_yyn;
1191 int ace_yyresult;
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;
1196 #if YYERROR_VERBOSE
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;
1201 #endif
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;
1219 YYSTYPE *ace_yyvsp;
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
1228 action routines. */
1229 YYSTYPE ace_yyval;
1232 /* The number of symbols on the RHS of the reduced rule.
1233 Keep to zero when no symbol should be popped. */
1234 int ace_yylen = 0;
1236 YYDPRINTF ((stderr, "Starting parse\n"));
1238 ace_yystate = 0;
1239 ace_yyerrstatus = 0;
1240 ace_yynerrs = 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 `------------------------------------------------------------*/
1256 ace_yynewstate:
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. */
1259 ace_yyssp++;
1261 ace_yysetstate:
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
1273 memory. */
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),
1286 &ace_yystacksize);
1288 ace_yyss = ace_yyss1;
1289 ace_yyvs = ace_yyvs1;
1291 #else /* no ace_yyoverflow */
1292 # ifndef YYSTACK_RELOCATE
1293 goto ace_yyexhaustedlab;
1294 # else
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));
1306 if (! ace_yyptr)
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);
1315 # endif
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)
1326 YYABORT;
1329 YYDPRINTF ((stderr, "Entering state %d\n", ace_yystate));
1331 goto ace_yybackup;
1333 /*-----------.
1334 | ace_yybackup. |
1335 `-----------*/
1336 ace_yybackup:
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)
1344 goto ace_yydefault;
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: "));
1352 ace_yychar = YYLEX;
1355 if (ace_yychar <= YYEOF)
1357 ace_yychar = ace_yytoken = YYEOF;
1358 YYDPRINTF ((stderr, "Now at end of input.\n"));
1360 else
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)
1370 goto ace_yydefault;
1371 ace_yyn = ace_yytable[ace_yyn];
1372 if (ace_yyn <= 0)
1374 if (ace_yyn == 0 || ace_yyn == YYTABLE_NINF)
1375 goto ace_yyerrlab;
1376 ace_yyn = -ace_yyn;
1377 goto ace_yyreduce;
1380 if (ace_yyn == YYFINAL)
1381 YYACCEPT;
1383 /* Count tokens shifted since error; after three, turn off error
1384 status. */
1385 if (ace_yyerrstatus)
1386 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 `-----------------------------------------------------------*/
1404 ace_yydefault:
1405 ace_yyn = ace_yydefact[ace_yystate];
1406 if (ace_yyn == 0)
1407 goto ace_yyerrlab;
1408 goto ace_yyreduce;
1411 /*-----------------------------.
1412 | ace_yyreduce -- Do a reduction. |
1413 `-----------------------------*/
1414 ace_yyreduce:
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:
1419 `$$ = $1'.
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);
1430 switch (ace_yyn)
1432 case 2:
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 ();
1442 break;
1444 case 3:
1447 ACE_SVC_CONF_PARAM->obstack.release ();
1449 break;
1451 case 11:
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_));
1456 else
1457 (ace_yyval.parse_node_) = 0;
1459 break;
1461 case 12:
1464 (ace_yyval.parse_node_) = new ACE_Static_Node ((ace_yyvsp[(2) - (3)].ident_), (ace_yyvsp[(3) - (3)].ident_));
1466 break;
1468 case 13:
1471 (ace_yyval.parse_node_) = new ACE_Suspend_Node ((ace_yyvsp[(2) - (2)].ident_));
1473 break;
1475 case 14:
1478 (ace_yyval.parse_node_) = new ACE_Resume_Node ((ace_yyvsp[(2) - (2)].ident_));
1480 break;
1482 case 15:
1485 (ace_yyval.parse_node_) = new ACE_Remove_Node ((ace_yyvsp[(2) - (2)].ident_));
1487 break;
1489 case 16:
1492 (ace_yyval.parse_node_) = new ACE_Stream_Node ((ace_yyvsp[(2) - (3)].static_node_), (ace_yyvsp[(3) - (3)].parse_node_));
1494 break;
1496 case 17:
1498 { (ace_yyval.static_node_) = new ACE_Static_Node ((ace_yyvsp[(2) - (2)].ident_)); ;}
1499 break;
1501 case 18:
1504 (ace_yyval.parse_node_) = new ACE_Dummy_Node ((ace_yyvsp[(3) - (4)].static_node_), (ace_yyvsp[(4) - (4)].parse_node_));
1506 break;
1508 case 19:
1512 break;
1514 case 20:
1518 break;
1520 case 21:
1523 // Initialize left context...
1524 (ace_yyval.static_node_) = (ace_yyvsp[(0) - (1)].static_node_);
1526 break;
1528 case 22:
1531 ACE_UNUSED_ARG ((ace_yyvsp[(2) - (4)]));
1532 (ace_yyval.parse_node_) = (ace_yyvsp[(3) - (4)].parse_node_);
1534 break;
1536 case 23:
1538 { (ace_yyval.parse_node_) = 0; ;}
1539 break;
1541 case 24:
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_);
1550 break;
1552 case 25:
1554 { (ace_yyval.parse_node_) = 0; ;}
1555 break;
1557 case 26:
1561 break;
1563 case 27:
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++;
1578 break;
1580 case 28:
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),
1585 sn->name (),
1586 ACE_SVC_CONF_PARAM->yyerrno);
1587 if (mt != 0)
1588 mt->suspend ();
1590 break;
1592 case 29:
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);
1599 if (mt != 0)
1600 mt->resume ();
1602 break;
1604 case 30:
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),
1610 module->name (),
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"),
1619 module->name (),
1620 stream->name ()));
1621 ACE_SVC_CONF_PARAM->yyerrno++;
1624 break;
1626 case 31:
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_));
1631 break;
1633 case 32:
1636 (ace_yyval.type_) = 1;
1638 break;
1640 case 33:
1643 (ace_yyval.type_) = 0;
1645 break;
1647 case 34:
1650 (ace_yyval.type_) = 1;
1652 break;
1654 case 35:
1657 (ace_yyval.location_node_) = new ACE_Object_Node ((ace_yyvsp[(1) - (3)].ident_), (ace_yyvsp[(3) - (3)].ident_));
1659 break;
1661 case 36:
1664 (ace_yyval.location_node_) = new ACE_Function_Node ((ace_yyvsp[(1) - (5)].ident_), (ace_yyvsp[(3) - (5)].ident_));
1666 break;
1668 case 37:
1671 (ace_yyval.location_node_) = new ACE_Static_Function_Node ((ace_yyvsp[(2) - (4)].ident_));
1673 break;
1675 case 38:
1678 (ace_yyval.type_) = ACE_MODULE_T;
1680 break;
1682 case 39:
1685 (ace_yyval.type_) = ACE_SVC_OBJ_T;
1687 break;
1689 case 40:
1692 (ace_yyval.type_) = ACE_STREAM_T;
1694 break;
1696 case 42:
1698 { (ace_yyval.ident_) = 0; ;}
1699 break;
1702 /* Line 1267 of yacc.c. */
1704 default: break;
1706 YY_SYMBOL_PRINT ("-> $$ =", ace_yyr1[ace_yyn], &ace_yyval, &ace_yyloc);
1708 YYPOPSTACK (ace_yylen);
1709 ace_yylen = 0;
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];
1724 else
1725 ace_yystate = ace_yydefgoto[ace_yyn - YYNTOKENS];
1727 goto ace_yynewstate;
1730 /*------------------------------------.
1731 | ace_yyerrlab -- here on detecting error |
1732 `------------------------------------*/
1733 ace_yyerrlab:
1734 /* If not already recovering from an error, report this error. */
1735 if (!ace_yyerrstatus)
1737 ++ace_yynerrs;
1738 #if ! YYERROR_VERBOSE
1739 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_("syntax error"));
1740 #else
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);
1751 if (ace_yymsg)
1752 ace_yymsg_alloc = ace_yyalloc;
1753 else
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);
1765 else
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;
1772 #endif
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)
1786 YYABORT;
1788 else
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
1797 token. */
1798 goto ace_yyerrlab1;
1801 /*---------------------------------------------------.
1802 | ace_yyerrorlab -- error raised explicitly by YYERROR. |
1803 `---------------------------------------------------*/
1804 ace_yyerrorlab:
1806 /* Pacify compilers like GCC when the user code never invokes
1807 YYERROR and the label ace_yyerrorlab therefore never appears in user
1808 code. */
1809 if (/*CONSTCOND*/ 0)
1810 goto ace_yyerrorlab;
1812 /* Do not reclaim the symbols of the rule which action triggered
1813 this YYERROR. */
1814 YYPOPSTACK (ace_yylen);
1815 ace_yylen = 0;
1816 YY_STACK_PRINT (ace_yyss, ace_yyssp);
1817 ace_yystate = *ace_yyssp;
1818 goto ace_yyerrlab1;
1821 /*-------------------------------------------------------------.
1822 | ace_yyerrlab1 -- common code for both syntax error and YYERROR. |
1823 `-------------------------------------------------------------*/
1824 ace_yyerrlab1:
1825 ace_yyerrstatus = 3; /* Each real token shifted decrements this. */
1827 for (;;)
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];
1836 if (0 < ace_yyn)
1837 break;
1841 /* Pop the current state because it cannot handle the error token. */
1842 if (ace_yyssp == ace_yyss)
1843 YYABORT;
1846 ace_yydestruct ("Error: popping",
1847 ace_yystos[ace_yystate], ace_yyvsp);
1848 YYPOPSTACK (1);
1849 ace_yystate = *ace_yyssp;
1850 YY_STACK_PRINT (ace_yyss, ace_yyssp);
1853 if (ace_yyn == YYFINAL)
1854 YYACCEPT;
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 `-------------------------------------*/
1869 ace_yyacceptlab:
1870 ace_yyresult = 0;
1871 goto ace_yyreturn;
1873 /*-----------------------------------.
1874 | ace_yyabortlab -- YYABORT comes here. |
1875 `-----------------------------------*/
1876 ace_yyabortlab:
1877 ace_yyresult = 1;
1878 goto ace_yyreturn;
1880 #ifndef ace_yyoverflow
1881 /*-------------------------------------------------.
1882 | ace_yyexhaustedlab -- memory exhaustion comes here. |
1883 `-------------------------------------------------*/
1884 ace_yyexhaustedlab:
1885 ace_yyerror (ACE_SVC_CONF_PARAM->yyerrno, ACE_SVC_CONF_PARAM->yylineno, YY_("memory exhausted"));
1886 ace_yyresult = 2;
1887 /* Fall through. */
1888 #endif
1890 ace_yyreturn:
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);
1902 YYPOPSTACK (1);
1904 #if defined ace_yyoverflow && !defined ACE_LACKS_FREE
1905 if (ace_yyss != ace_yyssa)
1906 YYSTACK_FREE (ace_yyss);
1907 #endif
1908 #if YYERROR_VERBOSE
1909 if (ace_yymsg != ace_yymsgbuf)
1910 YYSTACK_FREE (ace_yymsg);
1911 #endif
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
1923 // messages.
1925 void
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);
1931 ACE_UNUSED_ARG (s);
1932 #endif /* ACE_NLOGGING */
1934 ACELIB_ERROR ((LM_ERROR,
1935 ACE_TEXT ("ACE (%P|%t) [error %d] on line %d: %C\n"),
1936 ace_yyerrno,
1937 ace_yylineno,
1938 s));
1941 void
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 *
1948 // record.
1950 static ACE_Module_Type *
1951 ace_get_module (ACE_Service_Type const * sr,
1952 ACE_TCHAR const * svc_name,
1953 int & ace_yyerrno)
1955 ACE_Stream_Type const * const st =
1956 (sr == 0
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"),
1966 svc_name,
1967 (sr ? sr->name () : ACE_TEXT ("(nil)"))));
1968 ++ace_yyerrno;
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 (&param);
1988 #endif /* SVC_CONF_Y_DEBUGGING */
1990 ACE_END_VERSIONED_NAMESPACE_DECL
1992 #endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */