diff --git a/src/language.yacc b/src/language.yacc index ce5186d5e2a8c8a3ee086ed8ea9cd0622ca59919..33dd47ae79e8932be5bf9237816dab9c821fd054 100644 --- a/src/language.yacc +++ b/src/language.yacc @@ -4,7 +4,6 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ %pure_parser - /* * These values are used by the stack machine, and can not be directly * called from Pike. @@ -162,7 +161,7 @@ /* This is the grammar definition of Pike. */ #include "global.h" -RCSID("$Id: language.yacc,v 1.64 1998/03/04 16:42:45 grubba Exp $"); +RCSID("$Id: language.yacc,v 1.65 1998/03/04 22:17:05 hubbe Exp $"); #ifdef HAVE_MEMORY_H #include <memory.h> #endif @@ -311,6 +310,7 @@ int yylex(YYSTYPE *yylval); %type <n> expr2 %type <n> expr3 expr0 %type <n> expr4 +%type <n> expr5 %type <n> expr_list %type <n> expr_list2 %type <n> for @@ -1249,9 +1249,9 @@ expr4: string } | '(' comma_expr2 ')' { $$=$2; } | '(' '{' expr_list '}' ')' - { $$=mkefuncallnode("aggregate",$3); } + { $$=mkefuncallnode("aggregate",$2); } | '(' '[' m_expr_list ']' ')' - { $$=mkefuncallnode("aggregate_mapping",$3); }; + { $$=mkefuncallnode("aggregate_mapping",$2); }; | F_MULTISET_START expr_list F_MULTISET_END { $$=mkefuncallnode("aggregate_multiset",$2); } | expr4 F_ARROW F_IDENTIFIER diff --git a/src/lex.c b/src/lex.c index bc5f4d3840b16f67541118f6996e8c7a5a8d9b6d..b868ece664260f75087cee4e6e5d7ff147d3cfd4 100644 --- a/src/lex.c +++ b/src/lex.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: lex.c,v 1.43 1998/02/01 04:01:36 hubbe Exp $"); +RCSID("$Id: lex.c,v 1.44 1998/03/04 22:15:40 hubbe Exp $"); #include "language.h" #include "array.h" #include "lex.h" @@ -656,13 +656,13 @@ static int yylex2(YYSTYPE *yylval) if(GOBBLE('<')) return F_MULTISET_START; return '('; + case ']': case '?': case ',': case '~': case '@': case ')': case '[': - case ']': case '{': case ';': case '}': return c;