home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 08 / calc / calcvar.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-05-22  |  2.4 KB  |  51 lines

  1. (* ----------------------------------------------------------------------- *)
  2. (*                           CALCVAR.PAS                                   *)
  3. (*           ... sowie ein paar globale Groessen:                          *)
  4.  
  5. (* 'CalcDecMod' steuert die Variablen-Verarbeitung des Compilers. Zeichen-
  6.     folgen im Ausdruck, die nicht als reservierte Symbole identifiziert
  7.     werden koennen, werden entsprechend 'CalcDecMod' folgendermasen be-
  8.     handelt:
  9.     = FALSE: die Zeichenfolge wird als Variable interpretiert, in die zum
  10.              Ausdruck gehoerende Variablen-Tabelle uebernommen (wenn noch
  11.              nicht vorhanden) und entsprechend behandelt.
  12.     = TRUE : es werden nur Zeichenfolgen als Variablen akzeptiert, die
  13.              schon vor dem Uebersetzen in der Variablen-Tabelle vorhanden
  14.              waren.
  15.     Sinn und Zweck des Ganzen ist dem Begleitartikel zu entnehmen!         *)
  16.  
  17.     CalcDecMod : BOOLEAN;
  18.  
  19. (* 'CalcResult = FALSE' zeigt an, dass bei der Verarbeitung des Ausdrucks
  20.     (Uebersetzung oder Auswertung) irgend etwas schief gelaufen ist!       *)
  21.  
  22.     CalcResult : BOOLEAN;
  23.  
  24. (* fuer die Bezeichner der Symbole wurde hier eine typisierte Konstante
  25.    (Turbo Pascal!) verwendetet. Bei anderen Dialekten muss folgendermassen
  26.    vorgegangen werden:
  27.       VAR Calc_Ids : ARRAY [Calc_Symbols] OF Calc_IdStr;
  28.  
  29.    und dann im Anweisungsteil:
  30.    BEGIN
  31.       Calc_Ids[0] := 'ERR';  Calc_Ids[1] := 'CONST';  Calc_Ids[2] := 'VAR';
  32.       ...
  33.       Calc_Ids[Calc_NoSym] := 'letzter Bezeichner';
  34.       ...
  35.  
  36.    Das Ganze kann z.B. lokal in der Prozedur 'CompileExpression' geschehen,
  37.    besser aber nur einmal zum Beginn des verwendenten Hauptprogrammes.     *)
  38.  
  39. CONST Calc_Ids : ARRAY [Calc_Symbols] OF Calc_IdStr =
  40.                    ('ERR', ';', 'CONST', 'VAR', 'PI', 'E', '(', ')', 'NEG',
  41.                     '+', '-', '*', '/', 'DIV', 'MOD', 'GGT', 'KGV', '^',
  42.                     'SQR', 'SQRT', 'EXP', 'LN', 'LG', 'LD',
  43.                     'SIN', 'COS', 'TAN', 'COT',
  44.                     'ARCSIN', 'ARCCOS', 'ARCTAN', 'ARCCOT',
  45.                     'SINH', 'COSH', 'TANH', 'COTH',
  46.                     'ARSINH', 'ARCOSH', 'ARTANH', 'ARCOTH',
  47.                     'ABS', 'DEG', 'RAD', 'REZ', 'FAK');
  48.  
  49. (* ----------------------------------------------------------------------- *)
  50. (*                      Ende von CALCVAR.PAS                               *)
  51.