Interface of the block diagram evaluator. More...
#include "boxes.hh"
#include "sourcereader.hh"
Go to the source code of this file.
Functions | |
Tree | evalprocess (Tree eqlist) |
Eval the definition of 'process'. | |
bool | searchIdDef (Tree id, Tree &def, Tree lenv) |
Search the environment for the definition of a symbol ID and return it. | |
Tree | pushValueDef (Tree id, Tree def, Tree lenv) |
Push a new layer and add a single definition. | |
Tree | simplifyPattern (Tree pattern) |
Simplify a block-diagram pattern by computing its numerical sub-expressions. |
Interface of the block diagram evaluator.
A strict lambda-calculus evaluator for block diagram expressions.
Definition in file eval.hh.
Eval the definition of 'process'.
Eval the definition of 'process' in the environment passed as argument
eqlist | the global environment (a list of definitions) |
Eval the definition of 'process'.
Strict evaluation of a block diagram expression by applying beta reduction.
eqlist | a list of faust defintions forming the the global environment |
Push a new layer and add a single definition.
id | the symbol id to be defined | |
def | the definition to be binded to the symbol id | |
lenv | the environment where to push the layer and add the definition |
Definition at line 1189 of file eval.cpp.
01190 { 01191 Tree lenv2 = pushNewLayer(lenv); 01192 addLayerDef(id, def, lenv2); 01193 return lenv2; 01194 }
Search the environment for the definition of a symbol ID and return it.
id | the symbol ID to search | |
def | where to store the definition if any | |
lenv | the environment |
Definition at line 1229 of file eval.cpp.
01230 { 01231 // search the environment until a definition is found 01232 // or nil (the empty environment) is reached 01233 while (!isNil(lenv) && !getProperty(lenv, id, def)) { 01234 lenv = lenv->branch(0); 01235 } 01236 return !isNil(lenv); 01237 }
Simplify a block-diagram pattern by computing its numerical sub-expressions.
pattern | an evaluated block-diagram |
Definition at line 605 of file eval.cpp.
00606 { 00607 Tree num; 00608 if (!getNumericProperty(value,num)) { 00609 if (!isBoxNumeric(value,num)) { 00610 num = value; 00611 } 00612 setNumericProperty(value,num); 00613 } 00614 return num; 00615 }