|
FAUST compiler
0.9.9.6b8
|
A tree library with hashconsing and maximal sharing capabilities. More...


Go to the source code of this file.
Classes | |
| class | CTree |
| A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches. More... | |
| class | Tabber |
Typedefs | |
| typedef CTree * | Tree |
| typedef map< Tree, Tree > | plist |
| typedef vector< Tree > | tvec |
Functions | |
| Tree | tree (const Node &n) |
| Tree | tree (const Node &n, const Tree &a) |
| Tree | tree (const Node &n, const Tree &a, const Tree &b) |
| Tree | tree (const Node &n, const Tree &a, const Tree &b, const Tree &c) |
| Tree | tree (const Node &n, const Tree &a, const Tree &b, const Tree &c, const Tree &d) |
| Tree | tree (const Node &n, const Tree &a, const Tree &b, const Tree &c, const Tree &d, const Tree &e) |
| Tree | tree (const Node &n, const tvec &br) |
| int | tree2int (Tree t) |
| if t has a node of type int, return it otherwise error More... | |
| double | tree2float (Tree t) |
| if t has a node of type float, return it otherwise error More... | |
| double | tree2double (Tree t) |
| if t has a node of type float, return it otherwise error More... | |
| const char * | tree2str (Tree t) |
| if t has a node of type symbol, return its name otherwise error More... | |
| void * | tree2ptr (Tree t) |
| if t has a node of type ptr, return it otherwise error More... | |
| void * | getUserData (Tree t) |
| if t has a node of type symbol, return the associated user data More... | |
| bool | isTree (const Tree &t, const Node &n) |
| bool | isTree (const Tree &t, const Node &n, Tree &a) |
| bool | isTree (const Tree &t, const Node &n, Tree &a, Tree &b) |
| bool | isTree (const Tree &t, const Node &n, Tree &a, Tree &b, Tree &c) |
| bool | isTree (const Tree &t, const Node &n, Tree &a, Tree &b, Tree &c, Tree &d) |
| bool | isTree (const Tree &t, const Node &n, Tree &a, Tree &b, Tree &c, Tree &d, Tree &e) |
| ostream & | operator<< (ostream &s, const CTree &t) |
| Tree | rec (Tree body) |
| create a de Bruijn recursive tree More... | |
| Tree | rec (Tree id, Tree body) |
| create a symbolic recursive tree More... | |
| bool | isRec (Tree t, Tree &body) |
| is t a de Bruijn recursive tree More... | |
| bool | isRec (Tree t, Tree &id, Tree &body) |
| is t a symbolic recursive tree More... | |
| Tree | ref (int level) |
| create a de Bruijn recursive reference More... | |
| Tree | ref (Tree id) |
| create a symbolic recursive reference More... | |
| bool | isRef (Tree t, int &level) |
| is t a de Bruijn recursive reference More... | |
| bool | isRef (Tree t, Tree &id) |
| is t a symbolic recursive reference More... | |
| bool | isOpen (Tree t) |
| t contains free de Bruijn references More... | |
| bool | isClosed (Tree t) |
| t dont contain free de Bruijn ref More... | |
| Tree | lift (Tree t) |
| Tree | deBruijn2Sym (Tree t) |
| void | updateAperture (Tree t) |
| ostream & | operator<< (ostream &s, Tabber &t) |
Variables | |
| Tabber | TABBER |
A tree library with hashconsing and maximal sharing capabilities.
A tree library with hashconsing and maximal sharing capabilities.
API:
Useful conversions :
Pattern matching :
Accessors :
Attributs :
Properties:
If p and q are two CTree pointers : p != q <=> *p != *q
Definition in file tree.hh.
Definition at line 223 of file recursive-tree.cpp.
References calcDeBruijn2Sym(), CTree::getProperty(), isClosed(), and CTree::setProperty().
Referenced by calcDeBruijn2Sym(), mapPrepareEqSig(), and ScalarCompiler::prepare().


| void* getUserData | ( | Tree | t | ) |
if t has a node of type symbol, return the associated user data
Definition at line 372 of file tree.cpp.
References getUserData(), isSym(), and CTree::node().
Referenced by getUserData().


|
inline |
t dont contain free de Bruijn ref
Definition at line 239 of file tree.hh.
References CTree::aperture().
Referenced by calcliftn(), and deBruijn2Sym().


|
inline |
t contains free de Bruijn references
Definition at line 238 of file tree.hh.
References CTree::aperture().

is t a de Bruijn recursive tree
Definition at line 59 of file recursive-tree.cpp.
References isTree().
Referenced by annotate(), calcDeBruijn2Sym(), calcliftn(), calcsubstitute(), computePrivatisation(), VectorCompiler::generateCodeRecursions(), ScalarCompiler::generateRecProj(), DocCompiler::generateRecProj(), getSubSignals(), infereSigOrder(), infereSigType(), ppsig::print(), printSignal(), recdraw(), recomputeAperture(), sigLabel(), sigMap(), sigMapRename(), symlistVisit(), typeAnnotation(), and sigvisitor::visit().


is t a symbolic recursive tree
Definition at line 95 of file recursive-tree.cpp.
References CTree::getProperty(), and isTree().

| bool isRef | ( | Tree | t, |
| int & | level | ||
| ) |
is t a de Bruijn recursive reference
Definition at line 70 of file recursive-tree.cpp.
References isInt(), isTree(), and CTree::node().
Referenced by calcDeBruijn2Sym(), calcliftn(), calcsubstitute(), infereSigOrder(), ppsig::print(), printSignal(), recomputeAperture(), sigMapRename(), and sigvisitor::visit().


is t a symbolic recursive reference
Definition at line 111 of file recursive-tree.cpp.
References isTree().

Definition at line 305 of file tree.cpp.
References CTree::node().
Referenced by isBoxAbstr(), isBoxAccess(), isBoxAppl(), isBoxButton(), isBoxCase(), isBoxCheckbox(), isBoxComponent(), isBoxCut(), isBoxEnvironment(), isBoxError(), isBoxFConst(), isBoxFFun(), isBoxFVar(), isBoxHBargraph(), isBoxHGroup(), isBoxHSlider(), isBoxIdent(), isBoxInputs(), isBoxIPar(), isBoxIProd(), isBoxISeq(), isBoxISum(), isBoxLibrary(), isBoxMerge(), isBoxModifLocalDef(), isBoxNumEntry(), isBoxOutputs(), isBoxPar(), isBoxPatternMatcher(), isBoxPatternVar(), isBoxPrim0(), isBoxPrim1(), isBoxPrim2(), isBoxPrim3(), isBoxPrim4(), isBoxPrim5(), isBoxRec(), isBoxSeq(), isBoxSlot(), isBoxSplit(), isBoxSymbolic(), isBoxTGroup(), isBoxVBargraph(), isBoxVGroup(), isBoxVSlider(), isBoxWaveform(), isBoxWire(), isBoxWithLocalDef(), isClosure(), isDocDgm(), isDocEqn(), isDocLst(), isDocMtd(), isDocNtc(), isDocTxt(), isImportFile(), isPathCurrent(), isPathParent(), isPathRoot(), isProj(), isRec(), isRef(), isSigAttach(), isSigBinOp(), isSigButton(), isSigCheckbox(), isSigDelay1(), isSigDocAccessTbl(), isSigDocConstantTbl(), isSigDocWriteTbl(), isSigFConst(), isSigFFun(), isSigFixDelay(), isSigFloatCast(), isSigFVar(), isSigGen(), isSigHBargraph(), isSigHSlider(), isSigInput(), isSigIntCast(), isSigIota(), isSigNumEntry(), isSigOutput(), isSigPrefix(), isSigRDTbl(), isSigSelect2(), isSigSelect3(), isSigTable(), isSigTuple(), isSigTupleAccess(), isSigVBargraph(), isSigVSlider(), isSigWaveform(), isSigWRTbl(), isUiFolder(), and isUiWidget().

Definition at line 310 of file tree.cpp.
References CTree::arity(), CTree::branch(), and CTree::node().

Definition at line 320 of file tree.cpp.
References CTree::arity(), CTree::branch(), and CTree::node().

Definition at line 331 of file tree.cpp.
References CTree::arity(), CTree::branch(), and CTree::node().

Definition at line 343 of file tree.cpp.
References CTree::arity(), CTree::branch(), and CTree::node().

Definition at line 356 of file tree.cpp.
References CTree::arity(), CTree::branch(), and CTree::node().

Definition at line 149 of file recursive-tree.cpp.
References liftn().
Referenced by listLift(), and realPropagate().


|
inline |
Definition at line 212 of file tree.hh.
References CTree::print().

|
inline |
Definition at line 264 of file tree.hh.
References Tabber::print().

create a de Bruijn recursive tree
Definition at line 54 of file recursive-tree.cpp.
References tree().
Referenced by calcDeBruijn2Sym(), calcliftn(), calcsubstitute(), computePrivatisation(), realPropagate(), sigMap(), and sigMapRename().


create a symbolic recursive tree
Definition at line 88 of file recursive-tree.cpp.
References CTree::setProperty(), and tree().

| Tree ref | ( | int | level | ) |
create a de Bruijn recursive reference
Definition at line 64 of file recursive-tree.cpp.
References tree().
Referenced by calcDeBruijn2Sym(), calcliftn(), realPropagate(), and sigMapRename().


create a symbolic recursive reference
Definition at line 106 of file recursive-tree.cpp.
References tree().

Definition at line 186 of file tree.hh.
References CTree::make().
Referenced by addNums(), annotate(), autoName(), xtended::box(), boxAbstr(), boxAccess(), boxAppl(), boxButton(), boxCaseInternal(), boxCheckbox(), boxComplexity(), boxComponent(), boxCut(), boxEnvironment(), boxError(), boxFConst(), boxFFun(), boxFVar(), boxHBargraph(), boxHGroup(), boxHSlider(), boxIdent(), boxInputs(), boxInt(), boxIPar(), boxIProd(), boxISeq(), boxISum(), boxLibrary(), boxMerge(), boxModifLocalDef(), boxNumEntry(), boxOutputs(), boxPar(), boxPatternMatcher(), boxPatternVar(), boxPrim0(), boxPrim1(), boxPrim2(), boxPrim3(), boxPrim4(), boxPrim5(), boxReal(), boxRec(), boxSeq(), boxSlot(), boxSplit(), boxSymbolic(), boxTGroup(), boxVBargraph(), boxVGroup(), boxVSlider(), boxWaveform(), boxWire(), boxWithLocalDef(), calcDeBruijn2Sym(), closure(), codeSimpleType(), codeTableType(), combineDivLeft(), computePrivatisation(), CosPrim::computeSigOutput(), Atan2Prim::computeSigOutput(), AtanPrim::computeSigOutput(), SinPrim::computeSigOutput(), TanPrim::computeSigOutput(), AcosPrim::computeSigOutput(), AsinPrim::computeSigOutput(), ExpPrim::computeSigOutput(), FloorPrim::computeSigOutput(), FmodPrim::computeSigOutput(), CeilPrim::computeSigOutput(), RemainderPrim::computeSigOutput(), AbsPrim::computeSigOutput(), MaxPrim::computeSigOutput(), MinPrim::computeSigOutput(), LogPrim::computeSigOutput(), RintPrim::computeSigOutput(), Log10Prim::computeSigOutput(), SqrtPrim::computeSigOutput(), PowPrim::computeSigOutput(), cons(), declareAutoDoc(), declareMetadata(), divExtendedNums(), docDgm(), docEqn(), docLst(), docMtd(), docNtc(), docTxt(), encodeName(), ffunction(), gcd(), ScalarCompiler::generateButton(), ScalarCompiler::generateCheckbox(), ScalarCompiler::generateHBargraph(), ScalarCompiler::generateHSlider(), ScalarCompiler::generateNumEntry(), ScalarCompiler::generateVBargraph(), ScalarCompiler::generateVSlider(), getBoxType(), getEvalProperty(), getPMProperty(), getPropagateProperty(), getSigOrder(), importFile(), inverseNum(), iteratePar(), iterateProd(), iterateSeq(), iterateSum(), label2path(), liftn(), main(), makePrivatisationKey(), makePrivatisationLabel(), OccMarkup::mark(), minusNum(), mulNums(), normalizeDelay1Term(), aterm::normalizedTree(), mterm::normalizedTree(), pathCurrent(), pathParent(), pathRoot(), patternSimplification(), printheader(), Klass::printMetadata(), propagate(), pushEnvBarrier(), pushNewLayer(), realeval(), realPropagate(), rec(), ref(), property< Loop * >::set(), property< int >::set(), property< double >::set(), setColorProperty(), Occurrences::setCount(), setDefNameProperty(), setDefProp(), setEvalProperty(), OccMarkup::setOcc(), setPMProperty(), setPropagateProperty(), ScalarCompiler::setSharingCount(), DocCompiler::setSharingCount(), setSigNickname(), shprkey(), sigAttach(), sigBinOp(), sigButton(), sigCheckbox(), sigDelay1(), sigDocAccessTbl(), sigDocConstantTbl(), sigDocWriteTbl(), sigFConst(), sigFFun(), sigFixDelay(), sigFloatCast(), sigFVar(), sigGen(), sigHBargraph(), sigHSlider(), sigInput(), sigInt(), sigIntCast(), sigIota(), sigMap(), sigMapRename(), sigNumEntry(), sigOutput(), sigPow(), sigPrefix(), sigProj(), sigRDTbl(), sigReal(), sigSelect2(), sigSelect3(), sigTable(), sigTuple(), sigTupleAccess(), sigVBargraph(), sigVSlider(), sigWaveform(), sigWRTbl(), simplification(), Occurrences::specificKey(), subNums(), subst(), substitute(), substkey(), tmap(), uiFolder(), uiWidget(), unquote(), writeSchemaFile(), and yyparse().

Definition at line 187 of file tree.hh.
References CTree::make().

Definition at line 188 of file tree.hh.
References CTree::make().

Definition at line 189 of file tree.hh.
References CTree::make().

Definition at line 190 of file tree.hh.
References CTree::make().

|
inline |
Definition at line 192 of file tree.hh.
References CTree::make().

Definition at line 193 of file tree.hh.
References CTree::make().

| double tree2double | ( | Tree | t | ) |
if t has a node of type float, return it otherwise error
Definition at line 262 of file tree.cpp.
References ERROR, isDouble(), isInt(), and CTree::node().
Referenced by Description::addWidget().


| double tree2float | ( | Tree | t | ) |
if t has a node of type float, return it otherwise error
Definition at line 246 of file tree.cpp.
References ERROR, isDouble(), isInt(), and CTree::node().
Referenced by eval2double(), ScalarCompiler::generateHSlider(), ScalarCompiler::generateNumEntry(), ScalarCompiler::generateVSlider(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), infereSigType(), infereWaveformType(), and DocCompiler::prepareIntervallicUI().


| int tree2int | ( | Tree | t | ) |
if t has a node of type int, return it otherwise error
Definition at line 230 of file tree.cpp.
References ERROR, isDouble(), isInt(), and CTree::node().
Referenced by Description::addGroup(), annotate(), boxComplexity(), eval2int(), ffargtype(), ffrestype(), Compiler::generateUserInterfaceTree(), getRecursivness(), getSigOrder(), infereFConstType(), infereFVarType(), isBoxPatternMatcher(), and boxpp::print().


| void* tree2ptr | ( | Tree | t | ) |
if t has a node of type ptr, return it otherwise error
Definition at line 288 of file tree.cpp.
References ERROR, isPointer(), and CTree::node().
Referenced by getColorProperty(), OccMarkup::getOcc(), and isBoxPatternMatcher().


| const char* tree2str | ( | Tree | t | ) |
if t has a node of type symbol, return its name otherwise error
Definition at line 278 of file tree.cpp.
References ERROR, isSym(), name(), and CTree::node().
Referenced by Description::addGroup(), Description::addWidget(), applyList(), DocCompiler::compileLateq(), declareAutoDoc(), declareMetadata(), SourceReader::expandrec(), extractName(), ffincfile(), fflibfile(), ffname(), ScalarCompiler::generateCode(), DocCompiler::generateCode(), generateDiagramSchema(), generateInputSlotSchema(), generateInsideSchema(), Compiler::generateMacroInterfaceTree(), generateOutputSlotSchema(), Compiler::generateUserInterfaceTree(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), DocCompiler::getUIDir(), DocCompiler::getUIDocInfos(), legalFileName(), main(), mapGetEqName(), ppsig::print(), boxpp::print(), printDocMetadata(), realeval(), tree2quotedstr(), and writeSchemaFile().


| void updateAperture | ( | Tree | t | ) |
Definition at line 320 of file recursive-tree.cpp.
References markOpen(), and recomputeAperture().

| Tabber TABBER |
Definition at line 87 of file tree.cpp.
Referenced by annotationStatistics(), getSigType(), setSigType(), T(), and traced_simplification().
1.8.7