/* ~function~ */ GDIJKSTRA_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MINPATHCOST2_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ GBIDIJKSTRA_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MTMINPATHCOSTS2_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ D_SEND_SHUFFLE_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DSHUFFLE_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELATION"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DSHUFFLE2_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELATION"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DSHUFFLE1_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELATION"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DLOOP_OLD_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DLOOPA_OLD_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DTIE_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARTITIONDMAP_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PDTS"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAPPDMAP_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DPD4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FDISTRIBUTE2TES_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DISTRIBUTE2TES_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ OPTICSF_fun : { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ OPTICSTF_fun : { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FILTERV_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TVS2T"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FILTERNP_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ EXTENDV_fun: naming EXTENDV_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming EXTENDV_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | EXTENDV_fun_1 {$$ = $1;} | EXTENDV_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ EXTENDV_fun_1 : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TVS2T"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ EXTENDV_funlist: EXTENDV_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ EXTENDV_funlist_1 : EXTENDV_fun{$$ = $1;} | EXTENDV_funlist_1 ',' EXTENDV_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ PROJECTEXTENDV_fun: naming PROJECTEXTENDV_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PROJECTEXTENDV_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PROJECTEXTENDV_fun_1 {$$ = $1;} | PROJECTEXTENDV_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PROJECTEXTENDV_fun_1 : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TVS2T"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PROJECTEXTENDV_funlist: PROJECTEXTENDV_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PROJECTEXTENDV_funlist_1 : PROJECTEXTENDV_fun{$$ = $1;} | PROJECTEXTENDV_funlist_1 ',' PROJECTEXTENDV_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ EXTENDNP_fun: naming EXTENDNP_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming EXTENDNP_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | EXTENDNP_fun_1 {$$ = $1;} | EXTENDNP_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ EXTENDNP_fun_1 : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ EXTENDNP_funlist: EXTENDNP_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ EXTENDNP_funlist_1 : EXTENDNP_fun{$$ = $1;} | EXTENDNP_funlist_1 ',' EXTENDNP_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ PROJECTEXTENDNP_fun: naming PROJECTEXTENDNP_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PROJECTEXTENDNP_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PROJECTEXTENDNP_fun_1 {$$ = $1;} | PROJECTEXTENDNP_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PROJECTEXTENDNP_fun_1 : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PROJECTEXTENDNP_funlist: PROJECTEXTENDNP_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PROJECTEXTENDNP_funlist_1 : PROJECTEXTENDNP_fun{$$ = $1;} | PROJECTEXTENDNP_funlist_1 ',' PROJECTEXTENDNP_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ APPLYPREDICATE_fun : { pair p; paramno++; strcpy(paramname,"blockentry"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" BLOCKENTRY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FILTER_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CFILTER_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CAND_fun : { pair p; paramno++; strcpy(paramname,"block"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ COR_fun : { pair p; paramno++; strcpy(paramname,"block"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ WITHIN_fun : { pair p; paramno++; strcpy(paramname,"const1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ WITHIN2_fun : { pair p; paramno++; strcpy(paramname,"const1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"const2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ WHILEDO_fun : { pair p; paramno++; strcpy(paramname,"const1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FUNSEQ1_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FUNSEQ2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FUNSEQ3_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FUNSEQ4_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARGEF4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FUNSEQ5_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARGEF4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARGEF5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FUNSEQ6_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARGEF4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARGEF5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARGEF6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))); cleanVariables(6); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DDISTRIBUTE4_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FDISTRIBUTE7_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DLOOP_fun : { pair p; paramno++; strcpy(paramname,"darrayelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DLOOP2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DARRAYELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DARRAYELEM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP_fun : { pair p; paramno++; strcpy(paramname,"dmapelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"dmapslotno"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP_fun : { pair p; paramno++; strcpy(paramname,"dmapelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"dmapslotno"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP2n_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"dmapslotno"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP3_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP4_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP5_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5i"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))); cleanVariables(6); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP6_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(7); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP7_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(8); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAP8_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"elem8"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[9], "%s_%d",paramname,paramno); p = pair(9, params[9]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG8"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[9]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(9); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP3_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP4_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4i"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP5_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5i"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))); cleanVariables(6); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP6_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(7); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP7_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG8"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(8); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PDMAP8_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"elem8"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[9], "%s_%d",paramname,paramno); p = pair(9, params[9]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG8"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG9"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[9]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(9); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DFDISTRIBUTE4_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARTITION_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" SUBSUBTYPE1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARTITIONF_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" FFR"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" FFR"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ AREDUCE_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ AREDUCE2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ AREDUCE2F_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DPRODUCT_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DPRODUCTARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DPRODUCTARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DDISTRIBUTE_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DFDISTRIBUTE_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARTITION8LOCAL_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARTITIONF8_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" P8TM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ LOOPJOINREL_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CONSTGRAPH_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CONSTGRAPHPOINTS_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ EXISTS_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FORALL_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARAJOIN_fun : { pair p; paramno++; strcpy(paramname,"stream1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"stream2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPSTREAM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPSTREAM3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ HADOOPJOIN_fun : { pair p; paramno++; strcpy(paramname,"stream1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"stream2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ MUPDATE_fun: naming MUPDATE_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming MUPDATE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | MUPDATE_fun_1 {$$ = $1;} | MUPDATE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MUPDATE_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ MUPDATE_funlist: MUPDATE_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ MUPDATE_funlist_1 : MUPDATE_fun{$$ = $1;} | MUPDATE_funlist_1 ',' MUPDATE_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ MUPDATESAVE_fun: naming MUPDATESAVE_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming MUPDATESAVE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | MUPDATESAVE_fun_1 {$$ = $1;} | MUPDATESAVE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MUPDATESAVE_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ MUPDATESAVE_funlist: MUPDATESAVE_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ MUPDATESAVE_funlist_1 : MUPDATESAVE_fun{$$ = $1;} | MUPDATESAVE_funlist_1 ',' MUPDATESAVE_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ MUPDATEBYID_fun: naming MUPDATEBYID_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming MUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | MUPDATEBYID_fun_1 {$$ = $1;} | MUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MUPDATEBYID_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ MUPDATEBYID_funlist: MUPDATEBYID_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ MUPDATEBYID_funlist_1 : MUPDATEBYID_fun{$$ = $1;} | MUPDATEBYID_funlist_1 ',' MUPDATEBYID_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ MUPDATEDIRECT2_fun: naming MUPDATEDIRECT2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming MUPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | MUPDATEDIRECT2_fun_1 {$$ = $1;} | MUPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MUPDATEDIRECT2_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"tuple2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" MTUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ MUPDATEDIRECT2_funlist: MUPDATEDIRECT2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ MUPDATEDIRECT2_funlist_1 : MUPDATEDIRECT2_fun{$$ = $1;} | MUPDATEDIRECT2_funlist_1 ',' MUPDATEDIRECT2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MOSHORTESTPATHD_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MOSHORTESTPATHA_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MGSHORTESTPATHD_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MGSHORTESTPATHA_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MPQREORDER_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MPQREORDERUPDATE_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CREATEMGRAPH2_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CREATEMGRAPH2FLOB_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MG2INSERTORIG_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ MEMGROUPBY_fun: naming MEMGROUPBY_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming MEMGROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | MEMGROUPBY_fun_1 {$$ = $1;} | MEMGROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MEMGROUPBY_fun_1 : { pair p; paramno++; strcpy(paramname,"mgroup"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MGROUP"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ MEMGROUPBY_funlist: MEMGROUPBY_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ MEMGROUPBY_funlist_1 : MEMGROUPBY_fun{$$ = $1;} | MEMGROUPBY_funlist_1 ',' MEMGROUPBY_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PUSE_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PSTREAM1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ PJOIN2_fun: naming PJOIN2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PJOIN2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PJOIN2_fun_1 {$$ = $1;} | PJOIN2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PJOIN2_fun_1 : { pair p; paramno++; strcpy(paramname,"left"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"right"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PSTREAM1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" PSTREAM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PJOIN2_funlist: PJOIN2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PJOIN2_funlist_1 : PJOIN2_fun{$$ = $1;} | PJOIN2_funlist_1 ',' PJOIN2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ PJOIN1_fun: naming PJOIN1_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PJOIN1_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PJOIN1_fun_1 {$$ = $1;} | PJOIN1_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PJOIN1_fun_1 : { pair p; paramno++; strcpy(paramname,"left"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"right"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PSTREAM1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PJOIN1_funlist: PJOIN1_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PJOIN1_funlist_1 : PJOIN1_fun{$$ = $1;} | PJOIN1_funlist_1 ',' PJOIN1_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ SORTARRAY_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ TIE_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CUMULATE_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ LOOP_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ LOOPA_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ LOOPB_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ LOOPSWITCH_fun: naming LOOPSWITCH_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming LOOPSWITCH_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | LOOPSWITCH_fun_1 {$$ = $1;} | LOOPSWITCH_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPSWITCH_fun_1 : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ LOOPSWITCH_funlist: LOOPSWITCH_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ LOOPSWITCH_funlist_1 : LOOPSWITCH_fun{$$ = $1;} | LOOPSWITCH_funlist_1 ',' LOOPSWITCH_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ LOOPSWITCHA_fun: naming LOOPSWITCHA_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming LOOPSWITCHA_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | LOOPSWITCHA_fun_1 {$$ = $1;} | LOOPSWITCHA_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPSWITCHA_fun_1 : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ LOOPSWITCHA_funlist: LOOPSWITCHA_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ LOOPSWITCHA_funlist_1 : LOOPSWITCHA_fun{$$ = $1;} | LOOPSWITCHA_funlist_1 ',' LOOPSWITCHA_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ LOOPSWITCHB_fun: naming LOOPSWITCHB_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming LOOPSWITCHB_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | LOOPSWITCHB_fun_1 {$$ = $1;} | LOOPSWITCHB_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPSWITCHB_fun_1 : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ LOOPSWITCHB_funlist: LOOPSWITCHB_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ LOOPSWITCHB_funlist_1 : LOOPSWITCHB_fun{$$ = $1;} | LOOPSWITCHB_funlist_1 ',' LOOPSWITCHB_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ LOOPSELECT_fun: naming LOOPSELECT_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming LOOPSELECT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | LOOPSELECT_fun_1 {$$ = $1;} | LOOPSELECT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPSELECT_fun_1 : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ LOOPSELECT_funlist: LOOPSELECT_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ LOOPSELECT_funlist_1 : LOOPSELECT_fun{$$ = $1;} | LOOPSELECT_funlist_1 ',' LOOPSELECT_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ LOOPSELECTA_fun: naming LOOPSELECTA_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming LOOPSELECTA_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | LOOPSELECTA_fun_1 {$$ = $1;} | LOOPSELECTA_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPSELECTA_fun_1 : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ LOOPSELECTA_funlist: LOOPSELECTA_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ LOOPSELECTA_funlist_1 : LOOPSELECTA_fun{$$ = $1;} | LOOPSELECTA_funlist_1 ',' LOOPSELECTA_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ LOOPSELECTB_fun: naming LOOPSELECTB_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming LOOPSELECTB_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | LOOPSELECTB_fun_1 {$$ = $1;} | LOOPSELECTB_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPSELECTB_fun_1 : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ LOOPSELECTB_funlist: LOOPSELECTB_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ LOOPSELECTB_funlist_1 : LOOPSELECTB_fun{$$ = $1;} | LOOPSELECTB_funlist_1 ',' LOOPSELECTB_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PARTJOIN_fun : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ PARTJOINSWITCH_fun: naming PARTJOINSWITCH_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PARTJOINSWITCH_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PARTJOINSWITCH_fun_1 {$$ = $1;} | PARTJOINSWITCH_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PARTJOINSWITCH_fun_1 : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PARTJOINSWITCH_funlist: PARTJOINSWITCH_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PARTJOINSWITCH_funlist_1 : PARTJOINSWITCH_fun{$$ = $1;} | PARTJOINSWITCH_funlist_1 ',' PARTJOINSWITCH_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ PARTJOINSELECT_fun: naming PARTJOINSELECT_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PARTJOINSELECT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PARTJOINSELECT_fun_1 {$$ = $1;} | PARTJOINSELECT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PARTJOINSELECT_fun_1 : { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PARTJOINSELECT_funlist: PARTJOINSELECT_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PARTJOINSELECT_funlist_1 : PARTJOINSELECT_fun{$$ = $1;} | PARTJOINSELECT_funlist_1 ',' PARTJOINSELECT_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ EXTEND_fun: naming EXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming EXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | EXTEND_fun_1 {$$ = $1;} | EXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ EXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ EXTEND_funlist: EXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ EXTEND_funlist_1 : EXTEND_fun{$$ = $1;} | EXTEND_funlist_1 ',' EXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PARAJOIN2_fun : { pair p; paramno++; strcpy(paramname,"stream1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"stream2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DRELFILTER_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ DRELEXTEND_fun: naming DRELEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELEXTEND_fun_1 {$$ = $1;} | DRELEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELEXTEND_funlist: DRELEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELEXTEND_funlist_1 : DRELEXTEND_fun{$$ = $1;} | DRELEXTEND_funlist_1 ',' DRELEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ DRELPROJECTEXTEND_fun: naming DRELPROJECTEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELPROJECTEXTEND_fun_1 {$$ = $1;} | DRELPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELPROJECTEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELPROJECTEXTEND_funlist: DRELPROJECTEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELPROJECTEXTEND_funlist_1 : DRELPROJECTEXTEND_fun{$$ = $1;} | DRELPROJECTEXTEND_funlist_1 ',' DRELPROJECTEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ DRELLGROUPBY_fun: naming DRELLGROUPBY_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELLGROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELLGROUPBY_fun_1 {$$ = $1;} | DRELLGROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELLGROUPBY_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELLGROUPBY_funlist: DRELLGROUPBY_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELLGROUPBY_funlist_1 : DRELLGROUPBY_fun{$$ = $1;} | DRELLGROUPBY_funlist_1 ',' DRELLGROUPBY_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ DRELGROUPBY_fun: naming DRELGROUPBY_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELGROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELGROUPBY_fun_1 {$$ = $1;} | DRELGROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELGROUPBY_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELGROUPBY_funlist: DRELGROUPBY_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELGROUPBY_funlist_1 : DRELGROUPBY_fun{$$ = $1;} | DRELGROUPBY_funlist_1 ',' DRELGROUPBY_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ DRELUPDATE_fun: naming DRELUPDATE_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELUPDATE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELUPDATE_fun_1 {$$ = $1;} | DRELUPDATE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELUPDATE_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELUPDATE_funlist: DRELUPDATE_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELUPDATE_funlist_1 : DRELUPDATE_fun{$$ = $1;} | DRELUPDATE_funlist_1 ',' DRELUPDATE_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ DRELUPDATEBYID_fun: naming DRELUPDATEBYID_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELUPDATEBYID_fun_1 {$$ = $1;} | DRELUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELUPDATEBYID_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" SUBSUBTYPE1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELUPDATEBYID_funlist: DRELUPDATEBYID_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELUPDATEBYID_funlist_1 : DRELUPDATEBYID_fun{$$ = $1;} | DRELUPDATEBYID_funlist_1 ',' DRELUPDATEBYID_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELFILTERADDID_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DRELFILTERDELETE_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ DRELFILTERUPDATE_fun: naming DRELFILTERUPDATE_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming DRELFILTERUPDATE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | DRELFILTERUPDATE_fun_1 {$$ = $1;} | DRELFILTERUPDATE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DRELFILTERUPDATE_fun_1 : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ DRELFILTERUPDATE_funlist: DRELFILTERUPDATE_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ DRELFILTERUPDATE_funlist_1 : DRELFILTERUPDATE_fun{$$ = $1;} | DRELFILTERUPDATE_funlist_1 ',' DRELFILTERUPDATE_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ DBSCANF_fun : { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DBSCANTF_fun : { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PFILTERS_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ PEXTEND_fun: naming PEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PEXTEND_fun_1 {$$ = $1;} | PEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PEXTEND_funlist: PEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PEXTEND_funlist_1 : PEXTEND_fun{$$ = $1;} | PEXTEND_funlist_1 ',' PEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ PEXTENDSTREAM_fun: naming PEXTENDSTREAM_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PEXTENDSTREAM_fun_1 {$$ = $1;} | PEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PEXTENDSTREAM_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PEXTENDSTREAM_funlist: PEXTENDSTREAM_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PEXTENDSTREAM_funlist_1 : PEXTENDSTREAM_fun{$$ = $1;} | PEXTENDSTREAM_funlist_1 ',' PEXTENDSTREAM_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PLOOPSEL_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PLOOPJOIN_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PAGGREGATE_fun : { pair p; paramno++; strcpy(paramname,"arg1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"arg2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PAGGREGATEB_fun : { pair p; paramno++; strcpy(paramname,"arg1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"arg2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ AGGREGATES_fun : { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ USE_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ USE2_fun : { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ TS_fun: naming TS_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming TS_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | TS_fun_1 {$$ = $1;} | TS_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ TS_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ TS_funlist: TS_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ TS_funlist_1 : TS_fun{$$ = $1;} | TS_funlist_1 ',' TS_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ AS_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ streamfun_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ prog_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ SYNC_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ SideEffect_fun : { pair p; paramno++; strcpy(paramname,"countelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ OSHORTESTPATHD_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ OSHORTESTPATHA_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ READ2_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBSARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ READ3_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBRARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ RDERIVE_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" RELARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ READ3_1_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBRARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DBIARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ READ3_2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBRARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DBIARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" DBIARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ FILTERX_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ UPDATESEARCH_fun: naming UPDATESEARCH_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATESEARCH_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATESEARCH_fun_1 {$$ = $1;} | UPDATESEARCH_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATESEARCH_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATESEARCH_funlist: UPDATESEARCH_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATESEARCH_funlist_1 : UPDATESEARCH_fun{$$ = $1;} | UPDATESEARCH_funlist_1 ',' UPDATESEARCH_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ UPDATEDIRECT_fun: naming UPDATEDIRECT_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATEDIRECT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATEDIRECT_fun_1 {$$ = $1;} | UPDATEDIRECT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATEDIRECT_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATEDIRECT_funlist: UPDATEDIRECT_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATEDIRECT_funlist_1 : UPDATEDIRECT_fun{$$ = $1;} | UPDATEDIRECT_funlist_1 ',' UPDATEDIRECT_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ UPDATEDIRECT2_fun: naming UPDATEDIRECT2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATEDIRECT2_fun_1 {$$ = $1;} | UPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATEDIRECT2_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"tuple2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATEDIRECT2_funlist: UPDATEDIRECT2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATEDIRECT2_funlist_1 : UPDATEDIRECT2_fun{$$ = $1;} | UPDATEDIRECT2_funlist_1 ',' UPDATEDIRECT2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ UPDATEBYID2_fun: naming UPDATEBYID2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATEBYID2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATEBYID2_fun_1 {$$ = $1;} | UPDATEBYID2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATEBYID2_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"tuple2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATEBYID2_funlist: UPDATEBYID2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATEBYID2_funlist_1 : UPDATEBYID2_fun{$$ = $1;} | UPDATEBYID2_funlist_1 ',' UPDATEBYID2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ UPDATESEARCHSAVE_fun: naming UPDATESEARCHSAVE_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATESEARCHSAVE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATESEARCHSAVE_fun_1 {$$ = $1;} | UPDATESEARCHSAVE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATESEARCHSAVE_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATESEARCHSAVE_funlist: UPDATESEARCHSAVE_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATESEARCHSAVE_funlist_1 : UPDATESEARCHSAVE_fun{$$ = $1;} | UPDATESEARCHSAVE_funlist_1 ',' UPDATESEARCHSAVE_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ UPDATEDIRECTSAVE_fun: naming UPDATEDIRECTSAVE_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATEDIRECTSAVE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATEDIRECTSAVE_fun_1 {$$ = $1;} | UPDATEDIRECTSAVE_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATEDIRECTSAVE_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATEDIRECTSAVE_funlist: UPDATEDIRECTSAVE_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATEDIRECTSAVE_funlist_1 : UPDATEDIRECTSAVE_fun{$$ = $1;} | UPDATEDIRECTSAVE_funlist_1 ',' UPDATEDIRECTSAVE_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ UPDATEBYID_fun: naming UPDATEBYID_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming UPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | UPDATEBYID_fun_1 {$$ = $1;} | UPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ UPDATEBYID_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ UPDATEBYID_funlist: UPDATEBYID_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ UPDATEBYID_funlist_1 : UPDATEBYID_fun{$$ = $1;} | UPDATEBYID_funlist_1 ',' UPDATEBYID_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ FILTERINSERT_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ CPROJECTEXTEND_fun: naming CPROJECTEXTEND_fun_1 {$$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")")) ))));} | naming CPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")")) ))))));} | CPROJECTEXTEND_fun_1 {$$ = $1;} | CPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ CPROJECTEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ CPROJECTEXTEND_funlist: CPROJECTEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ CPROJECTEXTEND_funlist_1 : CPROJECTEXTEND_fun{$$ = $1;} | CPROJECTEXTEND_funlist_1 ',' CPROJECTEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ MAP_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" CELL1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MAP2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" CELL1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" CELL2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MATCHGRID_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" CELLS"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ REPLACEELEM_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ GROUPBY2_fun: naming GROUPBY2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming GROUPBY2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | GROUPBY2_fun_1 {$$ = $1;} | GROUPBY2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ GROUPBY2_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ GROUPBY2_funlist: GROUPBY2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ GROUPBY2_funlist_1 : GROUPBY2_fun{$$ = $1;} | GROUPBY2_funlist_1 ',' GROUPBY2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ HADOOPMAP_fun : { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ HADOOPREDUCE_fun : { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ HADOOPREDUCE2_fun : { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lobject2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TPARA2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ HADOOPMAP2_fun : { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lobject2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TPARA2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ GPATTERN_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CROSSPATTERN_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ MTHREADEDFILTER_fun : { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ CANCEL_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ PROJECTEXTEND_fun: naming PROJECTEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PROJECTEXTEND_fun_1 {$$ = $1;} | PROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PROJECTEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PROJECTEXTEND_funlist: PROJECTEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PROJECTEXTEND_funlist_1 : PROJECTEXTEND_fun{$$ = $1;} | PROJECTEXTEND_funlist_1 ',' PROJECTEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ EXTENDSTREAM_fun: naming EXTENDSTREAM_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming EXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | EXTENDSTREAM_fun_1 {$$ = $1;} | EXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ EXTENDSTREAM_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ EXTENDSTREAM_funlist: EXTENDSTREAM_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ EXTENDSTREAM_funlist_1 : EXTENDSTREAM_fun{$$ = $1;} | EXTENDSTREAM_funlist_1 ',' EXTENDSTREAM_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ PROJECTEXTENDSTREAM_fun: naming PROJECTEXTENDSTREAM_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PROJECTEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PROJECTEXTENDSTREAM_fun_1 {$$ = $1;} | PROJECTEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PROJECTEXTENDSTREAM_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PROJECTEXTENDSTREAM_funlist: PROJECTEXTENDSTREAM_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PROJECTEXTENDSTREAM_funlist_1 : PROJECTEXTENDSTREAM_fun{$$ = $1;} | PROJECTEXTENDSTREAM_funlist_1 ',' PROJECTEXTENDSTREAM_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ GROUPBY_fun: naming GROUPBY_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming GROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | GROUPBY_fun_1 {$$ = $1;} | GROUPBY_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ GROUPBY_fun_1 : { pair p; paramno++; strcpy(paramname,"group"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GROUP"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ GROUPBY_funlist: GROUPBY_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ GROUPBY_funlist_1 : GROUPBY_fun{$$ = $1;} | GROUPBY_funlist_1 ',' GROUPBY_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ SLIDINGWINDOW_fun: naming SLIDINGWINDOW_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming SLIDINGWINDOW_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | SLIDINGWINDOW_fun_1 {$$ = $1;} | SLIDINGWINDOW_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ SLIDINGWINDOW_fun_1 : { pair p; paramno++; strcpy(paramname,"group"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GROUP"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ SLIDINGWINDOW_funlist: SLIDINGWINDOW_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ SLIDINGWINDOW_funlist_1 : SLIDINGWINDOW_fun{$$ = $1;} | SLIDINGWINDOW_funlist_1 ',' SLIDINGWINDOW_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ LOOPJOIN_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ LOOPSEL_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ AGGREGATE_fun : { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ AGGREGATEB_fun : { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ SYMMJOIN_fun : { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ SYMMOUTERJOIN_fun : { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ SYMMPRODUCTEXTEND_fun: naming SYMMPRODUCTEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming SYMMPRODUCTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | SYMMPRODUCTEXTEND_fun_1 {$$ = $1;} | SYMMPRODUCTEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ SYMMPRODUCTEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ SYMMPRODUCTEXTEND_funlist: SYMMPRODUCTEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ SYMMPRODUCTEXTEND_funlist_1 : SYMMPRODUCTEXTEND_fun{$$ = $1;} | SYMMPRODUCTEXTEND_funlist_1 ',' SYMMPRODUCTEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ EXTEND_LAST_fun: naming EXTEND_LAST_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming EXTEND_LAST_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | EXTEND_LAST_fun_1 {$$ = $1;} | EXTEND_LAST_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ EXTEND_LAST_fun_1 : { pair p; paramno++; strcpy(paramname,"currenttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lasttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ EXTEND_LAST_funlist: EXTEND_LAST_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ EXTEND_LAST_funlist_1 : EXTEND_LAST_fun{$$ = $1;} | EXTEND_LAST_funlist_1 ',' EXTEND_LAST_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ EXTEND_NEXT_fun: naming EXTEND_NEXT_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming EXTEND_NEXT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | EXTEND_NEXT_fun_1 {$$ = $1;} | EXTEND_NEXT_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ EXTEND_NEXT_fun_1 : { pair p; paramno++; strcpy(paramname,"currenttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lasttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ EXTEND_NEXT_funlist: EXTEND_NEXT_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ EXTEND_NEXT_funlist_1 : EXTEND_NEXT_fun{$$ = $1;} | EXTEND_NEXT_funlist_1 ',' EXTEND_NEXT_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ REPLACEATTR_fun: naming REPLACEATTR_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming REPLACEATTR_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | REPLACEATTR_fun_1 {$$ = $1;} | REPLACEATTR_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ REPLACEATTR_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ REPLACEATTR_funlist: REPLACEATTR_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ REPLACEATTR_funlist_1 : REPLACEATTR_fun{$$ = $1;} | REPLACEATTR_funlist_1 ',' REPLACEATTR_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PFILTER_fun : { pair p; paramno++; strcpy(paramname,"currenttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lasttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ EXTENDX_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ ADDMODCOUNTER_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"value"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ USEHISTOGRAM_fun : { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ USEHISTOGRAM2_fun : { pair p; paramno++; strcpy(paramname,"element1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"element2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAPS_fun : { pair p; paramno++; strcpy(paramname,"dmapelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAPS2_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAPS3_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAPS4_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DMAPS5_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DPRODUCTS_fun : { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNFSARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ PARTITIONFS_fun : { pair p; paramno++; strcpy(paramname,"arg1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"arg2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARGPARTITIONF"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARGPARTITIONF"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ DBSCAN_fun : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ REGISTERFORSTREAM_fun : { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TTYPE3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~Function~ */ PREDCOUNTS_fun: naming PREDCOUNTS_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming PREDCOUNTS_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | PREDCOUNTS_fun_1 {$$ = $1;} | PREDCOUNTS_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ PREDCOUNTS_fun_1 : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ PREDCOUNTS_funlist: PREDCOUNTS_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ PREDCOUNTS_funlist_1 : PREDCOUNTS_fun{$$ = $1;} | PREDCOUNTS_funlist_1 ',' PREDCOUNTS_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXTEND_fun: naming STPATTERNEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXTEND_fun_1 {$$ = $1;} | STPATTERNEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXTEND_funlist: STPATTERNEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXTEND_funlist_1 : STPATTERNEXTEND_fun{$$ = $1;} | STPATTERNEXTEND_funlist_1 ',' STPATTERNEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXTEND2_fun: naming STPATTERNEXTEND2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXTEND2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXTEND2_fun_1 {$$ = $1;} | STPATTERNEXTEND2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXTEND2_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXTEND2_funlist: STPATTERNEXTEND2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXTEND2_funlist_1 : STPATTERNEXTEND2_fun{$$ = $1;} | STPATTERNEXTEND2_funlist_1 ',' STPATTERNEXTEND2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXEXTEND_fun: naming STPATTERNEXEXTEND_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXEXTEND_fun_1 {$$ = $1;} | STPATTERNEXEXTEND_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXEXTEND_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXEXTEND_funlist: STPATTERNEXEXTEND_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXEXTEND_funlist_1 : STPATTERNEXEXTEND_fun{$$ = $1;} | STPATTERNEXEXTEND_funlist_1 ',' STPATTERNEXEXTEND_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXEXTEND2_fun: naming STPATTERNEXEXTEND2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXEXTEND2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXEXTEND2_fun_1 {$$ = $1;} | STPATTERNEXEXTEND2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXEXTEND2_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXEXTEND2_funlist: STPATTERNEXEXTEND2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXEXTEND2_funlist_1 : STPATTERNEXEXTEND2_fun{$$ = $1;} | STPATTERNEXEXTEND2_funlist_1 ',' STPATTERNEXEXTEND2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXTENDSTREAM_fun: naming STPATTERNEXTENDSTREAM_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXTENDSTREAM_fun_1 {$$ = $1;} | STPATTERNEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXTENDSTREAM_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXTENDSTREAM_funlist: STPATTERNEXTENDSTREAM_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXTENDSTREAM_funlist_1 : STPATTERNEXTENDSTREAM_fun{$$ = $1;} | STPATTERNEXTENDSTREAM_funlist_1 ',' STPATTERNEXTENDSTREAM_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXTENDSTREAM2_fun: naming STPATTERNEXTENDSTREAM2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXTENDSTREAM2_fun_1 {$$ = $1;} | STPATTERNEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXTENDSTREAM2_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXTENDSTREAM2_funlist: STPATTERNEXTENDSTREAM2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXTENDSTREAM2_funlist_1 : STPATTERNEXTENDSTREAM2_fun{$$ = $1;} | STPATTERNEXTENDSTREAM2_funlist_1 ',' STPATTERNEXTENDSTREAM2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXEXTENDSTREAM_fun: naming STPATTERNEXEXTENDSTREAM_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXEXTENDSTREAM_fun_1 {$$ = $1;} | STPATTERNEXEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXEXTENDSTREAM_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXEXTENDSTREAM_funlist: STPATTERNEXEXTENDSTREAM_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXEXTENDSTREAM_funlist_1 : STPATTERNEXEXTENDSTREAM_fun{$$ = $1;} | STPATTERNEXEXTENDSTREAM_funlist_1 ',' STPATTERNEXEXTENDSTREAM_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~Function~ */ STPATTERNEXEXTENDSTREAM2_fun: naming STPATTERNEXEXTENDSTREAM2_fun_1 {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | naming STPATTERNEXEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4 , NestedText::AtomC(")") ))))));} | STPATTERNEXEXTENDSTREAM2_fun_1 {$$ = $1;} | STPATTERNEXEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ STPATTERNEXEXTENDSTREAM2_fun_1 : { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~funlist~ */ STPATTERNEXEXTENDSTREAM2_funlist: STPATTERNEXEXTENDSTREAM2_funlist_1 { $$=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat($1, NestedText::AtomC(" ) "))); } ; /* ~funlist~ */ STPATTERNEXEXTENDSTREAM2_funlist_1 : STPATTERNEXEXTENDSTREAM2_fun{$$ = $1;} | STPATTERNEXEXTENDSTREAM2_funlist_1 ',' STPATTERNEXEXTENDSTREAM2_fun { $$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3)); } ; /* ~function~ */ REDUCE_fun : { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ TSMOTIFBFFUN_fun : { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ; /* ~function~ */ TSDISTANCEFUN_fun : { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } valueexpr { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); $$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( $2, NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } | function { $$ = $1; } ;