home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 20 / dos_txl / source / intglob.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-02-19  |  5.6 KB  |  136 lines

  1. /* intglob.c
  2. Dieses File enthält alle Globalvariablen des Interpreters.
  3. (c) 1990 Michael Beising & TOOLBOX
  4. */
  5.  
  6. #include    <stdio.h>
  7. #include    <stdlib.h>
  8. #include    "interp.h"
  9.  
  10.  
  11. /*    Initialisieren der Befehlsvergleichsliste */
  12.  
  13. TOKBEF    TokBefDesc[] = {
  14. /*    Funktion  Bef.-Name     Para-Count        CopyRest */
  15.     { cexit,        "exit"          ,       0,                      0},
  16.     { crun,        "lauf"        ,    0,            0},
  17.         { crun,         "run"           ,       0,                      0},
  18.     { cdruck,    "drucke"    ,    0,            1},
  19.     { cset,        "setze"        ,    3,            1},
  20.     { cif,        "wenn"        ,    2,            1},
  21.     { cload,    "lade"        ,    1,            1},
  22.     { csave,    "speichere"    ,    1,            1},
  23.     { cgoto,    "gehezu"    ,    1,            0},
  24.     { cende,    "ende"        ,    0,            0},
  25.     { cexit,    "verlasse"    ,    0,            0},
  26.     { cmerke,       "merke"         ,       0,                      1},
  27.     { clist,        "liste"         ,       0,                      1},
  28.     { cneu,         "neu"           ,       0,                      0},
  29. /*    NEUE BEFEHLE    */
  30.     { cinfo,        "info"          ,       0,                      0},
  31.     { cpiep,        "piep"          ,       0,                      0},
  32.     { cgerald,      "gerald"        ,       0,                      0},
  33.     { chilfe,       "hilfe"         ,       1,                      1},
  34.     { czeig,        "zeig"          ,       4,                      1},
  35.     { csetfarbe,    "setfarbe"      ,       2,                      1},
  36.     { cloesch,      "loesch"        ,       4,                      1},
  37.     { cpause,       "pause"         ,       0,                      0},
  38.     { cdos,         "dos"           ,       1,                      1},
  39.     { csbild,       "sbild"         ,       5,                      1},
  40.     { crbild,       "rbild"         ,       5,                      1},
  41.     { clese,        "lese"          ,       4,                      1},
  42.     { ciftaste,     "iftaste"       ,       1,                      1},
  43.     { cbox,        "box"        ,    5,            1},
  44.     { cattribut,    "attribut"    ,    6,            1},
  45.     { ccommands,    "commands"      ,       0,                      0},
  46. /*  WEITERE NEUE BEFEHLE   */   
  47.     { cstrdef,    "strdef"    ,    2,            1},
  48.     { cstrset,    "strset"    ,    2,            1},
  49.     { cbegin,    "blockbegin"    ,    0,            0},
  50.     { cend,        "blockend"    ,    0,            0},
  51.     { creadln,     "readln"    ,    1,            1},
  52.     { cgosub,    "gosub"        ,    1,            1},
  53.     { cDefArray,    "DefArray"    ,    4,            1},
  54.     { cSetArrayElem,"SetArrayElem"    ,    5,            1},
  55.     { cGetArrayElem,"GetArrayElem"    ,    5,            1},
  56.     { citostr,    "itostr"        ,    2,                      1},
  57.     { cstrtoi,     "strtoi"    ,       2,            1},
  58.     { crandom,    "random"    ,       2,                      1},
  59.     { crandomize,    "randomize"    ,    0,            0},
  60. /*  Befehle für Fenster und Editor   */
  61.     { cneuedit,    "edit"        ,    1,            1},
  62.     { cwindow,    "openwindow"    ,    8,            1},
  63.     { cclosewindow,    "closewindow"    ,    8,            1},
  64.     { csetcursor,     "setcursor"    ,    2,            1},
  65.     { csetfkey,    "setfkey"    ,    2,            1},
  66.     { csetlinebuf,    "setlinebuf"    ,    1,            1},
  67.     { cwindowfirst, "newfirstwindow",       1,            1},
  68.     { cinitedit,    "initeditor"    ,    2,            1},
  69.     { cendedit,    "closeeditor"    ,    1,            1},
  70.     { ceditorproc,    "editorproc"    ,    1,            1},
  71.     { cshoweditor,    "showeditor"    ,    1,            1},
  72.     { cinsertstring,"insertstring"  ,    2,            1},
  73.     { cedfunction,  "edfunction"    ,    3,            1},
  74.     { cNewWinKoor,    "newwindowkoor" ,    4,            1},
  75.     { cResizeWin,    "resizewindow"    ,       2,            1},
  76.     { cMoveWin,    "movewindow"    ,       2,            1},
  77.     { cGetEdWord,   "getedword"    ,       2,            1},
  78.     { cGetEdString, "getedstring"    ,       1,            1},
  79.     { cWinReadStr,  "winreadstring"    ,    3,            1},
  80.     { cWinMessage,    "winmessage"    ,    1,            1},
  81.     { cWinWrite,    "winwrite"    ,    4,            1},
  82.     { cReadKey,    "readkey"    ,    1,            1},
  83. /* Datenbankbefehle                  -- Parameterzahl unwichtig */
  84.     { cGotoBegin,    "GotoBegin"     ,    5,            1},
  85.     { cGotoEnd,     "GotoEnd"       ,    5,            1},
  86.     { cGoBackward,  "GoForward"     ,    5,            1},
  87.     { cGoForward,   "GoBackward"    ,    5,            1},
  88.     { cGoTo,        "GoTo"          ,    5,            1},
  89.     { cGoToNr,      "GoToNr"        ,    5,            1},
  90.     { cCloseFile,   "CloseFile"     ,    5,            1},
  91.     { cMakeTree,    "MakeTree"      ,    5,            1},
  92.     { cMarkCurrent, "MarkCurrent"   ,    5,            1},
  93.     { cUnMarkAll,   "UnMarkAll"     ,    5,            1},
  94.     { cDelTree,     "DelTree"       ,    5,            1},
  95.     { cDelMarked,   "DelMarked"     ,    5,            1},
  96.     { cListTree,    "ListTree"      ,    5,            1},
  97.     { cStopSearch,  "StopSearch"    ,    5,            1},
  98.     { cGefundenOK,  "GefundenOK"    ,    5,            1},
  99.     { cSearchDB,    "SearchDB"      ,    5,            1},
  100.     { cSearchTree,  "SearchTree"    ,    5,            1},
  101.     { cDurchsucheTree,"PassTree"    ,    5,            1},
  102.     { cdefDB,       "DefDB"         ,    5,            1},
  103.     { copenDB,      "OpenDB"        ,    5,            1},
  104.     { ccreateDB,    "CreateDB"      ,    5,            1},
  105.     { cWriteDB,     "WriteDB"       ,    5,            1},
  106.     { cReadDB,      "ReadDB"        ,    5,            1},
  107.     { cAddDB,       "AddDB"         ,    5,            1},
  108.         { cReadDBFormat,"ReadDBForm"    ,       3,                      1},   
  109. /* Menü und Stack */
  110.     { cMenue,    "menue"         ,    5,            1},
  111.     { cpush,        "push"          ,    5,            1},
  112.     { cpop,         "pop"           ,    5,            1},
  113.     { cAuswahl,    "auswahl"    ,    5,            1},
  114. /* Präprozessorbefehle */
  115.     { cdummy,       "const"         ,    0,            0},
  116.     { cdummy,       "label"         ,    0,            0},
  117.     { NULL,         NULL            ,       0,                      0}
  118. };
  119.  
  120. /* Globale Variable des Interpreters */
  121. int            IntError;        /* Interpreterfehler ist aufgetreten. */
  122.  
  123. PRGZEILE    *FirstLine;        /* erste Interpreterzeile */
  124. PRGZEILE    *LastLine;        /* letzte Interpreterzeile */
  125. PRGZEILE    *ActLine;        /* aktuelle interpretierte Zeile */
  126. char        *LinePos;        /* Zeilenposition der aktuellen Zeile*/
  127.  
  128. int            Steuer;            /* Scanner-Ergebnis */
  129. char        ScanBuffer[ZEILENLAENGE]; /* Ergebnis des Scanners */
  130.  
  131. VAR        *FirstVar = NULL;    /* Zeiger auf die erste Variable */
  132.  
  133. char    FileName[FNAMLEN];    /* Zwischenspeicher für den Filenamen */
  134.  
  135. /* Ende des Files INTGLOB.C */
  136.