18366 lines
492 KiB
Plaintext
18366 lines
492 KiB
Plaintext
/*
|
|
----
|
|
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 <cstdio>
|
|
#include <string>
|
|
#include <string.h>
|
|
#include <stack>
|
|
#include <utility>
|
|
|
|
#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<pair<int,string> > paramstack;
|
|
|
|
extern void yyerror( const char* s );
|
|
|
|
void cleanVariables(int max){
|
|
if(maxparams<max) max = maxparams;
|
|
for(int i=0;i<max;i++){
|
|
strcpy(params[i],"");
|
|
}
|
|
}
|
|
|
|
void emptystack(){
|
|
while(!paramstack.empty())
|
|
paramstack.pop();
|
|
cleanVariables(maxparams);
|
|
}
|
|
|
|
|
|
void restoreVariables(){
|
|
stack<pair<int,string> > tmpstack;
|
|
while(!paramstack.empty()){
|
|
pair<int,string> t = paramstack.top();
|
|
tmpstack.push(t);
|
|
paramstack.pop();
|
|
}
|
|
while(!tmpstack.empty()){
|
|
pair<int,string> 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 <type> value <value-list>]
|
|
|
|
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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"argument1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"argument2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"argument1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"argument2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"blockentry");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"block");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"block");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"const1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"const1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"const2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"const1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"darrayelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"dmapelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmapslotno");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"dmapelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmapslotno");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmapslotno");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5i");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[7], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(7, params[7]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem7");
|
|
sprintf(params[7], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(7, params[7]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[8], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(8, params[8]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem7");
|
|
sprintf(params[7], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(7, params[7]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem8");
|
|
sprintf(params[8], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(8, params[8]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[9], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(9, params[9]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4i");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5i");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[7], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(7, params[7]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem7");
|
|
sprintf(params[7], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(7, params[7]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[8], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(8, params[8]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem6");
|
|
sprintf(params[6], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(6, params[6]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem7");
|
|
sprintf(params[7], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(7, params[7]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem8");
|
|
sprintf(params[8], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(8, params[8]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"dmslotno");
|
|
sprintf(params[9], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(9, params[9]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"stream1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"stream2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"stream1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"stream2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"tuple2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"mgroup");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"left");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"right");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"left");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"right");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"first");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"second");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"stream1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"stream2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"argument1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"argument2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"streamelem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"arg1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"arg2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"arg1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"arg2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"streamelem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"streamelem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"countelem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"streamelem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"tuple2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"tuple2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lobject1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lobject1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lobject1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"lobject2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lobject1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"lobject2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"group");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"group");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"argument1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"argument2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"argument1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"argument2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lefttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"righttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lefttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"righttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lefttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"righttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"currenttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"lasttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"currenttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"lasttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"currenttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"lasttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"value");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"element1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"element2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"dmapelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem3");
|
|
sprintf(params[3], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(3, params[3]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem4");
|
|
sprintf(params[4], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(4, params[4]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem5");
|
|
sprintf(params[5], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(5, params[5]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"elem2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"arg1");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"arg2");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"elem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"streamelem");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"tuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lefttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"righttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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<int,string> p;
|
|
paramno++;
|
|
strcpy(paramname,"lefttuple");
|
|
sprintf(params[1], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(1, params[1]);
|
|
paramstack.push(p);
|
|
paramno++;
|
|
strcpy(paramname,"righttuple");
|
|
sprintf(params[2], "%s_%d",paramname,paramno);
|
|
p = pair<int,string>(2, params[2]);
|
|
paramstack.push(p);
|
|
}
|
|
valueexpr
|
|
{
|
|
pair<int,string> 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; }
|
|
;
|
|
|
|
|
|
%%
|
|
|