/* ---- This file is part of SECONDO. Copyright (C) 2004, University in Hagen, Department of Computer Science, Database Systems for New Applications. SECONDO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. SECONDO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with SECONDO; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---- Dec. 2004, M. Spiekermann. YYERROR\_VERBOSE defined. Implementation of yyerror need to be moved to SecParser.cpp. July 15, 2010 Christian Duentgen added conditionalcommand */ %{ #include #include #include #include #include #include "NestedText.h" #define YYERROR_VERBOSE #define YYDEBUG 1 bool USE_AUTO_BUFFER = false; extern int yylex(); string* yacc_outtext; typedef char cstring[50]; cstring paramname; // temporarly variable #define maxparams 10 cstring params[maxparams]; int paramno; stack > paramstack; extern void yyerror( const char* s ); void cleanVariables(int max){ if(maxparams > tmpstack; while(!paramstack.empty()){ pair t = paramstack.top(); tmpstack.push(t); paramstack.pop(); } while(!tmpstack.empty()){ pair t = tmpstack.top(); paramstack.push(t); tmpstack.pop(); strcpy(params[t.first], t.second.c_str()); } } void PRINTF (const char *s) { (*yacc_outtext).append( s ); } void PRINT (int i) { string temp; NestedText::CopyOut( i, temp ); *yacc_outtext += temp; } void CLEAR(){ *yacc_outtext=""; } %} %verbose %locations %token ZZATTRABBR ZZATTRABBR2 ZZIDENTIFIER ZZFUN ZZINTEGER ZZREAL ZZSTRING ZZBOOLEAN ZZCONST ZZTUPLE ZZGROUP ZZTYPE ZZDELETE ZZCREATE ZZUPDATE ZZKILL ZZQUERY ZZQUERYNT ZZPQUERY ZZPCOMPILE ZZLET ZZDERIVE ZZPERSISTENT ZZBEGIN1 ZZTRANSACTION ZZCOMMIT ZZABORT ZZDATABASE ZZOPEN ZZCLOSE ZZSAVE ZZTO ZZRESTORE ZZFROM ZZLIST ZZDATABASES ZZCONSTRUCTORS ZZOPERATORS ZZTYPES ZZOBJECTS ZZASSIGN ZZDOUBLE ZZVALUE ZZPOINTER ZZCOUNTERS ZZALGEBRAS ZZALGEBRA ZZTEXT ZZFILE ZZINFIXOP ZZPREFIXOP ZZINFIXOP_BUF ZZPREFIXOP_BUF ZZIF ZZTHEN ZZELSE ZZENDIF ZZWHILE ZZDO ZZENDWHILE ZZNAMING ZZMEMORY ZZDEFAULTSEP OPENDOUBLEBRACE CLOSEDOUBLEBRACE ZZSINGLE ZZARG3 ZZARG4 ZZARG5 ZZARG6 ZZARG7 ZZARG8 ZZARG9 ZZATTRABBR3 ZZATTRABBR4 ZZATTRABBR5 ZZATTRABBR6 ZZATTRABBR7 ZZATTRABBR8 ZZATTRABBR9 ZZCHANGENAME ZZTYPEOF ZZPOSTFIXOP1 ZZPOSTFIXOP1_a ZZPOSTFIXOP2_a ZZNEST ZZPOSTFIXOP2 ZZSORTBY ZZSORTBYPARAM ZZSORTBYH ZZGDIJKSTRA ZZMINPATHCOST2 ZZGBIDIJKSTRA ZZMTMINPATHCOSTS2 ZZD_SEND_SHUFFLE ZZDSHUFFLE ZZDSHUFFLE2 ZZDSHUFFLE1 ZZDLOOP_OLD ZZDLOOPA_OLD ZZDTIE ZZPARTITIONDMAP ZZDMAPPDMAP ZZFDISTRIBUTE2TES ZZDISTRIBUTE2TES ZZCOLLECTPC2 ZZOPTICSR ZZOPTICSM ZZOPTICSF ZZOPTICSTF ZZFILTERV ZZFILTERNP ZZEXTENDV ZZPROJECTEXTENDV ZZEXTENDNP ZZPROJECTEXTENDNP ZZDBDACSCAN ZZDISTSAMP ZZAPPLYPREDICATE ZZFEEDPROJECT ZZFILTER ZZCFILTER ZZCAND ZZCOR ZZWITHIN ZZWITHIN2 ZZWHILEDO ZZFUNSEQ1 ZZFUNSEQ2 ZZFUNSEQ3 ZZFUNSEQ4 ZZFUNSEQ5 ZZFUNSEQ6 ZZDDISTRIBUTE4 ZZFDISTRIBUTE7 ZZDLOOP ZZDLOOP2 ZZDMAP ZZPDMAP ZZDMAP2n ZZDMAP2 ZZDMAP3 ZZDMAP4 ZZDMAP5 ZZDMAP6 ZZDMAP7 ZZDMAP8 ZZPDMAP2 ZZPDMAP3 ZZPDMAP4 ZZPDMAP5 ZZPDMAP6 ZZPDMAP7 ZZPDMAP8 ZZDFDISTRIBUTE4 ZZPARTITION ZZPARTITIONF ZZAREDUCE ZZAREDUCE2 ZZAREDUCE2F ZZDPRODUCT ZZDDISTRIBUTE ZZDFDISTRIBUTE ZZPARTITION8LOCAL ZZPARTITIONF8 ZZLOOPJOINREL ZZCONSTGRAPH ZZCONSTGRAPHPOINTS ZZTRANSLATE ZZPOSTFIXOP3_a ZZEXISTS ZZFORALL ZZPOSTFIXOP3 ZZPARAJOIN ZZFCONSUME ZZFFEED ZZHADOOPJOIN ZZFDISTRIBUTE ZZFFEED2 ZZFCONSUME3 ZZFFEED3 ZZFETCHFLOB ZZFDISTRIBUTE3 ZZMOCONSUME ZZMOCONSUMEFLOB ZZMINSERTTUPLE ZZMINSERTTUPLESAVE ZZMUPDATE ZZMUPDATESAVE ZZMUPDATEBYID ZZMUPDATEDIRECT2 ZZMORANGE ZZMOLEFTRANGE ZZMORIGHTRANGE ZZMOSHORTESTPATHD ZZMOSHORTESTPATHA ZZMQUICKSORTBY ZZMGSHORTESTPATHD ZZMGSHORTESTPATHA ZZMINSERTTUPLEPQPROJECTU ZZMINSERTTUPLEPQPROJECT ZZMPQREORDER ZZMPQREORDERUPDATE ZZCREATEMGRAPH2 ZZCREATEMGRAPH2FLOB ZZMG2INSERTORIG ZZMEMGROUPBY ZZMMERGEJOINPROJECT ZZPUSE ZZPJOIN2 ZZPJOIN1 ZZEXTENDITEMNAMES ZZSORTARRAY ZZTIE ZZCUMULATE ZZLOOP ZZLOOPA ZZLOOPB ZZLOOPSWITCH ZZLOOPSWITCHA ZZLOOPSWITCHB ZZLOOPSELECT ZZLOOPSELECTA ZZLOOPSELECTB ZZPARTJOIN ZZPARTJOINSWITCH ZZPARTJOINSELECT ZZEXTEND ZZPARAJOIN2 ZZDRELFILTER ZZDRELEXTEND ZZDRELPROJECTEXTEND ZZPROJECT ZZLSORTBY ZZDRELLGROUPBY ZZDRELGROUPBY ZZDRELINSERTTUPLE ZZDRELUPDATE ZZDRELUPDATEBYID ZZDRELFILTERADDID ZZDRELFILTERDELETE ZZDRELFILTERUPDATE ZZDBSCANR ZZDBSCANM ZZDBSCANF ZZDBSCANTF ZZPFILTERS ZZPEXTEND ZZPEXTENDSTREAM ZZPLOOPSEL ZZPLOOPJOIN ZZPAGGREGATE ZZPAGGREGATEB ZZPSORTBY ZZPOSTFIXOP4_a ZZPOSTFIXOP6_a ZZAGGREGATES ZZUSE ZZUSE2 ZZTS ZZAS ZZstreamfun ZZprog ZZSYNC ZZSideEffect ZZTRANSLATE_GROOM ZZOLEFTRANGE ZZORIGHTRANGE ZZORANGE ZZOSHORTESTPATHD ZZOSHORTESTPATHA ZZREAD2 ZZREAD3 ZZRDERIVE ZZREAD3_1 ZZREAD3_2 ZZFILTERX ZZINSERTTUPLE ZZINSERTTUPLESAVE ZZUPDATESEARCH ZZUPDATEDIRECT ZZUPDATEDIRECT2 ZZUPDATEBYID2 ZZUPDATESEARCHSAVE ZZUPDATEDIRECTSAVE ZZUPDATEBYID ZZFILTERINSERT ZZCPROJECTEXTEND ZZMAP ZZMAP2 ZZMATCHGRID ZZREPLACEELEM ZZGROUPBY2 ZZSPREAD ZZCOLLECT ZZHADOOPMAP ZZHADOOPREDUCE ZZHADOOPREDUCE2 ZZPFFEED ZZPFFEED2 ZZPFFEED3 ZZHADOOPMAP2 ZZREPORTPATTERN ZZGPATTERN ZZCROSSPATTERN ZZMTHREADEDMERGESORT ZZMTHREADEDFILTER ZZCANCEL ZZKRDUP ZZPROJECTEXTEND ZZEXTENDSTREAM ZZPROJECTEXTENDSTREAM ZZGROUPBY ZZSLIDINGWINDOW ZZSORTBYOLD ZZPOSTFIXOP2_a_autobuffer ZZLOOPJOIN ZZLOOPSEL ZZAGGREGATE ZZAGGREGATEB ZZSYMMJOIN ZZSYMMOUTERJOIN ZZSYMMPRODUCTEXTEND ZZKSMALLEST ZZKBIGGEST ZZEXTEND_AGGR ZZEXTEND_LAST ZZEXTEND_NEXT ZZREPLACEATTR ZZPFILTER ZZEXTENDX ZZOBOJOIND ZZISORDEREDBY ZZADDMODCOUNTER ZZUSEHISTOGRAM ZZUSEHISTOGRAM2 ZZDMAPS ZZDMAPS2 ZZDMAPS3 ZZDMAPS4 ZZDMAPS5 ZZDPRODUCTS ZZPARTITIONFS ZZDBSCAN ZZREGISTERFORSTREAM ZZNEST2 ZZPREDCOUNTS ZZSTPATTERN ZZSTPATTERN2 ZZSTPATTERNEX ZZSTPATTERNEX2 ZZSTPATTERNEXTEND ZZSTPATTERNEXTEND2 ZZSTPATTERNEXEXTEND ZZSTPATTERNEXEXTEND2 ZZSTPATTERNEXTENDSTREAM ZZSTPATTERNEXTENDSTREAM2 ZZSTPATTERNEXEXTENDSTREAM ZZSTPATTERNEXEXTENDSTREAM2 ZZCOMPUTECLOSURE ZZOCONSUME ZZREMOVE ZZREDUCE ZZRENAMEATTR ZZTSMOTIFBFFUN ZZTSDISTANCEFUN /* ---- This file is part of SECONDO. Copyright (C) 2004, University in Hagen, Department of Computer Science, Database Systems for New Applications. SECONDO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. SECONDO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with SECONDO; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---- May 15, 1998 RHG Added rule for the ~model~ command. Feb 3, 1999 Stefan Dieker Added "typexpr : typeexpr ':' typeexpr" rule August 10, 2000 RHG Changed definition of syntax for constant values. Now to be written as '[' typeexpr 'const' valueexpr ']' for example, ---- [points const ((1 -4) (2 3))] [int const 954] ---- March 2002 Ulrich Telle Port to C++ November 5, 2002 RHG Added the cases ~function~ and ~IDENTIFIER~ '(' elems ')' ~ to ~valueexpr~ to support function definitions and function calls. November 7, 2002 RHG Extended the definition of ~function~ and of ~valueexpr~ to support function definitions and function calls with 0 parameters; these are translated to functions with an integer parameter and which are called with 0. November 22, 2002 RHG Discovered that the query processor can handle functions with 0 parameters; hence translated definitions and function calls directly to use 0 parameters. December 12, 2002 RHG Changed the notation for constants once more so that relation constants can be parsed correctly. The new notation is [const value ] for example [const int value 25] [const rel(tuple([no1:int, no2:int])) value ((1 4) (2 5) (3 6))] February 3, 2003 RHG Added translation of counters of the form e.g. ``{5}'' and a ``list counters'' command. May 19, 2003 RHG Added missing syntax '..' to refer to the second implicit argument. October 14, 2004 RHG Added text atoms and file atoms for nested lists. January 10, 2005 Victor Almeida removed the ~model~ token. July 15, 2010 Christian Duentgen added conditionalcommand. */ %% /* commands */ commands : command | command ';' | command ';' commands ; command : basic | transaction | database | inquiries | set | conditionalcommand | commandblock | whilecommand ; whilecommand : ZZWHILE valueexpr ZZDO command ZZENDWHILE { CLEAR(); PRINTF("(while "); PRINT($2); PRINTF(" do "); PRINT($4); PRINTF(" endwhile)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; commandblock : commandblock1 | commandblock2 ; commandblock1 : '{' commandseq '}' { CLEAR(); PRINTF("(beginseq ("); PRINT($2); PRINTF(") endseq)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | '{' '}' { CLEAR(); PRINTF("(beginseq () endseq)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; commandblock2 : OPENDOUBLEBRACE commandseq CLOSEDOUBLEBRACE { CLEAR(); PRINTF("(beginseq2 ("); PRINT($2); PRINTF(") endseq2)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | '{' '}' { CLEAR(); PRINTF("(beginseq2 () endseq2)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; commandseq : commandseq '|' command { CLEAR(); PRINT($1); PRINTF(" "); PRINT($3); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | command { $$ = $1; } ; conditionalcommand : ZZIF valueexpr ZZTHEN command ZZELSE command ZZENDIF { CLEAR(); PRINTF("(if "); PRINT($2); PRINTF(" then "); PRINT($4); PRINTF(" else "); PRINT($6); PRINTF(" endif)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZIF valueexpr ZZTHEN command ZZENDIF { CLEAR(); PRINTF("(if "); PRINT($2); PRINTF(" then "); PRINT($4); PRINTF(" endif)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; basic : ZZTYPE ZZIDENTIFIER ZZINFIXOP typeexpr { CLEAR(); string equalstr; NestedText::CopyOut( $3, equalstr ); if(equalstr!="=") { yyerror("type declataion expects a '=' at the third position"); return -1; } PRINTF("(type "); PRINT($2); PRINTF(" = "); PRINT($4); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZDELETE ZZTYPE ZZIDENTIFIER {CLEAR(); PRINTF("(delete type "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZCREATE ZZNAMING typeexpr { CLEAR(); PRINTF("(create "); PRINT($2); PRINTF(" : "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZUPDATE ZZIDENTIFIER ZZASSIGN valueexpr { CLEAR(); PRINTF("(update "); PRINT($3); PRINTF(" := "); PRINT($5); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZKILL ZZIDENTIFIER {PRINTF("(kill "); PRINT($2); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZDELETE ZZIDENTIFIER { CLEAR(); PRINTF("(delete "); PRINT($2); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZQUERY valueexpr { CLEAR(); PRINTF("(query "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZQUERYNT valueexpr { CLEAR(); PRINTF("(querynt "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZPQUERY valueexpr { CLEAR(); PRINTF("(pquery "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZPCOMPILE valueexpr { CLEAR(); PRINTF("(pcompile "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZLET ZZIDENTIFIER ZZINFIXOP valueexpr { CLEAR(); string equalstr; NestedText::CopyOut( $4, equalstr ); if(equalstr!="=") { yyerror("let command expects a '=' at the third position"); return -1; } PRINTF("(let "); PRINT($3); PRINTF(" = "); PRINT($5); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZCHANGENAME ZZIDENTIFIER ZZTO ZZIDENTIFIER { CLEAR(); PRINTF("(changename "); PRINT($3); PRINTF(" to " ); PRINT($5); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | {paramno=0; emptystack();} ZZDERIVE ZZIDENTIFIER ZZINFIXOP valueexpr { CLEAR(); string equalstr; NestedText::CopyOut( $4, equalstr ); if(equalstr!="=") { yyerror("derive command expects a '=' at the third position"); return -1; } PRINTF("(derive "); PRINT($3); PRINTF(" = "); PRINT($5); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZPERSISTENT ZZIDENTIFIER { CLEAR(); PRINTF("(persistent "); PRINT($2); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; transaction : ZZBEGIN1 ZZTRANSACTION { CLEAR(); PRINTF("(begin transaction)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZCOMMIT ZZTRANSACTION { CLEAR(); PRINTF("(commit transaction)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZABORT ZZTRANSACTION { CLEAR(); PRINTF("(abort transaction)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; database : ZZCREATE ZZDATABASE ZZIDENTIFIER { CLEAR(); PRINTF("(create database "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZDELETE ZZDATABASE ZZIDENTIFIER { CLEAR(); PRINTF("(delete database "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZOPEN ZZDATABASE ZZIDENTIFIER { CLEAR(); PRINTF("(open database "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZCLOSE ZZDATABASE { CLEAR(); PRINTF("(close database)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZSAVE ZZDATABASE ZZTO filename { CLEAR(); PRINTF("(save database to "); PRINT($4); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZSAVE ZZIDENTIFIER ZZTO filename { CLEAR(); PRINTF("(save "); PRINT($2); PRINTF(" to "); PRINT($4); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZRESTORE ZZDATABASE ZZIDENTIFIER ZZFROM filename { CLEAR(); PRINTF("(restore database "); PRINT($3); PRINTF(" from "); PRINT($5); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZRESTORE ZZIDENTIFIER ZZFROM filename { CLEAR(); PRINTF("(restore "); PRINT($2); PRINTF(" from "); PRINT($4); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; filename : ZZIDENTIFIER | ZZTEXT ; inquiries : ZZLIST ZZDATABASES { CLEAR(); PRINTF("(list databases)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZALGEBRAS { CLEAR(); PRINTF("(list algebras)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZALGEBRA ZZIDENTIFIER { CLEAR(); PRINTF("(list algebra "); PRINT($3); PRINTF(")\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZTYPE ZZCONSTRUCTORS { CLEAR(); PRINTF("(list type constructors)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZOPERATORS { CLEAR(); PRINTF("(list operators)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZTYPES { CLEAR(); PRINTF("(list types)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZOBJECTS { CLEAR(); PRINTF("(list objects)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } | ZZLIST ZZCOUNTERS { CLEAR(); PRINTF("(list counters)\n"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; set : ZZIDENTIFIER ZZSTRING ZZINFIXOP ZZBOOLEAN { CLEAR(); string setstr; NestedText::CopyOut( $1, setstr ); string equalstr; NestedText::CopyOut( $3, equalstr ); if(setstr!="set"){ yyerror("expected set but got ZZIDENTIFIER"); return -1; } if(equalstr!="="){ yyerror("'=' expected in set command"); return -1; } PRINTF("( set "); PRINT($2); PRINTF(" = "); PRINT($4); PRINTF(" )"); $$ = NestedText::AtomC(yacc_outtext->c_str()); } ; /* typeexpr*/ typeexpr : constructor {$$ = $1;} | constructor '(' typeexprs ')' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::AtomC(")")))));} | '(' typeexprs ')' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($2, NestedText::AtomC(")")));} | '[' typeexprs ']' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($2, NestedText::AtomC(")")));} | '[' ']' {$$ = NestedText::AtomC("()");} | ZZNAMING typeexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")")))));} | ZZTYPEOF '(' valueexpr ')' { $$ = NestedText::Concat(NestedText::AtomC("(typeOf "), NestedText::Concat($3, NestedText::AtomC(")"))); } ; typeexpr2 : constructor {$$ = $1;} | constructor '(' typeexprs ')' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::AtomC(")")))));} | nestedlist {$$ = $1;} | ZZTYPEOF '(' valueexpr ')' { $$ = NestedText::Concat(NestedText::AtomC("(typeOf "), NestedText::Concat($3, NestedText::AtomC(")"))); } ; constructor : ZZIDENTIFIER {$$ = $1;} | ZZTUPLE {$$ = $1;} | ZZGROUP {$$ = $1;} | ZZINTEGER {$$ = $1;} ; typeexprs : typeexpr {$$ = $1;} | typeexprs ',' typeexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3));} ; /* valueexpr, general part */ namedfunction : naming valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")")))));} ; function : ZZFUN '(' args ')' valueexpr {$$ = NestedText::Concat(NestedText::AtomC("(fun "), NestedText::Concat($3, NestedText::Concat (NestedText::AtomC(" "), NestedText::Concat($5, NestedText::AtomC(")") ))));} | ZZFUN '(' ')' valueexpr {$$ = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat($4, NestedText::AtomC(")")) );} | ZZFUN ZZIDENTIFIER {$$ = $2;} | ZZFUN '(' args ')' valueexpr ZZDEFAULTSEP valueexpr { $$ = NestedText::Concat(NestedText::AtomC("(fun "), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($5, NestedText::Concat(NestedText::AtomC(" ) "), NestedText::Concat($7, NestedText::AtomC(" ") )))))); } | ZZFUN '(' ')' valueexpr ZZDEFAULTSEP valueexpr { $$ = NestedText::Concat(NestedText::AtomC(" (fun "), NestedText::Concat($4, NestedText::Concat(NestedText::AtomC(" ) "), NestedText::Concat($6, NestedText::AtomC(" ") )))); } ; arg : ZZNAMING typeexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} ; args : arg {$$ = $1;} | args ',' arg {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3));} ; attribute : ZZATTRABBR { $$ = NestedText::Concat(NestedText::AtomC("(attr "), NestedText::Concat(NestedText::AtomC(params[1]), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::AtomC(")") ))));} ; attribute2 : ZZATTRABBR2 {$$ = NestedText::Concat(NestedText::AtomC("(attr "), NestedText::Concat(NestedText::AtomC(params[2]), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::AtomC(")") ))));} ; constant : ZZINTEGER | ZZREAL | ZZSTRING | ZZTEXT | ZZBOOLEAN ; nestedlist : atom {$$ = $1;} | '(' rest {$$ = NestedText::Concat($1, $2);} ; rest : ')' {$$ = $1;} | atom rest {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $2));} | nestedlist rest {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $2));} ; atom : constant {$$ = $1;} | ZZIDENTIFIER {$$ = $1;} | ZZFILE {$$ = $1;} | ZZTUPLE {$$ = $1;} | ZZGROUP {$$ = $1;} ; list : elems {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::AtomC(")") ));} ; elems : {$$ = NestedText::AtomC("");} | elem {$$ = $1;} | elems ',' elem {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), $3));} ; elem : valueexpr {$$ = $1;} | valueexpr valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($2, NestedText::AtomC(")") ))));} | namedfunction {$$ = $1;} ; naming : ZZNAMING {$$ = $1;} ; valueexprlistcomma : valueexpr { $$ = $1; } | valueexprlistcomma ',' valueexpr {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "),$3)); } ; simplearguments : valueexprlistcomma { $$ = $1; } | { $$ = NestedText::AtomC(" "); } | simplearguments ';' simplearguments {$$ = NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "),$3)); } ; valueexpr : ZZIDENTIFIER {$$ = $1;} | constant {$$ = $1;} | function {$$ = $1;} | ZZIDENTIFIER '(' elems ')' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::AtomC(")") ))));} | attribute {$$ = $1;} | attribute2 {$$ = $1;} | '(' valueexpr ')' {$$ = $2;} | '[' ZZCONST typeexpr2 ZZVALUE nestedlist ']' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($5, NestedText::AtomC(")") ))));} | '[' ZZCONST typeexpr2 ZZPOINTER nestedlist ']' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(" ( ptr"), NestedText::Concat($5, NestedText::AtomC("))") ))));} | '[' list ']' {$$ = $2;} | '.' {$$ = NestedText::AtomC(params[1]);} | ZZSINGLE {$$ = NestedText::AtomC(params[1]);} | ZZDOUBLE {$$ = NestedText::AtomC(params[2]);} | ZZARG3 {$$ = NestedText::AtomC(params[3]);} | ZZARG4 {$$ = NestedText::AtomC(params[4]);} | ZZARG5 {$$ = NestedText::AtomC(params[5]);} | ZZARG6 {$$ = NestedText::AtomC(params[6]);} | ZZARG7 {$$ = NestedText::AtomC(params[7]);} | ZZARG8 {$$ = NestedText::AtomC(params[8]);} | ZZARG9 {$$ = NestedText::AtomC(params[9]);} | ZZTUPLE {$$ = NestedText::AtomC(params[1]);} | ZZGROUP {$$ = NestedText::AtomC(params[1]);} | valueexpr '{' ZZIDENTIFIER '}' {$$ = NestedText::Concat(NestedText::AtomC("(rename"), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::AtomC(")") )))));} | valueexpr '{' ZZINTEGER '}' {$$ = NestedText::Concat(NestedText::AtomC("(counter"), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::AtomC(")") )))));} | valueexpr '{' ZZREAL ',' ZZREAL '}' {$$ = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::AtomC(")") ))))));} | valueexpr '{' ZZREAL ',' ZZINTEGER '}' {$$ = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($5, NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat($1, NestedText::AtomC(")") ))))));} | valueexpr '{' ZZINTEGER ',' ZZREAL '}' {$$ = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat($5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::AtomC(")") ))))));} | valueexpr '{' ZZINTEGER ',' ZZINTEGER '}' {$$ = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat($3, NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat($5, NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat($1, NestedText::AtomC(")") ))))));} | valueexpr '{' ZZMEMORY ZZINTEGER '}' {$$ = NestedText::Concat(NestedText::AtomC("(memory "), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::AtomC(")") )))));} | valueexpr ZZINFIXOP valueexpr {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::AtomC(")") )))))); } | valueexpr ZZINFIXOP_BUF valueexpr {$$ = NestedText::Concat( USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("("), NestedText::Concat($2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")") )))))); } | ZZPREFIXOP '(' valueexprlistcomma ')' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, NestedText::AtomC(")") )))); } | ZZPREFIXOP_BUF '(' valueexprlistcomma ')' {$$ = NestedText::Concat( USE_AUTO_BUFFER? NestedText::AtomC("( ! (") : NestedText::AtomC("("), NestedText::Concat($1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat($3, USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")") )))); } | ZZPREFIXOP '(' ')' {$$ = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat($1, NestedText::AtomC(")") )); } | ZZPREFIXOP_BUF '(' ')' {$$ = NestedText::Concat( USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("("), NestedText::Concat($1, USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")") )); } /* algebra specific part */ /* ~token~ */ | valueexpr ZZPOSTFIXOP1 { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::AtomC(")"))))); } /* ~token~ */ | valueexpr ZZPOSTFIXOP1_a'[' simplearguments ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr valueexpr ZZPOSTFIXOP2_a'[' simplearguments ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZNEST'[' list ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr valueexpr ZZPOSTFIXOP2 { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZSORTBY'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZSORTBYPARAM'[' list ';' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr ZZSORTBYH'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZGDIJKSTRA '[' valueexpr ',' valueexpr ',' valueexpr ',' GDIJKSTRA_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZMINPATHCOST2 '[' valueexpr ',' valueexpr ',' valueexpr ',' MINPATHCOST2_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZGBIDIJKSTRA '[' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ',' GBIDIJKSTRA_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZMTMINPATHCOSTS2 '[' valueexpr ',' valueexpr ',' valueexpr ',' MTMINPATHCOSTS2_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZD_SEND_SHUFFLE '[' D_SEND_SHUFFLE_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZDSHUFFLE '[' DSHUFFLE_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZDSHUFFLE2 '[' DSHUFFLE2_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZDSHUFFLE1 '[' DSHUFFLE1_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZDLOOP_OLD '[' DLOOP_OLD_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZDLOOPA_OLD '[' DLOOPA_OLD_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZDTIE '[' DTIE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZPARTITIONDMAP '[' valueexpr ',' PARTITIONDMAP_fun ',' valueexpr ',' PARTITIONDMAP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDMAPPDMAP '[' valueexpr ',' DMAPPDMAP_fun ',' DMAPPDMAP_fun ',' valueexpr ',' DMAPPDMAP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZFDISTRIBUTE2TES '[' valueexpr ',' FDISTRIBUTE2TES_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDISTRIBUTE2TES '[' valueexpr ',' DISTRIBUTE2TES_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZCOLLECTPC2'[' valueexpr ',' valueexpr ',' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr ZZOPTICSR'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZOPTICSM'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZOPTICSF '[' valueexpr ',' valueexpr ',' valueexpr ',' OPTICSF_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZOPTICSTF '[' valueexpr ',' valueexpr ',' OPTICSTF_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZFILTERV '[' FILTERV_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZFILTERNP '[' FILTERNP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZEXTENDV '[' EXTENDV_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZPROJECTEXTENDV '[' list ';' PROJECTEXTENDV_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZEXTENDNP '[' EXTENDNP_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZPROJECTEXTENDNP '[' list ';' PROJECTEXTENDNP_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZDBDACSCAN'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr valueexpr ZZDISTSAMP'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZAPPLYPREDICATE '[' APPLYPREDICATE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZFEEDPROJECT'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZFILTER '[' FILTER_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))); } /* ~token~ */ | valueexpr ZZCFILTER '[' CFILTER_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))))))); } /* ~token~ */ | valueexpr ZZCAND '[' CAND_fun ',' CAND_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZCOR '[' COR_fun ',' COR_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZWITHIN '[' WITHIN_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZWITHIN2 '[' WITHIN2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZWHILEDO '[' WHILEDO_fun ';' WHILEDO_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZFUNSEQ1 '[' FUNSEQ1_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZFUNSEQ2 '[' FUNSEQ2_fun ',' FUNSEQ2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZFUNSEQ3 '[' FUNSEQ3_fun ',' FUNSEQ3_fun ',' FUNSEQ3_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZFUNSEQ4 '[' FUNSEQ4_fun ',' FUNSEQ4_fun ',' FUNSEQ4_fun ',' FUNSEQ4_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZFUNSEQ5 '[' FUNSEQ5_fun ',' FUNSEQ5_fun ',' FUNSEQ5_fun ',' FUNSEQ5_fun ',' FUNSEQ5_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZFUNSEQ6 '[' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZDDISTRIBUTE4 '[' valueexpr ',' DDISTRIBUTE4_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZFDISTRIBUTE7 '[' valueexpr ',' FDISTRIBUTE7_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDLOOP '[' valueexpr ',' DLOOP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZDLOOP2 '[' valueexpr ',' DLOOP2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZDMAP '[' valueexpr ',' DMAP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZPDMAP '[' valueexpr ',' PDMAP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZDMAP2n '[' valueexpr ',' DMAP2n_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZDMAP2 '[' valueexpr ',' DMAP2_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZDMAP3 '[' valueexpr ',' DMAP3_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr ZZDMAP4 '[' valueexpr ',' DMAP4_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP5 '[' valueexpr ',' DMAP5_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP6 '[' valueexpr ',' DMAP6_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::AtomC(")")) ))))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP7 '[' valueexpr ',' DMAP7_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP8 '[' valueexpr ',' DMAP8_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $15, NestedText::AtomC(")")) ))))))))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZPDMAP2 '[' valueexpr ',' PDMAP2_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr ZZPDMAP3 '[' valueexpr ',' PDMAP3_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP4 '[' valueexpr ',' PDMAP4_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP5 '[' valueexpr ',' PDMAP5_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::AtomC(")")) ))))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP6 '[' valueexpr ',' PDMAP6_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP7 '[' valueexpr ',' PDMAP7_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $15, NestedText::AtomC(")")) ))))))))))))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP8 '[' valueexpr ',' PDMAP8_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $16, NestedText::AtomC(")")) ))))))))))))))))))))))))); } /* ~token~ */ | valueexpr ZZDFDISTRIBUTE4 '[' valueexpr ',' DFDISTRIBUTE4_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPARTITION '[' valueexpr ',' PARTITION_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZPARTITIONF '[' valueexpr ',' PARTITIONF_fun ',' PARTITIONF_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZAREDUCE '[' valueexpr ',' AREDUCE_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZAREDUCE2 '[' valueexpr ',' AREDUCE2_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZAREDUCE2F '[' valueexpr ',' AREDUCE2F_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZDPRODUCT '[' valueexpr ',' DPRODUCT_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDDISTRIBUTE '[' valueexpr ',' DDISTRIBUTE_fun ',' DDISTRIBUTE_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZDFDISTRIBUTE '[' valueexpr ',' DFDISTRIBUTE_fun ',' DFDISTRIBUTE_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZPARTITION8LOCAL '[' PARTITION8LOCAL_fun ',' PARTITION8LOCAL_fun ',' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $16, NestedText::AtomC(")")) ))))))))))))))))); } /* ~token~ */ | valueexpr ZZPARTITIONF8 '[' valueexpr ',' PARTITIONF8_fun ',' PARTITIONF8_fun ',' PARTITIONF8_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZLOOPJOINREL '[' LOOPJOINREL_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZCONSTGRAPH '[' valueexpr ',' valueexpr ',' CONSTGRAPH_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZCONSTGRAPHPOINTS '[' valueexpr ',' valueexpr ',' CONSTGRAPHPOINTS_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZTRANSLATE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZPOSTFIXOP3_a'[' simplearguments ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZEXISTS '[' EXISTS_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZFORALL '[' FORALL_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZPOSTFIXOP3 { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZPARAJOIN '[' PARAJOIN_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZFCONSUME'[' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZFFEED'[' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZHADOOPJOIN '[' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ';' list ';' HADOOPJOIN_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $11, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $13, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $15, NestedText::AtomC(")")) ))))))))))))))))); } /* ~token~ */ | valueexpr ZZFDISTRIBUTE'[' list ';' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr ZZFFEED2'[' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZFCONSUME3'[' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZFFEED3'[' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZFETCHFLOB'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZFDISTRIBUTE3'[' list ';' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr ZZMOCONSUME'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMOCONSUMEFLOB'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMINSERTTUPLE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMINSERTTUPLESAVE'[' list ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZMUPDATE '[' valueexpr ';' MUPDATE_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZMUPDATESAVE '[' valueexpr ',' valueexpr ';' MUPDATESAVE_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZMUPDATEBYID '[' valueexpr ';' MUPDATEBYID_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZMUPDATEDIRECT2 '[' valueexpr ';' MUPDATEDIRECT2_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZMORANGE'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZMOLEFTRANGE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMORIGHTRANGE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMOSHORTESTPATHD '[' valueexpr ',' valueexpr ',' valueexpr ';' MOSHORTESTPATHD_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZMOSHORTESTPATHA '[' valueexpr ',' valueexpr ',' valueexpr ';' MOSHORTESTPATHA_fun ',' MOSHORTESTPATHA_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZMQUICKSORTBY'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMGSHORTESTPATHD '[' valueexpr ',' valueexpr ',' valueexpr ';' MGSHORTESTPATHD_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZMGSHORTESTPATHA '[' valueexpr ',' valueexpr ',' valueexpr ';' MGSHORTESTPATHA_fun ',' MGSHORTESTPATHA_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZMINSERTTUPLEPQPROJECTU'[' valueexpr ',' valueexpr ',' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr ZZMINSERTTUPLEPQPROJECT'[' valueexpr ',' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZMPQREORDER '[' MPQREORDER_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZMPQREORDERUPDATE '[' MPQREORDERUPDATE_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZCREATEMGRAPH2 '[' valueexpr ',' valueexpr ',' CREATEMGRAPH2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZCREATEMGRAPH2FLOB '[' valueexpr ',' valueexpr ',' CREATEMGRAPH2FLOB_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZMG2INSERTORIG '[' valueexpr ',' valueexpr ',' MG2INSERTORIG_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZMEMGROUPBY '[' list ';' MEMGROUPBY_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZMMERGEJOINPROJECT'[' valueexpr ',' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr ZZPUSE '[' PUSE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZPJOIN2 '[' PJOIN2_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZPJOIN1 '[' valueexpr ';' PJOIN1_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZEXTENDITEMNAMES'[' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZSORTARRAY '[' SORTARRAY_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZTIE '[' TIE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZCUMULATE '[' CUMULATE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZLOOP '[' LOOP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZLOOPA '[' LOOPA_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZLOOPB '[' LOOPB_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZLOOPSWITCH '[' LOOPSWITCH_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZLOOPSWITCHA '[' LOOPSWITCHA_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZLOOPSWITCHB '[' LOOPSWITCHB_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZLOOPSELECT '[' LOOPSELECT_funlist ';' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZLOOPSELECTA '[' LOOPSELECTA_funlist ';' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZLOOPSELECTB '[' LOOPSELECTB_funlist ';' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZPARTJOIN '[' PARTJOIN_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZPARTJOINSWITCH '[' PARTJOINSWITCH_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZPARTJOINSELECT '[' PARTJOINSELECT_funlist ';' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZEXTEND '[' EXTEND_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZPARAJOIN2 '[' valueexpr ',' valueexpr ';' PARAJOIN2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDRELFILTER '[' DRELFILTER_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZDRELEXTEND '[' DRELEXTEND_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZDRELPROJECTEXTEND '[' list ';' DRELPROJECTEXTEND_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZPROJECT'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZLSORTBY'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZDRELLGROUPBY '[' list ';' DRELLGROUPBY_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZDRELGROUPBY '[' list ';' DRELGROUPBY_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZDRELINSERTTUPLE'[' list ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr valueexpr ZZDRELUPDATE '[' DRELUPDATE_funlist ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZDRELUPDATEBYID '[' valueexpr ';' DRELUPDATEBYID_funlist ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDRELFILTERADDID '[' DRELFILTERADDID_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZDRELFILTERDELETE '[' DRELFILTERDELETE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZDRELFILTERUPDATE '[' DRELFILTERUPDATE_fun ';' DRELFILTERUPDATE_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZDBSCANR'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZDBSCANM'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZDBSCANF '[' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ',' DBSCANF_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZDBSCANTF '[' valueexpr ',' valueexpr ',' valueexpr ',' DBSCANTF_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPFILTERS '[' valueexpr ',' valueexpr ',' valueexpr ',' PFILTERS_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPEXTEND '[' valueexpr ',' valueexpr ',' valueexpr ';' PEXTEND_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPEXTENDSTREAM '[' valueexpr ',' valueexpr ',' valueexpr ';' PEXTENDSTREAM_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPLOOPSEL '[' valueexpr ',' valueexpr ',' valueexpr ',' PLOOPSEL_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPLOOPJOIN '[' valueexpr ',' valueexpr ',' valueexpr ',' PLOOPJOIN_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZPAGGREGATE '[' valueexpr ',' valueexpr ',' valueexpr ';' PAGGREGATE_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZPAGGREGATEB '[' valueexpr ',' valueexpr ',' valueexpr ';' PAGGREGATEB_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZPSORTBY'[' valueexpr ',' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr ZZPOSTFIXOP4_a'[' simplearguments ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")"))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPOSTFIXOP6_a'[' simplearguments ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")"))))))))))))))))); } /* ~token~ */ | valueexpr ZZAGGREGATES '[' AGGREGATES_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZUSE '[' USE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZUSE2 '[' USE2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZTS '[' TS_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZAS '[' AS_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZstreamfun '[' streamfun_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZprog '[' prog_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSYNC '[' SYNC_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZSideEffect '[' SideEffect_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZTRANSLATE_GROOM'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZOLEFTRANGE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZORIGHTRANGE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZORANGE'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZOSHORTESTPATHD '[' valueexpr ',' valueexpr ',' valueexpr ';' OSHORTESTPATHD_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZOSHORTESTPATHA '[' valueexpr ',' valueexpr ',' valueexpr ';' OSHORTESTPATHA_fun ',' OSHORTESTPATHA_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZREAD2 '[' READ2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZREAD3 '[' READ3_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZRDERIVE '[' valueexpr ',' RDERIVE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZREAD3_1 '[' READ3_1_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZREAD3_2 '[' READ3_2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZFILTERX '[' FILTERX_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZINSERTTUPLE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr valueexpr ZZINSERTTUPLESAVE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr valueexpr ZZUPDATESEARCH '[' UPDATESEARCH_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZUPDATEDIRECT '[' UPDATEDIRECT_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZUPDATEDIRECT2 '[' valueexpr ';' UPDATEDIRECT2_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZUPDATEBYID2 '[' valueexpr ';' UPDATEBYID2_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZUPDATESEARCHSAVE '[' UPDATESEARCHSAVE_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZUPDATEDIRECTSAVE '[' UPDATEDIRECTSAVE_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZUPDATEBYID '[' valueexpr ';' UPDATEBYID_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZFILTERINSERT '[' FILTERINSERT_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZCPROJECTEXTEND '[' list ';' CPROJECTEXTEND_funlist ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } /* ~token~ */ | valueexpr ZZMAP '[' MAP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr valueexpr ZZMAP2 '[' MAP2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZMATCHGRID '[' valueexpr ',' MATCHGRID_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZREPLACEELEM '[' REPLACEELEM_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZGROUPBY2 '[' list ';' GROUPBY2_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSPREAD'[' list ';' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZCOLLECT'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZHADOOPMAP '[' list ';' HADOOPMAP_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZHADOOPREDUCE '[' list ';' HADOOPREDUCE_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZHADOOPREDUCE2 '[' list ';' HADOOPREDUCE2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZPFFEED'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZPFFEED2'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZPFFEED3'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr valueexpr ZZHADOOPMAP2 '[' list ';' HADOOPMAP2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZREPORTPATTERN'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZGPATTERN '[' GPATTERN_fun ',' GPATTERN_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr ZZCROSSPATTERN '[' CROSSPATTERN_fun ',' CROSSPATTERN_fun ',' CROSSPATTERN_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $12, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $14, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr ZZMTHREADEDMERGESORT'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZMTHREADEDFILTER '[' MTHREADEDFILTER_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))); } /* ~token~ */ | valueexpr ZZCANCEL '[' CANCEL_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZKRDUP'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZPROJECTEXTEND '[' list ';' PROJECTEXTEND_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZEXTENDSTREAM '[' EXTENDSTREAM_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZPROJECTEXTENDSTREAM '[' list ';' PROJECTEXTENDSTREAM_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZGROUPBY '[' list ';' GROUPBY_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSLIDINGWINDOW '[' valueexpr ',' valueexpr ';' SLIDINGWINDOW_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZSORTBYOLD'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr valueexpr ZZPOSTFIXOP2_a_autobuffer'[' simplearguments ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER? NestedText::AtomC("( ! (") : NestedText::AtomC("(")) , NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, (USE_AUTO_BUFFER? NestedText::AtomC("))") : NestedText::AtomC(")")))))))))); } /* ~token~ */ | valueexpr ZZLOOPJOIN '[' LOOPJOIN_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))); } /* ~token~ */ | valueexpr ZZLOOPSEL '[' LOOPSEL_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZAGGREGATE '[' valueexpr ';' AGGREGATE_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZAGGREGATEB '[' valueexpr ';' AGGREGATEB_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZSYMMJOIN '[' SYMMJOIN_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZSYMMOUTERJOIN '[' SYMMOUTERJOIN_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZSYMMPRODUCTEXTEND '[' SYMMPRODUCTEXTEND_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZKSMALLEST'[' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZKBIGGEST'[' valueexpr ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZEXTEND_AGGR'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZEXTEND_LAST '[' EXTEND_LAST_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZEXTEND_NEXT '[' EXTEND_NEXT_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZREPLACEATTR '[' REPLACEATTR_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZPFILTER '[' PFILTER_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZEXTENDX '[' list ';' EXTENDX_fun ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZOBOJOIND'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZISORDEREDBY'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZADDMODCOUNTER '[' valueexpr ',' valueexpr ',' ADDMODCOUNTER_fun ',' ADDMODCOUNTER_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZUSEHISTOGRAM '[' list ';' USEHISTOGRAM_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZUSEHISTOGRAM2 '[' list ';' USEHISTOGRAM2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZDMAPS '[' valueexpr ',' DMAPS_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr valueexpr ZZDMAPS2 '[' valueexpr ',' DMAPS2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr ZZDMAPS3 '[' valueexpr ',' DMAPS3_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr ZZDMAPS4 '[' valueexpr ',' DMAPS4_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $9, NestedText::AtomC(")")) ))))))))))))); } /* ~token~ */ | valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAPS5 '[' valueexpr ',' DMAPS5_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))))))); } /* ~token~ */ | valueexpr valueexpr ZZDPRODUCTS '[' valueexpr ',' DPRODUCTS_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZPARTITIONFS '[' valueexpr ',' PARTITIONFS_fun ',' PARTITIONFS_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $10, NestedText::AtomC(")")) ))))))))))); } /* ~token~ */ | valueexpr ZZDBSCAN '[' DBSCAN_fun ',' valueexpr ',' valueexpr ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZREGISTERFORSTREAM '[' valueexpr ',' REGISTERFORSTREAM_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $7, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZNEST2'[' list ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZPREDCOUNTS '[' PREDCOUNTS_funlist ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")")) ))))); } /* ~token~ */ | valueexpr ZZSTPATTERN'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERN2'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEX'[' list ';' list ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEX2'[' list ';' list ';' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")"))))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXTEND '[' STPATTERNEXTEND_funlist ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXTEND2 '[' STPATTERNEXTEND2_funlist ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXEXTEND '[' STPATTERNEXEXTEND_funlist ';' list ';' STPATTERNEXEXTEND_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXEXTEND2 '[' STPATTERNEXEXTEND2_funlist ';' list ';' STPATTERNEXEXTEND2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXTENDSTREAM '[' STPATTERNEXTENDSTREAM_funlist ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXTENDSTREAM2 '[' STPATTERNEXTENDSTREAM2_funlist ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXEXTENDSTREAM '[' STPATTERNEXEXTENDSTREAM_funlist ';' list ';' STPATTERNEXEXTENDSTREAM_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZSTPATTERNEXEXTENDSTREAM2 '[' STPATTERNEXEXTENDSTREAM2_funlist ';' list ';' STPATTERNEXEXTENDSTREAM2_fun ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, NestedText::AtomC(")")) ))))))))); } /* ~token~ */ | valueexpr ZZCOMPUTECLOSURE'[' list ';' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")"))))))))); } /* ~token~ */ | valueexpr ZZOCONSUME'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZREMOVE'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZREDUCE '[' REDUCE_fun ',' valueexpr ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::AtomC(")")) ))))))); } /* ~token~ */ | valueexpr ZZRENAMEATTR'[' list ']' { $$ = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::AtomC(")"))))))); } /* ~token~ */ | valueexpr ZZTSMOTIFBFFUN '[' valueexpr ',' valueexpr ',' TSMOTIFBFFUN_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $4, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $6, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $8, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))))); } /* ~token~ */ | valueexpr valueexpr ZZTSDISTANCEFUN '[' TSDISTANCEFUN_fun ']' { $$ = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( $3, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $1, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $2, NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( $5, (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } ; /* ~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; } ; %%