#include "ppsig.hh"
#include "names.hh"
#include "tlib.hh"
#include "propagate.hh"
#include <string>
#include "property.hh"
#include "doc_Text.hh"
#include "Text.hh"
#include <assert.h>
Go to the source code of this file.
Functions | |
void | setDefNameProperty (Tree t, Tree id) |
void | setDefNameProperty (Tree t, const string &name) |
bool | getDefNameProperty (Tree t, Tree &id) |
Indicates the identifier (if any) the expression was a definition of. | |
string | defName2NickName (const string &defname) |
Convert a definition name (can be long) into a short nickname that can be used as an equation name in latex. | |
void | setSigNickname (Tree t, const string &id) |
Set the nickname property of a signal. | |
bool | getSigNickname (Tree t, Tree &id) |
Get the nickname property of a signal. | |
void | setSigListNickName (Tree lsig, const string &nickname) |
set the nickname property of a list of signals. | |
Variables | |
int | gMaxNameSize |
Tree | DEFNAMEPROPERTY = tree(symbol("DEFNAMEPROPERTY")) |
Definition name property : a property to keep track of the definition name of an expression. | |
Tree | NICKNAMEPROPERTY = tree(symbol("NICKNAMEPROPERTY")) |
string defName2NickName | ( | const string & | defname | ) |
Indicates the identifier (if any) the expression was a definition of.
t | the expression | |
id | reference to the identifier |
Definition at line 85 of file names.cpp.
References getProperty().
Referenced by a2sb(), applyList(), eval(), evalIdDef(), generateDiagramSchema(), generateInputSlotSchema(), generateInsideSchema(), generateOutputSlotSchema(), legalFileName(), mapGetEqName(), real_a2sb(), and writeSchemaFile().
00086 { 00087 //cerr << "getDefNameProperty of : " << t << endl; 00088 return getProperty(t, DEFNAMEPROPERTY, id); 00089 }
Get the nickname property of a signal.
Definition at line 122 of file names.cpp.
References getProperty().
Referenced by DocCompiler::compileLateq().
00123 { 00124 bool r = getProperty(t, NICKNAMEPROPERTY, id); 00125 return r; 00126 }
void setDefNameProperty | ( | Tree | t, | |
const string & | name | |||
) |
Definition at line 60 of file names.cpp.
References gMaxNameSize, setProperty(), and tree().
00061 { 00062 //cerr << "setDefNameProperty : " << name << " FOR " << t << "#" << boxpp(t) << endl; 00063 int n = name.size(); 00064 int m = (gMaxNameSize>1023) ? 1023 : gMaxNameSize; 00065 if (n > m) { 00066 // the name is too long we reduce it to 2/3 of maxsize 00067 char buf[1024]; 00068 int i = 0; 00069 // copy first third 00070 for (; i < m/3; i++) { buf[i] = name[i]; } 00071 // add ... 00072 buf[i++] = '.'; 00073 buf[i++] = '.'; 00074 buf[i++] = '.'; 00075 // copy last third 00076 for (int c = n-m/3; c<n; c++, i++) { buf[i] = name[c]; } 00077 buf[i] = 0; 00078 setProperty(t, DEFNAMEPROPERTY, tree(buf)); 00079 } else { 00080 setProperty(t, DEFNAMEPROPERTY, tree(name.c_str())); 00081 } 00082 00083 }
Definition at line 54 of file names.cpp.
References setProperty().
Referenced by a2sb(), applyList(), copyEnvReplaceDefs(), eval(), pushMultiClosureDefs(), real_a2sb(), and realeval().
00055 { 00056 //cerr << "setDefNameProperty : " << *id << " FOR " << t << "#" << boxpp(t) << endl; 00057 setProperty(t, DEFNAMEPROPERTY, id); 00058 }
void setSigListNickName | ( | Tree | lsig, | |
const string & | nickname | |||
) |
set the nickname property of a list of signals.
If the list contains more than one signal, adds an index to the nickname
Definition at line 134 of file names.cpp.
References hd(), isList(), isNil(), setSigNickname(), subst(), T(), and tl().
00135 { 00136 assert(isList(lsig)); 00137 00138 if (isNil(tl(lsig))) { 00139 setSigNickname(hd(lsig), nickname); 00140 } else { 00141 int i=0; 00142 while (!isNil(lsig)) { 00143 setSigNickname(hd(lsig), subst("$0_$1", nickname, T(++i))); 00144 lsig = tl(lsig); 00145 } 00146 } 00147 }
void setSigNickname | ( | Tree | t, | |
const string & | id | |||
) |
Set the nickname property of a signal.
Definition at line 108 of file names.cpp.
References isSigFixDelay(), isZero(), setProperty(), and tree().
Referenced by setSigListNickName().
00109 { 00110 Tree s,d; 00111 if (isSigFixDelay(t,s,d) && isZero(d)) { 00112 setProperty(s, NICKNAMEPROPERTY, tree(id)); 00113 } else { 00114 setProperty(t, NICKNAMEPROPERTY, tree(id)); 00115 } 00116 }
Tree DEFNAMEPROPERTY = tree(symbol("DEFNAMEPROPERTY")) |
Definition name property : a property to keep track of the definition name of an expression.
Whenever an identifier is evaluated, it is attached as a property of its definitionObviously there is no perfect solution since a same definition quand be given to different names.
int gMaxNameSize |
Tree NICKNAMEPROPERTY = tree(symbol("NICKNAMEPROPERTY")) |