doc_notice.cpp File Reference

#include <iostream>
#include <fstream>
#include <set>
#include <time.h>
#include <cstdlib>
#include <errno.h>
#include "doc_notice.hh"
#include "doc_lang.hh"
#include "enrobage.hh"
#include "compatibility.hh"
Include dependency graph for doc_notice.cpp:

Go to the source code of this file.

Functions

static void initDocNoticeKeySet ()
 Initialize gDocNoticeKeySet, a set containing all the keywords.
static void initDocNoticeFlagMap ()
 Initialize gDocNoticeFlagMap, a map containing all the flags.
static void initCompilationDate ()
static void printDocNoticeStringMapContent ()
 Simple trace function.
static struct tm * getCompilationDate ()
void printDocNotice (const string &faustversion, ostream &docout)
 Print the content of the notice (a string map), as LaTeX items inside an itemize environment.
void initDocNotice ()
 Dispatch initialization of notice containers, after default notice file loading.

Variables

map< string, bool > gDocNoticeFlagMap
 gDocNoticeFlagMap is public to let others turn to "true" flags that one want to print.
map< string, string > gDocNoticeStringMap
set< string > gDocNoticeKeySet
static struct tm gCompilationDate

Function Documentation

static struct tm * getCompilationDate (  )  [static, read]

Definition at line 231 of file doc_notice.cpp.

References gCompilationDate, and initCompilationDate().

Referenced by printDocNotice().

00232 {
00233     initCompilationDate();
00234     return &gCompilationDate;
00235 }

Here is the call graph for this function:

Here is the caller graph for this function:

static void initCompilationDate (  )  [static]

Definition at line 238 of file doc_notice.cpp.

References gCompilationDate.

Referenced by getCompilationDate().

00239 {
00240     time_t now;
00241     
00242     time(&now);
00243     gCompilationDate = *localtime(&now);
00244 }

Here is the caller graph for this function:

void initDocNotice (  ) 

Dispatch initialization of notice containers, after default notice file loading.

Remarks:
The default (english) notice is already loaded at this stage to ensure that all keywords will receive a definition.

Definition at line 140 of file doc_notice.cpp.

References initDocNoticeFlagMap(), and initDocNoticeKeySet().

Referenced by loadTranslationFile().

00141 {
00142     initDocNoticeKeySet();
00143     initDocNoticeFlagMap();
00144 }

Here is the call graph for this function:

Here is the caller graph for this function:

static void initDocNoticeFlagMap (  )  [static]

Initialize gDocNoticeFlagMap, a map containing all the flags.

Definition at line 199 of file doc_notice.cpp.

References gDocNoticeFlagMap, and gDocNoticeKeySet.

Referenced by initDocNotice().

00199                                    {
00200     
00201     for (set<string>::iterator it=gDocNoticeKeySet.begin(); it != gDocNoticeKeySet.end() ; ++it ) {
00202         gDocNoticeFlagMap[*it] = false;
00203     }
00204     
00205     gDocNoticeFlagMap["compilstamp1"]   = true;
00206     gDocNoticeFlagMap["compilstamp2"]   = true;
00207     gDocNoticeFlagMap["compilstamp3"]   = true;
00208     gDocNoticeFlagMap["causality"]      = true;
00209 }

Here is the caller graph for this function:

static void initDocNoticeKeySet (  )  [static]

Initialize gDocNoticeKeySet, a set containing all the keywords.

Definition at line 157 of file doc_notice.cpp.

References gDocNoticeKeySet.

Referenced by initDocNotice().

00157                                   {
00158     
00159     gDocNoticeKeySet.insert("causality");
00160     gDocNoticeKeySet.insert("compilstamp1");
00161     gDocNoticeKeySet.insert("compilstamp2");
00162     gDocNoticeKeySet.insert("compilstamp3");
00163     gDocNoticeKeySet.insert("nameconflicts");
00164     gDocNoticeKeySet.insert("svgdir");
00165     
00166     gDocNoticeKeySet.insert("fsamp");
00167     gDocNoticeKeySet.insert("foreignfun");
00168     gDocNoticeKeySet.insert("cdot");
00169     gDocNoticeKeySet.insert("intcast");
00170     
00171     gDocNoticeKeySet.insert("intplus");
00172     gDocNoticeKeySet.insert("intminus");
00173     gDocNoticeKeySet.insert("intmult");
00174     gDocNoticeKeySet.insert("intdiv");
00175     
00176     gDocNoticeKeySet.insert("inputsig");
00177     gDocNoticeKeySet.insert("inputsigs");
00178     gDocNoticeKeySet.insert("outputsig");
00179     gDocNoticeKeySet.insert("outputsigs");
00180     gDocNoticeKeySet.insert("constsigs");
00181     gDocNoticeKeySet.insert("paramsigs");
00182     gDocNoticeKeySet.insert("storedsigs");
00183     gDocNoticeKeySet.insert("recursigs");
00184     gDocNoticeKeySet.insert("prefixsigs");
00185     gDocNoticeKeySet.insert("selectionsig");
00186     gDocNoticeKeySet.insert("selectionsigs");
00187     
00188     gDocNoticeKeySet.insert("buttonsigs");
00189     gDocNoticeKeySet.insert("checkboxsigs");
00190     gDocNoticeKeySet.insert("slidersigs");
00191     gDocNoticeKeySet.insert("nentrysigs");
00192     gDocNoticeKeySet.insert("tablesigs");
00193 }

Here is the caller graph for this function:

void printDocNotice ( const string &  faustversion,
ostream &  docout 
)

Print the content of the notice (a string map), as LaTeX items inside an itemize environment.

Remarks:
This function is meant to make it easier to reorder the notice printing by gathering all the items.
Parameters:
[in] notice The set containing the strings to print as items.
[in] faustversion The current version of this Faust compiler.
[out] docout The LaTeX output file to print into.

Definition at line 68 of file doc_notice.cpp.

References gDocNoticeFlagMap, gDocNoticeStringMap, and getCompilationDate().

Referenced by printdoccontent().

00068                                                                  {
00069     
00070     if (! gDocNoticeStringMap.empty() ) {
00071         
00072         //cerr << "Documentator : printDocNotice : printing..." << endl;
00073         
00074         docout << endl << "\\begin{itemize}" << endl;
00075         
00076         /* Faust "compilation stamp" : version and date. */
00077         if(gDocNoticeFlagMap["compilstamp1"] && gDocNoticeFlagMap["compilstamp2"] && gDocNoticeFlagMap["compilstamp3"]) {
00078             char datebuf [150];
00079             strftime (datebuf, 150, "%B %d, %Y", getCompilationDate());
00080             docout << "\t\\item " << gDocNoticeStringMap["compilstamp1"] << faustversion;
00081             docout << gDocNoticeStringMap["compilstamp2"] << datebuf;
00082             docout << gDocNoticeStringMap["compilstamp3"] << endl;
00083         }
00084         
00085         /* Various warnings and remarks. */
00086         if(gDocNoticeFlagMap["svgdir"])         docout << "\t\\item " << gDocNoticeStringMap["svgdir"]  << endl;
00087         if(gDocNoticeFlagMap["nameconflicts"])  docout << "\t\\item " << gDocNoticeStringMap["nameconflicts"]   << endl;
00088         if(gDocNoticeFlagMap["causality"])      docout << "\t\\item " << gDocNoticeStringMap["causality"]   << endl;
00089         
00090         /* Naming conventions of variables and functions. */
00091         if(gDocNoticeFlagMap["fsamp"])          docout << "\t\\item " << gDocNoticeStringMap["fsamp"]   << endl;
00092         if(gDocNoticeFlagMap["foreignfun"])     docout << "\t\\item " << gDocNoticeStringMap["foreignfun"]  << endl;
00093         if(gDocNoticeFlagMap["intcast"])        docout << "\t\\item " << gDocNoticeStringMap["intcast"] << endl;
00094         if(gDocNoticeFlagMap["cdot"])           docout << "\t\\item " << gDocNoticeStringMap["cdot"]    << endl;
00095         
00096         /* Integer arithmetic. */
00097         if(gDocNoticeFlagMap["intplus"] || 
00098            gDocNoticeFlagMap["intminus"] || 
00099            gDocNoticeFlagMap["intmult"] || 
00100            gDocNoticeFlagMap["intdiv"]) 
00101         {
00102             if(gDocNoticeFlagMap["intplus"])    docout << "\t\\item " << gDocNoticeStringMap["intplus"] << endl;
00103             if(gDocNoticeFlagMap["intminus"])   docout << "\t\\item " << gDocNoticeStringMap["intminus"]    << endl;
00104             if(gDocNoticeFlagMap["intmult"])    docout << "\t\\item " << gDocNoticeStringMap["intmult"] << endl;
00105             if(gDocNoticeFlagMap["intdiv"])     docout << "\t\\item " << gDocNoticeStringMap["intdiv"]  << endl;
00106         }
00107         
00108         /* Signals naming conventions. */
00109         if(gDocNoticeFlagMap["inputsig"])       docout << "\t\\item " << gDocNoticeStringMap["inputsig"]    << endl;
00110         if(gDocNoticeFlagMap["inputsigs"])      docout << "\t\\item " << gDocNoticeStringMap["inputsigs"]   << endl;
00111         if(gDocNoticeFlagMap["outputsig"])      docout << "\t\\item " << gDocNoticeStringMap["outputsig"]   << endl;
00112         if(gDocNoticeFlagMap["outputsigs"])     docout << "\t\\item " << gDocNoticeStringMap["outputsigs"]  << endl;
00113         if(gDocNoticeFlagMap["constsigs"])      docout << "\t\\item " << gDocNoticeStringMap["constsigs"]   << endl;
00114         if(gDocNoticeFlagMap["paramsigs"])      docout << "\t\\item " << gDocNoticeStringMap["paramsigs"]   << endl;
00115         if(gDocNoticeFlagMap["storedsigs"])     docout << "\t\\item " << gDocNoticeStringMap["storedsigs"]  << endl;
00116         if(gDocNoticeFlagMap["buttonsigs"])     docout << "\t\\item " << gDocNoticeStringMap["buttonsigs"]  << endl;
00117         if(gDocNoticeFlagMap["checkboxsigs"])   docout << "\t\\item " << gDocNoticeStringMap["checkboxsigs"]    << endl;
00118         if(gDocNoticeFlagMap["slidersigs"])     docout << "\t\\item " << gDocNoticeStringMap["slidersigs"]  << endl;
00119         if(gDocNoticeFlagMap["nentrysigs"])     docout << "\t\\item " << gDocNoticeStringMap["nentrysigs"]  << endl;
00120         if(gDocNoticeFlagMap["tablesigs"])      docout << "\t\\item " << gDocNoticeStringMap["tablesigs"]   << endl;
00121         if(gDocNoticeFlagMap["recursigs"])      docout << "\t\\item " << gDocNoticeStringMap["recursigs"]   << endl;
00122         if(gDocNoticeFlagMap["prefixsigs"])     docout << "\t\\item " << gDocNoticeStringMap["prefixsigs"]  << endl;
00123         if(gDocNoticeFlagMap["selectionsig"])   docout << "\t\\item " << gDocNoticeStringMap["selectionsig"]    << endl;
00124         if(gDocNoticeFlagMap["selectionsigs"])  docout << "\t\\item " << gDocNoticeStringMap["selectionsigs"]   << endl;
00125         
00126         docout << "\\end{itemize}" << endl << endl;
00127     }
00128     //cerr << "  ... Documentator : printDocNotice : end of printing." << endl;
00129 }

Here is the call graph for this function:

Here is the caller graph for this function:

static void printDocNoticeStringMapContent (  )  [static]

Simple trace function.

Definition at line 215 of file doc_notice.cpp.

References gDocNoticeStringMap.

00215                                              {
00216     bool trace = false;
00217     if(trace) {
00218         cout << "gDocNoticeStringMap.size() = " << gDocNoticeStringMap.size() << endl;
00219         map<string,string>::iterator it;
00220         int i = 1;
00221         for(it = gDocNoticeStringMap.begin(); it!=gDocNoticeStringMap.end(); ++it)
00222             cout << i++ << ".\tgDocNoticeStringMap[" << it->first << "] \t= '" << it->second << "'" << endl;
00223     }
00224 }


Variable Documentation

struct tm gCompilationDate [static]

Definition at line 47 of file doc_notice.cpp.

Referenced by getCompilationDate(), and initCompilationDate().

map<string, bool> gDocNoticeFlagMap
set<string> gDocNoticeKeySet

Definition at line 39 of file doc_notice.cpp.

Referenced by initDocNoticeFlagMap(), initDocNoticeKeySet(), and storePair().

map<string, string> gDocNoticeStringMap
Generated on Wed Apr 28 23:45:47 2010 for FAUST compiler by  doxygen 1.6.3