+++ /dev/null
-/************************************************************************
- ************************************************************************
- FAUST compiler
- Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale
- ---------------------------------------------------------------------
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- ************************************************************************
- ************************************************************************/
-
-
-
-#ifndef _LATEQ_H
-#define _LATEQ_H
-
-/**********************************************************************
- - lateq.hh : the Lateq class definition (FAUST project) -
- - for automatic generation of documentation -
- - "lateq" stands for "LaTeX equations" -
- - Several containers store LaTeX formulas by type of signals -
- - Formulas usually are signal definitions,
- except for input signals (only names). -
-
-
- Historique :
- -----------
- 17-10-2001 : (klass.hh) implementation initiale (yo)
- 18-10-2001 : (klass.hh) Ajout de getFreshID (yo)
- 02-11-2001 : (klass.hh) Ajout de sous classes (yo)
- 16-08-2009 : (lateq.hh) Création de lateq depuis klass.hh (kb)
- 08-09-2009 : (lateq.hh) Grand nettoyage par le vide (yo & kb)
- 23-09-2009 : (lateq.hh) Poursuite du nettoyage (kb)
- 2009-11-23 : (lateq.hh) End of cleaning (kb)
-
-***********************************************************************/
-
-using namespace std;
-
-#include <string>
-#include <list>
-#include <vector>
-#include <map>
-
-
-class Lateq {
-
-public:
-
- Lateq (const int& numInputs, const int& numOutputs)
- : fNumInputs(numInputs), fNumOutputs(numOutputs)
- {}
-
- ~Lateq() {}
-
- /** Add a line of a latex equation code corresponding to a signal. */
- void addInputSigFormula (const string& str) { fInputSigsFormulas.push_back(str); }
- void addConstSigFormula (const string& str) { fConstSigsFormulas.push_back(str); }
- void addParamSigFormula (const string& str) { fParamSigsFormulas.push_back(str); }
- void addStoreSigFormula (const string& str) { fStoreSigsFormulas.push_back(str); }
- void addRecurSigFormula (const string& str) { fRecurSigsFormulas.push_back(str); }
- void addRDTblSigFormula (const string& str) { fRDTblSigsFormulas.push_back(str); }
- void addRWTblSigFormula (const string& str) { fRWTblSigsFormulas.push_back(str); }
- void addSelectSigFormula (const string& str) { fSelectSigsFormulas.push_back(str); }
- void addPrefixSigFormula (const string& str) { fPrefixSigsFormulas.push_back(str); }
- void addOutputSigFormula (const string& str) { fOutputSigsFormulas.push_back(str); }
- void addUISigFormula (const string& path, const string& str) { fUISigsFormulas.insert(make_pair(path, str)); };
-
- /** Top-level method to print a whole set of compiled LaTeX formulas. */
- void println(ostream& docout);
-
- int inputs() const { return fNumInputs; }
- int outputs() const { return fNumOutputs; }
-
-
-private:
-
- const int fNumInputs;
- const int fNumOutputs;
-
- /** LaTeX formulas to print. */
- list<string> fInputSigsFormulas;
- list<string> fConstSigsFormulas;
- list<string> fParamSigsFormulas;
- list<string> fStoreSigsFormulas;
- list<string> fRecurSigsFormulas;
- list<string> fRDTblSigsFormulas;
- list<string> fRWTblSigsFormulas;
- list<string> fSelectSigsFormulas;
- list<string> fPrefixSigsFormulas;
- list<string> fOutputSigsFormulas;
- multimap<string,string> fUISigsFormulas;
-
- string makeItemTitle(const unsigned int formulasListSize, const string& titleName);
- string makeSignamesList(const list<string>& formulasList, const string& ending);
- string makeSignamesList(const vector<list<string> >& formulasListsVector, const string& ending); ///< For all "internal" signals.
- string getSigName(const string& s);
- string makeSigDomain(const list<string>& formulasList);
- string getUISigName(const string& s);
- char getUISigType(const string& s);
- vector<list<string> > makeUISignamesVector(const multimap<string,string>& field);
-
- void printOneLine (const string& section, ostream& docout);
- void printHierarchy (const string& section, multimap<string,string>& field, ostream& docout);
- void printDGroup (const string& section, list<string>& field, ostream& docout);
- void printMath (const string& section, list<string>& field, ostream& docout);
-
- bool hasNotOnlyEmptyKeys(multimap<string,string>& mm);
- void tab(int n, ostream& docout) const;
-};
-
-void initDocMath();
-
-
-#endif