schleifen

A toy interpreter for LOOP programs

git clone https://git.8pit.net/schleifen.git

commits

2019-08-31 README.md: Add license section Sören Tempel
2019-08-30 schleifen: simplify code for dumping variables values Sören Tempel
2019-08-30 README.md: Change capitalization of loop Sören Tempel
2019-08-30 Rename to schleifen Sören Tempel
2019-08-30 examples: add multiplication Sören Tempel

Clone the repository to access all 38 commits.

# schleifen

An interpreter for [LOOP programs][loop wikipedia] in [chicken scheme][call-cc].

# Status

Just a toy program for playing around with chicken scheme.

# Usage

	$ chicken-install -n
	$ ./schleifen op1=40 op2=2 < examples/addition.loop

# Syntax

The following EBNF describes valid input:

	variable_start = letter | "_";
	variable = variable_start, { variable_start | digit };

	literal = digit;
	primitive_value = literal | variable;
	expression = primitive_value, ( "+" | "-" ), primitive_value;
	value = primitive_value | expression;

	command = variable, ":=", value, operator
	        | "LOOP", value, "DO" commands, "DONE";
	commands = command, ";", { command, ";" };

# License

This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.

You should have received a copy of the GNU General Public License along
with this program. If not, see <https://www.gnu.org/licenses/>.

[loop wikipedia]: https://en.wikipedia.org/wiki/LOOP_(programming_language)
[call-cc]: https://call-cc.org/
[wikipedia syntax]: https://en.wikipedia.org/wiki/LOOP_(programming_language)#Syntax