aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorcerevra <cerevra@yandex-team.ru>2022-02-10 16:45:58 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:58 +0300
commitbf41dd01f6c920583e9faae7cd55ed25e547e052 (patch)
treeec7c8c285ffa648a5c5efeff453787a15ab811ac /contrib
parente2c3e3004f7cd68441cefcfa4aaccd3d8051c846 (diff)
downloadydb-bf41dd01f6c920583e9faae7cd55ed25e547e052.tar.gz
Restoring authorship annotation for <cerevra@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/libs/cctz/tzdata/factory.cpp2
-rw-r--r--contrib/libs/grpc/src/core/lib/security/security_connector/load_arcadia_root_certs.cpp2
-rw-r--r--contrib/libs/libxml/yencoding.cpp4
-rw-r--r--contrib/libs/pire/pire/stub/utf8.h2
-rw-r--r--contrib/python/protobuf/py2/google/protobuf/pyext/message.cc4
-rw-r--r--contrib/python/protobuf/py3/google/protobuf/pyext/message.cc4
-rw-r--r--contrib/restricted/thrift/README2
-rw-r--r--contrib/restricted/thrift/compiler/README2
-rw-r--r--contrib/restricted/thrift/compiler/thrift/thriftl.cc6950
-rw-r--r--contrib/restricted/thrift/compiler/thrift/thrifty.cc6116
-rw-r--r--contrib/restricted/thrift/compiler/thrift/thrifty.hh358
-rw-r--r--contrib/restricted/thrift/compiler/thrift/version.h58
-rw-r--r--contrib/restricted/thrift/compiler/ya.make126
-rw-r--r--contrib/restricted/thrift/thrift/concurrency/PlatformThreadFactory.h4
-rw-r--r--contrib/restricted/thrift/thrift/config.h44
-rw-r--r--contrib/restricted/thrift/thrift/protocol/TProtocol.h6
-rw-r--r--contrib/restricted/thrift/thrift/protocol/TProtocolDecorator.h4
-rw-r--r--contrib/restricted/thrift/thrift/protocol/TVirtualProtocol.h12
-rw-r--r--contrib/restricted/thrift/thrift/stdcxx.h38
-rw-r--r--contrib/restricted/thrift/thrift/transport/THttpClient.cpp2
-rw-r--r--contrib/restricted/thrift/thrift/transport/THttpServer.cpp2
-rw-r--r--contrib/restricted/thrift/thrift/transport/TSocketPool.cpp2
-rw-r--r--contrib/restricted/thrift/thrift/windows/config.h4
-rw-r--r--contrib/restricted/thrift/ya.make186
-rw-r--r--contrib/restricted/ya.make6
25 files changed, 6970 insertions, 6970 deletions
diff --git a/contrib/libs/cctz/tzdata/factory.cpp b/contrib/libs/cctz/tzdata/factory.cpp
index 5a4b4a27b6..b80c63b0f1 100644
--- a/contrib/libs/cctz/tzdata/factory.cpp
+++ b/contrib/libs/cctz/tzdata/factory.cpp
@@ -1,6 +1,6 @@
#include <contrib/libs/cctz/include/cctz/zone_info_source.h>
-#include <library/cpp/resource/resource.h>
+#include <library/cpp/resource/resource.h>
#include <util/generic/string.h>
#include <util/stream/str.h>
diff --git a/contrib/libs/grpc/src/core/lib/security/security_connector/load_arcadia_root_certs.cpp b/contrib/libs/grpc/src/core/lib/security/security_connector/load_arcadia_root_certs.cpp
index d07d3b21b8..517e5ec200 100644
--- a/contrib/libs/grpc/src/core/lib/security/security_connector/load_arcadia_root_certs.cpp
+++ b/contrib/libs/grpc/src/core/lib/security/security_connector/load_arcadia_root_certs.cpp
@@ -1,6 +1,6 @@
#include "load_arcadia_root_certs.h"
-#include <library/cpp/resource/resource.h>
+#include <library/cpp/resource/resource.h>
namespace grpc_core {
grpc_slice LoadArcadiaRootCerts() {
diff --git a/contrib/libs/libxml/yencoding.cpp b/contrib/libs/libxml/yencoding.cpp
index 8092bbfb1c..88cf0a695d 100644
--- a/contrib/libs/libxml/yencoding.cpp
+++ b/contrib/libs/libxml/yencoding.cpp
@@ -1,8 +1,8 @@
#include "yencoding.h"
-#include <library/cpp/charset/codepage.h>
-#include <library/cpp/charset/recyr.hh>
+#include <library/cpp/charset/codepage.h>
+#include <library/cpp/charset/recyr.hh>
int
diff --git a/contrib/libs/pire/pire/stub/utf8.h b/contrib/libs/pire/pire/stub/utf8.h
index 51ea0479d4..7d9bd06048 100644
--- a/contrib/libs/pire/pire/stub/utf8.h
+++ b/contrib/libs/pire/pire/stub/utf8.h
@@ -1,6 +1,6 @@
#pragma once
-#include <library/cpp/charset/codepage.h>
+#include <library/cpp/charset/codepage.h>
#include <util/charset/unidata.h>
inline wchar32 to_lower(wchar32 c) {
diff --git a/contrib/python/protobuf/py2/google/protobuf/pyext/message.cc b/contrib/python/protobuf/py2/google/protobuf/pyext/message.cc
index 8b41ca47dd..5b333fe386 100644
--- a/contrib/python/protobuf/py2/google/protobuf/pyext/message.cc
+++ b/contrib/python/protobuf/py2/google/protobuf/pyext/message.cc
@@ -730,7 +730,7 @@ bool IsValidUTF8(PyObject* obj) {
}
}
-bool AllowInvalidUTF8(const FieldDescriptor* field) { return false; }
+bool AllowInvalidUTF8(const FieldDescriptor* field) { return false; }
PyObject* CheckString(PyObject* arg, const FieldDescriptor* descriptor) {
GOOGLE_DCHECK(descriptor->type() == FieldDescriptor::TYPE_STRING ||
@@ -741,7 +741,7 @@ PyObject* CheckString(PyObject* arg, const FieldDescriptor* descriptor) {
return NULL;
}
- if (!IsValidUTF8(arg) && !AllowInvalidUTF8(descriptor)) {
+ if (!IsValidUTF8(arg) && !AllowInvalidUTF8(descriptor)) {
PyObject* repr = PyObject_Repr(arg);
PyErr_Format(PyExc_ValueError,
"%s has type str, but isn't valid UTF-8 "
diff --git a/contrib/python/protobuf/py3/google/protobuf/pyext/message.cc b/contrib/python/protobuf/py3/google/protobuf/pyext/message.cc
index 8b41ca47dd..5b333fe386 100644
--- a/contrib/python/protobuf/py3/google/protobuf/pyext/message.cc
+++ b/contrib/python/protobuf/py3/google/protobuf/pyext/message.cc
@@ -730,7 +730,7 @@ bool IsValidUTF8(PyObject* obj) {
}
}
-bool AllowInvalidUTF8(const FieldDescriptor* field) { return false; }
+bool AllowInvalidUTF8(const FieldDescriptor* field) { return false; }
PyObject* CheckString(PyObject* arg, const FieldDescriptor* descriptor) {
GOOGLE_DCHECK(descriptor->type() == FieldDescriptor::TYPE_STRING ||
@@ -741,7 +741,7 @@ PyObject* CheckString(PyObject* arg, const FieldDescriptor* descriptor) {
return NULL;
}
- if (!IsValidUTF8(arg) && !AllowInvalidUTF8(descriptor)) {
+ if (!IsValidUTF8(arg) && !AllowInvalidUTF8(descriptor)) {
PyObject* repr = PyObject_Repr(arg);
PyErr_Format(PyExc_ValueError,
"%s has type str, but isn't valid UTF-8 "
diff --git a/contrib/restricted/thrift/README b/contrib/restricted/thrift/README
index 92c9969423..11100fcaf6 100644
--- a/contrib/restricted/thrift/README
+++ b/contrib/restricted/thrift/README
@@ -1 +1 @@
-This lib is part of https://github.com/apache/thrift: lib/cpp/src/thrift
+This lib is part of https://github.com/apache/thrift: lib/cpp/src/thrift
diff --git a/contrib/restricted/thrift/compiler/README b/contrib/restricted/thrift/compiler/README
index 4393a826d7..857734860d 100644
--- a/contrib/restricted/thrift/compiler/README
+++ b/contrib/restricted/thrift/compiler/README
@@ -1 +1 @@
-This lib is part of https://github.com/apache/thrift: compiler/cpp/src/thrift
+This lib is part of https://github.com/apache/thrift: compiler/cpp/src/thrift
diff --git a/contrib/restricted/thrift/compiler/thrift/thriftl.cc b/contrib/restricted/thrift/compiler/thrift/thriftl.cc
index b2f7ad0ddf..6bc131ee27 100644
--- a/contrib/restricted/thrift/compiler/thrift/thriftl.cc
+++ b/contrib/restricted/thrift/compiler/thrift/thriftl.cc
@@ -1,3475 +1,3475 @@
-#line 2 "thriftl.cc"
-
-#line 4 "thriftl.cc"
-
-#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 6
-#define YY_FLEX_SUBMINOR_VERSION 4
-#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 <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __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;
-
-/* 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
-
-#ifndef SIZE_MAX
-#define SIZE_MAX (~(size_t)0)
-#endif
-
-#endif /* ! C99 */
-
-#endif /* ! FLEXINT_H */
-
-/* begin standard C++ headers. */
-
-/* TODO: this is always defined, so inline it */
-#define yyconst const
-
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define yynoreturn __attribute__((__noreturn__))
-#else
-#define yynoreturn
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an
- * integer in range [0..255] for use as an array index.
- */
-#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#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 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_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
-#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
-#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
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern int yyleng;
-
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
- /* 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 yylex.
- * One obvious solution it to make yy_act a global. I tried that, and saw
- * a 5% performance hit in a non-yylineno 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 < yyleng; ++yyl )\
- if ( yytext[yyl] == '\n' )\
- --yylineno;\
- }while(0)
- #define YY_LINENO_REWIND_TO(dst) \
- do {\
- const char *p;\
- for ( p = yy_cp-1; p >= (dst); --p)\
- if ( *p == '\n' )\
- --yylineno;\
- }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. */ \
- 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 + yyless_macro_arg - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-#define unput(c) yyunput( c, (yytext_ptr) )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- int yy_buf_size;
-
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int 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 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 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 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
- * then we mark the buffer as 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 yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
- */
-#define YY_BUFFER_EOF_PENDING 2
-
- };
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* 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 = NULL; /**< 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_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. */
-static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = NULL;
-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 ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart ( FILE *input_file );
-void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
-YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
-void yy_delete_buffer ( YY_BUFFER_STATE b );
-void yy_flush_buffer ( YY_BUFFER_STATE b );
-void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
-void yypop_buffer_state ( void );
-
-static void yyensure_buffer_stack ( void );
-static void yy_load_buffer_state ( void );
-static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
-#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
-YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
-
-void *yyalloc ( yy_size_t );
-void *yyrealloc ( void *, yy_size_t );
-void yyfree ( void * );
-
-#define yy_new_buffer yy_create_buffer
-#define yy_set_interactive(is_interactive) \
- { \
- if ( ! YY_CURRENT_BUFFER ){ \
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
- }
-#define yy_set_bol(at_bol) \
- { \
- if ( ! YY_CURRENT_BUFFER ){\
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
- }
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define yywrap() (/*CONSTCOND*/1)
-#define YY_SKIP_YYWRAP
-typedef flex_uint8_t YY_CHAR;
-
-FILE *yyin = NULL, *yyout = NULL;
-
-typedef int yy_state_type;
-
-#define YY_FLEX_LEX_COMPAT
-extern int yylineno;
-int yylineno = 1;
-
-extern char yytext[];
-
-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 yynoreturn yy_fatal_error ( const char* msg );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
- (yytext_ptr) = yy_bp; \
- yyleng = (int) (yy_cp - yy_bp); \
- (yy_hold_char) = *yy_cp; \
- *yy_cp = '\0'; \
- if ( yyleng >= YYLMAX ) \
- YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
- yy_flex_strncpy( yytext, (yytext_ptr), yyleng + 1 ); \
- (yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 169
-#define YY_END_OF_BUFFER 170
-/* 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 const flex_int16_t yy_accept[768] =
- { 0,
- 1, 1, 170, 168, 1, 1, 167, 6, 59, 7,
- 8, 166, 168, 168, 163, 163, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 1, 6, 0, 163, 163, 0, 166, 4,
- 5, 0, 0, 165, 165, 0, 165, 165, 165, 165,
- 165, 165, 165, 73, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 87, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 34, 111, 165, 114, 118, 165, 165, 165, 165,
-
- 165, 165, 165, 165, 165, 165, 165, 126, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 166, 3,
- 5, 164, 165, 61, 165, 165, 165, 165, 165, 165,
- 165, 165, 71, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 83, 85, 165, 165, 165, 165, 93, 165, 165, 165,
- 165, 165, 165, 165, 165, 105, 165, 165, 165, 165,
- 35, 36, 37, 165, 165, 165, 165, 165, 165, 165,
-
- 165, 43, 165, 165, 165, 122, 165, 124, 125, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 45,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 149, 165, 165, 165, 165, 165, 165,
- 154, 155, 165, 165, 165, 165, 165, 165, 161, 165,
- 165, 0, 2, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 72, 165, 165, 165, 165, 32, 165,
- 33, 77, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 89, 90, 165, 165,
-
- 165, 165, 165, 165, 165, 54, 165, 102, 165, 165,
- 165, 165, 165, 107, 165, 165, 110, 165, 165, 165,
- 165, 165, 165, 165, 165, 44, 165, 165, 165, 123,
- 165, 165, 165, 128, 165, 165, 165, 165, 165, 165,
- 165, 165, 134, 165, 165, 165, 165, 165, 165, 139,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 145, 146, 165, 165, 10, 165, 165, 165, 165,
- 165, 165, 165, 31, 165, 158, 165, 160, 165, 165,
- 60, 165, 165, 165, 165, 165, 165, 165, 165, 70,
- 165, 58, 75, 165, 76, 78, 79, 80, 165, 55,
-
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 92, 165, 165, 97, 165, 165, 165, 165,
- 165, 9, 165, 104, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 130, 165, 165, 165, 165, 133, 165,
- 165, 165, 136, 165, 165, 42, 165, 165, 41, 165,
- 165, 165, 165, 142, 165, 165, 147, 165, 165, 150,
- 49, 165, 165, 153, 165, 165, 159, 165, 165, 165,
- 162, 165, 165, 165, 165, 165, 165, 165, 165, 74,
- 40, 165, 165, 165, 165, 165, 165, 165, 165, 86,
-
- 165, 38, 165, 91, 165, 95, 165, 165, 100, 101,
- 165, 165, 165, 165, 109, 165, 113, 165, 115, 165,
- 165, 165, 119, 120, 165, 121, 46, 165, 165, 165,
- 165, 165, 165, 129, 165, 165, 165, 135, 138, 165,
- 165, 140, 165, 141, 39, 48, 143, 165, 52, 165,
- 165, 151, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 63, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 82, 84, 165, 88, 165, 165,
- 165, 165, 165, 51, 103, 106, 165, 165, 30, 165,
- 165, 165, 165, 165, 127, 165, 165, 131, 165, 165,
-
- 165, 165, 165, 53, 165, 165, 165, 47, 165, 156,
- 165, 25, 165, 165, 165, 165, 165, 64, 165, 66,
- 165, 165, 69, 165, 81, 165, 165, 14, 165, 165,
- 165, 165, 165, 99, 165, 108, 165, 165, 165, 165,
- 165, 57, 165, 165, 165, 165, 137, 56, 165, 165,
- 165, 165, 152, 157, 165, 165, 165, 165, 62, 165,
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 98,
- 50, 165, 165, 117, 165, 11, 165, 165, 132, 20,
- 165, 165, 165, 148, 29, 165, 165, 165, 165, 67,
- 165, 165, 165, 165, 165, 165, 94, 96, 112, 116,
-
- 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 13, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 165, 65, 165, 16, 165,
- 165, 165, 15, 21, 165, 165, 165, 165, 144, 165,
- 27, 26, 68, 12, 165, 165, 19, 165, 165, 165,
- 28, 165, 165, 22, 165, 165, 165, 165, 165, 165,
- 17, 18, 165, 24, 165, 23, 0
- } ;
-
-static const YY_CHAR yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 4, 5, 1, 1, 6, 4, 7,
- 7, 8, 9, 7, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 17, 19, 17, 7, 7, 7,
- 7, 7, 1, 1, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 29, 30, 31, 32, 33, 34,
- 29, 35, 36, 37, 38, 29, 29, 29, 29, 29,
- 7, 1, 7, 1, 39, 1, 40, 41, 42, 43,
-
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 7, 1, 7, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static const YY_CHAR yy_meta[66] =
- { 0,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 3,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 5,
- 5, 5, 5, 4, 5, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 5,
- 5, 5, 5, 4, 5, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6
- } ;
-
-static const flex_int16_t yy_base[774] =
- { 0,
- 0, 0, 1609, 1610, 64, 66, 1610, 0, 1610, 1610,
- 1610, 60, 61, 74, 71, 1545, 1597, 73, 126, 61,
- 96, 102, 117, 116, 172, 152, 77, 186, 76, 81,
- 78, 154, 110, 173, 167, 204, 185, 120, 205, 104,
- 164, 100, 87, 0, 257, 0, 1543, 268, 69, 1597,
- 0, 0, 1594, 1593, 82, 276, 245, 84, 287, 166,
- 107, 183, 115, 241, 123, 187, 206, 218, 219, 248,
- 290, 269, 247, 200, 291, 255, 251, 293, 303, 306,
- 304, 311, 313, 314, 315, 317, 318, 316, 91, 88,
- 89, 1592, 1591, 319, 335, 1590, 321, 169, 209, 324,
-
- 310, 328, 322, 325, 329, 337, 330, 1589, 348, 339,
- 342, 344, 327, 352, 347, 356, 363, 350, 346, 368,
- 373, 390, 395, 398, 400, 407, 408, 410, 411, 412,
- 409, 414, 425, 413, 415, 418, 417, 419, 424, 111,
- 0, 0, 416, 1588, 93, 421, 457, 424, 226, 467,
- 422, 448, 1587, 435, 468, 469, 470, 473, 472, 474,
- 476, 480, 479, 481, 482, 484, 486, 487, 488, 489,
- 490, 492, 491, 493, 496, 498, 505, 494, 497, 499,
- 495, 507, 500, 515, 517, 521, 509, 524, 519, 542,
- 1586, 1585, 1584, 546, 552, 554, 549, 560, 558, 564,
-
- 559, 1583, 561, 562, 563, 1582, 565, 1581, 1580, 566,
- 567, 569, 568, 571, 570, 572, 573, 576, 577, 578,
- 580, 575, 579, 574, 581, 582, 585, 583, 584, 1579,
- 591, 589, 597, 600, 602, 607, 604, 610, 603, 621,
- 627, 630, 632, 1578, 634, 643, 639, 644, 647, 648,
- 1577, 1576, 645, 651, 650, 654, 655, 656, 1575, 658,
- 657, 235, 1610, 659, 660, 663, 662, 667, 679, 664,
- 674, 661, 665, 1574, 672, 675, 690, 676, 1573, 692,
- 1572, 1571, 699, 700, 703, 704, 702, 705, 706, 709,
- 710, 711, 714, 715, 712, 716, 1570, 721, 722, 720,
-
- 718, 725, 717, 727, 724, 1569, 728, 1568, 729, 731,
- 726, 730, 738, 1567, 735, 745, 1566, 742, 739, 741,
- 746, 747, 750, 766, 770, 1565, 774, 778, 780, 1564,
- 781, 783, 782, 1563, 785, 787, 788, 790, 794, 796,
- 792, 798, 1562, 793, 800, 799, 801, 804, 806, 1561,
- 802, 805, 808, 807, 809, 810, 816, 813, 817, 821,
- 823, 1560, 1559, 818, 819, 1558, 824, 833, 822, 825,
- 839, 840, 829, 1557, 842, 1556, 846, 1555, 854, 861,
- 1554, 862, 847, 858, 866, 863, 869, 871, 874, 1553,
- 882, 1552, 1551, 883, 1550, 1549, 1548, 1547, 887, 1546,
-
- 889, 890, 892, 893, 895, 896, 900, 901, 906, 902,
- 907, 899, 1545, 910, 903, 1544, 908, 911, 905, 909,
- 915, 1543, 912, 1542, 919, 914, 913, 917, 918, 923,
- 921, 920, 925, 924, 927, 928, 926, 930, 929, 938,
- 961, 965, 966, 1541, 968, 970, 972, 973, 1540, 974,
- 975, 977, 1539, 976, 978, 1538, 980, 979, 1537, 982,
- 984, 988, 985, 1536, 989, 986, 987, 990, 991, 1535,
- 1534, 992, 993, 1533, 999, 994, 1532, 998, 1000, 1001,
- 1531, 1015, 1008, 1013, 1018, 1020, 1027, 1043, 1044, 1530,
- 1529, 1003, 1005, 1051, 1052, 1009, 1053, 1056, 1057, 1528,
-
- 1058, 1527, 1059, 1526, 1060, 1061, 1062, 1063, 1525, 1064,
- 1065, 1066, 1068, 1070, 1524, 1073, 1523, 1074, 1522, 1067,
- 1079, 1080, 1521, 1520, 1085, 1519, 1518, 1086, 1078, 1088,
- 1075, 1089, 1072, 1517, 1077, 1092, 1096, 1516, 1515, 1098,
- 1097, 1514, 1103, 1513, 1512, 1511, 1510, 1081, 1509, 1100,
- 1084, 1508, 1122, 1124, 1129, 1132, 1093, 1135, 1137, 1136,
- 1138, 1507, 1139, 1140, 1143, 101, 1145, 1141, 1144, 1146,
- 1147, 1148, 1149, 1150, 1506, 1505, 1151, 1504, 1154, 1157,
- 1160, 1152, 1153, 1503, 1502, 1501, 1155, 1159, 1500, 1161,
- 1164, 1171, 1174, 1163, 1499, 1175, 1166, 1498, 1176, 1179,
-
- 1162, 1181, 1189, 1497, 1199, 1201, 1205, 1496, 1208, 1495,
- 1211, 1494, 1212, 1213, 1215, 1216, 1217, 1493, 1219, 1486,
- 1221, 1218, 1474, 1223, 1471, 1222, 1225, 1470, 1230, 1232,
- 1224, 1226, 1227, 1469, 1233, 1468, 1229, 1235, 1234, 1237,
- 1236, 1466, 1243, 1238, 1249, 1251, 1465, 1464, 1253, 1252,
- 1255, 1239, 1462, 1461, 1261, 1263, 1265, 1266, 1460, 1267,
- 1269, 995, 1280, 1274, 1275, 1281, 1284, 1290, 1291, 1459,
- 1458, 1294, 1296, 1457, 1297, 1456, 1299, 1300, 1455, 1454,
- 1301, 1303, 1302, 1453, 1452, 1305, 1304, 1308, 1312, 1451,
- 1316, 1306, 1313, 1318, 1319, 1321, 1450, 1449, 1446, 1445,
-
- 1322, 1325, 1333, 1314, 1334, 1336, 1337, 1339, 1338, 1317,
- 1340, 1343, 1444, 1352, 1354, 1356, 1360, 1364, 1365, 1362,
- 1371, 1372, 1373, 1375, 1374, 1376, 1443, 1381, 1442, 1377,
- 1378, 1382, 1440, 1438, 1386, 1383, 1385, 1387, 1436, 1388,
- 1435, 1430, 1428, 1071, 1395, 1399, 506, 1390, 1403, 1391,
- 501, 1400, 1409, 423, 1412, 1393, 1405, 1413, 1389, 1414,
- 349, 333, 1416, 231, 1418, 224, 1610, 1482, 1486, 1488,
- 92, 1494, 1497
- } ;
-
-static const flex_int16_t yy_def[774] =
- { 0,
- 767, 1, 767, 767, 767, 767, 767, 768, 767, 767,
- 767, 769, 767, 767, 769, 15, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 767, 768, 767, 15, 15, 767, 771, 767,
- 772, 773, 770, 770, 770, 767, 25, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 767, 767,
- 772, 773, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 767, 767, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
-
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
- 770, 770, 770, 770, 770, 770, 0, 767, 767, 767,
- 767, 767, 767
- } ;
-
-static const flex_int16_t yy_nxt[1676] =
- { 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 16, 16, 16, 16, 16, 16, 17,
- 18, 17, 17, 19, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 20, 21,
- 22, 23, 24, 25, 26, 27, 17, 28, 29, 17,
- 30, 31, 32, 33, 34, 17, 35, 36, 37, 38,
- 39, 40, 41, 42, 17, 43, 43, 43, 43, 45,
- 53, 46, 49, 49, 49, 49, 49, 49, 49, 49,
- 45, 50, 53, 48, 51, 53, 53, 53, 43, 43,
- 53, 53, 48, 53, 48, 49, 55, 53, 53, 59,
-
- 53, 192, 53, 48, 193, 53, 144, 143, 191, 53,
- 53, 53, 48, 53, 48, 97, 53, 100, 262, 53,
- 98, 263, 265, 621, 53, 53, 53, 87, 99, 53,
- 88, 101, 53, 52, 56, 53, 60, 57, 57, 57,
- 57, 57, 57, 57, 57, 65, 61, 138, 62, 66,
- 134, 135, 63, 64, 152, 67, 70, 58, 68, 75,
- 154, 53, 106, 53, 107, 69, 108, 71, 157, 76,
- 72, 73, 129, 53, 74, 53, 53, 130, 53, 77,
- 56, 53, 53, 57, 57, 57, 57, 57, 57, 57,
- 57, 81, 53, 102, 53, 53, 53, 103, 89, 82,
-
- 90, 104, 83, 91, 92, 84, 115, 105, 85, 53,
- 116, 86, 109, 53, 53, 53, 110, 136, 53, 111,
- 200, 137, 78, 151, 79, 153, 117, 53, 53, 112,
- 93, 126, 113, 53, 80, 53, 114, 94, 95, 158,
- 53, 127, 262, 96, 131, 263, 169, 118, 128, 270,
- 53, 119, 132, 767, 120, 121, 53, 53, 133, 159,
- 53, 160, 122, 123, 53, 124, 201, 125, 49, 49,
- 49, 49, 49, 49, 49, 49, 56, 161, 53, 139,
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 54, 53, 54, 155, 53,
-
- 53, 168, 53, 174, 156, 162, 163, 54, 145, 146,
- 166, 147, 53, 53, 173, 53, 148, 149, 150, 53,
- 53, 167, 53, 53, 53, 53, 53, 53, 53, 164,
- 53, 53, 170, 53, 53, 171, 53, 53, 53, 53,
- 175, 172, 53, 165, 53, 177, 53, 180, 53, 181,
- 176, 53, 203, 53, 183, 53, 53, 53, 53, 53,
- 178, 53, 179, 184, 182, 53, 185, 218, 187, 188,
- 186, 189, 53, 194, 190, 208, 195, 53, 202, 204,
- 210, 199, 53, 206, 207, 196, 205, 209, 211, 212,
- 219, 216, 197, 198, 220, 214, 215, 217, 221, 53,
-
- 227, 222, 228, 226, 53, 213, 229, 53, 230, 53,
- 231, 223, 233, 224, 225, 232, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 234,
- 53, 53, 53, 53, 53, 139, 139, 139, 139, 139,
- 139, 139, 139, 264, 53, 237, 235, 242, 266, 236,
- 239, 269, 238, 246, 240, 251, 256, 53, 247, 260,
- 257, 248, 261, 241, 245, 252, 53, 243, 249, 250,
- 253, 244, 254, 258, 259, 255, 53, 53, 53, 53,
- 272, 53, 53, 53, 267, 53, 271, 273, 53, 53,
- 53, 53, 274, 53, 268, 53, 53, 53, 53, 53,
-
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 275, 278, 280, 53, 53, 53, 277, 53, 281,
- 283, 276, 279, 282, 53, 289, 53, 290, 53, 292,
- 53, 295, 296, 53, 285, 293, 308, 286, 284, 291,
- 297, 298, 307, 287, 288, 299, 294, 300, 306, 301,
- 309, 53, 302, 305, 311, 53, 312, 310, 53, 316,
- 314, 53, 303, 53, 313, 315, 304, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 317, 318, 324, 53, 319,
-
- 53, 321, 320, 323, 325, 328, 53, 322, 336, 53,
- 329, 53, 53, 53, 332, 346, 53, 326, 333, 53,
- 327, 335, 344, 330, 337, 334, 340, 331, 341, 350,
- 53, 339, 338, 343, 353, 342, 53, 347, 345, 53,
- 348, 53, 351, 53, 352, 349, 354, 355, 53, 357,
- 359, 361, 53, 53, 53, 362, 53, 53, 356, 53,
- 53, 358, 360, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 366, 53, 367, 363, 382,
- 364, 53, 365, 53, 53, 53, 368, 370, 53, 375,
- 381, 384, 369, 374, 371, 372, 379, 383, 385, 53,
-
- 387, 53, 378, 373, 388, 377, 376, 380, 53, 53,
- 386, 53, 53, 53, 53, 53, 392, 389, 53, 53,
- 53, 53, 390, 53, 53, 53, 53, 53, 391, 53,
- 53, 53, 394, 53, 53, 53, 53, 53, 53, 53,
- 53, 395, 393, 399, 53, 396, 398, 53, 53, 406,
- 53, 53, 401, 402, 53, 53, 53, 397, 403, 53,
- 400, 409, 410, 414, 404, 405, 413, 411, 412, 416,
- 407, 415, 408, 418, 422, 53, 423, 425, 417, 53,
- 419, 421, 420, 53, 427, 428, 432, 53, 424, 53,
- 53, 53, 53, 426, 53, 429, 53, 53, 431, 53,
-
- 430, 53, 53, 53, 434, 53, 433, 53, 53, 53,
- 53, 53, 435, 53, 53, 53, 53, 53, 53, 53,
- 439, 441, 53, 442, 436, 53, 53, 53, 53, 445,
- 53, 53, 53, 53, 53, 437, 440, 446, 53, 443,
- 438, 449, 53, 447, 455, 448, 444, 451, 53, 53,
- 450, 53, 457, 456, 463, 53, 53, 461, 452, 460,
- 454, 458, 465, 53, 453, 459, 469, 53, 462, 466,
- 53, 53, 53, 464, 471, 53, 468, 470, 53, 467,
- 53, 484, 472, 53, 473, 483, 486, 485, 475, 477,
- 474, 53, 53, 478, 488, 487, 53, 482, 53, 53,
-
- 476, 53, 53, 481, 53, 53, 479, 480, 53, 53,
- 53, 53, 53, 489, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 492, 53, 53, 53, 53,
- 53, 495, 53, 53, 53, 53, 53, 53, 53, 53,
- 490, 493, 494, 504, 500, 502, 491, 53, 509, 497,
- 499, 505, 498, 501, 503, 507, 496, 511, 508, 506,
- 513, 514, 512, 515, 519, 518, 523, 510, 516, 521,
- 53, 524, 520, 526, 53, 53, 517, 53, 522, 53,
- 525, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 528, 53, 527, 53, 53, 53, 53, 53, 53, 53,
-
- 53, 53, 53, 53, 53, 531, 529, 53, 53, 53,
- 53, 533, 53, 534, 53, 535, 691, 53, 53, 530,
- 538, 541, 53, 542, 53, 544, 532, 53, 539, 53,
- 540, 537, 536, 545, 551, 547, 53, 550, 554, 558,
- 543, 555, 548, 546, 549, 553, 562, 559, 556, 552,
- 561, 563, 53, 53, 564, 560, 557, 569, 565, 566,
- 53, 53, 53, 573, 570, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 567, 53,
- 53, 53, 53, 53, 53, 568, 53, 53, 53, 53,
- 53, 574, 571, 53, 53, 53, 577, 53, 53, 575,
-
- 578, 53, 53, 572, 580, 53, 53, 53, 590, 53,
- 579, 583, 53, 582, 586, 576, 588, 589, 591, 592,
- 581, 595, 584, 587, 593, 594, 597, 596, 608, 585,
- 599, 53, 598, 53, 606, 601, 600, 603, 53, 602,
- 604, 53, 605, 607, 53, 53, 53, 53, 53, 53,
- 53, 613, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 609, 53, 619, 53, 53,
- 53, 53, 53, 53, 610, 53, 617, 618, 622, 611,
- 53, 620, 612, 53, 53, 53, 614, 615, 53, 625,
- 53, 627, 628, 631, 616, 634, 632, 626, 53, 623,
-
- 624, 633, 629, 630, 638, 639, 635, 636, 53, 644,
- 53, 637, 640, 642, 53, 641, 643, 53, 647, 645,
- 53, 53, 53, 648, 53, 53, 53, 53, 53, 646,
- 53, 53, 53, 53, 53, 53, 53, 662, 53, 53,
- 649, 53, 53, 53, 53, 53, 53, 53, 53, 650,
- 653, 660, 53, 651, 654, 659, 656, 652, 53, 661,
- 53, 53, 53, 658, 53, 657, 663, 669, 655, 666,
- 53, 667, 53, 670, 53, 53, 53, 674, 53, 676,
- 668, 664, 665, 53, 53, 671, 675, 672, 673, 53,
- 53, 679, 677, 53, 680, 678, 681, 684, 689, 53,
-
- 53, 682, 683, 53, 687, 53, 53, 690, 53, 53,
- 53, 53, 53, 53, 53, 53, 693, 53, 685, 688,
- 686, 53, 53, 53, 692, 53, 53, 53, 53, 694,
- 53, 53, 695, 697, 53, 696, 701, 698, 702, 711,
- 700, 705, 53, 53, 708, 53, 53, 53, 53, 53,
- 710, 699, 53, 712, 703, 727, 713, 714, 704, 707,
- 709, 53, 715, 53, 716, 53, 706, 717, 720, 53,
- 718, 53, 719, 53, 53, 721, 724, 726, 728, 723,
- 53, 53, 53, 53, 53, 53, 53, 53, 722, 725,
- 53, 53, 53, 730, 53, 53, 53, 53, 53, 53,
-
- 53, 736, 53, 733, 53, 729, 735, 734, 53, 53,
- 737, 731, 53, 732, 53, 739, 740, 741, 53, 743,
- 744, 53, 53, 53, 748, 53, 742, 53, 738, 747,
- 750, 751, 745, 754, 752, 756, 746, 53, 753, 53,
- 760, 757, 763, 749, 53, 53, 755, 53, 761, 53,
- 758, 53, 53, 53, 53, 53, 762, 759, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 765, 53, 53, 53, 764, 53, 53, 53,
- 53, 766, 44, 53, 44, 44, 44, 44, 47, 47,
- 54, 54, 54, 54, 141, 53, 141, 141, 141, 141,
-
- 142, 142, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
-
- 53, 53, 53, 767, 140, 767, 53, 767, 767, 3,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767
- } ;
-
-static const flex_int16_t yy_chk[1676] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 5, 5, 6, 6, 12,
- 20, 12, 13, 13, 13, 13, 13, 13, 13, 13,
- 15, 14, 18, 12, 14, 29, 27, 31, 43, 43,
- 30, 55, 49, 58, 15, 771, 18, 90, 91, 20,
-
- 89, 90, 145, 12, 91, 21, 58, 55, 89, 42,
- 566, 22, 49, 40, 15, 29, 61, 31, 140, 33,
- 30, 140, 145, 566, 63, 24, 23, 27, 30, 38,
- 27, 31, 65, 15, 19, 19, 21, 19, 19, 19,
- 19, 19, 19, 19, 19, 22, 21, 42, 21, 22,
- 40, 40, 21, 21, 61, 22, 23, 19, 22, 24,
- 63, 26, 33, 32, 33, 22, 33, 23, 65, 24,
- 23, 23, 38, 41, 23, 60, 35, 38, 98, 24,
- 25, 25, 34, 25, 25, 25, 25, 25, 25, 25,
- 25, 26, 62, 32, 37, 28, 66, 32, 28, 26,
-
- 28, 32, 26, 28, 28, 26, 35, 32, 26, 74,
- 35, 26, 34, 36, 39, 67, 34, 41, 99, 34,
- 98, 41, 25, 60, 25, 62, 35, 68, 69, 34,
- 28, 37, 34, 766, 25, 149, 34, 28, 28, 66,
- 764, 37, 262, 28, 39, 262, 74, 36, 37, 149,
- 64, 36, 39, 57, 36, 36, 73, 70, 39, 67,
- 77, 68, 36, 36, 76, 36, 99, 36, 45, 45,
- 45, 45, 45, 45, 45, 45, 48, 69, 72, 48,
- 48, 48, 48, 48, 48, 48, 48, 56, 56, 56,
- 56, 56, 56, 56, 56, 57, 59, 57, 64, 71,
-
- 75, 73, 78, 77, 64, 70, 70, 57, 59, 59,
- 72, 59, 79, 81, 76, 80, 59, 59, 59, 101,
- 82, 72, 83, 84, 85, 88, 86, 87, 94, 71,
- 97, 103, 75, 100, 104, 75, 113, 102, 105, 107,
- 78, 75, 762, 71, 95, 79, 106, 80, 110, 80,
- 78, 111, 101, 112, 81, 119, 115, 109, 761, 118,
- 79, 114, 79, 82, 80, 116, 83, 113, 85, 86,
- 84, 87, 117, 94, 88, 104, 95, 120, 100, 102,
- 106, 97, 121, 103, 103, 95, 102, 105, 107, 109,
- 114, 112, 95, 95, 115, 110, 111, 112, 116, 122,
-
- 118, 116, 118, 117, 123, 109, 118, 124, 118, 125,
- 119, 116, 121, 116, 116, 120, 126, 127, 131, 128,
- 129, 130, 134, 132, 135, 143, 137, 136, 138, 122,
- 146, 151, 754, 148, 133, 139, 139, 139, 139, 139,
- 139, 139, 139, 143, 154, 124, 122, 127, 146, 123,
- 126, 148, 125, 129, 126, 130, 134, 152, 129, 137,
- 134, 129, 138, 126, 128, 131, 147, 127, 129, 129,
- 132, 127, 133, 135, 136, 133, 150, 155, 156, 157,
- 151, 159, 158, 160, 147, 161, 150, 152, 163, 162,
- 164, 165, 154, 166, 147, 167, 168, 169, 170, 171,
-
- 173, 172, 174, 178, 181, 175, 179, 176, 180, 183,
- 751, 155, 158, 160, 177, 747, 182, 157, 187, 161,
- 163, 156, 159, 162, 184, 168, 185, 169, 189, 171,
- 186, 173, 174, 188, 165, 172, 181, 166, 164, 170,
- 175, 176, 180, 167, 167, 176, 172, 177, 179, 177,
- 182, 190, 177, 178, 184, 194, 185, 183, 197, 189,
- 187, 195, 177, 196, 186, 188, 177, 199, 201, 198,
- 203, 204, 205, 200, 207, 210, 211, 213, 212, 215,
- 214, 216, 217, 224, 222, 218, 219, 220, 223, 221,
- 225, 226, 228, 229, 227, 190, 194, 199, 232, 194,
-
- 231, 196, 195, 198, 200, 204, 233, 197, 215, 234,
- 205, 235, 239, 237, 211, 224, 236, 201, 212, 238,
- 203, 214, 222, 207, 216, 213, 218, 210, 219, 227,
- 240, 217, 216, 221, 231, 220, 241, 225, 223, 242,
- 225, 243, 228, 245, 229, 226, 232, 233, 247, 235,
- 236, 238, 246, 248, 253, 239, 249, 250, 234, 255,
- 254, 235, 237, 256, 257, 258, 261, 260, 264, 265,
- 272, 267, 266, 270, 273, 243, 268, 245, 240, 265,
- 241, 275, 242, 271, 276, 278, 246, 248, 269, 255,
- 264, 267, 247, 254, 249, 250, 260, 266, 268, 277,
-
- 270, 280, 258, 253, 271, 257, 256, 261, 283, 284,
- 269, 287, 285, 286, 288, 289, 276, 272, 290, 291,
- 292, 295, 273, 293, 294, 296, 303, 301, 275, 300,
- 298, 299, 278, 305, 302, 311, 304, 307, 309, 312,
- 310, 280, 277, 286, 315, 283, 285, 313, 319, 291,
- 320, 318, 288, 289, 316, 321, 322, 284, 289, 323,
- 287, 294, 295, 300, 289, 290, 299, 296, 298, 302,
- 292, 301, 293, 304, 310, 324, 311, 313, 303, 325,
- 305, 309, 307, 327, 316, 318, 322, 328, 312, 329,
- 331, 333, 332, 315, 335, 319, 336, 337, 321, 338,
-
- 320, 341, 344, 339, 324, 340, 323, 342, 346, 345,
- 347, 351, 325, 348, 352, 349, 354, 353, 355, 356,
- 331, 333, 358, 335, 327, 357, 359, 364, 365, 338,
- 360, 369, 361, 367, 370, 328, 332, 339, 373, 336,
- 329, 342, 368, 340, 349, 341, 337, 345, 371, 372,
- 344, 375, 352, 351, 358, 377, 383, 356, 346, 355,
- 348, 353, 360, 379, 347, 354, 367, 384, 357, 361,
- 380, 382, 386, 359, 369, 385, 365, 368, 387, 364,
- 388, 384, 370, 389, 371, 383, 386, 385, 373, 377,
- 372, 391, 394, 379, 388, 387, 399, 382, 401, 402,
-
- 375, 403, 404, 380, 405, 406, 379, 379, 412, 407,
- 408, 410, 415, 389, 419, 409, 411, 417, 420, 414,
- 418, 423, 427, 426, 421, 399, 428, 429, 425, 432,
- 431, 403, 430, 434, 433, 437, 435, 436, 439, 438,
- 391, 401, 402, 412, 408, 410, 394, 440, 419, 405,
- 407, 414, 406, 409, 411, 417, 404, 421, 418, 415,
- 425, 426, 423, 427, 431, 430, 435, 420, 428, 433,
- 441, 436, 432, 438, 442, 443, 429, 445, 434, 446,
- 437, 447, 448, 450, 451, 454, 452, 455, 458, 457,
- 440, 460, 439, 461, 463, 466, 467, 462, 465, 468,
-
- 469, 472, 473, 476, 662, 443, 441, 478, 475, 479,
- 480, 446, 492, 447, 493, 448, 662, 483, 496, 442,
- 452, 457, 484, 458, 482, 461, 445, 485, 454, 486,
- 455, 451, 450, 462, 469, 465, 487, 468, 475, 479,
- 460, 476, 466, 463, 467, 473, 483, 479, 478, 472,
- 482, 484, 488, 489, 485, 480, 478, 492, 486, 487,
- 494, 495, 497, 496, 493, 498, 499, 501, 503, 505,
- 506, 507, 508, 510, 511, 512, 520, 513, 488, 514,
- 744, 533, 516, 518, 531, 489, 535, 529, 521, 522,
- 548, 497, 494, 551, 525, 528, 501, 530, 532, 498,
-
- 503, 536, 557, 495, 506, 537, 541, 540, 520, 550,
- 505, 510, 543, 508, 513, 499, 516, 518, 521, 522,
- 507, 529, 511, 514, 525, 528, 531, 530, 551, 512,
- 533, 553, 532, 554, 548, 536, 535, 540, 555, 537,
- 541, 556, 543, 550, 558, 560, 559, 561, 563, 564,
- 568, 557, 565, 569, 567, 570, 571, 572, 573, 574,
- 577, 582, 583, 579, 587, 553, 580, 564, 588, 581,
- 590, 601, 594, 591, 554, 597, 561, 563, 567, 555,
- 592, 565, 556, 593, 596, 599, 558, 559, 600, 570,
- 602, 572, 573, 579, 560, 582, 580, 571, 603, 568,
-
- 569, 581, 574, 577, 590, 591, 583, 587, 605, 597,
- 606, 588, 592, 594, 607, 593, 596, 609, 601, 599,
- 611, 613, 614, 602, 615, 616, 617, 622, 619, 600,
- 621, 626, 624, 631, 627, 632, 633, 622, 637, 629,
- 603, 630, 635, 639, 638, 641, 640, 644, 652, 605,
- 609, 619, 643, 606, 611, 617, 614, 607, 645, 621,
- 646, 650, 649, 616, 651, 615, 624, 632, 613, 629,
- 655, 630, 656, 633, 657, 658, 660, 639, 661, 641,
- 631, 626, 627, 664, 665, 635, 640, 637, 638, 663,
- 666, 645, 643, 667, 646, 644, 649, 652, 660, 668,
-
- 669, 650, 651, 672, 657, 673, 675, 661, 677, 678,
- 681, 683, 682, 687, 686, 692, 664, 688, 655, 658,
- 656, 689, 693, 704, 663, 691, 710, 694, 695, 665,
- 696, 701, 666, 668, 702, 667, 675, 669, 677, 691,
- 673, 682, 703, 705, 687, 706, 707, 709, 708, 711,
- 689, 672, 712, 692, 678, 710, 693, 694, 681, 686,
- 688, 714, 695, 715, 696, 716, 683, 701, 704, 717,
- 702, 720, 703, 718, 719, 705, 707, 709, 711, 706,
- 721, 722, 723, 725, 724, 726, 730, 731, 705, 708,
- 728, 732, 736, 714, 737, 735, 738, 740, 759, 748,
-
- 750, 720, 756, 717, 745, 712, 719, 718, 746, 752,
- 721, 715, 749, 716, 757, 723, 724, 725, 753, 728,
- 730, 755, 758, 760, 736, 763, 726, 765, 722, 735,
- 738, 740, 731, 748, 745, 750, 732, 743, 746, 742,
- 756, 752, 759, 737, 741, 739, 749, 734, 757, 733,
- 753, 729, 727, 713, 700, 699, 758, 755, 698, 697,
- 690, 685, 684, 680, 679, 676, 674, 671, 670, 659,
- 654, 653, 763, 648, 647, 642, 760, 636, 634, 628,
- 625, 765, 768, 623, 768, 768, 768, 768, 769, 769,
- 770, 770, 770, 770, 772, 620, 772, 772, 772, 772,
-
- 773, 773, 618, 612, 610, 608, 604, 598, 595, 589,
- 586, 585, 584, 578, 576, 575, 562, 552, 549, 547,
- 546, 545, 544, 542, 539, 538, 534, 527, 526, 524,
- 523, 519, 517, 515, 509, 504, 502, 500, 491, 490,
- 481, 477, 474, 471, 470, 464, 459, 456, 453, 449,
- 444, 424, 422, 416, 413, 400, 398, 397, 396, 395,
- 393, 392, 390, 381, 378, 376, 374, 366, 363, 362,
- 350, 343, 334, 330, 326, 317, 314, 308, 306, 297,
- 282, 281, 279, 274, 259, 252, 251, 244, 230, 209,
- 208, 206, 202, 193, 192, 191, 153, 144, 108, 96,
-
- 93, 92, 54, 53, 50, 47, 17, 16, 3, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 767
- } ;
-
-/* Table of booleans, true if rule could match eol. */
-static const flex_int32_t yy_rule_can_match_eol[170] =
- { 0,
-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int yy_flex_debug;
-int yy_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-#ifndef YYLMAX
-#define YYLMAX 8192
-#endif
-
-char yytext[YYLMAX];
-char *yytext_ptr;
-#line 1 "thriftl.ll"
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Thrift scanner.
- *
- * Tokenizes a thrift definition file.
- */
-#line 27 "thriftl.ll"
-
-/* This is redundant with some of the flags in Makefile.am, but it works
- * when people override CXXFLAGS without being careful. The pragmas are
- * the 'right' way to do it, but don't work on old-enough GCC (in particular
- * the GCC that ship on Mac OS X 10.6.5, *counter* to what the GNU docs say)
- *
- * We should revert the Makefile.am changes once Apple ships a reasonable
- * GCC.
- */
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-Wunused-function"
-#pragma GCC diagnostic ignored "-Wunused-label"
-#endif
-
-#ifdef _MSC_VER
-#pragma warning( push )
-
-// warning C4102: 'find_rule' : unreferenced label
-#pragma warning( disable : 4102 )
-
-// warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
-#pragma warning( disable : 4267 )
-
-// avoid isatty redefinition
-#define YY_NEVER_INTERACTIVE 1
-
-#define YY_NO_UNISTD_H 1
-#endif
-
-#include <cassert>
-#include <string>
-#include <errno.h>
-#include <stdlib.h>
-
-#ifdef _MSC_VER
-#include "thrift/windows/config.h"
-#endif
-#include "thrift/main.h"
-#include "thrift/common.h"
-#include "thrift/globals.h"
-#include "thrift/parse/t_program.h"
-
-/**
- * Must be included AFTER parse/t_program.h, but I can't remember why anymore
- * because I wrote this a while ago.
- */
-#if defined(BISON_USE_PARSER_H_EXTENSION)
-#include "thrift/thrifty.h" // Y_IGNORE
-#else
-#include "thrift/thrifty.hh"
-#endif
-
-void thrift_reserved_keyword(char* keyword) {
- yyerror("Cannot use reserved language keyword: \"%s\"\n", keyword);
- exit(1);
-}
-
-void integer_overflow(char* text) {
- yyerror("This integer is too big: \"%s\"\n", text);
- exit(1);
-}
-
-void unexpected_token(char* text) {
- yyerror("Unexpected token in input: \"%s\"\n", text);
- exit(1);
-}
-
-#line 1196 "thriftl.cc"
-/**
- * Provides the yylineno global, useful for debugging output
- */
-/**
- * Our inputs are all single files, so no need for yywrap
- */
-/**
- * We don't use it, and it fires up warnings at -Wall
- */
-/**
- * Helper definitions, comments, constants, and whatnot
- */
-#line 1209 "thriftl.cc"
-
-#define INITIAL 0
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals ( void );
-
-/* Accessor methods to globals.
- These are made visible to non-reentrant scanners for convenience. */
-
-int yylex_destroy ( void );
-
-int yyget_debug ( void );
-
-void yyset_debug ( int debug_flag );
-
-YY_EXTRA_TYPE yyget_extra ( void );
-
-void yyset_extra ( YY_EXTRA_TYPE user_defined );
-
-FILE *yyget_in ( void );
-
-void yyset_in ( FILE * _in_str );
-
-FILE *yyget_out ( void );
-
-void yyset_out ( FILE * _out_str );
-
- int yyget_leng ( void );
-
-char *yyget_text ( void );
-
-int yyget_lineno ( void );
-
-void yyset_lineno ( int _line_number );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap ( void );
-#else
-extern int yywrap ( void );
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * );
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput ( void );
-#else
-static int input ( void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
-#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
- { \
- int c = '*'; \
- int n; \
- for ( n = 0; n < max_size && \
- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else \
- { \
- errno=0; \
- while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex (void);
-
-#define YY_DECL int yylex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK /*LINTED*/break;
-#endif
-
-#define YY_RULE_SETUP \
- YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
- yy_state_type yy_current_state;
- char *yy_cp, *yy_bp;
- int yy_act;
-
- if ( !(yy_init) )
- {
- (yy_init) = 1;
-
-#ifdef YY_USER_INIT
- YY_USER_INIT;
-#endif
-
- if ( ! (yy_start) )
- (yy_start) = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( ! YY_CURRENT_BUFFER ) {
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer( yyin, YY_BUF_SIZE );
- }
-
- yy_load_buffer_state( );
- }
-
- {
-#line 128 "thriftl.ll"
-
-
-#line 1427 "thriftl.cc"
-
- while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
- {
- yy_cp = (yy_c_buf_p);
-
- /* Support of yytext. */
- *yy_cp = (yy_hold_char);
-
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = (yy_start);
-yy_match:
- do
- {
- YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 768 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 1610 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
- if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
- {
- int yyl;
- for ( yyl = 0; yyl < yyleng; ++yyl )
- if ( yytext[yyl] == '\n' )
-
- yylineno++;
-;
- }
-
-do_action: /* This label is used only to access EOF actions. */
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = (yy_hold_char);
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- goto yy_find_action;
-
-case 1:
-/* rule 1 can match eol */
-YY_RULE_SETUP
-#line 130 "thriftl.ll"
-{ /* do nothing */ }
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 131 "thriftl.ll"
-{ /* do nothing */ }
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 133 "thriftl.ll"
-{
- std::string parsed("/**");
- int state = 0; // 0 = normal, 1 = "*" seen, "*/" seen
- while(state < 2)
- {
- int ch = yyinput();
- parsed.push_back(ch);
- switch (ch) {
- case EOF:
- yyerror("Unexpected end of file in doc-comment at %d\n", yylineno);
- exit(1);
- case '*':
- state = 1;
- break;
- case '/':
- state = (state == 1) ? 2 : 0;
- break;
- default:
- state = 0;
- break;
- }
- }
- pdebug("doctext = \"%s\"\n",parsed.c_str());
-
- /* This does not show up in the parse tree. */
- /* Rather, the parser will grab it out of the global. */
- if (g_parse_mode == PROGRAM) {
- clear_doctext();
- g_doctext = strdup(parsed.c_str() + 3);
- assert(strlen(g_doctext) >= 2);
- g_doctext[strlen(g_doctext) - 2] = ' ';
- g_doctext[strlen(g_doctext) - 1] = '\0';
- g_doctext = clean_up_doctext(g_doctext);
- g_doctext_lineno = yylineno;
- if( (g_program_doctext_candidate == NULL) && (g_program_doctext_status == INVALID)){
- g_program_doctext_candidate = strdup(g_doctext);
- g_program_doctext_lineno = g_doctext_lineno;
- g_program_doctext_status = STILL_CANDIDATE;
- pdebug("%s","program doctext set to STILL_CANDIDATE");
- }
- }
-}
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 176 "thriftl.ll"
-{ /* parsed, but thrown away */
- std::string parsed("/*");
- int state = 0; // 0 = normal, 1 = "*" seen, "*/" seen
- while(state < 2)
- {
- int ch = yyinput();
- parsed.push_back(ch);
- switch (ch) {
- case EOF:
- yyerror("Unexpected end of file in multiline comment at %d\n", yylineno);
- exit(1);
- case '*':
- state = 1;
- break;
- case '/':
- state = (state == 1) ? 2 : 0;
- break;
- default:
- state = 0;
- break;
- }
- }
- pdebug("multi_comm = \"%s\"\n",parsed.c_str());
-}
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 201 "thriftl.ll"
-{ /* do nothing */ }
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 202 "thriftl.ll"
-{ /* do nothing */ }
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 204 "thriftl.ll"
-{ return yytext[0]; }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 205 "thriftl.ll"
-{ return yytext[0]; }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 207 "thriftl.ll"
-{ yylval.iconst=0; return tok_int_constant; }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 208 "thriftl.ll"
-{ yylval.iconst=1; return tok_int_constant; }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 210 "thriftl.ll"
-{ return tok_namespace; }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 211 "thriftl.ll"
-{ error_unsupported_namespace_decl("cpp"); /* do nothing */ }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 212 "thriftl.ll"
-{ return tok_cpp_include; }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 213 "thriftl.ll"
-{ return tok_cpp_type; }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 214 "thriftl.ll"
-{ error_unsupported_namespace_decl("java_package", "java"); /* do nothing */ }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 215 "thriftl.ll"
-{ error_unsupported_namespace_decl("cocoa_prefix", "cocoa"); /* do nothing */ }
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 216 "thriftl.ll"
-{ error_unsupported_namespace_decl("csharp"); /* do nothing */ }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 217 "thriftl.ll"
-{ error_unsupported_namespace_decl("delphi"); /* do nothing */ }
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 218 "thriftl.ll"
-{ error_unsupported_namespace_decl("php"); /* do nothing */ }
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 219 "thriftl.ll"
-{ error_unsupported_namespace_decl("py_module", "py"); /* do nothing */ }
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 220 "thriftl.ll"
-{ error_unsupported_namespace_decl("perl_package", "perl"); /* do nothing */ }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 221 "thriftl.ll"
-{ error_unsupported_namespace_decl("ruby"); /* do nothing */ }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 222 "thriftl.ll"
-{ error_unsupported_namespace_decl("smalltalk_category", "smalltalk.category"); /* do nothing */ }
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 223 "thriftl.ll"
-{ error_unsupported_namespace_decl("smalltalk_category", "smalltalk.category"); /* do nothing */ }
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 224 "thriftl.ll"
-{ return tok_xsd_all; }
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 225 "thriftl.ll"
-{ return tok_xsd_optional; }
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 226 "thriftl.ll"
-{ return tok_xsd_nillable; }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 227 "thriftl.ll"
-{ error_unsupported_namespace_decl("xsd"); /* do nothing */ }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 228 "thriftl.ll"
-{ return tok_xsd_attrs; }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 229 "thriftl.ll"
-{ return tok_include; }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 230 "thriftl.ll"
-{ return tok_void; }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 231 "thriftl.ll"
-{ return tok_bool; }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 232 "thriftl.ll"
-{
- emit_byte_type_warning();
- return tok_i8;
-}
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 236 "thriftl.ll"
-{ return tok_i8; }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 237 "thriftl.ll"
-{ return tok_i16; }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 238 "thriftl.ll"
-{ return tok_i32; }
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 239 "thriftl.ll"
-{ return tok_i64; }
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 240 "thriftl.ll"
-{ return tok_double; }
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 241 "thriftl.ll"
-{ return tok_string; }
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 242 "thriftl.ll"
-{ return tok_binary; }
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 243 "thriftl.ll"
-{
- pwarning(0, "\"slist\" is deprecated and will be removed in a future compiler version. This type should be replaced with \"string\".\n");
- return tok_slist;
-}
- YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 247 "thriftl.ll"
-{
- pwarning(0, "\"senum\" is deprecated and will be removed in a future compiler version. This type should be replaced with \"string\".\n");
- return tok_senum;
-}
- YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 251 "thriftl.ll"
-{ return tok_map; }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 252 "thriftl.ll"
-{ return tok_list; }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 253 "thriftl.ll"
-{ return tok_set; }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 254 "thriftl.ll"
-{ return tok_oneway; }
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 255 "thriftl.ll"
-{ return tok_typedef; }
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 256 "thriftl.ll"
-{ return tok_struct; }
- YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 257 "thriftl.ll"
-{ return tok_union; }
- YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 258 "thriftl.ll"
-{ return tok_xception; }
- YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 259 "thriftl.ll"
-{ return tok_extends; }
- YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 260 "thriftl.ll"
-{ return tok_throws; }
- YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 261 "thriftl.ll"
-{ return tok_service; }
- YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 262 "thriftl.ll"
-{ return tok_enum; }
- YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 263 "thriftl.ll"
-{ return tok_const; }
- YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 264 "thriftl.ll"
-{ return tok_required; }
- YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 265 "thriftl.ll"
-{ return tok_optional; }
- YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 266 "thriftl.ll"
-{
- pwarning(0, "\"async\" is deprecated. It is called \"oneway\" now.\n");
- return tok_oneway;
-}
- YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 270 "thriftl.ll"
-{ return tok_reference; }
- YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 273 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 274 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 275 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 276 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 277 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 278 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 279 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 280 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 281 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 282 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 283 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 284 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 285 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 286 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 287 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 288 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 289 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 290 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 291 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 292 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 293 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 294 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 295 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 296 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 297 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 298 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 299 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 300 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 301 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 302 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 303 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 304 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 305 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 306 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 307 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 308 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 309 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 97:
-YY_RULE_SETUP
-#line 310 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 311 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 99:
-YY_RULE_SETUP
-#line 312 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 313 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 314 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 315 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 316 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 317 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 318 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 319 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 107:
-YY_RULE_SETUP
-#line 320 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 108:
-YY_RULE_SETUP
-#line 321 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 109:
-YY_RULE_SETUP
-#line 322 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 323 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 324 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 325 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 326 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 114:
-YY_RULE_SETUP
-#line 327 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 115:
-YY_RULE_SETUP
-#line 328 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 116:
-YY_RULE_SETUP
-#line 329 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 117:
-YY_RULE_SETUP
-#line 330 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 331 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 332 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 333 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 334 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 335 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 336 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 124:
-YY_RULE_SETUP
-#line 337 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 338 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 339 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 127:
-YY_RULE_SETUP
-#line 340 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 128:
-YY_RULE_SETUP
-#line 341 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 129:
-YY_RULE_SETUP
-#line 342 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 130:
-YY_RULE_SETUP
-#line 343 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 131:
-YY_RULE_SETUP
-#line 344 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 345 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 133:
-YY_RULE_SETUP
-#line 346 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 347 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 135:
-YY_RULE_SETUP
-#line 348 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 349 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 137:
-YY_RULE_SETUP
-#line 350 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 351 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 352 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 140:
-YY_RULE_SETUP
-#line 353 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 354 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 142:
-YY_RULE_SETUP
-#line 355 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 143:
-YY_RULE_SETUP
-#line 356 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 144:
-YY_RULE_SETUP
-#line 357 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 145:
-YY_RULE_SETUP
-#line 358 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 359 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 360 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 361 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 149:
-YY_RULE_SETUP
-#line 362 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 363 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 151:
-YY_RULE_SETUP
-#line 364 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 365 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 366 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 154:
-YY_RULE_SETUP
-#line 367 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 155:
-YY_RULE_SETUP
-#line 368 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 156:
-YY_RULE_SETUP
-#line 369 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 157:
-YY_RULE_SETUP
-#line 370 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 158:
-YY_RULE_SETUP
-#line 371 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 159:
-YY_RULE_SETUP
-#line 372 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 160:
-YY_RULE_SETUP
-#line 373 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 374 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 162:
-YY_RULE_SETUP
-#line 375 "thriftl.ll"
-{ thrift_reserved_keyword(yytext); }
- YY_BREAK
-case 163:
-YY_RULE_SETUP
-#line 377 "thriftl.ll"
-{
- errno = 0;
- yylval.iconst = strtoll(yytext, NULL, 10);
- if (errno == ERANGE) {
- integer_overflow(yytext);
- }
- return tok_int_constant;
-}
- YY_BREAK
-case 164:
-YY_RULE_SETUP
-#line 386 "thriftl.ll"
-{
- errno = 0;
- char sign = yytext[0];
- int shift = sign == '0' ? 2 : 3;
- yylval.iconst = strtoll(yytext+shift, NULL, 16);
- if (sign == '-') {
- yylval.iconst = -yylval.iconst;
- }
- if (errno == ERANGE) {
- integer_overflow(yytext);
- }
- return tok_int_constant;
-}
- YY_BREAK
-case 165:
-YY_RULE_SETUP
-#line 400 "thriftl.ll"
-{
- yylval.id = strdup(yytext);
- return tok_identifier;
-}
- YY_BREAK
-case 166:
-YY_RULE_SETUP
-#line 405 "thriftl.ll"
-{
- /* Deliberately placed after identifier, since "e10" is NOT a double literal (THRIFT-3477) */
- yylval.dconst = atof(yytext);
- return tok_dub_constant;
-}
- YY_BREAK
-case 167:
-YY_RULE_SETUP
-#line 411 "thriftl.ll"
-{
- char mark = yytext[0];
- std::string result;
- for(;;)
- {
- int ch = yyinput();
- switch (ch) {
- case EOF:
- yyerror("End of file while read string at %d\n", yylineno);
- exit(1);
- case '\n':
- yyerror("End of line while read string at %d\n", yylineno - 1);
- exit(1);
- case '\\':
- ch = yyinput();
- switch (ch) {
- case 'r':
- result.push_back('\r');
- continue;
- case 'n':
- result.push_back('\n');
- continue;
- case 't':
- result.push_back('\t');
- continue;
- case '"':
- result.push_back('"');
- continue;
- case '\'':
- result.push_back('\'');
- continue;
- case '\\':
- result.push_back('\\');
- continue;
- default:
- yyerror("Bad escape character\n");
- return -1;
- }
- break;
- default:
- if (ch == mark) {
- yylval.id = strdup(result.c_str());
- return tok_literal;
- } else {
- result.push_back(ch);
- }
- }
- }
-}
- YY_BREAK
-case 168:
-YY_RULE_SETUP
-#line 462 "thriftl.ll"
-{
- unexpected_token(yytext);
-}
- YY_BREAK
-case 169:
-YY_RULE_SETUP
-#line 466 "thriftl.ll"
-ECHO;
- YY_BREAK
-#line 2492 "thriftl.cc"
-case YY_STATE_EOF(INITIAL):
- yyterminate();
-
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = (yy_hold_char);
- YY_RESTORE_YY_MORE_OFFSET
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed yyin at a new source and called
- * yylex(). If so, then we have to assure
- * consistency between 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.
- */
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since 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 ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
-
- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state( );
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * 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).
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++(yy_c_buf_p);
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = (yy_c_buf_p);
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_END_OF_FILE:
- {
- (yy_did_buffer_switch_on_eof) = 0;
-
- if ( yywrap( ) )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) =
- (yytext_ptr) + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state( );
-
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- (yy_c_buf_p) =
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
- yy_current_state = yy_get_previous_state( );
-
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of user's declarations */
-} /* end of yylex */
-
-/* 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
- */
-static int yy_get_next_buffer (void)
-{
- char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- char *source = (yytext_ptr);
- int number_to_move, i;
- int ret_val;
-
- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( (yy_c_buf_p) - (yytext_ptr) - 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) ((yy_c_buf_p) - (yytext_ptr) - 1);
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
- else
- {
- int num_to_read =
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
-
- int yy_c_buf_p_offset =
- (int) ((yy_c_buf_p) - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yyrealloc( (void *) b->yy_ch_buf,
- (yy_size_t) (b->yy_buf_size + 2) );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = NULL;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
- number_to_move - 1;
-
- }
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), num_to_read );
-
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- if ( (yy_n_chars) == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yyrestart( yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
- /* Extend the array by 50%, plus the number we really need. */
- int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
- (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
- /* "- 2" to take care of EOB's */
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
- }
-
- (yy_n_chars) += number_to_move;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
- return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
- static yy_state_type yy_get_previous_state (void)
-{
- yy_state_type yy_current_state;
- char *yy_cp;
-
- yy_current_state = (yy_start);
-
- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
- {
- YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 768 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- }
-
- return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
-{
- int yy_is_jam;
- char *yy_cp = (yy_c_buf_p);
-
- YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 768 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 767);
-
- return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_UNPUT
-
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
- static int yyinput (void)
-#else
- static int input (void)
-#endif
-
-{
- int c;
-
- *(yy_c_buf_p) = (yy_hold_char);
-
- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
- {
- /* 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 ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- /* This was really a NUL. */
- *(yy_c_buf_p) = '\0';
-
- else
- { /* need more input */
- int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
- ++(yy_c_buf_p);
-
- switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because 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. */
- yyrestart( yyin );
-
- /*FALLTHROUGH*/
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap( ) )
- return 0;
-
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
-#ifdef __cplusplus
- return yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) = (yytext_ptr) + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
- *(yy_c_buf_p) = '\0'; /* preserve yytext */
- (yy_hold_char) = *++(yy_c_buf_p);
-
- if ( c == '\n' )
-
- yylineno++;
-;
-
- return c;
-}
-#endif /* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
- void yyrestart (FILE * input_file )
-{
-
- if ( ! YY_CURRENT_BUFFER ){
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer( yyin, YY_BUF_SIZE );
- }
-
- yy_init_buffer( YY_CURRENT_BUFFER, input_file );
- yy_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
-{
-
- /* TODO. We should be able to replace this entire function body
- * with
- * yypop_buffer_state();
- * yypush_buffer_state(new_buffer);
- */
- yyensure_buffer_stack ();
- if ( YY_CURRENT_BUFFER == new_buffer )
- return;
-
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
- yy_load_buffer_state( );
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- (yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void yy_load_buffer_state (void)
-{
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
- yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
- (yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
- * @return the allocated buffer state.
- */
- YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
-{
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* 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->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_is_our_buffer = 1;
-
- yy_init_buffer( b, file );
-
- return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- *
- */
- void yy_delete_buffer (YY_BUFFER_STATE b )
-{
-
- if ( ! b )
- return;
-
- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
- if ( b->yy_is_our_buffer )
- yyfree( (void *) b->yy_ch_buf );
-
- yyfree( (void *) b );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
-
-{
- int oerrno = errno;
-
- yy_flush_buffer( b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-
- /* If b is the current buffer, then yy_init_buffer was _probably_
- * called from yyrestart() or through yy_get_next_buffer.
- * In that case, we don't want to reset the lineno or column.
- */
- if (b != YY_CURRENT_BUFFER){
- b->yy_bs_lineno = 1;
- b->yy_bs_column = 0;
- }
-
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
- errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
- void yy_flush_buffer (YY_BUFFER_STATE b )
-{
- if ( ! b )
- return;
-
- b->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->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[0];
-
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == YY_CURRENT_BUFFER )
- yy_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- * the current state. This function will allocate the stack
- * if necessary.
- * @param new_buffer The new state.
- *
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
- if (new_buffer == NULL)
- return;
-
- yyensure_buffer_stack();
-
- /* This block is copied from yy_switch_to_buffer. */
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- /* Only push if top exists. Otherwise, replace top. */
- if (YY_CURRENT_BUFFER)
- (yy_buffer_stack_top)++;
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
- /* copied from yy_switch_to_buffer. */
- yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- * The next element becomes the new top.
- *
- */
-void yypop_buffer_state (void)
-{
- if (!YY_CURRENT_BUFFER)
- return;
-
- yy_delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- if ((yy_buffer_stack_top) > 0)
- --(yy_buffer_stack_top);
-
- if (YY_CURRENT_BUFFER) {
- yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
-}
-
-/* Allocates the stack if it does not exist.
- * Guarantees space for at least one push.
- */
-static void yyensure_buffer_stack (void)
-{
- yy_size_t num_to_alloc;
-
- if (!(yy_buffer_stack)) {
-
- /* First allocation is just for 2 elements, since we don't know if this
- * scanner will even need a stack. We use 2 instead of 1 to avoid an
- * immediate realloc on the next call.
- */
- num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
- (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
- (yy_buffer_stack_max) = num_to_alloc;
- (yy_buffer_stack_top) = 0;
- return;
- }
-
- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
- /* Increase the buffer to prepare for a possible push. */
- yy_size_t grow_size = 8 /* arbitrary grow size */;
-
- num_to_alloc = (yy_buffer_stack_max) + grow_size;
- (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
- ((yy_buffer_stack),
- num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
- /* zero only the new slots.*/
- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
- (yy_buffer_stack_max) = num_to_alloc;
- }
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
-{
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return NULL;
-
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
- b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = NULL;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- yy_switch_to_buffer( b );
-
- return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to yylex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- *
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- * yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (const char * yystr )
-{
-
- return yy_scan_bytes( yystr, (int) strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
- * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
-{
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = (yy_size_t) (_yybytes_len + 2);
- buf = (char *) yyalloc( n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
- for ( i = 0; i < _yybytes_len; ++i )
- buf[i] = yybytes[i];
-
- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
- b = yy_scan_buffer( buf, n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
-
- return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yynoreturn yy_fatal_error (const char* msg )
-{
- fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- yytext[yyleng] = (yy_hold_char); \
- (yy_c_buf_p) = yytext + yyless_macro_arg; \
- (yy_hold_char) = *(yy_c_buf_p); \
- *(yy_c_buf_p) = '\0'; \
- yyleng = yyless_macro_arg; \
- } \
- while ( 0 )
-
-/* Accessor methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- *
- */
-int yyget_lineno (void)
-{
-
- return yylineno;
-}
-
-/** Get the input stream.
- *
- */
-FILE *yyget_in (void)
-{
- return yyin;
-}
-
-/** Get the output stream.
- *
- */
-FILE *yyget_out (void)
-{
- return yyout;
-}
-
-/** Get the length of the current token.
- *
- */
-int yyget_leng (void)
-{
- return yyleng;
-}
-
-/** Get the current token.
- *
- */
-
-char *yyget_text (void)
-{
- return yytext;
-}
-
-/** Set the current line number.
- * @param _line_number line number
- *
- */
-void yyset_lineno (int _line_number )
-{
-
- yylineno = _line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param _in_str A readable stream.
- *
- * @see yy_switch_to_buffer
- */
-void yyset_in (FILE * _in_str )
-{
- yyin = _in_str ;
-}
-
-void yyset_out (FILE * _out_str )
-{
- yyout = _out_str ;
-}
-
-int yyget_debug (void)
-{
- return yy_flex_debug;
-}
-
-void yyset_debug (int _bdebug )
-{
- yy_flex_debug = _bdebug ;
-}
-
-static int yy_init_globals (void)
-{
- /* Initialization is the same as for the non-reentrant scanner.
- * This function is called from yylex_destroy(), so don't allocate here.
- */
-
- /* We do not touch yylineno unless the option is enabled. */
- yylineno = 1;
-
- (yy_buffer_stack) = NULL;
- (yy_buffer_stack_top) = 0;
- (yy_buffer_stack_max) = 0;
- (yy_c_buf_p) = NULL;
- (yy_init) = 0;
- (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
- yyin = stdin;
- yyout = stdout;
-#else
- yyin = NULL;
- yyout = NULL;
-#endif
-
- /* For future reference: Set errno on error, since we are called by
- * yylex_init()
- */
- return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy (void)
-{
-
- /* Pop the buffer stack, destroying each element. */
- while(YY_CURRENT_BUFFER){
- yy_delete_buffer( YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- yypop_buffer_state();
- }
-
- /* Destroy the stack itself. */
- yyfree((yy_buffer_stack) );
- (yy_buffer_stack) = NULL;
-
- /* Reset the globals. This is important in a non-reentrant scanner so the next time
- * yylex() is called, initialization will occur. */
- yy_init_globals( );
-
- return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, const char * s2, int n )
-{
-
- int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (const char * s )
-{
- int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
-}
-#endif
-
-void *yyalloc (yy_size_t size )
-{
- return malloc(size);
-}
-
-void *yyrealloc (void * ptr, yy_size_t 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 realloc(ptr, size);
-}
-
-void yyfree (void * ptr )
-{
- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 466 "thriftl.ll"
-
-
-#ifdef _MSC_VER
-#pragma warning( pop )
-#endif
-
-/* vim: filetype=lex
-*/
+#line 2 "thriftl.cc"
+
+#line 4 "thriftl.cc"
+
+#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 6
+#define YY_FLEX_SUBMINOR_VERSION 4
+#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 <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __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;
+
+/* 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
+
+#ifndef SIZE_MAX
+#define SIZE_MAX (~(size_t)0)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+/* begin standard C++ headers. */
+
+/* TODO: this is always defined, so inline it */
+#define yyconst const
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+#define yynoreturn __attribute__((__noreturn__))
+#else
+#define yynoreturn
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an
+ * integer in range [0..255] for use as an array index.
+ */
+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
+
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#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 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_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
+#define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
+#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
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern int yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+ /* 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 yylex.
+ * One obvious solution it to make yy_act a global. I tried that, and saw
+ * a 5% performance hit in a non-yylineno 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 < yyleng; ++yyl )\
+ if ( yytext[yyl] == '\n' )\
+ --yylineno;\
+ }while(0)
+ #define YY_LINENO_REWIND_TO(dst) \
+ do {\
+ const char *p;\
+ for ( p = yy_cp-1; p >= (dst); --p)\
+ if ( *p == '\n' )\
+ --yylineno;\
+ }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. */ \
+ 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 + yyless_macro_arg - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+#define unput(c) yyunput( c, (yytext_ptr) )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ int yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int 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 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 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 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
+ * then we mark the buffer as 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 yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+
+ };
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* 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 = NULL; /**< 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_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. */
+static char yy_hold_char;
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = NULL;
+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 ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart ( FILE *input_file );
+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
+void yy_delete_buffer ( YY_BUFFER_STATE b );
+void yy_flush_buffer ( YY_BUFFER_STATE b );
+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
+void yypop_buffer_state ( void );
+
+static void yyensure_buffer_stack ( void );
+static void yy_load_buffer_state ( void );
+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
+YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
+
+void *yyalloc ( yy_size_t );
+void *yyrealloc ( void *, yy_size_t );
+void yyfree ( void * );
+
+#define yy_new_buffer yy_create_buffer
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+ }
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){\
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+ }
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() (/*CONSTCOND*/1)
+#define YY_SKIP_YYWRAP
+typedef flex_uint8_t YY_CHAR;
+
+FILE *yyin = NULL, *yyout = NULL;
+
+typedef int yy_state_type;
+
+#define YY_FLEX_LEX_COMPAT
+extern int yylineno;
+int yylineno = 1;
+
+extern char yytext[];
+
+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 yynoreturn yy_fatal_error ( const char* msg );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ (yytext_ptr) = yy_bp; \
+ yyleng = (int) (yy_cp - yy_bp); \
+ (yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+ if ( yyleng >= YYLMAX ) \
+ YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
+ yy_flex_strncpy( yytext, (yytext_ptr), yyleng + 1 ); \
+ (yy_c_buf_p) = yy_cp;
+#define YY_NUM_RULES 169
+#define YY_END_OF_BUFFER 170
+/* 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 const flex_int16_t yy_accept[768] =
+ { 0,
+ 1, 1, 170, 168, 1, 1, 167, 6, 59, 7,
+ 8, 166, 168, 168, 163, 163, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 1, 6, 0, 163, 163, 0, 166, 4,
+ 5, 0, 0, 165, 165, 0, 165, 165, 165, 165,
+ 165, 165, 165, 73, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 87, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 34, 111, 165, 114, 118, 165, 165, 165, 165,
+
+ 165, 165, 165, 165, 165, 165, 165, 126, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 166, 3,
+ 5, 164, 165, 61, 165, 165, 165, 165, 165, 165,
+ 165, 165, 71, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 83, 85, 165, 165, 165, 165, 93, 165, 165, 165,
+ 165, 165, 165, 165, 165, 105, 165, 165, 165, 165,
+ 35, 36, 37, 165, 165, 165, 165, 165, 165, 165,
+
+ 165, 43, 165, 165, 165, 122, 165, 124, 125, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 45,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 149, 165, 165, 165, 165, 165, 165,
+ 154, 155, 165, 165, 165, 165, 165, 165, 161, 165,
+ 165, 0, 2, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 72, 165, 165, 165, 165, 32, 165,
+ 33, 77, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 89, 90, 165, 165,
+
+ 165, 165, 165, 165, 165, 54, 165, 102, 165, 165,
+ 165, 165, 165, 107, 165, 165, 110, 165, 165, 165,
+ 165, 165, 165, 165, 165, 44, 165, 165, 165, 123,
+ 165, 165, 165, 128, 165, 165, 165, 165, 165, 165,
+ 165, 165, 134, 165, 165, 165, 165, 165, 165, 139,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 145, 146, 165, 165, 10, 165, 165, 165, 165,
+ 165, 165, 165, 31, 165, 158, 165, 160, 165, 165,
+ 60, 165, 165, 165, 165, 165, 165, 165, 165, 70,
+ 165, 58, 75, 165, 76, 78, 79, 80, 165, 55,
+
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 92, 165, 165, 97, 165, 165, 165, 165,
+ 165, 9, 165, 104, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 130, 165, 165, 165, 165, 133, 165,
+ 165, 165, 136, 165, 165, 42, 165, 165, 41, 165,
+ 165, 165, 165, 142, 165, 165, 147, 165, 165, 150,
+ 49, 165, 165, 153, 165, 165, 159, 165, 165, 165,
+ 162, 165, 165, 165, 165, 165, 165, 165, 165, 74,
+ 40, 165, 165, 165, 165, 165, 165, 165, 165, 86,
+
+ 165, 38, 165, 91, 165, 95, 165, 165, 100, 101,
+ 165, 165, 165, 165, 109, 165, 113, 165, 115, 165,
+ 165, 165, 119, 120, 165, 121, 46, 165, 165, 165,
+ 165, 165, 165, 129, 165, 165, 165, 135, 138, 165,
+ 165, 140, 165, 141, 39, 48, 143, 165, 52, 165,
+ 165, 151, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 63, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 82, 84, 165, 88, 165, 165,
+ 165, 165, 165, 51, 103, 106, 165, 165, 30, 165,
+ 165, 165, 165, 165, 127, 165, 165, 131, 165, 165,
+
+ 165, 165, 165, 53, 165, 165, 165, 47, 165, 156,
+ 165, 25, 165, 165, 165, 165, 165, 64, 165, 66,
+ 165, 165, 69, 165, 81, 165, 165, 14, 165, 165,
+ 165, 165, 165, 99, 165, 108, 165, 165, 165, 165,
+ 165, 57, 165, 165, 165, 165, 137, 56, 165, 165,
+ 165, 165, 152, 157, 165, 165, 165, 165, 62, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 98,
+ 50, 165, 165, 117, 165, 11, 165, 165, 132, 20,
+ 165, 165, 165, 148, 29, 165, 165, 165, 165, 67,
+ 165, 165, 165, 165, 165, 165, 94, 96, 112, 116,
+
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 13, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 65, 165, 16, 165,
+ 165, 165, 15, 21, 165, 165, 165, 165, 144, 165,
+ 27, 26, 68, 12, 165, 165, 19, 165, 165, 165,
+ 28, 165, 165, 22, 165, 165, 165, 165, 165, 165,
+ 17, 18, 165, 24, 165, 23, 0
+ } ;
+
+static const YY_CHAR yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 1, 4, 5, 1, 1, 6, 4, 7,
+ 7, 8, 9, 7, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 17, 19, 17, 7, 7, 7,
+ 7, 7, 1, 1, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 29, 30, 31, 32, 33, 34,
+ 29, 35, 36, 37, 38, 29, 29, 29, 29, 29,
+ 7, 1, 7, 1, 39, 1, 40, 41, 42, 43,
+
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 7, 1, 7, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1
+ } ;
+
+static const YY_CHAR yy_meta[66] =
+ { 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 3,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 5,
+ 5, 5, 5, 4, 5, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 5,
+ 5, 5, 5, 4, 5, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6
+ } ;
+
+static const flex_int16_t yy_base[774] =
+ { 0,
+ 0, 0, 1609, 1610, 64, 66, 1610, 0, 1610, 1610,
+ 1610, 60, 61, 74, 71, 1545, 1597, 73, 126, 61,
+ 96, 102, 117, 116, 172, 152, 77, 186, 76, 81,
+ 78, 154, 110, 173, 167, 204, 185, 120, 205, 104,
+ 164, 100, 87, 0, 257, 0, 1543, 268, 69, 1597,
+ 0, 0, 1594, 1593, 82, 276, 245, 84, 287, 166,
+ 107, 183, 115, 241, 123, 187, 206, 218, 219, 248,
+ 290, 269, 247, 200, 291, 255, 251, 293, 303, 306,
+ 304, 311, 313, 314, 315, 317, 318, 316, 91, 88,
+ 89, 1592, 1591, 319, 335, 1590, 321, 169, 209, 324,
+
+ 310, 328, 322, 325, 329, 337, 330, 1589, 348, 339,
+ 342, 344, 327, 352, 347, 356, 363, 350, 346, 368,
+ 373, 390, 395, 398, 400, 407, 408, 410, 411, 412,
+ 409, 414, 425, 413, 415, 418, 417, 419, 424, 111,
+ 0, 0, 416, 1588, 93, 421, 457, 424, 226, 467,
+ 422, 448, 1587, 435, 468, 469, 470, 473, 472, 474,
+ 476, 480, 479, 481, 482, 484, 486, 487, 488, 489,
+ 490, 492, 491, 493, 496, 498, 505, 494, 497, 499,
+ 495, 507, 500, 515, 517, 521, 509, 524, 519, 542,
+ 1586, 1585, 1584, 546, 552, 554, 549, 560, 558, 564,
+
+ 559, 1583, 561, 562, 563, 1582, 565, 1581, 1580, 566,
+ 567, 569, 568, 571, 570, 572, 573, 576, 577, 578,
+ 580, 575, 579, 574, 581, 582, 585, 583, 584, 1579,
+ 591, 589, 597, 600, 602, 607, 604, 610, 603, 621,
+ 627, 630, 632, 1578, 634, 643, 639, 644, 647, 648,
+ 1577, 1576, 645, 651, 650, 654, 655, 656, 1575, 658,
+ 657, 235, 1610, 659, 660, 663, 662, 667, 679, 664,
+ 674, 661, 665, 1574, 672, 675, 690, 676, 1573, 692,
+ 1572, 1571, 699, 700, 703, 704, 702, 705, 706, 709,
+ 710, 711, 714, 715, 712, 716, 1570, 721, 722, 720,
+
+ 718, 725, 717, 727, 724, 1569, 728, 1568, 729, 731,
+ 726, 730, 738, 1567, 735, 745, 1566, 742, 739, 741,
+ 746, 747, 750, 766, 770, 1565, 774, 778, 780, 1564,
+ 781, 783, 782, 1563, 785, 787, 788, 790, 794, 796,
+ 792, 798, 1562, 793, 800, 799, 801, 804, 806, 1561,
+ 802, 805, 808, 807, 809, 810, 816, 813, 817, 821,
+ 823, 1560, 1559, 818, 819, 1558, 824, 833, 822, 825,
+ 839, 840, 829, 1557, 842, 1556, 846, 1555, 854, 861,
+ 1554, 862, 847, 858, 866, 863, 869, 871, 874, 1553,
+ 882, 1552, 1551, 883, 1550, 1549, 1548, 1547, 887, 1546,
+
+ 889, 890, 892, 893, 895, 896, 900, 901, 906, 902,
+ 907, 899, 1545, 910, 903, 1544, 908, 911, 905, 909,
+ 915, 1543, 912, 1542, 919, 914, 913, 917, 918, 923,
+ 921, 920, 925, 924, 927, 928, 926, 930, 929, 938,
+ 961, 965, 966, 1541, 968, 970, 972, 973, 1540, 974,
+ 975, 977, 1539, 976, 978, 1538, 980, 979, 1537, 982,
+ 984, 988, 985, 1536, 989, 986, 987, 990, 991, 1535,
+ 1534, 992, 993, 1533, 999, 994, 1532, 998, 1000, 1001,
+ 1531, 1015, 1008, 1013, 1018, 1020, 1027, 1043, 1044, 1530,
+ 1529, 1003, 1005, 1051, 1052, 1009, 1053, 1056, 1057, 1528,
+
+ 1058, 1527, 1059, 1526, 1060, 1061, 1062, 1063, 1525, 1064,
+ 1065, 1066, 1068, 1070, 1524, 1073, 1523, 1074, 1522, 1067,
+ 1079, 1080, 1521, 1520, 1085, 1519, 1518, 1086, 1078, 1088,
+ 1075, 1089, 1072, 1517, 1077, 1092, 1096, 1516, 1515, 1098,
+ 1097, 1514, 1103, 1513, 1512, 1511, 1510, 1081, 1509, 1100,
+ 1084, 1508, 1122, 1124, 1129, 1132, 1093, 1135, 1137, 1136,
+ 1138, 1507, 1139, 1140, 1143, 101, 1145, 1141, 1144, 1146,
+ 1147, 1148, 1149, 1150, 1506, 1505, 1151, 1504, 1154, 1157,
+ 1160, 1152, 1153, 1503, 1502, 1501, 1155, 1159, 1500, 1161,
+ 1164, 1171, 1174, 1163, 1499, 1175, 1166, 1498, 1176, 1179,
+
+ 1162, 1181, 1189, 1497, 1199, 1201, 1205, 1496, 1208, 1495,
+ 1211, 1494, 1212, 1213, 1215, 1216, 1217, 1493, 1219, 1486,
+ 1221, 1218, 1474, 1223, 1471, 1222, 1225, 1470, 1230, 1232,
+ 1224, 1226, 1227, 1469, 1233, 1468, 1229, 1235, 1234, 1237,
+ 1236, 1466, 1243, 1238, 1249, 1251, 1465, 1464, 1253, 1252,
+ 1255, 1239, 1462, 1461, 1261, 1263, 1265, 1266, 1460, 1267,
+ 1269, 995, 1280, 1274, 1275, 1281, 1284, 1290, 1291, 1459,
+ 1458, 1294, 1296, 1457, 1297, 1456, 1299, 1300, 1455, 1454,
+ 1301, 1303, 1302, 1453, 1452, 1305, 1304, 1308, 1312, 1451,
+ 1316, 1306, 1313, 1318, 1319, 1321, 1450, 1449, 1446, 1445,
+
+ 1322, 1325, 1333, 1314, 1334, 1336, 1337, 1339, 1338, 1317,
+ 1340, 1343, 1444, 1352, 1354, 1356, 1360, 1364, 1365, 1362,
+ 1371, 1372, 1373, 1375, 1374, 1376, 1443, 1381, 1442, 1377,
+ 1378, 1382, 1440, 1438, 1386, 1383, 1385, 1387, 1436, 1388,
+ 1435, 1430, 1428, 1071, 1395, 1399, 506, 1390, 1403, 1391,
+ 501, 1400, 1409, 423, 1412, 1393, 1405, 1413, 1389, 1414,
+ 349, 333, 1416, 231, 1418, 224, 1610, 1482, 1486, 1488,
+ 92, 1494, 1497
+ } ;
+
+static const flex_int16_t yy_def[774] =
+ { 0,
+ 767, 1, 767, 767, 767, 767, 767, 768, 767, 767,
+ 767, 769, 767, 767, 769, 15, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 767, 768, 767, 15, 15, 767, 771, 767,
+ 772, 773, 770, 770, 770, 767, 25, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 767, 767,
+ 772, 773, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 767, 767, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 770, 0, 767, 767, 767,
+ 767, 767, 767
+ } ;
+
+static const flex_int16_t yy_nxt[1676] =
+ { 0,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 16, 16, 16, 16, 16, 16, 17,
+ 18, 17, 17, 19, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 20, 21,
+ 22, 23, 24, 25, 26, 27, 17, 28, 29, 17,
+ 30, 31, 32, 33, 34, 17, 35, 36, 37, 38,
+ 39, 40, 41, 42, 17, 43, 43, 43, 43, 45,
+ 53, 46, 49, 49, 49, 49, 49, 49, 49, 49,
+ 45, 50, 53, 48, 51, 53, 53, 53, 43, 43,
+ 53, 53, 48, 53, 48, 49, 55, 53, 53, 59,
+
+ 53, 192, 53, 48, 193, 53, 144, 143, 191, 53,
+ 53, 53, 48, 53, 48, 97, 53, 100, 262, 53,
+ 98, 263, 265, 621, 53, 53, 53, 87, 99, 53,
+ 88, 101, 53, 52, 56, 53, 60, 57, 57, 57,
+ 57, 57, 57, 57, 57, 65, 61, 138, 62, 66,
+ 134, 135, 63, 64, 152, 67, 70, 58, 68, 75,
+ 154, 53, 106, 53, 107, 69, 108, 71, 157, 76,
+ 72, 73, 129, 53, 74, 53, 53, 130, 53, 77,
+ 56, 53, 53, 57, 57, 57, 57, 57, 57, 57,
+ 57, 81, 53, 102, 53, 53, 53, 103, 89, 82,
+
+ 90, 104, 83, 91, 92, 84, 115, 105, 85, 53,
+ 116, 86, 109, 53, 53, 53, 110, 136, 53, 111,
+ 200, 137, 78, 151, 79, 153, 117, 53, 53, 112,
+ 93, 126, 113, 53, 80, 53, 114, 94, 95, 158,
+ 53, 127, 262, 96, 131, 263, 169, 118, 128, 270,
+ 53, 119, 132, 767, 120, 121, 53, 53, 133, 159,
+ 53, 160, 122, 123, 53, 124, 201, 125, 49, 49,
+ 49, 49, 49, 49, 49, 49, 56, 161, 53, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 54, 53, 54, 155, 53,
+
+ 53, 168, 53, 174, 156, 162, 163, 54, 145, 146,
+ 166, 147, 53, 53, 173, 53, 148, 149, 150, 53,
+ 53, 167, 53, 53, 53, 53, 53, 53, 53, 164,
+ 53, 53, 170, 53, 53, 171, 53, 53, 53, 53,
+ 175, 172, 53, 165, 53, 177, 53, 180, 53, 181,
+ 176, 53, 203, 53, 183, 53, 53, 53, 53, 53,
+ 178, 53, 179, 184, 182, 53, 185, 218, 187, 188,
+ 186, 189, 53, 194, 190, 208, 195, 53, 202, 204,
+ 210, 199, 53, 206, 207, 196, 205, 209, 211, 212,
+ 219, 216, 197, 198, 220, 214, 215, 217, 221, 53,
+
+ 227, 222, 228, 226, 53, 213, 229, 53, 230, 53,
+ 231, 223, 233, 224, 225, 232, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 234,
+ 53, 53, 53, 53, 53, 139, 139, 139, 139, 139,
+ 139, 139, 139, 264, 53, 237, 235, 242, 266, 236,
+ 239, 269, 238, 246, 240, 251, 256, 53, 247, 260,
+ 257, 248, 261, 241, 245, 252, 53, 243, 249, 250,
+ 253, 244, 254, 258, 259, 255, 53, 53, 53, 53,
+ 272, 53, 53, 53, 267, 53, 271, 273, 53, 53,
+ 53, 53, 274, 53, 268, 53, 53, 53, 53, 53,
+
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 275, 278, 280, 53, 53, 53, 277, 53, 281,
+ 283, 276, 279, 282, 53, 289, 53, 290, 53, 292,
+ 53, 295, 296, 53, 285, 293, 308, 286, 284, 291,
+ 297, 298, 307, 287, 288, 299, 294, 300, 306, 301,
+ 309, 53, 302, 305, 311, 53, 312, 310, 53, 316,
+ 314, 53, 303, 53, 313, 315, 304, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 317, 318, 324, 53, 319,
+
+ 53, 321, 320, 323, 325, 328, 53, 322, 336, 53,
+ 329, 53, 53, 53, 332, 346, 53, 326, 333, 53,
+ 327, 335, 344, 330, 337, 334, 340, 331, 341, 350,
+ 53, 339, 338, 343, 353, 342, 53, 347, 345, 53,
+ 348, 53, 351, 53, 352, 349, 354, 355, 53, 357,
+ 359, 361, 53, 53, 53, 362, 53, 53, 356, 53,
+ 53, 358, 360, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 366, 53, 367, 363, 382,
+ 364, 53, 365, 53, 53, 53, 368, 370, 53, 375,
+ 381, 384, 369, 374, 371, 372, 379, 383, 385, 53,
+
+ 387, 53, 378, 373, 388, 377, 376, 380, 53, 53,
+ 386, 53, 53, 53, 53, 53, 392, 389, 53, 53,
+ 53, 53, 390, 53, 53, 53, 53, 53, 391, 53,
+ 53, 53, 394, 53, 53, 53, 53, 53, 53, 53,
+ 53, 395, 393, 399, 53, 396, 398, 53, 53, 406,
+ 53, 53, 401, 402, 53, 53, 53, 397, 403, 53,
+ 400, 409, 410, 414, 404, 405, 413, 411, 412, 416,
+ 407, 415, 408, 418, 422, 53, 423, 425, 417, 53,
+ 419, 421, 420, 53, 427, 428, 432, 53, 424, 53,
+ 53, 53, 53, 426, 53, 429, 53, 53, 431, 53,
+
+ 430, 53, 53, 53, 434, 53, 433, 53, 53, 53,
+ 53, 53, 435, 53, 53, 53, 53, 53, 53, 53,
+ 439, 441, 53, 442, 436, 53, 53, 53, 53, 445,
+ 53, 53, 53, 53, 53, 437, 440, 446, 53, 443,
+ 438, 449, 53, 447, 455, 448, 444, 451, 53, 53,
+ 450, 53, 457, 456, 463, 53, 53, 461, 452, 460,
+ 454, 458, 465, 53, 453, 459, 469, 53, 462, 466,
+ 53, 53, 53, 464, 471, 53, 468, 470, 53, 467,
+ 53, 484, 472, 53, 473, 483, 486, 485, 475, 477,
+ 474, 53, 53, 478, 488, 487, 53, 482, 53, 53,
+
+ 476, 53, 53, 481, 53, 53, 479, 480, 53, 53,
+ 53, 53, 53, 489, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 492, 53, 53, 53, 53,
+ 53, 495, 53, 53, 53, 53, 53, 53, 53, 53,
+ 490, 493, 494, 504, 500, 502, 491, 53, 509, 497,
+ 499, 505, 498, 501, 503, 507, 496, 511, 508, 506,
+ 513, 514, 512, 515, 519, 518, 523, 510, 516, 521,
+ 53, 524, 520, 526, 53, 53, 517, 53, 522, 53,
+ 525, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 528, 53, 527, 53, 53, 53, 53, 53, 53, 53,
+
+ 53, 53, 53, 53, 53, 531, 529, 53, 53, 53,
+ 53, 533, 53, 534, 53, 535, 691, 53, 53, 530,
+ 538, 541, 53, 542, 53, 544, 532, 53, 539, 53,
+ 540, 537, 536, 545, 551, 547, 53, 550, 554, 558,
+ 543, 555, 548, 546, 549, 553, 562, 559, 556, 552,
+ 561, 563, 53, 53, 564, 560, 557, 569, 565, 566,
+ 53, 53, 53, 573, 570, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 567, 53,
+ 53, 53, 53, 53, 53, 568, 53, 53, 53, 53,
+ 53, 574, 571, 53, 53, 53, 577, 53, 53, 575,
+
+ 578, 53, 53, 572, 580, 53, 53, 53, 590, 53,
+ 579, 583, 53, 582, 586, 576, 588, 589, 591, 592,
+ 581, 595, 584, 587, 593, 594, 597, 596, 608, 585,
+ 599, 53, 598, 53, 606, 601, 600, 603, 53, 602,
+ 604, 53, 605, 607, 53, 53, 53, 53, 53, 53,
+ 53, 613, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 609, 53, 619, 53, 53,
+ 53, 53, 53, 53, 610, 53, 617, 618, 622, 611,
+ 53, 620, 612, 53, 53, 53, 614, 615, 53, 625,
+ 53, 627, 628, 631, 616, 634, 632, 626, 53, 623,
+
+ 624, 633, 629, 630, 638, 639, 635, 636, 53, 644,
+ 53, 637, 640, 642, 53, 641, 643, 53, 647, 645,
+ 53, 53, 53, 648, 53, 53, 53, 53, 53, 646,
+ 53, 53, 53, 53, 53, 53, 53, 662, 53, 53,
+ 649, 53, 53, 53, 53, 53, 53, 53, 53, 650,
+ 653, 660, 53, 651, 654, 659, 656, 652, 53, 661,
+ 53, 53, 53, 658, 53, 657, 663, 669, 655, 666,
+ 53, 667, 53, 670, 53, 53, 53, 674, 53, 676,
+ 668, 664, 665, 53, 53, 671, 675, 672, 673, 53,
+ 53, 679, 677, 53, 680, 678, 681, 684, 689, 53,
+
+ 53, 682, 683, 53, 687, 53, 53, 690, 53, 53,
+ 53, 53, 53, 53, 53, 53, 693, 53, 685, 688,
+ 686, 53, 53, 53, 692, 53, 53, 53, 53, 694,
+ 53, 53, 695, 697, 53, 696, 701, 698, 702, 711,
+ 700, 705, 53, 53, 708, 53, 53, 53, 53, 53,
+ 710, 699, 53, 712, 703, 727, 713, 714, 704, 707,
+ 709, 53, 715, 53, 716, 53, 706, 717, 720, 53,
+ 718, 53, 719, 53, 53, 721, 724, 726, 728, 723,
+ 53, 53, 53, 53, 53, 53, 53, 53, 722, 725,
+ 53, 53, 53, 730, 53, 53, 53, 53, 53, 53,
+
+ 53, 736, 53, 733, 53, 729, 735, 734, 53, 53,
+ 737, 731, 53, 732, 53, 739, 740, 741, 53, 743,
+ 744, 53, 53, 53, 748, 53, 742, 53, 738, 747,
+ 750, 751, 745, 754, 752, 756, 746, 53, 753, 53,
+ 760, 757, 763, 749, 53, 53, 755, 53, 761, 53,
+ 758, 53, 53, 53, 53, 53, 762, 759, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 765, 53, 53, 53, 764, 53, 53, 53,
+ 53, 766, 44, 53, 44, 44, 44, 44, 47, 47,
+ 54, 54, 54, 54, 141, 53, 141, 141, 141, 141,
+
+ 142, 142, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+
+ 53, 53, 53, 767, 140, 767, 53, 767, 767, 3,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767
+ } ;
+
+static const flex_int16_t yy_chk[1676] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 5, 5, 6, 6, 12,
+ 20, 12, 13, 13, 13, 13, 13, 13, 13, 13,
+ 15, 14, 18, 12, 14, 29, 27, 31, 43, 43,
+ 30, 55, 49, 58, 15, 771, 18, 90, 91, 20,
+
+ 89, 90, 145, 12, 91, 21, 58, 55, 89, 42,
+ 566, 22, 49, 40, 15, 29, 61, 31, 140, 33,
+ 30, 140, 145, 566, 63, 24, 23, 27, 30, 38,
+ 27, 31, 65, 15, 19, 19, 21, 19, 19, 19,
+ 19, 19, 19, 19, 19, 22, 21, 42, 21, 22,
+ 40, 40, 21, 21, 61, 22, 23, 19, 22, 24,
+ 63, 26, 33, 32, 33, 22, 33, 23, 65, 24,
+ 23, 23, 38, 41, 23, 60, 35, 38, 98, 24,
+ 25, 25, 34, 25, 25, 25, 25, 25, 25, 25,
+ 25, 26, 62, 32, 37, 28, 66, 32, 28, 26,
+
+ 28, 32, 26, 28, 28, 26, 35, 32, 26, 74,
+ 35, 26, 34, 36, 39, 67, 34, 41, 99, 34,
+ 98, 41, 25, 60, 25, 62, 35, 68, 69, 34,
+ 28, 37, 34, 766, 25, 149, 34, 28, 28, 66,
+ 764, 37, 262, 28, 39, 262, 74, 36, 37, 149,
+ 64, 36, 39, 57, 36, 36, 73, 70, 39, 67,
+ 77, 68, 36, 36, 76, 36, 99, 36, 45, 45,
+ 45, 45, 45, 45, 45, 45, 48, 69, 72, 48,
+ 48, 48, 48, 48, 48, 48, 48, 56, 56, 56,
+ 56, 56, 56, 56, 56, 57, 59, 57, 64, 71,
+
+ 75, 73, 78, 77, 64, 70, 70, 57, 59, 59,
+ 72, 59, 79, 81, 76, 80, 59, 59, 59, 101,
+ 82, 72, 83, 84, 85, 88, 86, 87, 94, 71,
+ 97, 103, 75, 100, 104, 75, 113, 102, 105, 107,
+ 78, 75, 762, 71, 95, 79, 106, 80, 110, 80,
+ 78, 111, 101, 112, 81, 119, 115, 109, 761, 118,
+ 79, 114, 79, 82, 80, 116, 83, 113, 85, 86,
+ 84, 87, 117, 94, 88, 104, 95, 120, 100, 102,
+ 106, 97, 121, 103, 103, 95, 102, 105, 107, 109,
+ 114, 112, 95, 95, 115, 110, 111, 112, 116, 122,
+
+ 118, 116, 118, 117, 123, 109, 118, 124, 118, 125,
+ 119, 116, 121, 116, 116, 120, 126, 127, 131, 128,
+ 129, 130, 134, 132, 135, 143, 137, 136, 138, 122,
+ 146, 151, 754, 148, 133, 139, 139, 139, 139, 139,
+ 139, 139, 139, 143, 154, 124, 122, 127, 146, 123,
+ 126, 148, 125, 129, 126, 130, 134, 152, 129, 137,
+ 134, 129, 138, 126, 128, 131, 147, 127, 129, 129,
+ 132, 127, 133, 135, 136, 133, 150, 155, 156, 157,
+ 151, 159, 158, 160, 147, 161, 150, 152, 163, 162,
+ 164, 165, 154, 166, 147, 167, 168, 169, 170, 171,
+
+ 173, 172, 174, 178, 181, 175, 179, 176, 180, 183,
+ 751, 155, 158, 160, 177, 747, 182, 157, 187, 161,
+ 163, 156, 159, 162, 184, 168, 185, 169, 189, 171,
+ 186, 173, 174, 188, 165, 172, 181, 166, 164, 170,
+ 175, 176, 180, 167, 167, 176, 172, 177, 179, 177,
+ 182, 190, 177, 178, 184, 194, 185, 183, 197, 189,
+ 187, 195, 177, 196, 186, 188, 177, 199, 201, 198,
+ 203, 204, 205, 200, 207, 210, 211, 213, 212, 215,
+ 214, 216, 217, 224, 222, 218, 219, 220, 223, 221,
+ 225, 226, 228, 229, 227, 190, 194, 199, 232, 194,
+
+ 231, 196, 195, 198, 200, 204, 233, 197, 215, 234,
+ 205, 235, 239, 237, 211, 224, 236, 201, 212, 238,
+ 203, 214, 222, 207, 216, 213, 218, 210, 219, 227,
+ 240, 217, 216, 221, 231, 220, 241, 225, 223, 242,
+ 225, 243, 228, 245, 229, 226, 232, 233, 247, 235,
+ 236, 238, 246, 248, 253, 239, 249, 250, 234, 255,
+ 254, 235, 237, 256, 257, 258, 261, 260, 264, 265,
+ 272, 267, 266, 270, 273, 243, 268, 245, 240, 265,
+ 241, 275, 242, 271, 276, 278, 246, 248, 269, 255,
+ 264, 267, 247, 254, 249, 250, 260, 266, 268, 277,
+
+ 270, 280, 258, 253, 271, 257, 256, 261, 283, 284,
+ 269, 287, 285, 286, 288, 289, 276, 272, 290, 291,
+ 292, 295, 273, 293, 294, 296, 303, 301, 275, 300,
+ 298, 299, 278, 305, 302, 311, 304, 307, 309, 312,
+ 310, 280, 277, 286, 315, 283, 285, 313, 319, 291,
+ 320, 318, 288, 289, 316, 321, 322, 284, 289, 323,
+ 287, 294, 295, 300, 289, 290, 299, 296, 298, 302,
+ 292, 301, 293, 304, 310, 324, 311, 313, 303, 325,
+ 305, 309, 307, 327, 316, 318, 322, 328, 312, 329,
+ 331, 333, 332, 315, 335, 319, 336, 337, 321, 338,
+
+ 320, 341, 344, 339, 324, 340, 323, 342, 346, 345,
+ 347, 351, 325, 348, 352, 349, 354, 353, 355, 356,
+ 331, 333, 358, 335, 327, 357, 359, 364, 365, 338,
+ 360, 369, 361, 367, 370, 328, 332, 339, 373, 336,
+ 329, 342, 368, 340, 349, 341, 337, 345, 371, 372,
+ 344, 375, 352, 351, 358, 377, 383, 356, 346, 355,
+ 348, 353, 360, 379, 347, 354, 367, 384, 357, 361,
+ 380, 382, 386, 359, 369, 385, 365, 368, 387, 364,
+ 388, 384, 370, 389, 371, 383, 386, 385, 373, 377,
+ 372, 391, 394, 379, 388, 387, 399, 382, 401, 402,
+
+ 375, 403, 404, 380, 405, 406, 379, 379, 412, 407,
+ 408, 410, 415, 389, 419, 409, 411, 417, 420, 414,
+ 418, 423, 427, 426, 421, 399, 428, 429, 425, 432,
+ 431, 403, 430, 434, 433, 437, 435, 436, 439, 438,
+ 391, 401, 402, 412, 408, 410, 394, 440, 419, 405,
+ 407, 414, 406, 409, 411, 417, 404, 421, 418, 415,
+ 425, 426, 423, 427, 431, 430, 435, 420, 428, 433,
+ 441, 436, 432, 438, 442, 443, 429, 445, 434, 446,
+ 437, 447, 448, 450, 451, 454, 452, 455, 458, 457,
+ 440, 460, 439, 461, 463, 466, 467, 462, 465, 468,
+
+ 469, 472, 473, 476, 662, 443, 441, 478, 475, 479,
+ 480, 446, 492, 447, 493, 448, 662, 483, 496, 442,
+ 452, 457, 484, 458, 482, 461, 445, 485, 454, 486,
+ 455, 451, 450, 462, 469, 465, 487, 468, 475, 479,
+ 460, 476, 466, 463, 467, 473, 483, 479, 478, 472,
+ 482, 484, 488, 489, 485, 480, 478, 492, 486, 487,
+ 494, 495, 497, 496, 493, 498, 499, 501, 503, 505,
+ 506, 507, 508, 510, 511, 512, 520, 513, 488, 514,
+ 744, 533, 516, 518, 531, 489, 535, 529, 521, 522,
+ 548, 497, 494, 551, 525, 528, 501, 530, 532, 498,
+
+ 503, 536, 557, 495, 506, 537, 541, 540, 520, 550,
+ 505, 510, 543, 508, 513, 499, 516, 518, 521, 522,
+ 507, 529, 511, 514, 525, 528, 531, 530, 551, 512,
+ 533, 553, 532, 554, 548, 536, 535, 540, 555, 537,
+ 541, 556, 543, 550, 558, 560, 559, 561, 563, 564,
+ 568, 557, 565, 569, 567, 570, 571, 572, 573, 574,
+ 577, 582, 583, 579, 587, 553, 580, 564, 588, 581,
+ 590, 601, 594, 591, 554, 597, 561, 563, 567, 555,
+ 592, 565, 556, 593, 596, 599, 558, 559, 600, 570,
+ 602, 572, 573, 579, 560, 582, 580, 571, 603, 568,
+
+ 569, 581, 574, 577, 590, 591, 583, 587, 605, 597,
+ 606, 588, 592, 594, 607, 593, 596, 609, 601, 599,
+ 611, 613, 614, 602, 615, 616, 617, 622, 619, 600,
+ 621, 626, 624, 631, 627, 632, 633, 622, 637, 629,
+ 603, 630, 635, 639, 638, 641, 640, 644, 652, 605,
+ 609, 619, 643, 606, 611, 617, 614, 607, 645, 621,
+ 646, 650, 649, 616, 651, 615, 624, 632, 613, 629,
+ 655, 630, 656, 633, 657, 658, 660, 639, 661, 641,
+ 631, 626, 627, 664, 665, 635, 640, 637, 638, 663,
+ 666, 645, 643, 667, 646, 644, 649, 652, 660, 668,
+
+ 669, 650, 651, 672, 657, 673, 675, 661, 677, 678,
+ 681, 683, 682, 687, 686, 692, 664, 688, 655, 658,
+ 656, 689, 693, 704, 663, 691, 710, 694, 695, 665,
+ 696, 701, 666, 668, 702, 667, 675, 669, 677, 691,
+ 673, 682, 703, 705, 687, 706, 707, 709, 708, 711,
+ 689, 672, 712, 692, 678, 710, 693, 694, 681, 686,
+ 688, 714, 695, 715, 696, 716, 683, 701, 704, 717,
+ 702, 720, 703, 718, 719, 705, 707, 709, 711, 706,
+ 721, 722, 723, 725, 724, 726, 730, 731, 705, 708,
+ 728, 732, 736, 714, 737, 735, 738, 740, 759, 748,
+
+ 750, 720, 756, 717, 745, 712, 719, 718, 746, 752,
+ 721, 715, 749, 716, 757, 723, 724, 725, 753, 728,
+ 730, 755, 758, 760, 736, 763, 726, 765, 722, 735,
+ 738, 740, 731, 748, 745, 750, 732, 743, 746, 742,
+ 756, 752, 759, 737, 741, 739, 749, 734, 757, 733,
+ 753, 729, 727, 713, 700, 699, 758, 755, 698, 697,
+ 690, 685, 684, 680, 679, 676, 674, 671, 670, 659,
+ 654, 653, 763, 648, 647, 642, 760, 636, 634, 628,
+ 625, 765, 768, 623, 768, 768, 768, 768, 769, 769,
+ 770, 770, 770, 770, 772, 620, 772, 772, 772, 772,
+
+ 773, 773, 618, 612, 610, 608, 604, 598, 595, 589,
+ 586, 585, 584, 578, 576, 575, 562, 552, 549, 547,
+ 546, 545, 544, 542, 539, 538, 534, 527, 526, 524,
+ 523, 519, 517, 515, 509, 504, 502, 500, 491, 490,
+ 481, 477, 474, 471, 470, 464, 459, 456, 453, 449,
+ 444, 424, 422, 416, 413, 400, 398, 397, 396, 395,
+ 393, 392, 390, 381, 378, 376, 374, 366, 363, 362,
+ 350, 343, 334, 330, 326, 317, 314, 308, 306, 297,
+ 282, 281, 279, 274, 259, 252, 251, 244, 230, 209,
+ 208, 206, 202, 193, 192, 191, 153, 144, 108, 96,
+
+ 93, 92, 54, 53, 50, 47, 17, 16, 3, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767
+ } ;
+
+/* Table of booleans, true if rule could match eol. */
+static const flex_int32_t yy_rule_can_match_eol[170] =
+ { 0,
+1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+#ifndef YYLMAX
+#define YYLMAX 8192
+#endif
+
+char yytext[YYLMAX];
+char *yytext_ptr;
+#line 1 "thriftl.ll"
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * Thrift scanner.
+ *
+ * Tokenizes a thrift definition file.
+ */
+#line 27 "thriftl.ll"
+
+/* This is redundant with some of the flags in Makefile.am, but it works
+ * when people override CXXFLAGS without being careful. The pragmas are
+ * the 'right' way to do it, but don't work on old-enough GCC (in particular
+ * the GCC that ship on Mac OS X 10.6.5, *counter* to what the GNU docs say)
+ *
+ * We should revert the Makefile.am changes once Apple ships a reasonable
+ * GCC.
+ */
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-Wunused-label"
+#endif
+
+#ifdef _MSC_VER
+#pragma warning( push )
+
+// warning C4102: 'find_rule' : unreferenced label
+#pragma warning( disable : 4102 )
+
+// warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
+#pragma warning( disable : 4267 )
+
+// avoid isatty redefinition
+#define YY_NEVER_INTERACTIVE 1
+
+#define YY_NO_UNISTD_H 1
+#endif
+
+#include <cassert>
+#include <string>
+#include <errno.h>
+#include <stdlib.h>
+
+#ifdef _MSC_VER
+#include "thrift/windows/config.h"
+#endif
+#include "thrift/main.h"
+#include "thrift/common.h"
+#include "thrift/globals.h"
+#include "thrift/parse/t_program.h"
+
+/**
+ * Must be included AFTER parse/t_program.h, but I can't remember why anymore
+ * because I wrote this a while ago.
+ */
+#if defined(BISON_USE_PARSER_H_EXTENSION)
+#include "thrift/thrifty.h" // Y_IGNORE
+#else
+#include "thrift/thrifty.hh"
+#endif
+
+void thrift_reserved_keyword(char* keyword) {
+ yyerror("Cannot use reserved language keyword: \"%s\"\n", keyword);
+ exit(1);
+}
+
+void integer_overflow(char* text) {
+ yyerror("This integer is too big: \"%s\"\n", text);
+ exit(1);
+}
+
+void unexpected_token(char* text) {
+ yyerror("Unexpected token in input: \"%s\"\n", text);
+ exit(1);
+}
+
+#line 1196 "thriftl.cc"
+/**
+ * Provides the yylineno global, useful for debugging output
+ */
+/**
+ * Our inputs are all single files, so no need for yywrap
+ */
+/**
+ * We don't use it, and it fires up warnings at -Wall
+ */
+/**
+ * Helper definitions, comments, constants, and whatnot
+ */
+#line 1209 "thriftl.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals ( void );
+
+/* Accessor methods to globals.
+ These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy ( void );
+
+int yyget_debug ( void );
+
+void yyset_debug ( int debug_flag );
+
+YY_EXTRA_TYPE yyget_extra ( void );
+
+void yyset_extra ( YY_EXTRA_TYPE user_defined );
+
+FILE *yyget_in ( void );
+
+void yyset_in ( FILE * _in_str );
+
+FILE *yyget_out ( void );
+
+void yyset_out ( FILE * _out_str );
+
+ int yyget_leng ( void );
+
+char *yyget_text ( void );
+
+int yyget_lineno ( void );
+
+void yyset_lineno ( int _line_number );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap ( void );
+#else
+extern int yywrap ( void );
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy ( char *, const char *, int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen ( const char * );
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput ( void );
+#else
+static int input ( void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
+#define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+ { \
+ int c = '*'; \
+ int n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else \
+ { \
+ errno=0; \
+ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
+ { \
+ if( errno != EINTR) \
+ { \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ break; \
+ } \
+ errno=0; \
+ clearerr(yyin); \
+ } \
+ }\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK /*LINTED*/break;
+#endif
+
+#define YY_RULE_SETUP \
+ YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+ yy_state_type yy_current_state;
+ char *yy_cp, *yy_bp;
+ int yy_act;
+
+ if ( !(yy_init) )
+ {
+ (yy_init) = 1;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! (yy_start) )
+ (yy_start) = 1; /* first start state */
+
+ if ( ! yyin )
+ yyin = stdin;
+
+ if ( ! yyout )
+ yyout = stdout;
+
+ if ( ! YY_CURRENT_BUFFER ) {
+ yyensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+ }
+
+ yy_load_buffer_state( );
+ }
+
+ {
+#line 128 "thriftl.ll"
+
+
+#line 1427 "thriftl.cc"
+
+ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = (yy_c_buf_p);
+
+ /* Support of yytext. */
+ *yy_cp = (yy_hold_char);
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+ yy_current_state = (yy_start);
+yy_match:
+ do
+ {
+ YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+ (yy_last_accepting_cpos) = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 768 )
+ yy_c = yy_meta[yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 1610 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ { /* have to back up */
+ yy_cp = (yy_last_accepting_cpos);
+ yy_current_state = (yy_last_accepting_state);
+ yy_act = yy_accept[yy_current_state];
+ }
+
+ YY_DO_BEFORE_ACTION;
+
+ if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+ {
+ int yyl;
+ for ( yyl = 0; yyl < yyleng; ++yyl )
+ if ( yytext[yyl] == '\n' )
+
+ yylineno++;
+;
+ }
+
+do_action: /* This label is used only to access EOF actions. */
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+ case 0: /* must back up */
+ /* undo the effects of YY_DO_BEFORE_ACTION */
+ *yy_cp = (yy_hold_char);
+ yy_cp = (yy_last_accepting_cpos);
+ yy_current_state = (yy_last_accepting_state);
+ goto yy_find_action;
+
+case 1:
+/* rule 1 can match eol */
+YY_RULE_SETUP
+#line 130 "thriftl.ll"
+{ /* do nothing */ }
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 131 "thriftl.ll"
+{ /* do nothing */ }
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 133 "thriftl.ll"
+{
+ std::string parsed("/**");
+ int state = 0; // 0 = normal, 1 = "*" seen, "*/" seen
+ while(state < 2)
+ {
+ int ch = yyinput();
+ parsed.push_back(ch);
+ switch (ch) {
+ case EOF:
+ yyerror("Unexpected end of file in doc-comment at %d\n", yylineno);
+ exit(1);
+ case '*':
+ state = 1;
+ break;
+ case '/':
+ state = (state == 1) ? 2 : 0;
+ break;
+ default:
+ state = 0;
+ break;
+ }
+ }
+ pdebug("doctext = \"%s\"\n",parsed.c_str());
+
+ /* This does not show up in the parse tree. */
+ /* Rather, the parser will grab it out of the global. */
+ if (g_parse_mode == PROGRAM) {
+ clear_doctext();
+ g_doctext = strdup(parsed.c_str() + 3);
+ assert(strlen(g_doctext) >= 2);
+ g_doctext[strlen(g_doctext) - 2] = ' ';
+ g_doctext[strlen(g_doctext) - 1] = '\0';
+ g_doctext = clean_up_doctext(g_doctext);
+ g_doctext_lineno = yylineno;
+ if( (g_program_doctext_candidate == NULL) && (g_program_doctext_status == INVALID)){
+ g_program_doctext_candidate = strdup(g_doctext);
+ g_program_doctext_lineno = g_doctext_lineno;
+ g_program_doctext_status = STILL_CANDIDATE;
+ pdebug("%s","program doctext set to STILL_CANDIDATE");
+ }
+ }
+}
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 176 "thriftl.ll"
+{ /* parsed, but thrown away */
+ std::string parsed("/*");
+ int state = 0; // 0 = normal, 1 = "*" seen, "*/" seen
+ while(state < 2)
+ {
+ int ch = yyinput();
+ parsed.push_back(ch);
+ switch (ch) {
+ case EOF:
+ yyerror("Unexpected end of file in multiline comment at %d\n", yylineno);
+ exit(1);
+ case '*':
+ state = 1;
+ break;
+ case '/':
+ state = (state == 1) ? 2 : 0;
+ break;
+ default:
+ state = 0;
+ break;
+ }
+ }
+ pdebug("multi_comm = \"%s\"\n",parsed.c_str());
+}
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 201 "thriftl.ll"
+{ /* do nothing */ }
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 202 "thriftl.ll"
+{ /* do nothing */ }
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 204 "thriftl.ll"
+{ return yytext[0]; }
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 205 "thriftl.ll"
+{ return yytext[0]; }
+ YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 207 "thriftl.ll"
+{ yylval.iconst=0; return tok_int_constant; }
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 208 "thriftl.ll"
+{ yylval.iconst=1; return tok_int_constant; }
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 210 "thriftl.ll"
+{ return tok_namespace; }
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 211 "thriftl.ll"
+{ error_unsupported_namespace_decl("cpp"); /* do nothing */ }
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 212 "thriftl.ll"
+{ return tok_cpp_include; }
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 213 "thriftl.ll"
+{ return tok_cpp_type; }
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 214 "thriftl.ll"
+{ error_unsupported_namespace_decl("java_package", "java"); /* do nothing */ }
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 215 "thriftl.ll"
+{ error_unsupported_namespace_decl("cocoa_prefix", "cocoa"); /* do nothing */ }
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 216 "thriftl.ll"
+{ error_unsupported_namespace_decl("csharp"); /* do nothing */ }
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 217 "thriftl.ll"
+{ error_unsupported_namespace_decl("delphi"); /* do nothing */ }
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 218 "thriftl.ll"
+{ error_unsupported_namespace_decl("php"); /* do nothing */ }
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 219 "thriftl.ll"
+{ error_unsupported_namespace_decl("py_module", "py"); /* do nothing */ }
+ YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 220 "thriftl.ll"
+{ error_unsupported_namespace_decl("perl_package", "perl"); /* do nothing */ }
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 221 "thriftl.ll"
+{ error_unsupported_namespace_decl("ruby"); /* do nothing */ }
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 222 "thriftl.ll"
+{ error_unsupported_namespace_decl("smalltalk_category", "smalltalk.category"); /* do nothing */ }
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 223 "thriftl.ll"
+{ error_unsupported_namespace_decl("smalltalk_category", "smalltalk.category"); /* do nothing */ }
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 224 "thriftl.ll"
+{ return tok_xsd_all; }
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 225 "thriftl.ll"
+{ return tok_xsd_optional; }
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 226 "thriftl.ll"
+{ return tok_xsd_nillable; }
+ YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 227 "thriftl.ll"
+{ error_unsupported_namespace_decl("xsd"); /* do nothing */ }
+ YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 228 "thriftl.ll"
+{ return tok_xsd_attrs; }
+ YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 229 "thriftl.ll"
+{ return tok_include; }
+ YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 230 "thriftl.ll"
+{ return tok_void; }
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 231 "thriftl.ll"
+{ return tok_bool; }
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 232 "thriftl.ll"
+{
+ emit_byte_type_warning();
+ return tok_i8;
+}
+ YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 236 "thriftl.ll"
+{ return tok_i8; }
+ YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 237 "thriftl.ll"
+{ return tok_i16; }
+ YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 238 "thriftl.ll"
+{ return tok_i32; }
+ YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 239 "thriftl.ll"
+{ return tok_i64; }
+ YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 240 "thriftl.ll"
+{ return tok_double; }
+ YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 241 "thriftl.ll"
+{ return tok_string; }
+ YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 242 "thriftl.ll"
+{ return tok_binary; }
+ YY_BREAK
+case 41:
+YY_RULE_SETUP
+#line 243 "thriftl.ll"
+{
+ pwarning(0, "\"slist\" is deprecated and will be removed in a future compiler version. This type should be replaced with \"string\".\n");
+ return tok_slist;
+}
+ YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 247 "thriftl.ll"
+{
+ pwarning(0, "\"senum\" is deprecated and will be removed in a future compiler version. This type should be replaced with \"string\".\n");
+ return tok_senum;
+}
+ YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 251 "thriftl.ll"
+{ return tok_map; }
+ YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 252 "thriftl.ll"
+{ return tok_list; }
+ YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 253 "thriftl.ll"
+{ return tok_set; }
+ YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 254 "thriftl.ll"
+{ return tok_oneway; }
+ YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 255 "thriftl.ll"
+{ return tok_typedef; }
+ YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 256 "thriftl.ll"
+{ return tok_struct; }
+ YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 257 "thriftl.ll"
+{ return tok_union; }
+ YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 258 "thriftl.ll"
+{ return tok_xception; }
+ YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 259 "thriftl.ll"
+{ return tok_extends; }
+ YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 260 "thriftl.ll"
+{ return tok_throws; }
+ YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 261 "thriftl.ll"
+{ return tok_service; }
+ YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 262 "thriftl.ll"
+{ return tok_enum; }
+ YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 263 "thriftl.ll"
+{ return tok_const; }
+ YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 264 "thriftl.ll"
+{ return tok_required; }
+ YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 265 "thriftl.ll"
+{ return tok_optional; }
+ YY_BREAK
+case 58:
+YY_RULE_SETUP
+#line 266 "thriftl.ll"
+{
+ pwarning(0, "\"async\" is deprecated. It is called \"oneway\" now.\n");
+ return tok_oneway;
+}
+ YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 270 "thriftl.ll"
+{ return tok_reference; }
+ YY_BREAK
+case 60:
+YY_RULE_SETUP
+#line 273 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 61:
+YY_RULE_SETUP
+#line 274 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 62:
+YY_RULE_SETUP
+#line 275 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 63:
+YY_RULE_SETUP
+#line 276 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 64:
+YY_RULE_SETUP
+#line 277 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 65:
+YY_RULE_SETUP
+#line 278 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 66:
+YY_RULE_SETUP
+#line 279 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 67:
+YY_RULE_SETUP
+#line 280 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 68:
+YY_RULE_SETUP
+#line 281 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 69:
+YY_RULE_SETUP
+#line 282 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 70:
+YY_RULE_SETUP
+#line 283 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 71:
+YY_RULE_SETUP
+#line 284 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 72:
+YY_RULE_SETUP
+#line 285 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 73:
+YY_RULE_SETUP
+#line 286 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 74:
+YY_RULE_SETUP
+#line 287 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 75:
+YY_RULE_SETUP
+#line 288 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 76:
+YY_RULE_SETUP
+#line 289 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 77:
+YY_RULE_SETUP
+#line 290 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 78:
+YY_RULE_SETUP
+#line 291 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 79:
+YY_RULE_SETUP
+#line 292 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 80:
+YY_RULE_SETUP
+#line 293 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 81:
+YY_RULE_SETUP
+#line 294 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 82:
+YY_RULE_SETUP
+#line 295 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 83:
+YY_RULE_SETUP
+#line 296 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 84:
+YY_RULE_SETUP
+#line 297 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 85:
+YY_RULE_SETUP
+#line 298 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 86:
+YY_RULE_SETUP
+#line 299 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 87:
+YY_RULE_SETUP
+#line 300 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 88:
+YY_RULE_SETUP
+#line 301 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 89:
+YY_RULE_SETUP
+#line 302 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 90:
+YY_RULE_SETUP
+#line 303 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 91:
+YY_RULE_SETUP
+#line 304 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 305 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 93:
+YY_RULE_SETUP
+#line 306 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 94:
+YY_RULE_SETUP
+#line 307 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 95:
+YY_RULE_SETUP
+#line 308 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 96:
+YY_RULE_SETUP
+#line 309 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 97:
+YY_RULE_SETUP
+#line 310 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 98:
+YY_RULE_SETUP
+#line 311 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 99:
+YY_RULE_SETUP
+#line 312 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 100:
+YY_RULE_SETUP
+#line 313 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 101:
+YY_RULE_SETUP
+#line 314 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 315 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 316 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 317 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 318 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 106:
+YY_RULE_SETUP
+#line 319 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 107:
+YY_RULE_SETUP
+#line 320 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 108:
+YY_RULE_SETUP
+#line 321 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 109:
+YY_RULE_SETUP
+#line 322 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 110:
+YY_RULE_SETUP
+#line 323 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 111:
+YY_RULE_SETUP
+#line 324 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 112:
+YY_RULE_SETUP
+#line 325 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 113:
+YY_RULE_SETUP
+#line 326 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 114:
+YY_RULE_SETUP
+#line 327 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 115:
+YY_RULE_SETUP
+#line 328 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 329 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 117:
+YY_RULE_SETUP
+#line 330 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 118:
+YY_RULE_SETUP
+#line 331 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 119:
+YY_RULE_SETUP
+#line 332 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 120:
+YY_RULE_SETUP
+#line 333 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 121:
+YY_RULE_SETUP
+#line 334 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 122:
+YY_RULE_SETUP
+#line 335 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 123:
+YY_RULE_SETUP
+#line 336 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 124:
+YY_RULE_SETUP
+#line 337 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 125:
+YY_RULE_SETUP
+#line 338 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 126:
+YY_RULE_SETUP
+#line 339 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 127:
+YY_RULE_SETUP
+#line 340 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 128:
+YY_RULE_SETUP
+#line 341 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 129:
+YY_RULE_SETUP
+#line 342 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 130:
+YY_RULE_SETUP
+#line 343 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 131:
+YY_RULE_SETUP
+#line 344 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 132:
+YY_RULE_SETUP
+#line 345 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 133:
+YY_RULE_SETUP
+#line 346 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 134:
+YY_RULE_SETUP
+#line 347 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 135:
+YY_RULE_SETUP
+#line 348 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 349 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 137:
+YY_RULE_SETUP
+#line 350 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 138:
+YY_RULE_SETUP
+#line 351 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 139:
+YY_RULE_SETUP
+#line 352 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 140:
+YY_RULE_SETUP
+#line 353 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 141:
+YY_RULE_SETUP
+#line 354 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 142:
+YY_RULE_SETUP
+#line 355 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 143:
+YY_RULE_SETUP
+#line 356 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 144:
+YY_RULE_SETUP
+#line 357 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 145:
+YY_RULE_SETUP
+#line 358 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 146:
+YY_RULE_SETUP
+#line 359 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 147:
+YY_RULE_SETUP
+#line 360 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 148:
+YY_RULE_SETUP
+#line 361 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 149:
+YY_RULE_SETUP
+#line 362 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 150:
+YY_RULE_SETUP
+#line 363 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 151:
+YY_RULE_SETUP
+#line 364 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 152:
+YY_RULE_SETUP
+#line 365 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 153:
+YY_RULE_SETUP
+#line 366 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 154:
+YY_RULE_SETUP
+#line 367 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 155:
+YY_RULE_SETUP
+#line 368 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 156:
+YY_RULE_SETUP
+#line 369 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 157:
+YY_RULE_SETUP
+#line 370 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 158:
+YY_RULE_SETUP
+#line 371 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 159:
+YY_RULE_SETUP
+#line 372 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 160:
+YY_RULE_SETUP
+#line 373 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 161:
+YY_RULE_SETUP
+#line 374 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 162:
+YY_RULE_SETUP
+#line 375 "thriftl.ll"
+{ thrift_reserved_keyword(yytext); }
+ YY_BREAK
+case 163:
+YY_RULE_SETUP
+#line 377 "thriftl.ll"
+{
+ errno = 0;
+ yylval.iconst = strtoll(yytext, NULL, 10);
+ if (errno == ERANGE) {
+ integer_overflow(yytext);
+ }
+ return tok_int_constant;
+}
+ YY_BREAK
+case 164:
+YY_RULE_SETUP
+#line 386 "thriftl.ll"
+{
+ errno = 0;
+ char sign = yytext[0];
+ int shift = sign == '0' ? 2 : 3;
+ yylval.iconst = strtoll(yytext+shift, NULL, 16);
+ if (sign == '-') {
+ yylval.iconst = -yylval.iconst;
+ }
+ if (errno == ERANGE) {
+ integer_overflow(yytext);
+ }
+ return tok_int_constant;
+}
+ YY_BREAK
+case 165:
+YY_RULE_SETUP
+#line 400 "thriftl.ll"
+{
+ yylval.id = strdup(yytext);
+ return tok_identifier;
+}
+ YY_BREAK
+case 166:
+YY_RULE_SETUP
+#line 405 "thriftl.ll"
+{
+ /* Deliberately placed after identifier, since "e10" is NOT a double literal (THRIFT-3477) */
+ yylval.dconst = atof(yytext);
+ return tok_dub_constant;
+}
+ YY_BREAK
+case 167:
+YY_RULE_SETUP
+#line 411 "thriftl.ll"
+{
+ char mark = yytext[0];
+ std::string result;
+ for(;;)
+ {
+ int ch = yyinput();
+ switch (ch) {
+ case EOF:
+ yyerror("End of file while read string at %d\n", yylineno);
+ exit(1);
+ case '\n':
+ yyerror("End of line while read string at %d\n", yylineno - 1);
+ exit(1);
+ case '\\':
+ ch = yyinput();
+ switch (ch) {
+ case 'r':
+ result.push_back('\r');
+ continue;
+ case 'n':
+ result.push_back('\n');
+ continue;
+ case 't':
+ result.push_back('\t');
+ continue;
+ case '"':
+ result.push_back('"');
+ continue;
+ case '\'':
+ result.push_back('\'');
+ continue;
+ case '\\':
+ result.push_back('\\');
+ continue;
+ default:
+ yyerror("Bad escape character\n");
+ return -1;
+ }
+ break;
+ default:
+ if (ch == mark) {
+ yylval.id = strdup(result.c_str());
+ return tok_literal;
+ } else {
+ result.push_back(ch);
+ }
+ }
+ }
+}
+ YY_BREAK
+case 168:
+YY_RULE_SETUP
+#line 462 "thriftl.ll"
+{
+ unexpected_token(yytext);
+}
+ YY_BREAK
+case 169:
+YY_RULE_SETUP
+#line 466 "thriftl.ll"
+ECHO;
+ YY_BREAK
+#line 2492 "thriftl.cc"
+case YY_STATE_EOF(INITIAL):
+ yyterminate();
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = (yy_hold_char);
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between 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.
+ */
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since 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 ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( );
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * 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).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++(yy_c_buf_p);
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = (yy_c_buf_p);
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer( ) )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ (yy_did_buffer_switch_on_eof) = 0;
+
+ if ( yywrap( ) )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! (yy_did_buffer_switch_on_eof) )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ (yy_c_buf_p) =
+ (yytext_ptr) + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( );
+
+ yy_cp = (yy_c_buf_p);
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ (yy_c_buf_p) =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+ yy_current_state = yy_get_previous_state( );
+
+ yy_cp = (yy_c_buf_p);
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of user's declarations */
+} /* end of yylex */
+
+/* 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
+ */
+static int yy_get_next_buffer (void)
+{
+ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+ char *source = (yytext_ptr);
+ int number_to_move, i;
+ int ret_val;
+
+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( (yy_c_buf_p) - (yytext_ptr) - 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) ((yy_c_buf_p) - (yytext_ptr) - 1);
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+ else
+ {
+ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+ int yy_c_buf_p_offset =
+ (int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yyrealloc( (void *) b->yy_ch_buf,
+ (yy_size_t) (b->yy_buf_size + 2) );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = NULL;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+ number_to_move - 1;
+
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+ (yy_n_chars), num_to_read );
+
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ if ( (yy_n_chars) == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ /* Extend the array by 50%, plus the number we really need. */
+ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
+ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+ /* "- 2" to take care of EOB's */
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
+ }
+
+ (yy_n_chars) += number_to_move;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+ (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+ return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+ static yy_state_type yy_get_previous_state (void)
+{
+ yy_state_type yy_current_state;
+ char *yy_cp;
+
+ yy_current_state = (yy_start);
+
+ for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+ {
+ YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+ (yy_last_accepting_cpos) = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 768 )
+ yy_c = yy_meta[yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ }
+
+ return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
+{
+ int yy_is_jam;
+ char *yy_cp = (yy_c_buf_p);
+
+ YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+ (yy_last_accepting_cpos) = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 768 )
+ yy_c = yy_meta[yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ yy_is_jam = (yy_current_state == 767);
+
+ return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_UNPUT
+
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+ static int yyinput (void)
+#else
+ static int input (void)
+#endif
+
+{
+ int c;
+
+ *(yy_c_buf_p) = (yy_hold_char);
+
+ if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+ {
+ /* 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 ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+ /* This was really a NUL. */
+ *(yy_c_buf_p) = '\0';
+
+ else
+ { /* need more input */
+ int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
+ ++(yy_c_buf_p);
+
+ switch ( yy_get_next_buffer( ) )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because 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. */
+ yyrestart( yyin );
+
+ /*FALLTHROUGH*/
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap( ) )
+ return 0;
+
+ if ( ! (yy_did_buffer_switch_on_eof) )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ (yy_c_buf_p) = (yytext_ptr) + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
+ *(yy_c_buf_p) = '\0'; /* preserve yytext */
+ (yy_hold_char) = *++(yy_c_buf_p);
+
+ if ( c == '\n' )
+
+ yylineno++;
+;
+
+ return c;
+}
+#endif /* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ *
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+ void yyrestart (FILE * input_file )
+{
+
+ if ( ! YY_CURRENT_BUFFER ){
+ yyensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+ }
+
+ yy_init_buffer( YY_CURRENT_BUFFER, input_file );
+ yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ *
+ */
+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
+{
+
+ /* TODO. We should be able to replace this entire function body
+ * with
+ * yypop_buffer_state();
+ * yypush_buffer_state(new_buffer);
+ */
+ yyensure_buffer_stack ();
+ if ( YY_CURRENT_BUFFER == new_buffer )
+ return;
+
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *(yy_c_buf_p) = (yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+ yy_load_buffer_state( );
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ (yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state (void)
+{
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+ (yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ *
+ * @return the allocated buffer state.
+ */
+ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
+{
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* 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->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file );
+
+ return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ *
+ */
+ void yy_delete_buffer (YY_BUFFER_STATE b )
+{
+
+ if ( ! b )
+ return;
+
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yyfree( (void *) b->yy_ch_buf );
+
+ yyfree( (void *) b );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
+
+{
+ int oerrno = errno;
+
+ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+ /* If b is the current buffer, then yy_init_buffer was _probably_
+ * called from yyrestart() or through yy_get_next_buffer.
+ * In that case, we don't want to reset the lineno or column.
+ */
+ if (b != YY_CURRENT_BUFFER){
+ b->yy_bs_lineno = 1;
+ b->yy_bs_column = 0;
+ }
+
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+
+ errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ *
+ */
+ void yy_flush_buffer (YY_BUFFER_STATE b )
+{
+ if ( ! b )
+ return;
+
+ b->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->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == YY_CURRENT_BUFFER )
+ yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ * the current state. This function will allocate the stack
+ * if necessary.
+ * @param new_buffer The new state.
+ *
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+ if (new_buffer == NULL)
+ return;
+
+ yyensure_buffer_stack();
+
+ /* This block is copied from yy_switch_to_buffer. */
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *(yy_c_buf_p) = (yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ /* Only push if top exists. Otherwise, replace top. */
+ if (YY_CURRENT_BUFFER)
+ (yy_buffer_stack_top)++;
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+ /* copied from yy_switch_to_buffer. */
+ yy_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ * The next element becomes the new top.
+ *
+ */
+void yypop_buffer_state (void)
+{
+ if (!YY_CURRENT_BUFFER)
+ return;
+
+ yy_delete_buffer(YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ if ((yy_buffer_stack_top) > 0)
+ --(yy_buffer_stack_top);
+
+ if (YY_CURRENT_BUFFER) {
+ yy_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+ }
+}
+
+/* Allocates the stack if it does not exist.
+ * Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+ yy_size_t num_to_alloc;
+
+ if (!(yy_buffer_stack)) {
+
+ /* First allocation is just for 2 elements, since we don't know if this
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+ if ( ! (yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+ memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+
+ (yy_buffer_stack_max) = num_to_alloc;
+ (yy_buffer_stack_top) = 0;
+ return;
+ }
+
+ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+ /* Increase the buffer to prepare for a possible push. */
+ yy_size_t grow_size = 8 /* arbitrary grow size */;
+
+ num_to_alloc = (yy_buffer_stack_max) + grow_size;
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+ ((yy_buffer_stack),
+ num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+ if ( ! (yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+ /* zero only the new slots.*/
+ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+ (yy_buffer_stack_max) = num_to_alloc;
+ }
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ *
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
+{
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return NULL;
+
+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = NULL;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b );
+
+ return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ *
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ * yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (const char * yystr )
+{
+
+ return yy_scan_bytes( yystr, (int) strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ *
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
+{
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = (yy_size_t) (_yybytes_len + 2);
+ buf = (char *) yyalloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < _yybytes_len; ++i )
+ buf[i] = yybytes[i];
+
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yynoreturn yy_fatal_error (const char* msg )
+{
+ fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ yytext[yyleng] = (yy_hold_char); \
+ (yy_c_buf_p) = yytext + yyless_macro_arg; \
+ (yy_hold_char) = *(yy_c_buf_p); \
+ *(yy_c_buf_p) = '\0'; \
+ yyleng = yyless_macro_arg; \
+ } \
+ while ( 0 )
+
+/* Accessor methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ *
+ */
+int yyget_lineno (void)
+{
+
+ return yylineno;
+}
+
+/** Get the input stream.
+ *
+ */
+FILE *yyget_in (void)
+{
+ return yyin;
+}
+
+/** Get the output stream.
+ *
+ */
+FILE *yyget_out (void)
+{
+ return yyout;
+}
+
+/** Get the length of the current token.
+ *
+ */
+int yyget_leng (void)
+{
+ return yyleng;
+}
+
+/** Get the current token.
+ *
+ */
+
+char *yyget_text (void)
+{
+ return yytext;
+}
+
+/** Set the current line number.
+ * @param _line_number line number
+ *
+ */
+void yyset_lineno (int _line_number )
+{
+
+ yylineno = _line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param _in_str A readable stream.
+ *
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE * _in_str )
+{
+ yyin = _in_str ;
+}
+
+void yyset_out (FILE * _out_str )
+{
+ yyout = _out_str ;
+}
+
+int yyget_debug (void)
+{
+ return yy_flex_debug;
+}
+
+void yyset_debug (int _bdebug )
+{
+ yy_flex_debug = _bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+ /* Initialization is the same as for the non-reentrant scanner.
+ * This function is called from yylex_destroy(), so don't allocate here.
+ */
+
+ /* We do not touch yylineno unless the option is enabled. */
+ yylineno = 1;
+
+ (yy_buffer_stack) = NULL;
+ (yy_buffer_stack_top) = 0;
+ (yy_buffer_stack_max) = 0;
+ (yy_c_buf_p) = NULL;
+ (yy_init) = 0;
+ (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+ yyin = stdin;
+ yyout = stdout;
+#else
+ yyin = NULL;
+ yyout = NULL;
+#endif
+
+ /* For future reference: Set errno on error, since we are called by
+ * yylex_init()
+ */
+ return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy (void)
+{
+
+ /* Pop the buffer stack, destroying each element. */
+ while(YY_CURRENT_BUFFER){
+ yy_delete_buffer( YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ yypop_buffer_state();
+ }
+
+ /* Destroy the stack itself. */
+ yyfree((yy_buffer_stack) );
+ (yy_buffer_stack) = NULL;
+
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
+ * yylex() is called, initialization will occur. */
+ yy_init_globals( );
+
+ return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, const char * s2, int n )
+{
+
+ int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (const char * s )
+{
+ int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+}
+#endif
+
+void *yyalloc (yy_size_t size )
+{
+ return malloc(size);
+}
+
+void *yyrealloc (void * ptr, yy_size_t 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 realloc(ptr, size);
+}
+
+void yyfree (void * ptr )
+{
+ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 466 "thriftl.ll"
+
+
+#ifdef _MSC_VER
+#pragma warning( pop )
+#endif
+
+/* vim: filetype=lex
+*/
diff --git a/contrib/restricted/thrift/compiler/thrift/thrifty.cc b/contrib/restricted/thrift/compiler/thrift/thrifty.cc
index 877a743b8b..7310292ec6 100644
--- a/contrib/restricted/thrift/compiler/thrift/thrifty.cc
+++ b/contrib/restricted/thrift/compiler/thrift/thrifty.cc
@@ -1,3058 +1,3058 @@
-/* A Bison parser, made by GNU Bison 3.0.4. */
-
-/* Bison implementation for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "3.0.4"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Push parsers. */
-#define YYPUSH 0
-
-/* Pull parsers. */
-#define YYPULL 1
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 4 "thrifty.yy" /* yacc.c:339 */
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Thrift parser.
- *
- * This parser is used on a thrift definition file.
- *
- */
-
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS
-#endif
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS
-#endif
-#include <stdio.h>
-#include <string.h>
-#ifndef _MSC_VER
-#include <inttypes.h>
-#else
-#include <stdint.h>
-#endif
-#include <limits.h>
-#ifdef _MSC_VER
-#include "thrift/windows/config.h"
-#endif
-#include "thrift/main.h"
-#include "thrift/common.h"
-#include "thrift/globals.h"
-#include "thrift/parse/t_program.h"
-#include "thrift/parse/t_scope.h"
-
-#ifdef _MSC_VER
-//warning C4065: switch statement contains 'default' but no 'case' labels
-#pragma warning(disable:4065)
-#endif
-
-/**
- * This global variable is used for automatic numbering of field indices etc.
- * when parsing the members of a struct. Field values are automatically
- * assigned starting from -1 and working their way down.
- */
-int y_field_val = -1;
-/**
- * This global variable is used for automatic numbering of enum values.
- * y_enum_val is the last value assigned; the next auto-assigned value will be
- * y_enum_val+1, and then it continues working upwards. Explicitly specified
- * enum values reset y_enum_val to that value.
- */
-int32_t y_enum_val = -1;
-int g_arglist = 0;
-const int struct_is_struct = 0;
-const int struct_is_union = 1;
-
-
-#line 140 "thrifty.cc" /* yacc.c:339 */
-
-# ifndef YY_NULLPTR
-# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
-# else
-# define YY_NULLPTR 0
-# endif
-# endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
- by #include "thrifty.hh". */
-#ifndef YY_YY_THRIFTY_HH_INCLUDED
-# define YY_YY_THRIFTY_HH_INCLUDED
-/* Debug traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-/* "%code requires" blocks. */
-#line 1 "thrifty.yy" /* yacc.c:355 */
-
-#include "thrift/parse/t_program.h"
-
-#line 174 "thrifty.cc" /* yacc.c:355 */
-
-/* Token type. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- enum yytokentype
- {
- tok_identifier = 258,
- tok_literal = 259,
- tok_doctext = 260,
- tok_int_constant = 261,
- tok_dub_constant = 262,
- tok_include = 263,
- tok_namespace = 264,
- tok_cpp_include = 265,
- tok_cpp_type = 266,
- tok_xsd_all = 267,
- tok_xsd_optional = 268,
- tok_xsd_nillable = 269,
- tok_xsd_attrs = 270,
- tok_void = 271,
- tok_bool = 272,
- tok_string = 273,
- tok_binary = 274,
- tok_slist = 275,
- tok_senum = 276,
- tok_i8 = 277,
- tok_i16 = 278,
- tok_i32 = 279,
- tok_i64 = 280,
- tok_double = 281,
- tok_map = 282,
- tok_list = 283,
- tok_set = 284,
- tok_oneway = 285,
- tok_typedef = 286,
- tok_struct = 287,
- tok_xception = 288,
- tok_throws = 289,
- tok_extends = 290,
- tok_service = 291,
- tok_enum = 292,
- tok_const = 293,
- tok_required = 294,
- tok_optional = 295,
- tok_union = 296,
- tok_reference = 297
- };
-#endif
-/* Tokens. */
-#define tok_identifier 258
-#define tok_literal 259
-#define tok_doctext 260
-#define tok_int_constant 261
-#define tok_dub_constant 262
-#define tok_include 263
-#define tok_namespace 264
-#define tok_cpp_include 265
-#define tok_cpp_type 266
-#define tok_xsd_all 267
-#define tok_xsd_optional 268
-#define tok_xsd_nillable 269
-#define tok_xsd_attrs 270
-#define tok_void 271
-#define tok_bool 272
-#define tok_string 273
-#define tok_binary 274
-#define tok_slist 275
-#define tok_senum 276
-#define tok_i8 277
-#define tok_i16 278
-#define tok_i32 279
-#define tok_i64 280
-#define tok_double 281
-#define tok_map 282
-#define tok_list 283
-#define tok_set 284
-#define tok_oneway 285
-#define tok_typedef 286
-#define tok_struct 287
-#define tok_xception 288
-#define tok_throws 289
-#define tok_extends 290
-#define tok_service 291
-#define tok_enum 292
-#define tok_const 293
-#define tok_required 294
-#define tok_optional 295
-#define tok_union 296
-#define tok_reference 297
-
-/* Value type. */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
-union YYSTYPE
-{
-#line 82 "thrifty.yy" /* yacc.c:355 */
-
- char* id;
- int64_t iconst;
- double dconst;
- bool tbool;
- t_doc* tdoc;
- t_type* ttype;
- t_base_type* tbase;
- t_typedef* ttypedef;
- t_enum* tenum;
- t_enum_value* tenumv;
- t_const* tconst;
- t_const_value* tconstv;
- t_struct* tstruct;
- t_service* tservice;
- t_function* tfunction;
- t_field* tfield;
- char* dtext;
- t_field::e_req ereq;
- t_annotation* tannot;
- t_field_id tfieldid;
-
-#line 293 "thrifty.cc" /* yacc.c:355 */
-};
-
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE yylval;
-
-int yyparse (void);
-
-#endif /* !YY_YY_THRIFTY_HH_INCLUDED */
-
-/* Copy the second part of user declarations. */
-
-#line 310 "thrifty.cc" /* yacc.c:358 */
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__ \
- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-# define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-# define _Noreturn __declspec (noreturn)
-# else
-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
- _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
- /* Use EXIT_SUCCESS as a witness for stdlib.h. */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's 'empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined EXIT_SUCCESS \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yytype_int16 yyss_alloc;
- YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(Dst, Src, Count) \
- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
-# else
-# define YYCOPY(Dst, Src, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (Dst)[yyi] = (Src)[yyi]; \
- } \
- while (0)
-# endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 3
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 173
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 56
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 60
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 115
-/* YYNSTATES -- Number of states. */
-#define YYNSTATES 200
-
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
- by yylex, with out-of-bounds checking. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 297
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, without out-of-bounds checking. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 52, 53, 43, 2, 44, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 51, 45,
- 54, 48, 55, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 49, 2, 50, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 46, 2, 47, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42
-};
-
-#if YYDEBUG
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
-static const yytype_uint16 yyrline[] =
-{
- 0, 250, 250, 262, 273, 282, 287, 292, 296, 308,
- 316, 326, 339, 347, 352, 360, 375, 393, 400, 407,
- 414, 421, 430, 432, 435, 438, 451, 479, 486, 493,
- 507, 522, 534, 546, 553, 560, 567, 586, 595, 601,
- 606, 612, 617, 624, 631, 638, 645, 652, 659, 666,
- 670, 676, 691, 696, 701, 706, 711, 716, 721, 726,
- 731, 745, 759, 764, 769, 782, 787, 794, 800, 815,
- 820, 825, 835, 840, 850, 857, 891, 931, 941, 946,
- 951, 955, 967, 972, 981, 986, 991, 998, 1017, 1022,
- 1028, 1041, 1046, 1051, 1056, 1061, 1066, 1071, 1076, 1081,
- 1087, 1098, 1103, 1108, 1115, 1125, 1135, 1146, 1151, 1156,
- 1162, 1167, 1175, 1181, 1190, 1196
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 0
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "tok_identifier", "tok_literal",
- "tok_doctext", "tok_int_constant", "tok_dub_constant", "tok_include",
- "tok_namespace", "tok_cpp_include", "tok_cpp_type", "tok_xsd_all",
- "tok_xsd_optional", "tok_xsd_nillable", "tok_xsd_attrs", "tok_void",
- "tok_bool", "tok_string", "tok_binary", "tok_slist", "tok_senum",
- "tok_i8", "tok_i16", "tok_i32", "tok_i64", "tok_double", "tok_map",
- "tok_list", "tok_set", "tok_oneway", "tok_typedef", "tok_struct",
- "tok_xception", "tok_throws", "tok_extends", "tok_service", "tok_enum",
- "tok_const", "tok_required", "tok_optional", "tok_union",
- "tok_reference", "'*'", "','", "';'", "'{'", "'}'", "'='", "'['", "']'",
- "':'", "'('", "')'", "'<'", "'>'", "$accept", "Program",
- "CaptureDocText", "DestroyDocText", "HeaderList", "Header", "Include",
- "DefinitionList", "Definition", "TypeDefinition",
- "CommaOrSemicolonOptional", "Typedef", "Enum", "EnumDefList", "EnumDef",
- "EnumValue", "Senum", "SenumDefList", "SenumDef", "Const", "ConstValue",
- "ConstList", "ConstListContents", "ConstMap", "ConstMapContents",
- "StructHead", "Struct", "XsdAll", "XsdOptional", "XsdNillable",
- "XsdAttributes", "Xception", "Service", "FlagArgs", "UnflagArgs",
- "Extends", "FunctionList", "Function", "Oneway", "Throws", "FieldList",
- "Field", "FieldIdentifier", "FieldReference", "FieldRequiredness",
- "FieldValue", "FunctionType", "FieldType", "BaseType", "SimpleBaseType",
- "ContainerType", "SimpleContainerType", "MapType", "SetType", "ListType",
- "CppType", "TypeAnnotations", "TypeAnnotationList", "TypeAnnotation",
- "TypeAnnotationValue", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
- (internal) symbol number NUM (which must be that of a token). */
-static const yytype_uint16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 42, 44, 59, 123, 125, 61, 91,
- 93, 58, 40, 41, 60, 62
-};
-# endif
-
-#define YYPACT_NINF -124
-
-#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-124)))
-
-#define YYTABLE_NINF -64
-
-#define yytable_value_is_error(Yytable_value) \
- 0
-
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-static const yytype_int16 yypact[] =
-{
- -124, 15, 9, -124, 26, 33, 35, 13, 36, -124,
- -124, 132, -124, 39, 40, -124, 41, 123, -124, 42,
- 45, 46, 123, -124, -124, -124, -124, -124, -124, -124,
- 61, -124, -124, -124, 16, -124, 19, -124, -124, -124,
- -124, -124, -124, -124, -124, -124, -124, 56, 18, 56,
- 70, -124, 16, -124, 16, -124, -124, -124, 29, 43,
- 30, 74, 68, -124, -124, -124, 77, 28, 123, 34,
- 16, -124, -124, -124, 80, 38, -124, 44, -124, 48,
- 7, 3, -124, 123, 32, 123, -23, 49, -124, -124,
- 50, 25, -124, 47, -124, -124, -23, 16, -124, 55,
- 56, 65, -124, -124, -124, 16, 84, -124, -124, 16,
- 98, -124, -124, -124, -124, -124, -124, -124, -23, -124,
- -124, 75, 117, -23, -124, -124, 123, -124, -124, -124,
- 51, -2, 76, -124, 79, 16, 5, 20, -124, 16,
- -124, -124, 78, -124, -124, -124, 123, 95, 82, -124,
- 124, -23, -124, 81, -124, -23, -124, -124, 89, -124,
- 90, 16, -124, -124, 25, -124, -124, 131, -124, 133,
- -124, -124, -23, 87, 92, -124, 25, 141, -124, -124,
- -124, 142, 102, -124, 143, 125, 111, 16, 108, 16,
- -124, -23, -124, -23, 114, -124, 109, -124, -124, -124
-};
-
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
-static const yytype_uint8 yydefact[] =
-{
- 6, 0, 13, 1, 0, 3, 0, 0, 0, 5,
- 7, 0, 11, 0, 0, 10, 0, 0, 49, 0,
- 0, 0, 0, 50, 12, 15, 17, 18, 19, 14,
- 0, 20, 21, 16, 110, 9, 0, 87, 94, 91,
- 92, 93, 95, 96, 97, 98, 99, 108, 0, 108,
- 0, 88, 110, 89, 110, 101, 102, 103, 0, 65,
- 0, 0, 53, 112, 8, 34, 0, 0, 0, 0,
- 110, 90, 100, 74, 0, 0, 28, 0, 52, 0,
- 0, 0, 107, 0, 0, 0, 24, 3, 64, 62,
- 3, 0, 74, 115, 109, 111, 24, 110, 33, 0,
- 108, 0, 22, 23, 25, 110, 77, 73, 67, 110,
- 0, 27, 40, 39, 37, 38, 48, 45, 24, 41,
- 42, 3, 0, 24, 35, 32, 0, 106, 105, 60,
- 0, 82, 3, 26, 31, 110, 0, 0, 36, 110,
- 114, 113, 0, 76, 80, 81, 0, 70, 0, 66,
- 0, 24, 46, 0, 43, 24, 51, 104, 79, 69,
- 0, 110, 30, 29, 0, 44, 78, 0, 86, 0,
- 85, 61, 24, 84, 0, 47, 0, 55, 74, 83,
- 54, 57, 3, 56, 59, 72, 0, 110, 0, 110,
- 74, 24, 74, 24, 3, 75, 3, 68, 58, 71
-};
-
- /* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
-{
- -124, -124, -4, -124, -124, -124, -124, -124, -124, -124,
- -93, -124, -124, -124, -124, -124, -124, -124, -124, -124,
- -123, -124, -124, -124, -124, -124, -124, -124, -124, -124,
- -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
- -87, -124, -124, -124, -124, -124, -124, -22, -124, -124,
- -124, -124, -124, -124, -124, -43, -50, -124, -124, -124
-};
-
- /* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
-{
- -1, 1, 106, 4, 2, 9, 10, 5, 24, 25,
- 104, 26, 27, 90, 111, 135, 28, 81, 98, 29,
- 118, 119, 137, 120, 136, 30, 31, 79, 181, 184,
- 187, 32, 33, 108, 148, 75, 132, 149, 160, 189,
- 87, 107, 131, 167, 146, 177, 169, 50, 51, 52,
- 53, 54, 55, 56, 57, 67, 64, 80, 95, 123
-};
-
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
-static const yytype_int16 yytable[] =
-{
- 61, 11, 71, 124, 72, 121, 69, 96, 112, 113,
- 93, 114, 115, 153, 155, 3, 13, -4, -4, -4,
- 86, 102, 103, 112, 113, 138, 114, 115, 112, 113,
- 141, 114, 115, -2, 6, 7, 8, 144, 145, 12,
- 15, 172, 34, 35, 36, 58, 84, 125, 59, 60,
- 97, 116, 152, 179, 117, 129, 14, 127, 163, 133,
- 94, 99, 165, 101, 62, 65, 116, 66, 63, 117,
- 154, 116, 68, 70, 117, 73, 76, 77, 74, 175,
- 78, 82, 83, 88, 89, 151, 110, 100, 85, 156,
- 130, 182, 91, 37, 92, 122, 105, 109, 195, 126,
- 197, 134, 143, 194, 142, 196, 168, 38, 39, 40,
- 41, 171, 42, 43, 44, 45, 46, 47, 48, 49,
- 128, 140, 139, -63, 158, 159, 37, 150, 147, 161,
- 162, 166, 164, 157, 173, 176, 174, 191, 170, 193,
- 38, 39, 40, 41, 178, 42, 43, 44, 45, 46,
- 47, 48, 49, 16, 180, 185, 183, 190, 186, 188,
- 192, 198, 199, 17, 18, 19, 0, 0, 20, 21,
- 22, 0, 0, 23
-};
-
-static const yytype_int16 yycheck[] =
-{
- 22, 5, 52, 96, 54, 92, 49, 4, 3, 4,
- 3, 6, 7, 136, 137, 0, 3, 8, 9, 10,
- 70, 44, 45, 3, 4, 118, 6, 7, 3, 4,
- 123, 6, 7, 0, 8, 9, 10, 39, 40, 4,
- 4, 164, 3, 3, 3, 3, 68, 97, 3, 3,
- 47, 46, 47, 176, 49, 105, 43, 100, 151, 109,
- 53, 83, 155, 85, 3, 46, 46, 11, 52, 49,
- 50, 46, 54, 3, 49, 46, 46, 3, 35, 172,
- 12, 4, 54, 3, 46, 135, 90, 55, 54, 139,
- 6, 178, 48, 3, 46, 48, 47, 47, 191, 44,
- 193, 3, 51, 190, 126, 192, 16, 17, 18, 19,
- 20, 161, 22, 23, 24, 25, 26, 27, 28, 29,
- 55, 4, 47, 47, 146, 30, 3, 48, 132, 47,
- 6, 42, 51, 55, 3, 48, 3, 187, 160, 189,
- 17, 18, 19, 20, 52, 22, 23, 24, 25, 26,
- 27, 28, 29, 21, 13, 53, 14, 46, 15, 34,
- 52, 47, 53, 31, 32, 33, -1, -1, 36, 37,
- 38, -1, -1, 41
-};
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
-{
- 0, 57, 60, 0, 59, 63, 8, 9, 10, 61,
- 62, 58, 4, 3, 43, 4, 21, 31, 32, 33,
- 36, 37, 38, 41, 64, 65, 67, 68, 72, 75,
- 81, 82, 87, 88, 3, 3, 3, 3, 17, 18,
- 19, 20, 22, 23, 24, 25, 26, 27, 28, 29,
- 103, 104, 105, 106, 107, 108, 109, 110, 3, 3,
- 3, 103, 3, 52, 112, 46, 11, 111, 54, 111,
- 3, 112, 112, 46, 35, 91, 46, 3, 12, 83,
- 113, 73, 4, 54, 103, 54, 112, 96, 3, 46,
- 69, 48, 46, 3, 53, 114, 4, 47, 74, 103,
- 55, 103, 44, 45, 66, 47, 58, 97, 89, 47,
- 58, 70, 3, 4, 6, 7, 46, 49, 76, 77,
- 79, 96, 48, 115, 66, 112, 44, 111, 55, 112,
- 6, 98, 92, 112, 3, 71, 80, 78, 66, 47,
- 4, 66, 103, 51, 39, 40, 100, 58, 90, 93,
- 48, 112, 47, 76, 50, 76, 112, 55, 103, 30,
- 94, 47, 6, 66, 51, 66, 42, 99, 16, 102,
- 103, 112, 76, 3, 3, 66, 48, 101, 52, 76,
- 13, 84, 96, 14, 85, 53, 15, 86, 34, 95,
- 46, 112, 52, 112, 96, 66, 96, 66, 47, 53
-};
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 56, 57, 58, 59, 60, 60, 61, 61, 61,
- 61, 62, 63, 63, 64, 64, 64, 65, 65, 65,
- 65, 65, 66, 66, 66, 67, 68, 69, 69, 70,
- 71, 71, 72, 73, 73, 74, 75, 76, 76, 76,
- 76, 76, 76, 77, 78, 78, 79, 80, 80, 81,
- 81, 82, 83, 83, 84, 84, 85, 85, 86, 86,
- 87, 88, 89, 90, 91, 91, 92, 92, 93, 94,
- 94, 95, 95, 96, 96, 97, 98, 98, 99, 99,
- 100, 100, 100, 101, 101, 102, 102, 103, 103, 103,
- 104, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 106, 107, 107, 107, 108, 109, 110, 111, 111, 112,
- 112, 113, 113, 114, 115, 115
-};
-
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
-{
- 0, 2, 2, 0, 0, 3, 0, 1, 4, 3,
- 2, 2, 3, 0, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 5, 6, 2, 0, 4,
- 3, 1, 6, 2, 0, 2, 6, 1, 1, 1,
- 1, 1, 1, 3, 3, 0, 3, 5, 0, 1,
- 1, 7, 1, 0, 1, 0, 1, 0, 4, 0,
- 6, 9, 0, 0, 2, 0, 2, 0, 10, 1,
- 0, 4, 0, 2, 0, 12, 2, 0, 1, 0,
- 1, 1, 0, 2, 0, 1, 1, 1, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 1, 1, 1, 7, 5, 5, 2, 0, 3,
- 0, 2, 0, 3, 2, 0
-};
-
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-/* Error token number */
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
-
-
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT. |
-`----------------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-{
- FILE *yyo = yyoutput;
- YYUSE (yyo);
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- YYUSE (yytype);
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-{
- YYFPRINTF (yyoutput, "%s %s (",
- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-{
- YYFPRINTF (stderr, "Stack now");
- for (; yybottom <= yytop; yybottom++)
- {
- int yybot = *yybottom;
- YYFPRINTF (stderr, " %d", yybot);
- }
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
-{
- unsigned long int yylno = yyrline[yyrule];
- int yynrhs = yyr2[yyrule];
- int yyi;
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr,
- yystos[yyssp[yyi + 1 - yynrhs]],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
- YYFPRINTF (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyssp, yyvsp, Rule); \
-} while (0)
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
- YYSIZE_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYSIZE_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
- about the unexpected token YYTOKEN for the state stack whose top is
- YYSSP.
-
- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
- not large enough to hold the message. In that case, also set
- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
- required number of bytes is too large to store. */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
- yytype_int16 *yyssp, int yytoken)
-{
- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
- YYSIZE_T yysize = yysize0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = YY_NULLPTR;
- /* Arguments of yyformat. */
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Number of reported tokens (one for the "unexpected", one per
- "expected"). */
- int yycount = 0;
-
- /* There are many possibilities here to consider:
- - If this state is a consistent state with a default action, then
- the only way this function was invoked is if the default action
- is an error action. In that case, don't check for expected
- tokens because there are none.
- - The only way there can be no lookahead present (in yychar) is if
- this state is a consistent state with a default action. Thus,
- detecting the absence of a lookahead is sufficient to determine
- that there is no unexpected or expected token to report. In that
- case, just report a simple "syntax error".
- - Don't assume there isn't a lookahead just because this state is a
- consistent state with a default action. There might have been a
- previous inconsistent state, consistent state with a non-default
- action, or user semantic action that manipulated yychar.
- - Of course, the expected token list depends on states to have
- correct lookahead information, and it depends on the parser not
- to perform extra reductions after fetching a lookahead from the
- scanner and before detecting a syntax error. Thus, state merging
- (from LALR or IELR) and default reductions corrupt the expected
- token list. However, the list is correct for canonical LR with
- one exception: it will still contain any token that will not be
- accepted due to an error action in a later state.
- */
- if (yytoken != YYEMPTY)
- {
- int yyn = yypact[*yyssp];
- yyarg[yycount++] = yytname[yytoken];
- if (!yypact_value_is_default (yyn))
- {
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. In other words, skip the first -YYN actions for
- this state because they are default actions. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yyx;
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
- && !yytable_value_is_error (yytable[yyx + yyn]))
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- {
- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
- if (! (yysize <= yysize1
- && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
- return 2;
- yysize = yysize1;
- }
- }
- }
- }
-
- switch (yycount)
- {
-# define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- YYCASE_(0, YY_("syntax error"));
- YYCASE_(1, YY_("syntax error, unexpected %s"));
- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
- }
-
- {
- YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
- return 2;
- yysize = yysize1;
- }
-
- if (*yymsg_alloc < yysize)
- {
- *yymsg_alloc = 2 * yysize;
- if (! (yysize <= *yymsg_alloc
- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
- return 1;
- }
-
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- {
- char *yyp = *yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat) != '\0')
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- yyp++;
- yyformat++;
- }
- }
- return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-{
- YYUSE (yyvaluep);
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/* The lookahead symbol. */
-int yychar;
-
-/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval;
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-int
-yyparse (void)
-{
- int yystate;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-
- /* The stacks and their tools:
- 'yyss': related to states.
- 'yyvs': related to semantic values.
-
- Refer to the stacks through separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
-
- YYSIZE_T yystacksize;
-
- int yyn;
- int yyresult;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- yyssp = yyss = yyssa;
- yyvsp = yyvs = yyvsa;
- yystacksize = YYINITDEPTH;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
-
- if (yyss + yystacksize - 1 <= yyssp)
- {
- /* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
- if (yystate == YYFINAL)
- YYACCEPT;
-
- goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
-
- /* Do appropriate processing given the current state. Read a
- lookahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to lookahead token. */
- yyn = yypact[yystate];
- if (yypact_value_is_default (yyn))
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = yylex ();
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yytable_value_is_error (yyn))
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the lookahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* Discard the shifted token. */
- yychar = YYEMPTY;
-
- yystate = yyn;
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- *++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- '$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 2:
-#line 251 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Program -> Headers DefinitionList");
- if((g_program_doctext_candidate != NULL) && (g_program_doctext_status != ALREADY_PROCESSED))
- {
- g_program->set_doc(g_program_doctext_candidate);
- g_program_doctext_status = ALREADY_PROCESSED;
- }
- clear_doctext();
- }
-#line 1548 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 3:
-#line 262 "thrifty.yy" /* yacc.c:1646 */
- {
- if (g_parse_mode == PROGRAM) {
- (yyval.dtext) = g_doctext;
- g_doctext = NULL;
- } else {
- (yyval.dtext) = NULL;
- }
- }
-#line 1561 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 4:
-#line 273 "thrifty.yy" /* yacc.c:1646 */
- {
- if (g_parse_mode == PROGRAM) {
- clear_doctext();
- }
- }
-#line 1571 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 5:
-#line 283 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("HeaderList -> HeaderList Header");
- }
-#line 1579 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 6:
-#line 287 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("HeaderList -> ");
- }
-#line 1587 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 7:
-#line 293 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Header -> Include");
- }
-#line 1595 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 8:
-#line 297 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Header -> tok_namespace tok_identifier tok_identifier");
- declare_valid_program_doctext();
- if (g_parse_mode == PROGRAM) {
- g_program->set_namespace((yyvsp[-2].id), (yyvsp[-1].id));
- }
- if ((yyvsp[0].ttype) != NULL) {
- g_program->set_namespace_annotations((yyvsp[-2].id), (yyvsp[0].ttype)->annotations_);
- delete (yyvsp[0].ttype);
- }
- }
-#line 1611 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 9:
-#line 309 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Header -> tok_namespace * tok_identifier");
- declare_valid_program_doctext();
- if (g_parse_mode == PROGRAM) {
- g_program->set_namespace("*", (yyvsp[0].id));
- }
- }
-#line 1623 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 10:
-#line 317 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Header -> tok_cpp_include tok_literal");
- declare_valid_program_doctext();
- if (g_parse_mode == PROGRAM) {
- g_program->add_cpp_include((yyvsp[0].id));
- }
- }
-#line 1635 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 11:
-#line 327 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Include -> tok_include tok_literal");
- declare_valid_program_doctext();
- if (g_parse_mode == INCLUDES) {
- std::string path = include_file(std::string((yyvsp[0].id)));
- if (!path.empty()) {
- g_program->add_include(path, std::string((yyvsp[0].id)));
- }
- }
- }
-#line 1650 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 12:
-#line 340 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("DefinitionList -> DefinitionList Definition");
- if ((yyvsp[-1].dtext) != NULL && (yyvsp[0].tdoc) != NULL) {
- (yyvsp[0].tdoc)->set_doc((yyvsp[-1].dtext));
- }
- }
-#line 1661 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 13:
-#line 347 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("DefinitionList -> ");
- }
-#line 1669 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 14:
-#line 353 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Definition -> Const");
- if (g_parse_mode == PROGRAM) {
- g_program->add_const((yyvsp[0].tconst));
- }
- (yyval.tdoc) = (yyvsp[0].tconst);
- }
-#line 1681 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 15:
-#line 361 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Definition -> TypeDefinition");
- if (g_parse_mode == PROGRAM) {
- g_scope->add_type((yyvsp[0].ttype)->get_name(), (yyvsp[0].ttype));
- if (g_parent_scope != NULL) {
- g_parent_scope->add_type(g_parent_prefix + (yyvsp[0].ttype)->get_name(), (yyvsp[0].ttype));
- }
- if (! g_program->is_unique_typename((yyvsp[0].ttype))) {
- yyerror("Type \"%s\" is already defined.", (yyvsp[0].ttype)->get_name().c_str());
- exit(1);
- }
- }
- (yyval.tdoc) = (yyvsp[0].ttype);
- }
-#line 1700 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 16:
-#line 376 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Definition -> Service");
- if (g_parse_mode == PROGRAM) {
- g_scope->add_service((yyvsp[0].tservice)->get_name(), (yyvsp[0].tservice));
- if (g_parent_scope != NULL) {
- g_parent_scope->add_service(g_parent_prefix + (yyvsp[0].tservice)->get_name(), (yyvsp[0].tservice));
- }
- g_program->add_service((yyvsp[0].tservice));
- if (! g_program->is_unique_typename((yyvsp[0].tservice))) {
- yyerror("Type \"%s\" is already defined.", (yyvsp[0].tservice)->get_name().c_str());
- exit(1);
- }
- }
- (yyval.tdoc) = (yyvsp[0].tservice);
- }
-#line 1720 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 17:
-#line 394 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeDefinition -> Typedef");
- if (g_parse_mode == PROGRAM) {
- g_program->add_typedef((yyvsp[0].ttypedef));
- }
- }
-#line 1731 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 18:
-#line 401 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeDefinition -> Enum");
- if (g_parse_mode == PROGRAM) {
- g_program->add_enum((yyvsp[0].tenum));
- }
- }
-#line 1742 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 19:
-#line 408 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeDefinition -> Senum");
- if (g_parse_mode == PROGRAM) {
- g_program->add_typedef((yyvsp[0].ttypedef));
- }
- }
-#line 1753 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 20:
-#line 415 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeDefinition -> Struct");
- if (g_parse_mode == PROGRAM) {
- g_program->add_struct((yyvsp[0].tstruct));
- }
- }
-#line 1764 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 21:
-#line 422 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeDefinition -> Xception");
- if (g_parse_mode == PROGRAM) {
- g_program->add_xception((yyvsp[0].tstruct));
- }
- }
-#line 1775 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 22:
-#line 431 "thrifty.yy" /* yacc.c:1646 */
- {}
-#line 1781 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 23:
-#line 433 "thrifty.yy" /* yacc.c:1646 */
- {}
-#line 1787 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 24:
-#line 435 "thrifty.yy" /* yacc.c:1646 */
- {}
-#line 1793 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 25:
-#line 439 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeDef -> tok_typedef FieldType tok_identifier");
- validate_simple_identifier( (yyvsp[-2].id));
- t_typedef *td = new t_typedef(g_program, (yyvsp[-3].ttype), (yyvsp[-2].id));
- (yyval.ttypedef) = td;
- if ((yyvsp[-1].ttype) != NULL) {
- (yyval.ttypedef)->annotations_ = (yyvsp[-1].ttype)->annotations_;
- delete (yyvsp[-1].ttype);
- }
- }
-#line 1808 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 26:
-#line 452 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Enum -> tok_enum tok_identifier { EnumDefList }");
- (yyval.tenum) = (yyvsp[-2].tenum);
- validate_simple_identifier( (yyvsp[-4].id));
- (yyval.tenum)->set_name((yyvsp[-4].id));
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.tenum)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- }
-
- // make constants for all the enum values
- if (g_parse_mode == PROGRAM) {
- const std::vector<t_enum_value*>& enum_values = (yyval.tenum)->get_constants();
- std::vector<t_enum_value*>::const_iterator c_iter;
- for (c_iter = enum_values.begin(); c_iter != enum_values.end(); ++c_iter) {
- std::string const_name = (yyval.tenum)->get_name() + "." + (*c_iter)->get_name();
- t_const_value* const_val = new t_const_value((*c_iter)->get_value());
- const_val->set_enum((yyval.tenum));
- g_scope->add_constant(const_name, new t_const(g_type_i32, (*c_iter)->get_name(), const_val));
- if (g_parent_scope != NULL) {
- g_parent_scope->add_constant(g_parent_prefix + const_name, new t_const(g_type_i32, (*c_iter)->get_name(), const_val));
- }
- }
- }
- }
-#line 1838 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 27:
-#line 480 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("EnumDefList -> EnumDefList EnumDef");
- (yyval.tenum) = (yyvsp[-1].tenum);
- (yyval.tenum)->append((yyvsp[0].tenumv));
- }
-#line 1848 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 28:
-#line 486 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("EnumDefList -> ");
- (yyval.tenum) = new t_enum(g_program);
- y_enum_val = -1;
- }
-#line 1858 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 29:
-#line 494 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("EnumDef -> EnumValue");
- (yyval.tenumv) = (yyvsp[-2].tenumv);
- if ((yyvsp[-3].dtext) != NULL) {
- (yyval.tenumv)->set_doc((yyvsp[-3].dtext));
- }
- if ((yyvsp[-1].ttype) != NULL) {
- (yyval.tenumv)->annotations_ = (yyvsp[-1].ttype)->annotations_;
- delete (yyvsp[-1].ttype);
- }
- }
-#line 1874 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 30:
-#line 508 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("EnumValue -> tok_identifier = tok_int_constant");
- if ((yyvsp[0].iconst) < INT32_MIN || (yyvsp[0].iconst) > INT32_MAX) {
- // Note: this used to be just a warning. However, since thrift always
- // treats enums as i32 values, I'm changing it to a fatal error.
- // I doubt this will affect many people, but users who run into this
- // will have to update their thrift files to manually specify the
- // truncated i32 value that thrift has always been using anyway.
- failure("64-bit value supplied for enum %s will be truncated.", (yyvsp[-2].id));
- }
- y_enum_val = static_cast<int32_t>((yyvsp[0].iconst));
- (yyval.tenumv) = new t_enum_value((yyvsp[-2].id), y_enum_val);
- }
-#line 1892 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 31:
-#line 523 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("EnumValue -> tok_identifier");
- validate_simple_identifier( (yyvsp[0].id));
- if (y_enum_val == INT32_MAX) {
- failure("enum value overflow at enum %s", (yyvsp[0].id));
- }
- ++y_enum_val;
- (yyval.tenumv) = new t_enum_value((yyvsp[0].id), y_enum_val);
- }
-#line 1906 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 32:
-#line 535 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Senum -> tok_senum tok_identifier { SenumDefList }");
- validate_simple_identifier( (yyvsp[-4].id));
- (yyval.ttypedef) = new t_typedef(g_program, (yyvsp[-2].tbase), (yyvsp[-4].id));
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.ttypedef)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- }
- }
-#line 1920 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 33:
-#line 547 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SenumDefList -> SenumDefList SenumDef");
- (yyval.tbase) = (yyvsp[-1].tbase);
- (yyval.tbase)->add_string_enum_val((yyvsp[0].id));
- }
-#line 1930 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 34:
-#line 553 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SenumDefList -> ");
- (yyval.tbase) = new t_base_type("string", t_base_type::TYPE_STRING);
- (yyval.tbase)->set_string_enum(true);
- }
-#line 1940 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 35:
-#line 561 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SenumDef -> tok_literal");
- (yyval.id) = (yyvsp[-1].id);
- }
-#line 1949 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 36:
-#line 568 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Const -> tok_const FieldType tok_identifier = ConstValue");
- if (g_parse_mode == PROGRAM) {
- validate_simple_identifier( (yyvsp[-3].id));
- g_scope->resolve_const_value((yyvsp[-1].tconstv), (yyvsp[-4].ttype));
- (yyval.tconst) = new t_const((yyvsp[-4].ttype), (yyvsp[-3].id), (yyvsp[-1].tconstv));
- validate_const_type((yyval.tconst));
-
- g_scope->add_constant((yyvsp[-3].id), (yyval.tconst));
- if (g_parent_scope != NULL) {
- g_parent_scope->add_constant(g_parent_prefix + (yyvsp[-3].id), (yyval.tconst));
- }
- } else {
- (yyval.tconst) = NULL;
- }
- }
-#line 1970 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 37:
-#line 587 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstValue => tok_int_constant");
- (yyval.tconstv) = new t_const_value();
- (yyval.tconstv)->set_integer((yyvsp[0].iconst));
- if (!g_allow_64bit_consts && ((yyvsp[0].iconst) < INT32_MIN || (yyvsp[0].iconst) > INT32_MAX)) {
- pwarning(1, "64-bit constant \"%" PRIi64"\" may not work in all languages.\n", (yyvsp[0].iconst));
- }
- }
-#line 1983 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 38:
-#line 596 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstValue => tok_dub_constant");
- (yyval.tconstv) = new t_const_value();
- (yyval.tconstv)->set_double((yyvsp[0].dconst));
- }
-#line 1993 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 39:
-#line 602 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstValue => tok_literal");
- (yyval.tconstv) = new t_const_value((yyvsp[0].id));
- }
-#line 2002 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 40:
-#line 607 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstValue => tok_identifier");
- (yyval.tconstv) = new t_const_value();
- (yyval.tconstv)->set_identifier((yyvsp[0].id));
- }
-#line 2012 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 41:
-#line 613 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstValue => ConstList");
- (yyval.tconstv) = (yyvsp[0].tconstv);
- }
-#line 2021 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 42:
-#line 618 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstValue => ConstMap");
- (yyval.tconstv) = (yyvsp[0].tconstv);
- }
-#line 2030 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 43:
-#line 625 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstList => [ ConstListContents ]");
- (yyval.tconstv) = (yyvsp[-1].tconstv);
- }
-#line 2039 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 44:
-#line 632 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstListContents => ConstListContents ConstValue CommaOrSemicolonOptional");
- (yyval.tconstv) = (yyvsp[-2].tconstv);
- (yyval.tconstv)->add_list((yyvsp[-1].tconstv));
- }
-#line 2049 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 45:
-#line 638 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstListContents =>");
- (yyval.tconstv) = new t_const_value();
- (yyval.tconstv)->set_list();
- }
-#line 2059 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 46:
-#line 646 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstMap => { ConstMapContents }");
- (yyval.tconstv) = (yyvsp[-1].tconstv);
- }
-#line 2068 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 47:
-#line 653 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstMapContents => ConstMapContents ConstValue CommaOrSemicolonOptional");
- (yyval.tconstv) = (yyvsp[-4].tconstv);
- (yyval.tconstv)->add_map((yyvsp[-3].tconstv), (yyvsp[-1].tconstv));
- }
-#line 2078 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 48:
-#line 659 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ConstMapContents =>");
- (yyval.tconstv) = new t_const_value();
- (yyval.tconstv)->set_map();
- }
-#line 2088 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 49:
-#line 667 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.iconst) = struct_is_struct;
- }
-#line 2096 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 50:
-#line 671 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.iconst) = struct_is_union;
- }
-#line 2104 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 51:
-#line 677 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Struct -> tok_struct tok_identifier { FieldList }");
- validate_simple_identifier( (yyvsp[-5].id));
- (yyvsp[-2].tstruct)->set_xsd_all((yyvsp[-4].tbool));
- (yyvsp[-2].tstruct)->set_union((yyvsp[-6].iconst) == struct_is_union);
- (yyval.tstruct) = (yyvsp[-2].tstruct);
- (yyval.tstruct)->set_name((yyvsp[-5].id));
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.tstruct)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- }
- }
-#line 2121 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 52:
-#line 692 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = true;
- }
-#line 2129 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 53:
-#line 696 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = false;
- }
-#line 2137 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 54:
-#line 702 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = true;
- }
-#line 2145 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 55:
-#line 706 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = false;
- }
-#line 2153 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 56:
-#line 712 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = true;
- }
-#line 2161 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 57:
-#line 716 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = false;
- }
-#line 2169 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 58:
-#line 722 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tstruct) = (yyvsp[-1].tstruct);
- }
-#line 2177 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 59:
-#line 726 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tstruct) = NULL;
- }
-#line 2185 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 60:
-#line 732 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Xception -> tok_xception tok_identifier { FieldList }");
- validate_simple_identifier( (yyvsp[-4].id));
- (yyvsp[-2].tstruct)->set_name((yyvsp[-4].id));
- (yyvsp[-2].tstruct)->set_xception(true);
- (yyval.tstruct) = (yyvsp[-2].tstruct);
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.tstruct)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- }
- }
-#line 2201 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 61:
-#line 746 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Service -> tok_service tok_identifier { FunctionList }");
- validate_simple_identifier( (yyvsp[-7].id));
- (yyval.tservice) = (yyvsp[-3].tservice);
- (yyval.tservice)->set_name((yyvsp[-7].id));
- (yyval.tservice)->set_extends((yyvsp[-6].tservice));
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.tservice)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- }
- }
-#line 2217 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 62:
-#line 759 "thrifty.yy" /* yacc.c:1646 */
- {
- g_arglist = 1;
- }
-#line 2225 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 63:
-#line 764 "thrifty.yy" /* yacc.c:1646 */
- {
- g_arglist = 0;
- }
-#line 2233 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 64:
-#line 770 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Extends -> tok_extends tok_identifier");
- (yyval.tservice) = NULL;
- if (g_parse_mode == PROGRAM) {
- (yyval.tservice) = g_scope->get_service((yyvsp[0].id));
- if ((yyval.tservice) == NULL) {
- yyerror("Service \"%s\" has not been defined.", (yyvsp[0].id));
- exit(1);
- }
- }
- }
-#line 2249 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 65:
-#line 782 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tservice) = NULL;
- }
-#line 2257 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 66:
-#line 788 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FunctionList -> FunctionList Function");
- (yyval.tservice) = (yyvsp[-1].tservice);
- (yyvsp[-1].tservice)->add_function((yyvsp[0].tfunction));
- }
-#line 2267 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 67:
-#line 794 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FunctionList -> ");
- (yyval.tservice) = new t_service(g_program);
- }
-#line 2276 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 68:
-#line 801 "thrifty.yy" /* yacc.c:1646 */
- {
- validate_simple_identifier( (yyvsp[-6].id));
- (yyvsp[-4].tstruct)->set_name(std::string((yyvsp[-6].id)) + "_args");
- (yyval.tfunction) = new t_function((yyvsp[-7].ttype), (yyvsp[-6].id), (yyvsp[-4].tstruct), (yyvsp[-2].tstruct), (yyvsp[-8].tbool));
- if ((yyvsp[-9].dtext) != NULL) {
- (yyval.tfunction)->set_doc((yyvsp[-9].dtext));
- }
- if ((yyvsp[-1].ttype) != NULL) {
- (yyval.tfunction)->annotations_ = (yyvsp[-1].ttype)->annotations_;
- delete (yyvsp[-1].ttype);
- }
- }
-#line 2293 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 69:
-#line 816 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = true;
- }
-#line 2301 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 70:
-#line 820 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = false;
- }
-#line 2309 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 71:
-#line 826 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("Throws -> tok_throws ( FieldList )");
- (yyval.tstruct) = (yyvsp[-1].tstruct);
- if (g_parse_mode == PROGRAM && !validate_throws((yyval.tstruct))) {
- yyerror("Throws clause may not contain non-exception types");
- exit(1);
- }
- }
-#line 2322 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 72:
-#line 835 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tstruct) = new t_struct(g_program);
- }
-#line 2330 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 73:
-#line 841 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FieldList -> FieldList , Field");
- (yyval.tstruct) = (yyvsp[-1].tstruct);
- if (!((yyval.tstruct)->append((yyvsp[0].tfield)))) {
- yyerror("\"%d: %s\" - field identifier/name has already been used", (yyvsp[0].tfield)->get_key(), (yyvsp[0].tfield)->get_name().c_str());
- exit(1);
- }
- }
-#line 2343 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 74:
-#line 850 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FieldList -> ");
- y_field_val = -1;
- (yyval.tstruct) = new t_struct(g_program);
- }
-#line 2353 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 75:
-#line 858 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("tok_int_constant : Field -> FieldType tok_identifier");
- if ((yyvsp[-10].tfieldid).auto_assigned) {
- pwarning(1, "No field key specified for %s, resulting protocol may have conflicts or not be backwards compatible!\n", (yyvsp[-6].id));
- if (g_strict >= 192) {
- yyerror("Implicit field keys are deprecated and not allowed with -strict");
- exit(1);
- }
- }
- validate_simple_identifier((yyvsp[-6].id));
- (yyval.tfield) = new t_field((yyvsp[-8].ttype), (yyvsp[-6].id), (yyvsp[-10].tfieldid).value);
- (yyval.tfield)->set_reference((yyvsp[-7].tbool));
- (yyval.tfield)->set_req((yyvsp[-9].ereq));
- if ((yyvsp[-5].tconstv) != NULL) {
- g_scope->resolve_const_value((yyvsp[-5].tconstv), (yyvsp[-8].ttype));
- validate_field_value((yyval.tfield), (yyvsp[-5].tconstv));
- (yyval.tfield)->set_value((yyvsp[-5].tconstv));
- }
- (yyval.tfield)->set_xsd_optional((yyvsp[-4].tbool));
- (yyval.tfield)->set_xsd_nillable((yyvsp[-3].tbool));
- if ((yyvsp[-11].dtext) != NULL) {
- (yyval.tfield)->set_doc((yyvsp[-11].dtext));
- }
- if ((yyvsp[-2].tstruct) != NULL) {
- (yyval.tfield)->set_xsd_attrs((yyvsp[-2].tstruct));
- }
- if ((yyvsp[-1].ttype) != NULL) {
- (yyval.tfield)->annotations_ = (yyvsp[-1].ttype)->annotations_;
- delete (yyvsp[-1].ttype);
- }
- }
-#line 2389 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 76:
-#line 892 "thrifty.yy" /* yacc.c:1646 */
- {
- if ((yyvsp[-1].iconst) <= 0) {
- if (g_allow_neg_field_keys) {
- /*
- * g_allow_neg_field_keys exists to allow users to add explicitly
- * specified key values to old .thrift files without breaking
- * protocol compatibility.
- */
- if ((yyvsp[-1].iconst) != y_field_val) {
- /*
- * warn if the user-specified negative value isn't what
- * thrift would have auto-assigned.
- */
- pwarning(1, "Nonpositive field key (%" PRIi64") differs from what would be "
- "auto-assigned by thrift (%d).\n", (yyvsp[-1].iconst), y_field_val);
- }
- /*
- * Leave $1 as-is, and update y_field_val to be one less than $1.
- * The FieldList parsing will catch any duplicate key values.
- */
- y_field_val = static_cast<int32_t>((yyvsp[-1].iconst) - 1);
- (yyval.tfieldid).value = static_cast<int32_t>((yyvsp[-1].iconst));
- (yyval.tfieldid).auto_assigned = false;
- } else {
- pwarning(1, "Nonpositive value (%d) not allowed as a field key.\n",
- (yyvsp[-1].iconst));
- (yyval.tfieldid).value = y_field_val--;
- (yyval.tfieldid).auto_assigned = true;
- }
- } else {
- (yyval.tfieldid).value = static_cast<int32_t>((yyvsp[-1].iconst));
- (yyval.tfieldid).auto_assigned = false;
- }
- if( (SHRT_MIN > (yyval.tfieldid).value) || ((yyval.tfieldid).value > SHRT_MAX)) {
- pwarning(1, "Field key (%d) exceeds allowed range (%d..%d).\n",
- (yyval.tfieldid).value, SHRT_MIN, SHRT_MAX);
- }
- }
-#line 2432 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 77:
-#line 931 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tfieldid).value = y_field_val--;
- (yyval.tfieldid).auto_assigned = true;
- if( (SHRT_MIN > (yyval.tfieldid).value) || ((yyval.tfieldid).value > SHRT_MAX)) {
- pwarning(1, "Field key (%d) exceeds allowed range (%d..%d).\n",
- (yyval.tfieldid).value, SHRT_MIN, SHRT_MAX);
- }
- }
-#line 2445 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 78:
-#line 942 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = true;
- }
-#line 2453 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 79:
-#line 946 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tbool) = false;
- }
-#line 2461 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 80:
-#line 952 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.ereq) = t_field::T_REQUIRED;
- }
-#line 2469 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 81:
-#line 956 "thrifty.yy" /* yacc.c:1646 */
- {
- if (g_arglist) {
- if (g_parse_mode == PROGRAM) {
- pwarning(1, "optional keyword is ignored in argument lists.\n");
- }
- (yyval.ereq) = t_field::T_OPT_IN_REQ_OUT;
- } else {
- (yyval.ereq) = t_field::T_OPTIONAL;
- }
- }
-#line 2484 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 82:
-#line 967 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.ereq) = t_field::T_OPT_IN_REQ_OUT;
- }
-#line 2492 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 83:
-#line 973 "thrifty.yy" /* yacc.c:1646 */
- {
- if (g_parse_mode == PROGRAM) {
- (yyval.tconstv) = (yyvsp[0].tconstv);
- } else {
- (yyval.tconstv) = NULL;
- }
- }
-#line 2504 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 84:
-#line 981 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.tconstv) = NULL;
- }
-#line 2512 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 85:
-#line 987 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FunctionType -> FieldType");
- (yyval.ttype) = (yyvsp[0].ttype);
- }
-#line 2521 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 86:
-#line 992 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FunctionType -> tok_void");
- (yyval.ttype) = g_type_void;
- }
-#line 2530 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 87:
-#line 999 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FieldType -> tok_identifier");
- if (g_parse_mode == INCLUDES) {
- // Ignore identifiers in include mode
- (yyval.ttype) = NULL;
- } else {
- // Lookup the identifier in the current scope
- (yyval.ttype) = g_scope->get_type((yyvsp[0].id));
- if ((yyval.ttype) == NULL) {
- /*
- * Either this type isn't yet declared, or it's never
- declared. Either way allow it and we'll figure it out
- during generation.
- */
- (yyval.ttype) = new t_typedef(g_program, (yyvsp[0].id), true);
- }
- }
- }
-#line 2553 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 88:
-#line 1018 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FieldType -> BaseType");
- (yyval.ttype) = (yyvsp[0].ttype);
- }
-#line 2562 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 89:
-#line 1023 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("FieldType -> ContainerType");
- (yyval.ttype) = (yyvsp[0].ttype);
- }
-#line 2571 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 90:
-#line 1029 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> SimpleBaseType TypeAnnotations");
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.ttype) = new t_base_type(*static_cast<t_base_type*>((yyvsp[-1].ttype)));
- (yyval.ttype)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- } else {
- (yyval.ttype) = (yyvsp[-1].ttype);
- }
- }
-#line 2586 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 91:
-#line 1042 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_string");
- (yyval.ttype) = g_type_string;
- }
-#line 2595 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 92:
-#line 1047 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_binary");
- (yyval.ttype) = g_type_binary;
- }
-#line 2604 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 93:
-#line 1052 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_slist");
- (yyval.ttype) = g_type_slist;
- }
-#line 2613 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 94:
-#line 1057 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_bool");
- (yyval.ttype) = g_type_bool;
- }
-#line 2622 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 95:
-#line 1062 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_i8");
- (yyval.ttype) = g_type_i8;
- }
-#line 2631 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 96:
-#line 1067 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_i16");
- (yyval.ttype) = g_type_i16;
- }
-#line 2640 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 97:
-#line 1072 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_i32");
- (yyval.ttype) = g_type_i32;
- }
-#line 2649 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 98:
-#line 1077 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_i64");
- (yyval.ttype) = g_type_i64;
- }
-#line 2658 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 99:
-#line 1082 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("BaseType -> tok_double");
- (yyval.ttype) = g_type_double;
- }
-#line 2667 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 100:
-#line 1088 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ContainerType -> SimpleContainerType TypeAnnotations");
- (yyval.ttype) = (yyvsp[-1].ttype);
- if ((yyvsp[0].ttype) != NULL) {
- (yyval.ttype)->annotations_ = (yyvsp[0].ttype)->annotations_;
- delete (yyvsp[0].ttype);
- }
- }
-#line 2680 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 101:
-#line 1099 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SimpleContainerType -> MapType");
- (yyval.ttype) = (yyvsp[0].ttype);
- }
-#line 2689 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 102:
-#line 1104 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SimpleContainerType -> SetType");
- (yyval.ttype) = (yyvsp[0].ttype);
- }
-#line 2698 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 103:
-#line 1109 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SimpleContainerType -> ListType");
- (yyval.ttype) = (yyvsp[0].ttype);
- }
-#line 2707 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 104:
-#line 1116 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("MapType -> tok_map <FieldType, FieldType>");
- (yyval.ttype) = new t_map((yyvsp[-3].ttype), (yyvsp[-1].ttype));
- if ((yyvsp[-5].id) != NULL) {
- ((t_container*)(yyval.ttype))->set_cpp_name(std::string((yyvsp[-5].id)));
- }
- }
-#line 2719 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 105:
-#line 1126 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("SetType -> tok_set<FieldType>");
- (yyval.ttype) = new t_set((yyvsp[-1].ttype));
- if ((yyvsp[-3].id) != NULL) {
- ((t_container*)(yyval.ttype))->set_cpp_name(std::string((yyvsp[-3].id)));
- }
- }
-#line 2731 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 106:
-#line 1136 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("ListType -> tok_list<FieldType>");
- check_for_list_of_bytes((yyvsp[-2].ttype));
- (yyval.ttype) = new t_list((yyvsp[-2].ttype));
- if ((yyvsp[0].id) != NULL) {
- ((t_container*)(yyval.ttype))->set_cpp_name(std::string((yyvsp[0].id)));
- }
- }
-#line 2744 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 107:
-#line 1147 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.id) = (yyvsp[0].id);
- }
-#line 2752 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 108:
-#line 1151 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.id) = NULL;
- }
-#line 2760 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 109:
-#line 1157 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeAnnotations -> ( TypeAnnotationList )");
- (yyval.ttype) = (yyvsp[-1].ttype);
- }
-#line 2769 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 110:
-#line 1162 "thrifty.yy" /* yacc.c:1646 */
- {
- (yyval.ttype) = NULL;
- }
-#line 2777 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 111:
-#line 1168 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeAnnotationList -> TypeAnnotationList , TypeAnnotation");
- (yyval.ttype) = (yyvsp[-1].ttype);
- (yyval.ttype)->annotations_[(yyvsp[0].tannot)->key] = (yyvsp[0].tannot)->val;
- delete (yyvsp[0].tannot);
- }
-#line 2788 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 112:
-#line 1175 "thrifty.yy" /* yacc.c:1646 */
- {
- /* Just use a dummy structure to hold the annotations. */
- (yyval.ttype) = new t_struct(g_program);
- }
-#line 2797 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 113:
-#line 1182 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeAnnotation -> TypeAnnotationValue");
- (yyval.tannot) = new t_annotation;
- (yyval.tannot)->key = (yyvsp[-2].id);
- (yyval.tannot)->val = (yyvsp[-1].id);
- }
-#line 2808 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 114:
-#line 1191 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeAnnotationValue -> = tok_literal");
- (yyval.id) = (yyvsp[0].id);
- }
-#line 2817 "thrifty.cc" /* yacc.c:1646 */
- break;
-
- case 115:
-#line 1196 "thrifty.yy" /* yacc.c:1646 */
- {
- pdebug("TypeAnnotationValue ->");
- (yyval.id) = strdup("1");
- }
-#line 2826 "thrifty.cc" /* yacc.c:1646 */
- break;
-
-
-#line 2830 "thrifty.cc" /* yacc.c:1646 */
- default: break;
- }
- /* User semantic actions sometimes alter yychar, and that requires
- that yytoken be updated with the new translation. We take the
- approach of translating immediately before every use of yytoken.
- One alternative is translating here after every semantic action,
- but that translation would be missed if the semantic action invokes
- YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
- if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
- incorrect destructor might then be invoked immediately. In the
- case of YYERROR or YYBACKUP, subsequent parser actions might lead
- to an incorrect destructor call or verbose syntax error message
- before the lookahead is translated. */
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
- /* Now 'shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
-
- goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error. |
-`--------------------------------------*/
-yyerrlab:
- /* Make sure we have latest lookahead translation. See comments at
- user semantic actions for why this is necessary. */
- yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
- yyssp, yytoken)
- {
- char const *yymsgp = YY_("syntax error");
- int yysyntax_error_status;
- yysyntax_error_status = YYSYNTAX_ERROR;
- if (yysyntax_error_status == 0)
- yymsgp = yymsg;
- else if (yysyntax_error_status == 1)
- {
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
- if (!yymsg)
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- yysyntax_error_status = 2;
- }
- else
- {
- yysyntax_error_status = YYSYNTAX_ERROR;
- yymsgp = yymsg;
- }
- }
- yyerror (yymsgp);
- if (yysyntax_error_status == 2)
- goto yyexhaustedlab;
- }
-# undef YYSYNTAX_ERROR
-#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse lookahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
-
- /* Do not reclaim the symbols of the rule whose action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (!yypact_value_is_default (yyn))
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- *++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEMPTY)
- {
- /* Make sure we have latest lookahead translation. See comments at
- user semantic actions for why this is necessary. */
- yytoken = YYTRANSLATE (yychar);
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- }
- /* Do not reclaim the symbols of the rule whose action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK (1);
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- return yyresult;
-}
-#line 1201 "thrifty.yy" /* yacc.c:1906 */
-
+/* A Bison parser, made by GNU Bison 3.0.4. */
+
+/* Bison implementation for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "3.0.4"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 1
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 4 "thrifty.yy" /* yacc.c:339 */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Thrift parser.
+ *
+ * This parser is used on a thrift definition file.
+ *
+ */
+
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS
+#endif
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif
+#include <stdio.h>
+#include <string.h>
+#ifndef _MSC_VER
+#include <inttypes.h>
+#else
+#include <stdint.h>
+#endif
+#include <limits.h>
+#ifdef _MSC_VER
+#include "thrift/windows/config.h"
+#endif
+#include "thrift/main.h"
+#include "thrift/common.h"
+#include "thrift/globals.h"
+#include "thrift/parse/t_program.h"
+#include "thrift/parse/t_scope.h"
+
+#ifdef _MSC_VER
+//warning C4065: switch statement contains 'default' but no 'case' labels
+#pragma warning(disable:4065)
+#endif
+
+/**
+ * This global variable is used for automatic numbering of field indices etc.
+ * when parsing the members of a struct. Field values are automatically
+ * assigned starting from -1 and working their way down.
+ */
+int y_field_val = -1;
+/**
+ * This global variable is used for automatic numbering of enum values.
+ * y_enum_val is the last value assigned; the next auto-assigned value will be
+ * y_enum_val+1, and then it continues working upwards. Explicitly specified
+ * enum values reset y_enum_val to that value.
+ */
+int32_t y_enum_val = -1;
+int g_arglist = 0;
+const int struct_is_struct = 0;
+const int struct_is_union = 1;
+
+
+#line 140 "thrifty.cc" /* yacc.c:339 */
+
+# ifndef YY_NULLPTR
+# if defined __cplusplus && 201103L <= __cplusplus
+# define YY_NULLPTR nullptr
+# else
+# define YY_NULLPTR 0
+# endif
+# endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* In a future release of Bison, this section will be replaced
+ by #include "thrifty.hh". */
+#ifndef YY_YY_THRIFTY_HH_INCLUDED
+# define YY_YY_THRIFTY_HH_INCLUDED
+/* Debug traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+/* "%code requires" blocks. */
+#line 1 "thrifty.yy" /* yacc.c:355 */
+
+#include "thrift/parse/t_program.h"
+
+#line 174 "thrifty.cc" /* yacc.c:355 */
+
+/* Token type. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ enum yytokentype
+ {
+ tok_identifier = 258,
+ tok_literal = 259,
+ tok_doctext = 260,
+ tok_int_constant = 261,
+ tok_dub_constant = 262,
+ tok_include = 263,
+ tok_namespace = 264,
+ tok_cpp_include = 265,
+ tok_cpp_type = 266,
+ tok_xsd_all = 267,
+ tok_xsd_optional = 268,
+ tok_xsd_nillable = 269,
+ tok_xsd_attrs = 270,
+ tok_void = 271,
+ tok_bool = 272,
+ tok_string = 273,
+ tok_binary = 274,
+ tok_slist = 275,
+ tok_senum = 276,
+ tok_i8 = 277,
+ tok_i16 = 278,
+ tok_i32 = 279,
+ tok_i64 = 280,
+ tok_double = 281,
+ tok_map = 282,
+ tok_list = 283,
+ tok_set = 284,
+ tok_oneway = 285,
+ tok_typedef = 286,
+ tok_struct = 287,
+ tok_xception = 288,
+ tok_throws = 289,
+ tok_extends = 290,
+ tok_service = 291,
+ tok_enum = 292,
+ tok_const = 293,
+ tok_required = 294,
+ tok_optional = 295,
+ tok_union = 296,
+ tok_reference = 297
+ };
+#endif
+/* Tokens. */
+#define tok_identifier 258
+#define tok_literal 259
+#define tok_doctext 260
+#define tok_int_constant 261
+#define tok_dub_constant 262
+#define tok_include 263
+#define tok_namespace 264
+#define tok_cpp_include 265
+#define tok_cpp_type 266
+#define tok_xsd_all 267
+#define tok_xsd_optional 268
+#define tok_xsd_nillable 269
+#define tok_xsd_attrs 270
+#define tok_void 271
+#define tok_bool 272
+#define tok_string 273
+#define tok_binary 274
+#define tok_slist 275
+#define tok_senum 276
+#define tok_i8 277
+#define tok_i16 278
+#define tok_i32 279
+#define tok_i64 280
+#define tok_double 281
+#define tok_map 282
+#define tok_list 283
+#define tok_set 284
+#define tok_oneway 285
+#define tok_typedef 286
+#define tok_struct 287
+#define tok_xception 288
+#define tok_throws 289
+#define tok_extends 290
+#define tok_service 291
+#define tok_enum 292
+#define tok_const 293
+#define tok_required 294
+#define tok_optional 295
+#define tok_union 296
+#define tok_reference 297
+
+/* Value type. */
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+
+union YYSTYPE
+{
+#line 82 "thrifty.yy" /* yacc.c:355 */
+
+ char* id;
+ int64_t iconst;
+ double dconst;
+ bool tbool;
+ t_doc* tdoc;
+ t_type* ttype;
+ t_base_type* tbase;
+ t_typedef* ttypedef;
+ t_enum* tenum;
+ t_enum_value* tenumv;
+ t_const* tconst;
+ t_const_value* tconstv;
+ t_struct* tstruct;
+ t_service* tservice;
+ t_function* tfunction;
+ t_field* tfield;
+ char* dtext;
+ t_field::e_req ereq;
+ t_annotation* tannot;
+ t_field_id tfieldid;
+
+#line 293 "thrifty.cc" /* yacc.c:355 */
+};
+
+typedef union YYSTYPE YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+extern YYSTYPE yylval;
+
+int yyparse (void);
+
+#endif /* !YY_YY_THRIFTY_HH_INCLUDED */
+
+/* Copy the second part of user declarations. */
+
+#line 310 "thrifty.cc" /* yacc.c:358 */
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#else
+typedef signed char yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(Msgid) Msgid
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__ \
+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+# else
+# define YY_ATTRIBUTE(Spec) /* empty */
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(E) ((void) (E))
+#else
+# define YYUSE(E) /* empty */
+#endif
+
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+ _Pragma ("GCC diagnostic pop")
+#else
+# define YY_INITIAL_VALUE(Value) Value
+#endif
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's 'empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined EXIT_SUCCESS
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined EXIT_SUCCESS
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+};
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(Dst, Src, Count) \
+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+# else
+# define YYCOPY(Dst, Src, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (Dst)[yyi] = (Src)[yyi]; \
+ } \
+ while (0)
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 3
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 173
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 56
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 60
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 115
+/* YYNSTATES -- Number of states. */
+#define YYNSTATES 200
+
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+ by yylex, with out-of-bounds checking. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 297
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+ as returned by yylex, without out-of-bounds checking. */
+static const yytype_uint8 yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 52, 53, 43, 2, 44, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 51, 45,
+ 54, 48, 55, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 49, 2, 50, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 46, 2, 47, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42
+};
+
+#if YYDEBUG
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+static const yytype_uint16 yyrline[] =
+{
+ 0, 250, 250, 262, 273, 282, 287, 292, 296, 308,
+ 316, 326, 339, 347, 352, 360, 375, 393, 400, 407,
+ 414, 421, 430, 432, 435, 438, 451, 479, 486, 493,
+ 507, 522, 534, 546, 553, 560, 567, 586, 595, 601,
+ 606, 612, 617, 624, 631, 638, 645, 652, 659, 666,
+ 670, 676, 691, 696, 701, 706, 711, 716, 721, 726,
+ 731, 745, 759, 764, 769, 782, 787, 794, 800, 815,
+ 820, 825, 835, 840, 850, 857, 891, 931, 941, 946,
+ 951, 955, 967, 972, 981, 986, 991, 998, 1017, 1022,
+ 1028, 1041, 1046, 1051, 1056, 1061, 1066, 1071, 1076, 1081,
+ 1087, 1098, 1103, 1108, 1115, 1125, 1135, 1146, 1151, 1156,
+ 1162, 1167, 1175, 1181, 1190, 1196
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || 0
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "tok_identifier", "tok_literal",
+ "tok_doctext", "tok_int_constant", "tok_dub_constant", "tok_include",
+ "tok_namespace", "tok_cpp_include", "tok_cpp_type", "tok_xsd_all",
+ "tok_xsd_optional", "tok_xsd_nillable", "tok_xsd_attrs", "tok_void",
+ "tok_bool", "tok_string", "tok_binary", "tok_slist", "tok_senum",
+ "tok_i8", "tok_i16", "tok_i32", "tok_i64", "tok_double", "tok_map",
+ "tok_list", "tok_set", "tok_oneway", "tok_typedef", "tok_struct",
+ "tok_xception", "tok_throws", "tok_extends", "tok_service", "tok_enum",
+ "tok_const", "tok_required", "tok_optional", "tok_union",
+ "tok_reference", "'*'", "','", "';'", "'{'", "'}'", "'='", "'['", "']'",
+ "':'", "'('", "')'", "'<'", "'>'", "$accept", "Program",
+ "CaptureDocText", "DestroyDocText", "HeaderList", "Header", "Include",
+ "DefinitionList", "Definition", "TypeDefinition",
+ "CommaOrSemicolonOptional", "Typedef", "Enum", "EnumDefList", "EnumDef",
+ "EnumValue", "Senum", "SenumDefList", "SenumDef", "Const", "ConstValue",
+ "ConstList", "ConstListContents", "ConstMap", "ConstMapContents",
+ "StructHead", "Struct", "XsdAll", "XsdOptional", "XsdNillable",
+ "XsdAttributes", "Xception", "Service", "FlagArgs", "UnflagArgs",
+ "Extends", "FunctionList", "Function", "Oneway", "Throws", "FieldList",
+ "Field", "FieldIdentifier", "FieldReference", "FieldRequiredness",
+ "FieldValue", "FunctionType", "FieldType", "BaseType", "SimpleBaseType",
+ "ContainerType", "SimpleContainerType", "MapType", "SetType", "ListType",
+ "CppType", "TypeAnnotations", "TypeAnnotationList", "TypeAnnotation",
+ "TypeAnnotationValue", YY_NULLPTR
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+ (internal) symbol number NUM (which must be that of a token). */
+static const yytype_uint16 yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 42, 44, 59, 123, 125, 61, 91,
+ 93, 58, 40, 41, 60, 62
+};
+# endif
+
+#define YYPACT_NINF -124
+
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-124)))
+
+#define YYTABLE_NINF -64
+
+#define yytable_value_is_error(Yytable_value) \
+ 0
+
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+static const yytype_int16 yypact[] =
+{
+ -124, 15, 9, -124, 26, 33, 35, 13, 36, -124,
+ -124, 132, -124, 39, 40, -124, 41, 123, -124, 42,
+ 45, 46, 123, -124, -124, -124, -124, -124, -124, -124,
+ 61, -124, -124, -124, 16, -124, 19, -124, -124, -124,
+ -124, -124, -124, -124, -124, -124, -124, 56, 18, 56,
+ 70, -124, 16, -124, 16, -124, -124, -124, 29, 43,
+ 30, 74, 68, -124, -124, -124, 77, 28, 123, 34,
+ 16, -124, -124, -124, 80, 38, -124, 44, -124, 48,
+ 7, 3, -124, 123, 32, 123, -23, 49, -124, -124,
+ 50, 25, -124, 47, -124, -124, -23, 16, -124, 55,
+ 56, 65, -124, -124, -124, 16, 84, -124, -124, 16,
+ 98, -124, -124, -124, -124, -124, -124, -124, -23, -124,
+ -124, 75, 117, -23, -124, -124, 123, -124, -124, -124,
+ 51, -2, 76, -124, 79, 16, 5, 20, -124, 16,
+ -124, -124, 78, -124, -124, -124, 123, 95, 82, -124,
+ 124, -23, -124, 81, -124, -23, -124, -124, 89, -124,
+ 90, 16, -124, -124, 25, -124, -124, 131, -124, 133,
+ -124, -124, -23, 87, 92, -124, 25, 141, -124, -124,
+ -124, 142, 102, -124, 143, 125, 111, 16, 108, 16,
+ -124, -23, -124, -23, 114, -124, 109, -124, -124, -124
+};
+
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
+static const yytype_uint8 yydefact[] =
+{
+ 6, 0, 13, 1, 0, 3, 0, 0, 0, 5,
+ 7, 0, 11, 0, 0, 10, 0, 0, 49, 0,
+ 0, 0, 0, 50, 12, 15, 17, 18, 19, 14,
+ 0, 20, 21, 16, 110, 9, 0, 87, 94, 91,
+ 92, 93, 95, 96, 97, 98, 99, 108, 0, 108,
+ 0, 88, 110, 89, 110, 101, 102, 103, 0, 65,
+ 0, 0, 53, 112, 8, 34, 0, 0, 0, 0,
+ 110, 90, 100, 74, 0, 0, 28, 0, 52, 0,
+ 0, 0, 107, 0, 0, 0, 24, 3, 64, 62,
+ 3, 0, 74, 115, 109, 111, 24, 110, 33, 0,
+ 108, 0, 22, 23, 25, 110, 77, 73, 67, 110,
+ 0, 27, 40, 39, 37, 38, 48, 45, 24, 41,
+ 42, 3, 0, 24, 35, 32, 0, 106, 105, 60,
+ 0, 82, 3, 26, 31, 110, 0, 0, 36, 110,
+ 114, 113, 0, 76, 80, 81, 0, 70, 0, 66,
+ 0, 24, 46, 0, 43, 24, 51, 104, 79, 69,
+ 0, 110, 30, 29, 0, 44, 78, 0, 86, 0,
+ 85, 61, 24, 84, 0, 47, 0, 55, 74, 83,
+ 54, 57, 3, 56, 59, 72, 0, 110, 0, 110,
+ 74, 24, 74, 24, 3, 75, 3, 68, 58, 71
+};
+
+ /* YYPGOTO[NTERM-NUM]. */
+static const yytype_int8 yypgoto[] =
+{
+ -124, -124, -4, -124, -124, -124, -124, -124, -124, -124,
+ -93, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+ -123, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+ -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+ -87, -124, -124, -124, -124, -124, -124, -22, -124, -124,
+ -124, -124, -124, -124, -124, -43, -50, -124, -124, -124
+};
+
+ /* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
+{
+ -1, 1, 106, 4, 2, 9, 10, 5, 24, 25,
+ 104, 26, 27, 90, 111, 135, 28, 81, 98, 29,
+ 118, 119, 137, 120, 136, 30, 31, 79, 181, 184,
+ 187, 32, 33, 108, 148, 75, 132, 149, 160, 189,
+ 87, 107, 131, 167, 146, 177, 169, 50, 51, 52,
+ 53, 54, 55, 56, 57, 67, 64, 80, 95, 123
+};
+
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
+static const yytype_int16 yytable[] =
+{
+ 61, 11, 71, 124, 72, 121, 69, 96, 112, 113,
+ 93, 114, 115, 153, 155, 3, 13, -4, -4, -4,
+ 86, 102, 103, 112, 113, 138, 114, 115, 112, 113,
+ 141, 114, 115, -2, 6, 7, 8, 144, 145, 12,
+ 15, 172, 34, 35, 36, 58, 84, 125, 59, 60,
+ 97, 116, 152, 179, 117, 129, 14, 127, 163, 133,
+ 94, 99, 165, 101, 62, 65, 116, 66, 63, 117,
+ 154, 116, 68, 70, 117, 73, 76, 77, 74, 175,
+ 78, 82, 83, 88, 89, 151, 110, 100, 85, 156,
+ 130, 182, 91, 37, 92, 122, 105, 109, 195, 126,
+ 197, 134, 143, 194, 142, 196, 168, 38, 39, 40,
+ 41, 171, 42, 43, 44, 45, 46, 47, 48, 49,
+ 128, 140, 139, -63, 158, 159, 37, 150, 147, 161,
+ 162, 166, 164, 157, 173, 176, 174, 191, 170, 193,
+ 38, 39, 40, 41, 178, 42, 43, 44, 45, 46,
+ 47, 48, 49, 16, 180, 185, 183, 190, 186, 188,
+ 192, 198, 199, 17, 18, 19, 0, 0, 20, 21,
+ 22, 0, 0, 23
+};
+
+static const yytype_int16 yycheck[] =
+{
+ 22, 5, 52, 96, 54, 92, 49, 4, 3, 4,
+ 3, 6, 7, 136, 137, 0, 3, 8, 9, 10,
+ 70, 44, 45, 3, 4, 118, 6, 7, 3, 4,
+ 123, 6, 7, 0, 8, 9, 10, 39, 40, 4,
+ 4, 164, 3, 3, 3, 3, 68, 97, 3, 3,
+ 47, 46, 47, 176, 49, 105, 43, 100, 151, 109,
+ 53, 83, 155, 85, 3, 46, 46, 11, 52, 49,
+ 50, 46, 54, 3, 49, 46, 46, 3, 35, 172,
+ 12, 4, 54, 3, 46, 135, 90, 55, 54, 139,
+ 6, 178, 48, 3, 46, 48, 47, 47, 191, 44,
+ 193, 3, 51, 190, 126, 192, 16, 17, 18, 19,
+ 20, 161, 22, 23, 24, 25, 26, 27, 28, 29,
+ 55, 4, 47, 47, 146, 30, 3, 48, 132, 47,
+ 6, 42, 51, 55, 3, 48, 3, 187, 160, 189,
+ 17, 18, 19, 20, 52, 22, 23, 24, 25, 26,
+ 27, 28, 29, 21, 13, 53, 14, 46, 15, 34,
+ 52, 47, 53, 31, 32, 33, -1, -1, 36, 37,
+ 38, -1, -1, 41
+};
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
+{
+ 0, 57, 60, 0, 59, 63, 8, 9, 10, 61,
+ 62, 58, 4, 3, 43, 4, 21, 31, 32, 33,
+ 36, 37, 38, 41, 64, 65, 67, 68, 72, 75,
+ 81, 82, 87, 88, 3, 3, 3, 3, 17, 18,
+ 19, 20, 22, 23, 24, 25, 26, 27, 28, 29,
+ 103, 104, 105, 106, 107, 108, 109, 110, 3, 3,
+ 3, 103, 3, 52, 112, 46, 11, 111, 54, 111,
+ 3, 112, 112, 46, 35, 91, 46, 3, 12, 83,
+ 113, 73, 4, 54, 103, 54, 112, 96, 3, 46,
+ 69, 48, 46, 3, 53, 114, 4, 47, 74, 103,
+ 55, 103, 44, 45, 66, 47, 58, 97, 89, 47,
+ 58, 70, 3, 4, 6, 7, 46, 49, 76, 77,
+ 79, 96, 48, 115, 66, 112, 44, 111, 55, 112,
+ 6, 98, 92, 112, 3, 71, 80, 78, 66, 47,
+ 4, 66, 103, 51, 39, 40, 100, 58, 90, 93,
+ 48, 112, 47, 76, 50, 76, 112, 55, 103, 30,
+ 94, 47, 6, 66, 51, 66, 42, 99, 16, 102,
+ 103, 112, 76, 3, 3, 66, 48, 101, 52, 76,
+ 13, 84, 96, 14, 85, 53, 15, 86, 34, 95,
+ 46, 112, 52, 112, 96, 66, 96, 66, 47, 53
+};
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 56, 57, 58, 59, 60, 60, 61, 61, 61,
+ 61, 62, 63, 63, 64, 64, 64, 65, 65, 65,
+ 65, 65, 66, 66, 66, 67, 68, 69, 69, 70,
+ 71, 71, 72, 73, 73, 74, 75, 76, 76, 76,
+ 76, 76, 76, 77, 78, 78, 79, 80, 80, 81,
+ 81, 82, 83, 83, 84, 84, 85, 85, 86, 86,
+ 87, 88, 89, 90, 91, 91, 92, 92, 93, 94,
+ 94, 95, 95, 96, 96, 97, 98, 98, 99, 99,
+ 100, 100, 100, 101, 101, 102, 102, 103, 103, 103,
+ 104, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 106, 107, 107, 107, 108, 109, 110, 111, 111, 112,
+ 112, 113, 113, 114, 115, 115
+};
+
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 2, 0, 0, 3, 0, 1, 4, 3,
+ 2, 2, 3, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0, 5, 6, 2, 0, 4,
+ 3, 1, 6, 2, 0, 2, 6, 1, 1, 1,
+ 1, 1, 1, 3, 3, 0, 3, 5, 0, 1,
+ 1, 7, 1, 0, 1, 0, 1, 0, 4, 0,
+ 6, 9, 0, 0, 2, 0, 2, 0, 10, 1,
+ 0, 4, 0, 2, 0, 12, 2, 0, 1, 0,
+ 1, 1, 0, 2, 0, 1, 1, 1, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 1, 1, 7, 5, 5, 2, 0, 3,
+ 0, 2, 0, 3, 2, 0
+};
+
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (0)
+
+/* Error token number */
+#define YYTERROR 1
+#define YYERRCODE 256
+
+
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
+
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
+
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (0)
+
+
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT. |
+`----------------------------------------*/
+
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+{
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+ YYUSE (yytype);
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+{
+ YYFPRINTF (yyoutput, "%s %s (",
+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+static void
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+static void
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
+{
+ unsigned long int yylno = yyrline[yyrule];
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr,
+ yystos[yyssp[yyi + 1 - yynrhs]],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ YYFPRINTF (stderr, "\n");
+ }
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyssp, yyvsp, Rule); \
+} while (0)
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+static YYSIZE_T
+yystrlen (const char *yystr)
+{
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
+
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = YY_NULLPTR;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
+ {
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ {
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
+ }
+
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
+
+ {
+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
+ }
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
+}
+#endif /* YYERROR_VERBOSE */
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+{
+ YYUSE (yyvaluep);
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ YYUSE (yytype);
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
+}
+
+
+
+
+/* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+/* Number of syntax errors so far. */
+int yynerrs;
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+int
+yyparse (void)
+{
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+
+ /* The stacks and their tools:
+ 'yyss': related to states.
+ 'yyvs': related to semantic values.
+
+ Refer to the stacks through separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
+
+ YYSIZE_T yystacksize;
+
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken = 0;
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ yyssp = yyss = yyssa;
+ yyvsp = yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+ /* Do appropriate processing given the current state. Read a
+ lookahead token if we need one and don't already have one. */
+
+ /* First try to decide what to do without reference to lookahead token. */
+ yyn = yypact[yystate];
+ if (yypact_value_is_default (yyn))
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+ yychar = yylex ();
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ /* Shift the lookahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ '$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 2:
+#line 251 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Program -> Headers DefinitionList");
+ if((g_program_doctext_candidate != NULL) && (g_program_doctext_status != ALREADY_PROCESSED))
+ {
+ g_program->set_doc(g_program_doctext_candidate);
+ g_program_doctext_status = ALREADY_PROCESSED;
+ }
+ clear_doctext();
+ }
+#line 1548 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 3:
+#line 262 "thrifty.yy" /* yacc.c:1646 */
+ {
+ if (g_parse_mode == PROGRAM) {
+ (yyval.dtext) = g_doctext;
+ g_doctext = NULL;
+ } else {
+ (yyval.dtext) = NULL;
+ }
+ }
+#line 1561 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 4:
+#line 273 "thrifty.yy" /* yacc.c:1646 */
+ {
+ if (g_parse_mode == PROGRAM) {
+ clear_doctext();
+ }
+ }
+#line 1571 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 5:
+#line 283 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("HeaderList -> HeaderList Header");
+ }
+#line 1579 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 6:
+#line 287 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("HeaderList -> ");
+ }
+#line 1587 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 7:
+#line 293 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Header -> Include");
+ }
+#line 1595 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 8:
+#line 297 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Header -> tok_namespace tok_identifier tok_identifier");
+ declare_valid_program_doctext();
+ if (g_parse_mode == PROGRAM) {
+ g_program->set_namespace((yyvsp[-2].id), (yyvsp[-1].id));
+ }
+ if ((yyvsp[0].ttype) != NULL) {
+ g_program->set_namespace_annotations((yyvsp[-2].id), (yyvsp[0].ttype)->annotations_);
+ delete (yyvsp[0].ttype);
+ }
+ }
+#line 1611 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 9:
+#line 309 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Header -> tok_namespace * tok_identifier");
+ declare_valid_program_doctext();
+ if (g_parse_mode == PROGRAM) {
+ g_program->set_namespace("*", (yyvsp[0].id));
+ }
+ }
+#line 1623 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 10:
+#line 317 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Header -> tok_cpp_include tok_literal");
+ declare_valid_program_doctext();
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_cpp_include((yyvsp[0].id));
+ }
+ }
+#line 1635 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 11:
+#line 327 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Include -> tok_include tok_literal");
+ declare_valid_program_doctext();
+ if (g_parse_mode == INCLUDES) {
+ std::string path = include_file(std::string((yyvsp[0].id)));
+ if (!path.empty()) {
+ g_program->add_include(path, std::string((yyvsp[0].id)));
+ }
+ }
+ }
+#line 1650 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 12:
+#line 340 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("DefinitionList -> DefinitionList Definition");
+ if ((yyvsp[-1].dtext) != NULL && (yyvsp[0].tdoc) != NULL) {
+ (yyvsp[0].tdoc)->set_doc((yyvsp[-1].dtext));
+ }
+ }
+#line 1661 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 13:
+#line 347 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("DefinitionList -> ");
+ }
+#line 1669 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 14:
+#line 353 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Definition -> Const");
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_const((yyvsp[0].tconst));
+ }
+ (yyval.tdoc) = (yyvsp[0].tconst);
+ }
+#line 1681 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 15:
+#line 361 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Definition -> TypeDefinition");
+ if (g_parse_mode == PROGRAM) {
+ g_scope->add_type((yyvsp[0].ttype)->get_name(), (yyvsp[0].ttype));
+ if (g_parent_scope != NULL) {
+ g_parent_scope->add_type(g_parent_prefix + (yyvsp[0].ttype)->get_name(), (yyvsp[0].ttype));
+ }
+ if (! g_program->is_unique_typename((yyvsp[0].ttype))) {
+ yyerror("Type \"%s\" is already defined.", (yyvsp[0].ttype)->get_name().c_str());
+ exit(1);
+ }
+ }
+ (yyval.tdoc) = (yyvsp[0].ttype);
+ }
+#line 1700 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 16:
+#line 376 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Definition -> Service");
+ if (g_parse_mode == PROGRAM) {
+ g_scope->add_service((yyvsp[0].tservice)->get_name(), (yyvsp[0].tservice));
+ if (g_parent_scope != NULL) {
+ g_parent_scope->add_service(g_parent_prefix + (yyvsp[0].tservice)->get_name(), (yyvsp[0].tservice));
+ }
+ g_program->add_service((yyvsp[0].tservice));
+ if (! g_program->is_unique_typename((yyvsp[0].tservice))) {
+ yyerror("Type \"%s\" is already defined.", (yyvsp[0].tservice)->get_name().c_str());
+ exit(1);
+ }
+ }
+ (yyval.tdoc) = (yyvsp[0].tservice);
+ }
+#line 1720 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 17:
+#line 394 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeDefinition -> Typedef");
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_typedef((yyvsp[0].ttypedef));
+ }
+ }
+#line 1731 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 18:
+#line 401 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeDefinition -> Enum");
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_enum((yyvsp[0].tenum));
+ }
+ }
+#line 1742 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 19:
+#line 408 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeDefinition -> Senum");
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_typedef((yyvsp[0].ttypedef));
+ }
+ }
+#line 1753 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 20:
+#line 415 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeDefinition -> Struct");
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_struct((yyvsp[0].tstruct));
+ }
+ }
+#line 1764 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 21:
+#line 422 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeDefinition -> Xception");
+ if (g_parse_mode == PROGRAM) {
+ g_program->add_xception((yyvsp[0].tstruct));
+ }
+ }
+#line 1775 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 22:
+#line 431 "thrifty.yy" /* yacc.c:1646 */
+ {}
+#line 1781 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 23:
+#line 433 "thrifty.yy" /* yacc.c:1646 */
+ {}
+#line 1787 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 24:
+#line 435 "thrifty.yy" /* yacc.c:1646 */
+ {}
+#line 1793 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 25:
+#line 439 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeDef -> tok_typedef FieldType tok_identifier");
+ validate_simple_identifier( (yyvsp[-2].id));
+ t_typedef *td = new t_typedef(g_program, (yyvsp[-3].ttype), (yyvsp[-2].id));
+ (yyval.ttypedef) = td;
+ if ((yyvsp[-1].ttype) != NULL) {
+ (yyval.ttypedef)->annotations_ = (yyvsp[-1].ttype)->annotations_;
+ delete (yyvsp[-1].ttype);
+ }
+ }
+#line 1808 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 26:
+#line 452 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Enum -> tok_enum tok_identifier { EnumDefList }");
+ (yyval.tenum) = (yyvsp[-2].tenum);
+ validate_simple_identifier( (yyvsp[-4].id));
+ (yyval.tenum)->set_name((yyvsp[-4].id));
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.tenum)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ }
+
+ // make constants for all the enum values
+ if (g_parse_mode == PROGRAM) {
+ const std::vector<t_enum_value*>& enum_values = (yyval.tenum)->get_constants();
+ std::vector<t_enum_value*>::const_iterator c_iter;
+ for (c_iter = enum_values.begin(); c_iter != enum_values.end(); ++c_iter) {
+ std::string const_name = (yyval.tenum)->get_name() + "." + (*c_iter)->get_name();
+ t_const_value* const_val = new t_const_value((*c_iter)->get_value());
+ const_val->set_enum((yyval.tenum));
+ g_scope->add_constant(const_name, new t_const(g_type_i32, (*c_iter)->get_name(), const_val));
+ if (g_parent_scope != NULL) {
+ g_parent_scope->add_constant(g_parent_prefix + const_name, new t_const(g_type_i32, (*c_iter)->get_name(), const_val));
+ }
+ }
+ }
+ }
+#line 1838 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 27:
+#line 480 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("EnumDefList -> EnumDefList EnumDef");
+ (yyval.tenum) = (yyvsp[-1].tenum);
+ (yyval.tenum)->append((yyvsp[0].tenumv));
+ }
+#line 1848 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 28:
+#line 486 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("EnumDefList -> ");
+ (yyval.tenum) = new t_enum(g_program);
+ y_enum_val = -1;
+ }
+#line 1858 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 29:
+#line 494 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("EnumDef -> EnumValue");
+ (yyval.tenumv) = (yyvsp[-2].tenumv);
+ if ((yyvsp[-3].dtext) != NULL) {
+ (yyval.tenumv)->set_doc((yyvsp[-3].dtext));
+ }
+ if ((yyvsp[-1].ttype) != NULL) {
+ (yyval.tenumv)->annotations_ = (yyvsp[-1].ttype)->annotations_;
+ delete (yyvsp[-1].ttype);
+ }
+ }
+#line 1874 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 30:
+#line 508 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("EnumValue -> tok_identifier = tok_int_constant");
+ if ((yyvsp[0].iconst) < INT32_MIN || (yyvsp[0].iconst) > INT32_MAX) {
+ // Note: this used to be just a warning. However, since thrift always
+ // treats enums as i32 values, I'm changing it to a fatal error.
+ // I doubt this will affect many people, but users who run into this
+ // will have to update their thrift files to manually specify the
+ // truncated i32 value that thrift has always been using anyway.
+ failure("64-bit value supplied for enum %s will be truncated.", (yyvsp[-2].id));
+ }
+ y_enum_val = static_cast<int32_t>((yyvsp[0].iconst));
+ (yyval.tenumv) = new t_enum_value((yyvsp[-2].id), y_enum_val);
+ }
+#line 1892 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 31:
+#line 523 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("EnumValue -> tok_identifier");
+ validate_simple_identifier( (yyvsp[0].id));
+ if (y_enum_val == INT32_MAX) {
+ failure("enum value overflow at enum %s", (yyvsp[0].id));
+ }
+ ++y_enum_val;
+ (yyval.tenumv) = new t_enum_value((yyvsp[0].id), y_enum_val);
+ }
+#line 1906 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 32:
+#line 535 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Senum -> tok_senum tok_identifier { SenumDefList }");
+ validate_simple_identifier( (yyvsp[-4].id));
+ (yyval.ttypedef) = new t_typedef(g_program, (yyvsp[-2].tbase), (yyvsp[-4].id));
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.ttypedef)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ }
+ }
+#line 1920 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 33:
+#line 547 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SenumDefList -> SenumDefList SenumDef");
+ (yyval.tbase) = (yyvsp[-1].tbase);
+ (yyval.tbase)->add_string_enum_val((yyvsp[0].id));
+ }
+#line 1930 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 34:
+#line 553 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SenumDefList -> ");
+ (yyval.tbase) = new t_base_type("string", t_base_type::TYPE_STRING);
+ (yyval.tbase)->set_string_enum(true);
+ }
+#line 1940 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 35:
+#line 561 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SenumDef -> tok_literal");
+ (yyval.id) = (yyvsp[-1].id);
+ }
+#line 1949 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 36:
+#line 568 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Const -> tok_const FieldType tok_identifier = ConstValue");
+ if (g_parse_mode == PROGRAM) {
+ validate_simple_identifier( (yyvsp[-3].id));
+ g_scope->resolve_const_value((yyvsp[-1].tconstv), (yyvsp[-4].ttype));
+ (yyval.tconst) = new t_const((yyvsp[-4].ttype), (yyvsp[-3].id), (yyvsp[-1].tconstv));
+ validate_const_type((yyval.tconst));
+
+ g_scope->add_constant((yyvsp[-3].id), (yyval.tconst));
+ if (g_parent_scope != NULL) {
+ g_parent_scope->add_constant(g_parent_prefix + (yyvsp[-3].id), (yyval.tconst));
+ }
+ } else {
+ (yyval.tconst) = NULL;
+ }
+ }
+#line 1970 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 37:
+#line 587 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstValue => tok_int_constant");
+ (yyval.tconstv) = new t_const_value();
+ (yyval.tconstv)->set_integer((yyvsp[0].iconst));
+ if (!g_allow_64bit_consts && ((yyvsp[0].iconst) < INT32_MIN || (yyvsp[0].iconst) > INT32_MAX)) {
+ pwarning(1, "64-bit constant \"%" PRIi64"\" may not work in all languages.\n", (yyvsp[0].iconst));
+ }
+ }
+#line 1983 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 38:
+#line 596 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstValue => tok_dub_constant");
+ (yyval.tconstv) = new t_const_value();
+ (yyval.tconstv)->set_double((yyvsp[0].dconst));
+ }
+#line 1993 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 39:
+#line 602 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstValue => tok_literal");
+ (yyval.tconstv) = new t_const_value((yyvsp[0].id));
+ }
+#line 2002 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 40:
+#line 607 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstValue => tok_identifier");
+ (yyval.tconstv) = new t_const_value();
+ (yyval.tconstv)->set_identifier((yyvsp[0].id));
+ }
+#line 2012 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 41:
+#line 613 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstValue => ConstList");
+ (yyval.tconstv) = (yyvsp[0].tconstv);
+ }
+#line 2021 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 42:
+#line 618 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstValue => ConstMap");
+ (yyval.tconstv) = (yyvsp[0].tconstv);
+ }
+#line 2030 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 43:
+#line 625 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstList => [ ConstListContents ]");
+ (yyval.tconstv) = (yyvsp[-1].tconstv);
+ }
+#line 2039 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 44:
+#line 632 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstListContents => ConstListContents ConstValue CommaOrSemicolonOptional");
+ (yyval.tconstv) = (yyvsp[-2].tconstv);
+ (yyval.tconstv)->add_list((yyvsp[-1].tconstv));
+ }
+#line 2049 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 45:
+#line 638 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstListContents =>");
+ (yyval.tconstv) = new t_const_value();
+ (yyval.tconstv)->set_list();
+ }
+#line 2059 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 46:
+#line 646 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstMap => { ConstMapContents }");
+ (yyval.tconstv) = (yyvsp[-1].tconstv);
+ }
+#line 2068 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 47:
+#line 653 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstMapContents => ConstMapContents ConstValue CommaOrSemicolonOptional");
+ (yyval.tconstv) = (yyvsp[-4].tconstv);
+ (yyval.tconstv)->add_map((yyvsp[-3].tconstv), (yyvsp[-1].tconstv));
+ }
+#line 2078 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 48:
+#line 659 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ConstMapContents =>");
+ (yyval.tconstv) = new t_const_value();
+ (yyval.tconstv)->set_map();
+ }
+#line 2088 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 49:
+#line 667 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.iconst) = struct_is_struct;
+ }
+#line 2096 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 50:
+#line 671 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.iconst) = struct_is_union;
+ }
+#line 2104 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 51:
+#line 677 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Struct -> tok_struct tok_identifier { FieldList }");
+ validate_simple_identifier( (yyvsp[-5].id));
+ (yyvsp[-2].tstruct)->set_xsd_all((yyvsp[-4].tbool));
+ (yyvsp[-2].tstruct)->set_union((yyvsp[-6].iconst) == struct_is_union);
+ (yyval.tstruct) = (yyvsp[-2].tstruct);
+ (yyval.tstruct)->set_name((yyvsp[-5].id));
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.tstruct)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ }
+ }
+#line 2121 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 52:
+#line 692 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = true;
+ }
+#line 2129 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 53:
+#line 696 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = false;
+ }
+#line 2137 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 54:
+#line 702 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = true;
+ }
+#line 2145 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 55:
+#line 706 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = false;
+ }
+#line 2153 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 56:
+#line 712 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = true;
+ }
+#line 2161 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 57:
+#line 716 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = false;
+ }
+#line 2169 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 58:
+#line 722 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tstruct) = (yyvsp[-1].tstruct);
+ }
+#line 2177 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 59:
+#line 726 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tstruct) = NULL;
+ }
+#line 2185 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 60:
+#line 732 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Xception -> tok_xception tok_identifier { FieldList }");
+ validate_simple_identifier( (yyvsp[-4].id));
+ (yyvsp[-2].tstruct)->set_name((yyvsp[-4].id));
+ (yyvsp[-2].tstruct)->set_xception(true);
+ (yyval.tstruct) = (yyvsp[-2].tstruct);
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.tstruct)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ }
+ }
+#line 2201 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 61:
+#line 746 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Service -> tok_service tok_identifier { FunctionList }");
+ validate_simple_identifier( (yyvsp[-7].id));
+ (yyval.tservice) = (yyvsp[-3].tservice);
+ (yyval.tservice)->set_name((yyvsp[-7].id));
+ (yyval.tservice)->set_extends((yyvsp[-6].tservice));
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.tservice)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ }
+ }
+#line 2217 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 62:
+#line 759 "thrifty.yy" /* yacc.c:1646 */
+ {
+ g_arglist = 1;
+ }
+#line 2225 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 63:
+#line 764 "thrifty.yy" /* yacc.c:1646 */
+ {
+ g_arglist = 0;
+ }
+#line 2233 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 64:
+#line 770 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Extends -> tok_extends tok_identifier");
+ (yyval.tservice) = NULL;
+ if (g_parse_mode == PROGRAM) {
+ (yyval.tservice) = g_scope->get_service((yyvsp[0].id));
+ if ((yyval.tservice) == NULL) {
+ yyerror("Service \"%s\" has not been defined.", (yyvsp[0].id));
+ exit(1);
+ }
+ }
+ }
+#line 2249 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 65:
+#line 782 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tservice) = NULL;
+ }
+#line 2257 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 66:
+#line 788 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FunctionList -> FunctionList Function");
+ (yyval.tservice) = (yyvsp[-1].tservice);
+ (yyvsp[-1].tservice)->add_function((yyvsp[0].tfunction));
+ }
+#line 2267 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 67:
+#line 794 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FunctionList -> ");
+ (yyval.tservice) = new t_service(g_program);
+ }
+#line 2276 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 68:
+#line 801 "thrifty.yy" /* yacc.c:1646 */
+ {
+ validate_simple_identifier( (yyvsp[-6].id));
+ (yyvsp[-4].tstruct)->set_name(std::string((yyvsp[-6].id)) + "_args");
+ (yyval.tfunction) = new t_function((yyvsp[-7].ttype), (yyvsp[-6].id), (yyvsp[-4].tstruct), (yyvsp[-2].tstruct), (yyvsp[-8].tbool));
+ if ((yyvsp[-9].dtext) != NULL) {
+ (yyval.tfunction)->set_doc((yyvsp[-9].dtext));
+ }
+ if ((yyvsp[-1].ttype) != NULL) {
+ (yyval.tfunction)->annotations_ = (yyvsp[-1].ttype)->annotations_;
+ delete (yyvsp[-1].ttype);
+ }
+ }
+#line 2293 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 69:
+#line 816 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = true;
+ }
+#line 2301 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 70:
+#line 820 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = false;
+ }
+#line 2309 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 71:
+#line 826 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("Throws -> tok_throws ( FieldList )");
+ (yyval.tstruct) = (yyvsp[-1].tstruct);
+ if (g_parse_mode == PROGRAM && !validate_throws((yyval.tstruct))) {
+ yyerror("Throws clause may not contain non-exception types");
+ exit(1);
+ }
+ }
+#line 2322 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 72:
+#line 835 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tstruct) = new t_struct(g_program);
+ }
+#line 2330 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 73:
+#line 841 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FieldList -> FieldList , Field");
+ (yyval.tstruct) = (yyvsp[-1].tstruct);
+ if (!((yyval.tstruct)->append((yyvsp[0].tfield)))) {
+ yyerror("\"%d: %s\" - field identifier/name has already been used", (yyvsp[0].tfield)->get_key(), (yyvsp[0].tfield)->get_name().c_str());
+ exit(1);
+ }
+ }
+#line 2343 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 74:
+#line 850 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FieldList -> ");
+ y_field_val = -1;
+ (yyval.tstruct) = new t_struct(g_program);
+ }
+#line 2353 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 75:
+#line 858 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("tok_int_constant : Field -> FieldType tok_identifier");
+ if ((yyvsp[-10].tfieldid).auto_assigned) {
+ pwarning(1, "No field key specified for %s, resulting protocol may have conflicts or not be backwards compatible!\n", (yyvsp[-6].id));
+ if (g_strict >= 192) {
+ yyerror("Implicit field keys are deprecated and not allowed with -strict");
+ exit(1);
+ }
+ }
+ validate_simple_identifier((yyvsp[-6].id));
+ (yyval.tfield) = new t_field((yyvsp[-8].ttype), (yyvsp[-6].id), (yyvsp[-10].tfieldid).value);
+ (yyval.tfield)->set_reference((yyvsp[-7].tbool));
+ (yyval.tfield)->set_req((yyvsp[-9].ereq));
+ if ((yyvsp[-5].tconstv) != NULL) {
+ g_scope->resolve_const_value((yyvsp[-5].tconstv), (yyvsp[-8].ttype));
+ validate_field_value((yyval.tfield), (yyvsp[-5].tconstv));
+ (yyval.tfield)->set_value((yyvsp[-5].tconstv));
+ }
+ (yyval.tfield)->set_xsd_optional((yyvsp[-4].tbool));
+ (yyval.tfield)->set_xsd_nillable((yyvsp[-3].tbool));
+ if ((yyvsp[-11].dtext) != NULL) {
+ (yyval.tfield)->set_doc((yyvsp[-11].dtext));
+ }
+ if ((yyvsp[-2].tstruct) != NULL) {
+ (yyval.tfield)->set_xsd_attrs((yyvsp[-2].tstruct));
+ }
+ if ((yyvsp[-1].ttype) != NULL) {
+ (yyval.tfield)->annotations_ = (yyvsp[-1].ttype)->annotations_;
+ delete (yyvsp[-1].ttype);
+ }
+ }
+#line 2389 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 76:
+#line 892 "thrifty.yy" /* yacc.c:1646 */
+ {
+ if ((yyvsp[-1].iconst) <= 0) {
+ if (g_allow_neg_field_keys) {
+ /*
+ * g_allow_neg_field_keys exists to allow users to add explicitly
+ * specified key values to old .thrift files without breaking
+ * protocol compatibility.
+ */
+ if ((yyvsp[-1].iconst) != y_field_val) {
+ /*
+ * warn if the user-specified negative value isn't what
+ * thrift would have auto-assigned.
+ */
+ pwarning(1, "Nonpositive field key (%" PRIi64") differs from what would be "
+ "auto-assigned by thrift (%d).\n", (yyvsp[-1].iconst), y_field_val);
+ }
+ /*
+ * Leave $1 as-is, and update y_field_val to be one less than $1.
+ * The FieldList parsing will catch any duplicate key values.
+ */
+ y_field_val = static_cast<int32_t>((yyvsp[-1].iconst) - 1);
+ (yyval.tfieldid).value = static_cast<int32_t>((yyvsp[-1].iconst));
+ (yyval.tfieldid).auto_assigned = false;
+ } else {
+ pwarning(1, "Nonpositive value (%d) not allowed as a field key.\n",
+ (yyvsp[-1].iconst));
+ (yyval.tfieldid).value = y_field_val--;
+ (yyval.tfieldid).auto_assigned = true;
+ }
+ } else {
+ (yyval.tfieldid).value = static_cast<int32_t>((yyvsp[-1].iconst));
+ (yyval.tfieldid).auto_assigned = false;
+ }
+ if( (SHRT_MIN > (yyval.tfieldid).value) || ((yyval.tfieldid).value > SHRT_MAX)) {
+ pwarning(1, "Field key (%d) exceeds allowed range (%d..%d).\n",
+ (yyval.tfieldid).value, SHRT_MIN, SHRT_MAX);
+ }
+ }
+#line 2432 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 77:
+#line 931 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tfieldid).value = y_field_val--;
+ (yyval.tfieldid).auto_assigned = true;
+ if( (SHRT_MIN > (yyval.tfieldid).value) || ((yyval.tfieldid).value > SHRT_MAX)) {
+ pwarning(1, "Field key (%d) exceeds allowed range (%d..%d).\n",
+ (yyval.tfieldid).value, SHRT_MIN, SHRT_MAX);
+ }
+ }
+#line 2445 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 78:
+#line 942 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = true;
+ }
+#line 2453 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 79:
+#line 946 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tbool) = false;
+ }
+#line 2461 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 80:
+#line 952 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.ereq) = t_field::T_REQUIRED;
+ }
+#line 2469 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 81:
+#line 956 "thrifty.yy" /* yacc.c:1646 */
+ {
+ if (g_arglist) {
+ if (g_parse_mode == PROGRAM) {
+ pwarning(1, "optional keyword is ignored in argument lists.\n");
+ }
+ (yyval.ereq) = t_field::T_OPT_IN_REQ_OUT;
+ } else {
+ (yyval.ereq) = t_field::T_OPTIONAL;
+ }
+ }
+#line 2484 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 82:
+#line 967 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.ereq) = t_field::T_OPT_IN_REQ_OUT;
+ }
+#line 2492 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 83:
+#line 973 "thrifty.yy" /* yacc.c:1646 */
+ {
+ if (g_parse_mode == PROGRAM) {
+ (yyval.tconstv) = (yyvsp[0].tconstv);
+ } else {
+ (yyval.tconstv) = NULL;
+ }
+ }
+#line 2504 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 84:
+#line 981 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.tconstv) = NULL;
+ }
+#line 2512 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 85:
+#line 987 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FunctionType -> FieldType");
+ (yyval.ttype) = (yyvsp[0].ttype);
+ }
+#line 2521 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 86:
+#line 992 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FunctionType -> tok_void");
+ (yyval.ttype) = g_type_void;
+ }
+#line 2530 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 87:
+#line 999 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FieldType -> tok_identifier");
+ if (g_parse_mode == INCLUDES) {
+ // Ignore identifiers in include mode
+ (yyval.ttype) = NULL;
+ } else {
+ // Lookup the identifier in the current scope
+ (yyval.ttype) = g_scope->get_type((yyvsp[0].id));
+ if ((yyval.ttype) == NULL) {
+ /*
+ * Either this type isn't yet declared, or it's never
+ declared. Either way allow it and we'll figure it out
+ during generation.
+ */
+ (yyval.ttype) = new t_typedef(g_program, (yyvsp[0].id), true);
+ }
+ }
+ }
+#line 2553 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 88:
+#line 1018 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FieldType -> BaseType");
+ (yyval.ttype) = (yyvsp[0].ttype);
+ }
+#line 2562 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 89:
+#line 1023 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("FieldType -> ContainerType");
+ (yyval.ttype) = (yyvsp[0].ttype);
+ }
+#line 2571 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 90:
+#line 1029 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> SimpleBaseType TypeAnnotations");
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.ttype) = new t_base_type(*static_cast<t_base_type*>((yyvsp[-1].ttype)));
+ (yyval.ttype)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ } else {
+ (yyval.ttype) = (yyvsp[-1].ttype);
+ }
+ }
+#line 2586 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 91:
+#line 1042 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_string");
+ (yyval.ttype) = g_type_string;
+ }
+#line 2595 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 92:
+#line 1047 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_binary");
+ (yyval.ttype) = g_type_binary;
+ }
+#line 2604 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 93:
+#line 1052 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_slist");
+ (yyval.ttype) = g_type_slist;
+ }
+#line 2613 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 94:
+#line 1057 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_bool");
+ (yyval.ttype) = g_type_bool;
+ }
+#line 2622 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 95:
+#line 1062 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_i8");
+ (yyval.ttype) = g_type_i8;
+ }
+#line 2631 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 96:
+#line 1067 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_i16");
+ (yyval.ttype) = g_type_i16;
+ }
+#line 2640 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 97:
+#line 1072 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_i32");
+ (yyval.ttype) = g_type_i32;
+ }
+#line 2649 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 98:
+#line 1077 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_i64");
+ (yyval.ttype) = g_type_i64;
+ }
+#line 2658 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 99:
+#line 1082 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("BaseType -> tok_double");
+ (yyval.ttype) = g_type_double;
+ }
+#line 2667 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 100:
+#line 1088 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ContainerType -> SimpleContainerType TypeAnnotations");
+ (yyval.ttype) = (yyvsp[-1].ttype);
+ if ((yyvsp[0].ttype) != NULL) {
+ (yyval.ttype)->annotations_ = (yyvsp[0].ttype)->annotations_;
+ delete (yyvsp[0].ttype);
+ }
+ }
+#line 2680 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 101:
+#line 1099 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SimpleContainerType -> MapType");
+ (yyval.ttype) = (yyvsp[0].ttype);
+ }
+#line 2689 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 102:
+#line 1104 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SimpleContainerType -> SetType");
+ (yyval.ttype) = (yyvsp[0].ttype);
+ }
+#line 2698 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 103:
+#line 1109 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SimpleContainerType -> ListType");
+ (yyval.ttype) = (yyvsp[0].ttype);
+ }
+#line 2707 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 104:
+#line 1116 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("MapType -> tok_map <FieldType, FieldType>");
+ (yyval.ttype) = new t_map((yyvsp[-3].ttype), (yyvsp[-1].ttype));
+ if ((yyvsp[-5].id) != NULL) {
+ ((t_container*)(yyval.ttype))->set_cpp_name(std::string((yyvsp[-5].id)));
+ }
+ }
+#line 2719 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 105:
+#line 1126 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("SetType -> tok_set<FieldType>");
+ (yyval.ttype) = new t_set((yyvsp[-1].ttype));
+ if ((yyvsp[-3].id) != NULL) {
+ ((t_container*)(yyval.ttype))->set_cpp_name(std::string((yyvsp[-3].id)));
+ }
+ }
+#line 2731 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 106:
+#line 1136 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("ListType -> tok_list<FieldType>");
+ check_for_list_of_bytes((yyvsp[-2].ttype));
+ (yyval.ttype) = new t_list((yyvsp[-2].ttype));
+ if ((yyvsp[0].id) != NULL) {
+ ((t_container*)(yyval.ttype))->set_cpp_name(std::string((yyvsp[0].id)));
+ }
+ }
+#line 2744 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 107:
+#line 1147 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.id) = (yyvsp[0].id);
+ }
+#line 2752 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 108:
+#line 1151 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.id) = NULL;
+ }
+#line 2760 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 109:
+#line 1157 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeAnnotations -> ( TypeAnnotationList )");
+ (yyval.ttype) = (yyvsp[-1].ttype);
+ }
+#line 2769 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 110:
+#line 1162 "thrifty.yy" /* yacc.c:1646 */
+ {
+ (yyval.ttype) = NULL;
+ }
+#line 2777 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 111:
+#line 1168 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeAnnotationList -> TypeAnnotationList , TypeAnnotation");
+ (yyval.ttype) = (yyvsp[-1].ttype);
+ (yyval.ttype)->annotations_[(yyvsp[0].tannot)->key] = (yyvsp[0].tannot)->val;
+ delete (yyvsp[0].tannot);
+ }
+#line 2788 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 112:
+#line 1175 "thrifty.yy" /* yacc.c:1646 */
+ {
+ /* Just use a dummy structure to hold the annotations. */
+ (yyval.ttype) = new t_struct(g_program);
+ }
+#line 2797 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 113:
+#line 1182 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeAnnotation -> TypeAnnotationValue");
+ (yyval.tannot) = new t_annotation;
+ (yyval.tannot)->key = (yyvsp[-2].id);
+ (yyval.tannot)->val = (yyvsp[-1].id);
+ }
+#line 2808 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 114:
+#line 1191 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeAnnotationValue -> = tok_literal");
+ (yyval.id) = (yyvsp[0].id);
+ }
+#line 2817 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+ case 115:
+#line 1196 "thrifty.yy" /* yacc.c:1646 */
+ {
+ pdebug("TypeAnnotationValue ->");
+ (yyval.id) = strdup("1");
+ }
+#line 2826 "thrifty.cc" /* yacc.c:1646 */
+ break;
+
+
+#line 2830 "thrifty.cc" /* yacc.c:1646 */
+ default: break;
+ }
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+ /* Now 'shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*--------------------------------------.
+| yyerrlab -- here on detecting error. |
+`--------------------------------------*/
+yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
+ {
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
+ }
+# undef YYSYNTAX_ERROR
+#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+ /* Do not reclaim the symbols of the rule whose action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (!yypact_value_is_default (yyn))
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#if !defined yyoverflow || YYERROR_VERBOSE
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+#endif
+
+yyreturn:
+ if (yychar != YYEMPTY)
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
+ /* Do not reclaim the symbols of the rule whose action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ return yyresult;
+}
+#line 1201 "thrifty.yy" /* yacc.c:1906 */
+
diff --git a/contrib/restricted/thrift/compiler/thrift/thrifty.hh b/contrib/restricted/thrift/compiler/thrift/thrifty.hh
index 6fc381c9a4..f61a629a8e 100644
--- a/contrib/restricted/thrift/compiler/thrift/thrifty.hh
+++ b/contrib/restricted/thrift/compiler/thrift/thrifty.hh
@@ -1,179 +1,179 @@
-/* A Bison parser, made by GNU Bison 3.0.4. */
-
-/* Bison interface for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-#ifndef YY_YY_THRIFTY_HH_INCLUDED
-# define YY_YY_THRIFTY_HH_INCLUDED
-/* Debug traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-/* "%code requires" blocks. */
-#line 1 "thrifty.yy" /* yacc.c:1909 */
-
-#include "thrift/parse/t_program.h"
-
-#line 48 "thrifty.hh" /* yacc.c:1909 */
-
-/* Token type. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- enum yytokentype
- {
- tok_identifier = 258,
- tok_literal = 259,
- tok_doctext = 260,
- tok_int_constant = 261,
- tok_dub_constant = 262,
- tok_include = 263,
- tok_namespace = 264,
- tok_cpp_include = 265,
- tok_cpp_type = 266,
- tok_xsd_all = 267,
- tok_xsd_optional = 268,
- tok_xsd_nillable = 269,
- tok_xsd_attrs = 270,
- tok_void = 271,
- tok_bool = 272,
- tok_string = 273,
- tok_binary = 274,
- tok_slist = 275,
- tok_senum = 276,
- tok_i8 = 277,
- tok_i16 = 278,
- tok_i32 = 279,
- tok_i64 = 280,
- tok_double = 281,
- tok_map = 282,
- tok_list = 283,
- tok_set = 284,
- tok_oneway = 285,
- tok_typedef = 286,
- tok_struct = 287,
- tok_xception = 288,
- tok_throws = 289,
- tok_extends = 290,
- tok_service = 291,
- tok_enum = 292,
- tok_const = 293,
- tok_required = 294,
- tok_optional = 295,
- tok_union = 296,
- tok_reference = 297
- };
-#endif
-/* Tokens. */
-#define tok_identifier 258
-#define tok_literal 259
-#define tok_doctext 260
-#define tok_int_constant 261
-#define tok_dub_constant 262
-#define tok_include 263
-#define tok_namespace 264
-#define tok_cpp_include 265
-#define tok_cpp_type 266
-#define tok_xsd_all 267
-#define tok_xsd_optional 268
-#define tok_xsd_nillable 269
-#define tok_xsd_attrs 270
-#define tok_void 271
-#define tok_bool 272
-#define tok_string 273
-#define tok_binary 274
-#define tok_slist 275
-#define tok_senum 276
-#define tok_i8 277
-#define tok_i16 278
-#define tok_i32 279
-#define tok_i64 280
-#define tok_double 281
-#define tok_map 282
-#define tok_list 283
-#define tok_set 284
-#define tok_oneway 285
-#define tok_typedef 286
-#define tok_struct 287
-#define tok_xception 288
-#define tok_throws 289
-#define tok_extends 290
-#define tok_service 291
-#define tok_enum 292
-#define tok_const 293
-#define tok_required 294
-#define tok_optional 295
-#define tok_union 296
-#define tok_reference 297
-
-/* Value type. */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
-union YYSTYPE
-{
-#line 82 "thrifty.yy" /* yacc.c:1909 */
-
- char* id;
- int64_t iconst;
- double dconst;
- bool tbool;
- t_doc* tdoc;
- t_type* ttype;
- t_base_type* tbase;
- t_typedef* ttypedef;
- t_enum* tenum;
- t_enum_value* tenumv;
- t_const* tconst;
- t_const_value* tconstv;
- t_struct* tstruct;
- t_service* tservice;
- t_function* tfunction;
- t_field* tfield;
- char* dtext;
- t_field::e_req ereq;
- t_annotation* tannot;
- t_field_id tfieldid;
-
-#line 167 "thrifty.hh" /* yacc.c:1909 */
-};
-
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE yylval;
-
-int yyparse (void);
-
-#endif /* !YY_YY_THRIFTY_HH_INCLUDED */
+/* A Bison parser, made by GNU Bison 3.0.4. */
+
+/* Bison interface for Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+#ifndef YY_YY_THRIFTY_HH_INCLUDED
+# define YY_YY_THRIFTY_HH_INCLUDED
+/* Debug traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+/* "%code requires" blocks. */
+#line 1 "thrifty.yy" /* yacc.c:1909 */
+
+#include "thrift/parse/t_program.h"
+
+#line 48 "thrifty.hh" /* yacc.c:1909 */
+
+/* Token type. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ enum yytokentype
+ {
+ tok_identifier = 258,
+ tok_literal = 259,
+ tok_doctext = 260,
+ tok_int_constant = 261,
+ tok_dub_constant = 262,
+ tok_include = 263,
+ tok_namespace = 264,
+ tok_cpp_include = 265,
+ tok_cpp_type = 266,
+ tok_xsd_all = 267,
+ tok_xsd_optional = 268,
+ tok_xsd_nillable = 269,
+ tok_xsd_attrs = 270,
+ tok_void = 271,
+ tok_bool = 272,
+ tok_string = 273,
+ tok_binary = 274,
+ tok_slist = 275,
+ tok_senum = 276,
+ tok_i8 = 277,
+ tok_i16 = 278,
+ tok_i32 = 279,
+ tok_i64 = 280,
+ tok_double = 281,
+ tok_map = 282,
+ tok_list = 283,
+ tok_set = 284,
+ tok_oneway = 285,
+ tok_typedef = 286,
+ tok_struct = 287,
+ tok_xception = 288,
+ tok_throws = 289,
+ tok_extends = 290,
+ tok_service = 291,
+ tok_enum = 292,
+ tok_const = 293,
+ tok_required = 294,
+ tok_optional = 295,
+ tok_union = 296,
+ tok_reference = 297
+ };
+#endif
+/* Tokens. */
+#define tok_identifier 258
+#define tok_literal 259
+#define tok_doctext 260
+#define tok_int_constant 261
+#define tok_dub_constant 262
+#define tok_include 263
+#define tok_namespace 264
+#define tok_cpp_include 265
+#define tok_cpp_type 266
+#define tok_xsd_all 267
+#define tok_xsd_optional 268
+#define tok_xsd_nillable 269
+#define tok_xsd_attrs 270
+#define tok_void 271
+#define tok_bool 272
+#define tok_string 273
+#define tok_binary 274
+#define tok_slist 275
+#define tok_senum 276
+#define tok_i8 277
+#define tok_i16 278
+#define tok_i32 279
+#define tok_i64 280
+#define tok_double 281
+#define tok_map 282
+#define tok_list 283
+#define tok_set 284
+#define tok_oneway 285
+#define tok_typedef 286
+#define tok_struct 287
+#define tok_xception 288
+#define tok_throws 289
+#define tok_extends 290
+#define tok_service 291
+#define tok_enum 292
+#define tok_const 293
+#define tok_required 294
+#define tok_optional 295
+#define tok_union 296
+#define tok_reference 297
+
+/* Value type. */
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+
+union YYSTYPE
+{
+#line 82 "thrifty.yy" /* yacc.c:1909 */
+
+ char* id;
+ int64_t iconst;
+ double dconst;
+ bool tbool;
+ t_doc* tdoc;
+ t_type* ttype;
+ t_base_type* tbase;
+ t_typedef* ttypedef;
+ t_enum* tenum;
+ t_enum_value* tenumv;
+ t_const* tconst;
+ t_const_value* tconstv;
+ t_struct* tstruct;
+ t_service* tservice;
+ t_function* tfunction;
+ t_field* tfield;
+ char* dtext;
+ t_field::e_req ereq;
+ t_annotation* tannot;
+ t_field_id tfieldid;
+
+#line 167 "thrifty.hh" /* yacc.c:1909 */
+};
+
+typedef union YYSTYPE YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+extern YYSTYPE yylval;
+
+int yyparse (void);
+
+#endif /* !YY_YY_THRIFTY_HH_INCLUDED */
diff --git a/contrib/restricted/thrift/compiler/thrift/version.h b/contrib/restricted/thrift/compiler/thrift/version.h
index 38e9942677..00f31484ff 100644
--- a/contrib/restricted/thrift/compiler/thrift/version.h
+++ b/contrib/restricted/thrift/compiler/thrift/version.h
@@ -1,29 +1,29 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef _THRIFT_VERSION_H_
-#define _THRIFT_VERSION_H_ 1
-
-#if defined(_MSC_VER) && (_MSC_VER > 1200)
-#pragma once
-#endif // _MSC_VER
-
-#define THRIFT_VERSION "0.10.0-dev"
-
-#endif // _THRIFT_VERSION_H_
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef _THRIFT_VERSION_H_
+#define _THRIFT_VERSION_H_ 1
+
+#if defined(_MSC_VER) && (_MSC_VER > 1200)
+#pragma once
+#endif // _MSC_VER
+
+#define THRIFT_VERSION "0.10.0-dev"
+
+#endif // _THRIFT_VERSION_H_
diff --git a/contrib/restricted/thrift/compiler/ya.make b/contrib/restricted/thrift/compiler/ya.make
index 73f2dd88bb..3b140cb405 100644
--- a/contrib/restricted/thrift/compiler/ya.make
+++ b/contrib/restricted/thrift/compiler/ya.make
@@ -1,70 +1,70 @@
-PROGRAM()
-
+PROGRAM()
+
LICENSE(
Apache-2.0 AND
GPL-3.0-or-later WITH Bison-exception-2.2
-)
-
+)
+
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
OWNER(g:contrib)
-PEERDIR(
- contrib/restricted/boost
- contrib/restricted/thrift
-)
-
-ADDINCL(
- contrib/restricted/thrift/compiler
-)
-
-NO_UTIL()
-
-SRCS(
- thrift/audit/t_audit.cpp
- thrift/common.cc
- thrift/generate/t_as3_generator.cc
- #thrift/generate/t_c_glib_generator.cc
- thrift/generate/t_cl_generator.cc
- thrift/generate/t_cocoa_generator.cc
- thrift/generate/t_cpp_generator.cc
- thrift/generate/t_csharp_generator.cc
- thrift/generate/t_d_generator.cc
- thrift/generate/t_dart_generator.cc
- thrift/generate/t_delphi_generator.cc
- thrift/generate/t_erl_generator.cc
- thrift/generate/t_generator.cc
- thrift/generate/t_go_generator.cc
- thrift/generate/t_gv_generator.cc
- thrift/generate/t_haxe_generator.cc
- thrift/generate/t_hs_generator.cc
- thrift/generate/t_html_generator.cc
- thrift/generate/t_java_generator.cc
- thrift/generate/t_javame_generator.cc
- thrift/generate/t_js_generator.cc
- thrift/generate/t_json_generator.cc
- thrift/generate/t_lua_generator.cc
- #thrift/generate/t_netcore_generator.cc
- thrift/generate/t_ocaml_generator.cc
- thrift/generate/t_perl_generator.cc
- thrift/generate/t_php_generator.cc
- thrift/generate/t_py_generator.cc
- thrift/generate/t_rb_generator.cc
- thrift/generate/t_rs_generator.cc
- thrift/generate/t_st_generator.cc
- thrift/generate/t_swift_generator.cc
- thrift/generate/t_xml_generator.cc
- thrift/generate/t_xsd_generator.cc
- #thrift/logging.cc
- thrift/main.cc
- thrift/parse/parse.cc
- thrift/parse/t_typedef.cc
- #thrift/plugin/plugin.cc
- #thrift/plugin/plugin_output.cc
- thrift/thriftl.cc
- thrift/thrifty.cc
-)
-
-CXXFLAGS(-Wno-unused-variable)
-
-END()
+PEERDIR(
+ contrib/restricted/boost
+ contrib/restricted/thrift
+)
+
+ADDINCL(
+ contrib/restricted/thrift/compiler
+)
+
+NO_UTIL()
+
+SRCS(
+ thrift/audit/t_audit.cpp
+ thrift/common.cc
+ thrift/generate/t_as3_generator.cc
+ #thrift/generate/t_c_glib_generator.cc
+ thrift/generate/t_cl_generator.cc
+ thrift/generate/t_cocoa_generator.cc
+ thrift/generate/t_cpp_generator.cc
+ thrift/generate/t_csharp_generator.cc
+ thrift/generate/t_d_generator.cc
+ thrift/generate/t_dart_generator.cc
+ thrift/generate/t_delphi_generator.cc
+ thrift/generate/t_erl_generator.cc
+ thrift/generate/t_generator.cc
+ thrift/generate/t_go_generator.cc
+ thrift/generate/t_gv_generator.cc
+ thrift/generate/t_haxe_generator.cc
+ thrift/generate/t_hs_generator.cc
+ thrift/generate/t_html_generator.cc
+ thrift/generate/t_java_generator.cc
+ thrift/generate/t_javame_generator.cc
+ thrift/generate/t_js_generator.cc
+ thrift/generate/t_json_generator.cc
+ thrift/generate/t_lua_generator.cc
+ #thrift/generate/t_netcore_generator.cc
+ thrift/generate/t_ocaml_generator.cc
+ thrift/generate/t_perl_generator.cc
+ thrift/generate/t_php_generator.cc
+ thrift/generate/t_py_generator.cc
+ thrift/generate/t_rb_generator.cc
+ thrift/generate/t_rs_generator.cc
+ thrift/generate/t_st_generator.cc
+ thrift/generate/t_swift_generator.cc
+ thrift/generate/t_xml_generator.cc
+ thrift/generate/t_xsd_generator.cc
+ #thrift/logging.cc
+ thrift/main.cc
+ thrift/parse/parse.cc
+ thrift/parse/t_typedef.cc
+ #thrift/plugin/plugin.cc
+ #thrift/plugin/plugin_output.cc
+ thrift/thriftl.cc
+ thrift/thrifty.cc
+)
+
+CXXFLAGS(-Wno-unused-variable)
+
+END()
diff --git a/contrib/restricted/thrift/thrift/concurrency/PlatformThreadFactory.h b/contrib/restricted/thrift/thrift/concurrency/PlatformThreadFactory.h
index afa2c94469..119c5d8b90 100644
--- a/contrib/restricted/thrift/thrift/concurrency/PlatformThreadFactory.h
+++ b/contrib/restricted/thrift/thrift/concurrency/PlatformThreadFactory.h
@@ -23,11 +23,11 @@
// clang-format off
#include <thrift/thrift-config.h>
#if USE_BOOST_THREAD
-#error # include <thrift/concurrency/BoostThreadFactory.h>
+#error # include <thrift/concurrency/BoostThreadFactory.h>
#elif USE_STD_THREAD
# include <thrift/concurrency/StdThreadFactory.h>
#else
-#error # include <thrift/concurrency/PosixThreadFactory.h>
+#error # include <thrift/concurrency/PosixThreadFactory.h>
#endif
// clang-format on
diff --git a/contrib/restricted/thrift/thrift/config.h b/contrib/restricted/thrift/thrift/config.h
index dc6c42e202..74bf1a1ee9 100644
--- a/contrib/restricted/thrift/thrift/config.h
+++ b/contrib/restricted/thrift/thrift/config.h
@@ -1,22 +1,22 @@
-#pragma once
-
-#define HAVE_ARPA_INET_H
-#define HAVE_FCNTL_H
-#define HAVE_INTTYPES_H
-#define HAVE_NETDB_H
-#define HAVE_NETINET_IN_H
-#define HAVE_PTHREAD_H
-#define HAVE_STDINT_H
-#define HAVE_SYS_IOCTL_H
-#define HAVE_SYS_POLL_H
-#define HAVE_SYS_SOCKET_H
-#define HAVE_SYS_STAT_H
-#define HAVE_SYS_TIME_H
-#define HAVE_SYS_UN_H
-#define HAVE_UNISTD_H
-
-#define PACKAGE_VERSION "0.10.0-dev"
-
-#define ARITHMETIC_RIGHT_SHIFT 1
-#define SIGNED_RIGHT_SHIFT_IS 1
-#define USE_STD_THREAD 1
+#pragma once
+
+#define HAVE_ARPA_INET_H
+#define HAVE_FCNTL_H
+#define HAVE_INTTYPES_H
+#define HAVE_NETDB_H
+#define HAVE_NETINET_IN_H
+#define HAVE_PTHREAD_H
+#define HAVE_STDINT_H
+#define HAVE_SYS_IOCTL_H
+#define HAVE_SYS_POLL_H
+#define HAVE_SYS_SOCKET_H
+#define HAVE_SYS_STAT_H
+#define HAVE_SYS_TIME_H
+#define HAVE_SYS_UN_H
+#define HAVE_UNISTD_H
+
+#define PACKAGE_VERSION "0.10.0-dev"
+
+#define ARITHMETIC_RIGHT_SHIFT 1
+#define SIGNED_RIGHT_SHIFT_IS 1
+#define USE_STD_THREAD 1
diff --git a/contrib/restricted/thrift/thrift/protocol/TProtocol.h b/contrib/restricted/thrift/thrift/protocol/TProtocol.h
index b4502051de..cdcb52aafb 100644
--- a/contrib/restricted/thrift/thrift/protocol/TProtocol.h
+++ b/contrib/restricted/thrift/thrift/protocol/TProtocol.h
@@ -415,7 +415,7 @@ public:
virtual uint32_t readBool_virt(bool& value) = 0;
- //virtual uint32_t readBool_virt(std::vector<bool>::reference value) = 0;
+ //virtual uint32_t readBool_virt(std::vector<bool>::reference value) = 0;
virtual uint32_t readByte_virt(int8_t& byte) = 0;
@@ -536,12 +536,12 @@ public:
* rather than bools. We need to define a different version of readBool()
* to work with std::vector<bool>.
*/
- /*
+ /*
uint32_t readBool(std::vector<bool>::reference value) {
T_VIRTUAL_CALL();
return readBool_virt(value);
}
- */
+ */
/**
* Method to arbitrarily skip over data.
diff --git a/contrib/restricted/thrift/thrift/protocol/TProtocolDecorator.h b/contrib/restricted/thrift/thrift/protocol/TProtocolDecorator.h
index 7a02bc9af5..7ca734f244 100644
--- a/contrib/restricted/thrift/thrift/protocol/TProtocolDecorator.h
+++ b/contrib/restricted/thrift/thrift/protocol/TProtocolDecorator.h
@@ -126,11 +126,11 @@ public:
virtual uint32_t readSetEnd_virt() { return protocol->readSetEnd(); }
virtual uint32_t readBool_virt(bool& value) { return protocol->readBool(value); }
- /*
+ /*
virtual uint32_t readBool_virt(std::vector<bool>::reference value) {
return protocol->readBool(value);
}
- */
+ */
virtual uint32_t readByte_virt(int8_t& byte) { return protocol->readByte(byte); }
diff --git a/contrib/restricted/thrift/thrift/protocol/TVirtualProtocol.h b/contrib/restricted/thrift/thrift/protocol/TVirtualProtocol.h
index 95def09c7e..6c6abae2ec 100644
--- a/contrib/restricted/thrift/thrift/protocol/TVirtualProtocol.h
+++ b/contrib/restricted/thrift/thrift/protocol/TVirtualProtocol.h
@@ -121,13 +121,13 @@ public:
"this protocol does not support reading (yet).");
}
- /*
+ /*
uint32_t readBool(std::vector<bool>::reference value) {
(void)value;
throw TProtocolException(TProtocolException::NOT_IMPLEMENTED,
"this protocol does not support reading (yet).");
}
- */
+ */
uint32_t readByte(int8_t& byte) {
(void)byte;
@@ -441,11 +441,11 @@ public:
return static_cast<Protocol_*>(this)->readBool(value);
}
- /*
+ /*
virtual uint32_t readBool_virt(std::vector<bool>::reference value) {
return static_cast<Protocol_*>(this)->readBool(value);
}
- */
+ */
virtual uint32_t readByte_virt(int8_t& byte) {
return static_cast<Protocol_*>(this)->readByte(byte);
@@ -499,14 +499,14 @@ public:
* Subclasses can override this if desired, but there normally shouldn't
* be a need to.
*/
- /*
+ /*
uint32_t readBool(std::vector<bool>::reference value) {
bool b = false;
uint32_t ret = static_cast<Protocol_*>(this)->readBool(b);
value = b;
return ret;
}
- */
+ */
using Super_::readBool; // so we don't hide readBool(bool&)
protected:
diff --git a/contrib/restricted/thrift/thrift/stdcxx.h b/contrib/restricted/thrift/thrift/stdcxx.h
index 3e377daa45..ccf988a19b 100644
--- a/contrib/restricted/thrift/thrift/stdcxx.h
+++ b/contrib/restricted/thrift/thrift/stdcxx.h
@@ -29,24 +29,24 @@
//
///////////////////////////////////////////////////////////////////
-#if defined (BOOST_NO_CXX11_HDR_FUNCTIONAL)
-#undef BOOST_NO_CXX11_HDR_FUNCTIONAL
-#define __SHOULD_RESTORE__BOOST_NO_CXX11_HDR_FUNCTIONAL
-#endif
-
+#if defined (BOOST_NO_CXX11_HDR_FUNCTIONAL)
+#undef BOOST_NO_CXX11_HDR_FUNCTIONAL
+#define __SHOULD_RESTORE__BOOST_NO_CXX11_HDR_FUNCTIONAL
+#endif
+
#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) || (defined(_MSC_VER) && _MSC_VER < 1800) || defined(FORCE_BOOST_FUNCTIONAL)
#if (BOOST_VERSION <= 106500)
-#include <boost/tr1/functional.hpp> // Y_IGNORE
+#include <boost/tr1/functional.hpp> // Y_IGNORE
#else
#include <tr1/functional>
#endif
#define _THRIFT_FUNCTIONAL_TR1_ 1
#endif
-#if defined (__SHOULD_RESTORE__BOOST_NO_CXX11_HDR_FUNCTIONAL)
-#define BOOST_NO_CXX11_HDR_FUNCTIONAL
-#endif
-
+#if defined (__SHOULD_RESTORE__BOOST_NO_CXX11_HDR_FUNCTIONAL)
+#define BOOST_NO_CXX11_HDR_FUNCTIONAL
+#endif
+
#if _THRIFT_FUNCTIONAL_TR1_
namespace apache { namespace thrift { namespace stdcxx {
@@ -101,11 +101,11 @@
// which do not support the feature, so we must continue to use C++98 and boost on them.
// We cannot use __cplusplus to detect this either, since Microsoft advertises an older one.
-#if defined (BOOST_NO_CXX11_SMART_PTR)
-#undef BOOST_NO_CXX11_SMART_PTR
-#define __SHOULD_RESTORE__BOOST_NO_CXX11_SMART_PTR
-#endif
-
+#if defined (BOOST_NO_CXX11_SMART_PTR)
+#undef BOOST_NO_CXX11_SMART_PTR
+#define __SHOULD_RESTORE__BOOST_NO_CXX11_SMART_PTR
+#endif
+
#if defined(BOOST_NO_CXX11_SMART_PTR) || (defined(_MSC_VER) && _MSC_VER < 1800) || defined(FORCE_BOOST_SMART_PTR)
#include <boost/smart_ptr.hpp>
#else
@@ -138,10 +138,10 @@ namespace apache { namespace thrift { namespace stdcxx {
#endif
-#if defined (__SHOULD_RESTORE__BOOST_NO_CXX11_SMART_PTR)
-#define BOOST_NO_CXX11_SMART_PTR
-#endif
-
+#if defined (__SHOULD_RESTORE__BOOST_NO_CXX11_SMART_PTR)
+#define BOOST_NO_CXX11_SMART_PTR
+#endif
+
}}} // apache::thrift::stdcxx
#endif // #ifndef _THRIFT_STDCXX_H_
diff --git a/contrib/restricted/thrift/thrift/transport/THttpClient.cpp b/contrib/restricted/thrift/thrift/transport/THttpClient.cpp
index 5a20874385..d5a434b961 100644
--- a/contrib/restricted/thrift/thrift/transport/THttpClient.cpp
+++ b/contrib/restricted/thrift/thrift/transport/THttpClient.cpp
@@ -22,7 +22,7 @@
#include <sstream>
#include <boost/algorithm/string.hpp>
-#include <thrift/thrift-config.h>
+#include <thrift/thrift-config.h>
#include <thrift/transport/THttpClient.h>
#include <thrift/transport/TSocket.h>
diff --git a/contrib/restricted/thrift/thrift/transport/THttpServer.cpp b/contrib/restricted/thrift/thrift/transport/THttpServer.cpp
index d03a8fe054..ffd57503d5 100644
--- a/contrib/restricted/thrift/thrift/transport/THttpServer.cpp
+++ b/contrib/restricted/thrift/thrift/transport/THttpServer.cpp
@@ -21,7 +21,7 @@
#include <sstream>
#include <iostream>
-#include <thrift/thrift-config.h>
+#include <thrift/thrift-config.h>
#include <thrift/transport/THttpServer.h>
#include <thrift/transport/TSocket.h>
#if defined(_MSC_VER) || defined(__MINGW32__)
diff --git a/contrib/restricted/thrift/thrift/transport/TSocketPool.cpp b/contrib/restricted/thrift/thrift/transport/TSocketPool.cpp
index 9aad9b3810..57baec9c55 100644
--- a/contrib/restricted/thrift/thrift/transport/TSocketPool.cpp
+++ b/contrib/restricted/thrift/thrift/transport/TSocketPool.cpp
@@ -25,7 +25,7 @@
#include <thrift/transport/TSocketPool.h>
using std::pair;
-using std::random_shuffle;
+using std::random_shuffle;
using std::string;
using std::vector;
diff --git a/contrib/restricted/thrift/thrift/windows/config.h b/contrib/restricted/thrift/thrift/windows/config.h
index 0afad4fd8a..565fb2eb36 100644
--- a/contrib/restricted/thrift/thrift/windows/config.h
+++ b/contrib/restricted/thrift/thrift/windows/config.h
@@ -109,6 +109,6 @@ typedef boost::uint8_t uint8_t;
#endif
#endif // __MINGW32__
-#define PACKAGE_VERSION "0.10.0-dev"
-
+#define PACKAGE_VERSION "0.10.0-dev"
+
#endif // _THRIFT_WINDOWS_CONFIG_H_
diff --git a/contrib/restricted/thrift/ya.make b/contrib/restricted/thrift/ya.make
index ffdf32e4f7..b25b6f57b7 100644
--- a/contrib/restricted/thrift/ya.make
+++ b/contrib/restricted/thrift/ya.make
@@ -1,100 +1,100 @@
-LIBRARY()
-
-VERSION(0.10.0)
-
-LICENSE(Apache-2.0)
-
+LIBRARY()
+
+VERSION(0.10.0)
+
+LICENSE(Apache-2.0)
+
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-OWNER(
- g:contrib
- g:cpp-contrib
-)
-
-NO_UTIL()
-
+OWNER(
+ g:contrib
+ g:cpp-contrib
+)
+
+NO_UTIL()
+
NO_COMPILER_WARNINGS()
ADDINCL(
GLOBAL contrib/restricted/thrift
)
-
-PEERDIR(
- contrib/libs/libevent
- contrib/libs/openssl
- contrib/libs/zlib
- contrib/restricted/boost
- contrib/restricted/boost/libs/system
- contrib/restricted/boost/libs/thread
-)
-
-SRCS(
- thrift/TApplicationException.cpp
- thrift/TOutput.cpp
- thrift/VirtualProfiling.cpp
- thrift/async/TAsyncChannel.cpp
- thrift/async/TAsyncProtocolProcessor.cpp
- thrift/async/TConcurrentClientSyncInfo.cpp
- thrift/async/TEvhttpClientChannel.cpp
- thrift/async/TEvhttpServer.cpp
- thrift/concurrency/StdMonitor.cpp
- thrift/concurrency/StdMutex.cpp
- thrift/concurrency/StdThreadFactory.cpp
- thrift/concurrency/ThreadManager.cpp
- thrift/concurrency/TimerManager.cpp
- thrift/concurrency/Util.cpp
- thrift/processor/PeekProcessor.cpp
- thrift/protocol/TBase64Utils.cpp
- thrift/protocol/TDebugProtocol.cpp
- thrift/protocol/THeaderProtocol.cpp
- thrift/protocol/TJSONProtocol.cpp
- thrift/protocol/TMultiplexedProtocol.cpp
- thrift/protocol/TProtocol.cpp
- thrift/server/TConnectedClient.cpp
- thrift/server/TNonblockingServer.cpp
- thrift/server/TServer.cpp
- thrift/server/TServerFramework.cpp
- thrift/server/TSimpleServer.cpp
- thrift/server/TThreadPoolServer.cpp
- thrift/server/TThreadedServer.cpp
- thrift/transport/TBufferTransports.cpp
- thrift/transport/TFDTransport.cpp
- thrift/transport/TFileTransport.cpp
- thrift/transport/THeaderTransport.cpp
- thrift/transport/THttpClient.cpp
- thrift/transport/THttpServer.cpp
- thrift/transport/THttpTransport.cpp
- thrift/transport/TNonblockingSSLServerSocket.cpp
- thrift/transport/TNonblockingServerSocket.cpp
- thrift/transport/TPipe.cpp
- thrift/transport/TPipeServer.cpp
- thrift/transport/TSSLServerSocket.cpp
- thrift/transport/TSSLSocket.cpp
- thrift/transport/TServerSocket.cpp
- thrift/transport/TSimpleFileTransport.cpp
- thrift/transport/TSocket.cpp
- thrift/transport/TSocketPool.cpp
- thrift/transport/TTransportException.cpp
- thrift/transport/TTransportUtils.cpp
- thrift/transport/TZlibTransport.cpp
-)
-
-IF (OS_WINDOWS)
- SRCS(
- thrift/windows/GetTimeOfDay.cpp
- thrift/windows/OverlappedSubmissionThread.cpp
- thrift/windows/SocketPair.cpp
- thrift/windows/TWinsockSingleton.cpp
- thrift/windows/WinFcntl.cpp
- )
-ELSE()
- CXXFLAGS(
- -Wno-deprecated-declarations
- -Wno-unused-function
- -Wno-unused-parameter
- -Wno-unused-private-field
- -Wno-unused-variable
- )
-ENDIF()
-
-END()
+
+PEERDIR(
+ contrib/libs/libevent
+ contrib/libs/openssl
+ contrib/libs/zlib
+ contrib/restricted/boost
+ contrib/restricted/boost/libs/system
+ contrib/restricted/boost/libs/thread
+)
+
+SRCS(
+ thrift/TApplicationException.cpp
+ thrift/TOutput.cpp
+ thrift/VirtualProfiling.cpp
+ thrift/async/TAsyncChannel.cpp
+ thrift/async/TAsyncProtocolProcessor.cpp
+ thrift/async/TConcurrentClientSyncInfo.cpp
+ thrift/async/TEvhttpClientChannel.cpp
+ thrift/async/TEvhttpServer.cpp
+ thrift/concurrency/StdMonitor.cpp
+ thrift/concurrency/StdMutex.cpp
+ thrift/concurrency/StdThreadFactory.cpp
+ thrift/concurrency/ThreadManager.cpp
+ thrift/concurrency/TimerManager.cpp
+ thrift/concurrency/Util.cpp
+ thrift/processor/PeekProcessor.cpp
+ thrift/protocol/TBase64Utils.cpp
+ thrift/protocol/TDebugProtocol.cpp
+ thrift/protocol/THeaderProtocol.cpp
+ thrift/protocol/TJSONProtocol.cpp
+ thrift/protocol/TMultiplexedProtocol.cpp
+ thrift/protocol/TProtocol.cpp
+ thrift/server/TConnectedClient.cpp
+ thrift/server/TNonblockingServer.cpp
+ thrift/server/TServer.cpp
+ thrift/server/TServerFramework.cpp
+ thrift/server/TSimpleServer.cpp
+ thrift/server/TThreadPoolServer.cpp
+ thrift/server/TThreadedServer.cpp
+ thrift/transport/TBufferTransports.cpp
+ thrift/transport/TFDTransport.cpp
+ thrift/transport/TFileTransport.cpp
+ thrift/transport/THeaderTransport.cpp
+ thrift/transport/THttpClient.cpp
+ thrift/transport/THttpServer.cpp
+ thrift/transport/THttpTransport.cpp
+ thrift/transport/TNonblockingSSLServerSocket.cpp
+ thrift/transport/TNonblockingServerSocket.cpp
+ thrift/transport/TPipe.cpp
+ thrift/transport/TPipeServer.cpp
+ thrift/transport/TSSLServerSocket.cpp
+ thrift/transport/TSSLSocket.cpp
+ thrift/transport/TServerSocket.cpp
+ thrift/transport/TSimpleFileTransport.cpp
+ thrift/transport/TSocket.cpp
+ thrift/transport/TSocketPool.cpp
+ thrift/transport/TTransportException.cpp
+ thrift/transport/TTransportUtils.cpp
+ thrift/transport/TZlibTransport.cpp
+)
+
+IF (OS_WINDOWS)
+ SRCS(
+ thrift/windows/GetTimeOfDay.cpp
+ thrift/windows/OverlappedSubmissionThread.cpp
+ thrift/windows/SocketPair.cpp
+ thrift/windows/TWinsockSingleton.cpp
+ thrift/windows/WinFcntl.cpp
+ )
+ELSE()
+ CXXFLAGS(
+ -Wno-deprecated-declarations
+ -Wno-unused-function
+ -Wno-unused-parameter
+ -Wno-unused-private-field
+ -Wno-unused-variable
+ )
+ENDIF()
+
+END()
diff --git a/contrib/restricted/ya.make b/contrib/restricted/ya.make
index b52a206733..3c1dfbb04c 100644
--- a/contrib/restricted/ya.make
+++ b/contrib/restricted/ya.make
@@ -29,7 +29,7 @@ RECURSE(
gst-plugins-good
gstreamer
http-parser
- keyutils
+ keyutils
libelf
libffi
libiscsi
@@ -54,8 +54,8 @@ RECURSE(
rnnoise
rubberband
spdlog
- thrift
- thrift/compiler
+ thrift
+ thrift/compiler
turbo_base64
uriparser
)