aboutsummaryrefslogtreecommitdiff
path: root/meta.rip
blob: d00a97ba2d232799aa583e982d6d8de071b7af77 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#<stdlib.rip>
<varinit>

'l 0 <varstore>  0I[stack length storage]
F<add_l>['l<varhaulup>3Ra<varstore>]
F<sub_l>['l<varhaulup>3Rs<varstore>]
F<inc_l>[1<add_l>]
F<dec_l>[1<sub_l>]
F<get_l>['l<varget>]

0I[executes a piece of rip code, potentially recursively calling itself]
0I[TODO: [], <>, #<>, IWCwtcF$]
F<execrip>[
	DW[
		D<strlast>S<strinit>S
		DD'0LnS'9GnmI[    0I[0-9]
			'0sS
			<inc_l>
		0]
		D'PEI[P SP <dec_l> 0]
		D'SEI[P 3RS 0]
		D'DEI[P SD3R <inc_l> 0]
		D'iEI[P SiS 0]
		D'dEI[P SdS 0]
		D'lEI[P <get_l>S 0]
		D'rEI[P lr r lR 0]
		D'REI[P lr R lR 0]
		D'aEI[P 3raS <dec_l> 0]
		D'sEI[P 3rsS <dec_l> 0]
		D'mEI[P 3rmS <dec_l> 0]
		D'qEI[P 3rqS <dec_l> 0]
		D'MEI[P 3rMS <dec_l> 0]
		D'pEI[P 3rpS <dec_l> 0]
		D'GEI[P 3rGS <dec_l> 0]
		D'LEI[P 3rLS <dec_l> 0]
		D'EEI[P 3rES <dec_l> 0]
		D'nEI[P SnS 0]
		D'oEI[P So <dec_l> 0]
		D'OEI[P SO <dec_l> 0]
		D'gEI[P gS <inc_l> 0]
		D''EI[P D<strlast> S <strinit> 0]
		D<isspace>I[P 0]
		DI[
			'ro 'io 'po ':o ' o $ P
		0]
		P
	D]
]

0I[pushes whether argument is space, tab or newline]
F<isspace>[
	D' ESD9ES9iEaann
]


0I[Read all the code in a string]
0
gDiW[
	<strpush>
gDi]
P

<strrev>
<execrip>