Остання активність 1740328834

capitalex's Avatar capitalex ревизій цього gist 1740328834. До ревизії

1 file changed, 10 insertions, 3 deletions

bf.cul

@@ -17,17 +17,22 @@
17 17
18 18
19 19 : eval (run '<) -> (ran '<) (shift bits right) eval ;
20 +
20 21 : (shift bits right) (left '*) -> (right '*) ;
21 22 : (shift bits right) (left ?bit) -> (right ?bit) (shift bits right) ;
22 23
23 24
25 +
24 26 : eval (run '>) (right '*) -> (left '*) (shift bits left) eval ;
25 27 : (shift bits left) (right '*) -> (right '*) ;
26 28 : (shift bits left) (right ?bit) -> (left ?bit) (shift bits left) ;
27 29
28 30
31 +
29 32 : eval (run '[) (left "*00000000") ->
30 - (left "*00000000") (ran [) (jump past matching bracket) ;
33 + (left "*00000000") (ran '[) (jump past matching bracket) ;
34 + : eval (run '[) -> (ran '[) ;
35 +
31 36 : (jump past matching bracket) (balance '[) (run ']) ->
32 37 (ran ']) (jump past matching bracket) ;
33 38 : (jump past matching bracket) (run '[) ->
@@ -36,8 +41,10 @@
36 41 (ran ']) eval ;
37 42
38 43
39 - : eval (run ']) (left "*00000000") ->
40 - (left "*00000000") (ran ']) (jump backwards to matching bracket) ;
44 +
45 + : eval (run ']) (left "*00000000") -> (left "*00000000") (ran ']) ;
46 + : eval (run ']) -> (jump backwards to matching bracket) ;
47 +
41 48 : (jump backwards to matching bracket) (balance ']) (ran '[) ->
42 49 (run '[) (jump backwards to matching bracket) ;
43 50 : (jump backwards to matching bracket) (ran ']) ->

capitalex's Avatar capitalex ревизій цього gist 1740327348. До ревизії

1 file changed, 46 insertions

bf.cul(файл створено)

@@ -0,0 +1,46 @@
1 + : eval (run '+) (left '0) -> (left '1) (ran '+) ;
2 + : eval (run '+) (left '1) -> (right '0) (ran '+) +carry eval ;
3 +
4 + : +carry (left '0) -> (left '1) (shift bits left) ;
5 + : +carry (left '*) -> (left '*) (shift bits left) ;
6 + : +carry (left '1) -> (right '0) +carry ;
7 +
8 +
9 +
10 + : eval (run '-) (left '1) -> (left '0) (ran '-) eval ;
11 + : eval (run '-) (left '0) -> (right '1) (ran '-) -carry eval ;
12 +
13 + : -carry (left '0) -> (left '1) -carry ;
14 + : -carry (left '1) -> (left '0) (shift bits left) ;
15 + : -carry (left '*) -> (left '*) (shift bits left) ;
16 +
17 +
18 +
19 + : eval (run '<) -> (ran '<) (shift bits right) eval ;
20 + : (shift bits right) (left '*) -> (right '*) ;
21 + : (shift bits right) (left ?bit) -> (right ?bit) (shift bits right) ;
22 +
23 +
24 + : eval (run '>) (right '*) -> (left '*) (shift bits left) eval ;
25 + : (shift bits left) (right '*) -> (right '*) ;
26 + : (shift bits left) (right ?bit) -> (left ?bit) (shift bits left) ;
27 +
28 +
29 + : eval (run '[) (left "*00000000") ->
30 + (left "*00000000") (ran [) (jump past matching bracket) ;
31 + : (jump past matching bracket) (balance '[) (run ']) ->
32 + (ran ']) (jump past matching bracket) ;
33 + : (jump past matching bracket) (run '[) ->
34 + (ran '[) (balance '[) (jump past matching bracket) ;
35 + : (jump past matching bracket) (run ']) ->
36 + (ran ']) eval ;
37 +
38 +
39 + : eval (run ']) (left "*00000000") ->
40 + (left "*00000000") (ran ']) (jump backwards to matching bracket) ;
41 + : (jump backwards to matching bracket) (balance ']) (ran '[) ->
42 + (run '[) (jump backwards to matching bracket) ;
43 + : (jump backwards to matching bracket) (ran ']) ->
44 + (run ']) (balance ']) (jump backwards to matching bracket) ;
45 + : (jump backwards to matching bracket) (ran '[) ->
46 + (run '[) eval ;
Новіше Пізніше