00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _PPSIG_H
00025 #define _PPSIG_H
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #include <iostream>
00038 #include <sstream>
00039 #include "signals.hh"
00040
00041 using namespace std;
00042
00043
00044
00045
00046
00047
00048 class ppsig
00049 {
00050 Tree sig;
00051 Tree fEnv;
00052 int fPriority;
00053 bool fHideRecursion;
00054 public:
00055 ppsig(Tree s) : sig(s), fEnv(nil), fPriority(0), fHideRecursion(false) {}
00056 ostream& print (ostream& fout) const;
00057
00058 private:
00059 ppsig(Tree s, Tree env, int priority=0) : sig(s), fEnv(env), fPriority(priority), fHideRecursion(true) {}
00060 ostream& printinfix (ostream& fout, const string& opname, int priority, Tree x, Tree y) const;
00061 ostream& printfun (ostream& fout, const string& funame, Tree x) const;
00062 ostream& printfun (ostream& fout, const string& funame, Tree x, Tree y) const;
00063 ostream& printfun (ostream& fout, const string& funame, Tree x, Tree y, Tree z) const;
00064 ostream& printfun (ostream& fout, const string& funame, Tree x, Tree y, Tree z, Tree zz) const;
00065 ostream& printout (ostream& fout, int i, Tree x) const;
00066 ostream& printlist (ostream& fout, Tree largs) const;
00067 ostream& printff (ostream& fout, Tree ff, Tree largs) const;
00068 ostream& printrec (ostream& fout, Tree var, Tree lexp, bool hide) const;
00069 ostream& printextended (ostream& fout, Tree sig) const;
00070 ostream& printui (ostream& fout, const string& funame, Tree label) const;
00071 ostream& printui (ostream& fout, const string& funame, Tree label, Tree lo, Tree hi, Tree step) const;
00072 ostream& printui (ostream& fout, const string& funame, Tree label, Tree cur, Tree lo, Tree hi, Tree step) const;
00073 ostream& printlabel (ostream& fout, Tree pathname) const;
00074 ostream& printFixDelay (ostream& fout, Tree exp, Tree delay) const;
00075
00076 };
00077
00078 inline ostream& operator << (ostream& file, const ppsig& pp) { return pp.print(file); }
00079
00080 #endif