pike.git/
src/
language.yacc
Branch:
Tag:
Non-build tags
All tags
No tags
1997-02-14
1997-02-14 04:45:57 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
2e4e45687ae65e6faace841d4a668ea3f98837f3 (
16
lines) (+
10
/-
6
)
[
Show
|
Annotate
]
Branch:
7.9
two core dumping bugs fixed
Rev: src/docode.c:1.11
Rev: src/language.yacc:1.24
156:
/* This is the grammar definition of Pike. */ #include "global.h"
-
RCSID("$Id: language.yacc,v 1.
23
1997/02/
11
07
:
09
:
11
hubbe Exp $");
+
RCSID("$Id: language.yacc,v 1.
24
1997/02/
14
04
:
45
:
57
hubbe Exp $");
#ifdef HAVE_MEMORY_H #include <memory.h> #endif
223:
%type <string> F_IDENTIFIER %type <string> F_STRING
-
%type <string> cast simple_type
+
%type <string> cast
+
%type
<string>
simple_type
%type <string> low_string %type <string> optional_identifier %type <string> optional_rename_inherit
629:
| /* empty */ { $$=0; } ;
-
cast: '(' type ')' { $$=pop_type(); } ;
+
cast: '(' type ')' { $$=pop_type(); }
+
;
type: type '*' { push_type(T_ARRAY); } | type2 ; simple_type: type2 { $$=pop_type(); }
-
+
;
type2: type2 '|' type3 { push_type(T_OR); } | type3
833:
| foreach | break ';' | continue ';'
-
| error ';' { $$=0; }
+
| error ';' {
reset_type_stack();
$$=0; }
| ';' { $$=0; } ;
1048:
expr0: expr01 | expr4 '=' expr0 { $$=mknode(F_ASSIGN,$3,$1); } | expr4 assign expr0 { $$=mknode($2,$1,$3); }
-
| error assign expr01 { $$=0; }
+
| error assign expr01 { $$=0;
reset_type_stack();
}
; expr01: expr1 { $$ = $1; }