home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* CALCTYPE.PAS *)
- (* ... und ein paar Typen: *)
-
- ErrString = STRING [80]; (* Textparameter der CalcError-Prozedur *)
- Calc_IdStr = STRING [Calc_IdLen]; (* Var.-Bezeichner in Var.-Tabelle *)
- Calc_String = STRING [128]; (* enthaelt zu uebersetz. Ausdruck *)
- Calc_Operand = REAL; (* Typ der zu berechnenden Ausdruecke *)
-
- (* Definition der Calc-Symbole. Die dazugehoerigen Bezeichner befinden *)
- (* sich in dem String-Feld 'Calc_Ids' (s. CALCVAR.PAS) *)
- Calc_Symbols =
- (Calc_Err, (* bewirkt Fehler-Abbruch bei Uebersetzung *)
- Calc_EOE, (* Symbol ";" : Ende des Ausdrucks *)
- Calc_Const, Calc_Var, (* Konstante, Variable *)
- Calc_Pi, Calc_E, (* vordef. Konstanten *)
- Calc_lp, Calc_rp, (* Klammern *)
- Calc_Neg, (* Negierungs-Operator *)
- Calc_Add, Calc_Sub, (* Operatoren in Expression *)
- Calc_Mul, Calc_Dvd, Calc_Div, (* Operatoren in Term *)
- Calc_Mod, Calc_ggT, Calc_kgV,
- Calc_Pow, (* Operatoren in Faktor *)
- Calc_Sqr, Calc_Sqrt, Calc_Exp, (* Funktionen *)
- Calc_Ln, Calc_Lg, Calc_Ld,
- Calc_Sin, Calc_Cos, Calc_Tan, Calc_Cot,
- Calc_ArcSin, Calc_ArcCos, Calc_ArcTan, Calc_ArcCot,
- Calc_Sinh, Calc_Cosh, Calc_Tanh, Calc_Coth,
- Calc_ArcSinh, Calc_ArcCosh, Calc_ArcTanh, Calc_ArcCoth,
- Calc_int, Calc_Sig,
- Calc_Abs, Calc_Deg, Calc_Rad, Calc_Rez, Calc_Fak, Calc_End);
-
- (* Definition des vom Mathe-Compiler erzeugten, von 'CalcExpression' *)
- (* auszufuehrenden Programms: *)
- Calc_Prog = ^Calc_Instruct;
- Calc_Instruct= RECORD (* elementare Anweisung im Programm *)
- NextInst: Calc_Prog; (* hier geht's zur naechsten *)
- Instruct: Calc_Symbols; (* was getan werden soll ... *)
- CASE Calc_Symbols OF (*...und mit welchem Operand *)
- Calc_Var : (VarIndex: INTEGER);
- Calc_Const: (Operand : Calc_Operand);
- END;
-
- (* Definition der zu einem 'Calc_Prog' gehoerenden Variablen-Tabelle: *)
- Calc_VarType = RECORD (* eine Variable besteht aus... *)
- VarId: Calc_IdStr; (* ... ihrem Bezeichner ... *)
- Value: Calc_Operand (* ... und ihrem aktuellen Wert *)
- END;
- (* ... und das Ganze dynamisch nach Bedarf: *)
- Calc_VarTab = ^Calc_VarTable;
- (* die ganze Tabelle besteht aus 'Calc_MaxVar' Variablen. In *)
- (* 'VarTable[0].Value' ist die Anzahl der in der Tabelle enthaltenen *)
- (* Variablen vermerkt. *)
- Calc_VarTable = ARRAY[0..Calc_MaxVar] OF Calc_VarType;
-
- (* ----------------------------------------------------------------------- *)
- (* Ende von CALCTYPE.PAS *)