summaryrefslogtreecommitdiff
path: root/ace/Svc_Conf_y.cpp
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1996-10-21 21:41:34 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1996-10-21 21:41:34 +0000
commita5fdebc5f6375078ec1763850a4ca23ec7fe6458 (patch)
treebcf0a25c3d45a209a6e3ac37b233a4812f29c732 /ace/Svc_Conf_y.cpp
downloadATCD-a5fdebc5f6375078ec1763850a4ca23ec7fe6458.tar.gz
Initial revision
Diffstat (limited to 'ace/Svc_Conf_y.cpp')
-rw-r--r--ace/Svc_Conf_y.cpp923
1 files changed, 923 insertions, 0 deletions
diff --git a/ace/Svc_Conf_y.cpp b/ace/Svc_Conf_y.cpp
new file mode 100644
index 00000000000..b094b72247d
--- /dev/null
+++ b/ace/Svc_Conf_y.cpp
@@ -0,0 +1,923 @@
+#ifndef lint
+// @(#)Svc_Conf_y.cpp 1.1 10/18/96
+
+char ace_yysccsid[] = "@(#)yaccpar 1.4 (Berkeley) 02/25/90 \n\
+ Modified 5/2/90 by J. Roskind to support graphic debugging modes";
+#endif
+#line 2 "Svc_Conf.y"
+#define ACE_BUILD_DLL
+#include "ace/ARGV.h"
+#include "ace/Svc_Conf.h"
+#include "ace/Module.h"
+#include "ace/Stream.h"
+
+static ACE_Module_Type *get_module (ACE_Static_Node *str_rec, ACE_Static_Node *svc_type);
+static ACE_Module_Type *get_module (ACE_Static_Node *str_rec, const char *svc_name);
+
+#define YYDEBUG_LEXER_TEXT (ace_yytext[ace_yyleng] = '\0', ace_yytext)
+/* Force the pretty debugging code to compile.*/
+#define YYDEBUG 1
+
+/* Efficient memory allocation technique.*/
+ACE_Obstack *ace_obstack;
+
+#line 23 "y.tab.c"
+#define ACE_DYNAMIC 257
+#define ACE_STATIC 258
+#define ACE_SUSPEND 259
+#define ACE_RESUME 260
+#define ACE_REMOVE 261
+#define ACE_USTREAM 262
+#define ACE_MODULE_T 263
+#define ACE_STREAM_T 264
+#define ACE_SVC_OBJ_T 265
+#define ACE_ACTIVE 266
+#define ACE_INACTIVE 267
+#define ACE_PATHNAME 268
+#define ACE_IDENT 269
+#define ACE_STRING 270
+#define ACE_LPAREN 271
+#define ACE_RPAREN 272
+#define ACE_LBRACE 273
+#define ACE_RBRACE 274
+#define ACE_STAR 275
+#define ACE_COLON 276
+#define YYERRCODE 256
+short ace_yylhs[] = { -1,
+ 0, 0, 0, 13, 13, 13, 13, 13, 13, 4,
+ 5, 6, 7, 8, 10, 17, 10, 14, 14, 18,
+ 11, 11, 9, 9, 12, 12, 12, 12, 12, 15,
+ 3, 3, 3, 16, 16, 2, 2, 2, 1, 1,
+};
+short ace_yylen[] = { 2,
+ 2, 2, 0, 1, 1, 1, 1, 1, 1, 3,
+ 3, 2, 2, 2, 3, 0, 4, 1, 1, 0,
+ 4, 0, 2, 0, 1, 1, 1, 1, 1, 4,
+ 1, 1, 0, 3, 5, 2, 2, 2, 1, 0,
+};
+short ace_yydefred[] = { 3,
+ 0, 2, 0, 0, 0, 0, 0, 0, 4, 5,
+ 6, 7, 8, 9, 1, 0, 0, 0, 12, 13,
+ 14, 16, 18, 19, 0, 0, 0, 0, 0, 39,
+ 10, 11, 0, 20, 15, 36, 38, 37, 0, 0,
+ 17, 24, 0, 31, 32, 30, 0, 0, 21, 25,
+ 26, 27, 28, 29, 23, 0, 35,
+};
+short ace_yydgoto[] = { 1,
+ 31, 29, 46, 9, 10, 11, 12, 13, 47, 14,
+ 35, 55, 15, 25, 17, 40, 33, 42,
+};
+short ace_yysindex[] = { 0,
+ -244, 0, -266, -260, -250, -243, -239, -247, 0, 0,
+ 0, 0, 0, 0, 0, -240, -237, -237, 0, 0,
+ 0, 0, 0, 0, -242, -241, -235, -233, -236, 0,
+ 0, 0, -242, 0, 0, 0, 0, 0, -232, -238,
+ 0, 0, -234, 0, 0, 0, -253, -228, 0, 0,
+ 0, 0, 0, 0, 0, -227, 0,
+};
+short ace_yyrindex[] = { 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 27, 27, 0, 0,
+ 0, 0, 0, 0, 46, 0, 0, 0, 0, 0,
+ 0, 0, 46, 0, 0, 0, 0, 0, 0, 20,
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0,
+};
+short ace_yygindex[] = { 0,
+ 18, 0, 0, -8, -6, -10, -9, 2, 0, 0,
+ 14, 0, 0, 0, 0, 0, 0, 0,
+};
+#define YYTABLESIZE 308
+short ace_yytable[] = { 23,
+ 34, 24, 16, 3, 4, 5, 6, 7, 18, 3,
+ 4, 2, 3, 4, 5, 6, 7, 8, 19, 33,
+ 49, 22, 26, 27, 28, 20, 40, 44, 45, 21,
+ 34, 39, 30, 36, 48, 32, 52, 53, 50, 37,
+ 51, 38, 56, 43, 57, 22, 41, 0, 54, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 34, 34, 34, 34,
+ 34, 34, 34, 0, 0, 0, 34, 34, 0, 0,
+ 34, 0, 0, 34, 34, 33, 33, 33, 33, 33,
+ 33, 33, 40, 40, 40, 40, 40, 40, 40, 33,
+ 0, 0, 33, 33, 0, 0, 0, 0, 0, 40,
+ 40, 22, 22, 22, 22, 22, 22, 22,
+};
+short ace_yycheck[] = { 8,
+ 0, 8, 269, 257, 258, 259, 260, 261, 269, 257,
+ 258, 256, 257, 258, 259, 260, 261, 262, 269, 0,
+ 274, 269, 263, 264, 265, 269, 0, 266, 267, 269,
+ 273, 268, 270, 275, 269, 18, 47, 47, 47, 275,
+ 47, 275, 271, 276, 272, 0, 33, -1, 47, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
+ 260, 261, 262, -1, -1, -1, 266, 267, -1, -1,
+ 270, -1, -1, 273, 274, 256, 257, 258, 259, 260,
+ 261, 262, 256, 257, 258, 259, 260, 261, 262, 270,
+ -1, -1, 273, 274, -1, -1, -1, -1, -1, 273,
+ 274, 256, 257, 258, 259, 260, 261, 262,
+};
+#define YYFINAL 1
+#ifndef YYDEBUG
+#define YYDEBUG 0
+#endif
+#define YYMAXTOKEN 276
+#if YYDEBUG
+char *ace_yyname[] = {
+"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"ACE_DYNAMIC","ACE_STATIC",
+"ACE_SUSPEND","ACE_RESUME","ACE_REMOVE","ACE_USTREAM","ACE_MODULE_T",
+"ACE_STREAM_T","ACE_SVC_OBJ_T","ACE_ACTIVE","ACE_INACTIVE","ACE_PATHNAME",
+"ACE_IDENT","ACE_STRING","ACE_LPAREN","ACE_RPAREN","ACE_LBRACE","ACE_RBRACE",
+"ACE_STAR","ACE_COLON",
+};
+char *ace_yyrule[] = {
+"$accept : svc_config_entries",
+"svc_config_entries : svc_config_entries svc_config_entry",
+"svc_config_entries : svc_config_entries error",
+"svc_config_entries :",
+"svc_config_entry : dynamic",
+"svc_config_entry : static",
+"svc_config_entry : suspend",
+"svc_config_entry : resume",
+"svc_config_entry : remove",
+"svc_config_entry : stream",
+"dynamic : ACE_DYNAMIC svc_location parameters_opt",
+"static : ACE_STATIC ACE_IDENT parameters_opt",
+"suspend : ACE_SUSPEND ACE_IDENT",
+"resume : ACE_RESUME ACE_IDENT",
+"remove : ACE_REMOVE ACE_IDENT",
+"stream : ACE_USTREAM stream_ops stream_modules",
+"$$1 :",
+"stream : ACE_USTREAM ACE_IDENT $$1 stream_modules",
+"stream_ops : dynamic",
+"stream_ops : static",
+"$$2 :",
+"stream_modules : ACE_LBRACE $$2 module_list ACE_RBRACE",
+"stream_modules :",
+"module_list : module_list module",
+"module_list :",
+"module : dynamic",
+"module : static",
+"module : suspend",
+"module : resume",
+"module : remove",
+"svc_location : ACE_IDENT type svc_initializer status",
+"status : ACE_ACTIVE",
+"status : ACE_INACTIVE",
+"status :",
+"svc_initializer : ACE_PATHNAME ACE_COLON ACE_IDENT",
+"svc_initializer : ACE_PATHNAME ACE_COLON ACE_IDENT ACE_LPAREN ACE_RPAREN",
+"type : ACE_MODULE_T ACE_STAR",
+"type : ACE_SVC_OBJ_T ACE_STAR",
+"type : ACE_STREAM_T ACE_STAR",
+"parameters_opt : ACE_STRING",
+"parameters_opt :",
+};
+#endif
+#define ace_yyclearin (ace_yychar=(-1))
+#define ace_yyerrok (ace_yyerrflag=0)
+#ifndef YYSTACKSIZE
+#ifdef YYMAXDEPTH
+#define YYSTACKSIZE YYMAXDEPTH
+#else
+#define YYSTACKSIZE 300
+#endif
+#endif
+int ace_yydebug;
+int ace_yynerrs;
+int ace_yyerrflag;
+int ace_yychar;
+short *ace_yyssp;
+YYSTYPE *ace_yyvsp;
+YYSTYPE ace_yyval;
+YYSTYPE ace_yylval;
+#define ace_yystacksize YYSTACKSIZE
+short ace_yyss[YYSTACKSIZE];
+YYSTYPE ace_yyvs[YYSTACKSIZE];
+#line 241 "Svc_Conf.y"
+// Prints the error string to standard output. Cleans up the error
+// messages.
+
+void
+ace_yyerror (char *s)
+{
+ ACE_ERROR ((LM_ERROR, "[error %d] on line %d: %s\n",
+ ++ace_yyerrno, ace_yylineno, s));
+}
+
+// Note that SRC_REC represents left context, which is the STREAM *
+// record.
+
+static ACE_Module_Type *
+get_module (ACE_Static_Node *str_rec, const char *svc_name)
+{
+ const ACE_Service_Record *sr = str_rec->record ();
+ const ACE_Service_Type *type = sr->type ();
+ ACE_Stream_Type *st = sr == 0 ? 0 : (ACE_Stream_Type *) type;
+ ACE_Module_Type *mt = st == 0 ? 0 : st->find (svc_name);
+
+ if (sr == 0 || st == 0 || mt == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "cannot locate Module_Type %s in STREAM_Type %s\n",
+ svc_name, str_rec->name ()));
+ ace_yyerrno++;
+ }
+ return mt;
+}
+
+static ACE_Module_Type *
+get_module (ACE_Static_Node *str_rec, ACE_Static_Node *svc_type)
+{
+ const ACE_Service_Record *sr = str_rec->record ();
+ const ACE_Service_Type *type = sr->type ();
+ ACE_Stream_Type *st = sr == 0 ? 0 : (ACE_Stream_Type *) type;
+ const ACE_Service_Record *sv = svc_type->record ();
+ type = sv->type ();
+ ACE_Module_Type *mt = (ACE_Module_Type *) type;
+
+ if (sr == 0 || st == 0 || mt == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "cannot locate Module_Type %s or STREAM_Type %s\n",
+ svc_type->name (), str_rec->name ()));
+ ace_yyerrno++;
+ }
+ return mt;
+}
+
+ACE_Service_Type *
+ace_create_service_type (const char *name,
+ int type,
+ const void *symbol,
+ unsigned int flags)
+{
+ ACE_Service_Type *stp = 0;
+
+ // Note, the only place we need to put a case statement. This is
+ // also the place where we'd put the RTTI tests, if the compiler
+ // actually supported them!
+
+ switch (type)
+ {
+ case ACE_SVC_OBJ_T:
+ stp = new ACE_Service_Object_Type ((ACE_Service_Object *) symbol, name, flags);
+ break;
+ case ACE_MODULE_T:
+ stp = new ACE_Module_Type ((MT_Module *) symbol, name, flags);
+ break;
+ case ACE_STREAM_T:
+ stp = new ACE_Stream_Type ((MT_Stream *) symbol, name, flags);
+ break;
+ default:
+ ACE_ERROR ((LM_ERROR, "unknown case\n"));
+ ace_yyerrno++;
+ break;
+ }
+ return stp;
+}
+
+#if defined (DEBUGGING)
+// Current line number.
+int ace_yylineno = 1;
+
+// Name given on the command-line to envoke the program.
+char *program_name;
+
+// Main driver program.
+
+int
+main (int argc, char *argv[])
+{
+ ace_yyin = stdin;
+ ace_obstack = new ACE_Obstack;
+
+ // Try to reopen any filename argument to use YYIN.
+ if (argc > 1 && (ace_yyin = freopen (argv[1], "r", stdin)) == 0)
+ (void) ::fprintf (stderr, "usage: %s [file]\n", argv[0]), exit (1);
+
+ return ace_yyparse ();
+}
+#endif /* DEBUGGING */
+#line 342 "y.tab.c"
+#define YYABORT goto ace_yyabort
+#define YYACCEPT goto ace_yyaccept
+#define YYERROR goto ace_yyerrlab
+#ifdef YYDEBUG
+#ifndef YYDEBUG_LEXER_TEXT /* pointer to the text isolated by the lexer*/
+#define YYDEBUG_LEXER_TEXT "YYDEBUG_LEXER_TEXT not defined"
+#endif
+#ifndef YYDEBUG_INDENT_STRING
+#define YYDEBUG_INDENT_STRING "| "
+#endif
+#ifndef YYDEBUG_REDUCE_STRING
+#define YYDEBUG_REDUCE_STRING "+-------"
+#endif
+#ifndef YYDEBUG_INDENT
+#ifdef __cplusplus
+void YYDEBUG_INDENT(int ace_yyindent)
+#else
+YYDEBUG_INDENT(ace_yyindent)
+int ace_yyindent;
+#endif
+{
+ while(ace_yyindent-- > 0)
+ printf("%s", YYDEBUG_INDENT_STRING);
+}
+#endif /* YYDEBUG_INDENT */
+#ifndef YYDEBUG_REDUCE
+#ifdef __cplusplus
+void YYDEBUG_REDUCE(int ace_yynew_state, int ace_yyrule_num, char *ace_yyrule_string, int ace_yynew_indent, int ace_yyrhs_count)
+#else
+YYDEBUG_REDUCE(ace_yynew_state, ace_yyrule_num, ace_yyrule_string, ace_yynew_indent, ace_yyrhs_count)
+int ace_yynew_state;
+int ace_yyrule_num;
+char * ace_yyrule_string;
+int ace_yynew_indent;
+int ace_yyrhs_count;
+#endif
+{
+ if (1 < ace_yyrhs_count)
+ { /* draw the graphics for the reduction */
+ YYDEBUG_INDENT(ace_yynew_indent);
+ while(1 < ace_yyrhs_count--)
+ printf("%s", YYDEBUG_REDUCE_STRING);
+ putchar('+'); /* left rotated L would look nice */
+ putchar('\n');
+ YYDEBUG_INDENT(ace_yynew_indent);
+ putchar('|'); /* down arrow would look nice */
+ putchar('\n');
+ }
+ YYDEBUG_INDENT(ace_yynew_indent);
+ /* Only print the resulting token name */
+ while (*ace_yyrule_string)
+ putchar(*ace_yyrule_string++);
+ putchar('\n');
+}
+#endif /* YYDEBUG_REDUCE */
+#ifndef YYDEBUG_SHIFT_LEXEME
+#ifdef __cplusplus
+void YYDEBUG_SHIFT_LEXEME(int ace_yyold_state, int ace_yynew_state, char *ace_yytoken_string, int ace_yynew_indent)
+#else
+YYDEBUG_SHIFT_LEXEME(ace_yyold_state, ace_yynew_state, ace_yytoken_string, ace_yynew_indent)
+int ace_yyold_state;
+int ace_yynew_state;
+char * ace_yytoken_string;
+int ace_yynew_indent;
+#endif
+{
+ YYDEBUG_INDENT(ace_yynew_indent);
+ printf("%s <-- `%s'\n", ace_yytoken_string, YYDEBUG_LEXER_TEXT);
+}
+#endif /* YYDEBUG_SHIFT_LEXEME */
+#ifndef YYDEBUG_LOOK_AHEAD
+#ifdef __cplusplus
+void YYDEBUG_LOOK_AHEAD(int ace_yynew_state, int ace_yytoken_num, char *ace_yytoken_string, int ace_yyindent)
+#else
+YYDEBUG_LOOK_AHEAD(ace_yynew_state, ace_yytoken_num, ace_yytoken_string, ace_yyindent)
+int ace_yynew_state;
+int ace_yytoken_num;
+char * ace_yytoken_string;
+int ace_yyindent;
+#endif
+{
+ YYDEBUG_INDENT(ace_yyindent);
+ printf(" .... look ahead at %s `%s'\n",
+ ace_yytoken_string,
+ (0 == ace_yytoken_num)? "\0": YYDEBUG_LEXER_TEXT);
+}
+#endif /* YYDEBUG_LOOK_AHEAD */
+#ifndef YYDEBUG_DISCARD_STATE
+#ifdef __cplusplus
+void YYDEBUG_DISCARD_STATE(int ace_yynew_state, int ace_yyindent)
+#else
+YYDEBUG_DISCARD_STATE(ace_yynew_state, ace_yyindent)
+int ace_yynew_state;
+int ace_yyindent;
+#endif
+{
+ if (0 < ace_yyindent)
+ { /* draw the graphics for the reduction */
+ YYDEBUG_INDENT(ace_yyindent-1);
+ printf("%s", YYDEBUG_REDUCE_STRING);
+ putchar('+'); /* left rotated L would look nice */
+ printf(" discarding state\n");
+ YYDEBUG_INDENT(ace_yyindent-1);
+ putchar('|'); /* down arrow would look nice */
+ putchar('\n');
+ }
+ else
+ {
+ if (0 == ace_yyindent)
+ printf("discarding state\n");
+ else
+ printf("no more states to discard: parser will abort\n");
+ }
+}
+#endif /* YYDEBUG_DISCARD_STATE */
+#ifndef YYDEBUG_DISCARD_TOKEN
+#ifdef __cplusplus
+void YYDEBUG_DISCARD_TOKEN(int ace_yynew_state, int ace_yytoken_num, char *ace_yytoken_string, int ace_yyindent)
+#else
+YYDEBUG_DISCARD_TOKEN(ace_yynew_state, ace_yytoken_num, ace_yytoken_string, ace_yyindent)
+int ace_yynew_state;
+int ace_yytoken_num;
+char * ace_yytoken_string;
+int ace_yyindent;
+#endif
+{
+ YYDEBUG_INDENT(ace_yyindent);
+ printf("discarding token %s\n", ace_yytoken_string);
+}
+#endif /* YYDEBUG_DISCARD_TOKEN */
+#ifndef YYDEBUG_SHIFT_ERROR_LEXEME
+#ifdef __cplusplus
+void YYDEBUG_SHIFT_ERROR_LEXEME(int ace_yyold_state, int ace_yynew_state, int ace_yyindent)
+#else
+YYDEBUG_SHIFT_ERROR_LEXEME(ace_yyold_state, ace_yynew_state, ace_yyindent)
+int ace_yyold_state;
+int ace_yynew_state;
+int ace_yyindent;
+#endif
+{
+ YYDEBUG_INDENT(ace_yyindent);
+ printf("error\n");
+}
+#endif /* YYDEBUG_SHIFT_ERROR_LEXEME */
+#endif /* YYDEBUG */
+#ifdef __cplusplus
+extern "C" { extern char *getenv(const char *); }
+#endif
+int
+ace_yyparse()
+{
+ register int ace_yym, ace_yyn, ace_yystate;
+#if YYDEBUG
+ register char *ace_yys;
+#ifndef __cplusplus
+ extern char *getenv();
+#endif
+
+ if (ace_yys = ACE_OS::getenv("YYDEBUG"))
+ {
+ ace_yyn = *ace_yys;
+ if (ace_yyn >= '0' && ace_yyn <= '9')
+ ace_yydebug = ace_yyn - '0';
+ }
+#endif
+
+ ace_yynerrs = 0;
+ ace_yyerrflag = 0;
+ ace_yychar = (-1);
+
+ ace_yyssp = ace_yyss;
+ ace_yyvsp = ace_yyvs;
+ *ace_yyssp = ace_yystate = 0;
+
+ace_yyloop:
+ if (ace_yyn = ace_yydefred[ace_yystate]) goto ace_yyreduce;
+ if (ace_yychar < 0)
+ {
+ if ((ace_yychar = ace_yylex()) < 0) ace_yychar = 0;
+#if YYDEBUG
+ if (ace_yydebug)
+ {
+ ace_yys = 0;
+ if (ace_yychar <= YYMAXTOKEN) ace_yys = ace_yyname[ace_yychar];
+ if (!ace_yys) ace_yys = "illegal-symbol";
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: state %d, reading %d (%s)\n", ace_yystate,
+ ace_yychar, ace_yys);
+ else
+ YYDEBUG_LOOK_AHEAD(ace_yystate, ace_yychar, ace_yys, ace_yyssp-ace_yyss);
+ }
+#endif
+ }
+ if ((ace_yyn = ace_yysindex[ace_yystate]) && (ace_yyn += ace_yychar) >= 0 &&
+ ace_yyn <= YYTABLESIZE && ace_yycheck[ace_yyn] == ace_yychar)
+ {
+#if YYDEBUG
+ if (ace_yydebug)
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: state %d, shifting to state %d\n",
+ ace_yystate, ace_yytable[ace_yyn]);
+ else
+ YYDEBUG_SHIFT_LEXEME(ace_yystate, ace_yytable[ace_yyn], ace_yys, ace_yyssp-ace_yyss);
+#endif
+ if (ace_yyssp >= ace_yyss + ace_yystacksize - 1)
+ {
+ goto ace_yyoverflow;
+ }
+ *++ace_yyssp = ace_yystate = ace_yytable[ace_yyn];
+ *++ace_yyvsp = ace_yylval;
+ ace_yychar = (-1);
+ if (ace_yyerrflag > 0) --ace_yyerrflag;
+ goto ace_yyloop;
+ }
+ if ((ace_yyn = ace_yyrindex[ace_yystate]) && (ace_yyn += ace_yychar) >= 0 &&
+ ace_yyn <= YYTABLESIZE && ace_yycheck[ace_yyn] == ace_yychar)
+ {
+ ace_yyn = ace_yytable[ace_yyn];
+ goto ace_yyreduce;
+ }
+ if (ace_yyerrflag) goto ace_yyinrecovery;
+#ifdef lint
+ goto ace_yynewerror;
+#endif
+
+ ace_yyerror("syntax error");
+#ifdef lint
+ goto ace_yyerrlab;
+#endif
+
+ ++ace_yynerrs;
+ace_yyinrecovery:
+ if (ace_yyerrflag < 3)
+ {
+ ace_yyerrflag = 3;
+ for (;;)
+ {
+ if ((ace_yyn = ace_yysindex[*ace_yyssp]) && (ace_yyn += YYERRCODE) >= 0 &&
+ ace_yyn <= YYTABLESIZE && ace_yycheck[ace_yyn] == YYERRCODE)
+ {
+#if YYDEBUG
+ if (ace_yydebug)
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: state %d, error recovery shifting\
+ to state %d\n", *ace_yyssp, ace_yytable[ace_yyn]);
+ else
+ YYDEBUG_SHIFT_ERROR_LEXEME(*ace_yyssp, ace_yytable[ace_yyn], ace_yyssp-ace_yyss);
+#endif
+ if (ace_yyssp >= ace_yyss + ace_yystacksize - 1)
+ {
+ goto ace_yyoverflow;
+ }
+ *++ace_yyssp = ace_yystate = ace_yytable[ace_yyn];
+ *++ace_yyvsp = ace_yylval;
+ goto ace_yyloop;
+ }
+ else
+ {
+#if YYDEBUG
+ if (ace_yydebug)
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: error recovery discarding state %d\
+",
+ *ace_yyssp);
+ else
+ YYDEBUG_DISCARD_STATE(*ace_yyssp, ace_yyssp-ace_yyss-1);
+#endif
+ if (ace_yyssp <= ace_yyss) goto ace_yyabort;
+ --ace_yyssp;
+ --ace_yyvsp;
+ }
+ }
+ }
+ else
+ {
+ if (ace_yychar == 0) goto ace_yyabort;
+#if YYDEBUG
+ if (ace_yydebug)
+ {
+ ace_yys = 0;
+ if (ace_yychar <= YYMAXTOKEN) ace_yys = ace_yyname[ace_yychar];
+ if (!ace_yys) ace_yys = "illegal-symbol";
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: state %d, error recovery discards token %d (%s)\n",
+ ace_yystate, ace_yychar, ace_yys);
+ else
+ YYDEBUG_DISCARD_TOKEN(ace_yystate, ace_yychar, ace_yys, ace_yyssp-ace_yyss);
+ }
+#endif
+ ace_yychar = (-1);
+ goto ace_yyloop;
+ }
+ace_yyreduce:
+ ace_yym = ace_yylen[ace_yyn];
+ ace_yyval = ace_yyvsp[1-ace_yym];
+#if YYDEBUG
+ if (ace_yydebug)
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: state %d, reducing by rule %d (%s)\n",
+ ace_yystate, ace_yyn, ace_yyrule[ace_yyn]);
+ else
+ YYDEBUG_REDUCE(ace_yystate, ace_yyn, ace_yyrule[ace_yyn], ace_yyssp-ace_yyss-ace_yym, ace_yym);
+#endif
+ switch (ace_yyn)
+ {
+case 1:
+#line 38 "Svc_Conf.y"
+{
+ ace_yyvsp[0].parse_node_->apply (); delete ace_yyvsp[0].parse_node_; ace_obstack->release ();
+ }
+break;
+case 2:
+#line 42 "Svc_Conf.y"
+{
+ ace_obstack->release ();
+ }
+break;
+case 10:
+#line 59 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Dynamic_Node (ace_yyvsp[-1].svc_record_, ace_yyvsp[0].ident_);
+ }
+break;
+case 11:
+#line 66 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Static_Node (ace_yyvsp[-1].ident_, ace_yyvsp[0].ident_);
+ }
+break;
+case 12:
+#line 73 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Suspend_Node (ace_yyvsp[0].ident_);
+ }
+break;
+case 13:
+#line 80 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Resume_Node (ace_yyvsp[0].ident_);
+ }
+break;
+case 14:
+#line 87 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Remove_Node (ace_yyvsp[0].ident_);
+ }
+break;
+case 15:
+#line 94 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Stream_Node (ace_yyvsp[-1].ACE_Static_Node_, ace_yyvsp[0].parse_node_);
+ }
+break;
+case 16:
+#line 97 "Svc_Conf.y"
+{ ace_yyval.ACE_Static_Node_ = new ACE_Static_Node (ace_yyvsp[0].ident_); }
+break;
+case 17:
+#line 98 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = new ACE_Dummy_Node (ace_yyvsp[-1].ACE_Static_Node_, ace_yyvsp[0].parse_node_);
+ }
+break;
+case 18:
+#line 105 "Svc_Conf.y"
+{
+ }
+break;
+case 19:
+#line 108 "Svc_Conf.y"
+{
+ }
+break;
+case 20:
+#line 114 "Svc_Conf.y"
+{
+ /* Initialize left context...*/
+ ace_yyval.ACE_Static_Node_ = ace_yyvsp[-1].ACE_Static_Node_;
+ }
+break;
+case 21:
+#line 119 "Svc_Conf.y"
+{
+ ace_yyval.parse_node_ = ace_yyvsp[-1].parse_node_;
+ }
+break;
+case 22:
+#line 122 "Svc_Conf.y"
+{ ace_yyval.parse_node_ = 0; }
+break;
+case 23:
+#line 126 "Svc_Conf.y"
+{ ace_yyvsp[0].parse_node_->link (ace_yyvsp[-1].parse_node_); ace_yyval.parse_node_ = ace_yyvsp[0].parse_node_; }
+break;
+case 24:
+#line 127 "Svc_Conf.y"
+{ ace_yyval.parse_node_ = 0; }
+break;
+case 25:
+#line 132 "Svc_Conf.y"
+{
+ ACE_ARGV args (ace_yyvsp[0].ACE_Static_Node_->parameters ());
+ ACE_Module_Type *mt = get_module (ace_yyvsp[-2].ACE_Static_Node_, ace_yyvsp[0].ACE_Static_Node_);
+
+ if (::strcmp (ace_yyvsp[0].ACE_Static_Node_->name (),
+ ((MT_Module *) mt->object ())->name ()) != 0)
+ ACE_ERROR ((LM_ERROR, "warning, service name %s is different from Module name %s\n",
+ ace_yyvsp[0].ACE_Static_Node_->name (), ((MT_Module *) mt->object ())->name ()));
+
+ if (mt->init (args.argc (), args.argv ()) == -1
+ || ((ACE_Stream_Type *) (ace_yyvsp[-2].ACE_Static_Node_)->record ()->type ())->push (mt) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "dynamic initialization failed for Module %s\n",
+ ace_yyvsp[0].ACE_Static_Node_->name ()));
+ ace_yyerrno++;
+ }
+ }
+break;
+case 26:
+#line 150 "Svc_Conf.y"
+{
+ ACE_Module_Type *mt = get_module (ace_yyvsp[-2].ACE_Static_Node_, ace_yyvsp[0].ACE_Static_Node_->name ());
+ if (::strcmp (ace_yyvsp[0].ACE_Static_Node_->name (),
+ ((MT_Module *) mt->object ())->name ()) != 0)
+ ACE_ERROR ((LM_ERROR, "warning, service name %s is different from Module name %s\n",
+ ace_yyvsp[0].ACE_Static_Node_->name (), ((MT_Module *) mt->object ())->name ()));
+ if (((ACE_Stream_Type *) (ace_yyvsp[-2].ACE_Static_Node_)->record ()->type ())->push (mt) == -1)
+ ace_yyerrno++;
+ }
+break;
+case 27:
+#line 160 "Svc_Conf.y"
+{
+ ACE_Module_Type *mt = get_module (ace_yyvsp[-2].ACE_Static_Node_, ace_yyvsp[0].ACE_Static_Node_->name ());
+ if (mt != 0)
+ mt->suspend ();
+ }
+break;
+case 28:
+#line 166 "Svc_Conf.y"
+{
+ ACE_Module_Type *mt = get_module (ace_yyvsp[-2].ACE_Static_Node_, ace_yyvsp[0].ACE_Static_Node_->name ());
+ if (mt != 0)
+ mt->resume ();
+ }
+break;
+case 29:
+#line 172 "Svc_Conf.y"
+{
+ ACE_Module_Type *mt = get_module (ace_yyvsp[-2].ACE_Static_Node_, ace_yyvsp[0].ACE_Static_Node_->name ());
+ if (mt != 0
+ && ((ACE_Stream_Type *) (ace_yyvsp[-2].ACE_Static_Node_)->record ()->type ())->remove (mt) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "cannot remove Module_Type %s from STREAM_Type %s\n",
+ ace_yyvsp[0].ACE_Static_Node_->name (), (ace_yyvsp[-2].ACE_Static_Node_)->name ()));
+ ace_yyerrno++;
+ }
+ }
+break;
+case 30:
+#line 186 "Svc_Conf.y"
+{
+ unsigned int flags
+ = ACE_Service_Type::DELETE_THIS | (ace_yyvsp[-1].location_node_->dispose () == 0 ? 0 : ACE_Service_Type::DELETE_OBJ);
+ ACE_Service_Type *stp = ace_create_service_type (ace_yyvsp[-3].ident_, ace_yyvsp[-2].type_, ace_yyvsp[-1].location_node_->symbol (), flags);
+ ace_yyval.svc_record_ = new ACE_Service_Record (ace_yyvsp[-3].ident_, stp, ace_yyvsp[-1].location_node_->handle (), ace_yyvsp[0].type_);
+ }
+break;
+case 31:
+#line 196 "Svc_Conf.y"
+{
+ ace_yyval.type_ = 1;
+ }
+break;
+case 32:
+#line 200 "Svc_Conf.y"
+{
+ ace_yyval.type_ = 0;
+ }
+break;
+case 33:
+#line 204 "Svc_Conf.y"
+{
+ ace_yyval.type_ = 1;
+ }
+break;
+case 34:
+#line 211 "Svc_Conf.y"
+{
+ ace_yyval.location_node_ = new ACE_Object_Node (ace_yyvsp[-2].ident_, ace_yyvsp[0].ident_);
+ }
+break;
+case 35:
+#line 215 "Svc_Conf.y"
+{
+ ace_yyval.location_node_ = new ACE_Function_Node (ace_yyvsp[-4].ident_, ace_yyvsp[-2].ident_);
+ }
+break;
+case 36:
+#line 222 "Svc_Conf.y"
+{
+ ace_yyval.type_ = ACE_MODULE_T;
+ }
+break;
+case 37:
+#line 226 "Svc_Conf.y"
+{
+ ace_yyval.type_ = ACE_SVC_OBJ_T;
+ }
+break;
+case 38:
+#line 230 "Svc_Conf.y"
+{
+ ace_yyval.type_ = ACE_STREAM_T;
+ }
+break;
+case 40:
+#line 237 "Svc_Conf.y"
+{ ace_yyval.ident_ = 0; }
+break;
+#line 862 "y.tab.c"
+ }
+ ace_yyssp -= ace_yym;
+ ace_yystate = *ace_yyssp;
+ ace_yyvsp -= ace_yym;
+ ace_yym = ace_yylhs[ace_yyn];
+ if (ace_yystate == 0 && ace_yym == 0)
+ {
+#ifdef YYDEBUG
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: after reduction, shifting from state 0 to\
+ state %d\n", YYFINAL);
+#endif
+ ace_yystate = YYFINAL;
+ *++ace_yyssp = YYFINAL;
+ *++ace_yyvsp = ace_yyval;
+ if (ace_yychar < 0)
+ {
+ if ((ace_yychar = ace_yylex()) < 0) ace_yychar = 0;
+#if YYDEBUG
+ if (ace_yydebug)
+ {
+ ace_yys = 0;
+ if (ace_yychar <= YYMAXTOKEN) ace_yys = ace_yyname[ace_yychar];
+ if (!ace_yys) ace_yys = "illegal-symbol";
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: state %d, reading %d (%s)\n",
+ YYFINAL, ace_yychar, ace_yys);
+ else
+ YYDEBUG_LOOK_AHEAD(YYFINAL, ace_yychar, ace_yys, ace_yyssp-ace_yyss);
+ }
+#endif
+ }
+ if (ace_yychar == 0) goto ace_yyaccept;
+ goto ace_yyloop;
+ }
+ if ((ace_yyn = ace_yygindex[ace_yym]) && (ace_yyn += ace_yystate) >= 0 &&
+ ace_yyn <= YYTABLESIZE && ace_yycheck[ace_yyn] == ace_yystate)
+ ace_yystate = ace_yytable[ace_yyn];
+ else
+ ace_yystate = ace_yydgoto[ace_yym];
+#ifdef YYDEBUG
+ if (5 < ace_yydebug)
+ printf("ace_yydebug: after reduction, shifting from state %d \
+to state %d\n", *ace_yyssp, ace_yystate);
+#endif
+ if (ace_yyssp >= ace_yyss + ace_yystacksize - 1)
+ {
+ goto ace_yyoverflow;
+ }
+ *++ace_yyssp = ace_yystate;
+ *++ace_yyvsp = ace_yyval;
+ goto ace_yyloop;
+ace_yyoverflow:
+ ace_yyerror("yacc stack overflow");
+ace_yyabort:
+ return (1);
+ace_yyaccept:
+ return (0);
+}