aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md14
-rw-r--r--source/primitives/conditional.d6
2 files changed, 17 insertions, 3 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..83cb867
--- /dev/null
+++ b/README.md
@@ -0,0 +1,14 @@
+# slang
+
+…a experimental Forth-like stack language implemented in D.
+
+## Example
+
+ 1 i $
+ § incr dup @ 1 + swp $ ;
+ § print @ . pop ;
+ § withinBounds @ 10 < ;
+ § loop i withinBounds if i print i incr loop then else ;
+ loop
+
+The above _slang_ code to be entered in the repl prints the numbers from 1 to 9. The repl may be compiled and executed using `dub run` in the project directory.
diff --git a/source/primitives/conditional.d b/source/primitives/conditional.d
index 678f516..08c0f52 100644
--- a/source/primitives/conditional.d
+++ b/source/primitives/conditional.d
@@ -26,7 +26,7 @@ bool drop(Token token) {
case "if" : eval_if; break;
case "then" : eval_then; break;
case "else" : eval_else; break;
- default : capture(token); break;
+ default : capture(token); break;
}
} else {
capture(token);
@@ -55,7 +55,7 @@ void eval_then() {
void eval_else() {
if ( concluded ) {
- throw new Exception("`else` without preceding `if`");
+ throw new Exception("`else` without preceding `if`");
} else {
drop_mode = false;
concluded = true;
@@ -72,6 +72,6 @@ Stack!Token discharge() {
buffer.nullify;
return result;
} else {
- throw new Exception("unconcluded conditional may not be discharged");
+ throw new Exception("unconcluded conditional may not be discharged");
}
}