version 1.22, 2003/12/01 02:18:53 |
version 1.26, 2005/04/07 08:33:12 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.21 2003/05/30 00:47:25 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/parse.y,v 1.25 2004/06/21 09:05:16 noro Exp $ |
*/ |
*/ |
%{ |
%{ |
#define malloc(x) GC_malloc(x) |
#define malloc(x) GC_malloc(x) |
Line 89 extern jmp_buf env; |
|
Line 89 extern jmp_buf env; |
|
pointer p; |
pointer p; |
} |
} |
|
|
%token <i> STRUCT POINT NEWSTRUCT ANS FDEF PFDEF MODDEF MODEND |
%token <i> STRUCT POINT NEWSTRUCT ANS FDEF PFDEF MODDEF MODEND |
%token <i> GLOBAL MGLOBAL LOCAL LOCALF CMP OR AND CAR CDR QUOTED COLONCOLON |
%token <i> GLOBAL MGLOBAL LOCAL LOCALF CMP OR AND CAR CDR QUOTED COLONCOLON |
%token <i> DO WHILE FOR IF ELSE BREAK RETURN CONTINUE PARIF MAP RECMAP TIMER GF2NGEN GFPNGEN GFSNGEN GETOPT |
%token <i> DO WHILE FOR IF ELSE BREAK RETURN CONTINUE PARIF MAP RECMAP TIMER GF2NGEN GFPNGEN GFSNGEN GETOPT |
%token <i> FOP_AND FOP_OR FOP_IMPL FOP_REPL FOP_EQUIV FOP_NOT LOP |
%token <i> FOP_AND FOP_OR FOP_IMPL FOP_REPL FOP_EQUIV FOP_NOT LOP |
|
|
if ( f ) |
if ( f ) |
$$ = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0)); |
$$ = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0)); |
else { |
else { |
searchf(sysf,$1,&f); |
gen_searchf_searchonly($1,(FUNC *)&f); |
if ( !f ) |
|
searchf(ubinf,$1,&f); |
|
if ( !f ) |
|
searchpf($1,&f); |
|
if ( !f ) |
|
searchf(usrf,$1,&f); |
|
if ( f ) |
if ( f ) |
makesrvar(f,(P *)&val); |
makesrvar(f,(P *)&val); |
else |
else |
|
|
| '(' '*' expr ')' '(' node ')' |
| '(' '*' expr ')' '(' node ')' |
{ |
{ |
$$ = mkfnode(2,I_IFUNC,$3,mkfnode(1,I_LIST,$6)); |
$$ = mkfnode(2,I_IFUNC,$3,mkfnode(1,I_LIST,$6)); |
|
} |
|
| UCASE '(' node ')' |
|
{ |
|
if ( main_parser || allow_create_var ) |
|
t = mkfnode(2,I_PVAR,makepvar($1),0); |
|
else { |
|
ind = searchpvar($1); |
|
if ( ind == -1 ) { |
|
fprintf(stderr,"%s : no such variable.\n",$1); |
|
YYABORT; |
|
} else |
|
t = mkfnode(2,I_PVAR,ind,0); |
|
} |
|
$$ = mkfnode(2,I_IFUNC,t,mkfnode(1,I_LIST,$3)); |
} |
} |
| CAR '(' expr ')' |
| CAR '(' expr ')' |
{ $$ = mkfnode(1,I_CAR,$3); } |
{ $$ = mkfnode(1,I_CAR,$3); } |