|
FAUST compiler
0.9.9.6b8
|
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "Text.hh"#include "compatibility.hh"#include <string>#include <vector>#include <iostream>#include <sstream>#include <assert.h>#include "floats.hh"
Go to the source code of this file.
Functions | |
| static string | substitution (const string &model, const vector< string > &args) |
| string | subst (const string &model, const vector< string > &args) |
| Text substitution. | |
| string | subst (const string &model, const string &a0) |
| string | subst (const string &model, const string &a0, const string &a1) |
| string | subst (const string &model, const string &a0, const string &a1, const string &a2) |
| string | subst (const string &model, const string &a0, const string &a1, const string &a2, const string &a3) |
| string | subst (const string &model, const string &a0, const string &a1, const string &a2, const string &a3, const string &a4) |
| string | subst (const string &model, const string &a0, const string &a1, const string &a2, const string &a3, const string &a4, const string &a5) |
| string | subst (const string &model, const string &a0, const string &a1, const string &a2, const string &a3, const string &a4, const string &a5, const string &a6) |
| string | T (char *c) |
| string | T (int n) |
| string | T (long n) |
| static void | ensureFloat (char *c) |
| If needed add a trailing '.0' to the the textual representation of a floating point number to avoid confusions with an int. | |
| string | T (double n) |
| Convert a double-precision float into a string. | |
| string | unquote (const string &s) |
| remove quotes from a string | |
| string | quote (const string &s) |
| add quotes to a string | |
| string | rmWhiteSpaces (const string &s) |
Variables | |
| bool | gInternDoubleSwitch |
| static void ensureFloat | ( | char * | c | ) | [static] |
If needed add a trailing '.0' to the the textual representation of a floating point number to avoid confusions with an int.
Definition at line 168 of file Text.cpp.
References isInt().
Referenced by T().
{
bool isInt = true;
while (*c != 0) {
if ((*c == '.') | (*c == 'e')) isInt = false;
c++;
}
if (isInt) {
*c++ = '.';
*c++ = '0';
*c = 0;
}
}


| string quote | ( | const string & | s | ) |
| string rmWhiteSpaces | ( | const string & | s | ) |
Definition at line 222 of file Text.cpp.
Referenced by extractMetadata().
{
size_t i = s.find_first_not_of(" \t");
size_t j = s.find_last_not_of(" \t");
if ( (i != string::npos) & (j != string::npos) ) {
return s.substr(i, 1+j-i);
} else {
return "";
}
}

| string subst | ( | const string & | model, |
| const vector< string > & | args | ||
| ) |
Text substitution.
Creates a string by replacing all the $n occurences in the model string, with the corresponding arguments. Example : subst("float $0 = $1;", "var", T(10.2))
Definition at line 47 of file Text.cpp.
References substitution().
Referenced by Description::addGroup(), Description::addWidget(), apply_pattern_matcher(), Klass::buildTasksList(), calcNumberedName(), DocCompiler::compileLateq(), SchedulerCompiler::compileMultiSignal(), VectorCompiler::compileMultiSignal(), ScalarCompiler::compileMultiSignal(), ScalarCompiler::compileSingleSignal(), copyFaustSources(), SchedulerCompiler::dlineLoop(), VectorCompiler::dlineLoop(), ScalarCompiler::generateBinOp(), DocCompiler::generateBinOp(), ScalarCompiler::generateButton(), VectorCompiler::generateCacheCode(), ScalarCompiler::generateCheckbox(), AcosPrim::generateCode(), AsinPrim::generateCode(), AtanPrim::generateCode(), CosPrim::generateCode(), SinPrim::generateCode(), TanPrim::generateCode(), ExpPrim::generateCode(), FloorPrim::generateCode(), FmodPrim::generateCode(), CeilPrim::generateCode(), Atan2Prim::generateCode(), PowPrim::generateCode(), RemainderPrim::generateCode(), LogPrim::generateCode(), Log10Prim::generateCode(), SqrtPrim::generateCode(), AbsPrim::generateCode(), RintPrim::generateCode(), MaxPrim::generateCode(), MinPrim::generateCode(), ScalarCompiler::generateDelayLine(), DocCompiler::generateDelayLine(), VectorCompiler::generateDelayVec(), ScalarCompiler::generateDelayVecNoTemp(), DocCompiler::generateDelayVecNoTemp(), DocCompiler::generateDocAccessTbl(), DocCompiler::generateDocConstantTbl(), DocCompiler::generateDocWriteTbl(), VectorCompiler::generateFixDelay(), ScalarCompiler::generateFixDelay(), DocCompiler::generateFixDelay(), ScalarCompiler::generateFloatCast(), DocCompiler::generateFloatCast(), ScalarCompiler::generateHBargraph(), ScalarCompiler::generateHSlider(), ScalarCompiler::generateInput(), DocCompiler::generateInput(), ScalarCompiler::generateIntCast(), DocCompiler::generateIntCast(), ScalarCompiler::generateIota(), DocCompiler::generateIota(), SinPrim::generateLateq(), AtanPrim::generateLateq(), AcosPrim::generateLateq(), AsinPrim::generateLateq(), TanPrim::generateLateq(), CosPrim::generateLateq(), Atan2Prim::generateLateq(), ExpPrim::generateLateq(), FmodPrim::generateLateq(), CeilPrim::generateLateq(), FloorPrim::generateLateq(), RemainderPrim::generateLateq(), LogPrim::generateLateq(), Log10Prim::generateLateq(), PowPrim::generateLateq(), SqrtPrim::generateLateq(), AbsPrim::generateLateq(), RintPrim::generateLateq(), MinPrim::generateLateq(), MaxPrim::generateLateq(), ScalarCompiler::generateNumEntry(), ScalarCompiler::generateOutput(), DocCompiler::generateOutput(), ScalarCompiler::generatePrefix(), DocCompiler::generatePrefix(), ScalarCompiler::generateRDTbl(), DocCompiler::generateRecProj(), ScalarCompiler::generateSelect2(), DocCompiler::generateSelect2(), ScalarCompiler::generateSelect3(), DocCompiler::generateSelect3(), ScalarCompiler::generateSigGen(), ScalarCompiler::generateStaticSigGen(), ScalarCompiler::generateStaticTable(), ScalarCompiler::generateTable(), Compiler::generateUserInterfaceTree(), VectorCompiler::generateVariableStore(), ScalarCompiler::generateVariableStore(), DocCompiler::generateVariableStore(), ScalarCompiler::generateVBargraph(), ScalarCompiler::generateVSlider(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), ScalarCompiler::generateWRTbl(), ScalarCompiler::getFreshID(), DocCompiler::getFreshID(), ScalarCompiler::getTypedNames(), DocCompiler::getTypedNames(), main(), ScalarCompiler::prepare(), Klass::printComputeMethodOpenMP(), Klass::printComputeMethodScalar(), Klass::printComputeMethodScheduler(), Klass::printComputeMethodVectorFaster(), Klass::printComputeMethodVectorSimple(), printDoc(), printDocDgm(), SigFloatGenKlass::println(), Klass::printOneLoopScheduler(), setSigListNickName(), subst(), substitute(), SchedulerCompiler::vectorLoop(), and VectorCompiler::vectorLoop().
{
return substitution(model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0 | ||
| ) |
Definition at line 52 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
return substitution (model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0, | ||
| const string & | a1 | ||
| ) |
Definition at line 59 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
args[1] = a1;
return substitution (model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0, | ||
| const string & | a1, | ||
| const string & | a2 | ||
| ) |
Definition at line 68 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
args[1] = a1;
args[2] = a2;
return substitution (model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0, | ||
| const string & | a1, | ||
| const string & | a2, | ||
| const string & | a3 | ||
| ) |
Definition at line 79 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
args[1] = a1;
args[2] = a2;
args[3] = a3;
return substitution (model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0, | ||
| const string & | a1, | ||
| const string & | a2, | ||
| const string & | a3, | ||
| const string & | a4 | ||
| ) |
Definition at line 91 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
args[1] = a1;
args[2] = a2;
args[3] = a3;
args[4] = a4;
return substitution (model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0, | ||
| const string & | a1, | ||
| const string & | a2, | ||
| const string & | a3, | ||
| const string & | a4, | ||
| const string & | a5 | ||
| ) |
Definition at line 104 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
args[1] = a1;
args[2] = a2;
args[3] = a3;
args[4] = a4;
args[5] = a5;
return substitution (model, args);
}

| string subst | ( | const string & | model, |
| const string & | a0, | ||
| const string & | a1, | ||
| const string & | a2, | ||
| const string & | a3, | ||
| const string & | a4, | ||
| const string & | a5, | ||
| const string & | a6 | ||
| ) |
Definition at line 118 of file Text.cpp.
References substitution().
{
vector<string> args(10);
args[0] = a0;
args[1] = a1;
args[2] = a2;
args[3] = a3;
args[4] = a4;
args[5] = a5;
args[6] = a6;
return substitution (model, args);
}

| static string substitution | ( | const string & | model, |
| const vector< string > & | args | ||
| ) | [static] |
Definition at line 134 of file Text.cpp.
Referenced by subst().
{
char c;
int i=0, ilast = model.length()-1;
string result;
while (i < ilast) {
c = model[i++];
if (c != '$') {
result += c;
} else {
c = model[i++];
if (c >= '0' && c <= '9') {
result += args[c - '0'];
} else {
result += c;
}
}
}
if (i == ilast) result += model[i];
return result;
}

| string T | ( | char * | c | ) |
Definition at line 158 of file Text.cpp.
Referenced by Description::addGroup(), Description::addWidget(), Klass::buildTasksList(), SchedulerCompiler::compileMultiSignal(), VectorCompiler::compileMultiSignal(), ScalarCompiler::compileMultiSignal(), SchedulerCompiler::dlineLoop(), VectorCompiler::dlineLoop(), VectorCompiler::generateCacheCode(), ScalarCompiler::generateCode(), ScalarCompiler::generateDelayLine(), ScalarCompiler::generateDelayVecNoTemp(), DocCompiler::generateDocConstantTbl(), DocCompiler::generateDocWriteTbl(), VectorCompiler::generateFixDelay(), ScalarCompiler::generateFixDelay(), ScalarCompiler::generateHSlider(), ScalarCompiler::generateIota(), ScalarCompiler::generateNumEntry(), ScalarCompiler::generateStaticTable(), ScalarCompiler::generateTable(), ScalarCompiler::generateVSlider(), Compiler::generateWidgetCode(), Compiler::generateWidgetMacro(), ScalarCompiler::getFreshID(), infereFFType(), infereSigType(), infereXType(), P< T >::operator=(), Klass::printOneLoopScheduler(), setSigListNickName(), typeAnnotation(), SchedulerCompiler::vectorLoop(), and VectorCompiler::vectorLoop().
{ return string(c); }

| string T | ( | int | n | ) |
| string T | ( | long | n | ) |
| string T | ( | double | n | ) |
Convert a double-precision float into a string.
Adjusts the precision p to the needs. Add a trailing f if single-precision is required.
Definition at line 188 of file Text.cpp.
References ensureFloat(), and inumix().
{
char c[64];
int p = 1;
do { snprintf(c, 32, "%.*g", p++, n); } while (atof(c) != n);
ensureFloat(c);
return string(c)+inumix();
}

| string unquote | ( | const string & | s | ) |
| bool gInternDoubleSwitch |
1.8.0