|
FAUST compiler
0.9.9.6b8
|
#include <iostream>#include <map>#include <list>#include <string>#include "sourcereader.hh"#include "enrobage.hh"#include "ppbox.hh"
Go to the source code of this file.
Functions | |
| int | yyparse () |
| static bool | standardArgList (Tree args) |
| Checks an argument list for containing only standard identifiers, no patterns and is linear. | |
| static void | printPatternError (Tree lhs1, Tree rhs1, Tree lhs2, Tree rhs2) |
| Tree | checkRulelist (Tree lr) |
| static Tree | makeDefinition (list< Tree > &variants) |
| Transforms a list of variants (arglist.body) into an abstraction or a boxCase. | |
| Tree | formatDefinitions (Tree rldef) |
| Formats a list of raw definitions represented by triplets <name,arglist,body> into abstractions or pattern matching rules when appropriate. | |
| void | declareMetadata (Tree key, Tree value) |
| void | declareDoc (Tree t) |
Variables | |
| map< Tree, set< Tree > > | gMetaDataSet |
| string | gMasterDocument |
| vector< Tree > | gDocVector |
| Contains <mdoc> parsed trees: DOCTXT, DOCEQN, DOCDGM. | |
| bool | gLatexDocSwitch |
| int | yyerr |
| int | yydebug |
| FILE * | yyin |
| int | yylineno |
| const char * | yyfilename |
| Tree | gResult |
| Tree | gResult2 |
| Tree checkRulelist | ( | Tree | lr | ) |
Definition at line 73 of file sourcereader.cpp.
References hd(), isNil(), len(), printPatternError(), and tl().
Referenced by yyparse().
{
Tree lrules = lr;
if (isNil(lrules)) { cerr << "ERROR : a case expression can't be empty" << endl; exit(1); }
// first pattern used as a reference
Tree lhs1 = hd(hd(lrules));
Tree rhs1 = tl(hd(lrules));
int npat = len(lhs1);
lrules = tl(lrules);
while (! isNil(lrules)) {
Tree lhs2 = hd(hd(lrules));
Tree rhs2 = tl(hd(lrules));
if (npat != len(lhs2)) {
printPatternError(lhs1,rhs1,lhs2,rhs2);
exit(1);
}
lhs1 = lhs2;
rhs1 = rhs2;
lrules = tl(lrules);
}
return lr;
}


| void declareDoc | ( | Tree | t | ) |
Definition at line 318 of file sourcereader.cpp.
References gDocVector.
Referenced by declareAutoDoc(), and yyparse().
{
//gLatexDocSwitch = true;
gDocVector.push_back(t);
}

| void declareMetadata | ( | Tree | key, |
| Tree | value | ||
| ) |
Definition at line 303 of file sourcereader.cpp.
References gMasterDocument, gMetaDataSet, tree(), tree2str(), and yyfilename.
Referenced by yyparse().
{
if (gMasterDocument == yyfilename) {
// inside master document, no prefix needed to declare metadata
gMetaDataSet[key].insert(value);
} else {
string fkey(yyfilename);
fkey += "/";
fkey += tree2str(key);
gMetaDataSet[tree(fkey.c_str())].insert(value);
}
//cout << "Master " << gMasterDocument << ", file " << yyfilename << " : declare " << *key << "," << *value << endl;
}


| Tree formatDefinitions | ( | Tree | rldef | ) |
Formats a list of raw definitions represented by triplets <name,arglist,body> into abstractions or pattern matching rules when appropriate.
| rldef | list of raw definitions in reverse order |
Definition at line 146 of file sourcereader.cpp.
References cons(), hd(), isImportFile(), isNil(), makeDefinition(), nil, and tl().
Referenced by yyparse().
{
map<Tree,list<Tree> > dic;
map<Tree,list<Tree> >::iterator p;
Tree ldef2 = nil;
Tree file;
//cout << "Format definitions " << *rldef << endl;
// collects the definitions in a dictionnary
while (!isNil(rldef)) {
Tree def = hd(rldef);
rldef = tl(rldef);
if (isImportFile(def, file)) {
ldef2 = cons(def,ldef2);
} else if (!isNil(def)) {
//cout << " def : " << *def << endl;
dic[hd(def)].push_front(tl(def));
}
}
// produce the definitions
for (p=dic.begin(); p!=dic.end(); p++) {
ldef2 = cons (cons(p->first, makeDefinition(p->second)), ldef2);
}
//cout << "list of definitions : " << *ldef2 << endl;
return ldef2;
}


| static Tree makeDefinition | ( | list< Tree > & | variants | ) | [static] |
Transforms a list of variants (arglist.body) into an abstraction or a boxCase.
| variants | list of variants (arglist.body) |
Definition at line 104 of file sourcereader.cpp.
References boxCase(), buildBoxAbstr(), cons(), hd(), isNil(), len(), nil, printPatternError(), standardArgList(), and tl().
Referenced by formatDefinitions().
{
if (variants.size() == 1) {
Tree rhs = *(variants.begin());
Tree args= hd(rhs);
Tree body= tl(rhs);
if (isNil(args)) {
return body;
} else if (standardArgList(args)) {
return buildBoxAbstr(args, body);
} else {
return boxCase(cons(rhs,nil));
}
} else {
list<Tree>::iterator p;
Tree l = nil;
Tree prev = *variants.begin();
int npat = len(hd(prev));
for (p=variants.begin(); p!=variants.end(); p++) {
Tree cur = *p;
if (npat != len(hd(cur))) {
printPatternError(hd(prev), tl(prev), hd(cur), tl(cur));
exit(1);
}
prev = cur;
l = cons(*p,l);
}
return boxCase(l);
}
}


| static void printPatternError | ( | Tree | lhs1, |
| Tree | rhs1, | ||
| Tree | lhs2, | ||
| Tree | rhs2 | ||
| ) | [static] |
Definition at line 64 of file sourcereader.cpp.
References reverse().
Referenced by checkRulelist(), and makeDefinition().
{
cerr << "ERROR : inconsistent number of parameters in pattern-matching rule: "
<< boxpp(reverse(lhs2)) << " => " << boxpp(rhs2) << ";"
<< " previous rule was: "
<< boxpp(reverse(lhs1)) << " => " << boxpp(rhs1) << ";"
<< endl;
}


| static bool standardArgList | ( | Tree | args | ) | [static] |
Checks an argument list for containing only standard identifiers, no patterns and is linear.
| args | the argument list to check |
Definition at line 52 of file sourcereader.cpp.
References hd(), isBoxIdent(), isList(), and tl().
Referenced by makeDefinition().
{
map<Tree,int> L;
while (isList(args)) {
if (!isBoxIdent(hd(args))) return false;
if (++L[hd(args)] > 1) return false;
args = tl(args);
}
return true;
}


| int yyparse | ( | ) |
Definition at line 1683 of file faustparser.cpp.
References YYSTYPE::b, xtended::box(), boxAccess(), boxButton(), boxCase(), boxCheckbox(), boxComponent(), boxCut(), boxEnvironment(), boxFConst(), boxFFun(), boxFVar(), boxHBargraph(), boxHGroup(), boxHSlider(), boxIdent(), boxInt(), boxIPar(), boxIProd(), boxISeq(), boxISum(), boxLibrary(), boxMerge(), boxModifLocalDef(), boxNumEntry(), boxPar(), boxPrim1(), boxPrim2(), boxPrim3(), boxPrim4(), boxPrim5(), boxReal(), boxRec(), boxSeq(), boxSplit(), boxTGroup(), boxVBargraph(), boxVGroup(), boxVSlider(), boxWire(), boxWithLocalDef(), buildBoxAbstr(), buildBoxAppl(), checkRulelist(), cons(), YYSTYPE::cppstr, declareDoc(), declareMetadata(), docDgm(), docEqn(), docLst(), docMtd(), docNtc(), docTxt(), YYSTYPE::exp, ffunction(), formatDefinitions(), gAbsPrim, gAcosPrim, gAsinPrim, gAtan2Prim, gAtanPrim, gCeilPrim, gCosPrim, gExpPrim, gFloorPrim, gFmodPrim, gLog10Prim, gLogPrim, gLstDependenciesSwitch, gLstDistributedSwitch, gMaxPrim, gMinPrim, gPowPrim, gRemainderPrim, gResult, gRintPrim, gSinPrim, gSqrtPrim, gStripDocSwitch, gTanPrim, importFile(), nil, setDefProp(), sigAdd(), sigAND(), sigAttach(), sigDelay1(), sigDiv(), sigEQ(), sigFixDelay(), sigFloatCast(), sigGE(), sigGT(), sigIntCast(), sigLE(), sigLeftShift(), sigLT(), sigMul(), sigNE(), sigOR(), sigPrefix(), sigReadOnlyTable(), sigRem(), sigRightShift(), sigSelect2(), sigSelect3(), sigSub(), sigWriteReadTable(), sigXOR(), tree(), unquote(), YY_, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, yyalloc(), yycheck, yydefact, yydefgoto, YYDPRINTF, YYEMPTY, YYEOF, yyerr, yyerror(), yyfilename, YYFINAL, YYID, YYINITDEPTH, YYLAST, YYLEX, yylineno, yylval, YYMAXDEPTH, yynerrs, YYNTOKENS, yypact, YYPACT_NINF, yypgoto, YYPOPSTACK, yyr1, yyr2, YYSIZE_T, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_ALLOC_MAXIMUM, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yystos, yytable, YYTABLE_NINF, YYTERROR, yytext, YYTRANSLATE, and yyalloc::yyvs_alloc.
{
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* The stacks and their tools:
`yyss': related to states.
`yyvs': related to semantic values.
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss;
yytype_int16 *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs;
YYSTYPE *yyvsp;
YYSIZE_T yystacksize;
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
int yytoken;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
yytoken = 0;
yyss = yyssa;
yyvs = yyvsa;
yystacksize = YYINITDEPTH;
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss;
yyvsp = yyvs;
goto yysetstate;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
yysetstate:
*yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp)
{
/* Get the current used size of the three stacks, in elements. */
YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
yyss = yyss1;
yyvs = yyvs1;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
goto yyexhaustedlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
if (yystate == YYFINAL)
YYACCEPT;
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
yybackup:
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
}
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
/* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the shifted token. */
yychar = YYEMPTY;
yystate = yyn;
*++yyvsp = yylval;
goto yynewstate;
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
goto yyreduce;
/*-----------------------------.
| yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
/* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action:
`$$ = $1'.
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen];
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 2:
/* Line 1455 of yacc.c */
#line 301 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); gResult = formatDefinitions((yyval.exp)); ;}
break;
case 3:
/* Line 1455 of yacc.c */
#line 304 "parser/faustparser.y"
{ (yyval.exp) = nil; ;}
break;
case 4:
/* Line 1455 of yacc.c */
#line 305 "parser/faustparser.y"
{ (yyval.exp) = cons ((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
break;
case 5:
/* Line 1455 of yacc.c */
#line 307 "parser/faustparser.y"
{ (yyval.exp) = nil; ;}
break;
case 6:
/* Line 1455 of yacc.c */
#line 308 "parser/faustparser.y"
{ (yyval.exp) = cons ((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
break;
case 7:
/* Line 1455 of yacc.c */
#line 311 "parser/faustparser.y"
{ (yyval.exp) = importFile((yyvsp[(3) - (5)].exp)); ;}
break;
case 8:
/* Line 1455 of yacc.c */
#line 312 "parser/faustparser.y"
{ declareMetadata((yyvsp[(2) - (4)].exp),(yyvsp[(3) - (4)].exp)); (yyval.exp) = nil; ;}
break;
case 9:
/* Line 1455 of yacc.c */
#line 313 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 10:
/* Line 1455 of yacc.c */
#line 314 "parser/faustparser.y"
{ declareDoc((yyvsp[(2) - (3)].exp)); (yyval.exp) = nil; /* cerr << "Yacc : doc : " << *$2 << endl; */ ;}
break;
case 11:
/* Line 1455 of yacc.c */
#line 317 "parser/faustparser.y"
{ (yyval.exp) = nil; ;}
break;
case 12:
/* Line 1455 of yacc.c */
#line 318 "parser/faustparser.y"
{ (yyval.exp) = cons ((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
break;
case 13:
/* Line 1455 of yacc.c */
#line 321 "parser/faustparser.y"
{ (yyval.exp) = docTxt((yyvsp[(1) - (1)].cppstr)->c_str()); delete (yyvsp[(1) - (1)].cppstr); ;}
break;
case 14:
/* Line 1455 of yacc.c */
#line 322 "parser/faustparser.y"
{ (yyval.exp) = docEqn((yyvsp[(1) - (1)].exp)); ;}
break;
case 15:
/* Line 1455 of yacc.c */
#line 323 "parser/faustparser.y"
{ (yyval.exp) = docDgm((yyvsp[(1) - (1)].exp)); ;}
break;
case 16:
/* Line 1455 of yacc.c */
#line 324 "parser/faustparser.y"
{ (yyval.exp) = docNtc(); ;}
break;
case 17:
/* Line 1455 of yacc.c */
#line 325 "parser/faustparser.y"
{ (yyval.exp) = docLst(); ;}
break;
case 18:
/* Line 1455 of yacc.c */
#line 326 "parser/faustparser.y"
{ (yyval.exp) = docMtd((yyvsp[(1) - (1)].exp)); ;}
break;
case 19:
/* Line 1455 of yacc.c */
#line 329 "parser/faustparser.y"
{ (yyval.cppstr) = new string(); ;}
break;
case 20:
/* Line 1455 of yacc.c */
#line 330 "parser/faustparser.y"
{ (yyval.cppstr) = &((yyvsp[(1) - (2)].cppstr)->append(yytext)); ;}
break;
case 21:
/* Line 1455 of yacc.c */
#line 333 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(2) - (3)].exp); ;}
break;
case 22:
/* Line 1455 of yacc.c */
#line 336 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(2) - (3)].exp); ;}
break;
case 23:
/* Line 1455 of yacc.c */
#line 339 "parser/faustparser.y"
{ ;}
break;
case 24:
/* Line 1455 of yacc.c */
#line 342 "parser/faustparser.y"
{ ;}
break;
case 25:
/* Line 1455 of yacc.c */
#line 345 "parser/faustparser.y"
{ ;}
break;
case 26:
/* Line 1455 of yacc.c */
#line 346 "parser/faustparser.y"
{ ;}
break;
case 27:
/* Line 1455 of yacc.c */
#line 349 "parser/faustparser.y"
{ gLstDependenciesSwitch = (yyvsp[(4) - (5)].b); ;}
break;
case 28:
/* Line 1455 of yacc.c */
#line 350 "parser/faustparser.y"
{ gStripDocSwitch = (yyvsp[(4) - (5)].b); gStripDocSwitch==true ? gStripDocSwitch=false : gStripDocSwitch=true; ;}
break;
case 29:
/* Line 1455 of yacc.c */
#line 351 "parser/faustparser.y"
{ gLstDistributedSwitch = (yyvsp[(4) - (5)].b); ;}
break;
case 30:
/* Line 1455 of yacc.c */
#line 354 "parser/faustparser.y"
{ (yyval.b) = true; ;}
break;
case 31:
/* Line 1455 of yacc.c */
#line 355 "parser/faustparser.y"
{ (yyval.b) = false; ;}
break;
case 32:
/* Line 1455 of yacc.c */
#line 358 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(2) - (3)].exp); ;}
break;
case 33:
/* Line 1455 of yacc.c */
#line 361 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (7)].exp),cons((yyvsp[(3) - (7)].exp),(yyvsp[(6) - (7)].exp))); ;}
break;
case 34:
/* Line 1455 of yacc.c */
#line 362 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (4)].exp),cons(nil,(yyvsp[(3) - (4)].exp))); ;}
break;
case 35:
/* Line 1455 of yacc.c */
#line 363 "parser/faustparser.y"
{ (yyval.exp) = nil; yyerr++; ;}
break;
case 36:
/* Line 1455 of yacc.c */
#line 366 "parser/faustparser.y"
{ (yyval.exp)=(yyvsp[(1) - (1)].exp); setDefProp((yyvsp[(1) - (1)].exp), yyfilename, yylineno); ;}
break;
case 37:
/* Line 1455 of yacc.c */
#line 369 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
break;
case 38:
/* Line 1455 of yacc.c */
#line 370 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(3) - (3)].exp),(yyvsp[(1) - (3)].exp)); ;}
break;
case 39:
/* Line 1455 of yacc.c */
#line 373 "parser/faustparser.y"
{ (yyval.exp) = boxWithLocalDef((yyvsp[(1) - (5)].exp),formatDefinitions((yyvsp[(4) - (5)].exp))); ;}
break;
case 40:
/* Line 1455 of yacc.c */
#line 374 "parser/faustparser.y"
{ (yyval.exp) = boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 41:
/* Line 1455 of yacc.c */
#line 375 "parser/faustparser.y"
{ (yyval.exp) = boxSeq((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 42:
/* Line 1455 of yacc.c */
#line 376 "parser/faustparser.y"
{ (yyval.exp) = boxSplit((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 43:
/* Line 1455 of yacc.c */
#line 377 "parser/faustparser.y"
{ (yyval.exp) = boxMerge((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 44:
/* Line 1455 of yacc.c */
#line 378 "parser/faustparser.y"
{ (yyval.exp) = boxRec((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 45:
/* Line 1455 of yacc.c */
#line 379 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 46:
/* Line 1455 of yacc.c */
#line 382 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigAdd)); ;}
break;
case 47:
/* Line 1455 of yacc.c */
#line 383 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigSub)); ;}
break;
case 48:
/* Line 1455 of yacc.c */
#line 384 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigMul)); ;}
break;
case 49:
/* Line 1455 of yacc.c */
#line 385 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigDiv)); ;}
break;
case 50:
/* Line 1455 of yacc.c */
#line 386 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigRem)); ;}
break;
case 51:
/* Line 1455 of yacc.c */
#line 387 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),gPowPrim->box()); ;}
break;
case 52:
/* Line 1455 of yacc.c */
#line 388 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigFixDelay)); ;}
break;
case 53:
/* Line 1455 of yacc.c */
#line 389 "parser/faustparser.y"
{ (yyval.exp) = boxSeq((yyvsp[(1) - (2)].exp),boxPrim1(sigDelay1)); ;}
break;
case 54:
/* Line 1455 of yacc.c */
#line 390 "parser/faustparser.y"
{ (yyval.exp) = boxAccess((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 55:
/* Line 1455 of yacc.c */
#line 392 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigAND)); ;}
break;
case 56:
/* Line 1455 of yacc.c */
#line 393 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigOR)); ;}
break;
case 57:
/* Line 1455 of yacc.c */
#line 394 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigXOR)); ;}
break;
case 58:
/* Line 1455 of yacc.c */
#line 396 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigLeftShift)); ;}
break;
case 59:
/* Line 1455 of yacc.c */
#line 397 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigRightShift)); ;}
break;
case 60:
/* Line 1455 of yacc.c */
#line 399 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigLT)); ;}
break;
case 61:
/* Line 1455 of yacc.c */
#line 400 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigLE)); ;}
break;
case 62:
/* Line 1455 of yacc.c */
#line 401 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigGT)); ;}
break;
case 63:
/* Line 1455 of yacc.c */
#line 402 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigGE)); ;}
break;
case 64:
/* Line 1455 of yacc.c */
#line 403 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigEQ)); ;}
break;
case 65:
/* Line 1455 of yacc.c */
#line 404 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigNE)); ;}
break;
case 66:
/* Line 1455 of yacc.c */
#line 406 "parser/faustparser.y"
{ (yyval.exp) = buildBoxAppl((yyvsp[(1) - (4)].exp),(yyvsp[(3) - (4)].exp)); ;}
break;
case 67:
/* Line 1455 of yacc.c */
#line 407 "parser/faustparser.y"
{ (yyval.exp) = boxModifLocalDef((yyvsp[(1) - (4)].exp),formatDefinitions((yyvsp[(3) - (4)].exp))); ;}
break;
case 68:
/* Line 1455 of yacc.c */
#line 409 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 69:
/* Line 1455 of yacc.c */
#line 412 "parser/faustparser.y"
{ (yyval.exp) = boxInt(atoi(yytext)); ;}
break;
case 70:
/* Line 1455 of yacc.c */
#line 413 "parser/faustparser.y"
{ (yyval.exp) = boxReal(atof(yytext)); ;}
break;
case 71:
/* Line 1455 of yacc.c */
#line 415 "parser/faustparser.y"
{ (yyval.exp) = boxInt (atoi(yytext)); ;}
break;
case 72:
/* Line 1455 of yacc.c */
#line 416 "parser/faustparser.y"
{ (yyval.exp) = boxReal(atof(yytext)); ;}
break;
case 73:
/* Line 1455 of yacc.c */
#line 418 "parser/faustparser.y"
{ (yyval.exp) = boxInt ( -atoi(yytext) ); ;}
break;
case 74:
/* Line 1455 of yacc.c */
#line 419 "parser/faustparser.y"
{ (yyval.exp) = boxReal( -atof(yytext) ); ;}
break;
case 75:
/* Line 1455 of yacc.c */
#line 421 "parser/faustparser.y"
{ (yyval.exp) = boxWire(); ;}
break;
case 76:
/* Line 1455 of yacc.c */
#line 422 "parser/faustparser.y"
{ (yyval.exp) = boxCut(); ;}
break;
case 77:
/* Line 1455 of yacc.c */
#line 424 "parser/faustparser.y"
{ (yyval.exp) = boxPrim1(sigDelay1); ;}
break;
case 78:
/* Line 1455 of yacc.c */
#line 425 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigPrefix); ;}
break;
case 79:
/* Line 1455 of yacc.c */
#line 427 "parser/faustparser.y"
{ (yyval.exp) = boxPrim1(sigIntCast); ;}
break;
case 80:
/* Line 1455 of yacc.c */
#line 428 "parser/faustparser.y"
{ (yyval.exp) = boxPrim1(sigFloatCast); ;}
break;
case 81:
/* Line 1455 of yacc.c */
#line 430 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigAdd); ;}
break;
case 82:
/* Line 1455 of yacc.c */
#line 431 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigSub); ;}
break;
case 83:
/* Line 1455 of yacc.c */
#line 432 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigMul); ;}
break;
case 84:
/* Line 1455 of yacc.c */
#line 433 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigDiv); ;}
break;
case 85:
/* Line 1455 of yacc.c */
#line 434 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigRem); ;}
break;
case 86:
/* Line 1455 of yacc.c */
#line 435 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigFixDelay); ;}
break;
case 87:
/* Line 1455 of yacc.c */
#line 437 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigAND); ;}
break;
case 88:
/* Line 1455 of yacc.c */
#line 438 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigOR); ;}
break;
case 89:
/* Line 1455 of yacc.c */
#line 439 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigXOR); ;}
break;
case 90:
/* Line 1455 of yacc.c */
#line 441 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigLeftShift); ;}
break;
case 91:
/* Line 1455 of yacc.c */
#line 442 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigRightShift); ;}
break;
case 92:
/* Line 1455 of yacc.c */
#line 444 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigLT); ;}
break;
case 93:
/* Line 1455 of yacc.c */
#line 445 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigLE); ;}
break;
case 94:
/* Line 1455 of yacc.c */
#line 446 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigGT); ;}
break;
case 95:
/* Line 1455 of yacc.c */
#line 447 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigGE); ;}
break;
case 96:
/* Line 1455 of yacc.c */
#line 448 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigEQ); ;}
break;
case 97:
/* Line 1455 of yacc.c */
#line 449 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigNE); ;}
break;
case 98:
/* Line 1455 of yacc.c */
#line 451 "parser/faustparser.y"
{ (yyval.exp) = boxPrim2(sigAttach); ;}
break;
case 99:
/* Line 1455 of yacc.c */
#line 453 "parser/faustparser.y"
{ (yyval.exp) = gAcosPrim->box(); ;}
break;
case 100:
/* Line 1455 of yacc.c */
#line 454 "parser/faustparser.y"
{ (yyval.exp) = gAsinPrim->box(); ;}
break;
case 101:
/* Line 1455 of yacc.c */
#line 455 "parser/faustparser.y"
{ (yyval.exp) = gAtanPrim->box(); ;}
break;
case 102:
/* Line 1455 of yacc.c */
#line 456 "parser/faustparser.y"
{ (yyval.exp) = gAtan2Prim->box(); ;}
break;
case 103:
/* Line 1455 of yacc.c */
#line 457 "parser/faustparser.y"
{ (yyval.exp) = gCosPrim->box(); ;}
break;
case 104:
/* Line 1455 of yacc.c */
#line 458 "parser/faustparser.y"
{ (yyval.exp) = gSinPrim->box(); ;}
break;
case 105:
/* Line 1455 of yacc.c */
#line 459 "parser/faustparser.y"
{ (yyval.exp) = gTanPrim->box(); ;}
break;
case 106:
/* Line 1455 of yacc.c */
#line 461 "parser/faustparser.y"
{ (yyval.exp) = gExpPrim->box(); ;}
break;
case 107:
/* Line 1455 of yacc.c */
#line 462 "parser/faustparser.y"
{ (yyval.exp) = gLogPrim->box(); ;}
break;
case 108:
/* Line 1455 of yacc.c */
#line 463 "parser/faustparser.y"
{ (yyval.exp) = gLog10Prim->box(); ;}
break;
case 109:
/* Line 1455 of yacc.c */
#line 464 "parser/faustparser.y"
{ (yyval.exp) = gPowPrim->box(); ;}
break;
case 110:
/* Line 1455 of yacc.c */
#line 465 "parser/faustparser.y"
{ (yyval.exp) = gPowPrim->box(); ;}
break;
case 111:
/* Line 1455 of yacc.c */
#line 466 "parser/faustparser.y"
{ (yyval.exp) = gSqrtPrim->box(); ;}
break;
case 112:
/* Line 1455 of yacc.c */
#line 468 "parser/faustparser.y"
{ (yyval.exp) = gAbsPrim->box(); ;}
break;
case 113:
/* Line 1455 of yacc.c */
#line 469 "parser/faustparser.y"
{ (yyval.exp) = gMinPrim->box(); ;}
break;
case 114:
/* Line 1455 of yacc.c */
#line 470 "parser/faustparser.y"
{ (yyval.exp) = gMaxPrim->box(); ;}
break;
case 115:
/* Line 1455 of yacc.c */
#line 472 "parser/faustparser.y"
{ (yyval.exp) = gFmodPrim->box(); ;}
break;
case 116:
/* Line 1455 of yacc.c */
#line 473 "parser/faustparser.y"
{ (yyval.exp) = gRemainderPrim->box(); ;}
break;
case 117:
/* Line 1455 of yacc.c */
#line 475 "parser/faustparser.y"
{ (yyval.exp) = gFloorPrim->box(); ;}
break;
case 118:
/* Line 1455 of yacc.c */
#line 476 "parser/faustparser.y"
{ (yyval.exp) = gCeilPrim->box(); ;}
break;
case 119:
/* Line 1455 of yacc.c */
#line 477 "parser/faustparser.y"
{ (yyval.exp) = gRintPrim->box(); ;}
break;
case 120:
/* Line 1455 of yacc.c */
#line 480 "parser/faustparser.y"
{ (yyval.exp) = boxPrim3(sigReadOnlyTable); ;}
break;
case 121:
/* Line 1455 of yacc.c */
#line 481 "parser/faustparser.y"
{ (yyval.exp) = boxPrim5(sigWriteReadTable); ;}
break;
case 122:
/* Line 1455 of yacc.c */
#line 483 "parser/faustparser.y"
{ (yyval.exp) = boxPrim3(sigSelect2); ;}
break;
case 123:
/* Line 1455 of yacc.c */
#line 484 "parser/faustparser.y"
{ (yyval.exp) = boxPrim4(sigSelect3); ;}
break;
case 124:
/* Line 1455 of yacc.c */
#line 486 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 125:
/* Line 1455 of yacc.c */
#line 487 "parser/faustparser.y"
{ (yyval.exp) = boxSeq(boxPar(boxInt(0),(yyvsp[(2) - (2)].exp)),boxPrim2(sigSub)); ;}
break;
case 126:
/* Line 1455 of yacc.c */
#line 489 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(2) - (3)].exp); ;}
break;
case 127:
/* Line 1455 of yacc.c */
#line 491 "parser/faustparser.y"
{ (yyval.exp) = buildBoxAbstr((yyvsp[(3) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 128:
/* Line 1455 of yacc.c */
#line 493 "parser/faustparser.y"
{ (yyval.exp) = boxCase(checkRulelist((yyvsp[(3) - (4)].exp))); ;}
break;
case 129:
/* Line 1455 of yacc.c */
#line 495 "parser/faustparser.y"
{ (yyval.exp) = boxFFun((yyvsp[(1) - (1)].exp)); ;}
break;
case 130:
/* Line 1455 of yacc.c */
#line 496 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 131:
/* Line 1455 of yacc.c */
#line 497 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 132:
/* Line 1455 of yacc.c */
#line 498 "parser/faustparser.y"
{ (yyval.exp) = boxComponent((yyvsp[(3) - (4)].exp)); ;}
break;
case 133:
/* Line 1455 of yacc.c */
#line 499 "parser/faustparser.y"
{ (yyval.exp) = boxLibrary((yyvsp[(3) - (4)].exp)); ;}
break;
case 134:
/* Line 1455 of yacc.c */
#line 500 "parser/faustparser.y"
{ (yyval.exp) = boxWithLocalDef(boxEnvironment(),formatDefinitions((yyvsp[(3) - (4)].exp))); ;}
break;
case 135:
/* Line 1455 of yacc.c */
#line 502 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 136:
/* Line 1455 of yacc.c */
#line 503 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 137:
/* Line 1455 of yacc.c */
#line 504 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 138:
/* Line 1455 of yacc.c */
#line 505 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 139:
/* Line 1455 of yacc.c */
#line 506 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 140:
/* Line 1455 of yacc.c */
#line 507 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 141:
/* Line 1455 of yacc.c */
#line 508 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 142:
/* Line 1455 of yacc.c */
#line 509 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 143:
/* Line 1455 of yacc.c */
#line 510 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 144:
/* Line 1455 of yacc.c */
#line 511 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 145:
/* Line 1455 of yacc.c */
#line 513 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 146:
/* Line 1455 of yacc.c */
#line 514 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 147:
/* Line 1455 of yacc.c */
#line 515 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 148:
/* Line 1455 of yacc.c */
#line 516 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 149:
/* Line 1455 of yacc.c */
#line 520 "parser/faustparser.y"
{ (yyval.exp) = boxIdent(yytext); ;}
break;
case 150:
/* Line 1455 of yacc.c */
#line 523 "parser/faustparser.y"
{ (yyval.exp) = tree(yytext); ;}
break;
case 151:
/* Line 1455 of yacc.c */
#line 528 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
break;
case 152:
/* Line 1455 of yacc.c */
#line 529 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(3) - (3)].exp),(yyvsp[(1) - (3)].exp)); ;}
break;
case 153:
/* Line 1455 of yacc.c */
#line 532 "parser/faustparser.y"
{ (yyval.exp) = boxSeq((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 154:
/* Line 1455 of yacc.c */
#line 533 "parser/faustparser.y"
{ (yyval.exp) = boxSplit((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 155:
/* Line 1455 of yacc.c */
#line 534 "parser/faustparser.y"
{ (yyval.exp) = boxMerge((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 156:
/* Line 1455 of yacc.c */
#line 535 "parser/faustparser.y"
{ (yyval.exp) = boxRec((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
break;
case 157:
/* Line 1455 of yacc.c */
#line 536 "parser/faustparser.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 158:
/* Line 1455 of yacc.c */
#line 539 "parser/faustparser.y"
{ (yyval.exp) = tree(yytext); ;}
break;
case 159:
/* Line 1455 of yacc.c */
#line 542 "parser/faustparser.y"
{ (yyval.exp) = unquote(yytext); ;}
break;
case 160:
/* Line 1455 of yacc.c */
#line 545 "parser/faustparser.y"
{ (yyval.exp) = tree(yytext); ;}
break;
case 161:
/* Line 1455 of yacc.c */
#line 546 "parser/faustparser.y"
{ (yyval.exp) = tree(yytext); ;}
break;
case 162:
/* Line 1455 of yacc.c */
#line 552 "parser/faustparser.y"
{ (yyval.exp) = boxIPar((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 163:
/* Line 1455 of yacc.c */
#line 556 "parser/faustparser.y"
{ (yyval.exp) = boxISeq((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 164:
/* Line 1455 of yacc.c */
#line 560 "parser/faustparser.y"
{ (yyval.exp) = boxISum((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 165:
/* Line 1455 of yacc.c */
#line 564 "parser/faustparser.y"
{ (yyval.exp) = boxIProd((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 166:
/* Line 1455 of yacc.c */
#line 571 "parser/faustparser.y"
{ (yyval.exp) = ffunction((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 167:
/* Line 1455 of yacc.c */
#line 575 "parser/faustparser.y"
{ (yyval.exp) = boxFConst((yyvsp[(3) - (7)].exp),(yyvsp[(4) - (7)].exp),(yyvsp[(6) - (7)].exp)); ;}
break;
case 168:
/* Line 1455 of yacc.c */
#line 578 "parser/faustparser.y"
{ (yyval.exp) = boxFVar((yyvsp[(3) - (7)].exp),(yyvsp[(4) - (7)].exp),(yyvsp[(6) - (7)].exp)); ;}
break;
case 169:
/* Line 1455 of yacc.c */
#line 582 "parser/faustparser.y"
{ (yyval.exp) = boxButton((yyvsp[(3) - (4)].exp)); ;}
break;
case 170:
/* Line 1455 of yacc.c */
#line 585 "parser/faustparser.y"
{ (yyval.exp) = boxCheckbox((yyvsp[(3) - (4)].exp)); ;}
break;
case 171:
/* Line 1455 of yacc.c */
#line 589 "parser/faustparser.y"
{ (yyval.exp) = boxVSlider((yyvsp[(3) - (12)].exp),(yyvsp[(5) - (12)].exp),(yyvsp[(7) - (12)].exp),(yyvsp[(9) - (12)].exp),(yyvsp[(11) - (12)].exp)); ;}
break;
case 172:
/* Line 1455 of yacc.c */
#line 592 "parser/faustparser.y"
{ (yyval.exp) = boxHSlider((yyvsp[(3) - (12)].exp),(yyvsp[(5) - (12)].exp),(yyvsp[(7) - (12)].exp),(yyvsp[(9) - (12)].exp),(yyvsp[(11) - (12)].exp)); ;}
break;
case 173:
/* Line 1455 of yacc.c */
#line 595 "parser/faustparser.y"
{ (yyval.exp) = boxNumEntry((yyvsp[(3) - (12)].exp),(yyvsp[(5) - (12)].exp),(yyvsp[(7) - (12)].exp),(yyvsp[(9) - (12)].exp),(yyvsp[(11) - (12)].exp)); ;}
break;
case 174:
/* Line 1455 of yacc.c */
#line 598 "parser/faustparser.y"
{ (yyval.exp) = boxVGroup((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
break;
case 175:
/* Line 1455 of yacc.c */
#line 601 "parser/faustparser.y"
{ (yyval.exp) = boxHGroup((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
break;
case 176:
/* Line 1455 of yacc.c */
#line 604 "parser/faustparser.y"
{ (yyval.exp) = boxTGroup((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
break;
case 177:
/* Line 1455 of yacc.c */
#line 608 "parser/faustparser.y"
{ (yyval.exp) = boxVBargraph((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 178:
/* Line 1455 of yacc.c */
#line 611 "parser/faustparser.y"
{ (yyval.exp) = boxHBargraph((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
break;
case 179:
/* Line 1455 of yacc.c */
#line 616 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (5)].exp), cons((yyvsp[(2) - (5)].exp), (yyvsp[(4) - (5)].exp))); ;}
break;
case 180:
/* Line 1455 of yacc.c */
#line 617 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (4)].exp), cons((yyvsp[(2) - (4)].exp), nil)); ;}
break;
case 181:
/* Line 1455 of yacc.c */
#line 620 "parser/faustparser.y"
{ (yyval.exp) = tree(yytext); ;}
break;
case 182:
/* Line 1455 of yacc.c */
#line 623 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
break;
case 183:
/* Line 1455 of yacc.c */
#line 624 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(3) - (3)].exp),(yyvsp[(1) - (3)].exp)); ;}
break;
case 184:
/* Line 1455 of yacc.c */
#line 627 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
break;
case 185:
/* Line 1455 of yacc.c */
#line 628 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
break;
case 186:
/* Line 1455 of yacc.c */
#line 632 "parser/faustparser.y"
{ (yyval.exp) = cons((yyvsp[(2) - (6)].exp),(yyvsp[(5) - (6)].exp)); ;}
break;
case 187:
/* Line 1455 of yacc.c */
#line 635 "parser/faustparser.y"
{ (yyval.exp) = tree(0); ;}
break;
case 188:
/* Line 1455 of yacc.c */
#line 636 "parser/faustparser.y"
{ (yyval.exp) = tree(1); ;}
break;
/* Line 1455 of yacc.c */
#line 3242 "parser/faustparser.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
++yynerrs;
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
{
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
{
YYSIZE_T yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
}
}
if (0 < yysize && yysize <= yymsg_alloc)
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (yymsg);
}
else
{
yyerror (YY_("syntax error"));
if (yysize != 0)
goto yyexhaustedlab;
}
}
#endif
}
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
if (yychar <= YYEOF)
{
/* Return failure if at end of input. */
if (yychar == YYEOF)
YYABORT;
}
else
{
yydestruct ("Error: discarding",
yytoken, &yylval);
yychar = YYEMPTY;
}
}
/* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
/* Pacify compilers like GCC when the user code never invokes
YYERROR and the label yyerrorlab therefore never appears in user
code. */
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
/* Do not reclaim the symbols of the rule which action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
yystate = *yyssp;
goto yyerrlab1;
/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;)
{
yyn = yypact[yystate];
if (yyn != YYPACT_NINF)
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
{
yyn = yytable[yyn];
if (0 < yyn)
break;
}
}
/* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping",
yystos[yystate], yyvsp);
YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
*++yyvsp = yylval;
/* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here. |
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
goto yyreturn;
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
yyabortlab:
yyresult = 1;
goto yyreturn;
#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
if (yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
yystos[*yyssp], yyvsp);
YYPOPSTACK (1);
}
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
/* Make sure YYID is used. */
return YYID (yyresult);
}
| vector<Tree> gDocVector |
Contains <mdoc> parsed trees: DOCTXT, DOCEQN, DOCDGM.
Definition at line 110 of file doc.cpp.
Referenced by declareDoc(), and printDoc().
| bool gLatexDocSwitch |
| string gMasterDocument |
| map<Tree, set<Tree> > gMetaDataSet |
Definition at line 86 of file main.cpp.
Referenced by SourceReader::parse(), and yyparse().
| int yydebug |
| int yyerr |
Definition at line 83 of file main.cpp.
Referenced by main(), SourceReader::parse(), and yyparse().
| const char* yyfilename |
Definition at line 30 of file errormsg.cpp.
Referenced by applyList(), declareMetadata(), eval2double(), eval2int(), larg2par(), SourceReader::parse(), real_a2sb(), yyerror(), and yyparse().
| FILE* yyin |
| int yylineno |
1.8.0