home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / elan / cola / cola1mod.eln < prev    next >
Text File  |  1988-10-11  |  2KB  |  90 lines

  1.  
  2. PROC evaluate command (TEXT CONST cmd):
  3.   IF cmd = clear symbol
  4.   THEN evaluate clear command
  5.   ELIF cmd = print symbol
  6.   THEN evaluate print command
  7.   ELIF cmd = end symbol
  8.   THEN evaluate end command
  9.   FI.
  10.  
  11. evaluate clear command:
  12.   FOR i FROM 1 UPTO shelfsize
  13.   REP towerheight [i] := 0
  14.   ENDREP;
  15.   read next line.
  16.  
  17. evaluate print command:
  18.   print world;
  19.   read next line.
  20.  
  21. print world:
  22.   line;
  23.   INT VAR j;
  24.   FOR j FROM maxheight DOWNTO 1
  25.   REP
  26.     FOR i FROM 1 UPTO shelfsize
  27.     REP
  28.       IF towerheight [i] < j
  29.       THEN
  30.         put (2 * " ")
  31.       ELSE
  32.         put (shelf [i] [j] + " ")
  33.       FI
  34.     ENDREP;
  35.     line
  36.   ENDREP;
  37.   put ((2 * shelfsize - 1) * "-").
  38.  
  39. evaluate end command:
  40.   print world.
  41.  
  42. ENDPROC evaluate command;
  43.  
  44. PROC read next line:
  45.   write line (current line);
  46.   read a line;
  47.   topos := 0;
  48.   read next symbol.
  49.  
  50. read a line:
  51.   IF infile opened
  52.   THEN read a line from file
  53.   ELSE read a line from keyboard
  54.   FI.
  55.  
  56. read a line from file:
  57.   WHILE NOT file ended
  58.   REP
  59.     read (current line);
  60.     current line := compress (current line)
  61.   UNTIL current line <> ""
  62.   ENDREP;
  63.   insert end command if missing;
  64.   line;
  65.   put (current line).
  66.  
  67. read a line from keyboard:
  68.   line;
  69.   put ("Next cmd, please: ");
  70.   REP
  71.     edit (current line, 1);
  72.     current line := compress (current line)
  73.   UNTIL current line <> ""
  74.   ENDREP.
  75.  
  76. insert end command if missing:
  77.   IF file ended
  78.   THEN
  79.     infile opened := false;
  80.     IF subtext (current line, 1, 3) <> end symbol
  81.     THEN
  82.       line;
  83.       put ("End command inserted. ");
  84.       current line := end symbol
  85.     FI
  86.   FI.
  87.  
  88. ENDPROC read next line;
  89.  
  90.