home *** CD-ROM | disk | FTP | other *** search
-
- // Class-Definitionen:
-
- class Func
- { static double Dummy;
- public:
- virtual double eval(double) = 0;
- virtual void print(char*) = 0;
- virtual ~Func();
- virtual int isconst(double &val = Dummy);
- };
-
- class KonstN: public Func
- { double Konst;
- public:
- double eval(double)
- { return Konst; }
- int isconst(double &);
- KonstN(double);
- void print(char*);
- };
-
- class VarN: public Func
- { public:
- double eval(double x)
- { return x; }
- void print(char*);
- };
-
- class ErrorN: public Func
- { public:
- double eval(double)
- { return 1; }
- void print(char*);
- };
-
- enum UnOps { Op_neg, Op_sqr, Op_sqrt, Op_sin, Op_cos, Op_exp, Op_ln};
-
- enum BinOps { Op_add, Op_sub, Op_mult, Op_div, Op_pot };
-
- class UnOpN: public Func
- { UnOps oper;
- Func *arg;
- public:
- double eval(double);
- UnOpN(UnOps, Func*);
- void print(char*);
- ~UnOpN();
- };
-
- class BinOpN: public Func
- { BinOps oper;
- Func *l, *r;
- public:
- double eval(double);
- BinOpN(BinOps, Func*, Func*);
- void print(char*);
- ~BinOpN();
- };
-
- Func *Parse(char*);
-
-