home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 04 / quellen / calctype.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1979-12-31  |  3.5 KB  |  57 lines

  1. (* ----------------------------------------------------------------------- *)
  2. (*                         CALCTYPE.PAS                                    *)
  3. (*                  ... und ein paar Typen:                                *)
  4.  
  5.    ErrString    = STRING [80];     (* Textparameter der CalcError-Prozedur *)
  6.    Calc_IdStr   = STRING [Calc_IdLen];  (* Var.-Bezeichner in Var.-Tabelle *)
  7.    Calc_String  = STRING [128];      (* enthaelt zu uebersetz. Ausdruck    *)
  8.    Calc_Operand = REAL;              (* Typ der zu berechnenden Ausdruecke *)
  9.  
  10.    (* Definition der Calc-Symbole. Die dazugehoerigen Bezeichner befinden  *)
  11.    (* sich in dem String-Feld 'Calc_Ids' (s. CALCVAR.PAS)                  *)
  12.    Calc_Symbols =
  13.       (Calc_Err,                (* bewirkt Fehler-Abbruch bei Uebersetzung *)
  14.        Calc_EOE,                        (* Symbol ";" : Ende des Ausdrucks *)
  15.        Calc_Const, Calc_Var,                   (* Konstante, Variable      *)
  16.        Calc_Pi, Calc_E,                        (* vordef. Konstanten       *)
  17.        Calc_lp, Calc_rp,                       (* Klammern                 *)
  18.        Calc_Neg,                               (* Negierungs-Operator      *)
  19.        Calc_Add, Calc_Sub,                     (* Operatoren in Expression *)
  20.        Calc_Mul, Calc_Dvd, Calc_Div,           (* Operatoren in Term       *)
  21.        Calc_Mod, Calc_ggT, Calc_kgV,
  22.        Calc_Pow,                               (* Operatoren in Faktor     *)
  23.        Calc_Sqr, Calc_Sqrt, Calc_Exp,                        (* Funktionen *)
  24.        Calc_Ln, Calc_Lg, Calc_Ld,
  25.        Calc_Sin, Calc_Cos, Calc_Tan, Calc_Cot,
  26.        Calc_ArcSin, Calc_ArcCos, Calc_ArcTan, Calc_ArcCot,
  27.        Calc_Sinh, Calc_Cosh, Calc_Tanh, Calc_Coth,
  28.        Calc_ArcSinh, Calc_ArcCosh, Calc_ArcTanh, Calc_ArcCoth,
  29.        Calc_int, Calc_Sig,
  30.        Calc_Abs, Calc_Deg, Calc_Rad, Calc_Rez, Calc_Fak, Calc_End);
  31.  
  32.    (* Definition des vom Mathe-Compiler erzeugten, von 'CalcExpression'    *)
  33.    (* auszufuehrenden Programms:                                           *)
  34.    Calc_Prog    = ^Calc_Instruct;
  35.    Calc_Instruct= RECORD              (* elementare Anweisung im Programm  *)
  36.                      NextInst: Calc_Prog;     (* hier geht's zur naechsten *)
  37.                      Instruct: Calc_Symbols;  (* was getan werden soll ... *)
  38.                      CASE Calc_Symbols OF     (*...und mit welchem Operand *)
  39.                         Calc_Var  : (VarIndex: INTEGER);
  40.                         Calc_Const: (Operand : Calc_Operand);
  41.                   END;
  42.  
  43.    (* Definition der zu einem 'Calc_Prog' gehoerenden Variablen-Tabelle:   *)
  44.    Calc_VarType  = RECORD                  (* eine Variable besteht aus... *)
  45.                       VarId: Calc_IdStr;   (* ... ihrem Bezeichner ...     *)
  46.                       Value: Calc_Operand  (* ... und ihrem aktuellen Wert *)
  47.                    END;
  48.                                (* ... und das Ganze dynamisch nach Bedarf: *)
  49.    Calc_VarTab   = ^Calc_VarTable;
  50.    (* die ganze Tabelle besteht aus 'Calc_MaxVar' Variablen. In            *)
  51.    (* 'VarTable[0].Value' ist die Anzahl der in der Tabelle enthaltenen    *)
  52.    (* Variablen vermerkt.                                                  *)
  53.    Calc_VarTable = ARRAY[0..Calc_MaxVar] OF Calc_VarType;
  54.  
  55. (* ----------------------------------------------------------------------- *)
  56. (*                    Ende von CALCTYPE.PAS                                *)
  57.