Translated Common Lisp
Jump to navigation
Jump to search
Step 1:
(defun interpret-Burgercamp (&optional (initial-code ""
initial-code-supplied-p))
"Launches the Burgercamp accumulator, contingently commencing with the
INITIAL-CODE, and repeatedly queries the standard input for commands,
until a completely empty line of length zero is issued, finally
returning no value."
(declare (type string initial-code))
(declare (type T initial-code-supplied-p))
(let ((accumulator 0))
(declare (type integer accumulator))
(flet ((process-commands (commands)
(declare (type string commands))
(loop for command of-type character across commands do
(case command
(#\i (incf accumulator 7))
(#\d (decf accumulator 3))
(#\m (setf accumulator (* accumulator 5)))
(#\o (format T "~d " accumulator))
(otherwise (terpri)))
(when (= accumulator 25)
(setf accumulator 0)))
(values)))
(loop
initially
(when initial-code-supplied-p
(process-commands initial-code))
for input
of-type (or null string)
= (prog2
(format T "~&>> ")
(read-line *standard-input* NIL "")
(clear-input))
until (or (null input) (zerop (length input)))
do (process-commands input))))
(values))
Step 3:
(Disable comment-bergerkamp (and optional (source code""
The specified source code is P))
"Launch burgercamp if necessary
Standard command input for entering and re-querying source code
Until a completely empty zero-length string is returned, finally
The value is not returned."
(Ads (enter the initial line of code))
(Ad (enter t, enter source code P))
((Battery 0))
(Ads (input integer disk))
(Run (edit command
(Report (enter a string command))
(Enter a sequence of command-type characters in the do command
(
Command (#\m (incf7 disk))
(#\D (decf3 disk))
(#\M (setfdrive (*Drive5))).
(#\O (disk format "~d"))
(Otherwise (allow)))
(When (=disk 25
(Installation disk 0)))
(Consumption)))
(Cycle
For the first time
(When entering the source code-P
(Source code of the processing command).
Introduction
Enter (or an empty string)
= (Program 2
(Format "~ & > > " t)
(Reading the string * standard input * null"").
(Actual introduction))
(Or (input null) (null (long input))).
Do (entering the processing command))))
(Cost)).