aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Bytecode/BytecodeHandler.h3
-rw-r--r--include/llvm/GlobalVariable.h9
-rw-r--r--lib/AsmParser/Lexer.cpp.cvs2984
-rw-r--r--lib/AsmParser/Lexer.l1
-rw-r--r--lib/AsmParser/Lexer.l.cvs1
-rw-r--r--lib/AsmParser/llvmAsmParser.cpp.cvs4127
-rw-r--r--lib/AsmParser/llvmAsmParser.h.cvs450
-rw-r--r--lib/AsmParser/llvmAsmParser.y31
-rw-r--r--lib/AsmParser/llvmAsmParser.y.cvs31
-rw-r--r--lib/Bytecode/Reader/Analyzer.cpp4
-rw-r--r--lib/Bytecode/Reader/Reader.cpp9
-rw-r--r--lib/Bytecode/Writer/Writer.cpp11
-rw-r--r--lib/Linker/LinkModules.cpp7
-rw-r--r--lib/Transforms/IPO/GlobalOpt.cpp26
-rw-r--r--lib/Transforms/Utils/CloneModule.cpp2
-rw-r--r--lib/VMCore/AsmWriter.cpp3
-rw-r--r--lib/VMCore/Globals.cpp12
17 files changed, 4051 insertions, 3660 deletions
diff --git a/include/llvm/Bytecode/BytecodeHandler.h b/include/llvm/Bytecode/BytecodeHandler.h
index eeae2a58d6..3d885e123f 100644
--- a/include/llvm/Bytecode/BytecodeHandler.h
+++ b/include/llvm/Bytecode/BytecodeHandler.h
@@ -112,7 +112,8 @@ public:
GlobalValue::LinkageTypes,///< The linkage type of the GV
GlobalValue::VisibilityTypes,///< The visibility style of the GV
unsigned SlotNum, ///< Slot number of GV
- unsigned initSlot ///< Slot number of GV's initializer (0 if none)
+ unsigned initSlot, ///< Slot number of GV's initializer (0 if none)
+ bool isThreadLocal ///< Whether the GV is thread local or not
) {}
/// This method is called when a type list is recognized. It simply
diff --git a/include/llvm/GlobalVariable.h b/include/llvm/GlobalVariable.h
index 3bf82492bc..6575dde34a 100644
--- a/include/llvm/GlobalVariable.h
+++ b/include/llvm/GlobalVariable.h
@@ -44,6 +44,7 @@ class GlobalVariable : public GlobalValue {
void setPrev(GlobalVariable *N) { Prev = N; }
bool isConstantGlobal; // Is this a global constant?
+ bool isThreadLocalSymbol; // Is this symbol "Thread Local"?
Use Initializer;
public:
@@ -51,12 +52,12 @@ public:
/// automatically inserted into the end of the specified modules global list.
GlobalVariable(const Type *Ty, bool isConstant, LinkageTypes Linkage,
Constant *Initializer = 0, const std::string &Name = "",
- Module *Parent = 0);
+ Module *Parent = 0, bool ThreadLocal = false);
/// GlobalVariable ctor - This creates a global and inserts it before the
/// specified other global.
GlobalVariable(const Type *Ty, bool isConstant, LinkageTypes Linkage,
Constant *Initializer, const std::string &Name,
- GlobalVariable *InsertBefore);
+ GlobalVariable *InsertBefore, bool ThreadLocal = false);
/// isDeclaration - Is this global variable lacking an initializer? If so,
/// the global variable is defined in some other translation unit, and is thus
@@ -107,6 +108,10 @@ public:
bool isConstant() const { return isConstantGlobal; }
void setConstant(bool Value) { isConstantGlobal = Value; }
+ /// If the value is "Thread Local", its value isn't shared by the threads.
+ bool isThreadLocal() const { return isThreadLocalSymbol; }
+ void setThreadLocal(bool Value) { isThreadLocalSymbol = Value; }
+
/// removeFromParent - This method unlinks 'this' from the containing module,
/// but does not delete it.
///
diff --git a/lib/AsmParser/Lexer.cpp.cvs b/lib/AsmParser/Lexer.cpp.cvs
index cbf22872cf..dae64faad0 100644
--- a/lib/AsmParser/Lexer.cpp.cvs
+++ b/lib/AsmParser/Lexer.cpp.cvs
@@ -1,50 +1,93 @@
-#define yy_create_buffer llvmAsm_create_buffer
-#define yy_delete_buffer llvmAsm_delete_buffer
-#define yy_scan_buffer llvmAsm_scan_buffer
-#define yy_scan_string llvmAsm_scan_string
-#define yy_scan_bytes llvmAsm_scan_bytes
-#define yy_flex_debug llvmAsm_flex_debug
-#define yy_init_buffer llvmAsm_init_buffer
-#define yy_flush_buffer llvmAsm_flush_buffer
-#define yy_load_buffer_state llvmAsm_load_buffer_state
-#define yy_switch_to_buffer llvmAsm_switch_to_buffer
-#define yyin llvmAsmin
-#define yyleng llvmAsmleng
-#define yylex llvmAsmlex
-#define yyout llvmAsmout
-#define yyrestart llvmAsmrestart
-#define yytext llvmAsmtext
-#define yylineno llvmAsmlineno
-
-#line 20 "Lexer.cpp"
-/* A lexical scanner generated by flex*/
-
-/* Scanner skeleton version:
- * $Header$
- */
+#line 2 "Lexer.cpp"
+
+#line 4 "Lexer.cpp"
+
+#define YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 33
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+/* First, we deal with platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
#include <stdio.h>
-#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+/* end standard C headers. */
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types.
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
#endif
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t;
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
-#ifdef __cplusplus
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX (4294967295U)
+#endif
-#include <stdlib.h>
+#endif /* ! FLEXINT_H */
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
+#ifdef __cplusplus
/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST
@@ -53,34 +96,17 @@
#if __STDC__
-#define YY_USE_PROTOS
#define YY_USE_CONST
#endif /* __STDC__ */
#endif /* ! __cplusplus */
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
/* Returned upon end-of-file. */
#define YY_NULL 0
@@ -95,80 +121,88 @@
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN.
*/
-#define BEGIN yy_start = 1 + 2 *
+#define BEGIN (yy_start) = 1 + 2 *
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state. The YYSTATE alias is for lex
* compatibility.
*/
-#define YY_START ((yy_start - 1) / 2)
+#define YY_START (((yy_start) - 1) / 2)
#define YYSTATE YY_START
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
+#define YY_NEW_FILE llvmAsmrestart(llvmAsmin )
#define YY_END_OF_BUFFER_CHAR 0
/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE (16384*64)
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+extern int llvmAsmleng;
-extern int yyleng;
-extern FILE *yyin, *yyout;
+extern FILE *llvmAsmin, *llvmAsmout;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * 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
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
+ /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+ * access to the local variable yy_act. Since yyless() is a macro, it would break
+ * existing scanners that call yyless() from OUTSIDE llvmAsmlex.
+ * One obvious solution it to make yy_act a global. I tried that, and saw
+ * a 5% performance hit in a non-llvmAsmlineno scanner, because yy_act is
+ * normally declared as a register variable-- so it is not worth it.
+ */
+ #define YY_LESS_LINENO(n) \
+ do { \
+ int yyl;\
+ for ( yyl = n; yyl < llvmAsmleng; ++yyl )\
+ if ( llvmAsmtext[yyl] == '\n' )\
+ --llvmAsmlineno;\
+ }while(0)
+
+/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
do \
{ \
- /* Undo effects of setting up yytext. */ \
- *yy_cp = yy_hold_char; \
+ /* Undo effects of setting up llvmAsmtext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ *yy_cp = (yy_hold_char); \
YY_RESTORE_YY_MORE_OFFSET \
- yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up llvmAsmtext again */ \
} \
while ( 0 )
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* Some routines like yy_flex_realloc() are emitted as static but are
- not called by all lexers. This generates warnings in some compilers,
- notably GCC. Arrange to suppress these. */
-#ifdef __GNUC__
-#define YY_MAY_BE_UNUSED __attribute__((unused))
-#else
-#define YY_MAY_BE_UNUSED
-#endif
+#define unput(c) yyunput( c, (yytext_ptr) )
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
*/
-typedef unsigned int yy_size_t;
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef unsigned int yy_size_t;
+#endif
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
{
FILE *yy_input_file;
@@ -205,12 +239,16 @@ struct yy_buffer_state
*/
int yy_at_bol;
+ int yy_bs_lineno; /**< The line count. */
+ int yy_bs_column; /**< The column count. */
+
/* Whether to try to fill the input buffer when we reach the
* end of it.
*/
int yy_fill_buffer;
int yy_buffer_status;
+
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
@@ -220,197 +258,202 @@ struct yy_buffer_state
* possible backing-up.
*
* When we actually see the EOF, we change the status to "new"
- * (via yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
+ * (via llvmAsmrestart()), so that the user can continue scanning by
+ * just pointing llvmAsmin at a new input file.
*/
#define YY_BUFFER_EOF_PENDING 2
+
};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-static YY_BUFFER_STATE yy_current_buffer = 0;
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
*/
-#define YY_CURRENT_BUFFER yy_current_buffer
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+ : NULL)
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-/* yy_hold_char holds the character lost when yytext is formed. */
+/* yy_hold_char holds the character lost when llvmAsmtext is formed. */
static char yy_hold_char;
-
static int yy_n_chars; /* number of characters read into yy_ch_buf */
-
-
-int yyleng;
+int llvmAsmleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1; /* whether we need to initialize */
+static int yy_init = 0; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
+/* Flag which is used to allow llvmAsmwrap()'s to do buffer switches
+ * instead of setting up a fresh llvmAsmin. A bit of a hack ...
*/
static int yy_did_buffer_switch_on_eof;
-void yyrestart YY_PROTO(( FILE *input_file ));
+void llvmAsmrestart (FILE *input_file );
+void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer );
+YY_BUFFER_STATE llvmAsm_create_buffer (FILE *file,int size );
+void llvmAsm_delete_buffer (YY_BUFFER_STATE b );
+void llvmAsm_flush_buffer (YY_BUFFER_STATE b );
+void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer );
+void llvmAsmpop_buffer_state (void );
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+static void llvmAsmensure_buffer_stack (void );
+static void llvmAsm_load_buffer_state (void );
+static void llvmAsm_init_buffer (YY_BUFFER_STATE b,FILE *file );
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+#define YY_FLUSH_BUFFER llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
-static void yy_flex_free YY_PROTO(( void * ));
+YY_BUFFER_STATE llvmAsm_scan_buffer (char *base,yy_size_t size );
+YY_BUFFER_STATE llvmAsm_scan_string (yyconst char *yy_str );
+YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char *bytes,int len );
-#define yy_new_buffer yy_create_buffer
+void *llvmAsmalloc (yy_size_t );
+void *llvmAsmrealloc (void *,yy_size_t );
+void llvmAsmfree (void * );
+
+#define yy_new_buffer llvmAsm_create_buffer
#define yy_set_interactive(is_interactive) \
{ \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_is_interactive = is_interactive; \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ llvmAsmensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
}
#define yy_set_bol(at_bol) \
{ \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_at_bol = at_bol; \
+ if ( ! YY_CURRENT_BUFFER ){\
+ llvmAsmensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
}
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-#define YY_USES_REJECT
+/* Begin user sect3 */
-#define yywrap() 1
+#define llvmAsmwrap() 1
#define YY_SKIP_YYWRAP
+
typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+FILE *llvmAsmin = (FILE *) 0, *llvmAsmout = (FILE *) 0;
+
typedef int yy_state_type;
-extern int yylineno;
-int yylineno = 1;
-extern char *yytext;
-#define yytext_ptr yytext
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+extern int llvmAsmlineno;
+
+int llvmAsmlineno = 1;
+
+extern char *llvmAsmtext;
+#define yytext_ptr llvmAsmtext
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[] );
/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
+ * corresponding action - sets up llvmAsmtext.
*/
#define YY_DO_BEFORE_ACTION \
- yytext_ptr = yy_bp; \
- yyleng = (int) (yy_cp - yy_bp); \
- yy_hold_char = *yy_cp; \
+ (yytext_ptr) = yy_bp; \
+ llvmAsmleng = (size_t) (yy_cp - yy_bp); \
+ (yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
- yy_c_buf_p = yy_cp;
+ (yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 135
-#define YY_END_OF_BUFFER 136
-static yyconst short int yy_acclist[216] =
- { 0,
- 136, 134, 135, 133, 134, 135, 133, 135, 134, 135,
- 134, 135, 134, 135, 134, 135, 134, 135, 134, 135,
- 126, 134, 135, 126, 134, 135, 1, 134, 135, 134,
- 135, 134, 135, 134, 135, 134, 135, 134, 135, 134,
- 135, 134, 135, 134, 135, 134, 135, 134, 135, 134,
- 135, 134, 135, 134, 135, 134, 135, 134, 135, 134,
- 135, 134, 135, 134, 135, 134, 135, 134, 135, 134,
- 135, 134, 135, 134, 135, 124, 122, 120, 129, 127,
- 131, 126, 1, 121, 130, 106, 35, 69, 51, 70,
- 65, 23, 124, 120, 131, 20, 131, 132, 125, 121,
-
- 52, 64, 33, 36, 3, 54, 79, 84, 82, 83,
- 81, 80, 85, 89, 105, 74, 72, 61, 73, 71,
- 53, 87, 78, 76, 77, 75, 88, 86, 66, 123,
- 131, 131, 63, 90, 68, 57, 113, 60, 67, 114,
- 62, 22, 128, 56, 93, 59, 42, 24, 4, 49,
- 55, 58, 45, 12, 92, 131, 30, 2, 5, 46,
- 95, 41, 48, 115, 91, 21, 112, 38, 7, 47,
- 37, 99, 98, 8, 16, 108, 111, 32, 50, 103,
- 97, 107, 25, 26, 96, 109, 104, 102, 6, 27,
- 94, 31, 9, 18, 10, 100, 11, 44, 43, 101,
-
- 29, 13, 15, 14, 28, 34, 17, 110, 116, 118,
- 119, 39, 117, 40, 19
- } ;
-
-static yyconst short int yy_accept[540] =
+#define YY_NUM_RULES 136
+#define YY_END_OF_BUFFER 137
+/* This struct is not used in this scanner,
+ but its presence is necessary. */
+struct yy_trans_info
+ {
+ flex_int32_t yy_verify;
+ flex_int32_t yy_nxt;
+ };
+static yyconst flex_int16_t yy_accept[550] =
{ 0,
- 1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
- 17, 19, 21, 24, 27, 30, 32, 34, 36, 38,
- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
- 60, 62, 64, 66, 68, 70, 72, 74, 76, 76,
- 77, 77, 78, 79, 80, 80, 81, 81, 82, 83,
- 83, 84, 84, 85, 86, 86, 86, 86, 86, 86,
- 86, 86, 87, 87, 88, 88, 88, 88, 88, 88,
- 88, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 91, 91, 91, 91, 91, 91, 91, 91,
-
- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 94, 95, 96, 97, 98, 98, 99, 99,
- 100, 101, 102, 102, 102, 103, 103, 103, 104, 104,
- 104, 104, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 107, 107, 107, 107, 108,
- 109, 110, 111, 112, 113, 113, 114, 115, 115, 116,
-
- 116, 116, 116, 116, 116, 117, 118, 119, 119, 119,
- 119, 120, 121, 121, 121, 122, 122, 122, 122, 122,
- 122, 122, 122, 123, 124, 125, 125, 126, 127, 127,
- 128, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 130, 130, 130, 131, 132, 132, 132, 132, 133, 133,
- 133, 133, 134, 134, 134, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 136,
- 137, 137, 137, 137, 137, 138, 139, 139, 139, 139,
- 140, 140, 140, 140, 140, 140, 140, 140, 141, 142,
- 142, 142, 142, 142, 143, 143, 143, 144, 145, 145,
-
- 145, 146, 146, 146, 146, 147, 148, 148, 148, 149,
- 149, 149, 150, 150, 151, 152, 152, 152, 152, 152,
- 153, 153, 154, 154, 155, 155, 155, 156, 157, 158,
- 158, 158, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 159, 160, 160, 161, 162, 162,
- 162, 162, 162, 162, 162, 163, 163, 163, 163, 163,
- 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
- 164, 164, 164, 165, 165, 165, 165, 166, 166, 167,
- 167, 167, 167, 167, 167, 167, 167, 168, 168, 168,
- 169, 169, 169, 169, 170, 170, 170, 170, 171, 171,
-
- 171, 172, 173, 174, 174, 174, 175, 176, 176, 176,
- 176, 177, 177, 178, 179, 179, 179, 180, 180, 180,
- 181, 181, 181, 182, 183, 184, 185, 186, 186, 187,
- 188, 188, 188, 188, 188, 188, 189, 189, 189, 190,
- 191, 191, 191, 191, 191, 191, 192, 192, 192, 192,
- 192, 192, 192, 192, 192, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 194, 194, 194, 194, 194, 195,
- 195, 195, 195, 196, 197, 198, 199, 200, 201, 201,
- 201, 201, 202, 202, 202, 202, 203, 203, 204, 205,
- 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
-
- 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
- 207, 208, 208, 208, 208, 208, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 210, 211,
- 212, 212, 213, 213, 214, 215, 215, 216, 216
+ 0, 0, 137, 135, 134, 134, 135, 135, 135, 135,
+ 135, 135, 127, 127, 1, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 0, 125,
+ 0, 123, 121, 130, 0, 128, 0, 132, 127, 0,
+ 1, 0, 122, 131, 0, 0, 0, 0, 0, 0,
+ 0, 107, 0, 36, 0, 0, 0, 0, 0, 0,
+ 70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 52, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 71, 0, 0, 0, 0, 0, 0, 0, 66,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 125, 121, 132, 21, 132, 0, 133, 0,
+ 126, 122, 53, 0, 0, 65, 0, 0, 34, 0,
+ 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 0, 0, 0, 80,
+ 85, 83, 84, 82, 81, 0, 86, 90, 0, 106,
+
+ 0, 0, 0, 0, 0, 75, 73, 62, 0, 0,
+ 0, 74, 72, 0, 0, 54, 0, 0, 0, 0,
+ 0, 0, 0, 0, 88, 79, 77, 0, 78, 76,
+ 0, 89, 87, 0, 0, 0, 0, 0, 0, 0,
+ 0, 67, 0, 0, 124, 132, 0, 0, 0, 132,
+ 0, 0, 0, 64, 0, 0, 91, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 69, 58, 0, 0, 0, 0, 114, 61, 0, 0,
+ 0, 68, 0, 0, 0, 0, 0, 0, 0, 115,
+ 63, 0, 0, 0, 0, 23, 0, 0, 129, 57,
+
+ 0, 0, 94, 0, 0, 0, 60, 43, 0, 0,
+ 25, 0, 0, 0, 4, 0, 50, 56, 0, 0,
+ 0, 0, 59, 0, 46, 0, 12, 0, 0, 93,
+ 132, 31, 0, 0, 2, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 5, 0, 47,
+ 96, 0, 0, 0, 0, 0, 0, 42, 0, 0,
+ 0, 0, 49, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
+ 92, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 113, 0, 0, 39, 0, 0, 0, 7, 0, 0,
+
+ 0, 48, 0, 0, 38, 100, 99, 0, 0, 8,
+ 16, 0, 0, 0, 109, 0, 112, 33, 0, 0,
+ 51, 0, 0, 104, 0, 0, 98, 108, 26, 0,
+ 27, 97, 0, 110, 105, 0, 0, 0, 0, 0,
+ 103, 0, 0, 6, 28, 0, 0, 0, 0, 0,
+ 95, 0, 0, 0, 0, 0, 0, 0, 0, 32,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
+ 0, 0, 0, 0, 18, 0, 0, 0, 10, 101,
+ 11, 45, 44, 102, 0, 0, 0, 0, 30, 0,
+ 0, 0, 13, 0, 15, 14, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
+ 0, 0, 0, 35, 0, 0, 0, 0, 0, 17,
+ 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
+ 0, 0, 0, 19, 0, 0, 0, 0, 117, 119,
+ 120, 0, 40, 0, 118, 41, 0, 20, 0
} ;
-static yyconst int yy_ec[256] =
+static yyconst flex_int32_t yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
@@ -442,7 +485,7 @@ static yyconst int yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst int yy_meta[45] =
+static yyconst flex_int32_t yy_meta[45] =
{ 0,
1, 1, 2, 3, 4, 1, 1, 4, 4, 4,
4, 4, 4, 5, 1, 1, 4, 4, 4, 4,
@@ -451,135 +494,137 @@ static yyconst int yy_meta[45] =
4, 4, 4, 4
} ;
-static yyconst short int yy_base[547] =
+static yyconst flex_int16_t yy_base[558] =
{ 0,
- 0, 0, 1175, 1176, 1176, 1176, 1170, 1159, 35, 39,
+ 0, 0, 1197, 1198, 1198, 1198, 1192, 1181, 35, 39,
43, 49, 55, 61, 0, 72, 64, 67, 66, 86,
76, 106, 91, 65, 133, 121, 117, 99, 152, 95,
- 78, 179, 137, 211, 139, 90, 148, 93, 1168, 1176,
- 1157, 1176, 0, 49, 185, 217, 116, 238, 254, 259,
- 0, 1166, 0, 200, 125, 149, 146, 153, 177, 63,
- 154, 1155, 160, 161, 208, 185, 264, 171, 113, 210,
- 1154, 222, 260, 228, 186, 261, 271, 110, 273, 274,
- 230, 289, 277, 278, 150, 290, 241, 205, 282, 231,
- 291, 1153, 292, 296, 299, 303, 305, 306, 318, 310,
-
- 309, 311, 321, 322, 325, 326, 328, 330, 332, 337,
- 343, 340, 344, 335, 348, 1152, 357, 358, 360, 363,
- 365, 364, 366, 377, 369, 331, 367, 385, 394, 373,
- 380, 1151, 0, 413, 1150, 428, 446, 0, 1159, 1176,
- 0, 1148, 232, 397, 1147, 393, 398, 1146, 400, 405,
- 406, 1145, 421, 418, 401, 415, 419, 434, 437, 429,
- 1144, 448, 449, 435, 453, 452, 454, 455, 457, 464,
- 456, 461, 462, 465, 467, 480, 482, 469, 484, 486,
- 487, 475, 489, 491, 1143, 493, 495, 498, 1142, 1141,
- 1140, 1139, 1138, 1137, 499, 1136, 1135, 500, 1134, 529,
-
- 504, 507, 502, 510, 1133, 1132, 1131, 508, 511, 522,
- 1130, 1129, 529, 523, 1128, 518, 543, 544, 547, 548,
- 550, 549, 1127, 1126, 1125, 551, 1124, 1123, 552, 1122,
- 1121, 554, 555, 557, 509, 563, 565, 561, 568, 1120,
- 577, 578, 1176, 583, 592, 601, 607, 612, 583, 584,
- 595, 1119, 614, 615, 1118, 616, 594, 617, 619, 620,
- 622, 623, 626, 628, 627, 629, 630, 631, 1117, 1116,
- 634, 637, 641, 642, 1115, 1114, 646, 647, 645, 1113,
- 648, 650, 652, 654, 656, 659, 657, 1112, 1111, 663,
- 665, 668, 669, 1110, 670, 678, 0, 1109, 677, 679,
-
- 1108, 683, 680, 688, 1107, 1106, 693, 698, 1105, 700,
- 685, 1104, 704, 1103, 1102, 702, 705, 708, 689, 1101,
- 709, 1100, 711, 1099, 715, 718, 1098, 723, 1097, 717,
- 724, 1096, 725, 728, 734, 737, 727, 729, 744, 730,
- 741, 742, 745, 746, 1095, 747, 1094, 1093, 753, 756,
- 757, 758, 760, 759, 1092, 762, 764, 765, 769, 1091,
- 766, 772, 771, 773, 774, 783, 778, 787, 789, 791,
- 790, 794, 1090, 795, 796, 799, 1089, 797, 1088, 802,
- 803, 804, 805, 815, 800, 811, 1087, 818, 822, 1086,
- 823, 825, 826, 1085, 827, 828, 830, 1084, 833, 831,
-
- 1083, 1082, 1081, 834, 835, 1080, 1079, 843, 845, 837,
- 1078, 840, 1077, 1076, 844, 856, 1075, 857, 858, 1074,
- 859, 860, 1073, 1072, 1071, 1070, 1069, 864, 1068, 1067,
- 862, 863, 870, 867, 865, 1066, 868, 872, 1065, 1064,
- 873, 880, 882, 884, 887, 1063, 888, 885, 889, 890,
- 893, 896, 899, 894, 1062, 904, 906, 907, 910, 911,
- 915, 917, 919, 1061, 921, 924, 925, 922, 1050, 926,
- 927, 928, 1039, 1037, 1036, 1035, 1034, 1033, 929, 936,
- 933, 1032, 943, 947, 950, 1031, 934, 1030, 1029, 954,
- 952, 937, 955, 957, 956, 959, 963, 966, 967, 1024,
-
- 968, 970, 971, 974, 976, 1022, 978, 977, 979, 981,
- 1021, 986, 985, 989, 992, 1018, 990, 994, 998, 999,
- 1001, 1003, 1004, 1005, 1008, 1010, 1014, 686, 684, 517,
- 1020, 463, 1015, 372, 368, 1019, 279, 1176, 1055, 1057,
- 253, 1062, 1065, 212, 1069, 108
+ 78, 179, 137, 211, 139, 90, 148, 93, 1190, 1198,
+ 1179, 1198, 0, 49, 185, 217, 116, 238, 254, 259,
+ 0, 1188, 0, 200, 125, 149, 146, 153, 177, 63,
+ 154, 1177, 160, 161, 208, 185, 264, 171, 113, 210,
+ 1176, 222, 260, 228, 186, 261, 271, 110, 273, 274,
+ 230, 289, 277, 278, 240, 290, 292, 205, 291, 232,
+ 296, 1175, 299, 303, 305, 306, 310, 313, 309, 318,
+
+ 311, 314, 317, 322, 328, 329, 338, 331, 335, 339,
+ 333, 332, 346, 340, 352, 355, 1174, 358, 360, 361,
+ 364, 368, 365, 369, 381, 376, 382, 388, 367, 396,
+ 384, 395, 1173, 0, 414, 1172, 429, 447, 0, 1181,
+ 1198, 0, 1170, 231, 397, 1169, 399, 398, 1168, 401,
+ 414, 405, 1167, 442, 407, 431, 419, 434, 436, 449,
+ 450, 1166, 454, 432, 438, 453, 456, 460, 458, 461,
+ 467, 465, 471, 470, 468, 481, 485, 487, 474, 489,
+ 490, 492, 472, 496, 498, 1165, 500, 502, 503, 1164,
+ 1163, 1162, 1161, 1160, 1159, 504, 1158, 1157, 506, 1156,
+
+ 535, 509, 513, 507, 516, 1155, 1154, 1153, 515, 508,
+ 528, 1152, 1151, 536, 527, 1150, 524, 550, 551, 552,
+ 554, 555, 557, 556, 1149, 1148, 1147, 558, 1146, 1145,
+ 559, 1144, 1143, 561, 564, 568, 570, 572, 580, 514,
+ 579, 1142, 575, 583, 1198, 591, 606, 612, 616, 621,
+ 606, 622, 623, 1141, 625, 591, 1140, 626, 627, 628,
+ 592, 629, 631, 632, 633, 636, 635, 640, 638, 653,
+ 1139, 1138, 639, 642, 649, 637, 1137, 1136, 654, 658,
+ 655, 1135, 656, 659, 667, 669, 671, 675, 673, 1134,
+ 1133, 676, 677, 678, 679, 1132, 680, 682, 0, 1131,
+
+ 683, 690, 1130, 685, 684, 699, 1129, 1128, 703, 700,
+ 1127, 704, 709, 707, 1126, 711, 1125, 1124, 716, 717,
+ 712, 720, 1123, 721, 1122, 722, 1121, 724, 725, 1120,
+ 733, 1119, 734, 733, 1118, 726, 736, 745, 748, 737,
+ 750, 755, 741, 752, 753, 756, 757, 1117, 758, 1116,
+ 1115, 764, 767, 768, 769, 771, 770, 1114, 773, 775,
+ 776, 780, 1113, 777, 783, 782, 784, 785, 794, 789,
+ 798, 800, 802, 801, 805, 1112, 806, 807, 811, 813,
+ 1111, 808, 1110, 814, 821, 815, 826, 810, 829, 832,
+ 1109, 833, 834, 1108, 836, 835, 838, 1107, 837, 842,
+
+ 843, 1106, 839, 841, 1105, 1104, 1103, 849, 846, 1102,
+ 1101, 856, 867, 851, 1100, 868, 1099, 1098, 852, 859,
+ 1097, 869, 870, 1096, 871, 872, 1095, 1094, 1093, 879,
+ 1092, 1091, 878, 1090, 1089, 880, 882, 885, 886, 889,
+ 1088, 890, 892, 1087, 1076, 893, 895, 897, 902, 898,
+ 1066, 899, 903, 904, 901, 906, 910, 912, 913, 1065,
+ 922, 925, 926, 9