1# schleifen 2 3An interpreter for [LOOP programs][loop wikipedia] in [chicken scheme][call-cc]. 4 5# Status 6 7Just a toy program for playing around with chicken scheme. 8 9# Usage1011 $ chicken-install -n12 $ ./schleifen op1=40 op2=2 < examples/addition.loop1314# Syntax1516The following EBNF describes valid input:1718 variable_start = letter | "_";19 variable = variable_start, { variable_start | digit };2021 literal = digit;22 primitive_value = literal | variable;23 expression = primitive_value, ( "+" | "-" ), primitive_value;24 value = primitive_value | expression;2526 command = variable, ":=", value, operator27 | "LOOP", value, "DO" commands, "DONE";28 commands = command, ";", { command, ";" };2930# License3132This program is free software: you can redistribute it and/or modify it33under the terms of the GNU General Public License as published by the34Free Software Foundation, either version 3 of the License, or (at your35option) any later version.3637This program is distributed in the hope that it will be useful, but38WITHOUT ANY WARRANTY; without even the implied warranty of39MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General40Public License for more details.4142You should have received a copy of the GNU General Public License along43with this program. If not, see <https://www.gnu.org/licenses/>.4445[loop wikipedia]: https://en.wikipedia.org/wiki/LOOP_(programming_language)46[call-cc]: https://call-cc.org/47[wikipedia syntax]: https://en.wikipedia.org/wiki/LOOP_(programming_language)#Syntax