diff --git a/src/language.yacc b/src/language.yacc index 0e7cda94d7e2d751256cdb0cbc12670f5d2efefe..b350ce86795ddea058c6d132e8afa98424d367b0 100644 --- a/src/language.yacc +++ b/src/language.yacc @@ -177,7 +177,7 @@ /* This is the grammar definition of Pike. */ #include "global.h" -RCSID("$Id: language.yacc,v 1.94 1998/04/30 06:32:36 hubbe Exp $"); +RCSID("$Id: language.yacc,v 1.95 1998/04/30 16:30:37 hubbe Exp $"); #ifdef HAVE_MEMORY_H #include <memory.h> #endif @@ -966,8 +966,8 @@ new_local_name: optional_stars F_IDENTIFIER $$=mknode(F_ASSIGN,mkintnode(0),mklocalnode(islocal($2->u.sval.u.string))); free_node($2); } - | optional_stars bad_identifier {} - | optional_stars F_IDENTIFIER '=' expr0 + | optional_stars bad_identifier { $$=0; } + | optional_stars F_IDENTIFIER '=' expr0 { push_finished_type($<n>0->u.sval.u.string); while($1--) push_type(T_ARRAY); @@ -978,11 +978,13 @@ new_local_name: optional_stars F_IDENTIFIER | optional_stars bad_identifier '=' expr0 { free_node($4); + $$=0; } | optional_stars F_IDENTIFIER '=' error { free_node($2); /* No yyerok here since we aren't done yet. */ + $$=0; } ;