summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
Diffstat (limited to 'ace')
-rw-r--r--ace/Makefile1
-rw-r--r--ace/Makefile.am2
-rw-r--r--ace/Makefile.bor1
-rw-r--r--ace/OS.h18
-rw-r--r--ace/Parse_Node.cpp2
-rw-r--r--ace/Parse_Node.h2
-rw-r--r--ace/README18
-rw-r--r--ace/Service_Config.cpp116
-rw-r--r--ace/Service_Config.h32
-rw-r--r--ace/Service_Object.h9
-rw-r--r--ace/Svc_Conf.h4
-rw-r--r--ace/Svc_Conf.y4
-rw-r--r--ace/Svc_Conf_Lexer_Guard.cpp2
-rw-r--r--ace/Svc_Conf_l.cpp1562
-rw-r--r--ace/Svc_Conf_y.cpp5
-rw-r--r--ace/XML_Svc_Conf.cpp9
-rw-r--r--ace/XML_Svc_Conf.h54
-rwxr-xr-xace/ace.icc5
-rw-r--r--ace/ace_dll.dsp78
-rw-r--r--ace/ace_lib.dsp78
-rw-r--r--ace/config-all.h27
21 files changed, 1094 insertions, 935 deletions
diff --git a/ace/Makefile b/ace/Makefile
index 1c9b3328166..8ba22fc9453 100644
--- a/ace/Makefile
+++ b/ace/Makefile
@@ -194,6 +194,7 @@ SVCCONF_FILES = \
Service_Types \
Service_Templates \
Shared_Object \
+ XML_Svc_Conf \
Svc_Conf_l \
Svc_Conf_y \
Svc_Conf_Lexer_Guard
diff --git a/ace/Makefile.am b/ace/Makefile.am
index 5fe2ea3a23b..644c0df082b 100644
--- a/ace/Makefile.am
+++ b/ace/Makefile.am
@@ -324,6 +324,7 @@ libACE_Svcconf_la_SOURCES = \
Service_Types.cpp \
Service_Templates.cpp \
Shared_Object.cpp \
+ XML_Svc_Conf.cpp \
Svc_Conf_l.cpp \
Svc_Conf_y.cpp \
Svc_Conf_Lexer_Guard.cpp
@@ -807,6 +808,7 @@ HEADER_FILES = \
WFMO_Reactor.h \
WIN32_Asynch_IO.h \
WIN32_Proactor.h \
+ XML_Svc_Conf.h \
XTI_ATM_Mcast.h \
XtReactor.h \
ace_wchar.h \
diff --git a/ace/Makefile.bor b/ace/Makefile.bor
index 170de5f5ecd..fe1c8073fb6 100644
--- a/ace/Makefile.bor
+++ b/ace/Makefile.bor
@@ -237,6 +237,7 @@ OBJFILES = \
$(OBJDIR)\WFMO_Reactor.obj \
$(OBJDIR)\WIN32_Asynch_IO.obj \
$(OBJDIR)\WIN32_Proactor.obj \
+ $(OBJDIR)\XML_Svc_Conf.obj \
$(OBJDIR)\XtReactor.obj
RESOURCE = $(OBJDIR)\ace.res
diff --git a/ace/OS.h b/ace/OS.h
index fc286a3e40e..043baff7a3a 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -391,7 +391,11 @@ typedef struct
// Used for dynamic linking.
# if !defined (ACE_DEFAULT_SVC_CONF)
-# define ACE_DEFAULT_SVC_CONF "./svc.conf"
+# if (ACE_USES_CLASSIC_SVC_CONF == 1)
+# define ACE_DEFAULT_SVC_CONF "./svc.conf"
+# else
+# define ACE_DEFAULT_SVC_CONF "./svc.conf.xml"
+# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
# endif /* ACE_DEFAULT_SVC_CONF */
# if !defined (ACE_DEFAULT_SEM_KEY)
@@ -2720,7 +2724,11 @@ typedef void (*ACE_SignalHandlerV)(...);
// Used for dynamic linking
# if !defined (ACE_DEFAULT_SVC_CONF)
-# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT (".\\svc.conf")
+# if (ACE_USES_CLASSIC_SVC_CONF == 1)
+# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT (".\\svc.conf")
+# else
+# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT (".\\svc.conf.xml")
+# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
# endif /* ACE_DEFAULT_SVC_CONF */
// The following are #defines and #includes that are specific to
@@ -3063,7 +3071,11 @@ typedef ACE_UINT64 ACE_hrtime_t;
// Used for dynamic linking.
# if !defined (ACE_DEFAULT_SVC_CONF)
-# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT ("./svc.conf")
+# if (ACE_USES_CLASSIC_SVC_CONF == 1)
+# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT ("./svc.conf")
+# else
+# define ACE_DEFAULT_SVC_CONF ACE_LIB_TEXT ("./svc.conf.xml")
+# endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
# endif /* ACE_DEFAULT_SVC_CONF */
// The following are #defines and #includes that are specific to UNIX.
diff --git a/ace/Parse_Node.cpp b/ace/Parse_Node.cpp
index 899398bae90..3cf9be2ef12 100644
--- a/ace/Parse_Node.cpp
+++ b/ace/Parse_Node.cpp
@@ -7,6 +7,7 @@
// Provide the class hierarchy that defines the parse tree of Service
// Nodes.
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
#if !defined (__ACE_INLINE__)
#include "ace/Parse_Node.i"
@@ -650,3 +651,4 @@ ACE_Static_Function_Node::~ACE_Static_Function_Node (void)
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/Parse_Node.h b/ace/Parse_Node.h
index d9ccba2aba8..967b1813239 100644
--- a/ace/Parse_Node.h
+++ b/ace/Parse_Node.h
@@ -22,6 +22,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
/**
* @class ACE_Parse_Node
*
@@ -338,6 +339,7 @@ extern int ace_yyerrno;
/// Global variable used to communicate between the parser and the main
/// program.
extern ACE_Service_Config *ace_this_svc;
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
#include "ace/post.h"
#endif /* ACE_PARSE_NODE_H */
diff --git a/ace/README b/ace/README
index 9f0bed0d2ed..cc7f79ef028 100644
--- a/ace/README
+++ b/ace/README
@@ -975,6 +975,24 @@ ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK
this problem.
----------------------------------------
+The following macros determine the svc.conf file format ACE uses.
+
+Macro Description
+----- -----------
+ACE_HAS_CLASSIC_SVC_CONF This macro forces ACE to use the classic
+ svc.conf format.
+
+ACE_HAS_XML_SVC_CONF This macro forces ACE to use the XML
+ svc.conf format.
+
+ACE_USES_CLASSIC_SVC_CONF This macro should be defined as 0 or 1, depending
+ on the preferred svc.conf file format.
+ Defining this macro to 0 means ACE will use XML
+ svc.conf file format. Defining it to 1 will
+ force ACE to use the classic svc.conf format.
+ ** This macro takes precedence over previous
+ ** two macros.
+----------------------------------------
The following is a partial list of where some of these macros are used
in the code. This list was originally compiled by Jam Hamidi
(jh1@core01.osi.com). It is now hopelessly out of date. Hopefully,
diff --git a/ace/Service_Config.cpp b/ace/Service_Config.cpp
index 9274fe72b5a..72e982f5ebe 100644
--- a/ace/Service_Config.cpp
+++ b/ace/Service_Config.cpp
@@ -14,6 +14,8 @@
#include "ace/Framework_Component.h"
#include "ace/Service_Config.h"
+#include "ace/XML_Svc_Conf.h"
+#include "ace/Auto_Ptr.h"
#if !defined (__ACE_INLINE__)
#include "ace/Service_Config.i"
@@ -225,11 +227,66 @@ ACE_Service_Config::parse_args (int argc, ACE_TCHAR *argv[])
return 0;
}
+#if (ACE_USES_CLASSIC_SVC_CONF == 0)
+ACE_Service_Type *
+ACE_Service_Config::create_service_type (const ACE_TCHAR *n,
+ ACE_Service_Type_Impl *o,
+ const ACE_SHLIB_HANDLE handle,
+ int active)
+{
+ ACE_Service_Type *sp = 0;
+ ACE_NEW_RETURN (sp,
+ ACE_Service_Type (n, o, handle, active),
+ 0);
+ return sp;
+}
+
+ACE_Service_Type_Impl *
+ACE_Service_Config::create_service_type_impl (const ACE_TCHAR *name,
+ int type,
+ void *symbol,
+ u_int flags,
+ ACE_Service_Object_Exterminator gobbler)
+{
+ ACE_Service_Type_Impl *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_Service_Type::SERVICE_OBJECT:
+ ACE_NEW_RETURN (stp,
+ ACE_Service_Object_Type ((ACE_Service_Object *) symbol,
+ name, flags,
+ gobbler),
+ 0);
+ break;
+ case ACE_Service_Type::MODULE:
+ ACE_NEW_RETURN (stp,
+ ACE_Module_Type (symbol, name, flags),
+ 0);
+ break;
+ case ACE_Service_Type::STREAM:
+ ACE_NEW_RETURN (stp,
+ ACE_Stream_Type (symbol, name, flags),
+ 0);
+ break;
+ default:
+ ACE_ERROR ((LM_ERROR,
+ ACE_LIB_TEXT ("unknown case\n")));
+ break;
+ }
+ return stp;
+
+}
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
// Initialize and activate a statically linked service.
int
-ACE_Service_Config::initialize (const ACE_TCHAR svc_name[],
- ACE_TCHAR *parameters)
+ACE_Service_Config::initialize (const ACE_TCHAR *svc_name,
+ const ACE_TCHAR *parameters)
{
ACE_TRACE ("ACE_Service_Config::initialize");
ACE_ARGV args (parameters);
@@ -269,7 +326,7 @@ ACE_Service_Config::initialize (const ACE_TCHAR svc_name[],
int
ACE_Service_Config::initialize (const ACE_Service_Type *sr,
- ACE_TCHAR parameters[])
+ const ACE_TCHAR *parameters)
{
ACE_TRACE ("ACE_Service_Config::initialize");
ACE_ARGV args (parameters);
@@ -298,6 +355,7 @@ ACE_Service_Config::initialize (const ACE_Service_Type *sr,
}
}
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
int
ACE_Service_Config::process_directives_i (ACE_Svc_Conf_Param *param)
{
@@ -322,12 +380,42 @@ ACE_Service_Config::process_directives_i (ACE_Svc_Conf_Param *param)
else
return 0;
}
+#else
+ACE_XML_Svc_Conf *
+ACE_Service_Config::get_xml_svc_conf (ACE_DLL &xmldll)
+{
+ if (xmldll.open (ACE_LIB_TEXT ("ACEXML_XML_Svc_Conf_Parser")) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_LIB_TEXT ("Fail to open ACEXML_XML_Svc_Conf_Parser: %p\n"),
+ "ACE_Service_Config::get_xml_svc_conf"),
+ 0);
+
+ void *foo;
+
+ // @@ Now this sucks.. Why can't we just pass the operation name to dll.symbol?
+ ACE_TCHAR *cdecl_str = ACE::ldname (ACE_TEXT ("_ACEXML_create_XML_Svc_Conf_Object"));
+ foo = xmldll.symbol (cdecl_str);
+ delete[] cdecl_str;
+
+ // Cast the void* to long first.
+ long tmp = ACE_reinterpret_cast (long, foo);
+ ACE_XML_Svc_Conf::Factory factory = ACE_reinterpret_cast (ACE_XML_Svc_Conf::Factory, tmp);
+ if (factory == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Unable to resolve factory: %p\n"),
+ xmldll.error ()),
+ 0);
+
+ return factory ();
+}
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
int
ACE_Service_Config::process_file (const ACE_TCHAR file[])
{
ACE_TRACE ("ACE_Service_Config::process_file");
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
int result = 0;
FILE *fp = ACE_OS::fopen (file,
@@ -354,8 +442,17 @@ ACE_Service_Config::process_file (const ACE_TCHAR file[])
(void) ACE_OS::fclose (fp);
}
-
return result;
+#else
+ ACE_DLL dll;
+
+ auto_ptr<ACE_XML_Svc_Conf> xml_svc_conf (ACE_Service_Config::get_xml_svc_conf (dll));
+
+ if (xml_svc_conf.get () == 0)
+ return -1;
+
+ return xml_svc_conf->parse_file (file);
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
}
int
@@ -368,6 +465,7 @@ ACE_Service_Config::process_directive (const ACE_TCHAR directive[])
ACE_LIB_TEXT ("Service_Config::process_directive - %s\n"),
directive));
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
ACE_UNUSED_ARG (directive);
ACE_Svc_Conf_Param d (directive);
@@ -375,6 +473,16 @@ ACE_Service_Config::process_directive (const ACE_TCHAR directive[])
int result = ACE_Service_Config::process_directives_i (&d);
return result;
+#else
+ ACE_DLL dll;
+
+ auto_ptr<ACE_XML_Svc_Conf> xml_svc_conf (ACE_Service_Config::get_xml_svc_conf (dll));
+
+ if (xml_svc_conf.get () == 0)
+ return -1;
+
+ return xml_svc_conf->parse_string (directive);
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
}
// Process service configuration requests as indicated in the queue of
diff --git a/ace/Service_Config.h b/ace/Service_Config.h
index 2942816d6dd..2b8da8c37b9 100644
--- a/ace/Service_Config.h
+++ b/ace/Service_Config.h
@@ -13,25 +13,28 @@
#ifndef ACE_SERVICE_CONFIG_H
#define ACE_SERVICE_CONFIG_H
#include "ace/pre.h"
-
-#include "ace/Service_Object.h"
+#include "ace/config-all.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "ace/Service_Types.h"
#include "ace/Signal.h"
#include "ace/Unbounded_Queue.h"
#include "ace/Unbounded_Set.h"
#include "ace/SString.h"
+#include "ace/DLL.h"
+#include "ace/XML_Svc_Conf.h"
// Forward decl.
class ACE_Service_Repository;
-class ACE_Service_Type;
class ACE_Allocator;
class ACE_Reactor;
class ACE_Thread_Manager;
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
class ACE_Svc_Conf_Param;
+#endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */
extern "C"
{
@@ -256,11 +259,11 @@ public:
/// Dynamically link the shared object file and retrieve a pointer to
/// the designated shared object in this file.
static int initialize (const ACE_Service_Type *,
- ACE_TCHAR parameters[]);
+ const ACE_TCHAR *parameters);
/// Initialize and activate a statically <svc_name> service.
- static int initialize (const ACE_TCHAR svc_name[],
- ACE_TCHAR parameters[]);
+ static int initialize (const ACE_TCHAR *svc_name,
+ const ACE_TCHAR *parameters);
/// Resume a <svc_name> that was previously suspended or has not yet
/// been resumed (e.g., a static service).
@@ -350,15 +353,32 @@ public:
* for a list of files and here a list of services.
*/
static int parse_args (int, ACE_TCHAR *argv[]);
+#if (ACE_USES_CLASSIC_SVC_CONF == 0)
+ static ACE_Service_Type *create_service_type (const ACE_TCHAR *n,
+ ACE_Service_Type_Impl *o,
+ const ACE_SHLIB_HANDLE handle,
+ int active);
+
+ static ACE_Service_Type_Impl *create_service_type_impl (const ACE_TCHAR *name,
+ int type,
+ void *symbol,
+ u_int flags,
+ ACE_Service_Object_Exterminator gobbler);
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
protected:
/// Process service configuration requests that were provided on the
/// command-line. Returns the number of errors that occurred.
static int process_commandline_directives (void);
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
/// This is the implementation function that process_directives()
/// and process_directive() both call. Returns the number of errors
/// that occurred.
static int process_directives_i (ACE_Svc_Conf_Param *param);
+#else
+ /// Helper function to dynamically link in the XML Service Configurator parser.
+ static ACE_XML_Svc_Conf *get_xml_svc_conf (ACE_DLL &d);
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
/// Become a daemon.
static int start_daemon (void);
diff --git a/ace/Service_Object.h b/ace/Service_Object.h
index 2801a8be3c4..c5155c0c5c0 100644
--- a/ace/Service_Object.h
+++ b/ace/Service_Object.h
@@ -15,6 +15,7 @@
#include "ace/pre.h"
#include "ace/Shared_Object.h"
+#include "ace/Svc_Conf_Tokens.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -74,6 +75,14 @@ public:
DELETE_THIS = 2
};
+ enum
+ {
+ SERVICE_OBJECT = ACE_SVC_OBJ_T,
+ MODULE = ACE_MODULE_T,
+ STREAM = ACE_STREAM_T,
+ INVALID_TYPE = -1
+ };
+
// = Initialization and termination methods.
ACE_Service_Type (const ACE_TCHAR *n,
ACE_Service_Type_Impl *o,
diff --git a/ace/Svc_Conf.h b/ace/Svc_Conf.h
index ecf285baebf..291fe3defca 100644
--- a/ace/Svc_Conf.h
+++ b/ace/Svc_Conf.h
@@ -28,6 +28,8 @@
#include "ace/Service_Config.h"
#include "ace/Parse_Node.h"
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
+
// Forward declarations.
struct ace_yy_buffer_state;
@@ -194,6 +196,8 @@ extern ACE_TCHAR *ace_yytext;
/// Holds the length of the lexeme for the current token
extern int ace_yyleng;
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
+
/// Factory that creates a new ACE_Service_Type_Impl.
extern ACE_Service_Type_Impl *
ace_create_service_type (const ACE_TCHAR *,
diff --git a/ace/Svc_Conf.y b/ace/Svc_Conf.y
index 326c9d9b442..dfb44e6fc7e 100644
--- a/ace/Svc_Conf.y
+++ b/ace/Svc_Conf.y
@@ -244,6 +244,9 @@ svc_location
sym,
flags,
gobbler);
+ if (stp == 0)
+ ace_yyerrno++;
+
$$ = new ACE_Service_Type ($1,
stp,
$3->handle (),
@@ -435,7 +438,6 @@ ace_create_service_type (const ACE_TCHAR *name,
default:
ACE_ERROR ((LM_ERROR,
ACE_LIB_TEXT ("unknown case\n")));
- yyerrno++;
break;
}
return stp;
diff --git a/ace/Svc_Conf_Lexer_Guard.cpp b/ace/Svc_Conf_Lexer_Guard.cpp
index 13848feaac9..980d899d064 100644
--- a/ace/Svc_Conf_Lexer_Guard.cpp
+++ b/ace/Svc_Conf_Lexer_Guard.cpp
@@ -2,6 +2,7 @@
#include "ace/Svc_Conf.h"
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
#include "ace/Svc_Conf_Lexer_Guard.h"
ACE_RCSID (ace,
@@ -34,3 +35,4 @@ ACE_Svc_Conf_Lexer_Guard::~ACE_Svc_Conf_Lexer_Guard (void)
::ace_yy_pop_buffer (this->buffer_);
}
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/Svc_Conf_l.cpp b/ace/Svc_Conf_l.cpp
index ec92eb3473f..b315c3f0d91 100644
--- a/ace/Svc_Conf_l.cpp
+++ b/ace/Svc_Conf_l.cpp
@@ -28,15 +28,17 @@
/* The "const" storage-class-modifier is valid. */
#define ACE_YY_USE_CONST
-#else /* ! __cplusplus */
+#else /* ! __cplusplus */
#if __STDC__
#define ACE_YY_USE_PROTOS
#define ACE_YY_USE_CONST
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
#ifdef __TURBOC__
#pragma warn -rch
@@ -107,10 +109,10 @@ extern FILE *ace_yyin, *ace_yyout;
* int a single C statement (which needs a semi-colon terminator). This
* avoids problems with code like:
*
- * if ( condition_holds )
- * ace_yyless( 5 );
- * else
- * do_something_else();
+ * if ( condition_holds )
+ * ace_yyless( 5 );
+ * else
+ * do_something_else();
*
* Prior to using the do-while the compiler would get upset at the
* "else" because it interpreted the "if" statement as being all
@@ -120,15 +122,15 @@ extern FILE *ace_yyin, *ace_yyout;
/* Return all but the first 'n' matched characters back to the input stream. */
#define ace_yyless(n) \
- do \
- { \
- /* Undo effects of setting up ace_yytext. */ \
- *ace_yy_cp = ace_yy_hold_char; \
- ACE_YY_RESTORE_ACE_YY_MORE_OFFSET \
- ace_yy_c_buf_p = ace_yy_cp = ace_yy_bp + n - ACE_YY_MORE_ADJ; \
- ACE_YY_DO_BEFORE_ACTION; /* set up ace_yytext again */ \
- } \
- while ( 0 )
+ do \
+ { \
+ /* Undo effects of setting up ace_yytext. */ \
+ *ace_yy_cp = ace_yy_hold_char; \
+ ACE_YY_RESTORE_ACE_YY_MORE_OFFSET \
+ ace_yy_c_buf_p = ace_yy_cp = ace_yy_bp + n - ACE_YY_MORE_ADJ; \
+ ACE_YY_DO_BEFORE_ACTION; /* set up ace_yytext again */ \
+ } \
+ while ( 0 )
#if 0
#define unput(c) ace_yyunput( c, ace_yytext_ptr )
@@ -142,61 +144,61 @@ typedef unsigned int ace_yy_size_t;
struct ace_yy_buffer_state
- {
- FILE *ace_yy_input_file;
-
- ACE_TCHAR *ace_yy_ch_buf; /* input buffer */
- ACE_TCHAR *ace_yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- ace_yy_size_t ace_yy_buf_size;
-
- /* Number of characters read into ace_yy_ch_buf, not including EOB
- * characters.
- */
- int ace_yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int ace_yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int ace_yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int ace_yy_at_bol;
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int ace_yy_fill_buffer;
-
- int ace_yy_buffer_status;
+ {
+ FILE *ace_yy_input_file;
+
+ ACE_TCHAR *ace_yy_ch_buf; /* input buffer */
+ ACE_TCHAR *ace_yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ ace_yy_size_t ace_yy_buf_size;
+
+ /* Number of characters read into ace_yy_ch_buf, not including EOB
+ * characters.
+ */
+ int ace_yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int ace_yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int ace_yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int ace_yy_at_bol;
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int ace_yy_fill_buffer;
+
+ int ace_yy_buffer_status;
#define ACE_YY_BUFFER_NEW 0
#define ACE_YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as ACE_YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via ace_yyrestart()), so that the user can continue scanning by
- * just pointing ace_yyin at a new input file.
- */
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as ACE_YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via ace_yyrestart()), so that the user can continue scanning by
+ * just pointing ace_yyin at a new input file.
+ */
#define ACE_YY_BUFFER_EOF_PENDING 2
- };
+ };
static ACE_YY_BUFFER_STATE ace_yy_current_buffer = 0;
@@ -210,15 +212,15 @@ static ACE_YY_BUFFER_STATE ace_yy_current_buffer = 0;
/* ace_yy_hold_char holds the character lost when ace_yytext is formed. */
static ACE_TCHAR ace_yy_hold_char;
-static int ace_yy_n_chars; /* number of characters read into ace_yy_ch_buf */
+static int ace_yy_n_chars; /* number of characters read into ace_yy_ch_buf */
int ace_yyleng;
/* Points to current character in buffer. */
static ACE_TCHAR *ace_yy_c_buf_p = (ACE_TCHAR *) 0;
-static int ace_yy_init = 1; /* whether we need to initialize */
-static int ace_yy_start = 0; /* start state number */
+static int ace_yy_init = 1; /* whether we need to initialize */
+static int ace_yy_start = 0; /* start state number */
/* Flag which is used to allow ace_yywrap()'s to do buffer switches
* instead of setting up a fresh ace_yyin. A bit of a hack ...
@@ -246,18 +248,18 @@ static void ace_yy_flex_free ACE_YY_PROTO(( void * ));
#define ace_yy_new_buffer ace_yy_create_buffer
#define ace_yy_set_interactive(is_interactive) \
- { \
- if ( ! ace_yy_current_buffer ) \
- ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE ); \
- ace_yy_current_buffer->ace_yy_is_interactive = is_interactive; \
- }
+ { \
+ if ( ! ace_yy_current_buffer ) \
+ ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE ); \
+ ace_yy_current_buffer->ace_yy_is_interactive = is_interactive; \
+ }
#define ace_yy_set_bol(at_bol) \
- { \
- if ( ! ace_yy_current_buffer ) \
- ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE ); \
- ace_yy_current_buffer->ace_yy_at_bol = at_bol; \
- }
+ { \
+ if ( ! ace_yy_current_buffer ) \
+ ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE ); \
+ ace_yy_current_buffer->ace_yy_at_bol = at_bol; \
+ }
#define ACE_YY_AT_BOL() (ace_yy_current_buffer->ace_yy_at_bol)
@@ -276,11 +278,11 @@ static void ace_yy_fatal_error ACE_YY_PROTO(( ace_yyconst ACE_TCHAR msg[] ));
* corresponding action - sets up ace_yytext.
*/
#define ACE_YY_DO_BEFORE_ACTION \
- ace_yytext_ptr = ace_yy_bp; \
- ace_yyleng = (int) (ace_yy_cp - ace_yy_bp); \
- ace_yy_hold_char = *ace_yy_cp; \
- *ace_yy_cp = '\0'; \
- ace_yy_c_buf_p = ace_yy_cp;
+ ace_yytext_ptr = ace_yy_bp; \
+ ace_yyleng = (int) (ace_yy_cp - ace_yy_bp); \
+ ace_yy_hold_char = *ace_yy_cp; \
+ *ace_yy_cp = '\0'; \
+ ace_yy_c_buf_p = ace_yy_cp;
#define ACE_YY_NUM_RULES 26
#define ACE_YY_END_OF_BUFFER 27
@@ -511,8 +513,8 @@ ACE_TCHAR *ace_yytext;
#include "ace/Svc_Conf_Lexer_Guard.h"
ACE_RCSID (ace,
- Svc_Conf_l,
- "$Id$")
+ Svc_Conf_l,
+ "$Id$")
// Keeps track of the current line for debugging output.
int ace_yylineno = 1;
@@ -609,21 +611,21 @@ ACE_YY_MALLOC_DECL
*/
#ifndef ACE_YY_INPUT
#define ACE_YY_INPUT(buf,result,max_size) \
- if ( ace_yy_current_buffer->ace_yy_is_interactive ) \
- { \
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( ace_yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (ACE_TCHAR) c; \
- if ( c == '\n' ) \
- buf[n++] = (ACE_TCHAR) c; \
- if ( c == EOF && ferror( ace_yyin ) ) \
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "input in flex scanner failed") ); \
- result = n; \
- } \
- else if ( ((result = fread( buf, sizeof (ACE_TCHAR), max_size, ace_yyin )) == 0) \
- && ferror( ace_yyin ) ) \
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT("input in flex scanner failed") );
+ if ( ace_yy_current_buffer->ace_yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( ace_yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (ACE_TCHAR) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (ACE_TCHAR) c; \
+ if ( c == EOF && ferror( ace_yyin ) ) \
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "input in flex scanner failed") ); \
+ result = n; \
+ } \
+ else if ( ((result = fread( buf, sizeof (ACE_TCHAR), max_size, ace_yyin )) == 0) \
+ && ferror( ace_yyin ) ) \
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT("input in flex scanner failed") );
#endif
/* No semi-colon after return; correct usage is to write "ace_yyterminate();" -
@@ -664,13 +666,13 @@ ACE_YY_MALLOC_DECL
#endif
#define ACE_YY_RULE_SETUP \
- if ( ace_yyleng > 0 ) \
- ace_yy_current_buffer->ace_yy_at_bol = \
- (ace_yytext[ace_yyleng - 1] == '\n'); \
- ACE_YY_USER_ACTION
+ if ( ace_yyleng > 0 ) \
+ ace_yy_current_buffer->ace_yy_at_bol = \
+ (ace_yytext[ace_yyleng - 1] == '\n'); \
+ ACE_YY_USER_ACTION
ACE_YY_DECL
- {
+ {
ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX,
ace_mon,
*ACE_Static_Object_Lock::instance (),
@@ -678,94 +680,94 @@ ACE_YY_DECL
ACE_Svc_Conf_Lexer_Guard ace_lexer_guard (ACE_SVC_CONF_PARAM);
- register ace_yy_state_type ace_yy_current_state;
- register ACE_TCHAR *ace_yy_cp=0, *ace_yy_bp=0;
- register int ace_yy_act;
+ register ace_yy_state_type ace_yy_current_state;
+ register ACE_TCHAR *ace_yy_cp=0, *ace_yy_bp=0;
+ register int ace_yy_act;
- if ( ace_yy_init )
- {
- ace_yy_init = 0;
+ if ( ace_yy_init )
+ {
+ ace_yy_init = 0;
#ifdef ACE_YY_USER_INIT
- ACE_YY_USER_INIT;
+ ACE_YY_USER_INIT;
#endif
- if ( ! ace_yy_start )
- ace_yy_start = 1; /* first start state */
+ if ( ! ace_yy_start )
+ ace_yy_start = 1; /* first start state */
- if ( ! ace_yyin )
- ace_yyin = stdin;
+ if ( ! ace_yyin )
+ ace_yyin = stdin;
- if ( ! ace_yyout )
- ace_yyout = stdout;
+ if ( ! ace_yyout )
+ ace_yyout = stdout;
- if ( ! ace_yy_current_buffer )
- ace_yy_current_buffer =
- ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE );
+ if ( ! ace_yy_current_buffer )
+ ace_yy_current_buffer =
+ ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE );
- ace_yy_load_buffer_state();
- }
+ ace_yy_load_buffer_state();
+ }
- while ( 1 ) /* loops until end-of-file is reached */
- {
- ace_yy_cp = ace_yy_c_buf_p;
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ ace_yy_cp = ace_yy_c_buf_p;
- /* Support of ace_yytext. */
- *ace_yy_cp = ace_yy_hold_char;
+ /* Support of ace_yytext. */
+ *ace_yy_cp = ace_yy_hold_char;
- /* ace_yy_bp points to the position in ace_yy_ch_buf of the start of
- * the current run.
- */
- ace_yy_bp = ace_yy_cp;
+ /* ace_yy_bp points to the position in ace_yy_ch_buf of the start of
+ * the current run.
+ */
+ ace_yy_bp = ace_yy_cp;
- ace_yy_current_state = ace_yy_start;
- ace_yy_current_state += ACE_YY_AT_BOL();
+ ace_yy_current_state = ace_yy_start;
+ ace_yy_current_state += ACE_YY_AT_BOL();
ace_yy_match:
- do
- {
- register ACE_YY_CHAR ace_yy_c = ace_yy_ec[ACE_YY_SC_TO_UI(*ace_yy_cp)];
- if ( ace_yy_accept[ace_yy_current_state] )
- {
- ace_yy_last_accepting_state = ace_yy_current_state;
- ace_yy_last_accepting_cpos = ace_yy_cp;
- }
- while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
- {
- ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
- if ( ace_yy_current_state >= 108 )
- ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
- }
- ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
- ++ace_yy_cp;
- }
- while ( ace_yy_base[ace_yy_current_state] != 438 );
+ do
+ {
+ register ACE_YY_CHAR ace_yy_c = ace_yy_ec[ACE_YY_SC_TO_UI(*ace_yy_cp)];
+ if ( ace_yy_accept[ace_yy_current_state] )
+ {
+ ace_yy_last_accepting_state = ace_yy_current_state;
+ ace_yy_last_accepting_cpos = ace_yy_cp;
+ }
+ while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
+ {
+ ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
+ if ( ace_yy_current_state >= 108 )
+ ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
+ }
+ ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
+ ++ace_yy_cp;
+ }
+ while ( ace_yy_base[ace_yy_current_state] != 438 );
ace_yy_find_action:
- ace_yy_act = ace_yy_accept[ace_yy_current_state];
- if ( ace_yy_act == 0 )
- { /* have to back up */
- ace_yy_cp = ace_yy_last_accepting_cpos;
- ace_yy_current_state = ace_yy_last_accepting_state;
- ace_yy_act = ace_yy_accept[ace_yy_current_state];
- }
+ ace_yy_act = ace_yy_accept[ace_yy_current_state];
+ if ( ace_yy_act == 0 )
+ { /* have to back up */
+ ace_yy_cp = ace_yy_last_accepting_cpos;
+ ace_yy_current_state = ace_yy_last_accepting_state;
+ ace_yy_act = ace_yy_accept[ace_yy_current_state];
+ }
- ACE_YY_DO_BEFORE_ACTION;
+ ACE_YY_DO_BEFORE_ACTION;
-do_action: /* This label is used only to access EOF actions. */
+do_action: /* This label is used only to access EOF actions. */
- switch ( ace_yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of ACE_YY_DO_BEFORE_ACTION */
- *ace_yy_cp = ace_yy_hold_char;
- ace_yy_cp = ace_yy_last_accepting_cpos;
- ace_yy_current_state = ace_yy_last_accepting_state;
- goto ace_yy_find_action;
+ switch ( ace_yy_act )
+ { /* beginning of action switch */
+ case 0: /* must back up */
+ /* undo the effects of ACE_YY_DO_BEFORE_ACTION */
+ *ace_yy_cp = ace_yy_hold_char;
+ ace_yy_cp = ace_yy_last_accepting_cpos;
+ ace_yy_current_state = ace_yy_last_accepting_state;
+ goto ace_yy_find_action;
case 1:
*ace_yy_cp = ace_yy_hold_char; /* undo effects of setting up ace_yytext */
@@ -773,80 +775,80 @@ ace_yy_c_buf_p = ace_yy_cp -= 1;
ACE_YY_DO_BEFORE_ACTION; /* set up ace_yytext again */
ACE_YY_RULE_SETUP
; /* EMPTY */
- ACE_YY_BREAK
+ ACE_YY_BREAK
case 2:
ACE_YY_RULE_SETUP
{ return token (ACE_DYNAMIC); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 3:
ACE_YY_RULE_SETUP
{ return token (ACE_STATIC); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 4:
ACE_YY_RULE_SETUP
{ return token (ACE_SUSPEND); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 5:
ACE_YY_RULE_SETUP
{ return token (ACE_RESUME); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 6:
ACE_YY_RULE_SETUP
{ return token (ACE_REMOVE); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 7:
ACE_YY_RULE_SETUP
{ return token (ACE_USTREAM); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 8:
ACE_YY_RULE_SETUP
{ return token (ACE_MODULE_T); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 9:
ACE_YY_RULE_SETUP
{ return token (ACE_SVC_OBJ_T); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 10:
ACE_YY_RULE_SETUP
{ return token (ACE_STREAM_T); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 11:
ACE_YY_RULE_SETUP
{ return token (ACE_ACTIVE); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 12:
ACE_YY_RULE_SETUP
{ return token (ACE_INACTIVE); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 13:
ACE_YY_RULE_SETUP
{ return token (':'); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 14:
ACE_YY_RULE_SETUP
{ return token ('*'); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 15:
ACE_YY_RULE_SETUP
{ return token ('('); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 16:
ACE_YY_RULE_SETUP
{ return token (')'); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 17:
ACE_YY_RULE_SETUP
{ return token ('{'); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 18:
ACE_YY_RULE_SETUP
{ return token ('}'); }
- // ACE_YY_BREAK
+ // ACE_YY_BREAK
case 19:
ACE_YY_RULE_SETUP
{
// Check for first type of string, i.e.,
- // "double quotes" delimited.
+ // "double quotes" delimited.
ACE_TCHAR *s = ACE_OS::strrchr (ace_yytext, '"');
if (s == 0)
// Check for second type of string, i.e.,
@@ -857,360 +859,360 @@ ACE_YY_RULE_SETUP
// Eliminate the opening and closing double or
// single quotes.
*s = '\0';
- ace_yyleng -= 1;
+ ace_yyleng -= 1;
ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext + 1, ace_yyleng);
- return token (ACE_STRING); }
-// ACE_YY_BREAK
+ return token (ACE_STRING); }
+// ACE_YY_BREAK
case 20:
ACE_YY_RULE_SETUP
{
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
- return token (ACE_IDENT);
- }
-// ACE_YY_BREAK
+ ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
+ return token (ACE_IDENT);
+ }
+// ACE_YY_BREAK
case 21:
ACE_YY_RULE_SETUP
{
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
- return token (ACE_PATHNAME);
- }
-// ACE_YY_BREAK
+ ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
+ return token (ACE_PATHNAME);
+ }
+// ACE_YY_BREAK
case 22:
ACE_YY_RULE_SETUP
; /* EMPTY */
- ACE_YY_BREAK
+ ACE_YY_BREAK
case 23:
ACE_YY_RULE_SETUP
; /* EMPTY */
- ACE_YY_BREAK
+ ACE_YY_BREAK
case 24:
ACE_YY_RULE_SETUP
{ ACE_SVC_CONF_PARAM->yylineno++; ace_yylineno++; }
- ACE_YY_BREAK
+ ACE_YY_BREAK
case 25:
ACE_YY_RULE_SETUP
{
ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("unknown character = (%d"),
+ ACE_LIB_TEXT ("unknown character = (%d"),
*ace_yytext));
if (ACE_OS::ace_isprint (*ace_yytext))
ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("|%c"), *ace_yytext));
ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT (")\n")));
}
- ACE_YY_BREAK
+ ACE_YY_BREAK
case ACE_YY_STATE_EOF(INITIAL):
case ACE_YY_STATE_EOF(PARAMETERS):
case ACE_YY_STATE_EOF(NORMAL):
{ ace_yyterminate(); }
-// ACE_YY_BREAK
+// ACE_YY_BREAK
case 26:
ACE_YY_RULE_SETUP
ACE_SVC_CONF_ECHO;
- ACE_YY_BREAK
-
- case ACE_YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB ACE_TCHAR. */
- int ace_yy_amount_of_matched_text = (int) (ace_yy_cp - ace_yytext_ptr) - 1;
-
- /* Undo the effects of ACE_YY_DO_BEFORE_ACTION. */
- *ace_yy_cp = ace_yy_hold_char;
- ACE_YY_RESTORE_ACE_YY_MORE_OFFSET
-
- if ( ace_yy_current_buffer->ace_yy_buffer_status == ACE_YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed ace_yyin at a new source and called
- * ace_yylex(). If so, then we have to assure
- * consistency between ace_yy_current_buffer and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_n_chars;
- ace_yy_current_buffer->ace_yy_input_file = ace_yyin;
- ace_yy_current_buffer->ace_yy_buffer_status = ACE_YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for ace_yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since ace_yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( ace_yy_c_buf_p <= &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] )
- { /* This was really a NUL. */
- ace_yy_state_type ace_yy_next_state;
-
- ace_yy_c_buf_p = ace_yytext_ptr + ace_yy_amount_of_matched_text;
-
- ace_yy_current_state = ace_yy_get_previous_state();
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * ace_yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- ace_yy_next_state = ace_yy_try_NUL_trans( ace_yy_current_state );
-
- ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
-
- if ( ace_yy_next_state )
- {
- /* Consume the NUL. */
- ace_yy_cp = ++ace_yy_c_buf_p;
- ace_yy_current_state = ace_yy_next_state;
- goto ace_yy_match;
- }
-
- else
- {
- ace_yy_cp = ace_yy_c_buf_p;
- goto ace_yy_find_action;
- }
- }
-
- else switch ( ace_yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- ace_yy_did_buffer_switch_on_eof = 0;
-
- if ( ace_yywrap() )
- {
- /* Note: because we've taken care in
- * ace_yy_get_next_buffer() to have set up
- * ace_yytext, we can now set up
- * ace_yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * ACE_YY_NULL, it'll still work - another
- * ACE_YY_NULL will get returned.
- */
- ace_yy_c_buf_p = ace_yytext_ptr + ACE_YY_MORE_ADJ;
-
- ace_yy_act = ACE_YY_STATE_EOF(ACE_YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! ace_yy_did_buffer_switch_on_eof )
- ACE_YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- ace_yy_c_buf_p =
- ace_yytext_ptr + ace_yy_amount_of_matched_text;
-
- ace_yy_current_state = ace_yy_get_previous_state();
-
- ace_yy_cp = ace_yy_c_buf_p;
- ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
- goto ace_yy_match;
-
- case EOB_ACT_LAST_MATCH:
- ace_yy_c_buf_p =
- &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars];
-
- ace_yy_current_state = ace_yy_get_previous_state();
-
- ace_yy_cp = ace_yy_c_buf_p;
- ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
- goto ace_yy_find_action;
- }
- break;
- }
-
- default:
- ACE_YY_FATAL_ERROR(
- ACE_LIB_TEXT("fatal flex scanner internal error--no action found") );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of ace_yylex */
+ ACE_YY_BREAK
+
+ case ACE_YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB ACE_TCHAR. */
+ int ace_yy_amount_of_matched_text = (int) (ace_yy_cp - ace_yytext_ptr) - 1;
+
+ /* Undo the effects of ACE_YY_DO_BEFORE_ACTION. */
+ *ace_yy_cp = ace_yy_hold_char;
+ ACE_YY_RESTORE_ACE_YY_MORE_OFFSET
+
+ if ( ace_yy_current_buffer->ace_yy_buffer_status == ACE_YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed ace_yyin at a new source and called
+ * ace_yylex(). If so, then we have to assure
+ * consistency between ace_yy_current_buffer and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ ace_yy_n_chars = ace_yy_current_buffer->ace_yy_n_chars;
+ ace_yy_current_buffer->ace_yy_input_file = ace_yyin;
+ ace_yy_current_buffer->ace_yy_buffer_status = ACE_YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for ace_yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since ace_yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( ace_yy_c_buf_p <= &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] )
+ { /* This was really a NUL. */
+ ace_yy_state_type ace_yy_next_state;
+
+ ace_yy_c_buf_p = ace_yytext_ptr + ace_yy_amount_of_matched_text;
+
+ ace_yy_current_state = ace_yy_get_previous_state();
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * ace_yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ ace_yy_next_state = ace_yy_try_NUL_trans( ace_yy_current_state );
+
+ ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
+
+ if ( ace_yy_next_state )
+ {
+ /* Consume the NUL. */
+ ace_yy_cp = ++ace_yy_c_buf_p;
+ ace_yy_current_state = ace_yy_next_state;
+ goto ace_yy_match;
+ }
+
+ else
+ {
+ ace_yy_cp = ace_yy_c_buf_p;
+ goto ace_yy_find_action;
+ }
+ }
+
+ else switch ( ace_yy_get_next_buffer() )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ ace_yy_did_buffer_switch_on_eof = 0;
+
+ if ( ace_yywrap() )
+ {
+ /* Note: because we've taken care in
+ * ace_yy_get_next_buffer() to have set up
+ * ace_yytext, we can now set up
+ * ace_yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * ACE_YY_NULL, it'll still work - another
+ * ACE_YY_NULL will get returned.
+ */
+ ace_yy_c_buf_p = ace_yytext_ptr + ACE_YY_MORE_ADJ;
+
+ ace_yy_act = ACE_YY_STATE_EOF(ACE_YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! ace_yy_did_buffer_switch_on_eof )
+ ACE_YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ ace_yy_c_buf_p =
+ ace_yytext_ptr + ace_yy_amount_of_matched_text;
+
+ ace_yy_current_state = ace_yy_get_previous_state();
+
+ ace_yy_cp = ace_yy_c_buf_p;
+ ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
+ goto ace_yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ ace_yy_c_buf_p =
+ &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars];
+
+ ace_yy_current_state = ace_yy_get_previous_state();
+
+ ace_yy_cp = ace_yy_c_buf_p;
+ ace_yy_bp = ace_yytext_ptr + ACE_YY_MORE_ADJ;
+ goto ace_yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ ACE_YY_FATAL_ERROR(
+ ACE_LIB_TEXT("fatal flex scanner internal error--no action found") );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of ace_yylex */
/* ace_yy_get_next_buffer - try to read in a new buffer
*
* Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
*/
static int ace_yy_get_next_buffer()
- {
- register ACE_TCHAR *dest = ace_yy_current_buffer->ace_yy_ch_buf;
- register ACE_TCHAR *source = ace_yytext_ptr;
- register int number_to_move, i;
- int ret_val;
-
- if ( ace_yy_c_buf_p > &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] )
- ACE_YY_FATAL_ERROR(
- ACE_LIB_TEXT("fatal flex scanner internal error--end of buffer missed") );
-
- if ( ace_yy_current_buffer->ace_yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( ace_yy_c_buf_p - ace_yytext_ptr - ACE_YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) (ace_yy_c_buf_p - ace_yytext_ptr) - 1;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( ace_yy_current_buffer->ace_yy_buffer_status == ACE_YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars = 0;
-
- else
- {
- int num_to_read =
- ace_yy_current_buffer->ace_yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
+ {
+ register ACE_TCHAR *dest = ace_yy_current_buffer->ace_yy_ch_buf;
+ register ACE_TCHAR *source = ace_yytext_ptr;
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( ace_yy_c_buf_p > &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] )
+ ACE_YY_FATAL_ERROR(
+ ACE_LIB_TEXT("fatal flex scanner internal error--end of buffer missed") );
+
+ if ( ace_yy_current_buffer->ace_yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( ace_yy_c_buf_p - ace_yytext_ptr - ACE_YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) (ace_yy_c_buf_p - ace_yytext_ptr) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( ace_yy_current_buffer->ace_yy_buffer_status == ACE_YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ ace_yy_current_buffer->ace_yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
#ifdef ACE_YY_USES_REJECT
ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT") );
#else
- /* just a shorter name for the current buffer */
- ACE_YY_BUFFER_STATE b = ace_yy_current_buffer;
+ /* just a shorter name for the current buffer */
+ ACE_YY_BUFFER_STATE b = ace_yy_current_buffer;
- int ace_yy_c_buf_p_offset =
- (int) (ace_yy_c_buf_p - b->ace_yy_ch_buf);
+ int ace_yy_c_buf_p_offset =
+ (int) (ace_yy_c_buf_p - b->ace_yy_ch_buf);
- if ( b->ace_yy_is_our_buffer )
- {
- int new_size = b->ace_yy_buf_size * 2;
+ if ( b->ace_yy_is_our_buffer )
+ {
+ int new_size = b->ace_yy_buf_size * 2;
- if ( new_size <= 0 )
- b->ace_yy_buf_size += b->ace_yy_buf_size / 8;
- else
- b->ace_yy_buf_size *= 2;
+ if ( new_size <= 0 )
+ b->ace_yy_buf_size += b->ace_yy_buf_size / 8;
+ else
+ b->ace_yy_buf_size *= 2;
- b->ace_yy_ch_buf = (ACE_TCHAR *)
- /* Include room in for 2 EOB chars. */
- ace_yy_flex_realloc( (void *) b->ace_yy_ch_buf,
+ b->ace_yy_ch_buf = (ACE_TCHAR *)
+ /* Include room in for 2 EOB chars. */
+ ace_yy_flex_realloc( (void *) b->ace_yy_ch_buf,
(b->ace_yy_buf_size + 2)*sizeof(ACE_TCHAR));
- }
- else
- /* Can't grow it, we don't own it. */
- b->ace_yy_ch_buf = 0;
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->ace_yy_ch_buf = 0;
- if ( ! b->ace_yy_ch_buf )
+ if ( ! b->ace_yy_ch_buf )
ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
- "fatal error - scanner input buffer overflow") );
+ "fatal error - scanner input buffer overflow") );
- ace_yy_c_buf_p = &b->ace_yy_ch_buf[ace_yy_c_buf_p_offset];
+ ace_yy_c_buf_p = &b->ace_yy_ch_buf[ace_yy_c_buf_p_offset];
- num_to_read = ace_yy_current_buffer->ace_yy_buf_size -
- number_to_move - 1;
+ num_to_read = ace_yy_current_buffer->ace_yy_buf_size -
+ number_to_move - 1;
#endif
- }
+ }
- if ( num_to_read * sizeof (ACE_TCHAR) > ACE_YY_READ_BUF_SIZE )
- num_to_read = ACE_YY_READ_BUF_SIZE/sizeof (ACE_TCHAR);
+ if ( num_to_read * sizeof (ACE_TCHAR) > ACE_YY_READ_BUF_SIZE )
+ num_to_read = ACE_YY_READ_BUF_SIZE/sizeof (ACE_TCHAR);
- /* Read in more data. */
- ACE_YY_INPUT( (&ace_yy_current_buffer->ace_yy_ch_buf[number_to_move]),
- ace_yy_n_chars, num_to_read );
+ /* Read in more data. */
+ ACE_YY_INPUT( (&ace_yy_current_buffer->ace_yy_ch_buf[number_to_move]),
+ ace_yy_n_chars, num_to_read );
- ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars;
- }
+ ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars;
+ }
- if ( ace_yy_n_chars == 0 )
- {
- if ( number_to_move == ACE_YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- ace_yyrestart( ace_yyin );
- }
+ if ( ace_yy_n_chars == 0 )
+ {
+ if ( number_to_move == ACE_YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ ace_yyrestart( ace_yyin );
+ }
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- ace_yy_current_buffer->ace_yy_buffer_status =
- ACE_YY_BUFFER_EOF_PENDING;
- }
- }
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ ace_yy_current_buffer->ace_yy_buffer_status =
+ ACE_YY_BUFFER_EOF_PENDING;
+ }
+ }
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
- ace_yy_n_chars += number_to_move;
- ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] = ACE_YY_END_OF_BUFFER_CHAR;
- ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] = ACE_YY_END_OF_BUFFER_CHAR;
+ ace_yy_n_chars += number_to_move;
+ ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] = ACE_YY_END_OF_BUFFER_CHAR;
+ ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] = ACE_YY_END_OF_BUFFER_CHAR;
- ace_yytext_ptr = &ace_yy_current_buffer->ace_yy_ch_buf[0];
+ ace_yytext_ptr = &ace_yy_current_buffer->ace_yy_ch_buf[0];
- return ret_val;
- }
+ return ret_val;
+ }
/* ace_yy_get_previous_state - get the state just before the EOB ACE_TCHAR was reached */
static ace_yy_state_type ace_yy_get_previous_state()
- {
- register ace_yy_state_type ace_yy_current_state;
- register ACE_TCHAR *ace_yy_cp;
-
- ace_yy_current_state = ace_yy_start;
- ace_yy_current_state += ACE_YY_AT_BOL();
-
- for ( ace_yy_cp = ace_yytext_ptr + ACE_YY_MORE_ADJ; ace_yy_cp < ace_yy_c_buf_p; ++ace_yy_cp )
- {
- register ACE_YY_CHAR ace_yy_c = (*ace_yy_cp ? ace_yy_ec[ACE_YY_SC_TO_UI(*ace_yy_cp)] : 1);
- if ( ace_yy_accept[ace_yy_current_state] )
- {
- ace_yy_last_accepting_state = ace_yy_current_state;
- ace_yy_last_accepting_cpos = ace_yy_cp;
- }
- while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
- {
- ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
- if ( ace_yy_current_state >= 108 )
- ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
- }
- ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
- }
-
- return ace_yy_current_state;
- }
+ {
+ register ace_yy_state_type ace_yy_current_state;
+ register ACE_TCHAR *ace_yy_cp;
+
+ ace_yy_current_state = ace_yy_start;
+ ace_yy_current_state += ACE_YY_AT_BOL();
+
+ for ( ace_yy_cp = ace_yytext_ptr + ACE_YY_MORE_ADJ; ace_yy_cp < ace_yy_c_buf_p; ++ace_yy_cp )
+ {
+ register ACE_YY_CHAR ace_yy_c = (*ace_yy_cp ? ace_yy_ec[ACE_YY_SC_TO_UI(*ace_yy_cp)] : 1);
+ if ( ace_yy_accept[ace_yy_current_state] )
+ {
+ ace_yy_last_accepting_state = ace_yy_current_state;
+ ace_yy_last_accepting_cpos = ace_yy_cp;
+ }
+ while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
+ {
+ ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
+ if ( ace_yy_current_state >= 108 )
+ ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
+ }
+ ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
+ }
+
+ return ace_yy_current_state;
+ }
/* ace_yy_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
- * next_state = ace_yy_try_NUL_trans( current_state );
+ * next_state = ace_yy_try_NUL_trans( current_state );
*/
#ifdef ACE_YY_USE_PROTOS
@@ -1219,27 +1221,27 @@ static ace_yy_state_type ace_yy_try_NUL_trans( ace_yy_state_type ace_yy_current_
static ace_yy_state_type ace_yy_try_NUL_trans( ace_yy_current_state )
ace_yy_state_type ace_yy_current_state;
#endif
- {
- register int ace_yy_is_jam;
- register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
-
- register ACE_YY_CHAR ace_yy_c = 1;
- if ( ace_yy_accept[ace_yy_current_state] )
- {
- ace_yy_last_accepting_state = ace_yy_current_state;
- ace_yy_last_accepting_cpos = ace_yy_cp;
- }
- while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
- {
- ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
- if ( ace_yy_current_state >= 108 )
- ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
- }
- ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
- ace_yy_is_jam = (ace_yy_current_state == 107);
-
- return ace_yy_is_jam ? 0 : ace_yy_current_state;
- }
+ {
+ register int ace_yy_is_jam;
+ register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
+
+ register ACE_YY_CHAR ace_yy_c = 1;
+ if ( ace_yy_accept[ace_yy_current_state] )
+ {
+ ace_yy_last_accepting_state = ace_yy_current_state;
+ ace_yy_last_accepting_cpos = ace_yy_cp;
+ }
+ while ( ace_yy_chk[ace_yy_base[ace_yy_current_state] + ace_yy_c] != ace_yy_current_state )
+ {
+ ace_yy_current_state = (int) ace_yy_def[ace_yy_current_state];
+ if ( ace_yy_current_state >= 108 )
+ ace_yy_c = ace_yy_meta[(unsigned int) ace_yy_c];
+ }
+ ace_yy_current_state = ace_yy_nxt[ace_yy_base[ace_yy_current_state] + (unsigned int) ace_yy_c];
+ ace_yy_is_jam = (ace_yy_current_state == 107);
+
+ return ace_yy_is_jam ? 0 : ace_yy_current_state;
+ }
#ifndef ACE_YY_NO_UNPUT
@@ -1250,41 +1252,41 @@ static void ace_yyunput( c, ace_yy_bp )
int c;
register ACE_TCHAR *ace_yy_bp;
#endif
- {
- register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
+ {
+ register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
- /* undo effects of setting up ace_yytext */
- *ace_yy_cp = ace_yy_hold_char;
+ /* undo effects of setting up ace_yytext */
+ *ace_yy_cp = ace_yy_hold_char;
- if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- register int number_to_move = ace_yy_n_chars + 2;
- register ACE_TCHAR *dest = &ace_yy_current_buffer->ace_yy_ch_buf[
- ace_yy_current_buffer->ace_yy_buf_size + 2];
- register ACE_TCHAR *source =
- &ace_yy_current_buffer->ace_yy_ch_buf[number_to_move];
+ if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = ace_yy_n_chars + 2;
+ register ACE_TCHAR *dest = &ace_yy_current_buffer->ace_yy_ch_buf[
+ ace_yy_current_buffer->ace_yy_buf_size + 2];
+ register ACE_TCHAR *source =
+ &ace_yy_current_buffer->ace_yy_ch_buf[number_to_move];
- while ( source > ace_yy_current_buffer->ace_yy_ch_buf )
- *--dest = *--source;
+ while ( source > ace_yy_current_buffer->ace_yy_ch_buf )
+ *--dest = *--source;
- ace_yy_cp += (int) (dest - source);
- ace_yy_bp += (int) (dest - source);
- ace_yy_current_buffer->ace_yy_n_chars =
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_buf_size;
+ ace_yy_cp += (int) (dest - source);
+ ace_yy_bp += (int) (dest - source);
+ ace_yy_current_buffer->ace_yy_n_chars =
+ ace_yy_n_chars = ace_yy_current_buffer->ace_yy_buf_size;
- if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "flex scanner push-back overflow") );
- }
+ if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "flex scanner push-back overflow") );
+ }
- *--ace_yy_cp = (ACE_TCHAR) c;
+ *--ace_yy_cp = (ACE_TCHAR) c;
- ace_yytext_ptr = ace_yy_bp;
- ace_yy_hold_char = *ace_yy_cp;
- ace_yy_c_buf_p = ace_yy_cp;
- }
-#endif /* ifndef ACE_YY_NO_UNPUT */
+ ace_yytext_ptr = ace_yy_bp;
+ ace_yy_hold_char = *ace_yy_cp;
+ ace_yy_c_buf_p = ace_yy_cp;
+ }
+#endif /* ifndef ACE_YY_NO_UNPUT */
#ifdef __cplusplus
@@ -1292,73 +1294,73 @@ static int ace_yyinput()
#else
static int input()
#endif
- {
- int c;
-
- *ace_yy_c_buf_p = ace_yy_hold_char;
-
- if ( *ace_yy_c_buf_p == ACE_YY_END_OF_BUFFER_CHAR )
- {
- /* ace_yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( ace_yy_c_buf_p < &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] )
- /* This was really a NUL. */
- *ace_yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- int offset = ace_yy_c_buf_p - ace_yytext_ptr;
- ++ace_yy_c_buf_p;
-
- switch ( ace_yy_get_next_buffer() )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because ace_yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- ace_yyrestart( ace_yyin );
-
- /* fall through */
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( ace_yywrap() )
- return EOF;
-
- if ( ! ace_yy_did_buffer_switch_on_eof )
- ACE_YY_NEW_FILE;
+ {
+ int c;
+
+ *ace_yy_c_buf_p = ace_yy_hold_char;
+
+ if ( *ace_yy_c_buf_p == ACE_YY_END_OF_BUFFER_CHAR )
+ {
+ /* ace_yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( ace_yy_c_buf_p < &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars] )
+ /* This was really a NUL. */
+ *ace_yy_c_buf_p = '\0';
+
+ else
+ { /* need more input */
+ int offset = ace_yy_c_buf_p - ace_yytext_ptr;
+ ++ace_yy_c_buf_p;
+
+ switch ( ace_yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because ace_yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ ace_yyrestart( ace_yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( ace_yywrap() )
+ return EOF;
+
+ if ( ! ace_yy_did_buffer_switch_on_eof )
+ ACE_YY_NEW_FILE;
#ifdef __cplusplus
- return ace_yyinput();
+ return ace_yyinput();
#else
- return input();
+ return input();
#endif
- }
+ }
- case EOB_ACT_CONTINUE_SCAN:
- ace_yy_c_buf_p = ace_yytext_ptr + offset;
- break;
- }
- }
- }
+ case EOB_ACT_CONTINUE_SCAN:
+ ace_yy_c_buf_p = ace_yytext_ptr + offset;
+ break;
+ }
+ }
+ }
- c = *(unsigned char *) ace_yy_c_buf_p; /* cast for 8-bit char's */
- *ace_yy_c_buf_p = '\0'; /* preserve ace_yytext */
- ace_yy_hold_char = *++ace_yy_c_buf_p;
+ c = *(unsigned char *) ace_yy_c_buf_p; /* cast for 8-bit char's */
+ *ace_yy_c_buf_p = '\0'; /* preserve ace_yytext */
+ ace_yy_hold_char = *++ace_yy_c_buf_p;
- ace_yy_current_buffer->ace_yy_at_bol = (c == '\n');
+ ace_yy_current_buffer->ace_yy_at_bol = (c == '\n');
- return c;
- }
+ return c;
+ }
#ifdef ACE_YY_USE_PROTOS
@@ -1367,13 +1369,13 @@ void ace_yyrestart( FILE *input_file )
void ace_yyrestart( input_file )
FILE *input_file;
#endif
- {
- if ( ! ace_yy_current_buffer )
- ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE );
+ {
+ if ( ! ace_yy_current_buffer )
+ ace_yy_current_buffer = ace_yy_create_buffer( ace_yyin, ACE_YY_BUF_SIZE );
- ace_yy_init_buffer( ace_yy_current_buffer, input_file );
- ace_yy_load_buffer_state();
- }
+ ace_yy_init_buffer( ace_yy_current_buffer, input_file );
+ ace_yy_load_buffer_state();
+ }
#ifdef ACE_YY_USE_PROTOS
@@ -1382,28 +1384,28 @@ void ace_yy_switch_to_buffer( ACE_YY_BUFFER_STATE new_buffer )
void ace_yy_switch_to_buffer( new_buffer )
ACE_YY_BUFFER_STATE new_buffer;
#endif
- {
- if ( ace_yy_current_buffer == new_buffer )
- return;
+ {
+ if ( ace_yy_current_buffer == new_buffer )
+ return;
- if ( ace_yy_current_buffer )
- {
- /* Flush out information for old buffer. */
- *ace_yy_c_buf_p = ace_yy_hold_char;
- ace_yy_current_buffer->ace_yy_buf_pos = ace_yy_c_buf_p;
- ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars;
- }
+ if ( ace_yy_current_buffer )
+ {
+ /* Flush out information for old buffer. */
+ *ace_yy_c_buf_p = ace_yy_hold_char;
+ ace_yy_current_buffer->ace_yy_buf_pos = ace_yy_c_buf_p;
+ ace_yy_current_buffer->ace_yy_n_chars = ace_yy_n_chars;
+ }
- ace_yy_current_buffer = new_buffer;
- ace_yy_load_buffer_state();
+ ace_yy_current_buffer = new_buffer;
+ ace_yy_load_buffer_state();
- /* We don't actually know whether we did this switch during
- * EOF (ace_yywrap()) processing, but the only time this flag
- * is looked at is after ace_yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- ace_yy_did_buffer_switch_on_eof = 1;
- }
+ /* We don't actually know whether we did this switch during
+ * EOF (ace_yywrap()) processing, but the only time this flag
+ * is looked at is after ace_yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ ace_yy_did_buffer_switch_on_eof = 1;
+ }
#ifdef ACE_YY_USE_PROTOS
@@ -1411,12 +1413,12 @@ void ace_yy_load_buffer_state( void )
#else
void ace_yy_load_buffer_state()
#endif
- {
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_n_chars;
- ace_yytext_ptr = ace_yy_c_buf_p = ace_yy_current_buffer->ace_yy_buf_pos;
- ace_yyin = ace_yy_current_buffer->ace_yy_input_file;
- ace_yy_hold_char = *ace_yy_c_buf_p;
- }
+ {
+ ace_yy_n_chars = ace_yy_current_buffer->ace_yy_n_chars;
+ ace_yytext_ptr = ace_yy_c_buf_p = ace_yy_current_buffer->ace_yy_buf_pos;
+ ace_yyin = ace_yy_current_buffer->ace_yy_input_file;
+ ace_yy_hold_char = *ace_yy_c_buf_p;
+ }
#ifdef ACE_YY_USE_PROTOS
@@ -1426,28 +1428,28 @@ ACE_YY_BUFFER_STATE ace_yy_create_buffer( file, size )
FILE *file;
int size;
#endif
- {
- ACE_YY_BUFFER_STATE b;
+ {
+ ACE_YY_BUFFER_STATE b;
- b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
- if ( ! b )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
+ b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
+ if ( ! b )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
- b->ace_yy_buf_size = size;
+ b->ace_yy_buf_size = size;
- /* ace_yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->ace_yy_ch_buf = (ACE_TCHAR *) ace_yy_flex_alloc( (b->ace_yy_buf_size + 2 ) * sizeof (ACE_TCHAR));
- if ( ! b->ace_yy_ch_buf )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
+ /* ace_yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->ace_yy_ch_buf = (ACE_TCHAR *) ace_yy_flex_alloc( (b->ace_yy_buf_size + 2 ) * sizeof (ACE_TCHAR));
+ if ( ! b->ace_yy_ch_buf )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
- b->ace_yy_is_our_buffer = 1;
+ b->ace_yy_is_our_buffer = 1;
- ace_yy_init_buffer( b, file );
+ ace_yy_init_buffer( b, file );
- return b;
- }
+ return b;
+ }
#ifdef ACE_YY_USE_PROTOS
@@ -1456,18 +1458,18 @@ void ace_yy_delete_buffer( ACE_YY_BUFFER_STATE b )
void ace_yy_delete_buffer( b )
ACE_YY_BUFFER_STATE b;
#endif
- {
- if ( ! b )
- return;
+ {
+ if ( ! b )
+ return;
- if ( b == ace_yy_current_buffer )
- ace_yy_current_buffer = (ACE_YY_BUFFER_STATE) 0;
+ if ( b == ace_yy_current_buffer )
+ ace_yy_current_buffer = (ACE_YY_BUFFER_STATE) 0;
- if ( b->ace_yy_is_our_buffer )
- ace_yy_flex_free( (void *) b->ace_yy_ch_buf );
+ if ( b->ace_yy_is_our_buffer )
+ ace_yy_flex_free( (void *) b->ace_yy_ch_buf );
- ace_yy_flex_free( (void *) b );
- }
+ ace_yy_flex_free( (void *) b );
+ }
#ifndef ACE_YY_ALWAYS_INTERACTIVE
#ifndef ACE_YY_NEVER_INTERACTIVE
@@ -1490,22 +1492,22 @@ FILE *file;
#endif
- {
- ace_yy_flush_buffer( b );
+ {
+ ace_yy_flush_buffer( b );
- b->ace_yy_input_file = file;
- b->ace_yy_fill_buffer = 1;
+ b->ace_yy_input_file = file;
+ b->ace_yy_fill_buffer = 1;
#if ACE_YY_ALWAYS_INTERACTIVE
- b->ace_yy_is_interactive = 1;
+ b->ace_yy_is_interactive = 1;
#else
#if ACE_YY_NEVER_INTERACTIVE
- b->ace_yy_is_interactive = 0;
+ b->ace_yy_is_interactive = 0;
#else
- b->ace_yy_is_interactive = file ? (ACE_OS::isatty( fileno (file) ) > 0) : 0;
+ b->ace_yy_is_interactive = file ? (ACE_OS::isatty( fileno (file) ) > 0) : 0;
#endif
#endif
- }
+ }
#ifdef ACE_YY_USE_PROTOS
@@ -1515,27 +1517,27 @@ void ace_yy_flush_buffer( b )
ACE_YY_BUFFER_STATE b;
#endif
- {
- if ( ! b )
- return;
+ {
+ if ( ! b )
+ return;
- b->ace_yy_n_chars = 0;
+ b->ace_yy_n_chars = 0;
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->ace_yy_ch_buf[0] = ACE_YY_END_OF_BUFFER_CHAR;
- b->ace_yy_ch_buf[1] = ACE_YY_END_OF_BUFFER_CHAR;
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->ace_yy_ch_buf[0] = ACE_YY_END_OF_BUFFER_CHAR;
+ b->ace_yy_ch_buf[1] = ACE_YY_END_OF_BUFFER_CHAR;
- b->ace_yy_buf_pos = &b->ace_yy_ch_buf[0];
+ b->ace_yy_buf_pos = &b->ace_yy_ch_buf[0];
- b->ace_yy_at_bol = 1;
- b->ace_yy_buffer_status = ACE_YY_BUFFER_NEW;
+ b->ace_yy_at_bol = 1;
+ b->ace_yy_buffer_status = ACE_YY_BUFFER_NEW;
- if ( b == ace_yy_current_buffer )
- ace_yy_load_buffer_state();
- }
+ if ( b == ace_yy_current_buffer )
+ ace_yy_load_buffer_state();
+ }
#ifndef ACE_YY_NO_SCAN_BUFFER
@@ -1546,33 +1548,33 @@ ACE_YY_BUFFER_STATE ace_yy_scan_buffer( base, size )
ACE_TCHAR *base;
ace_yy_size_t size;
#endif
- {
- ACE_YY_BUFFER_STATE b;
+ {
+ ACE_YY_BUFFER_STATE b;
- if ( size < 2 ||
- base[size-2] != ACE_YY_END_OF_BUFFER_CHAR ||
- base[size-1] != ACE_YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
+ if ( size < 2 ||
+ base[size-2] != ACE_YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != ACE_YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
- b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
- if ( ! b )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_buffer()" ));
+ b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
+ if ( ! b )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_buffer()" ));
- b->ace_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->ace_yy_buf_pos = b->ace_yy_ch_buf = base;
- b->ace_yy_is_our_buffer = 0;
- b->ace_yy_input_file = 0;
- b->ace_yy_n_chars = b->ace_yy_buf_size;
- b->ace_yy_is_interactive = 0;
- b->ace_yy_at_bol = 1;
- b->ace_yy_fill_buffer = 0;
- b->ace_yy_buffer_status = ACE_YY_BUFFER_NEW;
+ b->ace_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->ace_yy_buf_pos = b->ace_yy_ch_buf = base;
+ b->ace_yy_is_our_buffer = 0;
+ b->ace_yy_input_file = 0;
+ b->ace_yy_n_chars = b->ace_yy_buf_size;
+ b->ace_yy_is_interactive = 0;
+ b->ace_yy_at_bol = 1;
+ b->ace_yy_fill_buffer = 0;
+ b->ace_yy_buffer_status = ACE_YY_BUFFER_NEW;
- ace_yy_switch_to_buffer( b );
+ ace_yy_switch_to_buffer( b );
- return b;
- }
+ return b;
+ }
#endif
@@ -1583,13 +1585,13 @@ ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yyconst ACE_TCHAR *ace_yy_str )
ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yy_str )
ace_yyconst ACE_TCHAR *ace_yy_str;
#endif
- {
- int len;
- for ( len = 0; ace_yy_str[len]; ++len )
- ;
+ {
+ int len;
+ for ( len = 0; ace_yy_str[len]; ++len )
+ ;
- return ace_yy_scan_bytes( ace_yy_str, len );
- }
+ return ace_yy_scan_bytes( ace_yy_str, len );
+ }
#endif
@@ -1601,34 +1603,34 @@ ACE_YY_BUFFER_STATE ace_yy_scan_bytes( bytes, len )
ace_yyconst ACE_TCHAR *bytes;
int len;
#endif
- {
- ACE_YY_BUFFER_STATE b;
- ACE_TCHAR *buf;
- ace_yy_size_t n;
- int i;
+ {
+ ACE_YY_BUFFER_STATE b;
+ ACE_TCHAR *buf;
+ ace_yy_size_t n;
+ int i;
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (ACE_TCHAR *) ace_yy_flex_alloc( n * sizeof (ACE_TCHAR));
- if ( ! buf )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_bytes()" ));
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (ACE_TCHAR *) ace_yy_flex_alloc( n * sizeof (ACE_TCHAR));
+ if ( ! buf )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_bytes()" ));
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
- buf[len] = buf[len+1] = ACE_YY_END_OF_BUFFER_CHAR;
+ buf[len] = buf[len+1] = ACE_YY_END_OF_BUFFER_CHAR;
- b = ace_yy_scan_buffer( buf, n );
- if ( ! b )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "bad buffer in ace_yy_scan_bytes()") );
+ b = ace_yy_scan_buffer( buf, n );
+ if ( ! b )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "bad buffer in ace_yy_scan_bytes()") );
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->ace_yy_is_our_buffer = 1;
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->ace_yy_is_our_buffer = 1;
- return b;
- }
+ return b;
+ }
#endif
@@ -1639,49 +1641,49 @@ static void ace_yy_push_state( int new_state )
static void ace_yy_push_state( new_state )
int new_state;
#endif
- {
- if ( ace_yy_start_stack_ptr >= ace_yy_start_stack_depth )
- {
- ace_yy_size_t new_size;
+ {
+ if ( ace_yy_start_stack_ptr >= ace_yy_start_stack_depth )
+ {
+ ace_yy_size_t new_size;
- ace_yy_start_stack_depth += ACE_YY_START_STACK_INCR;
- new_size = ace_yy_start_stack_depth * sizeof( int );
+ ace_yy_start_stack_depth += ACE_YY_START_STACK_INCR;
+ new_size = ace_yy_start_stack_depth * sizeof( int );
- if ( ! ace_yy_start_stack )
- ace_yy_start_stack = (int *) ace_yy_flex_alloc( new_size );
+ if ( ! ace_yy_start_stack )
+ ace_yy_start_stack = (int *) ace_yy_flex_alloc( new_size );
- else
- ace_yy_start_stack = (int *) ace_yy_flex_realloc(
- (void *) ace_yy_start_stack, new_size );
+ else
+ ace_yy_start_stack = (int *) ace_yy_flex_realloc(
+ (void *) ace_yy_start_stack, new_size );
- if ( ! ace_yy_start_stack )
+ if ( ! ace_yy_start_stack )
ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
- "out of memory expanding start-condition stack" ));
- }
+ "out of memory expanding start-condition stack" ));
+ }
- ace_yy_start_stack[ace_yy_start_stack_ptr++] = ACE_YY_START;
+ ace_yy_start_stack[ace_yy_start_stack_ptr++] = ACE_YY_START;
- BEGIN(new_state);
- }
+ BEGIN(new_state);
+ }
#endif
#ifndef ACE_YY_NO_POP_STATE
static void ace_yy_pop_state()
- {
- if ( --ace_yy_start_stack_ptr < 0 )
- ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "start-condition stack underflow" ));
+ {
+ if ( --ace_yy_start_stack_ptr < 0 )
+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "start-condition stack underflow" ));
- BEGIN(ace_yy_start_stack[ace_yy_start_stack_ptr]);
- }
+ BEGIN(ace_yy_start_stack[ace_yy_start_stack_ptr]);
+ }
#endif
#ifndef ACE_YY_NO_TOP_STATE
static int ace_yy_top_state()
- {
- return ace_yy_start_stack[ace_yy_start_stack_ptr - 1];
- }
+ {
+ return ace_yy_start_stack[ace_yy_start_stack_ptr - 1];
+ }
#endif
#ifndef ACE_YY_EXIT_FAILURE
@@ -1694,10 +1696,10 @@ static void ace_yy_fatal_error( ace_yyconst ACE_TCHAR msg[] )
static void ace_yy_fatal_error( msg )
ACE_TCHAR msg[];
#endif
- {
- (void) ACE_OS::fprintf( stderr, ACE_LIB_TEXT("%s\n"), msg );
- exit( ACE_YY_EXIT_FAILURE );
- }
+ {
+ (void) ACE_OS::fprintf( stderr, ACE_LIB_TEXT("%s\n"), msg );
+ exit( ACE_YY_EXIT_FAILURE );
+ }
@@ -1705,16 +1707,16 @@ ACE_TCHAR msg[];
#undef ace_yyless
#define ace_yyless(n) \
- do \
- { \
- /* Undo effects of setting up ace_yytext. */ \
- ace_yytext[ace_yyleng] = ace_yy_hold_char; \
- ace_yy_c_buf_p = ace_yytext + n; \
- ace_yy_hold_char = *ace_yy_c_buf_p; \
- *ace_yy_c_buf_p = '\0'; \
- ace_yyleng = n; \
- } \
- while ( 0 )
+ do \
+ { \
+ /* Undo effects of setting up ace_yytext. */ \
+ ace_yytext[ace_yyleng] = ace_yy_hold_char; \
+ ace_yy_c_buf_p = ace_yytext + n; \
+ ace_yy_hold_char = *ace_yy_c_buf_p; \
+ *ace_yy_c_buf_p = '\0'; \
+ ace_yyleng = n; \
+ } \
+ while ( 0 )
/* Internal utility routines. */
@@ -1728,11 +1730,11 @@ ACE_TCHAR *s1;
ace_yyconst ACE_TCHAR *s2;
int n;
#endif
- {
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
#endif
#ifdef ACE_YY_NEED_STRLEN
@@ -1742,13 +1744,13 @@ static int ace_yy_flex_strlen( ace_yyconst ACE_TCHAR *s )
static int ace_yy_flex_strlen( s )
ace_yyconst ACE_TCHAR *s;
#endif
- {
- register int n;
- for ( n = 0; s[n]; ++n )
- ;
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
- return n;
- }
+ return n;
+ }
#endif
@@ -1758,9 +1760,9 @@ static void *ace_yy_flex_alloc( ace_yy_size_t size )
static void *ace_yy_flex_alloc( size )
ace_yy_size_t size;
#endif
- {
- return (void *) malloc( size );
- }
+ {
+ return (void *) malloc( size );
+ }
#ifdef ACE_YY_USE_PROTOS
static void *ace_yy_flex_realloc( void *ptr, ace_yy_size_t size )
@@ -1769,16 +1771,16 @@ static void *ace_yy_flex_realloc( ptr, size )
void *ptr;
ace_yy_size_t size;
#endif
- {
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
- }
+ {
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+ }
#ifdef ACE_YY_USE_PROTOS
static void ace_yy_flex_free( void *ptr )
@@ -1786,16 +1788,16 @@ static void ace_yy_flex_free( void *ptr )
static void ace_yy_flex_free( ptr )
void *ptr;
#endif
- {
- free( ACE_MALLOC_T (ptr) );
- }
+ {
+ free( ACE_MALLOC_T (ptr) );
+ }
#if ACE_YY_MAIN
int main()
- {
- ace_yylex();
- return 0;
- }
+ {
+ ace_yylex();
+ return 0;
+}
#endif
int
@@ -1848,3 +1850,5 @@ ace_yy_pop_buffer (ace_yy_buffer_state *buffer)
ace_yy_switch_to_buffer (buffer);
}
+
+#endif /* ACE_USES_CLASSIC_SVC_CONF = 1 */
diff --git a/ace/Svc_Conf_y.cpp b/ace/Svc_Conf_y.cpp
index 84b4fe61e54..3ec20415303 100644
--- a/ace/Svc_Conf_y.cpp
+++ b/ace/Svc_Conf_y.cpp
@@ -2,6 +2,7 @@
/* A Bison parser, made from Svc_Conf.y
by GNU Bison version 1.28 */
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
#define ACE_YYBISON 1 /* Identify Bison output. */
#define ACE_DYNAMIC 257
@@ -18,7 +19,7 @@
#define ACE_PATHNAME 268
#define ACE_IDENT 269
#define ACE_STRING 270
-
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
// $Id$
@@ -31,6 +32,7 @@ ACE_RCSID (ace,
Svc_Conf_y,
"$Id$")
+#if (ACE_USES_CLASSIC_SVC_CONF == 1)
// Prototypes.
static ACE_Module_Type *ace_get_module (ACE_Static_Node *str_rec,
ACE_Static_Node *svc_type);
@@ -1403,3 +1405,4 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return ace_yyparse (&param);
}
#endif /* DEBUGGING */
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 1 */
diff --git a/ace/XML_Svc_Conf.cpp b/ace/XML_Svc_Conf.cpp
new file mode 100644
index 00000000000..76300b641d7
--- /dev/null
+++ b/ace/XML_Svc_Conf.cpp
@@ -0,0 +1,9 @@
+// $Id$
+
+#include "ace/XML_Svc_Conf.h"
+
+#if (ACE_USES_CLASSIC_SVC_CONF == 0)
+ACE_XML_Svc_Conf::~ACE_XML_Svc_Conf (void)
+{
+}
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
diff --git a/ace/XML_Svc_Conf.h b/ace/XML_Svc_Conf.h
new file mode 100644
index 00000000000..855504d34b5
--- /dev/null
+++ b/ace/XML_Svc_Conf.h
@@ -0,0 +1,54 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file XML_Svc_Conf.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#ifndef ACE_XML_SVC_CONF_H
+#define ACE_XML_SVC_CONF_H
+
+#include "ace/pre.h"
+
+#include "ace/config-all.h"
+
+#if (ACE_USES_CLASSIC_SVC_CONF == 0)
+/**
+ * @class ACE_XML_Svc_Conf
+ *
+ * @brief This abstract class defines the common operations
+ * ACE_Service_Config expects when using the XML Service Config Parser.
+ *
+ * When implementing a concret XML_Svc_Conf class, be sure to overload
+ * the new/delete function so the dynamically created concret XML_Svc_Conf
+ * instance can be deleted from the original heap in the DLL/SO. The
+ * concret XML_Svc_Conf implementation will be put into a DLL/SO that
+ * ACE applications can link to dynamically using the ACE_DLL class.
+ * This DLL should include an operation as follow:
+ *
+ * extern "C" ACE_XML_Svc_Conf_Parser * _ACEXML_create_XML_Svc_Conf_Object (void);
+ *
+ *
+ */
+class ACE_Export ACE_XML_Svc_Conf
+{
+public:
+ typedef ACE_XML_Svc_Conf *(*Factory)(void);
+
+ virtual ~ACE_XML_Svc_Conf (void) = 0;
+
+ virtual int parse_file (const ACE_TCHAR file[]) = 0;
+
+ virtual int parse_string (const ACE_TCHAR str[]) = 0;
+};
+#endif /* ACE_USES_CLASSIC_SVC_CONF == 0 */
+
+#include "ace/post.h"
+
+#endif /* ACE_XML_SVC_CONF_H */
diff --git a/ace/ace.icc b/ace/ace.icc
index 6de0551ba58..2837bebb2ed 100755
--- a/ace/ace.icc
+++ b/ace/ace.icc
@@ -379,6 +379,7 @@ group SVCCONF_FILES =
"Service_Types.cpp",
"Service_Templates.cpp",
"Shared_Object.cpp",
+ "XML_Svc_Conf.cpp",
"Svc_Conf_l.cpp",
"Svc_Conf_y.cpp",
"Svc_Conf_Lexer_Guard.cpp"
@@ -393,7 +394,9 @@ group SVCCONF_INCLUDES =
"Service_Repository.h",
"Service_Types.h",
"Service_Templates.h",
- "Shared_Object.h"
+ "Shared_Object.h",
+ "Svc_Conf.h",
+ "XML_Svc_Conf.h"
group STREAMS_FILES =
"CDR_Base.cpp",
diff --git a/ace/ace_dll.dsp b/ace/ace_dll.dsp
index e58fc6a7db2..3c5073f0d82 100644
--- a/ace/ace_dll.dsp
+++ b/ace/ace_dll.dsp
@@ -186,14 +186,6 @@ SOURCE=.\ARGV.cpp
# End Source File
# Begin Source File
-SOURCE=.\Argv_Type_Converter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Connector.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_IO.cpp
# End Source File
# Begin Source File
@@ -202,10 +194,6 @@ SOURCE=.\Asynch_IO_Impl.cpp
# End Source File
# Begin Source File
-SOURCE=.\Asynch_Pseudo_Task.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\ATM_Acceptor.cpp
# End Source File
# Begin Source File
@@ -274,10 +262,6 @@ SOURCE=.\Containers.cpp
# End Source File
# Begin Source File
-SOURCE=.\Copy_Disabled.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\Date_Time.cpp
# End Source File
# Begin Source File
@@ -954,10 +938,6 @@ SOURCE=.\Time_Request_Reply.cpp
# End Source File
# Begin Source File
-SOURCE=.\Time_Value.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\Timeprobe.cpp
# End Source File
# Begin Source File
@@ -1070,6 +1050,10 @@ SOURCE=.\WIN32_Proactor.cpp
# End Source File
# Begin Source File
+SOURCE=.\XML_Svc_Conf.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\XtReactor.cpp
# End Source File
# End Group
@@ -1118,18 +1102,10 @@ SOURCE=.\ARGV.h
# End Source File
# Begin Source File
-SOURCE=.\Argv_Type_Converter.h
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_Acceptor.h
# End Source File
# Begin Source File
-SOURCE=.\Asynch_Connector.h
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_IO.h
# End Source File
# Begin Source File
@@ -1138,10 +1114,6 @@ SOURCE=.\Asynch_IO_Impl.h
# End Source File
# Begin Source File
-SOURCE=.\Asynch_Pseudo_Task.h
-# End Source File
-# Begin Source File
-
SOURCE=.\ATM_Acceptor.h
# End Source File
# Begin Source File
@@ -1278,10 +1250,6 @@ SOURCE=.\Containers_T.h
# End Source File
# Begin Source File
-SOURCE=.\Copy_Disabled.h
-# End Source File
-# Begin Source File
-
SOURCE=.\Date_Time.h
# End Source File
# Begin Source File
@@ -2278,6 +2246,10 @@ SOURCE=.\WIN32_Proactor.h
# End Source File
# Begin Source File
+SOURCE=.\XML_Svc_Conf.h
+# End Source File
+# Begin Source File
+
SOURCE=.\XtReactor.h
# End Source File
# End Group
@@ -2314,10 +2286,6 @@ SOURCE=.\ARGV.i
# End Source File
# Begin Source File
-SOURCE=.\Argv_Type_Converter.inl
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_Acceptor.i
# End Source File
# Begin Source File
@@ -3046,10 +3014,6 @@ SOURCE=.\Thread_Manager.i
# End Source File
# Begin Source File
-SOURCE=.\Time_Value.inl
-# End Source File
-# Begin Source File
-
SOURCE=.\Timer_Queue_Adapters.i
# End Source File
# Begin Source File
@@ -3150,19 +3114,6 @@ SOURCE=.\Asynch_Acceptor.cpp
# Begin Source File
SOURCE=.\Atomic_Op.cpp
-
-!IF "$(CFG)" == "ACE DLL - Win32 MFC Release"
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 MFC Debug"
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 Release"
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 Debug"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
# End Source File
# Begin Source File
@@ -3217,19 +3168,6 @@ SOURCE=.\Dump_T.cpp
# Begin Source File
SOURCE=.\Framework_Component_T.cpp
-
-!IF "$(CFG)" == "ACE DLL - Win32 MFC Release"
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 MFC Debug"
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 Release"
-
-!ELSEIF "$(CFG)" == "ACE DLL - Win32 Debug"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
# End Source File
# Begin Source File
diff --git a/ace/ace_lib.dsp b/ace/ace_lib.dsp
index d6de6069d7e..13d376dc851 100644
--- a/ace/ace_lib.dsp
+++ b/ace/ace_lib.dsp
@@ -173,14 +173,6 @@ SOURCE=.\ARGV.cpp
# End Source File
# Begin Source File
-SOURCE=.\Argv_Type_Converter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Asynch_Connector.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_IO.cpp
# End Source File
# Begin Source File
@@ -189,10 +181,6 @@ SOURCE=.\Asynch_IO_Impl.cpp
# End Source File
# Begin Source File
-SOURCE=.\Asynch_Pseudo_Task.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\ATM_Acceptor.cpp
# End Source File
# Begin Source File
@@ -261,10 +249,6 @@ SOURCE=.\Containers.cpp
# End Source File
# Begin Source File
-SOURCE=.\Copy_Disabled.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\Date_Time.cpp
# End Source File
# Begin Source File
@@ -945,10 +929,6 @@ SOURCE=.\Time_Request_Reply.cpp
# End Source File
# Begin Source File
-SOURCE=.\Time_Value.cpp
-# End Source File
-# Begin Source File
-
SOURCE=.\Timeprobe.cpp
# End Source File
# Begin Source File
@@ -1061,6 +1041,10 @@ SOURCE=.\WIN32_Proactor.cpp
# End Source File
# Begin Source File
+SOURCE=.\XML_Svc_Conf.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\XtReactor.cpp
# End Source File
# End Group
@@ -1109,18 +1093,10 @@ SOURCE=.\ARGV.h
# End Source File
# Begin Source File
-SOURCE=.\Argv_Type_Converter.h
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_Acceptor.h
# End Source File
# Begin Source File
-SOURCE=.\Asynch_Connector.h
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_IO.h
# End Source File
# Begin Source File
@@ -1129,10 +1105,6 @@ SOURCE=.\Asynch_IO_Impl.h
# End Source File
# Begin Source File
-SOURCE=.\Asynch_Pseudo_Task.h
-# End Source File
-# Begin Source File
-
SOURCE=.\ATM_Acceptor.h
# End Source File
# Begin Source File
@@ -1273,10 +1245,6 @@ SOURCE=.\Containers_T.h
# End Source File
# Begin Source File
-SOURCE=.\Copy_Disabled.h
-# End Source File
-# Begin Source File
-
SOURCE=.\Date_Time.h
# End Source File
# Begin Source File
@@ -2273,6 +2241,10 @@ SOURCE=.\WIN32_Proactor.h
# End Source File
# Begin Source File
+SOURCE=.\XML_Svc_Conf.h
+# End Source File
+# Begin Source File
+
SOURCE=.\XtReactor.h
# End Source File
# End Group
@@ -2309,10 +2281,6 @@ SOURCE=.\ARGV.i
# End Source File
# Begin Source File
-SOURCE=.\Argv_Type_Converter.inl
-# End Source File
-# Begin Source File
-
SOURCE=.\Asynch_Acceptor.i
# End Source File
# Begin Source File
@@ -3041,10 +3009,6 @@ SOURCE=.\Thread_Manager.i
# End Source File
# Begin Source File
-SOURCE=.\Time_Value.inl
-# End Source File
-# Begin Source File
-
SOURCE=.\Timer_Queue_Adapters.i
# End Source File
# Begin Source File
@@ -3145,19 +3109,6 @@ SOURCE=.\Asynch_Acceptor.cpp
# Begin Source File
SOURCE=.\Atomic_Op.cpp
-
-!IF "$(CFG)" == "ACE LIB - Win32 Pharlap ETS Static Release"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Pharlap ETS Static Debug"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Static Release"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Static Debug"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
# End Source File
# Begin Source File
@@ -3212,19 +3163,6 @@ SOURCE=.\Dump_T.cpp
# Begin Source File
SOURCE=.\Framework_Component_T.cpp
-
-!IF "$(CFG)" == "ACE LIB - Win32 Pharlap ETS Static Release"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Pharlap ETS Static Debug"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Static Release"
-
-!ELSEIF "$(CFG)" == "ACE LIB - Win32 Static Debug"
-
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
# End Source File
# Begin Source File
diff --git a/ace/config-all.h b/ace/config-all.h
index 395eb68d2a9..62fadf96134 100644
--- a/ace/config-all.h
+++ b/ace/config-all.h
@@ -635,6 +635,33 @@ typedef void *(*ACE_THR_C_FUNC)(void *);
#endif /* ACE_HAS_PACE */
// ============================================================================
+// ACE_USES_CLASSIC_SVC_CONF macro
+// ============================================================================
+
+// For now, default is to use the classic svc.conf format.
+#if !defined (ACE_USES_CLASSIC_SVC_CONF)
+# if defined (ACE_HAS_CLASSIC_SVC_CONF) && defined (ACE_HAS_XML_SVC_CONF)
+# error You can only use either CLASSIC or XML svc.conf, not both.
+# endif
+// Change the ACE_HAS_XML_SVC_CONF to ACE_HAS_CLASSIC_SVC_CONF when
+// we switch ACE to use XML svc.conf as default format.
+# if defined (ACE_HAS_XML_SVC_CONF)
+# define ACE_USES_CLASSIC_SVC_CONF 0
+# else
+# define ACE_USES_CLASSIC_SVC_CONF 1
+# endif /* ACE_HAS_XML_SVC_CONF */
+#endif /* ACE_USES_CLASSIC_SVC_CONF */
+
+// ============================================================================
+// Default svc.conf file extension.
+// ============================================================================
+#if defined (ACE_USES_CLASSIC_SVC_CONF) && (ACE_USES_CLASSIC_SVC_CONF == 1)
+# define ACE_DEFAULT_SVC_CONF_EXT ".conf"
+#else
+# define ACE_DEFAULT_SVC_CONF_EXT ".conf.xml"
+#endif /* ACE_USES_CLASSIC_SVC_CONF && ACE_USES_CLASSIC_SVC_CONF == 1 */
+
+// ============================================================================
// Miscellaneous macros
// ============================================================================