From 02447f0996643bb75e86f100b7ad98bbdfecbec8 Mon Sep 17 00:00:00 2001 From: Jeff Hutchinson Date: Wed, 31 Mar 2021 22:10:55 -0400 Subject: [PATCH] compile fixes. --- Engine/source/Verve/Core/VDataTable.cpp | 2 +- Engine/source/afx/afxMagicSpell.cpp | 16 +- Engine/source/afx/arcaneFX.cpp | 6 +- Engine/source/app/mainLoop.cpp | 4 - Engine/source/console/CMDgram.y | 7 +- Engine/source/console/CMDscan.cpp | 2723 ++++++------- Engine/source/console/cmdgram.cpp | 3388 ++++++++--------- Engine/source/console/codeBlock.cpp | 6 +- Engine/source/console/compiledEval.cpp | 12 +- Engine/source/console/console.cpp | 5 + Engine/source/console/console.h | 56 +- Engine/source/console/consoleInternal.cpp | 13 +- Engine/source/console/consoleInternal.h | 5 +- Engine/source/console/engineAPI.h | 6 +- Engine/source/console/engineDoc.cpp | 4 +- Engine/source/console/optimizer.cpp | 104 + Engine/source/console/simObject.cpp | 8 +- Engine/source/console/test/consoleTest.cpp | 2 +- .../gui/controls/guiGameListMenuCtrl.cpp | 6 +- .../source/shaderGen/customShaderFeature.cpp | 2 +- 20 files changed, 3207 insertions(+), 3168 deletions(-) create mode 100644 Engine/source/console/optimizer.cpp diff --git a/Engine/source/Verve/Core/VDataTable.cpp b/Engine/source/Verve/Core/VDataTable.cpp index f338c5ac4..9bb4b92ff 100644 --- a/Engine/source/Verve/Core/VDataTable.cpp +++ b/Engine/source/Verve/Core/VDataTable.cpp @@ -228,7 +228,7 @@ bool VDataTable::getValue( SimObject *pObject, const String &pFieldName, String case VDataTable::k_TypeExpression : { // Evaluate. - pValue = Con::evaluate( fieldValue, false ).getStringValue(); + pValue = Con::evaluate( fieldValue, false ).getString(); } break; diff --git a/Engine/source/afx/afxMagicSpell.cpp b/Engine/source/afx/afxMagicSpell.cpp index b45d7c131..9d05f0b80 100644 --- a/Engine/source/afx/afxMagicSpell.cpp +++ b/Engine/source/afx/afxMagicSpell.cpp @@ -2638,23 +2638,25 @@ DefineEngineStringlyVariadicMethod(afxMagicSpell, setTimeFactor, void, 3, 4, "(F "@ingroup AFX") { if (argc == 3) - object->setTimeFactor(dAtof(argv[2])); + object->setTimeFactor(argv[2].getFloat()); else { + F32 value = argv[3].getFloat(); + if (dStricmp(argv[2], "overall") == 0) object->setTimeFactor(dAtof(argv[3])); else if (dStricmp(argv[2], "casting") == 0) - object->setTimeFactor(afxMagicSpell::CASTING_PHRASE, dAtof(argv[3])); + object->setTimeFactor(afxMagicSpell::CASTING_PHRASE, value); else if (dStricmp(argv[2], "launch") == 0) - object->setTimeFactor(afxMagicSpell::LAUNCH_PHRASE, dAtof(argv[3])); + object->setTimeFactor(afxMagicSpell::LAUNCH_PHRASE, value); else if (dStricmp(argv[2], "delivery") == 0) - object->setTimeFactor(afxMagicSpell::DELIVERY_PHRASE, dAtof(argv[3])); + object->setTimeFactor(afxMagicSpell::DELIVERY_PHRASE, value); else if (dStricmp(argv[2], "impact") == 0) - object->setTimeFactor(afxMagicSpell::IMPACT_PHRASE, dAtof(argv[3])); + object->setTimeFactor(afxMagicSpell::IMPACT_PHRASE, value); else if (dStricmp(argv[2], "linger") == 0) - object->setTimeFactor(afxMagicSpell::LINGER_PHRASE, dAtof(argv[3])); + object->setTimeFactor(afxMagicSpell::LINGER_PHRASE, value); else - Con::errorf("afxMagicSpell::setTimeFactor() -- unknown spell phrase [%s].", argv[2].getStringValue()); + Con::errorf("afxMagicSpell::setTimeFactor() -- unknown spell phrase [%s].", argv[2].getString()); } } diff --git a/Engine/source/afx/arcaneFX.cpp b/Engine/source/afx/arcaneFX.cpp index 385c056f6..5c7ea3460 100644 --- a/Engine/source/afx/arcaneFX.cpp +++ b/Engine/source/afx/arcaneFX.cpp @@ -874,7 +874,7 @@ DefineEngineStringlyVariadicFunction(echoThru, const char*, 2, 0, "(string passt for (i = 2; i < argc; i++) dStrcat(ret, argv[i], len + 1); - Con::printf("%s -- [%s]", ret, argv[1].getStringValue()); + Con::printf("%s -- [%s]", ret, argv[1].getString()); ret[0] = 0; return argv[1]; @@ -894,7 +894,7 @@ DefineEngineStringlyVariadicFunction(warnThru, const char*, 2, 0, "(string passt for(i = 2; i < argc; i++) dStrcat(ret, argv[i], len + 1); - Con::warnf("%s -- [%s]", ret, argv[1].getStringValue()); + Con::warnf("%s -- [%s]", ret, argv[1].getString()); ret[0] = 0; return argv[1]; @@ -914,7 +914,7 @@ DefineEngineStringlyVariadicFunction(errorThru, const char*, 2, 0, "(string pass for(i = 2; i < argc; i++) dStrcat(ret, argv[i], len + 1); - Con::errorf("%s -- [%s]", ret, argv[1].getStringValue()); + Con::errorf("%s -- [%s]", ret, argv[1].getString()); ret[0] = 0; return argv[1]; diff --git a/Engine/source/app/mainLoop.cpp b/Engine/source/app/mainLoop.cpp index 13a331075..871a7cc88 100644 --- a/Engine/source/app/mainLoop.cpp +++ b/Engine/source/app/mainLoop.cpp @@ -45,7 +45,6 @@ #include "console/debugOutputConsumer.h" #include "console/consoleTypes.h" #include "console/engineAPI.h" -#include "console/codeInterpreter.h" #include "gfx/bitmap/gBitmap.h" #include "gfx/gFont.h" @@ -229,9 +228,6 @@ void StandardMainLoop::init() ManagedSingleton< ThreadManager >::createSingleton(); FrameAllocator::init(TORQUE_FRAME_SIZE); // See comments in torqueConfig.h - // Initialize the TorqueScript interpreter. - CodeInterpreter::init(); - // Yell if we can't initialize the network. if(!Net::init()) { diff --git a/Engine/source/console/CMDgram.y b/Engine/source/console/CMDgram.y index 6cfbf3311..0b15c0e93 100644 --- a/Engine/source/console/CMDgram.y +++ b/Engine/source/console/CMDgram.y @@ -456,6 +456,8 @@ expr { $$ = (ExprNode*)VarNode::alloc( $1.lineNumber, $1.value, NULL); } | VAR '[' aidx_expr ']' { $$ = (ExprNode*)VarNode::alloc( $1.lineNumber, $1.value, $3 ); } + ; +/* | rwDEFINE '(' var_list_decl ')' '{' statement_list '}' { const U32 bufLen = 64; @@ -471,7 +473,7 @@ expr $$ = StrConstNode::alloc( $1.lineNumber, (UTF8*)fName, false ); } - ; +*/ slot_acc : expr '.' IDENT @@ -551,9 +553,12 @@ funcall_expr { $$ = FuncCallExprNode::alloc( $1.lineNumber, $3.value, $1.value, $5, false); } | expr '.' IDENT '(' expr_list_decl ')' { $1->append($5); $$ = FuncCallExprNode::alloc( $1->dbgLineNumber, $3.value, NULL, $1, true); } + ; +/* | expr '(' expr_list_decl ')' { $$ = FuncPointerCallExprNode::alloc( $1->dbgLineNumber, $1, $3); } ; +*/ assert_expr : rwASSERT '(' expr ')' diff --git a/Engine/source/console/CMDscan.cpp b/Engine/source/console/CMDscan.cpp index c30ac7bc9..43a864570 100644 --- a/Engine/source/console/CMDscan.cpp +++ b/Engine/source/console/CMDscan.cpp @@ -20,8 +20,8 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: -* $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $ -*/ + * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $ + */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 @@ -60,8 +60,8 @@ #endif /* ! __cplusplus */ #ifdef __TURBOC__ -#pragma warn -rch -#pragma warn -use + #pragma warn -rch + #pragma warn -use #include #include #define YY_USE_CONST @@ -85,22 +85,22 @@ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned -* integer for use as an array index. If the signed char is negative, -* we want to instead treat it as an 8-bit unsigned char, hence the -* double cast. -*/ + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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. -*/ + * 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. -*/ + * 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 @@ -125,18 +125,18 @@ extern FILE *yyin, *yyout; #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition -* int a single C statement (which needs a semi-colon terminator). This -* avoids problems with code like: -* -* if ( condition_holds ) -* yyless( 5 ); -* else -* do_something_else(); -* -* Prior to using the do-while the compiler would get upset at the -* "else" because it interpreted the "if" statement as being all -* done when it reached the ';' after the yyless() call. -*/ + * int a single C statement (which needs a semi-colon terminator). This + * avoids problems with code like: + * + * if ( condition_holds ) + * yyless( 5 ); + * else + * do_something_else(); + * + * Prior to using the do-while the compiler would get upset at the + * "else" because it interpreted the "if" statement as being all + * done when it reached the ';' after the yyless() call. + */ /* Return all but the first 'n' matched characters back to the input stream. */ @@ -153,75 +153,75 @@ extern FILE *yyin, *yyout; #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t -* (without autoconf's help, which isn't available because we want -* flex-generated scanners to compile on their own). -*/ + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ typedef unsigned int yy_size_t; struct yy_buffer_state -{ - FILE *yy_input_file; + { + FILE *yy_input_file; - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ + 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. - */ - yy_size_t yy_buf_size; + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; + /* 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 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 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; + /* 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; - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; - int yy_buffer_status; + 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. - */ + /* 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 -}; + }; static YY_BUFFER_STATE yy_current_buffer = 0; /* 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". -*/ + * future we want to put the buffer states in a more general + * "scanner state". + */ #define YY_CURRENT_BUFFER yy_current_buffer @@ -234,32 +234,32 @@ 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 = (char *)0; +static char *yy_c_buf_p = (char *) 0; static int yy_init = 1; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ - /* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ +/* Flag which is used to allow 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 YY_PROTO((FILE *input_file)); +void yyrestart YY_PROTO(( FILE *input_file )); -void yy_switch_to_buffer YY_PROTO((YY_BUFFER_STATE new_buffer)); -void yy_load_buffer_state YY_PROTO((void)); -YY_BUFFER_STATE yy_create_buffer YY_PROTO((FILE *file, int size)); -void yy_delete_buffer YY_PROTO((YY_BUFFER_STATE b)); -void yy_init_buffer YY_PROTO((YY_BUFFER_STATE b, FILE *file)); -void yy_flush_buffer YY_PROTO((YY_BUFFER_STATE b)); +void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); +void yy_load_buffer_state YY_PROTO(( void )); +YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); +void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); +void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); +void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) -YY_BUFFER_STATE yy_scan_buffer YY_PROTO((char *base, yy_size_t size)); -YY_BUFFER_STATE yy_scan_string YY_PROTO((yyconst char *str)); -YY_BUFFER_STATE yy_scan_bytes YY_PROTO((yyconst char *bytes, int len)); +YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); +YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str )); +YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); -static void *yy_flex_alloc YY_PROTO((yy_size_t)); -static void *yy_flex_realloc YY_PROTO((void *, yy_size_t)); -static void yy_flex_free YY_PROTO((void *)); +static void *yy_flex_alloc YY_PROTO(( yy_size_t )); +static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); +static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer @@ -280,19 +280,19 @@ static void yy_flex_free YY_PROTO((void *)); #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *)0, *yyout = (FILE *)0; +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern char *yytext; #define yytext_ptr yytext -static yy_state_type yy_get_previous_state YY_PROTO((void)); -static yy_state_type yy_try_NUL_trans YY_PROTO((yy_state_type current_state)); -static int yy_get_next_buffer YY_PROTO((void)); -static void yy_fatal_error YY_PROTO((yyconst char msg[])); +static yy_state_type yy_get_previous_state YY_PROTO(( void )); +static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); +static int yy_get_next_buffer YY_PROTO(( void )); +static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); /* Done after the current pattern has been matched and before the -* corresponding action - sets up yytext. -*/ + * corresponding action - sets up yytext. + */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ @@ -303,241 +303,241 @@ static void yy_fatal_error YY_PROTO((yyconst char msg[])); #define YY_NUM_RULES 94 #define YY_END_OF_BUFFER 95 static yyconst short int yy_accept[224] = -{ 0, -0, 0, 95, 93, 1, 5, 4, 51, 93, 93, -58, 57, 93, 41, 42, 45, 43, 56, 44, 50, -46, 90, 90, 52, 53, 47, 61, 48, 38, 36, -88, 88, 88, 88, 39, 40, 59, 88, 88, 88, -88, 88, 88, 88, 88, 88, 88, 88, 88, 88, -88, 54, 49, 55, 60, 1, 0, 9, 0, 6, -0, 0, 17, 87, 25, 12, 26, 0, 7, 0, -23, 16, 21, 15, 22, 31, 91, 37, 3, 24, -0, 90, 0, 0, 14, 19, 11, 8, 10, 20, -88, 33, 88, 88, 27, 88, 88, 88, 88, 88, + { 0, + 0, 0, 95, 93, 1, 5, 4, 51, 93, 93, + 58, 57, 93, 41, 42, 45, 43, 56, 44, 50, + 46, 90, 90, 52, 53, 47, 61, 48, 38, 36, + 88, 88, 88, 88, 39, 40, 59, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 54, 49, 55, 60, 1, 0, 9, 0, 6, + 0, 0, 17, 87, 25, 12, 26, 0, 7, 0, + 23, 16, 21, 15, 22, 31, 91, 37, 3, 24, + 0, 90, 0, 0, 14, 19, 11, 8, 10, 20, + 88, 33, 88, 88, 27, 88, 88, 88, 88, 88, -88, 69, 88, 88, 88, 88, 70, 62, 88, 88, -63, 88, 88, 88, 88, 88, 88, 28, 13, 18, -92, 87, 0, 32, 3, 3, 91, 0, 91, 89, -29, 30, 35, 34, 88, 88, 88, 88, 88, 88, -88, 88, 73, 88, 88, 76, 88, 88, 88, 88, -88, 88, 92, 0, 3, 2, 88, 88, 79, 88, -88, 88, 66, 88, 88, 88, 88, 88, 88, 88, -88, 85, 88, 3, 0, 88, 64, 88, 88, 88, -86, 88, 88, 88, 88, 88, 88, 88, 68, 0, -67, 88, 88, 88, 88, 88, 88, 88, 65, 88, + 88, 69, 88, 88, 88, 88, 70, 62, 88, 88, + 63, 88, 88, 88, 88, 88, 88, 28, 13, 18, + 92, 87, 0, 32, 3, 3, 91, 0, 91, 89, + 29, 30, 35, 34, 88, 88, 88, 88, 88, 88, + 88, 88, 73, 88, 88, 76, 88, 88, 88, 88, + 88, 88, 92, 0, 3, 2, 88, 88, 79, 88, + 88, 88, 66, 88, 88, 88, 88, 88, 88, 88, + 88, 85, 88, 3, 0, 88, 64, 88, 88, 88, + 86, 88, 88, 88, 88, 88, 88, 88, 68, 0, + 67, 88, 88, 88, 88, 88, 88, 88, 65, 88, -81, 0, 88, 88, 82, 72, 88, 88, 83, 88, -80, 0, 74, 88, 71, 75, 88, 88, 0, 78, -84, 77, 0 -}; + 81, 0, 88, 88, 82, 72, 88, 88, 83, 88, + 80, 0, 74, 88, 71, 75, 88, 88, 0, 78, + 84, 77, 0 + } ; static yyconst int yy_ec[256] = -{ 0, -1, 1, 1, 1, 1, 1, 1, 1, 2, 3, -2, 2, 4, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 2, 5, 6, 1, 7, 8, 9, 10, 11, -12, 13, 14, 15, 16, 17, 18, 19, 20, 20, -20, 20, 20, 20, 20, 20, 20, 21, 22, 23, -24, 25, 26, 27, 28, 29, 30, 31, 32, 31, -33, 33, 33, 33, 33, 34, 33, 35, 33, 36, -33, 33, 37, 38, 33, 33, 33, 39, 33, 33, -40, 41, 42, 43, 33, 1, 44, 45, 46, 47, + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 5, 6, 1, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 31, + 33, 33, 33, 33, 33, 34, 33, 35, 33, 36, + 33, 33, 37, 38, 33, 33, 33, 39, 33, 33, + 40, 41, 42, 43, 33, 1, 44, 45, 46, 47, -48, 49, 50, 51, 52, 33, 53, 54, 55, 56, -57, 58, 33, 59, 60, 61, 62, 33, 63, 39, -33, 33, 64, 65, 66, 67, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 48, 49, 50, 51, 52, 33, 53, 54, 55, 56, + 57, 58, 33, 59, 60, 61, 62, 33, 63, 39, + 33, 33, 64, 65, 66, 67, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1 -}; + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 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 yyconst int yy_meta[68] = -{ 0, -1, 1, 2, 2, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 3, 4, 4, -5, 1, 1, 6, 1, 1, 1, 4, 4, 4, -4, 4, 7, 7, 7, 7, 7, 7, 7, 1, -1, 1, 1, 4, 4, 4, 4, 4, 4, 7, -7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -7, 7, 7, 1, 1, 1, 1 -}; + { 0, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 4, 4, + 5, 1, 1, 6, 1, 1, 1, 4, 4, 4, + 4, 4, 7, 7, 7, 7, 7, 7, 7, 1, + 1, 1, 1, 4, 4, 4, 4, 4, 4, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 1, 1, 1, 1 + } ; static yyconst short int yy_base[237] = -{ 0, -0, 0, 337, 338, 334, 338, 338, 61, 63, 51, -53, 65, 66, 338, 338, 311, 64, 338, 66, 60, -68, 76, 80, 313, 338, 60, 309, 77, 338, 338, -0, 298, 295, 302, 338, 338, 305, 268, 268, 54, -61, 272, 59, 38, 62, 266, 280, 275, 62, 263, -270, 338, 89, 338, 338, 318, 295, 338, 111, 338, -314, 100, 338, 296, 338, 338, 338, 112, 338, 312, -338, 338, 338, 290, 338, 338, 107, 338, 296, 338, -110, 114, 121, 0, 338, 289, 338, 338, 338, 288, -0, 0, 281, 281, 338, 249, 260, 247, 250, 244, + { 0, + 0, 0, 337, 338, 334, 338, 338, 61, 63, 51, + 53, 65, 66, 338, 338, 311, 64, 338, 66, 60, + 68, 76, 80, 313, 338, 60, 309, 77, 338, 338, + 0, 298, 295, 302, 338, 338, 305, 268, 268, 54, + 61, 272, 59, 38, 62, 266, 280, 275, 62, 263, + 270, 338, 89, 338, 338, 318, 295, 338, 111, 338, + 314, 100, 338, 296, 338, 338, 338, 112, 338, 312, + 338, 338, 338, 290, 338, 338, 107, 338, 296, 338, + 110, 114, 121, 0, 338, 289, 338, 338, 338, 288, + 0, 0, 281, 281, 338, 249, 260, 247, 250, 244, -255, 0, 243, 248, 242, 244, 0, 0, 244, 235, -0, 251, 235, 239, 242, 231, 240, 338, 338, 338, -270, 269, 268, 338, 0, 139, 119, 125, 128, 0, -338, 338, 0, 0, 240, 243, 238, 224, 240, 239, -234, 221, 232, 233, 230, 0, 224, 214, 225, 213, -225, 218, 250, 249, 146, 152, 210, 215, 0, 215, -221, 203, 0, 216, 219, 201, 201, 216, 200, 204, -211, 0, 208, 155, 237, 193, 0, 197, 198, 197, -0, 204, 197, 190, 197, 190, 197, 193, 0, 225, -0, 180, 184, 179, 177, 153, 158, 151, 0, 134, + 255, 0, 243, 248, 242, 244, 0, 0, 244, 235, + 0, 251, 235, 239, 242, 231, 240, 338, 338, 338, + 270, 269, 268, 338, 0, 139, 119, 125, 128, 0, + 338, 338, 0, 0, 240, 243, 238, 224, 240, 239, + 234, 221, 232, 233, 230, 0, 224, 214, 225, 213, + 225, 218, 250, 249, 146, 152, 210, 215, 0, 215, + 221, 203, 0, 216, 219, 201, 201, 216, 200, 204, + 211, 0, 208, 155, 237, 193, 0, 197, 198, 197, + 0, 204, 197, 190, 197, 190, 197, 193, 0, 225, + 0, 180, 184, 179, 177, 153, 158, 151, 0, 134, -187, 157, 143, 144, 0, 176, 123, 126, 0, 112, -338, 160, 0, 115, 338, 0, 88, 76, 162, 0, -0, 0, 338, 170, 174, 181, 185, 189, 193, 200, -119, 204, 211, 218, 225, 232 -}; + 187, 157, 143, 144, 0, 176, 123, 126, 0, 112, + 338, 160, 0, 115, 338, 0, 88, 76, 162, 0, + 0, 0, 338, 170, 174, 181, 185, 189, 193, 200, + 119, 204, 211, 218, 225, 232 + } ; static yyconst short int yy_def[237] = -{ 0, -223, 1, 223, 223, 223, 223, 223, 223, 224, 225, -225, 223, 226, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -227, 227, 227, 227, 223, 223, 223, 227, 227, 227, -227, 227, 227, 227, 227, 227, 227, 227, 227, 227, -227, 223, 223, 223, 223, 223, 223, 223, 224, 223, -224, 228, 223, 229, 223, 223, 223, 226, 223, 226, -223, 223, 223, 223, 223, 223, 223, 223, 230, 223, -223, 223, 223, 231, 223, 223, 223, 223, 223, 223, -227, 227, 227, 227, 223, 227, 227, 227, 227, 227, + { 0, + 223, 1, 223, 223, 223, 223, 223, 223, 224, 225, + 225, 223, 226, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 227, 227, 227, 227, 223, 223, 223, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 223, 223, 223, 223, 223, 223, 223, 224, 223, + 224, 228, 223, 229, 223, 223, 223, 226, 223, 226, + 223, 223, 223, 223, 223, 223, 223, 223, 230, 223, + 223, 223, 223, 231, 223, 223, 223, 223, 223, 223, + 227, 227, 227, 227, 223, 227, 227, 227, 227, 227, -227, 227, 227, 227, 227, 227, 227, 227, 227, 227, -227, 227, 227, 227, 227, 227, 227, 223, 223, 223, -232, 229, 229, 223, 230, 233, 223, 223, 223, 231, -223, 223, 227, 227, 227, 227, 227, 227, 227, 227, -227, 227, 227, 227, 227, 227, 227, 227, 227, 227, -227, 227, 232, 232, 234, 223, 227, 227, 227, 227, -227, 227, 227, 227, 227, 227, 227, 227, 227, 227, -227, 227, 227, 234, 223, 227, 227, 227, 227, 227, -227, 227, 227, 227, 227, 227, 227, 227, 227, 223, -227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 223, 223, 223, + 232, 229, 229, 223, 230, 233, 223, 223, 223, 231, + 223, 223, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 232, 232, 234, 223, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 234, 223, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 223, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, -227, 235, 227, 227, 227, 227, 227, 227, 227, 227, -223, 236, 227, 227, 223, 227, 227, 227, 236, 227, -227, 227, 0, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223 -}; + 227, 235, 227, 227, 227, 227, 227, 227, 227, 227, + 223, 236, 227, 227, 223, 227, 227, 227, 236, 227, + 227, 227, 0, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223 + } ; static yyconst short int yy_nxt[406] = -{ 0, -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, 31, 31, -31, 31, 31, 31, 32, 31, 33, 34, 31, 35, -4, 36, 37, 38, 39, 40, 41, 42, 43, 31, -31, 44, 31, 31, 31, 45, 46, 47, 48, 49, -50, 31, 51, 52, 53, 54, 55, 57, 60, 62, -62, 62, 62, 66, 63, 69, 65, 72, 77, 77, -78, 74, 86, 87, 58, 79, 107, 73, 67, 75, -76, 80, 81, 108, 82, 82, 81, 98, 82, 82, + { 0, + 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, 31, 31, + 31, 31, 31, 31, 32, 31, 33, 34, 31, 35, + 4, 36, 37, 38, 39, 40, 41, 42, 43, 31, + 31, 44, 31, 31, 31, 45, 46, 47, 48, 49, + 50, 31, 51, 52, 53, 54, 55, 57, 60, 62, + 62, 62, 62, 66, 63, 69, 65, 72, 77, 77, + 78, 74, 86, 87, 58, 79, 107, 73, 67, 75, + 76, 80, 81, 108, 82, 82, 81, 98, 82, 82, -89, 90, 104, 61, 100, 109, 70, 83, 101, 110, -99, 83, 118, 114, 84, 105, 60, 102, 62, 62, -106, 69, 130, 83, 115, 77, 77, 83, 127, 127, -81, 222, 82, 82, 128, 221, 128, 127, 127, 129, -129, 156, 156, 129, 129, 83, 129, 129, 156, 156, -83, 61, 70, 119, 156, 156, 125, 156, 156, 156, -156, 83, 156, 156, 156, 156, 83, 220, 218, 175, -59, 217, 59, 59, 59, 59, 59, 64, 216, 64, -64, 68, 215, 68, 68, 68, 68, 68, 91, 214, -213, 91, 121, 211, 210, 121, 122, 122, 209, 122, + 89, 90, 104, 61, 100, 109, 70, 83, 101, 110, + 99, 83, 118, 114, 84, 105, 60, 102, 62, 62, + 106, 69, 130, 83, 115, 77, 77, 83, 127, 127, + 81, 222, 82, 82, 128, 221, 128, 127, 127, 129, + 129, 156, 156, 129, 129, 83, 129, 129, 156, 156, + 83, 61, 70, 119, 156, 156, 125, 156, 156, 156, + 156, 83, 156, 156, 156, 156, 83, 220, 218, 175, + 59, 217, 59, 59, 59, 59, 59, 64, 216, 64, + 64, 68, 215, 68, 68, 68, 68, 68, 91, 214, + 213, 91, 121, 211, 210, 121, 122, 122, 209, 122, -125, 208, 125, 125, 125, 125, 125, 153, 153, 207, -153, 155, 155, 155, 155, 155, 155, 155, 174, 174, -174, 174, 174, 174, 174, 212, 212, 206, 212, 212, -212, 212, 219, 219, 219, 219, 219, 219, 219, 205, -204, 203, 202, 201, 200, 199, 198, 197, 196, 195, -194, 193, 192, 191, 190, 189, 188, 187, 186, 185, -184, 183, 182, 181, 180, 179, 178, 177, 176, 154, -154, 173, 172, 171, 170, 169, 168, 167, 166, 165, -164, 163, 162, 161, 160, 159, 158, 157, 123, 123, -154, 152, 151, 150, 149, 148, 147, 146, 145, 144, + 125, 208, 125, 125, 125, 125, 125, 153, 153, 207, + 153, 155, 155, 155, 155, 155, 155, 155, 174, 174, + 174, 174, 174, 174, 174, 212, 212, 206, 212, 212, + 212, 212, 219, 219, 219, 219, 219, 219, 219, 205, + 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, + 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, + 184, 183, 182, 181, 180, 179, 178, 177, 176, 154, + 154, 173, 172, 171, 170, 169, 168, 167, 166, 165, + 164, 163, 162, 161, 160, 159, 158, 157, 123, 123, + 154, 152, 151, 150, 149, 148, 147, 146, 145, 144, -143, 142, 141, 140, 139, 138, 137, 136, 135, 134, -133, 132, 131, 126, 124, 68, 123, 59, 120, 56, -117, 116, 113, 112, 111, 103, 97, 96, 95, 94, -93, 92, 88, 85, 71, 56, 223, 3, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, + 133, 132, 131, 126, 124, 68, 123, 59, 120, 56, + 117, 116, 113, 112, 111, 103, 97, 96, 95, 94, + 93, 92, 88, 85, 71, 56, 223, 3, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223 -}; + 223, 223, 223, 223, 223 + } ; static yyconst short int yy_chk[406] = -{ 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, 1, 1, 8, 9, 10, -10, 11, 11, 12, 10, 13, 11, 17, 20, 20, -21, 19, 26, 26, 8, 21, 44, 17, 12, 19, -19, 21, 22, 44, 22, 22, 23, 40, 23, 23, + { 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, 1, 1, 8, 9, 10, + 10, 11, 11, 12, 10, 13, 11, 17, 20, 20, + 21, 19, 26, 26, 8, 21, 44, 17, 12, 19, + 19, 21, 22, 44, 22, 22, 23, 40, 23, 23, -28, 28, 43, 9, 41, 45, 13, 22, 41, 45, -40, 23, 53, 49, 22, 43, 59, 41, 62, 62, -43, 68, 231, 22, 49, 77, 77, 23, 81, 81, -82, 218, 82, 82, 83, 217, 83, 127, 127, 83, -83, 126, 126, 128, 128, 82, 129, 129, 155, 155, -127, 59, 68, 53, 156, 156, 126, 174, 174, 202, -202, 82, 212, 212, 219, 219, 127, 214, 210, 156, -224, 208, 224, 224, 224, 224, 224, 225, 207, 225, -225, 226, 206, 226, 226, 226, 226, 226, 227, 204, -203, 227, 228, 201, 200, 228, 229, 229, 198, 229, + 28, 28, 43, 9, 41, 45, 13, 22, 41, 45, + 40, 23, 53, 49, 22, 43, 59, 41, 62, 62, + 43, 68, 231, 22, 49, 77, 77, 23, 81, 81, + 82, 218, 82, 82, 83, 217, 83, 127, 127, 83, + 83, 126, 126, 128, 128, 82, 129, 129, 155, 155, + 127, 59, 68, 53, 156, 156, 126, 174, 174, 202, + 202, 82, 212, 212, 219, 219, 127, 214, 210, 156, + 224, 208, 224, 224, 224, 224, 224, 225, 207, 225, + 225, 226, 206, 226, 226, 226, 226, 226, 227, 204, + 203, 227, 228, 201, 200, 228, 229, 229, 198, 229, -230, 197, 230, 230, 230, 230, 230, 232, 232, 196, -232, 233, 233, 233, 233, 233, 233, 233, 234, 234, -234, 234, 234, 234, 234, 235, 235, 195, 235, 235, -235, 235, 236, 236, 236, 236, 236, 236, 236, 194, -193, 192, 190, 188, 187, 186, 185, 184, 183, 182, -180, 179, 178, 176, 175, 173, 171, 170, 169, 168, -167, 166, 165, 164, 162, 161, 160, 158, 157, 154, -153, 152, 151, 150, 149, 148, 147, 145, 144, 143, -142, 141, 140, 139, 138, 137, 136, 135, 123, 122, -121, 117, 116, 115, 114, 113, 112, 110, 109, 106, + 230, 197, 230, 230, 230, 230, 230, 232, 232, 196, + 232, 233, 233, 233, 233, 233, 233, 233, 234, 234, + 234, 234, 234, 234, 234, 235, 235, 195, 235, 235, + 235, 235, 236, 236, 236, 236, 236, 236, 236, 194, + 193, 192, 190, 188, 187, 186, 185, 184, 183, 182, + 180, 179, 178, 176, 175, 173, 171, 170, 169, 168, + 167, 166, 165, 164, 162, 161, 160, 158, 157, 154, + 153, 152, 151, 150, 149, 148, 147, 145, 144, 143, + 142, 141, 140, 139, 138, 137, 136, 135, 123, 122, + 121, 117, 116, 115, 114, 113, 112, 110, 109, 106, -105, 104, 103, 101, 100, 99, 98, 97, 96, 94, -93, 90, 86, 79, 74, 70, 64, 61, 57, 56, -51, 50, 48, 47, 46, 42, 39, 38, 37, 34, -33, 32, 27, 24, 16, 5, 3, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 105, 104, 103, 101, 100, 99, 98, 97, 96, 94, + 93, 90, 86, 79, 74, 70, 64, 61, 57, 56, + 51, 50, 48, 47, 46, 42, 39, 38, 37, 34, + 33, 32, 27, 24, 16, 5, 3, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, -223, 223, 223, 223, 223 -}; + 223, 223, 223, 223, 223 + } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; /* The intent behind this definition is that it'll catch -* any uses of REJECT which flex missed. -*/ + * 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 @@ -568,7 +568,7 @@ struct Token // Can't have ctors in structs used in unions, so we have this. template< typename T > -inline Token< T > MakeToken(T value, U32 lineNumber) +inline Token< T > MakeToken( T value, U32 lineNumber ) { Token< T > result; result.value = value; @@ -634,30 +634,30 @@ void CMDrestart(FILE *in); #line 635 "CMDscan.cpp" /* Macros after this point can all be overridden by user definitions in -* section 1. -*/ + * section 1. + */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap YY_PROTO((void)); +extern "C" int yywrap YY_PROTO(( void )); #else -extern int yywrap YY_PROTO((void)); +extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef YY_NO_UNPUT -static void yyunput YY_PROTO((int c, char *buf_ptr)); +static void yyunput YY_PROTO(( int c, char *buf_ptr )); #endif #ifndef yytext_ptr -static void yy_flex_strncpy YY_PROTO((char *, yyconst char *, int)); +static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus -static int yyinput YY_PROTO((void)); +static int yyinput YY_PROTO(( void )); #else -static int input YY_PROTO((void)); +static int input YY_PROTO(( void )); #endif #endif @@ -666,13 +666,13 @@ static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = 0; #ifndef YY_NO_PUSH_STATE -static void yy_push_state YY_PROTO((int new_state)); +static void yy_push_state YY_PROTO(( int new_state )); #endif #ifndef YY_NO_POP_STATE -static void yy_pop_state YY_PROTO((void)); +static void yy_pop_state YY_PROTO(( void )); #endif #ifndef YY_NO_TOP_STATE -static int yy_top_state YY_PROTO((void)); +static int yy_top_state YY_PROTO(( void )); #endif #else @@ -690,9 +690,9 @@ YY_MALLOC_DECL #endif #else /* Just try to get by without declaring the routines. This will fail -* miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) -* or sizeof(void*) != sizeof(int). -*/ + * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) + * or sizeof(void*) != sizeof(int). + */ #endif #endif @@ -705,14 +705,14 @@ YY_MALLOC_DECL #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, -* we now use fwrite(). -*/ + * we now use fwrite(). + */ #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, -* is returned in "result". -*/ + * is returned in "result". + */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( yy_current_buffer->yy_is_interactive ) \ @@ -733,9 +733,9 @@ YY_MALLOC_DECL #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. -*/ + * 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 @@ -751,15 +751,15 @@ YY_MALLOC_DECL #endif /* Default declaration of generated scanner - a define so the user can -* easily add parameters. -*/ + * easily add parameters. + */ #ifndef YY_DECL #define YY_DECL int yylex YY_PROTO(( void )) #endif /* Code executed at the beginning of each rule, after yytext and yyleng -* have been set up. -*/ + * have been set up. + */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif @@ -773,894 +773,895 @@ YY_MALLOC_DECL YY_USER_ACTION YY_DECL -{ - register yy_state_type yy_current_state; -register char *yy_cp, *yy_bp; -register int yy_act; + { + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; #line 105 "CMDscan.l" -; + ; #line 785 "CMDscan.cpp" -if (yy_init) -{ - yy_init = 0; + if ( yy_init ) + { + yy_init = 0; #ifdef YY_USER_INIT - YY_USER_INIT; + YY_USER_INIT; #endif - if (!yy_start) - yy_start = 1; /* first start state */ + if ( ! yy_start ) + yy_start = 1; /* first start state */ - if (!yyin) - yyin = stdin; + if ( ! yyin ) + yyin = stdin; - if (!yyout) - yyout = stdout; + if ( ! yyout ) + yyout = stdout; - if (!yy_current_buffer) - yy_current_buffer = - yy_create_buffer(yyin, YY_BUF_SIZE); + if ( ! yy_current_buffer ) + yy_current_buffer = + yy_create_buffer( yyin, YY_BUF_SIZE ); - yy_load_buffer_state(); -} + yy_load_buffer_state(); + } -while (1) /* loops until end-of-file is reached */ -{ - yy_cp = yy_c_buf_p; + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = yy_c_buf_p; - /* Support of yytext. */ - *yy_cp = yy_hold_char; + /* 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_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_current_state = yy_start; yy_match: - do - { - register 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 >= 224) - yy_c = yy_meta[(unsigned int)yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)yy_c]; - ++yy_cp; - } while (yy_base[yy_current_state] != 338); + do + { + register 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 >= 224 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 338 ); 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_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; + YY_DO_BEFORE_ACTION; 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; + 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: - YY_RULE_SETUP +case 1: +YY_RULE_SETUP #line 107 "CMDscan.l" - {} - YY_BREAK - case 2: - YY_RULE_SETUP +{ } + YY_BREAK +case 2: +YY_RULE_SETUP #line 108 "CMDscan.l" - { return(Sc_ScanDocBlock()); } - YY_BREAK - case 3: - YY_RULE_SETUP +{ return(Sc_ScanDocBlock()); } + YY_BREAK +case 3: +YY_RULE_SETUP #line 109 "CMDscan.l" - ; - YY_BREAK - case 4: - YY_RULE_SETUP +; + YY_BREAK +case 4: +YY_RULE_SETUP #line 110 "CMDscan.l" - ; - YY_BREAK - case 5: - YY_RULE_SETUP +; + YY_BREAK +case 5: +YY_RULE_SETUP #line 111 "CMDscan.l" - { lineIndex++; } - YY_BREAK - case 6: - YY_RULE_SETUP +{lineIndex++;} + YY_BREAK +case 6: +YY_RULE_SETUP #line 112 "CMDscan.l" - { return(Sc_ScanString(STRATOM)); } - YY_BREAK - case 7: - YY_RULE_SETUP +{ return(Sc_ScanString(STRATOM)); } + YY_BREAK +case 7: +YY_RULE_SETUP #line 113 "CMDscan.l" - { return(Sc_ScanString(TAGATOM)); } - YY_BREAK - case 8: - YY_RULE_SETUP +{ return(Sc_ScanString(TAGATOM)); } + YY_BREAK +case 8: +YY_RULE_SETUP #line 114 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opEQ, lineIndex); return opEQ; } - YY_BREAK - case 9: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opEQ, lineIndex ); return opEQ; } + YY_BREAK +case 9: +YY_RULE_SETUP #line 115 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opNE, lineIndex); return opNE; } - YY_BREAK - case 10: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opNE, lineIndex ); return opNE; } + YY_BREAK +case 10: +YY_RULE_SETUP #line 116 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opGE, lineIndex); return opGE; } - YY_BREAK - case 11: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opGE, lineIndex ); return opGE; } + YY_BREAK +case 11: +YY_RULE_SETUP #line 117 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opLE, lineIndex); return opLE; } - YY_BREAK - case 12: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opLE, lineIndex ); return opLE; } + YY_BREAK +case 12: +YY_RULE_SETUP #line 118 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opAND, lineIndex); return opAND; } - YY_BREAK - case 13: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opAND, lineIndex ); return opAND; } + YY_BREAK +case 13: +YY_RULE_SETUP #line 119 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opOR, lineIndex); return opOR; } - YY_BREAK - case 14: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opOR, lineIndex ); return opOR; } + YY_BREAK +case 14: +YY_RULE_SETUP #line 120 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opCOLONCOLON, lineIndex); return opCOLONCOLON; } - YY_BREAK - case 15: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opCOLONCOLON, lineIndex ); return opCOLONCOLON; } + YY_BREAK +case 15: +YY_RULE_SETUP #line 121 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opMINUSMINUS, lineIndex); return opMINUSMINUS; } - YY_BREAK - case 16: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opMINUSMINUS, lineIndex ); return opMINUSMINUS; } + YY_BREAK +case 16: +YY_RULE_SETUP #line 122 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opPLUSPLUS, lineIndex); return opPLUSPLUS; } - YY_BREAK - case 17: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opPLUSPLUS, lineIndex ); return opPLUSPLUS; } + YY_BREAK +case 17: +YY_RULE_SETUP #line 123 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opSTREQ, lineIndex); return opSTREQ; } - YY_BREAK - case 18: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opSTREQ, lineIndex ); return opSTREQ; } + YY_BREAK +case 18: +YY_RULE_SETUP #line 124 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opSTRNE, lineIndex); return opSTRNE; } - YY_BREAK - case 19: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opSTRNE, lineIndex ); return opSTRNE; } + YY_BREAK +case 19: +YY_RULE_SETUP #line 125 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opSHL, lineIndex); return opSHL; } - YY_BREAK - case 20: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opSHL, lineIndex ); return opSHL; } + YY_BREAK +case 20: +YY_RULE_SETUP #line 126 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opSHR, lineIndex); return opSHR; } - YY_BREAK - case 21: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opSHR, lineIndex ); return opSHR; } + YY_BREAK +case 21: +YY_RULE_SETUP #line 127 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opPLASN, lineIndex); return opPLASN; } - YY_BREAK - case 22: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opPLASN, lineIndex ); return opPLASN; } + YY_BREAK +case 22: +YY_RULE_SETUP #line 128 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opMIASN, lineIndex); return opMIASN; } - YY_BREAK - case 23: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opMIASN, lineIndex ); return opMIASN; } + YY_BREAK +case 23: +YY_RULE_SETUP #line 129 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opMLASN, lineIndex); return opMLASN; } - YY_BREAK - case 24: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opMLASN, lineIndex ); return opMLASN; } + YY_BREAK +case 24: +YY_RULE_SETUP #line 130 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opDVASN, lineIndex); return opDVASN; } - YY_BREAK - case 25: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opDVASN, lineIndex ); return opDVASN; } + YY_BREAK +case 25: +YY_RULE_SETUP #line 131 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opMODASN, lineIndex); return opMODASN; } - YY_BREAK - case 26: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opMODASN, lineIndex ); return opMODASN; } + YY_BREAK +case 26: +YY_RULE_SETUP #line 132 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opANDASN, lineIndex); return opANDASN; } - YY_BREAK - case 27: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opANDASN, lineIndex ); return opANDASN; } + YY_BREAK +case 27: +YY_RULE_SETUP #line 133 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opXORASN, lineIndex); return opXORASN; } - YY_BREAK - case 28: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opXORASN, lineIndex ); return opXORASN; } + YY_BREAK +case 28: +YY_RULE_SETUP #line 134 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opORASN, lineIndex); return opORASN; } - YY_BREAK - case 29: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opORASN, lineIndex ); return opORASN; } + YY_BREAK +case 29: +YY_RULE_SETUP #line 135 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opSLASN, lineIndex); return opSLASN; } - YY_BREAK - case 30: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opSLASN, lineIndex ); return opSLASN; } + YY_BREAK +case 30: +YY_RULE_SETUP #line 136 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opSRASN, lineIndex); return opSRASN; } - YY_BREAK - case 31: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opSRASN, lineIndex ); return opSRASN; } + YY_BREAK +case 31: +YY_RULE_SETUP #line 137 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opINTNAME, lineIndex); return opINTNAME; } - YY_BREAK - case 32: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opINTNAME, lineIndex ); return opINTNAME; } + YY_BREAK +case 32: +YY_RULE_SETUP #line 138 "CMDscan.l" - { CMDlval.i = MakeToken< int >(opINTNAMER, lineIndex); return opINTNAMER; } - YY_BREAK - case 33: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( opINTNAMER, lineIndex ); return opINTNAMER; } + YY_BREAK +case 33: +YY_RULE_SETUP #line 139 "CMDscan.l" - { CMDlval.i = MakeToken< int >('\n', lineIndex); return '@'; } - YY_BREAK - case 34: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( '\n', lineIndex ); return '@'; } + YY_BREAK +case 34: +YY_RULE_SETUP #line 140 "CMDscan.l" - { CMDlval.i = MakeToken< int >('\t', lineIndex); return '@'; } - YY_BREAK - case 35: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( '\t', lineIndex ); return '@'; } + YY_BREAK +case 35: +YY_RULE_SETUP #line 141 "CMDscan.l" - { CMDlval.i = MakeToken< int >(' ', lineIndex); return '@'; } - YY_BREAK - case 36: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( ' ', lineIndex ); return '@'; } + YY_BREAK +case 36: +YY_RULE_SETUP #line 142 "CMDscan.l" - { CMDlval.i = MakeToken< int >(0, lineIndex); return '@'; } - YY_BREAK - case 37: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( 0, lineIndex ); return '@'; } + YY_BREAK +case 37: +YY_RULE_SETUP #line 143 "CMDscan.l" - { /* this comment stops syntax highlighting from getting messed up when editing the lexer in TextPad */ - int c = 0, l; - for (; ; ) +{ /* this comment stops syntax highlighting from getting messed up when editing the lexer in TextPad */ + int c = 0, l; + for ( ; ; ) { l = c; c = yyinput(); // Is this an open comment? - if (c == EOF) + if ( c == EOF ) { - CMDerror("unexpected end of file found in comment"); + CMDerror( "unexpected end of file found in comment" ); break; } // Increment line numbers. - else if (c == '\n') + else if ( c == '\n' ) lineIndex++; // Did we find the end of the comment? - else if (l == '*' && c == '/') + else if ( l == '*' && c == '/' ) break; } - } - YY_BREAK - case 38: + } + YY_BREAK +case 38: #line 167 "CMDscan.l" - case 39: +case 39: #line 168 "CMDscan.l" - case 40: +case 40: #line 169 "CMDscan.l" - case 41: +case 41: #line 170 "CMDscan.l" - case 42: +case 42: #line 171 "CMDscan.l" - case 43: +case 43: #line 172 "CMDscan.l" - case 44: +case 44: #line 173 "CMDscan.l" - case 45: +case 45: #line 174 "CMDscan.l" - case 46: +case 46: #line 175 "CMDscan.l" - case 47: +case 47: #line 176 "CMDscan.l" - case 48: +case 48: #line 177 "CMDscan.l" - case 49: +case 49: #line 178 "CMDscan.l" - case 50: +case 50: #line 179 "CMDscan.l" - case 51: +case 51: #line 180 "CMDscan.l" - case 52: +case 52: #line 181 "CMDscan.l" - case 53: +case 53: #line 182 "CMDscan.l" - case 54: +case 54: #line 183 "CMDscan.l" - case 55: +case 55: #line 184 "CMDscan.l" - case 56: +case 56: #line 185 "CMDscan.l" - case 57: +case 57: #line 186 "CMDscan.l" - case 58: +case 58: #line 187 "CMDscan.l" - case 59: +case 59: #line 188 "CMDscan.l" - case 60: +case 60: #line 189 "CMDscan.l" - case 61: - YY_RULE_SETUP +case 61: +YY_RULE_SETUP #line 189 "CMDscan.l" - { CMDlval.i = MakeToken< int >(CMDtext[0], lineIndex); return CMDtext[0]; } - YY_BREAK - case 62: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( CMDtext[ 0 ], lineIndex ); return CMDtext[ 0 ]; } + YY_BREAK +case 62: +YY_RULE_SETUP #line 190 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwIN, lineIndex); return(rwIN); } - YY_BREAK - case 63: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwIN, lineIndex ); return(rwIN); } + YY_BREAK +case 63: +YY_RULE_SETUP #line 191 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwCASEOR, lineIndex); return(rwCASEOR); } - YY_BREAK - case 64: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwCASEOR, lineIndex ); return(rwCASEOR); } + YY_BREAK +case 64: +YY_RULE_SETUP #line 192 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwBREAK, lineIndex); return(rwBREAK); } - YY_BREAK - case 65: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwBREAK, lineIndex ); return(rwBREAK); } + YY_BREAK +case 65: +YY_RULE_SETUP #line 193 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwRETURN, lineIndex); return(rwRETURN); } - YY_BREAK - case 66: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwRETURN, lineIndex ); return(rwRETURN); } + YY_BREAK +case 66: +YY_RULE_SETUP #line 194 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwELSE, lineIndex); return(rwELSE); } - YY_BREAK - case 67: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwELSE, lineIndex ); return(rwELSE); } + YY_BREAK +case 67: +YY_RULE_SETUP #line 195 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwASSERT, lineIndex); return(rwASSERT); } - YY_BREAK - case 68: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwASSERT, lineIndex ); return(rwASSERT); } + YY_BREAK +case 68: +YY_RULE_SETUP #line 196 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwWHILE, lineIndex); return(rwWHILE); } - YY_BREAK - case 69: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwWHILE, lineIndex ); return(rwWHILE); } + YY_BREAK +case 69: +YY_RULE_SETUP #line 197 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwDO, lineIndex); return(rwDO); } - YY_BREAK - case 70: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwDO, lineIndex ); return(rwDO); } + YY_BREAK +case 70: +YY_RULE_SETUP #line 198 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwIF, lineIndex); return(rwIF); } - YY_BREAK - case 71: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwIF, lineIndex ); return(rwIF); } + YY_BREAK +case 71: +YY_RULE_SETUP #line 199 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwFOREACHSTR, lineIndex); return(rwFOREACHSTR); } - YY_BREAK - case 72: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwFOREACHSTR, lineIndex ); return(rwFOREACHSTR); } + YY_BREAK +case 72: +YY_RULE_SETUP #line 200 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwFOREACH, lineIndex); return(rwFOREACH); } - YY_BREAK - case 73: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwFOREACH, lineIndex ); return(rwFOREACH); } + YY_BREAK +case 73: +YY_RULE_SETUP #line 201 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwFOR, lineIndex); return(rwFOR); } - YY_BREAK - case 74: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwFOR, lineIndex ); return(rwFOR); } + YY_BREAK +case 74: +YY_RULE_SETUP #line 202 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwCONTINUE, lineIndex); return(rwCONTINUE); } - YY_BREAK - case 75: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwCONTINUE, lineIndex ); return(rwCONTINUE); } + YY_BREAK +case 75: +YY_RULE_SETUP #line 203 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwDEFINE, lineIndex); return(rwDEFINE); } - YY_BREAK - case 76: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwDEFINE, lineIndex ); return(rwDEFINE); } + YY_BREAK +case 76: +YY_RULE_SETUP #line 204 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwDECLARE, lineIndex); return(rwDECLARE); } - YY_BREAK - case 77: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwDECLARE, lineIndex ); return(rwDECLARE); } + YY_BREAK +case 77: +YY_RULE_SETUP #line 205 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwDECLARESINGLETON, lineIndex); return(rwDECLARESINGLETON); } - YY_BREAK - case 78: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwDECLARESINGLETON, lineIndex ); return(rwDECLARESINGLETON); } + YY_BREAK +case 78: +YY_RULE_SETUP #line 206 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwDATABLOCK, lineIndex); return(rwDATABLOCK); } - YY_BREAK - case 79: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwDATABLOCK, lineIndex ); return(rwDATABLOCK); } + YY_BREAK +case 79: +YY_RULE_SETUP #line 207 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwCASE, lineIndex); return(rwCASE); } - YY_BREAK - case 80: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwCASE, lineIndex ); return(rwCASE); } + YY_BREAK +case 80: +YY_RULE_SETUP #line 208 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwSWITCHSTR, lineIndex); return(rwSWITCHSTR); } - YY_BREAK - case 81: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwSWITCHSTR, lineIndex ); return(rwSWITCHSTR); } + YY_BREAK +case 81: +YY_RULE_SETUP #line 209 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwSWITCH, lineIndex); return(rwSWITCH); } - YY_BREAK - case 82: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwSWITCH, lineIndex ); return(rwSWITCH); } + YY_BREAK +case 82: +YY_RULE_SETUP #line 210 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwDEFAULT, lineIndex); return(rwDEFAULT); } - YY_BREAK - case 83: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwDEFAULT, lineIndex ); return(rwDEFAULT); } + YY_BREAK +case 83: +YY_RULE_SETUP #line 211 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwPACKAGE, lineIndex); return(rwPACKAGE); } - YY_BREAK - case 84: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwPACKAGE, lineIndex ); return(rwPACKAGE); } + YY_BREAK +case 84: +YY_RULE_SETUP #line 212 "CMDscan.l" - { CMDlval.i = MakeToken< int >(rwNAMESPACE, lineIndex); return(rwNAMESPACE); } - YY_BREAK - case 85: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( rwNAMESPACE, lineIndex ); return(rwNAMESPACE); } + YY_BREAK +case 85: +YY_RULE_SETUP #line 213 "CMDscan.l" - { CMDlval.i = MakeToken< int >(1, lineIndex); return INTCONST; } - YY_BREAK - case 86: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( 1, lineIndex ); return INTCONST; } + YY_BREAK +case 86: +YY_RULE_SETUP #line 214 "CMDscan.l" - { CMDlval.i = MakeToken< int >(0, lineIndex); return INTCONST; } - YY_BREAK - case 87: - YY_RULE_SETUP +{ CMDlval.i = MakeToken< int >( 0, lineIndex ); return INTCONST; } + YY_BREAK +case 87: +YY_RULE_SETUP #line 215 "CMDscan.l" - { return(Sc_ScanVar()); } - YY_BREAK - case 88: - YY_RULE_SETUP +{ return(Sc_ScanVar()); } + YY_BREAK +case 88: +YY_RULE_SETUP #line 216 "CMDscan.l" - { return Sc_ScanIdent(); } - YY_BREAK - case 89: - YY_RULE_SETUP +{ return Sc_ScanIdent(); } + YY_BREAK +case 89: +YY_RULE_SETUP #line 217 "CMDscan.l" - return(Sc_ScanHex()); - YY_BREAK - case 90: - YY_RULE_SETUP +return(Sc_ScanHex()); + YY_BREAK +case 90: +YY_RULE_SETUP #line 218 "CMDscan.l" - { CMDtext[CMDleng] = 0; CMDlval.i = MakeToken< int >(dAtoi(CMDtext), lineIndex); return INTCONST; } - YY_BREAK - case 91: - YY_RULE_SETUP +{ CMDtext[CMDleng] = 0; CMDlval.i = MakeToken< int >( dAtoi(CMDtext), lineIndex ); return INTCONST; } + YY_BREAK +case 91: +YY_RULE_SETUP #line 219 "CMDscan.l" - return Sc_ScanNum(); - YY_BREAK - case 92: - YY_RULE_SETUP +return Sc_ScanNum(); + YY_BREAK +case 92: +YY_RULE_SETUP #line 220 "CMDscan.l" - return(ILLEGAL_TOKEN); - YY_BREAK - case 93: - YY_RULE_SETUP +return(ILLEGAL_TOKEN); + YY_BREAK +case 93: +YY_RULE_SETUP #line 221 "CMDscan.l" - return(ILLEGAL_TOKEN); - YY_BREAK - case 94: - YY_RULE_SETUP +return(ILLEGAL_TOKEN); + YY_BREAK +case 94: +YY_RULE_SETUP #line 222 "CMDscan.l" - ECHO; - YY_BREAK +ECHO; + YY_BREAK #line 1291 "CMDscan.cpp" - case YY_STATE_EOF(INITIAL): - yyterminate(); +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; + 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; + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yy_hold_char; - if (yy_current_buffer->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->yy_n_chars; - yy_current_buffer->yy_input_file = yyin; - yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; - } + if ( yy_current_buffer->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->yy_n_chars; + yy_current_buffer->yy_input_file = yyin; + yy_current_buffer->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->yy_ch_buf[yy_n_chars]) - { /* This was really a NUL. */ - yy_state_type yy_next_state; + /* 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->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_c_buf_p = yytext_ptr + yy_amount_of_matched_text; - yy_current_state = yy_get_previous_state(); + 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). - */ + /* 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_next_state = yy_try_NUL_trans( yy_current_state ); - yy_bp = yytext_ptr + YY_MORE_ADJ; + 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; - } + 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 + { + 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; + 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; + 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; - } + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } - else - { - if (!yy_did_buffer_switch_on_eof) - YY_NEW_FILE; - } - break; - } + 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; + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = + yytext_ptr + yy_amount_of_matched_text; - yy_current_state = yy_get_previous_state(); + yy_current_state = yy_get_previous_state(); - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; - goto yy_match; + 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->yy_ch_buf[yy_n_chars]; + case EOB_ACT_LAST_MATCH: + yy_c_buf_p = + &yy_current_buffer->yy_ch_buf[yy_n_chars]; - yy_current_state = yy_get_previous_state(); + 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; - } + 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 yylex */ + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* 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 - */ +/* 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() -{ - register char *dest = yy_current_buffer->yy_ch_buf; - register char *source = yytext_ptr; - register int number_to_move, i; - int ret_val; +static int yy_get_next_buffer() + { + register char *dest = yy_current_buffer->yy_ch_buf; + register char *source = yytext_ptr; + register int number_to_move, i; + int ret_val; - if (yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1]) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed"); + if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); - if (yy_current_buffer->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 singled characater, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } + if ( yy_current_buffer->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 singled characater, 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; - } - } + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } - /* Try to read more data. */ + /* Try to read more data. */ - /* First move last chars to start of buffer. */ - number_to_move = (int)(yy_c_buf_p - yytext_ptr) - 1; + /* 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++); + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); - if (yy_current_buffer->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_n_chars = 0; + if ( yy_current_buffer->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_n_chars = 0; - else - { - int num_to_read = - yy_current_buffer->yy_buf_size - number_to_move - 1; + else + { + int num_to_read = + yy_current_buffer->yy_buf_size - number_to_move - 1; - while (num_to_read <= 0) - { /* Not enough room in the buffer - grow it. */ + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT - YY_FATAL_ERROR( - "input buffer overflow, can't enlarge buffer because scanner uses REJECT"); + YY_FATAL_ERROR( +"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = yy_current_buffer; + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = yy_current_buffer; - int yy_c_buf_p_offset = - (int)(yy_c_buf_p - b->yy_ch_buf); + 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 ( 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; + 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. */ - yy_flex_realloc((void *)b->yy_ch_buf, - b->yy_buf_size + 2); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yy_flex_realloc( (void *) b->yy_ch_buf, + b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; - if (!b->yy_ch_buf) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow"); + 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]; + yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; - num_to_read = yy_current_buffer->yy_buf_size - - number_to_move - 1; + num_to_read = yy_current_buffer->yy_buf_size - + number_to_move - 1; #endif - } + } - if (num_to_read > YY_READ_BUF_SIZE) - num_to_read = YY_READ_BUF_SIZE; + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; - /* Read in more data. */ - YY_INPUT((&yy_current_buffer->yy_ch_buf[number_to_move]), - yy_n_chars, num_to_read); - } + /* Read in more data. */ + YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), + yy_n_chars, num_to_read ); + } - if (yy_n_chars == 0) - { - if (number_to_move == YY_MORE_ADJ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin); - } + 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->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } + else + { + ret_val = EOB_ACT_LAST_MATCH; + yy_current_buffer->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } - else - ret_val = EOB_ACT_CONTINUE_SCAN; + else + ret_val = EOB_ACT_CONTINUE_SCAN; - yy_n_chars += number_to_move; - yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; - yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + yy_n_chars += number_to_move; + yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; + yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; + yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; - return ret_val; -} + 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() -{ - register yy_state_type yy_current_state; - register char *yy_cp; + { + register yy_state_type yy_current_state; + register char *yy_cp; - yy_current_state = yy_start; + yy_current_state = yy_start; - for (yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp) - { - register 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 >= 224) - yy_c = yy_meta[(unsigned int)yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)yy_c]; - } + for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + { + register 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 >= 224 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } - return yy_current_state; -} + 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 ); -*/ + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ #ifdef YY_USE_PROTOS -static yy_state_type yy_try_NUL_trans(yy_state_type yy_current_state) +static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else -static yy_state_type yy_try_NUL_trans(yy_current_state) +static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif -{ - register int yy_is_jam; - register char *yy_cp = yy_c_buf_p; + { + register int yy_is_jam; + register char *yy_cp = yy_c_buf_p; - register 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 >= 224) - yy_c = yy_meta[(unsigned int)yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)yy_c]; - yy_is_jam = (yy_current_state == 223); + register 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 >= 224 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 223); - return yy_is_jam ? 0 : yy_current_state; -} + return yy_is_jam ? 0 : yy_current_state; + } #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS -static void yyunput(int c, register char *yy_bp) +static void yyunput( int c, register char *yy_bp ) #else -static void yyunput(c, yy_bp) +static void yyunput( c, yy_bp ) int c; register char *yy_bp; #endif -{ - register char *yy_cp = yy_c_buf_p; + { + register char *yy_cp = yy_c_buf_p; - /* undo effects of setting up yytext */ - *yy_cp = yy_hold_char; + /* undo effects of setting up yytext */ + *yy_cp = yy_hold_char; - if (yy_cp < yy_current_buffer->yy_ch_buf + 2) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = yy_n_chars + 2; - register char *dest = &yy_current_buffer->yy_ch_buf[ - yy_current_buffer->yy_buf_size + 2]; - register char *source = - &yy_current_buffer->yy_ch_buf[number_to_move]; + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register int number_to_move = yy_n_chars + 2; + register char *dest = &yy_current_buffer->yy_ch_buf[ + yy_current_buffer->yy_buf_size + 2]; + register char *source = + &yy_current_buffer->yy_ch_buf[number_to_move]; - while (source > yy_current_buffer->yy_ch_buf) - *--dest = *--source; + while ( source > yy_current_buffer->yy_ch_buf ) + *--dest = *--source; - yy_cp += (int)(dest - source); - yy_bp += (int)(dest - source); - yy_n_chars = yy_current_buffer->yy_buf_size; + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + yy_n_chars = yy_current_buffer->yy_buf_size; - if (yy_cp < yy_current_buffer->yy_ch_buf + 2) - YY_FATAL_ERROR("flex scanner push-back overflow"); - } + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } - *--yy_cp = (char)c; + *--yy_cp = (char) c; - yytext_ptr = yy_bp; - yy_hold_char = *yy_cp; - yy_c_buf_p = yy_cp; -} + yytext_ptr = yy_bp; + yy_hold_char = *yy_cp; + yy_c_buf_p = yy_cp; + } #endif /* ifndef YY_NO_UNPUT */ @@ -1669,384 +1670,384 @@ static int yyinput() #else static int input() #endif -{ - int c; + { + int c; - *yy_c_buf_p = yy_hold_char; + *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->yy_ch_buf[yy_n_chars]) - /* This was really a NUL. */ - *yy_c_buf_p = '\0'; + 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->yy_ch_buf[yy_n_chars] ) + /* This was really a NUL. */ + *yy_c_buf_p = '\0'; - else - { /* need more input */ - yytext_ptr = yy_c_buf_p; - ++yy_c_buf_p; + else + { /* need more input */ + yytext_ptr = yy_c_buf_p; + ++yy_c_buf_p; - switch (yy_get_next_buffer()) - { - case EOB_ACT_END_OF_FILE: - { - if (yywrap()) - { - yy_c_buf_p = - yytext_ptr + YY_MORE_ADJ; - return EOF; - } + switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + if ( yywrap() ) + { + yy_c_buf_p = + yytext_ptr + YY_MORE_ADJ; + return EOF; + } - if (!yy_did_buffer_switch_on_eof) - YY_NEW_FILE; + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; #ifdef __cplusplus - return yyinput(); + return yyinput(); #else - return input(); + return input(); #endif - } + } - case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; - break; + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + break; - case EOB_ACT_LAST_MATCH: + case EOB_ACT_LAST_MATCH: #ifdef __cplusplus - YY_FATAL_ERROR( - "unexpected last match in yyinput()"); + YY_FATAL_ERROR( + "unexpected last match in yyinput()" ); #else - YY_FATAL_ERROR( - "unexpected last match in input()"); + YY_FATAL_ERROR( + "unexpected last match in input()" ); #endif - } - } - } + } + } + } - 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; + 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; - return c; -} + return c; + } #ifdef YY_USE_PROTOS -void yyrestart(FILE *input_file) +void yyrestart( FILE *input_file ) #else -void yyrestart(input_file) +void yyrestart( input_file ) FILE *input_file; #endif -{ - if (!yy_current_buffer) - yy_current_buffer = yy_create_buffer(yyin, YY_BUF_SIZE); + { + if ( ! yy_current_buffer ) + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); - yy_init_buffer(yy_current_buffer, input_file); - yy_load_buffer_state(); -} + yy_init_buffer( yy_current_buffer, input_file ); + yy_load_buffer_state(); + } #ifdef YY_USE_PROTOS -void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer) +void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else -void yy_switch_to_buffer(new_buffer) +void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif -{ - if (yy_current_buffer == new_buffer) - return; + { + 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->yy_buf_pos = yy_c_buf_p; - yy_current_buffer->yy_n_chars = yy_n_chars; - } + if ( yy_current_buffer ) + { + /* Flush out information for old buffer. */ + *yy_c_buf_p = yy_hold_char; + yy_current_buffer->yy_buf_pos = yy_c_buf_p; + yy_current_buffer->yy_n_chars = yy_n_chars; + } - yy_current_buffer = new_buffer; - yy_load_buffer_state(); + yy_current_buffer = 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; -} + /* 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; + } #ifdef YY_USE_PROTOS -void yy_load_buffer_state(void) +void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif -{ - yy_n_chars = yy_current_buffer->yy_n_chars; - yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; - yyin = yy_current_buffer->yy_input_file; - yy_hold_char = *yy_c_buf_p; -} + { + yy_n_chars = yy_current_buffer->yy_n_chars; + yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; + yyin = yy_current_buffer->yy_input_file; + yy_hold_char = *yy_c_buf_p; + } #ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_create_buffer(FILE *file, int size) +YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else -YY_BUFFER_STATE yy_create_buffer(file, size) +YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif -{ - YY_BUFFER_STATE b; + { + YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE)yy_flex_alloc(sizeof(struct yy_buffer_state)); - if (!b) - YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()"); + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = size; + 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 *)yy_flex_alloc(b->yy_buf_size + 2); - if (!b->yy_ch_buf) - YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()"); + /* 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 *) yy_flex_alloc( 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; + b->yy_is_our_buffer = 1; - yy_init_buffer(b, file); + yy_init_buffer( b, file ); - return b; -} + return b; + } #ifdef YY_USE_PROTOS -void yy_delete_buffer(YY_BUFFER_STATE b) +void yy_delete_buffer( YY_BUFFER_STATE b ) #else -void yy_delete_buffer(b) +void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif -{ - if (!b) - return; + { + if ( ! b ) + return; - if (b == yy_current_buffer) - yy_current_buffer = (YY_BUFFER_STATE)0; + if ( b == yy_current_buffer ) + yy_current_buffer = (YY_BUFFER_STATE) 0; - if (b->yy_is_our_buffer) - yy_flex_free((void *)b->yy_ch_buf); + if ( b->yy_is_our_buffer ) + yy_flex_free( (void *) b->yy_ch_buf ); - yy_flex_free((void *)b); -} + yy_flex_free( (void *) b ); + } #ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO((int)); +extern int isatty YY_PROTO(( int )); #endif #endif #ifdef YY_USE_PROTOS -void yy_init_buffer(YY_BUFFER_STATE b, FILE *file) +void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else -void yy_init_buffer(b, file) +void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif -{ - yy_flush_buffer(b); + { + yy_flush_buffer( b ); - b->yy_input_file = file; - b->yy_fill_buffer = 1; + b->yy_input_file = file; + b->yy_fill_buffer = 1; #if YY_ALWAYS_INTERACTIVE - b->yy_is_interactive = 1; + b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE - b->yy_is_interactive = 0; + b->yy_is_interactive = 0; #else - b->yy_is_interactive = file ? (isatty(fileno(file)) > 0) : 0; + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif -} + } #ifdef YY_USE_PROTOS -void yy_flush_buffer(YY_BUFFER_STATE b) +void yy_flush_buffer( YY_BUFFER_STATE b ) #else -void yy_flush_buffer(b) +void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif -{ - b->yy_n_chars = 0; + { + 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; + /* 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_buf_pos = &b->yy_ch_buf[0]; - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; - if (b == yy_current_buffer) - yy_load_buffer_state(); -} + if ( b == yy_current_buffer ) + yy_load_buffer_state(); + } #ifndef YY_NO_SCAN_BUFFER #ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_buffer(char *base, yy_size_t size) +YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) #else -YY_BUFFER_STATE yy_scan_buffer(base, size) +YY_BUFFER_STATE yy_scan_buffer( base, size ) char *base; yy_size_t size; #endif -{ - YY_BUFFER_STATE b; + { + 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 0; + 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 0; - b = (YY_BUFFER_STATE)yy_flex_alloc(sizeof(struct yy_buffer_state)); - if (!b) - YY_FATAL_ERROR("out of dynamic memory in yy_scan_buffer()"); + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = 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 = 0; - 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; + b->yy_buf_size = 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 = 0; + 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); + yy_switch_to_buffer( b ); - return b; -} + return b; + } #endif #ifndef YY_NO_SCAN_STRING #ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_string(yyconst char *str) +YY_BUFFER_STATE yy_scan_string( yyconst char *str ) #else -YY_BUFFER_STATE yy_scan_string(str) +YY_BUFFER_STATE yy_scan_string( str ) yyconst char *str; #endif -{ - int len; - for (len = 0; str[len]; ++len) - ; + { + int len; + for ( len = 0; str[len]; ++len ) + ; - return yy_scan_bytes(str, len); -} + return yy_scan_bytes( str, len ); + } #endif #ifndef YY_NO_SCAN_BYTES #ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_bytes(yyconst char *bytes, int len) +YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) #else -YY_BUFFER_STATE yy_scan_bytes(bytes, len) +YY_BUFFER_STATE yy_scan_bytes( bytes, len ) yyconst char *bytes; int len; #endif -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; + { + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; - /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; - buf = (char *)yy_flex_alloc(n); - if (!buf) - YY_FATAL_ERROR("out of dynamic memory in yy_scan_bytes()"); + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) yy_flex_alloc( n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - for (i = 0; i < len; ++i) - buf[i] = bytes[i]; + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; - buf[len] = buf[len + 1] = YY_END_OF_BUFFER_CHAR; + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf, n); - if (!b) - YY_FATAL_ERROR("bad buffer in yy_scan_bytes()"); + 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; + /* 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; -} + return b; + } #endif #ifndef YY_NO_PUSH_STATE #ifdef YY_USE_PROTOS -static void yy_push_state(int new_state) +static void yy_push_state( int new_state ) #else -static void yy_push_state(new_state) +static void yy_push_state( new_state ) int new_state; #endif -{ - if (yy_start_stack_ptr >= yy_start_stack_depth) - { - yy_size_t new_size; + { + if ( yy_start_stack_ptr >= yy_start_stack_depth ) + { + yy_size_t new_size; - yy_start_stack_depth += YY_START_STACK_INCR; - new_size = yy_start_stack_depth * sizeof(int); + yy_start_stack_depth += YY_START_STACK_INCR; + new_size = yy_start_stack_depth * sizeof( int ); - if (!yy_start_stack) - yy_start_stack = (int *)yy_flex_alloc(new_size); + if ( ! yy_start_stack ) + yy_start_stack = (int *) yy_flex_alloc( new_size ); - else - yy_start_stack = (int *)yy_flex_realloc( - (void *)yy_start_stack, new_size); + else + yy_start_stack = (int *) yy_flex_realloc( + (void *) yy_start_stack, new_size ); - if (!yy_start_stack) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack"); - } + if ( ! yy_start_stack ) + YY_FATAL_ERROR( + "out of memory expanding start-condition stack" ); + } - yy_start_stack[yy_start_stack_ptr++] = YY_START; + yy_start_stack[yy_start_stack_ptr++] = YY_START; - BEGIN(new_state); -} + BEGIN(new_state); + } #endif #ifndef YY_NO_POP_STATE static void yy_pop_state() -{ - if (--yy_start_stack_ptr < 0) - YY_FATAL_ERROR("start-condition stack underflow"); + { + if ( --yy_start_stack_ptr < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); - BEGIN(yy_start_stack[yy_start_stack_ptr]); -} + BEGIN(yy_start_stack[yy_start_stack_ptr]); + } #endif #ifndef YY_NO_TOP_STATE static int yy_top_state() -{ - return yy_start_stack[yy_start_stack_ptr - 1]; -} + { + return yy_start_stack[yy_start_stack_ptr - 1]; + } #endif #ifndef YY_EXIT_FAILURE @@ -2054,15 +2055,15 @@ static int yy_top_state() #endif #ifdef YY_USE_PROTOS -static void yy_fatal_error(yyconst char msg[]) +static void yy_fatal_error( yyconst char msg[] ) #else -static void yy_fatal_error(msg) +static void yy_fatal_error( msg ) char msg[]; #endif -{ - (void)fprintf(stderr, "%s\n", msg); - exit(YY_EXIT_FAILURE); -} + { + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); + } @@ -2086,65 +2087,65 @@ char msg[]; #ifndef yytext_ptr #ifdef YY_USE_PROTOS -static void yy_flex_strncpy(char *s1, yyconst char *s2, int n) +static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) #else -static void yy_flex_strncpy(s1, s2, n) +static void yy_flex_strncpy( s1, s2, n ) char *s1; yyconst char *s2; int n; #endif -{ - register int i; - for (i = 0; i < n; ++i) - s1[i] = s2[i]; -} + { + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; + } #endif #ifdef YY_USE_PROTOS -static void *yy_flex_alloc(yy_size_t size) +static void *yy_flex_alloc( yy_size_t size ) #else -static void *yy_flex_alloc(size) +static void *yy_flex_alloc( size ) yy_size_t size; #endif -{ - return (void *)malloc(size); -} + { + return (void *) malloc( size ); + } #ifdef YY_USE_PROTOS -static void *yy_flex_realloc(void *ptr, yy_size_t size) +static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else -static void *yy_flex_realloc(ptr, size) +static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *)realloc((char *)ptr, size); -} + { + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); + } #ifdef YY_USE_PROTOS -static void yy_flex_free(void *ptr) +static void yy_flex_free( void *ptr ) #else -static void yy_flex_free(ptr) +static void yy_flex_free( ptr ) void *ptr; #endif -{ - free(ptr); -} + { + free( ptr ); + } #if YY_MAIN int main() -{ - yylex(); - return 0; -} + { + yylex(); + return 0; + } #endif #line 222 "CMDscan.l" @@ -2172,59 +2173,59 @@ void CMDerror(char *format, ...) const int BUFMAX = 1024; char tempBuf[BUFMAX]; va_list args; - va_start(args, format); + va_start( args, format ); #ifdef TORQUE_OS_WIN - _vsnprintf(tempBuf, BUFMAX, format, args); + _vsnprintf( tempBuf, BUFMAX, format, args ); #else - vsnprintf(tempBuf, BUFMAX, format, args); + vsnprintf( tempBuf, BUFMAX, format, args ); #endif - va_end(args); + va_end(args); - if (fileName) + if(fileName) { Con::errorf(ConsoleLogEntry::Script, "%s Line: %d - %s", fileName, lineIndex, tempBuf); #ifndef NO_ADVANCED_ERROR_REPORT // dhc - lineIndex is bogus. let's try to add some sanity back in. - int i, j, n; + int i,j,n; char c; int linediv = 1; // first, walk the buffer, trying to detect line ending type. // this is imperfect, if inconsistant line endings exist... - for (i = 0; iBUFMAX >> 2) break; // at least get a little data + c = scanBuffer[scanIndex-i]; + if ((c=='\r' || c=='\n') && i>BUFMAX>>2) break; // at least get a little data n++; i++; } // find next lineending - while (n>1) // cap at half-buf-size forward + while (n>1) // cap at half-buf-size forward { - c = scanBuffer[scanIndex + j]; - if (c == 0) break; - if ((c == '\r' || c == '\n') && j>BUFMAX >> 2) break; // at least get a little data + c = scanBuffer[scanIndex+j]; + if (c==0) break; + if ((c=='\r' || c=='\n') && j>BUFMAX>>2) break; // at least get a little data n++; j++; } if (i) i--; // chop off extra linefeed. if (j) j--; // chop off extra linefeed. - // build our little text block - if (i) dStrncpy(tempBuf, scanBuffer + scanIndex - i, i); - dStrncpy(tempBuf + i, "##", 2); // bracketing. - tempBuf[i + 2] = scanBuffer[scanIndex]; // copy the halt character. - dStrncpy(tempBuf + i + 3, "##", 2); // bracketing. - if (j) dStrncpy(tempBuf + i + 5, scanBuffer + scanIndex + 1, j); // +1 to go past current char. - tempBuf[i + j + 5] = 0; // null terminate - for (n = 0; n>> Advanced script error report. Line %d.", lineIndex); Con::warnf(ConsoleLogEntry::Script, ">>> Some error context, with ## on sides of error halt:"); @@ -2241,7 +2242,7 @@ void CMDerror(char *format, ...) Con::setVariable("$ScriptError", tempBuf); // We also need to mark that we came up with a new error. - static S32 sScriptErrorHash = 1000; + static S32 sScriptErrorHash=1000; Con::setIntVariable("$ScriptErrorHash", sScriptErrorHash++); } else @@ -2259,7 +2260,7 @@ void CMDSetScanBuffer(const char *sb, const char *fn) int CMDgetc() { int ret = scanBuffer[scanIndex]; - if (ret) + if(ret) scanIndex++; else ret = -1; @@ -2277,13 +2278,13 @@ static int Sc_ScanVar() CMDtext[CMDleng] = 0; // Make it a stringtable string! - CMDlval.s = MakeToken< StringTableEntry >(StringTable->insert(CMDtext), lineIndex); + CMDlval.s = MakeToken< StringTableEntry >( StringTable->insert(CMDtext), lineIndex ); return(VAR); } static int charConv(int in) { - switch (in) + switch(in) { case 'r': return '\r'; @@ -2298,11 +2299,11 @@ static int charConv(int in) static int getHexDigit(char c) { - if (c >= '0' && c <= '9') + if(c >= '0' && c <= '9') return c - '0'; - if (c >= 'A' && c <= 'F') + if(c >= 'A' && c <= 'F') return c - 'A' + 10; - if (c >= 'a' && c <= 'f') + if(c >= 'a' && c <= 'f') return c - 'a' + 10; return -1; } @@ -2310,41 +2311,41 @@ static int getHexDigit(char c) static int Sc_ScanDocBlock() { S32 len = dStrlen(CMDtext); - char* text = (char *)consoleAlloc(len + 1); + char* text = (char *) consoleAlloc(len + 1); S32 line = lineIndex; - for (S32 i = 0, j = 0; j <= len; j++) + for( S32 i = 0, j = 0; j <= len; j++ ) { - if ((j <= (len - 2)) && (CMDtext[j] == '/') && (CMDtext[j + 1] == '/') && (CMDtext[j + 2] == '/')) + if( ( j <= (len - 2) ) && ( CMDtext[j] == '/' ) && ( CMDtext[j + 1] == '/' ) && ( CMDtext[j + 2] == '/' ) ) { j += 2; continue; } - if (CMDtext[j] == '\r') + if( CMDtext[j] == '\r' ) continue; - if (CMDtext[j] == '\n') + if( CMDtext[j] == '\n' ) lineIndex++; text[i++] = CMDtext[j]; } - CMDlval.str = MakeToken< char* >(text, line); + CMDlval.str = MakeToken< char* >( text, line ); return(DOCBLOCK); } static int Sc_ScanString(int ret) { CMDtext[CMDleng - 1] = 0; - if (!collapseEscape(CMDtext + 1)) + if(!collapseEscape(CMDtext+1)) return -1; - dsize_t bufferLen = dStrlen(CMDtext); - char* buffer = (char*)consoleAlloc(bufferLen); - dStrcpy(buffer, CMDtext + 1, bufferLen); + dsize_t bufferLen = dStrlen( CMDtext ); + char* buffer = ( char* ) consoleAlloc( bufferLen ); + dStrcpy( buffer, CMDtext + 1, bufferLen ); - CMDlval.str = MakeToken< char* >(buffer, lineIndex); + CMDlval.str = MakeToken< char* >( buffer, lineIndex ); return ret; } @@ -2354,96 +2355,96 @@ static int Sc_ScanIdent() CMDtext[CMDleng] = 0; - if ((type = ConsoleBaseType::getTypeByName(CMDtext)) != NULL) + if((type = ConsoleBaseType::getTypeByName(CMDtext)) != NULL) { /* It's a type */ - CMDlval.i = MakeToken< int >(type->getTypeID(), lineIndex); + CMDlval.i = MakeToken< int >( type->getTypeID(), lineIndex ); return TYPEIDENT; } /* It's an identifier */ - CMDlval.s = MakeToken< StringTableEntry >(StringTable->insert(CMDtext), lineIndex); + CMDlval.s = MakeToken< StringTableEntry >( StringTable->insert(CMDtext), lineIndex ); return IDENT; } void expandEscape(char *dest, const char *src) { U8 c; - while ((c = (U8)*src++) != 0) + while((c = (U8) *src++) != 0) { - if (c == '\"') + if(c == '\"') { *dest++ = '\\'; *dest++ = '\"'; } - else if (c == '\\') + else if(c == '\\') { *dest++ = '\\'; *dest++ = '\\'; } - else if (c == '\r') + else if(c == '\r') { *dest++ = '\\'; *dest++ = 'r'; } - else if (c == '\n') + else if(c == '\n') { *dest++ = '\\'; *dest++ = 'n'; } - else if (c == '\t') + else if(c == '\t') { *dest++ = '\\'; *dest++ = 't'; } - else if (c == '\'') + else if(c == '\'') { *dest++ = '\\'; *dest++ = '\''; } - else if ((c >= 1 && c <= 7) || - (c >= 11 && c <= 12) || - (c >= 14 && c <= 15)) + else if((c >= 1 && c <= 7) || + (c >= 11 && c <= 12) || + (c >= 14 && c <= 15)) { - /* Remap around: \b = 0x8, \t = 0x9, \n = 0xa, \r = 0xd */ - static U8 expandRemap[15] = { 0x0, - 0x0, - 0x1, - 0x2, - 0x3, - 0x4, - 0x5, - 0x6, - 0x0, - 0x0, - 0x0, - 0x7, - 0x8, - 0x0, - 0x9 }; + /* Remap around: \b = 0x8, \t = 0x9, \n = 0xa, \r = 0xd */ + static U8 expandRemap[15] = { 0x0, + 0x0, + 0x1, + 0x2, + 0x3, + 0x4, + 0x5, + 0x6, + 0x0, + 0x0, + 0x0, + 0x7, + 0x8, + 0x0, + 0x9 }; *dest++ = '\\'; *dest++ = 'c'; - if (c == 15) + if(c == 15) *dest++ = 'r'; - else if (c == 16) + else if(c == 16) *dest++ = 'p'; - else if (c == 17) + else if(c == 17) *dest++ = 'o'; else *dest++ = expandRemap[c] + '0'; } - else if (c < 32) + else if(c < 32) { *dest++ = '\\'; *dest++ = 'x'; S32 dig1 = c >> 4; S32 dig2 = c & 0xf; - if (dig1 < 10) + if(dig1 < 10) dig1 += '0'; else dig1 += 'A' - 10; - if (dig2 < 10) + if(dig2 < 10) dig2 += '0'; else dig2 += 'A' - 10; @@ -2459,56 +2460,56 @@ void expandEscape(char *dest, const char *src) bool collapseEscape(char *buf) { S32 len = dStrlen(buf) + 1; - for (S32 i = 0; i < len;) + for(S32 i = 0; i < len;) { - if (buf[i] == '\\') + if(buf[i] == '\\') { - if (buf[i + 1] == 'x') + if(buf[i+1] == 'x') { - S32 dig1 = getHexDigit(buf[i + 2]); - if (dig1 == -1) + S32 dig1 = getHexDigit(buf[i+2]); + if(dig1 == -1) return false; - S32 dig2 = getHexDigit(buf[i + 3]); - if (dig2 == -1) + S32 dig2 = getHexDigit(buf[i+3]); + if(dig2 == -1) return false; buf[i] = dig1 * 16 + dig2; dMemmove(buf + i + 1, buf + i + 4, len - i - 3); len -= 3; i++; } - else if (buf[i + 1] == 'c') + else if(buf[i+1] == 'c') { /* Remap around: \b = 0x8, \t = 0x9, \n = 0xa, \r = 0xd */ static U8 collapseRemap[10] = { 0x1, - 0x2, - 0x3, - 0x4, - 0x5, - 0x6, - 0x7, - 0xb, - 0xc, - 0xe }; + 0x2, + 0x3, + 0x4, + 0x5, + 0x6, + 0x7, + 0xb, + 0xc, + 0xe }; - if (buf[i + 2] == 'r') - buf[i] = 15; - else if (buf[i + 2] == 'p') + if(buf[i+2] == 'r') + buf[i] = 15; + else if(buf[i+2] == 'p') buf[i] = 16; - else if (buf[i + 2] == 'o') + else if(buf[i+2] == 'o') buf[i] = 17; else { - int dig1 = buf[i + 2] - '0'; - if (dig1 < 0 || dig1 > 9) - return false; - buf[i] = collapseRemap[dig1]; + int dig1 = buf[i+2] - '0'; + if(dig1 < 0 || dig1 > 9) + return false; + buf[i] = collapseRemap[dig1]; } // Make sure we don't put 0x1 at the beginning of the string. if ((buf[i] == 0x1) && (i == 0)) { buf[i] = 0x2; - buf[i + 1] = 0x1; + buf[i+1] = 0x1; dMemmove(buf + i + 2, buf + i + 3, len - i - 1); len -= 1; } @@ -2521,7 +2522,7 @@ bool collapseEscape(char *buf) } else { - buf[i] = charConv(buf[i + 1]); + buf[i] = charConv(buf[i+1]); dMemmove(buf + i + 1, buf + i + 2, len - i - 1); len--; i++; @@ -2536,7 +2537,7 @@ bool collapseEscape(char *buf) static int Sc_ScanNum() { CMDtext[CMDleng] = 0; - CMDlval.f = MakeToken< double >(dAtof(CMDtext), lineIndex); + CMDlval.f = MakeToken< double >( dAtof(CMDtext), lineIndex ); return(FLTCONST); } @@ -2544,7 +2545,7 @@ static int Sc_ScanHex() { S32 val = 0; dSscanf(CMDtext, "%x", &val); - CMDlval.i = MakeToken< int >(val, lineIndex); + CMDlval.i = MakeToken< int >( val, lineIndex ); return INTCONST; } diff --git a/Engine/source/console/cmdgram.cpp b/Engine/source/console/cmdgram.cpp index b5051786b..aab109792 100644 --- a/Engine/source/console/cmdgram.cpp +++ b/Engine/source/console/cmdgram.cpp @@ -1,6 +1,6 @@ /* A Bison parser, made from cmdgram.y with Bison version GNU Bison version 1.24 -*/ + */ #define YYBISON 1 /* Identify Bison output. */ @@ -129,13 +129,13 @@ struct Token #line 44 "cmdgram.y" -/* Reserved Word Definitions */ + /* Reserved Word Definitions */ #line 55 "cmdgram.y" -/* Constants and Identifier Definitions */ + /* Constants and Identifier Definitions */ #line 69 "cmdgram.y" -/* Operator Definitions */ + /* Operator Definitions */ #line 82 "cmdgram.y" typedef union { @@ -158,16 +158,16 @@ typedef union { #ifndef YYLTYPE typedef -struct yyltype -{ - int timestamp; - int first_line; - int first_column; - int last_line; - int last_column; - char *text; -} -yyltype; + struct yyltype + { + int timestamp; + int first_line; + int first_column; + int last_line; + int last_column; + char *text; + } + yyltype; #define YYLTYPE yyltype #endif @@ -182,165 +182,164 @@ yyltype; -#define YYFINAL 391 +#define YYFINAL 380 #define YYFLAG -32768 #define YYNTBASE 100 #define YYTRANSLATE(x) ((unsigned)(x) <= 329 ? yytranslate[x] : 140) -static const char 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, 64, 2, 2, 2, 54, 53, 2, 55, -56, 46, 44, 57, 45, 51, 47, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 58, 59, 48, -50, 49, 96, 65, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -92, 2, 99, 62, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 60, 52, 61, 63, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 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, 43, 66, 67, -68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -88, 89, 90, 91, 93, 94, 95, 97, 98 +static const char 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, 64, 2, 2, 2, 54, 53, 2, 55, + 56, 46, 44, 57, 45, 51, 47, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 58, 59, 48, + 50, 49, 96, 65, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 92, 2, 99, 62, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 60, 52, 61, 63, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 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, 43, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 93, 94, 95, 97, 98 }; #if YYDEBUG != 0 -static const short yyprhs[] = { 0, -0, 2, 3, 6, 8, 10, 12, 19, 21, 24, -25, 28, 30, 32, 34, 36, 38, 40, 43, 46, -49, 53, 56, 61, 68, 70, 79, 90, 91, 93, -95, 99, 110, 121, 129, 142, 152, 163, 171, 172, -175, 176, 178, 179, 182, 183, 185, 187, 190, 193, -197, 201, 203, 211, 219, 224, 232, 238, 240, 244, -250, 258, 264, 271, 281, 290, 299, 307, 316, 324, -332, 339, 347, 355, 357, 359, 363, 367, 371, 375, -379, 383, 387, 391, 395, 398, 401, 403, 409, 413, -417, 421, 425, 429, 433, 437, 441, 445, 449, 453, -457, 461, 464, 467, 469, 471, 473, 475, 477, 479, -481, 483, 485, 490, 498, 502, 509, 513, 517, 519, -523, 525, 527, 530, 533, 536, 539, 542, 545, 548, -551, 554, 557, 559, 561, 563, 567, 574, 577, 583, -586, 590, 596, 601, 608, 615, 620, 625, 632, 633, -635, 637, 641, 642, 644, 646, 649, 654, 660, 665, -673, 682, 684 +static const short yyprhs[] = { 0, + 0, 2, 3, 6, 8, 10, 12, 19, 21, 24, + 25, 28, 30, 32, 34, 36, 38, 40, 43, 46, + 49, 53, 56, 61, 68, 70, 79, 90, 91, 93, + 95, 99, 110, 121, 129, 142, 152, 163, 171, 172, + 175, 176, 178, 179, 182, 183, 185, 187, 190, 193, + 197, 201, 203, 211, 219, 224, 232, 238, 240, 244, + 250, 258, 264, 271, 281, 290, 299, 307, 316, 324, + 332, 339, 347, 355, 357, 359, 363, 367, 371, 375, + 379, 383, 387, 391, 395, 398, 401, 403, 409, 413, + 417, 421, 425, 429, 433, 437, 441, 445, 449, 453, + 457, 461, 464, 467, 469, 471, 473, 475, 477, 479, + 481, 483, 485, 490, 494, 501, 505, 509, 511, 515, + 517, 519, 522, 525, 528, 531, 534, 537, 540, 543, + 546, 549, 551, 553, 555, 559, 566, 569, 575, 578, + 582, 588, 593, 600, 607, 612, 619, 620, 622, 624, + 628, 629, 631, 633, 636, 641, 647, 652, 660, 669, + 671 }; -static const short yyrhs[] = { 101, -0, 0, 101, 102, 0, 106, 0, 107, 0, 103, -0, 29, 38, 60, 104, 61, 59, 0, 107, 0, -104, 107, 0, 0, 105, 106, 0, 121, 0, 122, -0, 123, 0, 124, 0, 110, 0, 118, 0, 7, -59, 0, 9, 59, 0, 13, 59, 0, 13, 126, -59, 0, 125, 59, 0, 36, 50, 126, 59, 0, -36, 50, 126, 57, 126, 59, 0, 40, 0, 3, -38, 55, 108, 56, 60, 105, 61, 0, 3, 38, -91, 38, 55, 108, 56, 60, 105, 61, 0, 0, -109, 0, 37, 0, 109, 57, 37, 0, 24, 129, -55, 126, 112, 56, 60, 136, 61, 59, 0, 5, -129, 55, 113, 112, 114, 56, 60, 115, 61, 0, -5, 129, 55, 113, 112, 114, 56, 0, 5, 129, -55, 92, 113, 99, 112, 114, 56, 60, 115, 61, -0, 5, 129, 55, 92, 113, 99, 112, 114, 56, -0, 6, 129, 55, 113, 112, 114, 56, 60, 115, -61, 0, 6, 129, 55, 113, 112, 114, 56, 0, -0, 58, 38, 0, 0, 126, 0, 0, 57, 135, -0, 0, 137, 0, 116, 0, 137, 116, 0, 111, -59, 0, 116, 111, 59, 0, 60, 105, 61, 0, -106, 0, 25, 55, 126, 56, 60, 119, 61, 0, -27, 55, 126, 56, 60, 119, 61, 0, 26, 120, -58, 105, 0, 26, 120, 58, 105, 19, 58, 105, -0, 26, 120, 58, 105, 119, 0, 126, 0, 120, -28, 126, 0, 11, 55, 126, 56, 117, 0, 11, -55, 126, 56, 117, 8, 117, 0, 14, 55, 126, -56, 117, 0, 15, 117, 14, 55, 126, 56, 0, -20, 55, 126, 59, 126, 59, 126, 56, 117, 0, -20, 55, 126, 59, 126, 59, 56, 117, 0, 20, -55, 126, 59, 59, 126, 56, 117, 0, 20, 55, -126, 59, 59, 56, 117, 0, 20, 55, 59, 126, -59, 126, 56, 117, 0, 20, 55, 59, 126, 59, -56, 117, 0, 20, 55, 59, 59, 126, 56, 117, -0, 20, 55, 59, 59, 56, 117, 0, 21, 55, -37, 23, 126, 56, 117, 0, 22, 55, 37, 23, -126, 56, 117, 0, 131, 0, 131, 0, 55, 126, -56, 0, 126, 62, 126, 0, 126, 54, 126, 0, -126, 53, 126, 0, 126, 52, 126, 0, 126, 44, -126, 0, 126, 45, 126, 0, 126, 46, 126, 0, -126, 47, 126, 0, 45, 126, 0, 46, 126, 0, -36, 0, 126, 96, 126, 58, 126, 0, 126, 48, -126, 0, 126, 49, 126, 0, 126, 86, 126, 0, -126, 87, 126, 0, 126, 84, 126, 0, 126, 85, -126, 0, 126, 89, 126, 0, 126, 71, 126, 0, -126, 72, 126, 0, 126, 88, 126, 0, 126, 90, -126, 0, 126, 97, 126, 0, 126, 65, 126, 0, -64, 126, 0, 63, 126, 0, 42, 0, 43, 0, -35, 0, 7, 0, 127, 0, 128, 0, 38, 0, -41, 0, 37, 0, 37, 92, 139, 99, 0, 3, -55, 108, 56, 60, 105, 61, 0, 126, 51, 38, -0, 126, 51, 38, 92, 139, 99, 0, 126, 66, -129, 0, 126, 67, 129, 0, 38, 0, 55, 126, -56, 0, 69, 0, 68, 0, 73, 126, 0, 74, -126, 0, 75, 126, 0, 76, 126, 0, 77, 126, -0, 78, 126, 0, 79, 126, 0, 80, 126, 0, -81, 126, 0, 82, 126, 0, 132, 0, 133, 0, -111, 0, 37, 50, 126, 0, 37, 92, 139, 99, -50, 126, 0, 37, 130, 0, 37, 92, 139, 99, -130, 0, 127, 130, 0, 127, 50, 126, 0, 127, -50, 60, 135, 61, 0, 38, 55, 134, 56, 0, -38, 91, 38, 55, 134, 56, 0, 126, 51, 38, -55, 134, 56, 0, 126, 55, 134, 56, 0, 32, -55, 126, 56, 0, 32, 55, 126, 57, 41, 56, -0, 0, 135, 0, 126, 0, 135, 57, 126, 0, -0, 137, 0, 138, 0, 137, 138, 0, 38, 50, -126, 59, 0, 39, 38, 50, 126, 59, 0, 24, -50, 126, 59, 0, 38, 92, 139, 99, 50, 126, -59, 0, 39, 38, 92, 139, 99, 50, 126, 59, -0, 126, 0, 139, 57, 126, 0 +static const short yyrhs[] = { 101, + 0, 0, 101, 102, 0, 106, 0, 107, 0, 103, + 0, 29, 38, 60, 104, 61, 59, 0, 107, 0, + 104, 107, 0, 0, 105, 106, 0, 121, 0, 122, + 0, 123, 0, 124, 0, 110, 0, 118, 0, 7, + 59, 0, 9, 59, 0, 13, 59, 0, 13, 126, + 59, 0, 125, 59, 0, 36, 50, 126, 59, 0, + 36, 50, 126, 57, 126, 59, 0, 40, 0, 3, + 38, 55, 108, 56, 60, 105, 61, 0, 3, 38, + 91, 38, 55, 108, 56, 60, 105, 61, 0, 0, + 109, 0, 37, 0, 109, 57, 37, 0, 24, 129, + 55, 126, 112, 56, 60, 136, 61, 59, 0, 5, + 129, 55, 113, 112, 114, 56, 60, 115, 61, 0, + 5, 129, 55, 113, 112, 114, 56, 0, 5, 129, + 55, 92, 113, 99, 112, 114, 56, 60, 115, 61, + 0, 5, 129, 55, 92, 113, 99, 112, 114, 56, + 0, 6, 129, 55, 113, 112, 114, 56, 60, 115, + 61, 0, 6, 129, 55, 113, 112, 114, 56, 0, + 0, 58, 38, 0, 0, 126, 0, 0, 57, 135, + 0, 0, 137, 0, 116, 0, 137, 116, 0, 111, + 59, 0, 116, 111, 59, 0, 60, 105, 61, 0, + 106, 0, 25, 55, 126, 56, 60, 119, 61, 0, + 27, 55, 126, 56, 60, 119, 61, 0, 26, 120, + 58, 105, 0, 26, 120, 58, 105, 19, 58, 105, + 0, 26, 120, 58, 105, 119, 0, 126, 0, 120, + 28, 126, 0, 11, 55, 126, 56, 117, 0, 11, + 55, 126, 56, 117, 8, 117, 0, 14, 55, 126, + 56, 117, 0, 15, 117, 14, 55, 126, 56, 0, + 20, 55, 126, 59, 126, 59, 126, 56, 117, 0, + 20, 55, 126, 59, 126, 59, 56, 117, 0, 20, + 55, 126, 59, 59, 126, 56, 117, 0, 20, 55, + 126, 59, 59, 56, 117, 0, 20, 55, 59, 126, + 59, 126, 56, 117, 0, 20, 55, 59, 126, 59, + 56, 117, 0, 20, 55, 59, 59, 126, 56, 117, + 0, 20, 55, 59, 59, 56, 117, 0, 21, 55, + 37, 23, 126, 56, 117, 0, 22, 55, 37, 23, + 126, 56, 117, 0, 131, 0, 131, 0, 55, 126, + 56, 0, 126, 62, 126, 0, 126, 54, 126, 0, + 126, 53, 126, 0, 126, 52, 126, 0, 126, 44, + 126, 0, 126, 45, 126, 0, 126, 46, 126, 0, + 126, 47, 126, 0, 45, 126, 0, 46, 126, 0, + 36, 0, 126, 96, 126, 58, 126, 0, 126, 48, + 126, 0, 126, 49, 126, 0, 126, 86, 126, 0, + 126, 87, 126, 0, 126, 84, 126, 0, 126, 85, + 126, 0, 126, 89, 126, 0, 126, 71, 126, 0, + 126, 72, 126, 0, 126, 88, 126, 0, 126, 90, + 126, 0, 126, 97, 126, 0, 126, 65, 126, 0, + 64, 126, 0, 63, 126, 0, 42, 0, 43, 0, + 35, 0, 7, 0, 127, 0, 128, 0, 38, 0, + 41, 0, 37, 0, 37, 92, 139, 99, 0, 126, + 51, 38, 0, 126, 51, 38, 92, 139, 99, 0, + 126, 66, 129, 0, 126, 67, 129, 0, 38, 0, + 55, 126, 56, 0, 69, 0, 68, 0, 73, 126, + 0, 74, 126, 0, 75, 126, 0, 76, 126, 0, + 77, 126, 0, 78, 126, 0, 79, 126, 0, 80, + 126, 0, 81, 126, 0, 82, 126, 0, 132, 0, + 133, 0, 111, 0, 37, 50, 126, 0, 37, 92, + 139, 99, 50, 126, 0, 37, 130, 0, 37, 92, + 139, 99, 130, 0, 127, 130, 0, 127, 50, 126, + 0, 127, 50, 60, 135, 61, 0, 38, 55, 134, + 56, 0, 38, 91, 38, 55, 134, 56, 0, 126, + 51, 38, 55, 134, 56, 0, 32, 55, 126, 56, + 0, 32, 55, 126, 57, 41, 56, 0, 0, 135, + 0, 126, 0, 135, 57, 126, 0, 0, 137, 0, + 138, 0, 137, 138, 0, 38, 50, 126, 59, 0, + 39, 38, 50, 126, 59, 0, 24, 50, 126, 59, + 0, 38, 92, 139, 99, 50, 126, 59, 0, 39, + 38, 92, 139, 99, 50, 126, 59, 0, 126, 0, + 139, 57, 126, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, -161, 166, 168, 173, 175, 177, 182, 187, 189, 194, -196, 201, 202, 203, 204, 205, 206, 207, 209, 211, -213, 215, 217, 219, 221, 226, 228, 233, 235, 240, -242, 247, 252, 254, 256, 258, 260, 262, 267, 269, -274, 276, 281, 283, 288, 290, 292, 294, 299, 301, -306, 308, 313, 315, 320, 322, 324, 329, 331, 336, -338, 343, 345, 350, 352, 354, 356, 358, 360, 362, -364, 369, 371, 376, 381, 383, 385, 387, 389, 391, -393, 395, 397, 399, 401, 403, 405, 407, 409, 411, -413, 415, 417, 419, 421, 423, 425, 427, 429, 431, -433, 435, 437, 439, 441, 443, 445, 447, 449, 451, -453, 455, 457, 459, 477, 479, 484, 486, 491, 493, -498, 500, 502, 504, 506, 508, 510, 512, 514, 516, -518, 520, 525, 527, 529, 531, 533, 535, 537, 539, -541, 543, 548, 550, 552, 554, 559, 561, 566, 568, -573, 575, 580, 582, 587, 589, 594, 596, 598, 600, -602, 607, 609 + 161, 166, 168, 173, 175, 177, 182, 187, 189, 194, + 196, 201, 202, 203, 204, 205, 206, 207, 209, 211, + 213, 215, 217, 219, 221, 226, 228, 233, 235, 240, + 242, 247, 252, 254, 256, 258, 260, 262, 267, 269, + 274, 276, 281, 283, 288, 290, 292, 294, 299, 301, + 306, 308, 313, 315, 320, 322, 324, 329, 331, 336, + 338, 343, 345, 350, 352, 354, 356, 358, 360, 362, + 364, 369, 371, 376, 381, 383, 385, 387, 389, 391, + 393, 395, 397, 399, 401, 403, 405, 407, 409, 411, + 413, 415, 417, 419, 421, 423, 425, 427, 429, 431, + 433, 435, 437, 439, 441, 443, 445, 447, 449, 451, + 453, 455, 457, 479, 481, 486, 488, 493, 495, 500, + 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, + 522, 527, 529, 531, 533, 535, 537, 539, 541, 543, + 545, 550, 552, 554, 564, 566, 571, 573, 578, 580, + 585, 587, 592, 594, 599, 601, 603, 605, 607, 612, + 614 }; -static const char * const yytname[] = { "$","error","$undefined.","rwDEFINE", +static const char * const yytname[] = { "$","error","$undefined.","rwDEFINE", "rwENDDEF","rwDECLARE","rwDECLARESINGLETON","rwBREAK","rwELSE","rwCONTINUE", "rwGLOBAL","rwIF","rwNIL","rwRETURN","rwWHILE","rwDO","rwENDIF","rwENDWHILE", "rwENDFOR","rwDEFAULT","rwFOR","rwFOREACH","rwFOREACHSTR","rwIN","rwDATABLOCK", @@ -363,805 +362,747 @@ static const char * const yytname[] = { "$","error","$undefined.","rwDEFINE", }; #endif -static const short yyr1[] = { 0, -100, 101, 101, 102, 102, 102, 103, 104, 104, 105, -105, 106, 106, 106, 106, 106, 106, 106, 106, 106, -106, 106, 106, 106, 106, 107, 107, 108, 108, 109, -109, 110, 111, 111, 111, 111, 111, 111, 112, 112, -113, 113, 114, 114, 115, 115, 115, 115, 116, 116, -117, 117, 118, 118, 119, 119, 119, 120, 120, 121, -121, 122, 122, 123, 123, 123, 123, 123, 123, 123, -123, 124, 124, 125, 126, 126, 126, 126, 126, 126, -126, 126, 126, 126, 126, 126, 126, 126, 126, 126, -126, 126, 126, 126, 126, 126, 126, 126, 126, 126, -126, 126, 126, 126, 126, 126, 126, 126, 126, 126, -126, 126, 126, 126, 127, 127, 128, 128, 129, 129, -130, 130, 130, 130, 130, 130, 130, 130, 130, 130, -130, 130, 131, 131, 131, 131, 131, 131, 131, 131, -131, 131, 132, 132, 132, 132, 133, 133, 134, 134, -135, 135, 136, 136, 137, 137, 138, 138, 138, 138, -138, 139, 139 +static const short yyr1[] = { 0, + 100, 101, 101, 102, 102, 102, 103, 104, 104, 105, + 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, 107, 107, 108, 108, 109, + 109, 110, 111, 111, 111, 111, 111, 111, 112, 112, + 113, 113, 114, 114, 115, 115, 115, 115, 116, 116, + 117, 117, 118, 118, 119, 119, 119, 120, 120, 121, + 121, 122, 122, 123, 123, 123, 123, 123, 123, 123, + 123, 124, 124, 125, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 127, 127, 128, 128, 129, 129, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 132, 132, 132, 133, 133, 134, 134, 135, 135, + 136, 136, 137, 137, 138, 138, 138, 138, 138, 139, + 139 }; -static const short yyr2[] = { 0, -1, 0, 2, 1, 1, 1, 6, 1, 2, 0, -2, 1, 1, 1, 1, 1, 1, 2, 2, 2, -3, 2, 4, 6, 1, 8, 10, 0, 1, 1, -3, 10, 10, 7, 12, 9, 10, 7, 0, 2, -0, 1, 0, 2, 0, 1, 1, 2, 2, 3, -3, 1, 7, 7, 4, 7, 5, 1, 3, 5, -7, 5, 6, 9, 8, 8, 7, 8, 7, 7, -6, 7, 7, 1, 1, 3, 3, 3, 3, 3, -3, 3, 3, 3, 2, 2, 1, 5, 3, 3, -3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -3, 2, 2, 1, 1, 1, 1, 1, 1, 1, -1, 1, 4, 7, 3, 6, 3, 3, 1, 3, -1, 1, 2, 2, 2, 2, 2, 2, 2, 2, -2, 2, 1, 1, 1, 3, 6, 2, 5, 2, -3, 5, 4, 6, 6, 4, 4, 6, 0, 1, -1, 3, 0, 1, 1, 2, 4, 5, 4, 7, -8, 1, 3 +static const short yyr2[] = { 0, + 1, 0, 2, 1, 1, 1, 6, 1, 2, 0, + 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 3, 2, 4, 6, 1, 8, 10, 0, 1, 1, + 3, 10, 10, 7, 12, 9, 10, 7, 0, 2, + 0, 1, 0, 2, 0, 1, 1, 2, 2, 3, + 3, 1, 7, 7, 4, 7, 5, 1, 3, 5, + 7, 5, 6, 9, 8, 8, 7, 8, 7, 7, + 6, 7, 7, 1, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 2, 2, 1, 5, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 3, 6, 3, 3, 1, 3, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 1, 1, 3, 6, 2, 5, 2, 3, + 5, 4, 6, 6, 4, 6, 0, 1, 1, 3, + 0, 1, 1, 2, 4, 5, 4, 7, 8, 1, + 3 }; -static const short yydefact[] = { 2, -1, 0, 0, 0, 107, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 106, 87, -112, 110, 25, 111, 104, 105, 0, 0, 0, 0, -0, 3, 6, 4, 5, 16, 135, 17, 12, 13, -14, 15, 0, 0, 108, 109, 75, 133, 134, 0, -28, 119, 0, 0, 0, 18, 19, 0, 0, 107, -87, 20, 0, 75, 0, 10, 52, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 122, 121, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 138, 149, 0, 85, 86, 0, 103, 102, 22, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -149, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 140, 28, 0, -30, 0, 29, 0, 41, 41, 0, 21, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 136, 123, 124, 125, 126, 127, 128, 129, 130, -131, 132, 162, 0, 151, 0, 150, 0, 76, 81, -82, 83, 84, 89, 90, 115, 80, 79, 78, 0, -77, 101, 117, 118, 96, 97, 93, 94, 91, 92, -98, 95, 99, 0, 100, 0, 141, 0, 0, 0, -0, 120, 41, 39, 42, 39, 0, 0, 51, 11, -0, 0, 0, 0, 0, 0, 39, 0, 0, 0, -0, 8, 147, 0, 0, 23, 0, 113, 143, 0, -149, 149, 0, 146, 0, 0, 0, 28, 10, 31, -0, 0, 43, 43, 60, 62, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 9, 0, -0, 163, 0, 139, 152, 0, 0, 0, 88, 142, -10, 0, 0, 39, 40, 0, 0, 0, 0, 63, -71, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 7, 148, 24, 137, 144, 145, 116, -0, 0, 114, 43, 44, 34, 38, 61, 70, 69, -0, 67, 0, 0, 0, 72, 73, 153, 0, 58, -53, 54, 26, 10, 0, 45, 45, 68, 66, 65, -0, 0, 0, 0, 0, 154, 155, 0, 10, 0, -36, 0, 0, 47, 46, 0, 64, 0, 0, 0, -0, 0, 156, 59, 55, 27, 45, 49, 33, 0, -48, 37, 0, 0, 0, 0, 0, 32, 0, 57, -0, 50, 159, 157, 0, 0, 0, 10, 35, 0, -158, 0, 56, 0, 0, 160, 0, 161, 0, 0, -0 +static const short yydefact[] = { 2, + 1, 0, 0, 0, 107, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 87, + 112, 110, 25, 111, 104, 105, 0, 0, 0, 0, + 0, 3, 6, 4, 5, 16, 134, 17, 12, 13, + 14, 15, 0, 0, 108, 109, 75, 132, 133, 0, + 118, 0, 0, 0, 18, 19, 0, 107, 87, 20, + 0, 75, 0, 10, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 121, 120, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 147, 0, 85, 86, 0, 103, 102, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 139, 28, 0, 0, 41, 41, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 160, 0, 149, 0, + 148, 0, 76, 81, 82, 83, 84, 89, 90, 114, + 80, 79, 78, 77, 101, 116, 117, 96, 97, 93, + 94, 91, 92, 98, 95, 99, 0, 100, 0, 140, + 30, 0, 29, 0, 119, 41, 39, 42, 39, 0, + 0, 51, 11, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 0, 8, 145, 0, 0, 23, 0, 113, + 142, 0, 147, 147, 0, 0, 0, 0, 0, 28, + 0, 0, 43, 43, 60, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 0, 161, 0, 138, 150, 0, 0, 0, 88, 141, + 10, 31, 0, 39, 40, 0, 0, 0, 0, 63, + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 146, 24, 136, 143, 144, 115, + 0, 0, 43, 44, 34, 38, 61, 70, 69, 0, + 67, 0, 0, 0, 72, 73, 151, 0, 58, 53, + 54, 26, 10, 0, 45, 45, 68, 66, 65, 0, + 0, 0, 0, 0, 152, 153, 0, 10, 0, 36, + 0, 0, 47, 46, 0, 64, 0, 0, 0, 0, + 0, 154, 59, 55, 27, 45, 49, 33, 0, 48, + 37, 0, 0, 0, 0, 0, 32, 0, 57, 0, + 50, 157, 155, 0, 0, 0, 10, 35, 0, 156, + 0, 56, 0, 0, 158, 0, 159, 0, 0, 0 }; -static const short yydefgoto[] = { 389, -1, 32, 33, 221, 140, 67, 35, 132, 133, 36, -37, 243, 204, 277, 343, 344, 68, 38, 292, 319, -39, 40, 41, 42, 43, 44, 45, 46, 54, 92, -64, 48, 49, 166, 167, 335, 345, 337, 164 +static const short yydefgoto[] = { 378, + 1, 32, 33, 213, 134, 65, 35, 192, 193, 36, + 37, 233, 197, 267, 332, 333, 66, 38, 282, 308, + 39, 40, 41, 42, 43, 44, 45, 46, 53, 90, + 62, 48, 49, 160, 161, 324, 334, 326, 158 }; -static const short yypact[] = { -32768, -213, -7, 55, 55, -37, -25, -18, 490, -13, 422, -5, 14, 41, 55, 47, 49, 9, 51,-32768, 57, -566, -23,-32768,-32768,-32768,-32768, 1187, 1187, 1187, 1187, -1187,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -5, 2650, 3021,-32768, 35,-32768,-32768, -12, -62,-32768, 1187, 67, 68,-32768,-32768, 1187, 69,-32768, --32768,-32768, 1300,-32768, 1187,-32768,-32768, 103, 835, 88, -89, 77, 1187, 1187, 73, 1187, 1187, 1187,-32768,-32768, -1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, -1187,-32768, 1187, 96, 219, 219, 1354, 219, 219,-32768, -1187, 1187, 1187, 1187, 1187, 1187, 97, 1187, 1187, 1187, -1187, 1187, 1187, 55, 55, 1187, 1187, 1187, 1187, 1187, -1187, 1187, 1187, 1187, 1187, 1187, 879,-32768, 62, 98, --32768, 81, 91, 1408, 21, 1187, 1462,-32768, 1516, 556, -95, 923, 1570, 123, 131, 1187, 1624, 1678, 152, 1192, -1246, 2650, 2650, 2650, 2650, 2650, 2650, 2650, 2650, 2650, -2650, 2650, 2650, -38, 2650, 100, 104, 111,-32768, 145, -145, 219, 219, 3015, 3015, -40, 2845, 2939, 219, 112, -2892, 143,-32768,-32768, 277, 277, 2986, 2986, 3015, 3015, -2798, 2751, 143, 1732, 143, 1187, 2650, 113, 116, 107, -135,-32768, 1187, 119, 2650, 119, 422, 422,-32768,-32768, -1187, 967, 1786, 1011, 1187, 1187, 1840, 122, 126, 157, -13,-32768,-32768, 162, 1187,-32768, 1187, 3041,-32768, 1187, -1187, 1187, 1187,-32768, 1187, 44, 144, 62,-32768,-32768, -106, 170, 156, 156, 209,-32768, 1894, 422, 1948, 1055, -1099, 2002, 2056, 2110, 165, 197, 197, 166,-32768, 173, -2164, 2650, 1187,-32768, 2650, 174, 175, -28, 2704,-32768, --32768, 176, 656, 119,-32768, 1187, 180, 183, 422,-32768, --32768, 422, 422, 2218, 422, 2272, 1143, 422, 422, 181, -1187, 182, 185,-32768,-32768,-32768, 2650,-32768,-32768,-32768, -701, 184,-32768, 156, 104, 192, 200,-32768,-32768,-32768, -422,-32768, 422, 422, 2326,-32768,-32768, 76, 12, 2650, --32768,-32768,-32768,-32768, 201, 92, 92,-32768,-32768,-32768, -422, 211, -20, 224, 202, 76,-32768, 1187,-32768, 746, -204, 206, 205, 39, 92, 208,-32768, 1187, 1187, 1187, --17, 212,-32768, 2650, 138,-32768, 92,-32768,-32768, 216, -39,-32768, 2380, 2434, -21, 1187, 1187,-32768, 221,-32768, -222,-32768,-32768,-32768, 217, 2488, -8,-32768,-32768, 1187, --32768, 230, 791, 2542, 1187,-32768, 2596,-32768, 289, 290, --32768 +static const short yypact[] = {-32768, + 396, -30, -7, -7, -5, 29, -39, 166, -29, 488, + -26, 37, 40, -7, 46, 74, 97, 82,-32768, 94, + -36, -28,-32768,-32768,-32768,-32768, 1001, 1001, 1001, 1001, + 1001,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 92, 2464, 2726,-32768, 105,-32768,-32768, -27, +-32768, 1001, 110, 111,-32768,-32768, 1001,-32768,-32768,-32768, + 1114,-32768, 1001,-32768,-32768, 156, 707, 137, 139, 123, + 1001, 1001, 120, 1001, 1001, 1001,-32768,-32768, 1001, 1001, + 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,-32768, + 1001, 143, 27, 27, 1168, 27, 27,-32768, 1001, 1001, + 1001, 1001, 1001, 1001, 144, 1001, 1001, 1001, 1001, 1001, + -7, -7, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, + 1001, 1001, 1001, 749,-32768, 146, 147, 1222, 44, 1001, + 1276,-32768, 1330, 548, 129, 791, 1384, 163, 167, 1001, + 1438, 1492, 186, 1006, 1060, 2464, 2464, 2464, 2464, 2464, + 2464, 2464, 2464, 2464, 2464, 2464, 2464, -47, 2464, 135, + 136, 140,-32768, 713, 713, 27, 27, 2721, 2721, -33, + 2605, 2663, 27, 2634, 2785,-32768,-32768, 291, 291, 2692, + 2692, 2721, 2721, 2576, 2547, 2785, 1546, 2785, 1001, 2464, +-32768, 138, 153, 141,-32768, 1001, 134, 2464, 134, 488, + 488,-32768,-32768, 1001, 318, 1600, 833, 1001, 1001, 1654, + 154, 155, 14,-32768,-32768, 172, 1001,-32768, 1001, 2746, +-32768, 1001, 1001, 1001, 1001, 1001, 48, 157, 160, 146, + 117, 185, 169, 169, 216,-32768, 1708, 488, 1762, 875, + 917, 1816, 1870, 1924, 171, 207, 207, 175,-32768, 180, + 1978, 2464, 1001,-32768, 2464, 183, 184, -46, 2518,-32768, +-32768,-32768, 189, 134,-32768, 1001, 193, 194, 488,-32768, +-32768, 488, 488, 2032, 488, 2086, 959, 488, 488, 181, + 1001, 190, 196,-32768,-32768,-32768, 2464,-32768,-32768,-32768, + 593, 182, 169, 136, 195, 199,-32768,-32768,-32768, 488, +-32768, 488, 488, 2140,-32768,-32768, 59, -3, 2464,-32768, +-32768,-32768,-32768, 198, 214, 214,-32768,-32768,-32768, 488, + 210, -35, 228, 206, 59,-32768, 1001,-32768, 638, 213, + 211, 215, 98, 214, 220,-32768, 1001, 1001, 1001, -32, + 223,-32768, 2464, 443,-32768, 214,-32768,-32768, 224, 98, +-32768, 2194, 2248, -38, 1001, 1001,-32768, 217,-32768, 225, +-32768,-32768,-32768, 234, 2302, -37,-32768,-32768, 1001,-32768, + 235, 683, 2356, 1001,-32768, 2410,-32768, 287, 288,-32768 }; -static const short yypgoto[] = { -32768, --32768,-32768,-32768,-32768, -236, 0, -132, -118,-32768,-32768, --306, -192, -113, -231, -262, -54, -202,-32768, -247,-32768, --32768,-32768,-32768,-32768,-32768, 288,-32768,-32768, 4, -43, --1,-32768,-32768, -104, -184,-32768, -26, -295, -229 +static const short yypgoto[] = {-32768, +-32768,-32768,-32768,-32768, -255, 0, -139, 63,-32768,-32768, + -128, -187, -125, -221, -281, -45, 31,-32768, -244,-32768, +-32768,-32768,-32768,-32768,-32768, 39,-32768,-32768, 20, -43, + -1,-32768,-32768, -107, -182,-32768, -13, -304, -189 }; -#define YYLAST 3123 +#define YYLAST 2857 -static const short yytable[] = { 47, -34, 128, 273, 268, 245, 246, 180, 55, 47, 293, -198, 236, 278, 244, 232, 220, 222, 72, 227, 342, -342, 56, 206, 59, 255, 3, 4, 60, 227, 349, -50, 93, 366, 57, 301, 227, 58, 360, 342, 338, -353, 65, 129, 3, 4, 281, 75, 51, 227, 353, -342, 233, 18, 100, 360, 19, 61, 21, 22, 69, -228, 24, 25, 26, 346, 27, 28, 94, 70, 339, -300, 350, 325, 258, 367, 29, 308, 375, 130, 309, -310, 304, 312, 30, 31, 316, 317, 340, 259, 241, -382, 305, 52, -74, 371, 71, 3, 4, 131, 332, -230, 73, 355, 74, 270, 76, 77, 370, 328, 53, -329, 330, 203, 333, 334, 332, 141, 183, 184, 272, -365, 135, 136, 51, 144, 145, 266, 267, 347, 333, -334, 146, 149, 168, 176, 199, 200, 377, 47, 210, -59, 383, 3, 4, 5, 215, 6, 201, 7, 211, -8, 9, 10, 216, 220, 229, 369, 11, 12, 13, -230, 14, 15, 291, 16, 231, 239, 234, 237, 18, -238, 240, 19, 20, 21, 22, 242, 23, 24, 25, -26, 256, 27, 28, 264, 257, 101, 102, 103, 104, -103, 104, 29, 107, 50, 107, 110, 111, 110, 111, -30, 31, 260, 271, 274, 47, 47, 275, 114, 115, -114, 115, 276, 116, 117, 2, 279, 3, 4, 5, -290, 6, 291, 7, 294, 8, 9, 10, 295, 298, -299, 302, 11, 12, 13, 306, 14, 15, 307, 16, -318, 17, 321, 324, 18, 322, 47, 19, 20, 21, -22, 326, 23, 24, 25, 26, 341, 27, 28, 327, -348, 351, 352, 357, 358, 359, 380, 29, 362, 107, -368, 47, 210, 111, 372, 30, 31, 47, 378, 385, -47, 47, 379, 47, 114, 115, 47, 47, 390, 391, -361, 336, 0, 0, 0, 63, 0, 0, 0, 47, -210, 0, 0, 0, 0, 0, 0, 0, 0, 47, -0, 47, 47, 0, 95, 96, 97, 98, 99, 0, -101, 102, 103, 104, 0, 0, 0, 107, 0, 47, -110, 111, 0, 0, 0, 0, 0, 0, 47, 210, -134, 0, 114, 115, 0, 137, 0, 0, 0, 0, -0, 0, 139, 47, 210, 0, 143, 0, 0, 0, -147, 148, 0, 150, 151, 152, 0, 0, 153, 154, -155, 156, 157, 158, 159, 160, 161, 162, 163, 0, -165, 47, 210, 0, 0, 0, 0, 0, 170, 171, -172, 173, 174, 175, 0, 177, 178, 179, 165, 181, -182, 0, 0, 185, 186, 187, 188, 189, 190, 191, -192, 193, 194, 195, 197, 0, 0, 0, 0, 0, -0, 0, 205, 205, 59, 0, 3, 4, 5, 213, -6, 0, 7, 217, 8, 9, 10, 0, 0, 0, -0, 11, 12, 13, 0, 14, 15, 0, 16, 0, -0, 0, 0, 18, 0, 0, 19, 20, 21, 22, -0, 23, 24, 25, 26, 0, 27, 28, 0, 0, -0, 0, 0, 0, 0, 0, 29, 0, 0, 0, -0, 66, 0, 165, 30, 31, 0, 0, 0, 0, -205, 0, 59, 0, 3, 4, 60, 0, 247, 249, -0, 252, 253, 254, 0, 0, 0, 0, 0, 0, -0, 0, 261, 0, 262, 0, 0, 265, 165, 165, -163, 18, 269, 0, 19, 61, 21, 22, 0, 0, -24, 25, 26, 0, 27, 28, 0, 284, 286, 0, -0, 0, 0, 0, 29, 0, 0, 0, 62, 0, -297, 0, 30, 31, 0, 0, 0, 0, 59, 0, -3, 4, 5, 165, 6, 0, 7, 0, 8, 9, -10, 0, 0, 0, 315, 11, 12, 13, 320, 14, -15, 0, 16, 0, 0, 0, 0, 18, 0, 0, -19, 20, 21, 22, 0, 23, 24, 25, 26, 0, -27, 28, 0, 0, 0, 0, 0, 0, 0, 0, -29, 0, 0, 0, 0, 78, 209, 0, 30, 31, -0, 0, 0, 0, 0, 354, 0, 0, 0, 0, -0, 0, 0, 79, 80, 363, 364, 163, 81, 82, -83, 84, 85, 86, 87, 88, 89, 90, 0, 0, -0, 0, 0, 376, 163, 0, 0, 91, 59, 0, -3, 4, 5, 0, 6, 0, 7, 384, 8, 9, -10, 0, 387, 0, 0, 11, 12, 13, 0, 14, -15, 0, 16, 0, 0, 0, 0, 18, 0, 0, -19, 20, 21, 22, 0, 23, 24, 25, 26, 0, -27, 28, 0, 59, 0, 3, 4, 5, 0, 6, -29, 7, 0, 8, 9, 10, 303, 0, 30, 31, -11, 12, 13, 0, 14, 15, 0, 16, 0, 0, -0, 0, 18, 0, 0, 19, 20, 21, 22, 0, -23, 24, 25, 26, 0, 27, 28, 0, 59, 0, -3, 4, 5, 0, 6, 29, 7, 0, 8, 9, -10, 323, 0, 30, 31, 11, 12, 13, 0, 14, -15, 0, 16, 0, 0, 0, 0, 18, 0, 0, -19, 20, 21, 22, 0, 23, 24, 25, 26, 0, -27, 28, 0, 59, 0, 3, 4, 5, 0, 6, -29, 7, 0, 8, 9, 10, 356, 0, 30, 31, -11, 12, 13, 0, 14, 15, 0, 16, 0, 0, -0, 0, 18, 0, 0, 19, 20, 21, 22, 0, -23, 24, 25, 26, 0, 27, 28, 59, 0, 3, -4, 60, 0, 0, 0, 29, 0, 0, 0, 0, -0, 0, 0, 30, 31, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 18, 0, 0, 19, -61, 21, 22, 0, 0, 24, 25, 26, 0, 27, -28, 59, 0, 3, 4, 60, 0, 0, 0, 29, -0, 0, 0, 142, 0, 0, 0, 30, 31, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 19, 61, 21, 22, 0, 0, 24, -25, 26, 0, 27, 28, 59, 0, 3, 4, 60, -0, 0, 0, 29, 0, 0, 0, 0, 196, 0, -0, 30, 31, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 18, 0, 0, 19, 61, 21, -22, 0, 0, 24, 25, 26, 0, 27, 28, 59, -0, 3, 4, 60, 0, 0, 0, 29, 0, 0, -0, 212, 0, 0, 0, 30, 31, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 18, 0, -0, 19, 61, 21, 22, 0, 0, 24, 25, 26, -0, 27, 28, 59, 0, 3, 4, 60, 0, 0, -0, 29, 248, 0, 0, 0, 0, 0, 0, 30, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 18, 0, 0, 19, 61, 21, 22, 0, -0, 24, 25, 26, 0, 27, 28, 59, 0, 3, -4, 60, 0, 0, 0, 29, 0, 0, 0, 251, -0, 0, 0, 30, 31, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 18, 0, 0, 19, -61, 21, 22, 0, 0, 24, 25, 26, 0, 27, -28, 59, 0, 3, 4, 60, 0, 0, 0, 29, -283, 0, 0, 0, 0, 0, 0, 30, 31, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 19, 61, 21, 22, 0, 0, 24, -25, 26, 0, 27, 28, 59, 0, 3, 4, 60, -0, 0, 0, 29, 285, 0, 0, 0, 0, 0, -0, 30, 31, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 18, 0, 0, 19, 61, 21, -22, 0, 0, 24, 25, 26, 0, 27, 28, 59, -0, 3, 4, 60, 0, 0, 0, 29, 314, 0, -0, 0, 0, 0, 0, 30, 31, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 18, 0, -0, 19, 61, 21, 22, 0, 0, 24, 25, 26, -0, 27, 28, 0, 0, 101, 102, 103, 104, 105, -106, 29, 107, 108, 109, 110, 111, 223, 224, 30, -31, 0, 0, 112, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 122, -123, 124, 0, 0, 0, 0, 0, 125, 126, 101, -102, 103, 104, 105, 106, 0, 107, 108, 109, 110, -111, 0, 225, 0, 226, 0, 0, 112, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 118, -119, 120, 121, 122, 123, 124, 0, 0, 0, 0, -0, 125, 126, 101, 102, 103, 104, 105, 106, 0, -107, 108, 109, 110, 111, 0, 0, 0, 138, 0, -0, 112, 0, 0, 113, 114, 115, 0, 0, 0, -116, 117, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 118, 119, 120, 121, 122, 123, 124, -0, 0, 0, 0, 0, 125, 126, 101, 102, 103, -104, 105, 106, 0, 107, 108, 109, 110, 111, 169, -0, 0, 0, 0, 0, 112, 0, 0, 113, 114, -115, 0, 0, 0, 116, 117, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 118, 119, 120, -121, 122, 123, 124, 0, 0, 0, 0, 0, 125, -126, 101, 102, 103, 104, 105, 106, 0, 107, 108, -109, 110, 111, 202, 0, 0, 0, 0, 0, 112, -0, 0, 113, 114, 115, 0, 0, 0, 116, 117, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 118, 119, 120, 121, 122, 123, 124, 0, 0, -0, 0, 0, 125, 126, 101, 102, 103, 104, 105, -106, 0, 107, 108, 109, 110, 111, 207, 0, 0, -0, 0, 0, 112, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 122, -123, 124, 0, 0, 0, 0, 0, 125, 126, 101, -102, 103, 104, 105, 106, 0, 107, 108, 109, 110, -111, 208, 0, 0, 0, 0, 0, 112, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 118, -119, 120, 121, 122, 123, 124, 0, 0, 0, 0, -0, 125, 126, 101, 102, 103, 104, 105, 106, 0, -107, 108, 109, 110, 111, 0, 0, 0, 214, 0, -0, 112, 0, 0, 113, 114, 115, 0, 0, 0, -116, 117, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 118, 119, 120, 121, 122, 123, 124, -0, 0, 0, 0, 0, 125, 126, 101, 102, 103, -104, 105, 106, 0, 107, 108, 109, 110, 111, 218, -0, 0, 0, 0, 0, 112, 0, 0, 113, 114, -115, 0, 0, 0, 116, 117, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 118, 119, 120, -121, 122, 123, 124, 0, 0, 0, 0, 0, 125, -126, 101, 102, 103, 104, 105, 106, 0, 107, 108, -109, 110, 111, 219, 0, 0, 0, 0, 0, 112, -0, 0, 113, 114, 115, 0, 0, 0, 116, 117, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 118, 119, 120, 121, 122, 123, 124, 0, 0, -0, 0, 0, 125, 126, 101, 102, 103, 104, 105, -106, 0, 107, 108, 109, 110, 111, 0, 0, 235, -0, 0, 0, 112, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 122, -123, 124, 0, 0, 0, 0, 0, 125, 126, 101, -102, 103, 104, 105, 106, 0, 107, 108, 109, 110, -111, 0, 0, 0, 250, 0, 0, 112, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 118, -119, 120, 121, 122, 123, 124, 0, 0, 0, 0, -0, 125, 126, 101, 102, 103, 104, 105, 106, 0, -107, 108, 109, 110, 111, 0, 0, 242, 0, 0, -0, 112, 0, 0, 113, 114, 115, 0, 0, 0, -116, 117, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 118, 119, 120, 121, 122, 123, 124, -0, 0, 0, 0, 0, 125, 126, 101, 102, 103, -104, 105, 106, 0, 107, 108, 109, 110, 111, 280, -0, 0, 0, 0, 0, 112, 0, 0, 113, 114, -115, 0, 0, 0, 116, 117, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 118, 119, 120, -121, 122, 123, 124, 0, 0, 0, 0, 0, 125, -126, 101, 102, 103, 104, 105, 106, 0, 107, 108, -109, 110, 111, 282, 0, 0, 0, 0, 0, 112, -0, 0, 113, 114, 115, 0, 0, 0, 116, 117, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 118, 119, 120, 121, 122, 123, 124, 0, 0, -0, 0, 0, 125, 126, 101, 102, 103, 104, 105, -106, 0, 107, 108, 109, 110, 111, 0, 0, 0, -287, 0, 0, 112, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 122, -123, 124, 0, 0, 0, 0, 0, 125, 126, 101, -102, 103, 104, 105, 106, 0, 107, 108, 109, 110, -111, 288, 0, 0, 0, 0, 0, 112, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 118, -119, 120, 121, 122, 123, 124, 0, 0, 0, 0, -0, 125, 126, 101, 102, 103, 104, 105, 106, 0, -107, 108, 109, 110, 111, 289, 0, 0, 0, 0, -0, 112, 0, 0, 113, 114, 115, 0, 0, 0, -116, 117, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 118, 119, 120, 121, 122, 123, 124, -0, 0, 0, 0, 0, 125, 126, 101, 102, 103, -104, 105, 106, 0, 107, 108, 109, 110, 111, 0, -0, 0, 296, 0, 0, 112, 0, 0, 113, 114, -115, 0, 0, 0, 116, 117, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 118, 119, 120, -121, 122, 123, 124, 0, 0, 0, 0, 0, 125, -126, 101, 102, 103, 104, 105, 106, 0, 107, 108, -109, 110, 111, 311, 0, 0, 0, 0, 0, 112, -0, 0, 113, 114, 115, 0, 0, 0, 116, 117, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 118, 119, 120, 121, 122, 123, 124, 0, 0, -0, 0, 0, 125, 126, 101, 102, 103, 104, 105, -106, 0, 107, 108, 109, 110, 111, 313, 0, 0, -0, 0, 0, 112, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 122, -123, 124, 0, 0, 0, 0, 0, 125, 126, 101, -102, 103, 104, 105, 106, 0, 107, 108, 109, 110, -111, 331, 0, 0, 0, 0, 0, 112, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 118, -119, 120, 121, 122, 123, 124, 0, 0, 0, 0, -0, 125, 126, 101, 102, 103, 104, 105, 106, 0, -107, 108, 109, 110, 111, 0, 0, 0, 373, 0, -0, 112, 0, 0, 113, 114, 115, 0, 0, 0, -116, 117, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 118, 119, 120, 121, 122, 123, 124, -0, 0, 0, 0, 0, 125, 126, 101, 102, 103, -104, 105, 106, 0, 107, 108, 109, 110, 111, 0, -0, 0, 374, 0, 0, 112, 0, 0, 113, 114, -115, 0, 0, 0, 116, 117, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 118, 119, 120, -121, 122, 123, 124, 0, 0, 0, 0, 0, 125, -126, 101, 102, 103, 104, 105, 106, 0, 107, 108, -109, 110, 111, 0, 0, 0, 381, 0, 0, 112, -0, 0, 113, 114, 115, 0, 0, 0, 116, 117, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 118, 119, 120, 121, 122, 123, 124, 0, 0, -0, 0, 0, 125, 126, 101, 102, 103, 104, 105, -106, 0, 107, 108, 109, 110, 111, 0, 0, 0, -386, 0, 0, 112, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 122, -123, 124, 0, 0, 0, 0, 0, 125, 126, 101, -102, 103, 104, 105, 106, 0, 107, 108, 109, 110, -111, 0, 0, 0, 388, 0, 0, 112, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 118, -119, 120, 121, 122, 123, 124, 0, 0, 0, 0, -0, 125, 126, 101, 102, 103, 104, 105, 106, 0, -107, 108, 109, 110, 111, 0, 0, 0, 0, 0, -0, 112, 0, 0, 113, 114, 115, 0, 0, 0, -116, 117, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 118, 119, 120, 121, 122, 123, 124, -0, 0, 0, 0, 0, 125, 126, 101, 102, 103, -104, 105, 106, 0, 107, 108, 109, 110, 111, 0, -0, 0, 0, 0, 0, 112, 0, 0, 113, 114, -115, 0, 0, 0, 116, 117, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 118, 119, 120, -121, 122, 123, 124, 101, 102, 103, 104, 105, 106, -126, 107, 108, 109, 110, 111, 0, 0, 0, 0, -0, 0, 112, 0, 0, 113, 114, 115, 0, 0, -0, 116, 117, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 118, 119, 120, 121, 122, 0, -124, 101, 102, 103, 104, 105, 106, 126, 107, 108, -109, 110, 111, 0, 0, 0, 0, 0, 0, 112, -0, 0, 113, 114, 115, 0, 0, 0, 116, 117, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 118, 119, 120, 121, 0, 0, 124, 101, 102, -103, 104, 105, 106, 126, 107, 0, 109, 110, 111, -0, 0, 0, 0, 0, 0, 112, 0, 0, 113, -114, 115, 0, 0, 0, 116, 117, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 118, 119, -120, 121, 0, 0, 124, 101, 102, 103, 104, 105, -106, 126, 107, 0, 109, 110, 111, 0, 0, 0, -0, 0, 0, 0, 0, 0, 113, 114, 115, 0, -0, 0, 116, 117, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 118, 119, 120, 121, 0, -0, 124, 101, 102, 103, 104, 105, 106, 126, 107, -0, 0, 110, 111, 0, 0, 0, 0, 0, 0, -0, 0, 0, 113, 114, 115, 0, 0, 0, 116, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 118, 119, 120, 121, 0, 0, 124, 101, -102, 103, 104, 105, 106, 126, 107, 0, 0, 110, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, -113, 114, 115, 0, 0, 0, 116, 117, 101, 102, -103, 104, 0, 0, 0, 107, 0, 0, 110, 111, -127, 120, 121, 0, 0, 124, 0, 0, 0, 113, -114, 115, 126, 0, 0, 116, 117, 0, 79, 80, -263, 0, 0, 81, 82, 83, 84, 85, 86, 87, -88, 89, 90, 0, 124, 0, 0, 0, 79, 80, -0, 126, 0, 81, 82, 83, 84, 85, 86, 87, -88, 89, 90 +static const short yytable[] = { 47, + 34, 125, 283, 214, 199, 291, 227, 50, 47, 219, + 219, 234, 268, 76, 338, 57, 2, 355, 219, 219, + 342, 224, 245, 54, 327, 63, 91, 126, 67, 342, + 51, 77, 78, 70, 335, 258, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 61, 52, 3, 4, + 58, 220, 290, 55, 328, 89, 339, 329, 225, 356, + 364, 371, 92, 127, 360, 93, 94, 95, 96, 97, + 231, 314, 344, 249, 248, 18, 293, 105, 19, 59, + 21, 22, 321, 294, 24, 25, 26, 56, 27, 28, + 128, 68, 111, 112, 69, 131, 322, 323, 29, 359, + 71, 133, 3, 4, 222, 137, 30, 31, 260, 141, + 142, 372, 144, 145, 146, 256, 257, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 72, 159, + 176, 177, 47, 203, 73, 196, 74, 164, 165, 166, + 167, 168, 169, 75, 171, 172, 173, 174, 175, 354, + 98, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 190, -74, 129, 130, 366, 198, 198, 135, + 3, 4, 58, 138, 206, 139, 254, 140, 210, 143, + 162, 170, 191, 204, 194, 208, 331, 331, 2, 209, + 221, 232, 222, 228, 223, 230, 262, 18, 47, 47, + 19, 59, 21, 22, 349, 331, 24, 25, 26, 229, + 27, 28, 250, 246, 247, 264, 261, 331, 3, 4, + 29, 349, 265, 269, 60, 266, 280, 159, 30, 31, + 235, 236, 281, 284, 198, 285, 47, 321, 288, 289, + 307, 313, 237, 239, 292, 242, 243, 244, 295, 296, + 310, 322, 323, 330, 315, 251, 311, 252, 316, 337, + 255, 159, 159, 157, 259, 340, 341, 47, 271, 347, + 47, 47, 346, 47, 367, 348, 47, 47, 274, 276, + 351, 357, 361, 369, 374, 368, 379, 380, 350, 47, + 203, 287, 263, 325, 0, 0, 0, 0, 47, 297, + 47, 47, 298, 299, 159, 301, 0, 0, 305, 306, + 0, 0, 0, 0, 0, 304, 0, 0, 47, 309, + 0, 0, 3, 4, 58, 0, 0, 47, 203, 0, + 317, 0, 318, 319, 99, 100, 101, 102, 0, 0, + 0, 105, 47, 203, 108, 0, 0, 0, 0, 18, + 336, 0, 19, 59, 21, 22, 111, 112, 24, 25, + 26, 0, 27, 28, 0, 343, 0, 0, 0, 0, + 47, 203, 29, 238, 0, 352, 353, 157, 0, 0, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 365, 157, 0, 0, 0, 2, 0, + 3, 4, 5, 0, 6, 0, 7, 373, 8, 9, + 10, 0, 376, 0, 0, 11, 12, 13, 0, 14, + 15, 0, 16, 0, 17, 0, 0, 18, 0, 0, + 19, 20, 21, 22, 0, 23, 24, 25, 26, 0, + 27, 28, 0, 0, 0, 0, 0, 3, 4, 5, + 29, 6, 0, 7, 0, 8, 9, 10, 30, 31, + 0, 358, 11, 12, 13, 0, 14, 15, 281, 16, + 0, 0, 0, 0, 18, 0, 0, 19, 20, 21, + 22, 0, 23, 24, 25, 26, 0, 27, 28, 0, + 0, 0, 3, 4, 5, 0, 6, 29, 7, 0, + 8, 9, 10, 0, 0, 30, 31, 11, 12, 13, + 0, 14, 15, 0, 16, 0, 0, 0, 0, 18, + 0, 0, 19, 20, 21, 22, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 0, 0, 0, 0, 64, 0, 0, + 30, 31, 3, 4, 5, 0, 6, 0, 7, 0, + 8, 9, 10, 0, 0, 0, 0, 11, 12, 13, + 0, 14, 15, 0, 16, 0, 0, 0, 0, 18, + 0, 0, 19, 20, 21, 22, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 0, 3, 4, 5, + 0, 6, 29, 7, 0, 8, 9, 10, 202, 0, + 30, 31, 11, 12, 13, 0, 14, 15, 0, 16, + 0, 0, 0, 0, 18, 0, 0, 19, 20, 21, + 22, 0, 23, 24, 25, 26, 0, 27, 28, 0, + 0, 0, 3, 4, 5, 0, 6, 29, 7, 0, + 8, 9, 10, 312, 0, 30, 31, 11, 12, 13, + 0, 14, 15, 0, 16, 0, 0, 0, 0, 18, + 0, 0, 19, 20, 21, 22, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 0, 3, 4, 5, + 0, 6, 29, 7, 0, 8, 9, 10, 345, 0, + 30, 31, 11, 12, 13, 0, 14, 15, 0, 16, + 0, 3, 4, 58, 18, 0, 0, 19, 20, 21, + 22, 0, 23, 24, 25, 26, 0, 27, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 18, 0, + 0, 19, 59, 21, 22, 30, 31, 24, 25, 26, + 0, 27, 28, 3, 4, 58, 0, 0, 101, 102, + 0, 29, 0, 105, 0, 136, 108, 0, 0, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 111, 112, + 18, 0, 0, 19, 59, 21, 22, 0, 0, 24, + 25, 26, 0, 27, 28, 3, 4, 58, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 189, 0, + 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 19, 59, 21, 22, 0, + 0, 24, 25, 26, 0, 27, 28, 3, 4, 58, + 0, 0, 0, 0, 0, 29, 0, 0, 0, 205, + 0, 0, 0, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 18, 0, 0, 19, 59, 21, + 22, 0, 0, 24, 25, 26, 0, 27, 28, 3, + 4, 58, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 241, 0, 0, 0, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 59, 21, 22, 0, 0, 24, 25, 26, 0, 27, + 28, 3, 4, 58, 0, 0, 0, 0, 0, 29, + 273, 0, 0, 0, 0, 0, 0, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, + 0, 19, 59, 21, 22, 0, 0, 24, 25, 26, + 0, 27, 28, 3, 4, 58, 0, 0, 0, 0, + 0, 29, 275, 0, 0, 0, 0, 0, 0, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 19, 59, 21, 22, 0, 0, 24, + 25, 26, 0, 27, 28, 3, 4, 58, 0, 0, + 0, 0, 0, 29, 303, 0, 0, 0, 0, 0, + 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 19, 59, 21, 22, 0, + 0, 24, 25, 26, 0, 27, 28, 0, 0, 99, + 100, 101, 102, 103, 104, 29, 105, 106, 107, 108, + 0, 215, 216, 30, 31, 0, 0, 109, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 99, 100, 101, 102, 103, 104, 0, + 105, 106, 107, 108, 0, 0, 217, 0, 218, 0, + 0, 109, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 99, 100, 101, + 102, 103, 104, 0, 105, 106, 107, 108, 0, 0, + 0, 0, 132, 0, 0, 109, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, + 118, 119, 120, 121, 0, 0, 0, 0, 0, 122, + 123, 99, 100, 101, 102, 103, 104, 0, 105, 106, + 107, 108, 0, 163, 0, 0, 0, 0, 0, 109, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 115, 116, 117, 118, 119, 120, 121, 0, 0, + 0, 0, 0, 122, 123, 99, 100, 101, 102, 103, + 104, 0, 105, 106, 107, 108, 0, 195, 0, 0, + 0, 0, 0, 109, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 0, 0, 0, 0, 0, 122, 123, 99, + 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, + 0, 200, 0, 0, 0, 0, 0, 109, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 99, 100, 101, 102, 103, 104, 0, + 105, 106, 107, 108, 0, 201, 0, 0, 0, 0, + 0, 109, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 99, 100, 101, + 102, 103, 104, 0, 105, 106, 107, 108, 0, 0, + 0, 0, 207, 0, 0, 109, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, + 118, 119, 120, 121, 0, 0, 0, 0, 0, 122, + 123, 99, 100, 101, 102, 103, 104, 0, 105, 106, + 107, 108, 0, 211, 0, 0, 0, 0, 0, 109, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 115, 116, 117, 118, 119, 120, 121, 0, 0, + 0, 0, 0, 122, 123, 99, 100, 101, 102, 103, + 104, 0, 105, 106, 107, 108, 0, 212, 0, 0, + 0, 0, 0, 109, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 0, 0, 0, 0, 0, 122, 123, 99, + 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, + 0, 0, 0, 226, 0, 0, 0, 109, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 99, 100, 101, 102, 103, 104, 0, + 105, 106, 107, 108, 0, 0, 0, 0, 240, 0, + 0, 109, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 99, 100, 101, + 102, 103, 104, 0, 105, 106, 107, 108, 0, 0, + 0, 232, 0, 0, 0, 109, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, + 118, 119, 120, 121, 0, 0, 0, 0, 0, 122, + 123, 99, 100, 101, 102, 103, 104, 0, 105, 106, + 107, 108, 0, 270, 0, 0, 0, 0, 0, 109, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 115, 116, 117, 118, 119, 120, 121, 0, 0, + 0, 0, 0, 122, 123, 99, 100, 101, 102, 103, + 104, 0, 105, 106, 107, 108, 0, 272, 0, 0, + 0, 0, 0, 109, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 0, 0, 0, 0, 0, 122, 123, 99, + 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, + 0, 0, 0, 0, 277, 0, 0, 109, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 99, 100, 101, 102, 103, 104, 0, + 105, 106, 107, 108, 0, 278, 0, 0, 0, 0, + 0, 109, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 99, 100, 101, + 102, 103, 104, 0, 105, 106, 107, 108, 0, 279, + 0, 0, 0, 0, 0, 109, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, + 118, 119, 120, 121, 0, 0, 0, 0, 0, 122, + 123, 99, 100, 101, 102, 103, 104, 0, 105, 106, + 107, 108, 0, 0, 0, 0, 286, 0, 0, 109, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 115, 116, 117, 118, 119, 120, 121, 0, 0, + 0, 0, 0, 122, 123, 99, 100, 101, 102, 103, + 104, 0, 105, 106, 107, 108, 0, 300, 0, 0, + 0, 0, 0, 109, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 0, 0, 0, 0, 0, 122, 123, 99, + 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, + 0, 302, 0, 0, 0, 0, 0, 109, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 99, 100, 101, 102, 103, 104, 0, + 105, 106, 107, 108, 0, 320, 0, 0, 0, 0, + 0, 109, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 99, 100, 101, + 102, 103, 104, 0, 105, 106, 107, 108, 0, 0, + 0, 0, 362, 0, 0, 109, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, + 118, 119, 120, 121, 0, 0, 0, 0, 0, 122, + 123, 99, 100, 101, 102, 103, 104, 0, 105, 106, + 107, 108, 0, 0, 0, 0, 363, 0, 0, 109, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 115, 116, 117, 118, 119, 120, 121, 0, 0, + 0, 0, 0, 122, 123, 99, 100, 101, 102, 103, + 104, 0, 105, 106, 107, 108, 0, 0, 0, 0, + 370, 0, 0, 109, 0, 0, 110, 111, 112, 0, + 0, 0, 113, 114, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 0, 0, 0, 0, 0, 122, 123, 99, + 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, + 0, 0, 0, 0, 375, 0, 0, 109, 0, 0, + 110, 111, 112, 0, 0, 0, 113, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 99, 100, 101, 102, 103, 104, 0, + 105, 106, 107, 108, 0, 0, 0, 0, 377, 0, + 0, 109, 0, 0, 110, 111, 112, 0, 0, 0, + 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 99, 100, 101, + 102, 103, 104, 0, 105, 106, 107, 108, 0, 0, + 0, 0, 0, 0, 0, 109, 0, 0, 110, 111, + 112, 0, 0, 0, 113, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 117, + 118, 119, 120, 121, 0, 0, 0, 0, 0, 122, + 123, 99, 100, 101, 102, 103, 104, 0, 105, 106, + 107, 108, 0, 0, 0, 0, 0, 0, 0, 109, + 0, 0, 110, 111, 112, 0, 0, 0, 113, 114, + 99, 100, 101, 102, 103, 104, 0, 105, 106, 107, + 108, 115, 116, 117, 118, 119, 120, 121, 109, 0, + 0, 110, 111, 112, 123, 0, 0, 113, 114, 99, + 100, 101, 102, 103, 104, 0, 105, 106, 107, 108, + 115, 116, 117, 118, 119, 0, 121, 109, 0, 0, + 110, 111, 112, 123, 0, 0, 113, 114, 99, 100, + 101, 102, 103, 104, 0, 105, 0, 107, 108, 115, + 116, 117, 118, 0, 0, 121, 109, 0, 0, 110, + 111, 112, 123, 0, 0, 113, 114, 99, 100, 101, + 102, 103, 104, 0, 105, 0, 107, 108, 115, 116, + 117, 118, 0, 0, 121, 0, 0, 0, 110, 111, + 112, 123, 0, 0, 113, 114, 99, 100, 101, 102, + 103, 104, 0, 105, 0, 0, 108, 115, 116, 117, + 118, 0, 0, 121, 0, 0, 0, 110, 111, 112, + 123, 0, 0, 113, 114, 99, 100, 101, 102, 103, + 104, 0, 105, 0, 0, 108, 115, 116, 117, 118, + 0, 0, 121, 0, 0, 0, 110, 111, 112, 123, + 0, 0, 113, 114, 99, 100, 101, 102, 0, 0, + 0, 105, 0, 0, 108, 124, 0, 117, 118, 0, + 0, 121, 0, 0, 0, 110, 111, 112, 123, 0, + 0, 113, 114, 77, 78, 253, 0, 0, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, + 121, 0, 0, 77, 78, 0, 0, 123, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 99, 100, + 101, 102, 0, 0, 0, 105, 0, 0, 108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 111, 112, 0, 0, 0, 113, 114 }; -static const short yycheck[] = { 1, -1, 45, 239, 233, 207, 208, 111, 4, 10, 257, -129, 196, 244, 206, 55, 3, 149, 14, 57, 326, -327, 59, 136, 3, 217, 5, 6, 7, 57, 50, -38, 55, 50, 59, 271, 57, 55, 344, 345, 28, -336, 55, 55, 5, 6, 248, 38, 55, 57, 345, -357, 92, 32, 59, 361, 35, 36, 37, 38, 55, -99, 41, 42, 43, 327, 45, 46, 91, 55, 58, -99, 92, 304, 61, 92, 55, 279, 99, 91, 282, -283, 274, 285, 63, 64, 288, 289, 324, 221, 203, -99, 276, 38, 59, 357, 55, 5, 6, 37, 24, -57, 55, 339, 55, 61, 55, 50, 355, 311, 55, -313, 314, 92, 38, 39, 24, 14, 114, 115, 238, -350, 55, 55, 55, 37, 37, 231, 232, 331, 38, -39, 55, 60, 38, 38, 38, 56, 367, 140, 140, -3, 378, 5, 6, 7, 23, 9, 57, 11, 55, -13, 14, 15, 23, 3, 56, 19, 20, 21, 22, -57, 24, 25, 26, 27, 55, 60, 56, 56, 32, -55, 37, 35, 36, 37, 38, 58, 40, 41, 42, -43, 60, 45, 46, 228, 60, 44, 45, 46, 47, -46, 47, 55, 51, 38, 51, 54, 55, 54, 55, -63, 64, 41, 60, 99, 207, 208, 38, 66, 67, -66, 67, 57, 71, 72, 3, 8, 5, 6, 7, -56, 9, 26, 11, 59, 13, 14, 15, 56, 56, -56, 56, 20, 21, 22, 56, 24, 25, 56, 27, -60, 29, 61, 60, 32, 61, 248, 35, 36, 37, -38, 60, 40, 41, 42, 43, 56, 45, 46, 60, -50, 38, 61, 60, 59, 61, 50, 55, 61, 51, -59, 273, 273, 55, 59, 63, 64, 279, 58, 50, -282, 283, 61, 285, 66, 67, 288, 289, 0, 0, -345, 318, -1, -1, -1, 8, -1, -1, -1, 301, -301, -1, -1, -1, -1, -1, -1, -1, -1, 311, --1, 313, 314, -1, 27, 28, 29, 30, 31, -1, -44, 45, 46, 47, -1, -1, -1, 51, -1, 331, -54, 55, -1, -1, -1, -1, -1, -1, 340, 340, -53, -1, 66, 67, -1, 58, -1, -1, -1, -1, --1, -1, 65, 355, 355, -1, 69, -1, -1, -1, -73, 74, -1, 76, 77, 78, -1, -1, 81, 82, -83, 84, 85, 86, 87, 88, 89, 90, 91, -1, -93, 383, 383, -1, -1, -1, -1, -1, 101, 102, -103, 104, 105, 106, -1, 108, 109, 110, 111, 112, -113, -1, -1, 116, 117, 118, 119, 120, 121, 122, -123, 124, 125, 126, 127, -1, -1, -1, -1, -1, --1, -1, 135, 136, 3, -1, 5, 6, 7, 142, -9, -1, 11, 146, 13, 14, 15, -1, -1, -1, --1, 20, 21, 22, -1, 24, 25, -1, 27, -1, --1, -1, -1, 32, -1, -1, 35, 36, 37, 38, --1, 40, 41, 42, 43, -1, 45, 46, -1, -1, --1, -1, -1, -1, -1, -1, 55, -1, -1, -1, --1, 60, -1, 196, 63, 64, -1, -1, -1, -1, -203, -1, 3, -1, 5, 6, 7, -1, 211, 212, --1, 214, 215, 216, -1, -1, -1, -1, -1, -1, --1, -1, 225, -1, 227, -1, -1, 230, 231, 232, -233, 32, 235, -1, 35, 36, 37, 38, -1, -1, -41, 42, 43, -1, 45, 46, -1, 250, 251, -1, --1, -1, -1, -1, 55, -1, -1, -1, 59, -1, -263, -1, 63, 64, -1, -1, -1, -1, 3, -1, -5, 6, 7, 276, 9, -1, 11, -1, 13, 14, -15, -1, -1, -1, 287, 20, 21, 22, 291, 24, -25, -1, 27, -1, -1, -1, -1, 32, -1, -1, -35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -55, -1, -1, -1, -1, 50, 61, -1, 63, 64, --1, -1, -1, -1, -1, 338, -1, -1, -1, -1, --1, -1, -1, 68, 69, 348, 349, 350, 73, 74, -75, 76, 77, 78, 79, 80, 81, 82, -1, -1, --1, -1, -1, 366, 367, -1, -1, 92, 3, -1, -5, 6, 7, -1, 9, -1, 11, 380, 13, 14, -15, -1, 385, -1, -1, 20, 21, 22, -1, 24, -25, -1, 27, -1, -1, -1, -1, 32, -1, -1, -35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -45, 46, -1, 3, -1, 5, 6, 7, -1, 9, -55, 11, -1, 13, 14, 15, 61, -1, 63, 64, -20, 21, 22, -1, 24, 25, -1, 27, -1, -1, --1, -1, 32, -1, -1, 35, 36, 37, 38, -1, -40, 41, 42, 43, -1, 45, 46, -1, 3, -1, -5, 6, 7, -1, 9, 55, 11, -1, 13, 14, -15, 61, -1, 63, 64, 20, 21, 22, -1, 24, -25, -1, 27, -1, -1, -1, -1, 32, -1, -1, -35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -45, 46, -1, 3, -1, 5, 6, 7, -1, 9, -55, 11, -1, 13, 14, 15, 61, -1, 63, 64, -20, 21, 22, -1, 24, 25, -1, 27, -1, -1, --1, -1, 32, -1, -1, 35, 36, 37, 38, -1, -40, 41, 42, 43, -1, 45, 46, 3, -1, 5, -6, 7, -1, -1, -1, 55, -1, -1, -1, -1, --1, -1, -1, 63, 64, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, 32, -1, -1, 35, -36, 37, 38, -1, -1, 41, 42, 43, -1, 45, -46, 3, -1, 5, 6, 7, -1, -1, -1, 55, --1, -1, -1, 59, -1, -1, -1, 63, 64, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -32, -1, -1, 35, 36, 37, 38, -1, -1, 41, -42, 43, -1, 45, 46, 3, -1, 5, 6, 7, --1, -1, -1, 55, -1, -1, -1, -1, 60, -1, --1, 63, 64, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, 32, -1, -1, 35, 36, 37, -38, -1, -1, 41, 42, 43, -1, 45, 46, 3, --1, 5, 6, 7, -1, -1, -1, 55, -1, -1, --1, 59, -1, -1, -1, 63, 64, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, 32, -1, --1, 35, 36, 37, 38, -1, -1, 41, 42, 43, --1, 45, 46, 3, -1, 5, 6, 7, -1, -1, --1, 55, 56, -1, -1, -1, -1, -1, -1, 63, -64, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, 32, -1, -1, 35, 36, 37, 38, -1, --1, 41, 42, 43, -1, 45, 46, 3, -1, 5, -6, 7, -1, -1, -1, 55, -1, -1, -1, 59, --1, -1, -1, 63, 64, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, 32, -1, -1, 35, -36, 37, 38, -1, -1, 41, 42, 43, -1, 45, -46, 3, -1, 5, 6, 7, -1, -1, -1, 55, -56, -1, -1, -1, -1, -1, -1, 63, 64, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -32, -1, -1, 35, 36, 37, 38, -1, -1, 41, -42, 43, -1, 45, 46, 3, -1, 5, 6, 7, --1, -1, -1, 55, 56, -1, -1, -1, -1, -1, --1, 63, 64, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, 32, -1, -1, 35, 36, 37, -38, -1, -1, 41, 42, 43, -1, 45, 46, 3, --1, 5, 6, 7, -1, -1, -1, 55, 56, -1, --1, -1, -1, -1, -1, 63, 64, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, 32, -1, --1, 35, 36, 37, 38, -1, -1, 41, 42, 43, --1, 45, 46, -1, -1, 44, 45, 46, 47, 48, -49, 55, 51, 52, 53, 54, 55, 56, 57, 63, -64, -1, -1, 62, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, 88, -89, 90, -1, -1, -1, -1, -1, 96, 97, 44, -45, 46, 47, 48, 49, -1, 51, 52, 53, 54, -55, -1, 57, -1, 59, -1, -1, 62, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -85, 86, 87, 88, 89, 90, -1, -1, -1, -1, --1, 96, 97, 44, 45, 46, 47, 48, 49, -1, -51, 52, 53, 54, 55, -1, -1, -1, 59, -1, --1, 62, -1, -1, 65, 66, 67, -1, -1, -1, -71, 72, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, 84, 85, 86, 87, 88, 89, 90, --1, -1, -1, -1, -1, 96, 97, 44, 45, 46, -47, 48, 49, -1, 51, 52, 53, 54, 55, 56, --1, -1, -1, -1, -1, 62, -1, -1, 65, 66, -67, -1, -1, -1, 71, 72, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -87, 88, 89, 90, -1, -1, -1, -1, -1, 96, -97, 44, 45, 46, 47, 48, 49, -1, 51, 52, -53, 54, 55, 56, -1, -1, -1, -1, -1, 62, --1, -1, 65, 66, 67, -1, -1, -1, 71, 72, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, 84, 85, 86, 87, 88, 89, 90, -1, -1, --1, -1, -1, 96, 97, 44, 45, 46, 47, 48, -49, -1, 51, 52, 53, 54, 55, 56, -1, -1, --1, -1, -1, 62, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, 88, -89, 90, -1, -1, -1, -1, -1, 96, 97, 44, -45, 46, 47, 48, 49, -1, 51, 52, 53, 54, -55, 56, -1, -1, -1, -1, -1, 62, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -85, 86, 87, 88, 89, 90, -1, -1, -1, -1, --1, 96, 97, 44, 45, 46, 47, 48, 49, -1, -51, 52, 53, 54, 55, -1, -1, -1, 59, -1, --1, 62, -1, -1, 65, 66, 67, -1, -1, -1, -71, 72, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, 84, 85, 86, 87, 88, 89, 90, --1, -1, -1, -1, -1, 96, 97, 44, 45, 46, -47, 48, 49, -1, 51, 52, 53, 54, 55, 56, --1, -1, -1, -1, -1, 62, -1, -1, 65, 66, -67, -1, -1, -1, 71, 72, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -87, 88, 89, 90, -1, -1, -1, -1, -1, 96, -97, 44, 45, 46, 47, 48, 49, -1, 51, 52, -53, 54, 55, 56, -1, -1, -1, -1, -1, 62, --1, -1, 65, 66, 67, -1, -1, -1, 71, 72, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, 84, 85, 86, 87, 88, 89, 90, -1, -1, --1, -1, -1, 96, 97, 44, 45, 46, 47, 48, -49, -1, 51, 52, 53, 54, 55, -1, -1, 58, --1, -1, -1, 62, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, 88, -89, 90, -1, -1, -1, -1, -1, 96, 97, 44, -45, 46, 47, 48, 49, -1, 51, 52, 53, 54, -55, -1, -1, -1, 59, -1, -1, 62, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -85, 86, 87, 88, 89, 90, -1, -1, -1, -1, --1, 96, 97, 44, 45, 46, 47, 48, 49, -1, -51, 52, 53, 54, 55, -1, -1, 58, -1, -1, --1, 62, -1, -1, 65, 66, 67, -1, -1, -1, -71, 72, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, 84, 85, 86, 87, 88, 89, 90, --1, -1, -1, -1, -1, 96, 97, 44, 45, 46, -47, 48, 49, -1, 51, 52, 53, 54, 55, 56, --1, -1, -1, -1, -1, 62, -1, -1, 65, 66, -67, -1, -1, -1, 71, 72, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -87, 88, 89, 90, -1, -1, -1, -1, -1, 96, -97, 44, 45, 46, 47, 48, 49, -1, 51, 52, -53, 54, 55, 56, -1, -1, -1, -1, -1, 62, --1, -1, 65, 66, 67, -1, -1, -1, 71, 72, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, 84, 85, 86, 87, 88, 89, 90, -1, -1, --1, -1, -1, 96, 97, 44, 45, 46, 47, 48, -49, -1, 51, 52, 53, 54, 55, -1, -1, -1, -59, -1, -1, 62, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, 88, -89, 90, -1, -1, -1, -1, -1, 96, 97, 44, -45, 46, 47, 48, 49, -1, 51, 52, 53, 54, -55, 56, -1, -1, -1, -1, -1, 62, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -85, 86, 87, 88, 89, 90, -1, -1, -1, -1, --1, 96, 97, 44, 45, 46, 47, 48, 49, -1, -51, 52, 53, 54, 55, 56, -1, -1, -1, -1, --1, 62, -1, -1, 65, 66, 67, -1, -1, -1, -71, 72, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, 84, 85, 86, 87, 88, 89, 90, --1, -1, -1, -1, -1, 96, 97, 44, 45, 46, -47, 48, 49, -1, 51, 52, 53, 54, 55, -1, --1, -1, 59, -1, -1, 62, -1, -1, 65, 66, -67, -1, -1, -1, 71, 72, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -87, 88, 89, 90, -1, -1, -1, -1, -1, 96, -97, 44, 45, 46, 47, 48, 49, -1, 51, 52, -53, 54, 55, 56, -1, -1, -1, -1, -1, 62, --1, -1, 65, 66, 67, -1, -1, -1, 71, 72, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, 84, 85, 86, 87, 88, 89, 90, -1, -1, --1, -1, -1, 96, 97, 44, 45, 46, 47, 48, -49, -1, 51, 52, 53, 54, 55, 56, -1, -1, --1, -1, -1, 62, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, 88, -89, 90, -1, -1, -1, -1, -1, 96, 97, 44, -45, 46, 47, 48, 49, -1, 51, 52, 53, 54, -55, 56, -1, -1, -1, -1, -1, 62, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -85, 86, 87, 88, 89, 90, -1, -1, -1, -1, --1, 96, 97, 44, 45, 46, 47, 48, 49, -1, -51, 52, 53, 54, 55, -1, -1, -1, 59, -1, --1, 62, -1, -1, 65, 66, 67, -1, -1, -1, -71, 72, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, 84, 85, 86, 87, 88, 89, 90, --1, -1, -1, -1, -1, 96, 97, 44, 45, 46, -47, 48, 49, -1, 51, 52, 53, 54, 55, -1, --1, -1, 59, -1, -1, 62, -1, -1, 65, 66, -67, -1, -1, -1, 71, 72, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -87, 88, 89, 90, -1, -1, -1, -1, -1, 96, -97, 44, 45, 46, 47, 48, 49, -1, 51, 52, -53, 54, 55, -1, -1, -1, 59, -1, -1, 62, --1, -1, 65, 66, 67, -1, -1, -1, 71, 72, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, 84, 85, 86, 87, 88, 89, 90, -1, -1, --1, -1, -1, 96, 97, 44, 45, 46, 47, 48, -49, -1, 51, 52, 53, 54, 55, -1, -1, -1, -59, -1, -1, 62, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, 88, -89, 90, -1, -1, -1, -1, -1, 96, 97, 44, -45, 46, 47, 48, 49, -1, 51, 52, 53, 54, -55, -1, -1, -1, 59, -1, -1, 62, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -85, 86, 87, 88, 89, 90, -1, -1, -1, -1, --1, 96, 97, 44, 45, 46, 47, 48, 49, -1, -51, 52, 53, 54, 55, -1, -1, -1, -1, -1, --1, 62, -1, -1, 65, 66, 67, -1, -1, -1, -71, 72, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, 84, 85, 86, 87, 88, 89, 90, --1, -1, -1, -1, -1, 96, 97, 44, 45, 46, -47, 48, 49, -1, 51, 52, 53, 54, 55, -1, --1, -1, -1, -1, -1, 62, -1, -1, 65, 66, -67, -1, -1, -1, 71, 72, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -87, 88, 89, 90, 44, 45, 46, 47, 48, 49, -97, 51, 52, 53, 54, 55, -1, -1, -1, -1, --1, -1, 62, -1, -1, 65, 66, 67, -1, -1, --1, 71, 72, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, 84, 85, 86, 87, 88, -1, -90, 44, 45, 46, 47, 48, 49, 97, 51, 52, -53, 54, 55, -1, -1, -1, -1, -1, -1, 62, --1, -1, 65, 66, 67, -1, -1, -1, 71, 72, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, 84, 85, 86, 87, -1, -1, 90, 44, 45, -46, 47, 48, 49, 97, 51, -1, 53, 54, 55, --1, -1, -1, -1, -1, -1, 62, -1, -1, 65, -66, 67, -1, -1, -1, 71, 72, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -86, 87, -1, -1, 90, 44, 45, 46, 47, 48, -49, 97, 51, -1, 53, 54, 55, -1, -1, -1, --1, -1, -1, -1, -1, -1, 65, 66, 67, -1, --1, -1, 71, 72, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -1, 84, 85, 86, 87, -1, --1, 90, 44, 45, 46, 47, 48, 49, 97, 51, --1, -1, 54, 55, -1, -1, -1, -1, -1, -1, --1, -1, -1, 65, 66, 67, -1, -1, -1, 71, -72, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, 84, 85, 86, 87, -1, -1, 90, 44, -45, 46, 47, 48, 49, 97, 51, -1, -1, 54, -55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -65, 66, 67, -1, -1, -1, 71, 72, 44, 45, -46, 47, -1, -1, -1, 51, -1, -1, 54, 55, -50, 86, 87, -1, -1, 90, -1, -1, -1, 65, -66, 67, 97, -1, -1, 71, 72, -1, 68, 69, -50, -1, -1, 73, 74, 75, 76, 77, 78, 79, -80, 81, 82, -1, 90, -1, -1, -1, 68, 69, --1, 97, -1, 73, 74, 75, 76, 77, 78, 79, -80, 81, 82 +static const short yycheck[] = { 1, + 1, 45, 247, 143, 130, 261, 189, 38, 10, 57, + 57, 199, 234, 50, 50, 55, 3, 50, 57, 57, + 325, 55, 210, 4, 28, 55, 55, 55, 55, 334, + 38, 68, 69, 14, 316, 225, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 8, 55, 5, 6, + 7, 99, 99, 59, 58, 92, 92, 313, 92, 92, + 99, 99, 91, 91, 346, 27, 28, 29, 30, 31, + 196, 293, 328, 213, 61, 32, 264, 51, 35, 36, + 37, 38, 24, 266, 41, 42, 43, 59, 45, 46, + 52, 55, 66, 67, 55, 57, 38, 39, 55, 344, + 55, 63, 5, 6, 57, 67, 63, 64, 61, 71, + 72, 367, 74, 75, 76, 223, 224, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 55, 91, + 111, 112, 134, 134, 38, 92, 55, 99, 100, 101, + 102, 103, 104, 50, 106, 107, 108, 109, 110, 339, + 59, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 59, 55, 55, 356, 129, 130, 14, + 5, 6, 7, 37, 136, 37, 220, 55, 140, 60, + 38, 38, 37, 55, 38, 23, 315, 316, 3, 23, + 56, 58, 57, 56, 55, 55, 37, 32, 200, 201, + 35, 36, 37, 38, 333, 334, 41, 42, 43, 57, + 45, 46, 41, 60, 60, 99, 60, 346, 5, 6, + 55, 350, 38, 8, 59, 57, 56, 189, 63, 64, + 200, 201, 26, 59, 196, 56, 238, 24, 56, 56, + 60, 60, 204, 205, 56, 207, 208, 209, 56, 56, + 61, 38, 39, 56, 60, 217, 61, 219, 60, 50, + 222, 223, 224, 225, 226, 38, 61, 269, 238, 59, + 272, 273, 60, 275, 58, 61, 278, 279, 240, 241, + 61, 59, 59, 50, 50, 61, 0, 0, 334, 291, + 291, 253, 230, 307, -1, -1, -1, -1, 300, 269, + 302, 303, 272, 273, 266, 275, -1, -1, 278, 279, + -1, -1, -1, -1, -1, 277, -1, -1, 320, 281, + -1, -1, 5, 6, 7, -1, -1, 329, 329, -1, + 300, -1, 302, 303, 44, 45, 46, 47, -1, -1, + -1, 51, 344, 344, 54, -1, -1, -1, -1, 32, + 320, -1, 35, 36, 37, 38, 66, 67, 41, 42, + 43, -1, 45, 46, -1, 327, -1, -1, -1, -1, + 372, 372, 55, 56, -1, 337, 338, 339, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 355, 356, -1, -1, -1, 3, -1, + 5, 6, 7, -1, 9, -1, 11, 369, 13, 14, + 15, -1, 374, -1, -1, 20, 21, 22, -1, 24, + 25, -1, 27, -1, 29, -1, -1, 32, -1, -1, + 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, + 45, 46, -1, -1, -1, -1, -1, 5, 6, 7, + 55, 9, -1, 11, -1, 13, 14, 15, 63, 64, + -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, + -1, -1, -1, -1, 32, -1, -1, 35, 36, 37, + 38, -1, 40, 41, 42, 43, -1, 45, 46, -1, + -1, -1, 5, 6, 7, -1, 9, 55, 11, -1, + 13, 14, 15, -1, -1, 63, 64, 20, 21, 22, + -1, 24, 25, -1, 27, -1, -1, -1, -1, 32, + -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, + 43, -1, 45, 46, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, -1, -1, -1, 60, -1, -1, + 63, 64, 5, 6, 7, -1, 9, -1, 11, -1, + 13, 14, 15, -1, -1, -1, -1, 20, 21, 22, + -1, 24, 25, -1, 27, -1, -1, -1, -1, 32, + -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, + 43, -1, 45, 46, -1, -1, -1, 5, 6, 7, + -1, 9, 55, 11, -1, 13, 14, 15, 61, -1, + 63, 64, 20, 21, 22, -1, 24, 25, -1, 27, + -1, -1, -1, -1, 32, -1, -1, 35, 36, 37, + 38, -1, 40, 41, 42, 43, -1, 45, 46, -1, + -1, -1, 5, 6, 7, -1, 9, 55, 11, -1, + 13, 14, 15, 61, -1, 63, 64, 20, 21, 22, + -1, 24, 25, -1, 27, -1, -1, -1, -1, 32, + -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, + 43, -1, 45, 46, -1, -1, -1, 5, 6, 7, + -1, 9, 55, 11, -1, 13, 14, 15, 61, -1, + 63, 64, 20, 21, 22, -1, 24, 25, -1, 27, + -1, 5, 6, 7, 32, -1, -1, 35, 36, 37, + 38, -1, 40, 41, 42, 43, -1, 45, 46, -1, + -1, -1, -1, -1, -1, -1, -1, 55, 32, -1, + -1, 35, 36, 37, 38, 63, 64, 41, 42, 43, + -1, 45, 46, 5, 6, 7, -1, -1, 46, 47, + -1, 55, -1, 51, -1, 59, 54, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, 66, 67, + 32, -1, -1, 35, 36, 37, 38, -1, -1, 41, + 42, 43, -1, 45, 46, 5, 6, 7, -1, -1, + -1, -1, -1, 55, -1, -1, -1, -1, 60, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 32, -1, -1, 35, 36, 37, 38, -1, + -1, 41, 42, 43, -1, 45, 46, 5, 6, 7, + -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, + -1, -1, -1, 63, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, 35, 36, 37, + 38, -1, -1, 41, 42, 43, -1, 45, 46, 5, + 6, 7, -1, -1, -1, -1, -1, 55, -1, -1, + -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 32, -1, -1, 35, + 36, 37, 38, -1, -1, 41, 42, 43, -1, 45, + 46, 5, 6, 7, -1, -1, -1, -1, -1, 55, + 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, + -1, 35, 36, 37, 38, -1, -1, 41, 42, 43, + -1, 45, 46, 5, 6, 7, -1, -1, -1, -1, + -1, 55, 56, -1, -1, -1, -1, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 32, -1, -1, 35, 36, 37, 38, -1, -1, 41, + 42, 43, -1, 45, 46, 5, 6, 7, -1, -1, + -1, -1, -1, 55, 56, -1, -1, -1, -1, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 32, -1, -1, 35, 36, 37, 38, -1, + -1, 41, 42, 43, -1, 45, 46, -1, -1, 44, + 45, 46, 47, 48, 49, 55, 51, 52, 53, 54, + -1, 56, 57, 63, 64, -1, -1, 62, -1, -1, + 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, -1, 57, -1, 59, -1, + -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, + -1, -1, 59, -1, -1, 62, -1, -1, 65, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, + 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, 56, -1, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, + -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, + -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, + -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, + 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, + -1, -1, 59, -1, -1, 62, -1, -1, 65, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, + 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, 56, -1, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, + -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, + -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, + -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + -1, -1, -1, 58, -1, -1, -1, 62, -1, -1, + 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, -1, -1, -1, 59, -1, + -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, + -1, 58, -1, -1, -1, 62, -1, -1, 65, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, + 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, 56, -1, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, + -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, + -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, + -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + -1, -1, -1, -1, 59, -1, -1, 62, -1, -1, + 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, -1, 56, + -1, -1, -1, -1, -1, 62, -1, -1, 65, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, + 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, -1, -1, -1, 59, -1, -1, 62, + -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, + -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, + -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, + -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, + 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, + -1, -1, 59, -1, -1, 62, -1, -1, 65, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, + 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, -1, -1, -1, 59, -1, -1, 62, + -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, + -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, -1, -1, -1, -1, + 59, -1, -1, 62, -1, -1, 65, 66, 67, -1, + -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + -1, -1, -1, -1, 59, -1, -1, 62, -1, -1, + 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, -1, -1, -1, -1, 59, -1, + -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, + 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, + -1, -1, -1, -1, -1, 62, -1, -1, 65, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, + 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, -1, -1, -1, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, + 44, 45, 46, 47, 48, 49, -1, 51, 52, 53, + 54, 84, 85, 86, 87, 88, 89, 90, 62, -1, + -1, 65, 66, 67, 97, -1, -1, 71, 72, 44, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + 84, 85, 86, 87, 88, -1, 90, 62, -1, -1, + 65, 66, 67, 97, -1, -1, 71, 72, 44, 45, + 46, 47, 48, 49, -1, 51, -1, 53, 54, 84, + 85, 86, 87, -1, -1, 90, 62, -1, -1, 65, + 66, 67, 97, -1, -1, 71, 72, 44, 45, 46, + 47, 48, 49, -1, 51, -1, 53, 54, 84, 85, + 86, 87, -1, -1, 90, -1, -1, -1, 65, 66, + 67, 97, -1, -1, 71, 72, 44, 45, 46, 47, + 48, 49, -1, 51, -1, -1, 54, 84, 85, 86, + 87, -1, -1, 90, -1, -1, -1, 65, 66, 67, + 97, -1, -1, 71, 72, 44, 45, 46, 47, 48, + 49, -1, 51, -1, -1, 54, 84, 85, 86, 87, + -1, -1, 90, -1, -1, -1, 65, 66, 67, 97, + -1, -1, 71, 72, 44, 45, 46, 47, -1, -1, + -1, 51, -1, -1, 54, 50, -1, 86, 87, -1, + -1, 90, -1, -1, -1, 65, 66, 67, 97, -1, + -1, 71, 72, 68, 69, 50, -1, -1, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, + 90, -1, -1, 68, 69, -1, -1, 97, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 44, 45, + 46, 47, -1, -1, -1, 51, -1, -1, 54, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 66, 67, -1, -1, -1, 71, 72 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "bison.simple" /* Skeleton output parser for bison, -Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990 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 2, or (at your option) -any later version. + 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 2, 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. + 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, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a -Bison output file, you may use that output file without restriction. -This special exception was added by the Free Software Foundation -in version 1.24 of Bison. */ + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ #ifndef alloca #ifdef __GNUC__ @@ -1175,15 +1116,15 @@ in version 1.24 of Bison. */ #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include -#pragma alloca + #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { - void *alloca(unsigned int); +void *alloca (unsigned int); }; #else /* not __cplusplus */ -void *alloca(); +void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ @@ -1193,13 +1134,13 @@ void *alloca(); #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser -when the %semantic_parser declaration is not specified in the grammar. -It was written by Richard Stallman by simplifying the hairy parser -used when %semantic_parser is specified. */ + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. -It is replaced by the list of actions, each action -as one case of the switch. */ + It is replaced by the list of actions, each action + as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) @@ -1209,9 +1150,9 @@ as one case of the switch. */ #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. -This remains here temporarily to ease the -transition to the new meaning of YYERROR, for GCC. -Once GCC version 2 has supplanted version 1, this can go. */ + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ @@ -1255,11 +1196,11 @@ while (0) int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ + /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ + /* symbol */ #endif int yynerrs; /* number of parse errors so far */ @@ -1267,18 +1208,18 @@ int yynerrs; /* number of parse errors so far */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ - /* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ #endif - /* YYINITDEPTH indicates the initial size of the parser's stacks */ +/* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif - /* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH @@ -1288,57 +1229,57 @@ int yydebug; /* nonzero means print parse trace */ #define YYMAXDEPTH 10000 #endif - /* Prevent warning if -Wstrict-prototypes. */ +/* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ -int yyparse(void); +int yyparse (void); #endif - + #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities -in available built-in functions on various systems. */ + in available built-in functions on various systems. */ static void -__yy_memcpy(from, to, count) -char *from; -char *to; -int count; +__yy_memcpy (from, to, count) + char *from; + char *to; + int count; { - register char *f = from; - register char *t = to; - register int i = count; + register char *f = from; + register char *t = to; + register int i = count; - while (i-- > 0) - *t++ = *f++; + while (i-- > 0) + *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities -in available built-in functions on various systems. */ + in available built-in functions on various systems. */ static void -__yy_memcpy(char *from, char *to, int count) +__yy_memcpy (char *from, char *to, int count) { - register char *f = from; - register char *t = to; - register int i = count; + register char *f = from; + register char *t = to; + register int i = count; - while (i-- > 0) - *t++ = *f++; + while (i-- > 0) + *t++ = *f++; } #endif #endif - + #line 192 "bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed -into yyparse. The argument should have type void *. -It should actually point to an object. -Grammar actions can access the variable by casting it -to the proper pointer type. */ + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ #ifdef YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; @@ -1349,78 +1290,78 @@ to the proper pointer type. */ int yyparse(YYPARSE_PARAM) -YYPARSE_PARAM_DECL + YYPARSE_PARAM_DECL { - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif - int yystacksize = YYINITDEPTH; + int yystacksize = YYINITDEPTH; #ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; + int yychar; + YYSTYPE yylval; + int yynerrs; #ifdef YYLSP_NEEDED - YYLTYPE yylloc; + YYLTYPE yylloc; #endif #endif - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ - int yylen; + int yylen; #if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); + if (yydebug) + fprintf(stderr, "Starting parse\n"); #endif - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ - yyssp = yyss - 1; - yyvsp = yyvs; + yyssp = yyss - 1; + yyvsp = yyvs; #ifdef YYLSP_NEEDED - yylsp = yyls; + yylsp = yyls; #endif - /* Push a new state, which is found in yystate . */ - /* In all cases, when you get here, the value and location stacks +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: - *++yyssp = yystate; + *++yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) - { + if (yyssp >= yyss + yystacksize - 1) + { /* 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; @@ -1434,20 +1375,20 @@ yynewstate: #ifdef yyoverflow /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ + the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ + but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", - &yyss1, size * sizeof(*yyssp), - &yyvs1, size * sizeof(*yyvsp), - &yyls1, size * sizeof(*yylsp), - &yystacksize); + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); #else yyoverflow("parser stack overflow", - &yyss1, size * sizeof(*yyssp), - &yyvs1, size * sizeof(*yyvsp), - &yystacksize); + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; @@ -1457,20 +1398,20 @@ yynewstate: #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - return 2; - } + { + yyerror("parser stack overflow"); + return 2; + } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; - yyss = (short *)alloca(yystacksize * sizeof(*yyssp)); - __yy_memcpy((char *)yyss1, (char *)yyss, size * sizeof(*yyssp)); - yyvs = (YYSTYPE *)alloca(yystacksize * sizeof(*yyvsp)); - __yy_memcpy((char *)yyvs1, (char *)yyvs, size * sizeof(*yyvsp)); + yystacksize = YYMAXDEPTH; + yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); + yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED - yyls = (YYLTYPE *)alloca(yystacksize * sizeof(*yylsp)); - __yy_memcpy((char *)yyls1, (char *)yyls, size * sizeof(*yylsp)); + yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ @@ -1482,995 +1423,972 @@ yynewstate: #if YYDEBUG != 0 if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); + fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } + YYABORT; + } #if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); #endif - goto yybackup; -yybackup: + goto yybackup; + yybackup: - /* Do appropriate processing given the current state. */ - /* Read a lookahead token if we need one and don't already have one. */ - /* yyresume: */ +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ - if (yychar == YYEMPTY) - { + if (yychar == YYEMPTY) + { #if YYDEBUG != 0 if (yydebug) - fprintf(stderr, "Reading a token: "); + fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; - } + } - /* Convert token to internal form (in yychar1) for indexing tables with */ + /* Convert token to internal form (in yychar1) for indexing tables with */ - if (yychar <= 0) /* This means end of input. */ - { + if (yychar <= 0) /* This means end of input. */ + { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) - fprintf(stderr, "Now at end of input.\n"); + fprintf(stderr, "Now at end of input.\n"); #endif - } - else - { + } + else + { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) - { - fprintf(stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ #ifdef YYPRINT - YYPRINT(stderr, yychar, yylval); + YYPRINT (stderr, yychar, yylval); #endif - fprintf(stderr, ")\n"); - } + fprintf (stderr, ")\n"); + } #endif - } + } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; - yyn = yytable[yyn]; + yyn = yytable[yyn]; - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ - if (yyn < 0) - { + if (yyn < 0) + { if (yyn == YYFLAG) - goto yyerrlab; + goto yyerrlab; yyn = -yyn; goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; + } + else if (yyn == 0) + goto yyerrlab; - if (yyn == YYFINAL) - YYACCEPT; + if (yyn == YYFINAL) + YYACCEPT; - /* Shift the lookahead token. */ + /* Shift the lookahead token. */ #if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; - *++yyvsp = yylval; + *++yyvsp = yylval; #ifdef YYLSP_NEEDED - *++yylsp = yylloc; + *++yylsp = yylloc; #endif - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; - yystate = yyn; - goto yynewstate; + yystate = yyn; + goto yynewstate; - /* Do the default action for the current state. */ +/* Do the default action for the current state. */ yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; - /* Do a reduction. yyn is the number of a rule to reduce with. */ +/* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: - yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1 - yylen]; /* implement default value of the action */ + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 - if (yydebug) - { + if (yydebug) + { int i; - fprintf(stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf(stderr, "%s ", yytname[yyrhs[i]]); - fprintf(stderr, " -> %s\n", yytname[yyr1[yyn]]); - } + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } #endif - switch (yyn) { + switch (yyn) { - case 1: +case 1: #line 162 "cmdgram.y" - {; - break; } - case 2: +{ ; + break;} +case 2: #line 167 "cmdgram.y" - { yyval.stmt = nil; ; - break; } - case 3: +{ yyval.stmt = nil; ; + break;} +case 3: #line 169 "cmdgram.y" - { if (!gStatementList) { gStatementList = yyvsp[0].stmt; } - else { gStatementList->append(yyvsp[0].stmt); }; - break; } - case 4: +{ if(!gStatementList) { gStatementList = yyvsp[0].stmt; } else { gStatementList->append(yyvsp[0].stmt); } ; + break;} +case 4: #line 174 "cmdgram.y" - { yyval.stmt = yyvsp[0].stmt; ; - break; } - case 5: +{ yyval.stmt = yyvsp[0].stmt; ; + break;} +case 5: #line 176 "cmdgram.y" - { yyval.stmt = yyvsp[0].stmt; ; - break; } - case 6: +{ yyval.stmt = yyvsp[0].stmt; ; + break;} +case 6: #line 178 "cmdgram.y" - { yyval.stmt = yyvsp[0].stmt; ; - break; } - case 7: +{ yyval.stmt = yyvsp[0].stmt; ; + break;} +case 7: #line 183 "cmdgram.y" - { yyval.stmt = yyvsp[-2].stmt; for (StmtNode *walk = (yyvsp[-2].stmt); walk; walk = walk->getNext()) walk->setPackage(yyvsp[-4].s.value); ; - break; } - case 8: +{ yyval.stmt = yyvsp[-2].stmt; for(StmtNode *walk = (yyvsp[-2].stmt);walk;walk = walk->getNext() ) walk->setPackage(yyvsp[-4].s.value); ; + break;} +case 8: #line 188 "cmdgram.y" - { yyval.stmt = yyvsp[0].stmt; ; - break; } - case 9: +{ yyval.stmt = yyvsp[0].stmt; ; + break;} +case 9: #line 190 "cmdgram.y" - { yyval.stmt = yyvsp[-1].stmt; (yyvsp[-1].stmt)->append(yyvsp[0].stmt); ; - break; } - case 10: +{ yyval.stmt = yyvsp[-1].stmt; (yyvsp[-1].stmt)->append(yyvsp[0].stmt); ; + break;} +case 10: #line 195 "cmdgram.y" - { yyval.stmt = nil; ; - break; } - case 11: +{ yyval.stmt = nil; ; + break;} +case 11: #line 197 "cmdgram.y" - { if (!yyvsp[-1].stmt) { yyval.stmt = yyvsp[0].stmt; } - else { (yyvsp[-1].stmt)->append(yyvsp[0].stmt); yyval.stmt = yyvsp[-1].stmt; }; - break; } - case 18: +{ if(!yyvsp[-1].stmt) { yyval.stmt = yyvsp[0].stmt; } else { (yyvsp[-1].stmt)->append(yyvsp[0].stmt); yyval.stmt = yyvsp[-1].stmt; } ; + break;} +case 18: #line 208 "cmdgram.y" - { yyval.stmt = BreakStmtNode::alloc(yyvsp[-1].i.lineNumber); ; - break; } - case 19: +{ yyval.stmt = BreakStmtNode::alloc( yyvsp[-1].i.lineNumber ); ; + break;} +case 19: #line 210 "cmdgram.y" - { yyval.stmt = ContinueStmtNode::alloc(yyvsp[-1].i.lineNumber); ; - break; } - case 20: +{ yyval.stmt = ContinueStmtNode::alloc( yyvsp[-1].i.lineNumber ); ; + break;} +case 20: #line 212 "cmdgram.y" - { yyval.stmt = ReturnStmtNode::alloc(yyvsp[-1].i.lineNumber, NULL); ; - break; } - case 21: +{ yyval.stmt = ReturnStmtNode::alloc( yyvsp[-1].i.lineNumber, NULL ); ; + break;} +case 21: #line 214 "cmdgram.y" - { yyval.stmt = ReturnStmtNode::alloc(yyvsp[-2].i.lineNumber, yyvsp[-1].expr); ; - break; } - case 22: +{ yyval.stmt = ReturnStmtNode::alloc( yyvsp[-2].i.lineNumber, yyvsp[-1].expr ); ; + break;} +case 22: #line 216 "cmdgram.y" - { yyval.stmt = yyvsp[-1].stmt; ; - break; } - case 23: +{ yyval.stmt = yyvsp[-1].stmt; ; + break;} +case 23: #line 218 "cmdgram.y" - { yyval.stmt = TTagSetStmtNode::alloc(yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr, NULL); ; - break; } - case 24: +{ yyval.stmt = TTagSetStmtNode::alloc( yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr, NULL ); ; + break;} +case 24: #line 220 "cmdgram.y" - { yyval.stmt = TTagSetStmtNode::alloc(yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[-1].expr); ; - break; } - case 25: +{ yyval.stmt = TTagSetStmtNode::alloc( yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[-1].expr ); ; + break;} +case 25: #line 222 "cmdgram.y" - { yyval.stmt = StrConstNode::alloc(yyvsp[0].str.lineNumber, yyvsp[0].str.value, false, true); ; - break; } - case 26: +{ yyval.stmt = StrConstNode::alloc( yyvsp[0].str.lineNumber, yyvsp[0].str.value, false, true ); ; + break;} +case 26: #line 227 "cmdgram.y" - { yyval.stmt = FunctionDeclStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-6].s.value, NULL, yyvsp[-4].var, yyvsp[-1].stmt); ; - break; } - case 27: +{ yyval.stmt = FunctionDeclStmtNode::alloc( yyvsp[-7].i.lineNumber, yyvsp[-6].s.value, NULL, yyvsp[-4].var, yyvsp[-1].stmt ); ; + break;} +case 27: #line 229 "cmdgram.y" - { yyval.stmt = FunctionDeclStmtNode::alloc(yyvsp[-9].i.lineNumber, yyvsp[-6].s.value, yyvsp[-8].s.value, yyvsp[-4].var, yyvsp[-1].stmt); ; - break; } - case 28: +{ yyval.stmt = FunctionDeclStmtNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-6].s.value, yyvsp[-8].s.value, yyvsp[-4].var, yyvsp[-1].stmt ); ; + break;} +case 28: #line 234 "cmdgram.y" - { yyval.var = NULL; ; - break; } - case 29: +{ yyval.var = NULL; ; + break;} +case 29: #line 236 "cmdgram.y" - { yyval.var = yyvsp[0].var; ; - break; } - case 30: +{ yyval.var = yyvsp[0].var; ; + break;} +case 30: #line 241 "cmdgram.y" - { yyval.var = VarNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL); ; - break; } - case 31: +{ yyval.var = VarNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL ); ; + break;} +case 31: #line 243 "cmdgram.y" - { yyval.var = yyvsp[-2].var; ((StmtNode*)(yyvsp[-2].var))->append((StmtNode*)VarNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL)); ; - break; } - case 32: +{ yyval.var = yyvsp[-2].var; ((StmtNode*)(yyvsp[-2].var))->append((StmtNode*)VarNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL ) ); ; + break;} +case 32: #line 248 "cmdgram.y" - { yyval.stmt = ObjectDeclNode::alloc(yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, NULL, yyvsp[-5].s.value, yyvsp[-2].slist, NULL, true, false, false); ; - break; } - case 33: +{ yyval.stmt = ObjectDeclNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, NULL, yyvsp[-5].s.value, yyvsp[-2].slist, NULL, true, false, false); ; + break;} +case 33: #line 253 "cmdgram.y" - { yyval.od = ObjectDeclNode::alloc(yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, false); ; - break; } - case 34: +{ yyval.od = ObjectDeclNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, false); ; + break;} +case 34: #line 255 "cmdgram.y" - { yyval.od = ObjectDeclNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, false, false); ; - break; } - case 35: +{ yyval.od = ObjectDeclNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, false, false); ; + break;} +case 35: #line 257 "cmdgram.y" - { yyval.od = ObjectDeclNode::alloc(yyvsp[-11].i.lineNumber, yyvsp[-10].expr, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, true, false); ; - break; } - case 36: +{ yyval.od = ObjectDeclNode::alloc( yyvsp[-11].i.lineNumber, yyvsp[-10].expr, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, true, false); ; + break;} +case 36: #line 259 "cmdgram.y" - { yyval.od = ObjectDeclNode::alloc(yyvsp[-8].i.lineNumber, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, true, false); ; - break; } - case 37: +{ yyval.od = ObjectDeclNode::alloc( yyvsp[-8].i.lineNumber, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, true, false); ; + break;} +case 37: #line 261 "cmdgram.y" - { yyval.od = ObjectDeclNode::alloc(yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, true); ; - break; } - case 38: +{ yyval.od = ObjectDeclNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, true); ; + break;} +case 38: #line 263 "cmdgram.y" - { yyval.od = ObjectDeclNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, false, true); ; - break; } - case 39: +{ yyval.od = ObjectDeclNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, false, true); ; + break;} +case 39: #line 268 "cmdgram.y" - { yyval.s.value = NULL; ; - break; } - case 40: +{ yyval.s.value = NULL; ; + break;} +case 40: #line 270 "cmdgram.y" - { yyval.s = yyvsp[0].s; ; - break; } - case 41: +{ yyval.s = yyvsp[0].s; ; + break;} +case 41: #line 275 "cmdgram.y" - { yyval.expr = StrConstNode::alloc(CodeBlock::smCurrentParser->getCurrentLine(), "", false); ; - break; } - case 42: +{ yyval.expr = StrConstNode::alloc( CodeBlock::smCurrentParser->getCurrentLine(), "", false); ; + break;} +case 42: #line 277 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 43: +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 43: #line 282 "cmdgram.y" - { yyval.expr = NULL; ; - break; } - case 44: +{ yyval.expr = NULL; ; + break;} +case 44: #line 284 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 45: +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 45: #line 289 "cmdgram.y" - { yyval.odcl.slots = NULL; yyval.odcl.decls = NULL; ; - break; } - case 46: +{ yyval.odcl.slots = NULL; yyval.odcl.decls = NULL; ; + break;} +case 46: #line 291 "cmdgram.y" - { yyval.odcl.slots = yyvsp[0].slist; yyval.odcl.decls = NULL; ; - break; } - case 47: +{ yyval.odcl.slots = yyvsp[0].slist; yyval.odcl.decls = NULL; ; + break;} +case 47: #line 293 "cmdgram.y" - { yyval.odcl.slots = NULL; yyval.odcl.decls = yyvsp[0].od; ; - break; } - case 48: +{ yyval.odcl.slots = NULL; yyval.odcl.decls = yyvsp[0].od; ; + break;} +case 48: #line 295 "cmdgram.y" - { yyval.odcl.slots = yyvsp[-1].slist; yyval.odcl.decls = yyvsp[0].od; ; - break; } - case 49: +{ yyval.odcl.slots = yyvsp[-1].slist; yyval.odcl.decls = yyvsp[0].od; ; + break;} +case 49: #line 300 "cmdgram.y" - { yyval.od = yyvsp[-1].od; ; - break; } - case 50: +{ yyval.od = yyvsp[-1].od; ; + break;} +case 50: #line 302 "cmdgram.y" - { yyvsp[-2].od->append(yyvsp[-1].od); yyval.od = yyvsp[-2].od; ; - break; } - case 51: +{ yyvsp[-2].od->append(yyvsp[-1].od); yyval.od = yyvsp[-2].od; ; + break;} +case 51: #line 307 "cmdgram.y" - { yyval.stmt = yyvsp[-1].stmt; ; - break; } - case 52: +{ yyval.stmt = yyvsp[-1].stmt; ; + break;} +case 52: #line 309 "cmdgram.y" - { yyval.stmt = yyvsp[0].stmt; ; - break; } - case 53: +{ yyval.stmt = yyvsp[0].stmt; ; + break;} +case 53: #line 314 "cmdgram.y" - { yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, false); ; - break; } - case 54: +{ yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, false); ; + break;} +case 54: #line 316 "cmdgram.y" - { yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, true); ; - break; } - case 55: +{ yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, true); ; + break;} +case 55: #line 321 "cmdgram.y" - { yyval.ifnode = IfStmtNode::alloc(yyvsp[-3].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; - break; } - case 56: +{ yyval.ifnode = IfStmtNode::alloc( yyvsp[-3].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; + break;} +case 56: #line 323 "cmdgram.y" - { yyval.ifnode = IfStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].stmt, yyvsp[0].stmt, false); ; - break; } - case 57: +{ yyval.ifnode = IfStmtNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].stmt, yyvsp[0].stmt, false); ; + break;} +case 57: #line 325 "cmdgram.y" - { yyval.ifnode = IfStmtNode::alloc(yyvsp[-4].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].stmt, yyvsp[0].ifnode, true); ; - break; } - case 58: +{ yyval.ifnode = IfStmtNode::alloc( yyvsp[-4].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].stmt, yyvsp[0].ifnode, true); ; + break;} +case 58: #line 330 "cmdgram.y" - { yyval.expr = yyvsp[0].expr;; - break; } - case 59: +{ yyval.expr = yyvsp[0].expr;; + break;} +case 59: #line 332 "cmdgram.y" - { (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ; - break; } - case 60: +{ (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr=yyvsp[-2].expr; ; + break;} +case 60: #line 337 "cmdgram.y" - { yyval.stmt = IfStmtNode::alloc(yyvsp[-4].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; - break; } - case 61: +{ yyval.stmt = IfStmtNode::alloc(yyvsp[-4].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; + break;} +case 61: #line 339 "cmdgram.y" - { yyval.stmt = IfStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, yyvsp[-2].stmt, yyvsp[0].stmt, false); ; - break; } - case 62: +{ yyval.stmt = IfStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, yyvsp[-2].stmt, yyvsp[0].stmt, false); ; + break;} +case 62: #line 344 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-4].i.lineNumber, nil, yyvsp[-2].expr, nil, yyvsp[0].stmt, false); ; - break; } - case 63: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-4].i.lineNumber, nil, yyvsp[-2].expr, nil, yyvsp[0].stmt, false); ; + break;} +case 63: #line 346 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-3].i.lineNumber, nil, yyvsp[-1].expr, nil, yyvsp[-4].stmt, true); ; - break; } - case 64: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-3].i.lineNumber, nil, yyvsp[-1].expr, nil, yyvsp[-4].stmt, true); ; + break;} +case 64: #line 351 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-8].i.lineNumber, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; - break; } - case 65: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-8].i.lineNumber, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; + break;} +case 65: #line 353 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; - break; } - case 66: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; + break;} +case 66: #line 355 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; - break; } - case 67: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; + break;} +case 67: #line 357 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, NULL, NULL, yyvsp[0].stmt, false); ; - break; } - case 68: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, NULL, NULL, yyvsp[0].stmt, false); ; + break;} +case 68: #line 359 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; - break; } - case 69: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; + break;} +case 69: #line 361 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; - break; } - case 70: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; + break;} +case 70: #line 363 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; - break; } - case 71: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; + break;} +case 71: #line 365 "cmdgram.y" - { yyval.stmt = LoopStmtNode::alloc(yyvsp[-5].i.lineNumber, NULL, NULL, NULL, yyvsp[0].stmt, false); ; - break; } - case 72: +{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-5].i.lineNumber, NULL, NULL, NULL, yyvsp[0].stmt, false); ; + break;} +case 72: #line 370 "cmdgram.y" - { yyval.stmt = IterStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, false); ; - break; } - case 73: +{ yyval.stmt = IterStmtNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, false ); ; + break;} +case 73: #line 372 "cmdgram.y" - { yyval.stmt = IterStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, true); ; - break; } - case 74: +{ yyval.stmt = IterStmtNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, true ); ; + break;} +case 74: #line 377 "cmdgram.y" - { yyval.stmt = yyvsp[0].expr; ; - break; } - case 75: +{ yyval.stmt = yyvsp[0].expr; ; + break;} +case 75: #line 382 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 76: +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 76: #line 384 "cmdgram.y" - { yyval.expr = yyvsp[-1].expr; ; - break; } - case 77: +{ yyval.expr = yyvsp[-1].expr; ; + break;} +case 77: #line 386 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 78: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 78: #line 388 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 79: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 79: #line 390 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 80: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 80: #line 392 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 81: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 81: #line 394 "cmdgram.y" - { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 82: +{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 82: #line 396 "cmdgram.y" - { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 83: +{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 83: #line 398 "cmdgram.y" - { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 84: +{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 84: #line 400 "cmdgram.y" - { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 85: +{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 85: #line 402 "cmdgram.y" - { yyval.expr = FloatUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; - break; } - case 86: +{ yyval.expr = FloatUnaryExprNode::alloc( yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; + break;} +case 86: #line 404 "cmdgram.y" - { yyval.expr = TTagDerefNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[0].expr); ; - break; } - case 87: +{ yyval.expr = TTagDerefNode::alloc( yyvsp[-1].i.lineNumber, yyvsp[0].expr ); ; + break;} +case 87: #line 406 "cmdgram.y" - { yyval.expr = TTagExprNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value); ; - break; } - case 88: +{ yyval.expr = TTagExprNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value ); ; + break;} +case 88: #line 408 "cmdgram.y" - { yyval.expr = ConditionalExprNode::alloc(yyvsp[-4].expr->dbgLineNumber, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 89: +{ yyval.expr = ConditionalExprNode::alloc( yyvsp[-4].expr->dbgLineNumber, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 89: #line 410 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 90: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 90: #line 412 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 91: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 91: #line 414 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 92: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 92: #line 416 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 93: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 93: #line 418 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 94: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 94: #line 420 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 95: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 95: #line 422 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 96: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 96: #line 424 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 97: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 97: #line 426 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 98: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 98: #line 428 "cmdgram.y" - { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - case 99: +{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +case 99: #line 430 "cmdgram.y" - { yyval.expr = StreqExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, true); ; - break; } - case 100: +{ yyval.expr = StreqExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, true); ; + break;} +case 100: #line 432 "cmdgram.y" - { yyval.expr = StreqExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, false); ; - break; } - case 101: +{ yyval.expr = StreqExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, false); ; + break;} +case 101: #line 434 "cmdgram.y" - { yyval.expr = StrcatExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].i.value); ; - break; } - case 102: +{ yyval.expr = StrcatExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].i.value); ; + break;} +case 102: #line 436 "cmdgram.y" - { yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; - break; } - case 103: +{ yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; + break;} +case 103: #line 438 "cmdgram.y" - { yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; - break; } - case 104: +{ yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; + break;} +case 104: #line 440 "cmdgram.y" - { yyval.expr = StrConstNode::alloc(yyvsp[0].str.lineNumber, yyvsp[0].str.value, true); ; - break; } - case 105: +{ yyval.expr = StrConstNode::alloc( yyvsp[0].str.lineNumber, yyvsp[0].str.value, true); ; + break;} +case 105: #line 442 "cmdgram.y" - { yyval.expr = FloatNode::alloc(yyvsp[0].f.lineNumber, yyvsp[0].f.value); ; - break; } - case 106: +{ yyval.expr = FloatNode::alloc( yyvsp[0].f.lineNumber, yyvsp[0].f.value ); ; + break;} +case 106: #line 444 "cmdgram.y" - { yyval.expr = IntNode::alloc(yyvsp[0].i.lineNumber, yyvsp[0].i.value); ; - break; } - case 107: +{ yyval.expr = IntNode::alloc( yyvsp[0].i.lineNumber, yyvsp[0].i.value ); ; + break;} +case 107: #line 446 "cmdgram.y" - { yyval.expr = ConstantNode::alloc(yyvsp[0].i.lineNumber, StringTable->insert("break")); ; - break; } - case 108: +{ yyval.expr = ConstantNode::alloc( yyvsp[0].i.lineNumber, StringTable->insert("break")); ; + break;} +case 108: #line 448 "cmdgram.y" - { yyval.expr = SlotAccessNode::alloc(yyvsp[0].slot.lineNumber, yyvsp[0].slot.object, yyvsp[0].slot.array, yyvsp[0].slot.slotName); ; - break; } - case 109: +{ yyval.expr = SlotAccessNode::alloc( yyvsp[0].slot.lineNumber, yyvsp[0].slot.object, yyvsp[0].slot.array, yyvsp[0].slot.slotName ); ; + break;} +case 109: #line 450 "cmdgram.y" - { yyval.expr = InternalSlotAccessNode::alloc(yyvsp[0].intslot.lineNumber, yyvsp[0].intslot.object, yyvsp[0].intslot.slotExpr, yyvsp[0].intslot.recurse); ; - break; } - case 110: +{ yyval.expr = InternalSlotAccessNode::alloc( yyvsp[0].intslot.lineNumber, yyvsp[0].intslot.object, yyvsp[0].intslot.slotExpr, yyvsp[0].intslot.recurse); ; + break;} +case 110: #line 452 "cmdgram.y" - { yyval.expr = ConstantNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value); ; - break; } - case 111: +{ yyval.expr = ConstantNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value ); ; + break;} +case 111: #line 454 "cmdgram.y" - { yyval.expr = StrConstNode::alloc(yyvsp[0].str.lineNumber, yyvsp[0].str.value, false); ; - break; } - case 112: +{ yyval.expr = StrConstNode::alloc( yyvsp[0].str.lineNumber, yyvsp[0].str.value, false); ; + break;} +case 112: #line 456 "cmdgram.y" - { yyval.expr = (ExprNode*)VarNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL); ; - break; } - case 113: +{ yyval.expr = (ExprNode*)VarNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL); ; + break;} +case 113: #line 458 "cmdgram.y" - { yyval.expr = (ExprNode*)VarNode::alloc(yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr); ; - break; } - case 114: -#line 460 "cmdgram.y" - { - const U32 bufLen = 64; - UTF8 buffer[bufLen]; - dSprintf(buffer, bufLen, "__anonymous_function%d", gAnonFunctionID++); - StringTableEntry fName = StringTable->insert(buffer); - StmtNode *fndef = FunctionDeclStmtNode::alloc(yyvsp[-6].i.lineNumber, fName, NULL, yyvsp[-4].var, yyvsp[-1].stmt); - - if (!gAnonFunctionList) - gAnonFunctionList = fndef; - else - gAnonFunctionList->append(fndef); - - yyval.expr = StrConstNode::alloc(yyvsp[-6].i.lineNumber, (UTF8*)fName, false); - ; - break; } - case 115: -#line 478 "cmdgram.y" - { yyval.slot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.slot.object = yyvsp[-2].expr; yyval.slot.slotName = yyvsp[0].s.value; yyval.slot.array = NULL; ; - break; } - case 116: +{ yyval.expr = (ExprNode*)VarNode::alloc( yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr ); ; + break;} +case 114: #line 480 "cmdgram.y" - { yyval.slot.lineNumber = yyvsp[-5].expr->dbgLineNumber; yyval.slot.object = yyvsp[-5].expr; yyval.slot.slotName = yyvsp[-3].s.value; yyval.slot.array = yyvsp[-1].expr; ; - break; } - case 117: -#line 485 "cmdgram.y" - { yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = false; ; - break; } - case 118: +{ yyval.slot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.slot.object = yyvsp[-2].expr; yyval.slot.slotName = yyvsp[0].s.value; yyval.slot.array = NULL; ; + break;} +case 115: +#line 482 "cmdgram.y" +{ yyval.slot.lineNumber = yyvsp[-5].expr->dbgLineNumber; yyval.slot.object = yyvsp[-5].expr; yyval.slot.slotName = yyvsp[-3].s.value; yyval.slot.array = yyvsp[-1].expr; ; + break;} +case 116: #line 487 "cmdgram.y" - { yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = true; ; - break; } - case 119: -#line 492 "cmdgram.y" - { yyval.expr = ConstantNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value); ; - break; } - case 120: +{ yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = false; ; + break;} +case 117: +#line 489 "cmdgram.y" +{ yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = true; ; + break;} +case 118: #line 494 "cmdgram.y" - { yyval.expr = yyvsp[-1].expr; ; - break; } - case 121: -#line 499 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = opPLUSPLUS; yyval.asn.expr = FloatNode::alloc(yyvsp[0].i.lineNumber, 1); ; - break; } - case 122: +{ yyval.expr = ConstantNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value ); ; + break;} +case 119: +#line 496 "cmdgram.y" +{ yyval.expr = yyvsp[-1].expr; ; + break;} +case 120: #line 501 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = opMINUSMINUS; yyval.asn.expr = FloatNode::alloc(yyvsp[0].i.lineNumber, 1); ; - break; } - case 123: +{ yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = opPLUSPLUS; yyval.asn.expr = FloatNode::alloc( yyvsp[0].i.lineNumber, 1 ); ; + break;} +case 121: #line 503 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '+'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 124: +{ yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = opMINUSMINUS; yyval.asn.expr = FloatNode::alloc( yyvsp[0].i.lineNumber, 1 ); ; + break;} +case 122: #line 505 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '-'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 125: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '+'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 123: #line 507 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '*'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 126: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '-'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 124: #line 509 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '/'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 127: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '*'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 125: #line 511 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '%'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 128: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '/'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 126: #line 513 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '&'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 129: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '%'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 127: #line 515 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '^'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 130: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '&'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 128: #line 517 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '|'; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 131: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '^'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 129: #line 519 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHL; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 132: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '|'; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 130: #line 521 "cmdgram.y" - { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHR; yyval.asn.expr = yyvsp[0].expr; ; - break; } - case 133: -#line 526 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 134: +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHL; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 131: +#line 523 "cmdgram.y" +{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHR; yyval.asn.expr = yyvsp[0].expr; ; + break;} +case 132: #line 528 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 135: +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 133: #line 530 "cmdgram.y" - { yyval.expr = yyvsp[0].od; ; - break; } - case 136: +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 134: #line 532 "cmdgram.y" - { yyval.expr = AssignExprNode::alloc(yyvsp[-2].s.lineNumber, yyvsp[-2].s.value, NULL, yyvsp[0].expr); ; - break; } - case 137: +{ yyval.expr = yyvsp[0].od; ; + break;} +case 135: #line 534 "cmdgram.y" - { yyval.expr = AssignExprNode::alloc(yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[0].expr); ; - break; } - case 138: +{ yyval.expr = AssignExprNode::alloc( yyvsp[-2].s.lineNumber, yyvsp[-2].s.value, NULL, yyvsp[0].expr); ; + break;} +case 136: #line 536 "cmdgram.y" - { yyval.expr = AssignOpExprNode::alloc(yyvsp[-1].s.lineNumber, yyvsp[-1].s.value, NULL, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; - break; } - case 139: +{ yyval.expr = AssignExprNode::alloc( yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[0].expr); ; + break;} +case 137: #line 538 "cmdgram.y" - { yyval.expr = AssignOpExprNode::alloc(yyvsp[-4].s.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; - break; } - case 140: +{ yyval.expr = AssignOpExprNode::alloc( yyvsp[-1].s.lineNumber, yyvsp[-1].s.value, NULL, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; + break;} +case 138: #line 540 "cmdgram.y" - { yyval.expr = SlotAssignOpNode::alloc(yyvsp[-1].slot.lineNumber, yyvsp[-1].slot.object, yyvsp[-1].slot.slotName, yyvsp[-1].slot.array, yyvsp[0].asn.token, yyvsp[0].asn.expr); ; - break; } - case 141: +{ yyval.expr = AssignOpExprNode::alloc( yyvsp[-4].s.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; + break;} +case 139: #line 542 "cmdgram.y" - { yyval.expr = SlotAssignNode::alloc(yyvsp[-2].slot.lineNumber, yyvsp[-2].slot.object, yyvsp[-2].slot.array, yyvsp[-2].slot.slotName, yyvsp[0].expr); ; - break; } - case 142: +{ yyval.expr = SlotAssignOpNode::alloc( yyvsp[-1].slot.lineNumber, yyvsp[-1].slot.object, yyvsp[-1].slot.slotName, yyvsp[-1].slot.array, yyvsp[0].asn.token, yyvsp[0].asn.expr); ; + break;} +case 140: #line 544 "cmdgram.y" - { yyval.expr = SlotAssignNode::alloc(yyvsp[-4].slot.lineNumber, yyvsp[-4].slot.object, yyvsp[-4].slot.array, yyvsp[-4].slot.slotName, yyvsp[-1].expr); ; - break; } - case 143: -#line 549 "cmdgram.y" - { yyval.expr = FuncCallExprNode::alloc(yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, NULL, yyvsp[-1].expr, false); ; - break; } - case 144: +{ yyval.expr = SlotAssignNode::alloc( yyvsp[-2].slot.lineNumber, yyvsp[-2].slot.object, yyvsp[-2].slot.array, yyvsp[-2].slot.slotName, yyvsp[0].expr); ; + break;} +case 141: +#line 546 "cmdgram.y" +{ yyval.expr = SlotAssignNode::alloc( yyvsp[-4].slot.lineNumber, yyvsp[-4].slot.object, yyvsp[-4].slot.array, yyvsp[-4].slot.slotName, yyvsp[-1].expr); ; + break;} +case 142: #line 551 "cmdgram.y" - { yyval.expr = FuncCallExprNode::alloc(yyvsp[-5].s.lineNumber, yyvsp[-3].s.value, yyvsp[-5].s.value, yyvsp[-1].expr, false); ; - break; } - case 145: +{ yyval.expr = FuncCallExprNode::alloc( yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, NULL, yyvsp[-1].expr, false); ; + break;} +case 143: #line 553 "cmdgram.y" - { yyvsp[-5].expr->append(yyvsp[-1].expr); yyval.expr = FuncCallExprNode::alloc(yyvsp[-5].expr->dbgLineNumber, yyvsp[-3].s.value, NULL, yyvsp[-5].expr, true); ; - break; } - case 146: +{ yyval.expr = FuncCallExprNode::alloc( yyvsp[-5].s.lineNumber, yyvsp[-3].s.value, yyvsp[-5].s.value, yyvsp[-1].expr, false); ; + break;} +case 144: #line 555 "cmdgram.y" - { yyval.expr = FuncPointerCallExprNode::alloc(yyvsp[-3].expr->dbgLineNumber, yyvsp[-3].expr, yyvsp[-1].expr); ; - break; } - case 147: -#line 560 "cmdgram.y" - { yyval.expr = AssertCallExprNode::alloc(yyvsp[-3].i.lineNumber, yyvsp[-1].expr, NULL); ; - break; } - case 148: -#line 562 "cmdgram.y" - { yyval.expr = AssertCallExprNode::alloc(yyvsp[-5].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].str.value); ; - break; } - case 149: +{ yyvsp[-5].expr->append(yyvsp[-1].expr); yyval.expr = FuncCallExprNode::alloc( yyvsp[-5].expr->dbgLineNumber, yyvsp[-3].s.value, NULL, yyvsp[-5].expr, true); ; + break;} +case 145: +#line 565 "cmdgram.y" +{ yyval.expr = AssertCallExprNode::alloc( yyvsp[-3].i.lineNumber, yyvsp[-1].expr, NULL ); ; + break;} +case 146: #line 567 "cmdgram.y" - { yyval.expr = NULL; ; - break; } - case 150: -#line 569 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 151: +{ yyval.expr = AssertCallExprNode::alloc( yyvsp[-5].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].str.value ); ; + break;} +case 147: +#line 572 "cmdgram.y" +{ yyval.expr = NULL; ; + break;} +case 148: #line 574 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 152: -#line 576 "cmdgram.y" - { (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ; - break; } - case 153: +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 149: +#line 579 "cmdgram.y" +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 150: #line 581 "cmdgram.y" - { yyval.slist = NULL; ; - break; } - case 154: -#line 583 "cmdgram.y" - { yyval.slist = yyvsp[0].slist; ; - break; } - case 155: +{ (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ; + break;} +case 151: +#line 586 "cmdgram.y" +{ yyval.slist = NULL; ; + break;} +case 152: #line 588 "cmdgram.y" - { yyval.slist = yyvsp[0].slist; ; - break; } - case 156: -#line 590 "cmdgram.y" - { yyvsp[-1].slist->append(yyvsp[0].slist); yyval.slist = yyvsp[-1].slist; ; - break; } - case 157: +{ yyval.slist = yyvsp[0].slist; ; + break;} +case 153: +#line 593 "cmdgram.y" +{ yyval.slist = yyvsp[0].slist; ; + break;} +case 154: #line 595 "cmdgram.y" - { yyval.slist = SlotAssignNode::alloc(yyvsp[-3].s.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr); ; - break; } - case 158: -#line 597 "cmdgram.y" - { yyval.slist = SlotAssignNode::alloc(yyvsp[-4].i.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr, yyvsp[-4].i.value); ; - break; } - case 159: -#line 599 "cmdgram.y" - { yyval.slist = SlotAssignNode::alloc(yyvsp[-3].i.lineNumber, NULL, NULL, StringTable->insert("datablock"), yyvsp[-1].expr); ; - break; } - case 160: -#line 601 "cmdgram.y" - { yyval.slist = SlotAssignNode::alloc(yyvsp[-6].s.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr); ; - break; } - case 161: -#line 603 "cmdgram.y" - { yyval.slist = SlotAssignNode::alloc(yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr, yyvsp[-7].i.value); ; - break; } - case 162: +{ yyvsp[-1].slist->append(yyvsp[0].slist); yyval.slist = yyvsp[-1].slist; ; + break;} +case 155: +#line 600 "cmdgram.y" +{ yyval.slist = SlotAssignNode::alloc( yyvsp[-3].s.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr); ; + break;} +case 156: +#line 602 "cmdgram.y" +{ yyval.slist = SlotAssignNode::alloc( yyvsp[-4].i.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr, yyvsp[-4].i.value); ; + break;} +case 157: +#line 604 "cmdgram.y" +{ yyval.slist = SlotAssignNode::alloc( yyvsp[-3].i.lineNumber, NULL, NULL, StringTable->insert("datablock"), yyvsp[-1].expr); ; + break;} +case 158: +#line 606 "cmdgram.y" +{ yyval.slist = SlotAssignNode::alloc( yyvsp[-6].s.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr); ; + break;} +case 159: #line 608 "cmdgram.y" - { yyval.expr = yyvsp[0].expr; ; - break; } - case 163: -#line 610 "cmdgram.y" - { yyval.expr = CommaCatExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr); ; - break; } - } +{ yyval.slist = SlotAssignNode::alloc( yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr, yyvsp[-7].i.value); ; + break;} +case 160: +#line 613 "cmdgram.y" +{ yyval.expr = yyvsp[0].expr; ; + break;} +case 161: +#line 615 "cmdgram.y" +{ yyval.expr = CommaCatExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr); ; + break;} +} /* the action file gets copied in in place of this dollarsign */ #line 487 "bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; + + yyvsp -= yylen; + yyssp -= yylen; #ifdef YYLSP_NEEDED - yylsp -= yylen; + yylsp -= yylen; #endif #if YYDEBUG != 0 - if (yydebug) - { + if (yydebug) + { short *ssp1 = yyss - 1; - fprintf(stderr, "state stack now"); + fprintf (stderr, "state stack now"); while (ssp1 != yyssp) - fprintf(stderr, " %d", *++ssp1); - fprintf(stderr, "\n"); - } + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } #endif - *++yyvsp = yyval; + *++yyvsp = yyval; #ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { + yylsp++; + if (yylen == 0) + { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp - 1)->last_line; - yylsp->last_column = (yylsp - 1)->last_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp + yylen - 1)->last_line; - yylsp->last_column = (yylsp + yylen - 1)->last_column; - } + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } #endif - /* 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. */ + /* 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]; + yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; - goto yynewstate; + goto yynewstate; yyerrlab: /* here on detecting error */ - if (!yyerrstatus) - /* If not already recovering from an error, report this error. */ - { + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; + { + int size = 0; + char *msg; + int x, count; - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *)malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror("parse error; also virtual memory exceeded"); - } + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } else #endif /* YYERROR_VERBOSE */ - yyerror("parse error"); - } + yyerror("parse error"); + } - goto yyerrlab1; + goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ - if (yyerrstatus == 3) - { + if (yyerrstatus == 3) + { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) - YYABORT; + YYABORT; #if YYDEBUG != 0 if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; - } + } - /* Else will try to reuse lookahead token - after shifting the error token. */ + /* Else will try to reuse lookahead token + after shifting the error token. */ - yyerrstatus = 3; /* Each real token shifted decrements this */ + yyerrstatus = 3; /* Each real token shifted decrements this */ - goto yyerrhandle; + goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; #ifdef YYLSP_NEEDED - yylsp--; + yylsp--; #endif #if YYDEBUG != 0 - if (yydebug) - { + if (yydebug) + { short *ssp1 = yyss - 1; - fprintf(stderr, "Error: state stack now"); + fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) - fprintf(stderr, " %d", *++ssp1); - fprintf(stderr, "\n"); - } + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } #endif yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; - yyn = yytable[yyn]; - if (yyn < 0) - { + yyn = yytable[yyn]; + if (yyn < 0) + { if (yyn == YYFLAG) - goto yyerrpop; + goto yyerrpop; yyn = -yyn; goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; + } + else if (yyn == 0) + goto yyerrpop; - if (yyn == YYFINAL) - YYACCEPT; + if (yyn == YYFINAL) + YYACCEPT; #if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); + if (yydebug) + fprintf(stderr, "Shifting error token, "); #endif - *++yyvsp = yylval; + *++yyvsp = yylval; #ifdef YYLSP_NEEDED - *++yylsp = yylloc; + *++yylsp = yylloc; #endif - yystate = yyn; - goto yynewstate; + yystate = yyn; + goto yynewstate; } -#line 612 "cmdgram.y" +#line 617 "cmdgram.y" diff --git a/Engine/source/console/codeBlock.cpp b/Engine/source/console/codeBlock.cpp index 997519231..d3687a2cd 100644 --- a/Engine/source/console/codeBlock.cpp +++ b/Engine/source/console/codeBlock.cpp @@ -565,7 +565,7 @@ bool CodeBlock::compile(const char *codeFileName, StringTableEntry fileName, con return true; } -void CodeBlock::compileExec(StringTableEntry fileName, const char *inString, ConsoleValue &returnValue, bool noCalls, S32 setFrame) +ConsoleValue CodeBlock::compileExec(StringTableEntry fileName, const char *inString, bool noCalls, S32 setFrame) { AssertFatal(Con::isMainThread(), "Compiling code on a secondary thread"); @@ -619,7 +619,7 @@ void CodeBlock::compileExec(StringTableEntry fileName, const char *inString, Con if (!gStatementList) { delete this; - return; + return std::move(ConsoleValue()); } resetTables(); @@ -653,7 +653,7 @@ void CodeBlock::compileExec(StringTableEntry fileName, const char *inString, Con if (lastIp + 1 != codeSize) Con::warnf(ConsoleLogEntry::General, "precompile size mismatch, precompile: %d compile: %d", codeSize, lastIp); - exec(0, fileName, NULL, 0, 0, noCalls, NULL, returnValue, setFrame); + return std::move(exec(0, fileName, NULL, 0, 0, noCalls, NULL, setFrame)); } //------------------------------------------------------------------------- diff --git a/Engine/source/console/compiledEval.cpp b/Engine/source/console/compiledEval.cpp index 1d9ae968c..e0bfcee7e 100644 --- a/Engine/source/console/compiledEval.cpp +++ b/Engine/source/console/compiledEval.cpp @@ -420,7 +420,7 @@ void ExprEvalState::setStringVariable(const char *val) //----------------------------------------------------------------------------- U32 gExecCount = 0; -void CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNamespace, U32 argc, ConsoleValue* argv, bool noCalls, StringTableEntry packageName, ConsoleValue& returnValue, S32 setFrame) +ConsoleValue CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNamespace, U32 argc, ConsoleValue* argv, bool noCalls, StringTableEntry packageName, S32 setFrame) { #ifdef TORQUE_DEBUG U32 stackStart = STR.mStartStackSize; @@ -432,6 +432,7 @@ void CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNamespace, U32 i; U32 iterDepth = 0; + ConsoleValue returnValue; incRefCount(); F64* curFloatTable; @@ -1738,9 +1739,8 @@ void CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNamespace, { if (nsEntry->mFunctionOffset) { - ConsoleValue ret; - nsEntry->mCode->exec(nsEntry->mFunctionOffset, fnName, nsEntry->mNamespace, callArgc, callArgv, false, nsEntry->mPackage, ret); - STR.setStringValue(ret.getString()); + const char* ret = nsEntry->mCode->exec(nsEntry->mFunctionOffset, fnName, nsEntry->mNamespace, callArgc, callArgv, false, nsEntry->mPackage).getString(); + STR.setStringValue(ret); } else // no body STR.setStringValue(""); @@ -2128,6 +2128,10 @@ execFinished: AssertFatal(!(STR.mStartStackSize > stackStart), "String stack not popped enough in script exec"); AssertFatal(!(STR.mStartStackSize < stackStart), "String stack popped too much in script exec"); #endif + + if (returnValue.getType() == ConsoleValueType::cvNone) + returnValue.setStringTableEntry(StringTable->EmptyString()); + return std::move(returnValue); } //------------------------------------------------------------ diff --git a/Engine/source/console/console.cpp b/Engine/source/console/console.cpp index 150b3f823..78b4ba05f 100644 --- a/Engine/source/console/console.cpp +++ b/Engine/source/console/console.cpp @@ -73,6 +73,11 @@ char* ConsoleValue::convertToBuffer() const return offset; } +const char* ConsoleValue::getConsoleData() const +{ + return Con::getData(type, ct->dataPtr, 0, ct->enumTable); +} + ConsoleDocFragment* ConsoleDocFragment::smFirst; ExprEvalState gEvalState; StmtNode *gStatementList; diff --git a/Engine/source/console/console.h b/Engine/source/console/console.h index cb49911c2..4d9c21296 100644 --- a/Engine/source/console/console.h +++ b/Engine/source/console/console.h @@ -158,25 +158,12 @@ class ConsoleValue char* convertToBuffer() const; - TORQUE_FORCEINLINE bool isStringType() const - { - return type == ConsoleValueType::cvString || type == ConsoleValueType::cvSTEntry; - } - - TORQUE_FORCEINLINE bool isNumberType() const - { - return type == ConsoleValueType::cvFloat || type == ConsoleValueType::cvInteger; - } - TORQUE_FORCEINLINE bool hasAllocatedData() const { - return type == ConsoleValueType::cvString || type >= ConsoleValueType::cvConsoleValueType; + return type == ConsoleValueType::cvString || isConsoleType(); } - TORQUE_FORCEINLINE const char* getConsoleData() const - { - return Con::getData(type, ct->dataPtr, 0, ct->enumTable); - } + const char* getConsoleData() const; TORQUE_FORCEINLINE void cleanupData() { @@ -192,7 +179,7 @@ public: type = ConsoleValueType::cvNone; } - ConsoleValue(ConsoleValue&& ref) + ConsoleValue(ConsoleValue&& ref) noexcept { cleanupData(); type = ref.type; @@ -209,7 +196,7 @@ public: f = ref.f; break; case cvSTEntry: - TORQUE_CASE_FALLTHROUGH + TORQUE_CASE_FALLTHROUGH; case cvString: s = ref.s; break; @@ -229,6 +216,12 @@ public: cleanupData(); } + TORQUE_FORCEINLINE void reset() + { + cleanupData(); + type = ConsoleValueType::cvNone; + } + TORQUE_FORCEINLINE F64 getFloat() const { AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!"); @@ -263,6 +256,11 @@ public: return getConsoleData(); } + TORQUE_FORCEINLINE operator const char* () const + { + return getString(); + } + TORQUE_FORCEINLINE bool getBool() const { AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!"); @@ -290,6 +288,11 @@ public: i = val; } + TORQUE_FORCEINLINE void setString(const char* val) + { + setString(val, dStrlen(val)); + } + TORQUE_FORCEINLINE void setString(const char* val, S32 len) { cleanupData(); @@ -315,11 +318,11 @@ public: s = const_cast(val); } - TORQUE_FORCEINLINE void setConsoleData(S32 consoleType, void* dataPtr, EnumTable* enumTable) + TORQUE_FORCEINLINE void setConsoleData(S32 consoleType, void* dataPtr, const EnumTable* enumTable) { cleanupData(); type = ConsoleValueType::cvSTEntry; - ct = new ConsoleValueConsoleType{ dataPtr, enumTable }; + ct = new ConsoleValueConsoleType{ dataPtr, const_cast(enumTable) }; } TORQUE_FORCEINLINE S32 getType() const @@ -327,6 +330,21 @@ public: return type; } + TORQUE_FORCEINLINE bool isStringType() const + { + return type == ConsoleValueType::cvString || type == ConsoleValueType::cvSTEntry; + } + + TORQUE_FORCEINLINE bool isNumberType() const + { + return type == ConsoleValueType::cvFloat || type == ConsoleValueType::cvInteger; + } + + TORQUE_FORCEINLINE bool isConsoleType() const + { + return type >= ConsoleValueType::cvConsoleValueType; + } + static void init(); static S32 getConstantBufferCount() { return (S32)ConversionBufferSize / StringSize; } }; diff --git a/Engine/source/console/consoleInternal.cpp b/Engine/source/console/consoleInternal.cpp index 4fd2aaa0b..d224f6154 100644 --- a/Engine/source/console/consoleInternal.cpp +++ b/Engine/source/console/consoleInternal.cpp @@ -480,8 +480,6 @@ Dictionary::Entry::Entry(StringTableEntry in_name) Dictionary::Entry::~Entry() { - value.cleanup(); - if (notify) delete notify; } @@ -560,20 +558,13 @@ Dictionary::Entry* Dictionary::addVariable(const char *name, } Entry *ent = add(StringTable->insert(name)); - - if (ent->value.type <= ConsoleValue::TypeInternalString && - ent->value.bufferLen > 0) - dFree(ent->value.sval); - - ent->value.type = type; - ent->value.dataPtr = dataPtr; ent->mUsage = usage; // Fetch enum table, if any. ConsoleBaseType* conType = ConsoleBaseType::getType(type); AssertFatal(conType, "Dictionary::addVariable - invalid console type"); - ent->value.enumTable = conType->getEnumTable(); + ent->value.setConsoleData(type, dataPtr, conType->getEnumTable()); return ent; } @@ -1303,9 +1294,11 @@ ConsoleValue Namespace::Entry::execute(S32 argc, ConsoleValue *argv, ExprEvalSta switch (mType) { case StringCallbackType: + { const char* str = cb.mStringCallbackFunc(state->thisObject, argc, argv); result.setString(str, dStrlen(str)); break; + } case IntCallbackType: result.setInt(cb.mIntCallbackFunc(state->thisObject, argc, argv)); break; diff --git a/Engine/source/console/consoleInternal.h b/Engine/source/console/consoleInternal.h index ac61f5331..cba74715a 100644 --- a/Engine/source/console/consoleInternal.h +++ b/Engine/source/console/consoleInternal.h @@ -274,8 +274,6 @@ public: typedef VectorPtr::iterator NamespaceEntryListIterator; - - class Dictionary { public: @@ -307,7 +305,6 @@ public: mUsage = NULL; mIsConstant = false; mNext = NULL; - value.init(); } Entry(StringTableEntry name); @@ -317,7 +314,7 @@ public: void reset() { name = NULL; - value.cleanup(); + value.reset(); if (notify) delete notify; } diff --git a/Engine/source/console/engineAPI.h b/Engine/source/console/engineAPI.h index 8fefd5fdc..aa6eb3ce2 100644 --- a/Engine/source/console/engineAPI.h +++ b/Engine/source/console/engineAPI.h @@ -1187,8 +1187,7 @@ public: if (Con::isMainThread()) { ConsoleStackFrameSaver sav; sav.save(); - CSTK.reserveValues(mArgc + sizeof...(ArgTs), mArgv); - mArgv[ 0 ].value->setStackStringValue(mCallbackName); + mArgv[ 0 ].setStringTableEntry(mCallbackName); Helper::marshallEach(mArgc, mArgv, args...); @@ -1199,7 +1198,7 @@ public: SimConsoleThreadExecCallback cb; SimConsoleThreadExecEvent *evt = new SimConsoleThreadExecEvent(mArgc + sizeof...(ArgTs), NULL, false, &cb); evt->populateArgs(mArgv); - mArgv[ 0 ].value->setStackStringValue(mCallbackName); + mArgv[ 0 ].setStringTableEntry(mCallbackName); Helper::marshallEach(mArgc, mArgv, args...); @@ -1233,7 +1232,6 @@ public: if (Con::isMainThread()) { ConsoleStackFrameSaver sav; sav.save(); - CSTK.reserveValues(mArgc+sizeof...(ArgTs), mArgv); mArgv[ 0 ].setString(simCB, dStrlen(simCB)); Helper::marshallEach(mArgc, mArgv, args...); diff --git a/Engine/source/console/engineDoc.cpp b/Engine/source/console/engineDoc.cpp index cbbc7249d..56563efe0 100644 --- a/Engine/source/console/engineDoc.cpp +++ b/Engine/source/console/engineDoc.cpp @@ -114,7 +114,7 @@ static void dumpVariable( Stream& stream, { // Skip variables defined in script. - if( entry->value.type < 0 ) + if( !entry->value.isConsoleType() ) return; // Skip internals... don't export them. @@ -149,7 +149,7 @@ static void dumpVariable( Stream& stream, // Skip variables for which we can't decipher their type. - ConsoleBaseType* type = ConsoleBaseType::getType( entry->value.type ); + ConsoleBaseType* type = ConsoleBaseType::getType( entry->value.getType() ); if( !type ) { Con::errorf( "Can't find type for variable '%s'", entry->name ); diff --git a/Engine/source/console/optimizer.cpp b/Engine/source/console/optimizer.cpp new file mode 100644 index 000000000..9bfbb09a5 --- /dev/null +++ b/Engine/source/console/optimizer.cpp @@ -0,0 +1,104 @@ +//----------------------------------------------------------------------------- +// Copyright (c) 2013 GarageGames, LLC +// Copyright (c) 2021 TGEMIT Authors & Contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +//----------------------------------------------------------------------------- + +#include "console/console.h" +#include "console/codeBlock.h" + +static bool isLiteralNumber(ExprNode* node) +{ + ExprNodeName name = node->getExprNodeNameEnum(); + return name == NameFloatNode || name == NameIntNode; +} + +static F64 getFloatValue(ExprNode* node) +{ + if (node->getExprNodeNameEnum() == NameFloatNode) + return static_cast(node)->value; + return (F64)static_cast(node)->value; +} + +static S32 getIntValue(ExprNode* node) +{ + if (node->getExprNodeNameEnum() == NameFloatNode) + return (S32)static_cast(node)->value; + return static_cast(node)->value; +} + +bool FloatBinaryExprNode::optimize() +{ + // Perform constant folding + if (isLiteralNumber(right) && isLiteralNumber(left)) + { + F64 rightValue = getFloatValue(right); + F64 leftValue = getFloatValue(left); + F64 result = 0.0; + + switch (op) + { + case '+': + result = leftValue + rightValue; + break; + case '-': + result = leftValue - rightValue; + break; + case '*': + result = leftValue * rightValue; + break; + case '/': + if (rightValue != 0.0) + result = leftValue / rightValue; + break; + } + + optimizedNode = FloatNode::alloc(dbgLineNumber, result); + return true; + } + + return false; +} + +bool IntBinaryExprNode::optimize() +{ + if (op == '%' && left->getExprNodeNameEnum() == NameVarNode && isLiteralNumber(right)) + { + // %a % intconst + S32 val = getIntValue(right); + switch (val) + { + case 2: + op = '&'; + optimizedNode = IntNode::alloc(dbgLineNumber, 1); + return true; + case 4: + op = '&'; + optimizedNode = IntNode::alloc(dbgLineNumber, 3); + return true; + case 8: + op = '&'; + optimizedNode = IntNode::alloc(dbgLineNumber, 7); + return true; + } + } + + return false; +} diff --git a/Engine/source/console/simObject.cpp b/Engine/source/console/simObject.cpp index 008ba9698..56a88cb8d 100644 --- a/Engine/source/console/simObject.cpp +++ b/Engine/source/console/simObject.cpp @@ -2962,7 +2962,7 @@ DefineEngineStringlyVariadicMethod( SimObject, call, const char*, 3, 0, "( strin "@param args Zero or more arguments for the method.\n" "@return The result of the method call." ) { - argv[1] = argv[2]; + argv[1].setString(argv[2], dStrlen(argv[2])); return Con::execute( object, argc - 1, argv + 1 ); } @@ -3065,9 +3065,9 @@ DefineEngineStringlyVariadicMethod( SimObject,schedule, S32, 4, 0, "( float time "@param args The arguments with which to call the method.\n" "@return The numeric ID of the created schedule. Can be used to cancel the call.\n" ) { - U32 timeDelta = U32(dAtof(argv[2])); - argv[2] = argv[3]; - argv[3] = argv[1]; + U32 timeDelta = U32(argv[2].getFloat()); + argv[2].setString(argv[3].getString()); + argv[3].setString(argv[1].getString()); SimConsoleEvent *evt = new SimConsoleEvent(argc - 2, argv + 2, true); S32 ret = Sim::postEvent(object, evt, Sim::getCurrentTime() + timeDelta); // #ifdef DEBUG diff --git a/Engine/source/console/test/consoleTest.cpp b/Engine/source/console/test/consoleTest.cpp index d1ced9ec9..a143d1835 100644 --- a/Engine/source/console/test/consoleTest.cpp +++ b/Engine/source/console/test/consoleTest.cpp @@ -1,4 +1,4 @@ -#ifdef 0 +#if 0 #ifdef TORQUE_TESTS_ENABLED #include "testing/unitTesting.h" diff --git a/Engine/source/gui/controls/guiGameListMenuCtrl.cpp b/Engine/source/gui/controls/guiGameListMenuCtrl.cpp index ece9535e5..276f4511d 100644 --- a/Engine/source/gui/controls/guiGameListMenuCtrl.cpp +++ b/Engine/source/gui/controls/guiGameListMenuCtrl.cpp @@ -361,10 +361,8 @@ void GuiGameListMenuCtrl::onRenderSliderOption(Row* row, Point2I currentOffset) // calculate text to be at the center between the arrows GFont* font = profile->mFont; - ConsoleValue val; - val.setFloatValue(row->mValue); - - const char* stringVal = val.getStringValue(); + char stringVal[32]; + dSprintf(stringVal, 32, "%f", row->mValue); S32 textWidth = font->getStrWidth(stringVal); S32 columnWidth = profile->mHitAreaLowerRight.x * xScale - profile->mRightPad - columnSplit; diff --git a/Engine/source/shaderGen/customShaderFeature.cpp b/Engine/source/shaderGen/customShaderFeature.cpp index c184cb128..25e2975b0 100644 --- a/Engine/source/shaderGen/customShaderFeature.cpp +++ b/Engine/source/shaderGen/customShaderFeature.cpp @@ -236,7 +236,7 @@ DefineEngineStringlyVariadicMethod(CustomShaderFeatureData, writeLine, void, 3, "@param args Zero or more arguments for the method.\n" "@return The result of the method call.") { - object->writeLine(argv[2], argc - 3, argv + 3); + object->writeLine(argv[2].getString(), argc - 3, argv + 3); } DefineEngineMethod(CustomShaderFeatureData, hasFeature, bool, (String name), (""), "")