aboutsummaryrefslogtreecommitdiff
path: root/rip-lang.txt
blob: 2c553cd156f0da5ba3f43f89b584d66c6aa730a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Rip -- a stack-based rip language
=================================

All stack items are integers, of unspecified but constant size

0-9: push value
p: pop
s: swap
D: duplicate
i: increment
d: decrement
r: pops the number of items to rotate clockwise
+ - * /: just what you expect
> < =: comparisons; booleans are 1 and 0, as you expect
[ ... ]: syntactical; a codeblock
I: pops boolean, conditionally executing the codeblock that should follow the I, depending on the boolean (aka "if")
W: I, but then "while" instead of "if"
o: outputs the top value as an ascii char
O: outputs the top value as a number
whitespace: nop


Any error causes the interpreter to exit, saying "rip".


Example code
------------

Fibonacci:

01
1W[
	DO
	9io
	D3r+
1]