@ -1,7 +1,7 @@
/* A Bison parser, made by GNU Bison 2. 0 . */
/* A Bison parser, made by GNU Bison 2. 1 . */
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright ( C ) 1984 , 1989 , 1990 , 2000 , 2001 , 2002 , 2003 , 2004 Free Software Foundation , Inc .
Copyright ( C ) 1984 , 1989 , 1990 , 2000 , 2001 , 2002 , 2003 , 2004 , 2005 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
@ -15,8 +15,8 @@
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 . , 5 9 Temple Place - Suite 330 ,
Boston , MA 0211 1- 1307 , USA . */
Foundation , Inc . , 5 1 Franklin Street , Fifth Floor ,
Boston , MA 0211 0- 1301 , 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 .
@ -36,6 +36,9 @@
/* Identify Bison output. */
# define YYBISON 1
/* Bison version. */
# define YYBISON_VERSION "2.1"
/* Skeleton name. */
# define YYSKELETON_NAME "yacc.c"
@ -81,6 +84,7 @@
UMINUS = 275
} ;
# endif
/* Tokens. */
# define IDENTIFIER 258
# define LITERAL 259
# define VARIABLE 260
@ -104,10 +108,10 @@
/* Copy the first part of user declarations. */
# line 1 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 1 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
# include " as- script-parser.h"
# include " as- script-yacc.h"
# include " moo script-parser.h"
# include " moo script-yacc.h"
# define NODE_LIST_ADD(list, node) _as_parser_node_list_add (parser, AS_NODE_LIST (list), node)
# define NODE_COMMAND(id, node) _as_parser_node_command (parser, id, AS_NODE_LIST (node))
@ -139,15 +143,20 @@
# define YYERROR_VERBOSE 0
# endif
/* Enabling the token table. */
# ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
# endif
# if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
# line 24 " / home / muntyan / Projects / moo-svn / moo / mooedit / plugins / activestrings / as-script-yacc.y"
# line 24 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
typedef union YYSTYPE {
int ival ;
const char * str ;
ASNode * node ;
} YYSTYPE ;
/* Line 19 0 of yacc.c. */
# line 1 51 "/ home / muntyan / Projects / moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.c"
/* Line 19 6 of yacc.c. */
# line 1 60 "/ home / muntyan / projects / moo / moo / mooutils / mooscript / moo script-yacc.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@ -158,18 +167,37 @@ typedef union YYSTYPE {
/* Copy the second part of user declarations. */
/* Line 213 of yacc.c. */
# line 163 " / home / muntyan / Projects / moo-svn / moo / mooedit / plugins / activestrings / as-script-yacc.c"
/* Line 219 of yacc.c. */
# line 172 " / home / muntyan / projects / moo / moo / mooutils / mooscript / mooscript-yacc.c"
# if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
# endif
# if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
# endif
# if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
# endif
# ifndef YY_
# if YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
# define YY_(msgid) msgid
# endif
# endif
# if ! defined (yyoverflow) || YYERROR_VERBOSE
# ifndef YYFREE
# define YYFREE free
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# endif
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
@ -178,6 +206,10 @@ typedef union YYSTYPE {
# define YYSTACK_ALLOC __builtin_alloca
# else
# define YYSTACK_ALLOC alloca
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYINCLUDED_STDLIB_H
# endif
# endif
# endif
# endif
@ -185,13 +217,39 @@ typedef union YYSTYPE {
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */ ; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes . So we cannot safely
invoke alloca ( N ) if N exceeds 4096. Use a slightly smaller number
to allow for a few compiler - allocated temporary stack slots . */
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
# endif
# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
# endif
# ifdef __cplusplus
extern " C " {
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
& & ( defined ( __STDC__ ) | | defined ( __cplusplus ) ) )
void * malloc ( YYSIZE_T ) ; /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
& & ( defined ( __STDC__ ) | | defined ( __cplusplus ) ) )
void free ( void * ) ; /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifdef __cplusplus
}
# endif
# endif
# endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
@ -226,7 +284,7 @@ union yyalloc
# define YYCOPY(To, From, Count) \
do \
{ \
register YYSIZE_T yyi ; \
YYSIZE_T yyi ; \
for ( yyi = 0 ; yyi < ( Count ) ; yyi + + ) \
( To ) [ yyi ] = ( From ) [ yyi ] ; \
} \
@ -276,7 +334,7 @@ union yyalloc
# define YYUNDEFTOK 2
# define YYMAXUTOK 275
# define YYTRANSLATE(YYX) \
# define YYTRANSLATE(YYX) \
( ( unsigned int ) ( YYX ) < = YYMAXUTOK ? yytranslate [ YYX ] : YYUNDEFTOK )
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
@ -359,8 +417,8 @@ static const unsigned char yyrline[] =
} ;
# endif
# if YYDEBUG || YYERROR_VERBOSE
/* YYTN ME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
# if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTN A ME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First , the terminals , then , starting at YYNTOKENS , nonterminals . */
static const char * const yytname [ ] =
{
@ -551,22 +609,6 @@ static const unsigned char yystos[] =
44
} ;
# if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
# endif
# if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
# endif
# if ! defined (YYSIZE_T)
# if defined (__STDC__) || defined (__cplusplus)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# endif
# if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
# endif
# define yyerrok (yyerrstatus = 0)
# define yyclearin (yychar = YYEMPTY)
# define YYEMPTY (-2)
@ -596,8 +638,8 @@ do \
goto yybackup ; \
} \
else \
{ \
yyerror ( parser , " syntax error: cannot back up " ) ;\
{ \
yyerror ( parser , YY_ ( " syntax error: cannot back up " ) ) ; \
YYERROR ; \
} \
while ( 0 )
@ -676,7 +718,7 @@ do { \
if ( yydebug ) \
{ \
YYFPRINTF ( stderr , " %s " , Title ) ; \
yysymprint ( stderr , \
yysymprint ( stderr , \
Type , Value ) ; \
YYFPRINTF ( stderr , " \n " ) ; \
} \
@ -724,13 +766,13 @@ yy_reduce_print (yyrule)
# endif
{
int yyi ;
unsigned int yylno = yyrline [ yyrule ] ;
YYFPRINTF ( stderr , " Reducing stack by rule %d (line % u), " ,
unsigned long int yylno = yyrline [ yyrule ] ;
YYFPRINTF ( stderr , " Reducing stack by rule %d (line % l u), " ,
yyrule - 1 , yylno ) ;
/* Print the symbols being reduced, and their result. */
for ( yyi = yyprhs [ yyrule ] ; 0 < = yyrhs [ yyi ] ; yyi + + )
YYFPRINTF ( stderr , " %s " , yytname [ yyrhs [ yyi ] ] ) ;
YYFPRINTF ( stderr , " -> %s \n " , yytname [ yyr1 [ yyrule ] ] ) ;
YYFPRINTF ( stderr , " %s " , yytname [ yyrhs [ yyi ] ] ) ;
YYFPRINTF ( stderr , " -> %s \n " , yytname [ yyr1 [ yyrule ] ] ) ;
}
# define YY_REDUCE_PRINT(Rule) \
@ -759,7 +801,7 @@ int yydebug;
if the built - in stack extension method is used ) .
Do not make this value too large ; the results are undefined if
SIZE_MAX < YYSTACK_BYTES ( YYMAXDEPTH )
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES ( YYMAXDEPTH )
evaluated with infinite - precision integer arithmetic . */
# ifndef YYMAXDEPTH
@ -783,7 +825,7 @@ yystrlen (yystr)
const char * yystr ;
# endif
{
register const char * yys = yystr ;
const char * yys = yystr ;
while ( * yys + + ! = ' \0 ' )
continue ;
@ -808,8 +850,8 @@ yystpcpy (yydest, yysrc)
const char * yysrc ;
# endif
{
register char * yyd = yydest ;
register const char * yys = yysrc ;
char * yyd = yydest ;
const char * yys = yysrc ;
while ( ( * yyd + + = * yys + + ) ! = ' \0 ' )
continue ;
@ -819,7 +861,55 @@ yystpcpy (yydest, yysrc)
# endif
# endif
# endif /* !YYERROR_VERBOSE */
# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
quotes and backslashes , so that it ' s suitable for yyerror . The
heuristic is that double - quoting is unnecessary unless the string
contains an apostrophe , a comma , or backslash ( other than
backslash - backslash ) . YYSTR is taken from yytname . If YYRES is
null , do not copy ; instead , return the length of what the result
would have been . */
static YYSIZE_T
yytnamerr ( char * yyres , const char * yystr )
{
if ( * yystr = = ' " ' )
{
size_t yyn = 0 ;
char const * yyp = yystr ;
for ( ; ; )
switch ( * + + yyp )
{
case ' \' ' :
case ' , ' :
goto do_not_strip_quotes ;
case ' \\ ' :
if ( * + + yyp ! = ' \\ ' )
goto do_not_strip_quotes ;
/* Fall through. */
default :
if ( yyres )
yyres [ yyn ] = * yyp ;
yyn + + ;
break ;
case ' " ' :
if ( yyres )
yyres [ yyn ] = ' \0 ' ;
return yyn ;
}
do_not_strip_quotes : ;
}
if ( ! yyres )
return yystrlen ( yystr ) ;
return yystpcpy ( yyres , yystr ) - yyres ;
}
# endif
# endif /* YYERROR_VERBOSE */
@ -944,8 +1034,8 @@ yyparse (parser)
# endif
{
register int yystate ;
register int yyn ;
int yystate ;
int yyn ;
int yyresult ;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus ;
@ -963,12 +1053,12 @@ yyparse (parser)
/* The state stack. */
short int yyssa [ YYINITDEPTH ] ;
short int * yyss = yyssa ;
register short int * yyssp ;
short int * yyssp ;
/* The semantic value stack. */
YYSTYPE yyvsa [ YYINITDEPTH ] ;
YYSTYPE * yyvs = yyvsa ;
register YYSTYPE * yyvsp ;
YYSTYPE * yyvsp ;
@ -1000,9 +1090,6 @@ yyparse (parser)
yyssp = yyss ;
yyvsp = yyvs ;
yyvsp [ 0 ] = yylval ;
goto yysetstate ;
/*------------------------------------------------------------.
@ -1035,7 +1122,7 @@ yyparse (parser)
data in use in that stack , in bytes . This used to be a
conditional around just the two extra args , but that might
be undefined if yyoverflow is a macro . */
yyoverflow ( " parser stack overflow " ,
yyoverflow ( YY_ ( " memory exhausted " ) ,
& yyss1 , yysize * sizeof ( * yyssp ) ,
& yyvs1 , yysize * sizeof ( * yyvsp ) ,
@ -1046,11 +1133,11 @@ yyparse (parser)
}
# else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
goto yy overflow lab;
goto yy exhausted lab;
# else
/* Extend the stack our own way. */
if ( YYMAXDEPTH < = yystacksize )
goto yy overflow lab;
goto yy exhausted lab;
yystacksize * = 2 ;
if ( YYMAXDEPTH < yystacksize )
yystacksize = YYMAXDEPTH ;
@ -1060,7 +1147,7 @@ yyparse (parser)
union yyalloc * yyptr =
( union yyalloc * ) YYSTACK_ALLOC ( YYSTACK_BYTES ( yystacksize ) ) ;
if ( ! yyptr )
goto yy overflow lab;
goto yy exhausted lab;
YYSTACK_RELOCATE ( yyss ) ;
YYSTACK_RELOCATE ( yyvs ) ;
@ -1189,215 +1276,216 @@ yyreduce:
switch ( yyn )
{
case 2 :
# line 60 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 60 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ SET_TOP_NODE ( ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 3 :
# line 62 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 62 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_LIST_ADD ( NULL , ( yyvsp [ - 1 ] . node ) ) ; ; }
break ;
case 4 :
# line 63 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 63 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_LIST_ADD ( ( yyvsp [ - 2 ] . node ) , ( yyvsp [ - 1 ] . node ) ) ; ; }
break ;
case 5 :
# line 67 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 67 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = ( yyvsp [ - 1 ] . node ) ; ; }
break ;
case 12 :
# line 76 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 76 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NULL ; ; }
break ;
case 14 :
# line 80 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 80 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NULL ; ; }
break ;
case 17 :
# line 83 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 83 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_LIST_ADD ( ( yyvsp [ - 1 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 18 :
# line 86 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 86 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_COMMAND ( ( yyvsp [ - 1 ] . str ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 19 :
# line 89 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 89 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NULL ; ; }
break ;
case 20 :
# line 90 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 90 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_LIST_ADD ( ( yyvsp [ - 1 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 21 :
# line 93 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 93 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_IF_ELSE ( ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) , NULL ) ; ; }
break ;
case 22 :
# line 95 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 95 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_IF_ELSE ( ( yyvsp [ - 4 ] . node ) , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 23 :
# line 98 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 98 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_IF_ELSE ( ( yyvsp [ - 4 ] . node ) , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 24 :
# line 101 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 101 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_REPEAT ( ( yyvsp [ - 1 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 25 :
# line 102 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 102 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_WHILE ( ( yyvsp [ - 1 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 26 :
# line 106 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 106 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_ASSIGNMENT ( ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 28 :
# line 110 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 110 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_PLUS , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 29 :
# line 111 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 111 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_MINUS , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 30 :
# line 112 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 112 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_DIV , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 31 :
# line 113 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 113 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_MULT , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 32 :
# line 115 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 115 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_AND , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 33 :
# line 116 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 116 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_OR , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 34 :
# line 118 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 118 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_EQ , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 35 :
# line 119 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 119 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_NEQ , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 36 :
# line 120 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 120 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_LT , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 37 :
# line 121 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 121 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_GT , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 38 :
# line 122 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 122 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_LE , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 39 :
# line 123 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 123 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_GE , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 40 :
# line 127 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 127 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_NUMBER ( ( yyvsp [ 0 ] . ival ) ) ; ; }
break ;
case 41 :
# line 128 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 128 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_STRING ( ( yyvsp [ 0 ] . str ) ) ; ; }
break ;
case 43 :
# line 130 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 130 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = ( yyvsp [ - 1 ] . node ) ; ; }
break ;
case 44 :
# line 131 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 131 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_VALUE_LIST ( ( yyvsp [ - 1 ] . node ) ) ; ; }
break ;
case 45 :
# line 132 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 132 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = BINARY_OP ( AS_OP_FORMAT , ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 46 :
# line 133 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 133 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = UNARY_OP ( AS_OP_LEN , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 47 :
# line 134 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 134 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = UNARY_OP ( AS_OP_NOT , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 48 :
# line 135 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 135 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = UNARY_OP ( AS_OP_UMINUS , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 49 :
# line 138 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 138 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NULL ; ; }
break ;
case 50 :
# line 139 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 139 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_LIST_ADD ( NULL , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 51 :
# line 140 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 140 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = NODE_LIST_ADD ( ( yyvsp [ - 2 ] . node ) , ( yyvsp [ 0 ] . node ) ) ; ; }
break ;
case 52 :
# line 143 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 143 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = VAR_POSITIONAL ( ( yyvsp [ 0 ] . ival ) ) ; ; }
break ;
case 53 :
# line 144 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 144 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"
{ ( yyval . node ) = VAR_NAMED ( ( yyvsp [ 0 ] . str ) ) ; ; }
break ;
default : break ;
}
/* Line 1 037 of yacc.c. */
# line 14 01 "/ home / muntyan / Projects / moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.c"
/* Line 1 126 of yacc.c. */
# line 14 89 "/ home / muntyan / projects / moo / moo / mooutils / mooscript / moo script-yacc.c"
yyvsp - = yylen ;
yyssp - = yylen ;
@ -1436,12 +1524,36 @@ yyerrlab:
if ( YYPACT_NINF < yyn & & yyn < YYLAST )
{
YYSIZE_T yysize = 0 ;
int yytype = YYTRANSLATE ( yychar ) ;
const char * yyprefix ;
char * yymsg ;
YYSIZE_T yysize0 = yytnamerr ( 0 , yytname [ yytype ] ) ;
YYSIZE_T yysize = yysize0 ;
YYSIZE_T yysize1 ;
int yysize_overflow = 0 ;
char * yymsg = 0 ;
# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
char const * yyarg [ YYERROR_VERBOSE_ARGS_MAXIMUM ] ;
int yyx ;
#if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly . */
YY_ ( " syntax error, unexpected %s " ) ;
YY_ ( " syntax error, unexpected %s, expecting %s " ) ;
YY_ ( " syntax error, unexpected %s, expecting %s or %s " ) ;
YY_ ( " syntax error, unexpected %s, expecting %s or %s or %s " ) ;
YY_ ( " syntax error, unexpected %s, expecting %s or %s or %s or %s " ) ;
# endif
char * yyfmt ;
char const * yyf ;
static char const yyunexpected [ ] = " syntax error, unexpected %s " ;
static char const yyexpecting [ ] = " , expecting %s " ;
static char const yyor [ ] = " or %s " ;
char yyformat [ sizeof yyunexpected
+ sizeof yyexpecting - 1
+ ( ( YYERROR_VERBOSE_ARGS_MAXIMUM - 2 )
* ( sizeof yyor - 1 ) ) ] ;
char const * yyprefix = yyexpecting ;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK . */
int yyxbegin = yyn < 0 ? - yyn : 0 ;
@ -1449,48 +1561,68 @@ yyerrlab:
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn ;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS ;
int yycount = 0 ;
int yycount = 1 ;
yyarg [ 0 ] = yytname [ yytype ] ;
yyfmt = yystpcpy ( yyformat , yyunexpected ) ;
yyprefix = " , expecting " ;
for ( yyx = yyxbegin ; yyx < yyxend ; + + yyx )
if ( yycheck [ yyx + yyn ] = = yyx & & yyx ! = YYTERROR )
{
yysize + = yystrlen ( yyprefix ) + yystrlen ( yytname [ yyx ] ) ;
yycount + = 1 ;
if ( yycount = = 5 )
if ( yycount = = YYERROR_VERBOSE_ARGS_MAXIMUM )
{
yysize = 0 ;
yycount = 1 ;
yysize = yysize0 ;
yyformat [ sizeof yyunexpected - 1 ] = ' \0 ' ;
break ;
}
yyarg [ yycount + + ] = yytname [ yyx ] ;
yysize1 = yysize + yytnamerr ( 0 , yytname [ yyx ] ) ;
yysize_overflow | = yysize1 < yysize ;
yysize = yysize1 ;
yyfmt = yystpcpy ( yyfmt , yyprefix ) ;
yyprefix = yyor ;
}
yysize + = ( sizeof ( " syntax error, unexpected " )
+ yystrlen ( yytname [ yytype ] ) ) ;
yymsg = ( char * ) YYSTACK_ALLOC ( yysize ) ;
if ( yymsg ! = 0 )
{
char * yyp = yystpcpy ( yymsg , " syntax error, unexpected " ) ;
yyp = yystpcpy ( yyp , yytname [ yytype ] ) ;
if ( yycount < 5 )
yyf = YY_ ( yyformat ) ;
yysize1 = yysize + yystrlen ( yyf ) ;
yysize_overflow | = yysize1 < yysize ;
yysize = yysize1 ;
if ( ! yysize_overflow & & yysize < = YYSTACK_ALLOC_MAXIMUM )
yymsg = ( char * ) YYSTACK_ALLOC ( yysize ) ;
if ( yymsg )
{
/* Avoid sprintf, as that infringes on the user's name space.
Don ' t have undefined behavior even if the translation
produced a string with the wrong number of " %s " s . */
char * yyp = yymsg ;
int yyi = 0 ;
while ( ( * yyp = * yyf ) )
{
yyprefix = " , expecting " ;
for ( yyx = yyxbegin ; yyx < yyxend ; + + yyx )
if ( yycheck [ yyx + yyn ] = = yyx & & yyx ! = YYTERROR )
{
yyp = yystpcpy ( yyp , yyprefix ) ;
yyp = yystpcpy ( yyp , yytname [ yyx ] ) ;
yyprefix = " or " ;
}
if ( * yyp = = ' % ' & & yyf [ 1 ] = = ' s ' & & yyi < yycount )
{
yyp + = yytnamerr ( yyp , yyarg [ yyi + + ] ) ;
yyf + = 2 ;
}
else
{
yyp + + ;
yyf + + ;
}
}
yyerror ( parser , yymsg ) ;
YYSTACK_FREE ( yymsg ) ;
}
else
yyerror ( parser , " syntax error; also virtual memory exhausted " ) ;
{
yyerror ( parser , YY_ ( " syntax error " ) ) ;
goto yyexhaustedlab ;
}
}
else
# endif /* YYERROR_VERBOSE */
yyerror ( parser , " syntax error " ) ;
yyerror ( parser , YY_ ( " syntax error " ) ) ;
}
@ -1502,18 +1634,9 @@ yyerrlab:
if ( yychar < = YYEOF )
{
/* If at end of input, pop the error token,
then the rest of the stack , then return failure . */
/* Return failure if at end of input. */
if ( yychar = = YYEOF )
for ( ; ; )
{
YYPOPSTACK ;
if ( yyssp = = yyss )
YYABORT ;
yydestruct ( " Error: popping " ,
yystos [ * yyssp ] , yyvsp ) ;
}
YYABORT ;
}
else
{
@ -1532,12 +1655,11 @@ yyerrlab:
` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
yyerrorlab :
# ifdef __GNUC__
/* Pacify GCC when the user code never invokes YYERROR and the label
yyerrorlab therefore never appears in user code. */
/* Pacify compilers like GCC when the user code never invokes
YYERROR and the label yyerrorlab therefore never appears in user
code. */
if ( 0 )
goto yyerrorlab ;
# endif
yyvsp - = yylen ;
yyssp - = yylen ;
@ -1600,23 +1722,29 @@ yyacceptlab:
| yyabortlab - - YYABORT comes here . |
` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
yyabortlab :
yydestruct ( " Error: discarding lookahead " ,
yytoken , & yylval ) ;
yychar = YYEMPTY ;
yyresult = 1 ;
goto yyreturn ;
# ifndef yyoverflow
/*---------------------------------------------- .
| yy overflowlab - - parser overflow comes here . |
` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
yy overflow lab:
yyerror ( parser , " parser stack overflow " ) ;
/*---------------------------------------------- --- .
| yy exhaustedlab - - memory exhaustion comes here . |
` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
yy exhausted lab:
yyerror ( parser , YY_ ( " memory exhausted " ) ) ;
yyresult = 2 ;
/* Fall through. */
# endif
yyreturn :
if ( yychar ! = YYEOF & & yychar ! = YYEMPTY )
yydestruct ( " Cleanup: discarding lookahead " ,
yytoken , & yylval ) ;
while ( yyssp ! = yyss )
{
yydestruct ( " Cleanup: popping " ,
yystos [ * yyssp ] , yyvsp ) ;
YYPOPSTACK ;
}
# ifndef yyoverflow
if ( yyss ! = yyssa )
YYSTACK_FREE ( yyss ) ;
@ -1625,6 +1753,6 @@ yyreturn:
}
# line 147 " / home / muntyan / Projects/ moo-svn / moo / mooedit / plugins / activestrings / as- script-yacc.y"
# line 147 " / home / muntyan / projects/ moo / moo / mooutils / mooscript / moo script-yacc.y"