Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| thenelseif () | |
| thenelseif (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~thenelseif () | |
| rpnbase * | copy () const |
| void | visit (deque< rpnbase * > &ds, rpnreal &n) |
| void | visit (deque< rpnbase * > &ds, rpninteger &n) |
| string const | name () const |
| void | eval (deque< rpnbase * > &ds) |
Definition at line 389 of file rpnfunc.h.
| thenelseif::thenelseif | ( | ) | [inline] |
Definition at line 908 of file rpnfunc.cpp.
References eval().
00909 { 00910 if (evaluate) 00911 eval(ds); 00912 else 00913 ds.push_front(this); 00914 }
| rpnbase * thenelseif::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 916 of file rpnfunc.cpp.
References thenelseif().
00917 { 00918 return new thenelseif(); 00919 }
| void thenelseif::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 921 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by thenelseif().
| string const thenelseif::name | ( | ) | const [inline, virtual] |
| void thenelseif::visit | ( | deque< rpnbase * > & | ds, | |
| rpninteger & | n | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 951 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::eval(), and rpninteger::num.
00952 { 00953 rpnbase* x0 = ds.front(); 00954 ds.pop_front(); 00955 rpnbase* x1 = ds.front(); 00956 ds.pop_front(); 00957 rpnbase* x2 = ds.front(); 00958 ds.pop_front(); 00959 00960 if (n.num != 0) 00961 { 00962 x1->dec(); 00963 x2->eval(ds); 00964 } 00965 else 00966 { 00967 x2->dec(); 00968 x1->eval(ds); 00969 } 00970 x0->dec(); 00971 }
Reimplemented from rpnfunction.
Definition at line 929 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::eval(), and rpnreal::num.
00930 { 00931 rpnbase* x0 = ds.front(); 00932 ds.pop_front(); 00933 rpnbase* x1 = ds.front(); 00934 ds.pop_front(); 00935 rpnbase* x2 = ds.front(); 00936 ds.pop_front(); 00937 00938 if (n.num != 0) 00939 { 00940 x1->dec(); 00941 x2->eval(ds); 00942 } 00943 else 00944 { 00945 x2->dec(); 00946 x1->eval(ds); 00947 } 00948 x0->dec(); 00949 }
1.5.8