proj home

Files   Classes   Functions   Hierarchy  

scopedependentfunctions.h

Go to the documentation of this file.
00001 #ifndef SCOPEDEPENDENTFUNCTIONS_H
00002 #define SCOPEDEPENDENTFUNCTIONS_H
00003 
00004 #include <cassert>
00005 #include <deque>
00006 #include <string>
00007 #include <iostream>
00008 using namespace std;
00009 
00010 #include <rpn.h>
00011 
00012 
00013 /* Brief: Function form of @+ .*/
00014 class stateevalset : public rpnfunction
00015 {
00016 public:
00017 
00018   stateevalset() {}
00019   stateevalset(deque<rpnbase*>& ds, bool const evaluate=true);
00020   ~stateevalset() {}
00021   rpnbase* copy() const;
00022 
00023   string const name() const { return string("stateevalset"); }
00024 
00025   void eval( deque<rpnbase*>& ds );
00026 };
00027 
00028 /* Brief: Function form of @- .*/
00029 class stateevalunset : public rpnfunction
00030 {
00031 public:
00032 
00033   stateevalunset() {}
00034   stateevalunset(deque<rpnbase*>& ds, bool const evaluate=true);
00035   ~stateevalunset() {}
00036   rpnbase* copy() const;
00037 
00038   string const name() const { return string("stateevalunset"); }
00039 
00040   void eval( deque<rpnbase*>& ds );
00041 };
00042 
00043 class stateevalquery : public rpnfunction
00044 {
00045 public:
00046 
00047   stateevalquery() {}
00048   stateevalquery(deque<rpnbase*>& ds, bool const evaluate=true);
00049   ~stateevalquery() {}
00050   rpnbase* copy() const;
00051 
00052   string const name() const 
00053     { return string("stateevalis"); }
00054 
00055   void eval( deque<rpnbase*>& ds );
00056 };
00057 
00058 /* Brief: Read in a environment. This resets
00059  the current environment. 
00060 
00061    Note: load and dictadd are coupled classes
00062     in responsibity for maintaining a valid 
00063     dictionary(pointers).   
00064 
00065    In rpn the user can edit their user functions
00066    and the dictionary holds a pointer to
00067    that function.
00068 */
00069 class load: public rpnfunction
00070 {
00071   void bin();
00072 public:
00073 
00074   load() {}
00075   load(deque<rpnbase*>& ds, bool const evaluate=true);
00076   ~load() {}
00077   rpnbase* copy() const;
00078 
00079   void visit(deque<rpnbase*>& ds,rpnstring& fname);
00080 
00081   string const name() const { return string("load"); }
00082 
00083   void eval( deque<rpnbase*>& ds );
00084 };
00085 
00086 /* Brief: Write the environment out to a a file. */
00087 class rpnsave: public rpnfunction
00088 {
00089   void writevariables(ostream& os, rpnprogram* p);
00090   void writeprogram(ostream& os, rpnprogram* p);
00091 public:
00092 
00093   rpnsave() {}
00094   rpnsave(deque<rpnbase*>& ds, bool const evaluate=true);
00095   ~rpnsave() {}
00096   rpnbase* copy() const;
00097 
00098   void visit(deque<rpnbase*>& ds,rpnstring& fname);
00099 
00100   string const name() const { return string("save"); }
00101 
00102   void eval( deque<rpnbase*>& ds );
00103 };
00104 
00105 /* Brief: Add a user function to the dictionary. */
00106 class dictadd: public rpnfunction
00107 {
00108 public:
00109 
00110   dictadd() {}
00111   dictadd(deque<rpnbase*>& ds, bool const evaluate=true);
00112   ~dictadd() {}
00113   rpnbase* copy() const;
00114 
00115   void visit(deque<rpnbase*>& ds,rpnstring& fname);
00116 
00117   string const name() const 
00118     { return string("dictadd"); }
00119 
00120   void eval( deque<rpnbase*>& ds );
00121 };
00122 
00123 /* Brief: Interpret the string as input. */
00124 class rpninterp: public rpnfunction
00125 {
00126 public:
00127 
00128   rpninterp() {}
00129   rpninterp(deque<rpnbase*>& ds, bool const evaluate=true);
00130   ~rpninterp() {}
00131   rpnbase* copy() const;
00132 
00133   void visit(deque<rpnbase*>& ds,rpnstring& s );
00134 
00135   string const name() const { return string("interp"); }
00136 
00137   void eval( deque<rpnbase*>& ds );
00138 };
00139 
00140 /*
00141 class read: public rpnfunction
00142 {
00143   void bin();
00144 public:
00145 
00146   read() {}
00147   read(deque<rpnbase*>& ds, bool const evaluate=true);
00148   ~read() {}
00149   rpnbase* copy() const;
00150 
00151   void visit(deque<rpnbase*>& ds,rpnstring& fname);
00152 
00153   string const name() const { return string("read"); }
00154 
00155   void eval( deque<rpnbase*>& ds );
00156 };
00157 */
00158 
00159 
00160 // 
00161 //  Initialize the scope dependent functions, 
00162 //  called after scope initialized. 
00163 //
00164 class initscopedependentfunctions
00165 {
00166 public:
00167 
00168   initscopedependentfunctions();
00169 
00170 };
00171 
00172 
00173 
00174 
00175 
00176 #endif
00177 
00178 

Generated on Fri Mar 4 00:49:31 2011 for Chelton Evans Source by  doxygen 1.5.8