Skip to content

Commit 7e4d0ae

Browse files
committed
Update examples
1 parent 7287b92 commit 7e4d0ae

File tree

7 files changed

+34
-65
lines changed

7 files changed

+34
-65
lines changed

README.md

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,11 @@ Finite state machine
4646
[(-i [1|X]) (+i X)]})
4747
4848
'input words
49-
(:= e (+i []))
50-
(:: e binary)
51-
52-
(:= 0 (+i [0]))
53-
(:: 0 binary)
54-
55-
(:= 000 (+i [0 0 0]))
56-
(:: 000 binary)
57-
58-
(:= 010 (+i [0 1 0]))
59-
(:: 010 binary)
60-
61-
(:= 110 (+i [1 1 0]))
62-
(:: 110 binary)
49+
(:= e (+i [])) (:: e binary)
50+
(:= 0 (+i [0])) (:: 0 binary)
51+
(:= 000 (+i [0 0 0])) (:: 000 binary)
52+
(:= 010 (+i [0 1 0])) (:: 010 binary)
53+
(:= 110 (+i [1 1 0])) (:: 110 binary)
6354
6455
'''
6556
automaton accepting words ending with 00

examples/automata.sg

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,11 @@
88
[(-i [1|X]) (+i X)]})
99

1010
'input words
11-
(:= e (+i []))
12-
(:: e binary)
13-
14-
(:= 0 (+i [0]))
15-
(:: 0 binary)
16-
17-
(:= 000 (+i [0 0 0]))
18-
(:: 000 binary)
19-
20-
(:= 010 (+i [0 1 0]))
21-
(:: 010 binary)
22-
23-
(:= 110 (+i [1 1 0]))
24-
(:: 110 binary)
11+
(:= e (+i [])) (:: e binary)
12+
(:= 0 (+i [0])) (:: 0 binary)
13+
(:= 000 (+i [0 0 0])) (:: 000 binary)
14+
(:= 010 (+i [0 1 0])) (:: 010 binary)
15+
(:= 110 (+i [1 1 0])) (:: 110 binary)
2516

2617
(:= (initial Q) [(-i W) (+a W Q)])
2718
(:= (accept Q) [(-a [] Q) accept])

examples/binary4.sg

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@
77
(:= (make_bin Name X1 X2 X3 X4)
88
{ [(+b Name 1 X1)] [(+b Name 2 X2)] [(+b Name 3 X3)] [(+b Name 4 X4)] })
99

10-
(:= b1 #(make_bin b1 0 0 0 1))
11-
(:: b1 u4)
12-
13-
(:= b2 #(make_bin b2 0 0 1 1))
14-
(:: b2 u4)
10+
(:= b1 #(make_bin b1 0 0 0 1)) (:: b1 u4)
11+
(:= b2 #(make_bin b2 0 0 1 1)) (:: b2 u4)
1512

1613
(show #b1)
1714
(show #b2)
1815

16+
(:= (if A = X then R = Z) [(-b A I X) (+b R I Z)])
1917
(:= (if A = X and B = Y then R = Z) [(-b A I X) (-b B I Y) (+b R I Z)])
2018

2119
(:= (and A B R) {
@@ -32,10 +30,17 @@
3230
(show #ror)
3331
(== #ror #(make_bin r 0 0 1 1))
3432

33+
(:= (not A R) {
34+
#(if A = 1 then R = 0)
35+
#(if A = 0 then R = 1) })
36+
(:= rnot (process #b1 #(not b1 r)))
37+
(show #rnot)
38+
(== #rnot #(make_bin r 1 1 1 0))
39+
40+
(:= rnand (process #b1 #(and b1 b2 r1) #b2 #(not r1 r2)))
41+
(show #rnand)
42+
3543
'''
36-
(:= (xor A B R) {
37-
#(if A = X and B = X then R = 0) })
38-
(:= rxor (process #b1 #(xor b1 b2 r) #b2))
44+
(:= rxor (process #rnand #(and r2 r r3) #ror))
3945
(show #rxor)
40-
(== #rxor #(make_bin r 0 0 1 0))
4146
'''

examples/nat.sg

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,9 @@
66
[(-nat 0) ok]
77
[(-nat (s N)) (+nat N)]})
88

9-
(:= 0 (+nat 0))
10-
(:: 0 nat)
11-
12-
(:= 1 (+nat (s 0)))
13-
(:: 1 nat)
14-
15-
(:= 2 <+nat s s 0>)
16-
(:: 2 nat)
9+
(:= 0 (+nat 0)) (:: 0 nat)
10+
(:= 1 (+nat (s 0))) (:: 1 nat)
11+
(:= 2 <+nat s s 0>) (:: 2 nat)
1712

1813
(:= add1 [(-nat X) (+nat (s X))])
1914

examples/npda.sg

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,10 @@
88
[(-i [1|X]) (+i X)]})
99

1010
'input words
11-
(:= e (+i []))
12-
(:: e binary)
13-
14-
(:= 0000 (+i [0 0 0 0]))
15-
(:: 0000 binary)
16-
17-
(:= 0110 (+i [0 1 1 0]))
18-
(:: 0110 binary)
19-
20-
(:= 1110 (+i [1 1 1 0]))
21-
(:: 1110 binary)
11+
(:= e (+i [])) (:: e binary)
12+
(:= 0000 (+i [0 0 0 0])) (:: 0000 binary)
13+
(:= 0110 (+i [0 1 1 0])) (:: 0110 binary)
14+
(:= 1110 (+i [1 1 1 0])) (:: 1110 binary)
2215

2316
(:= (initial Q) [(-i W) (+a W [] Q)])
2417
(:= (accept Q) [(-a [] [] Q) accept])

examples/sumtypes.sg

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,11 @@
88
[-west ok]
99
[-east ok]})
1010

11-
(:= n +north)
12-
(:: n direction)
11+
(:= n +north) (:: n direction)
1312

14-
(spec result {
15-
[(-ok X) ok]
16-
[(-error X) ok]})
13+
(spec result { [(-ok X) ok] [(-error X) ok]})
1714

18-
(:= x (+ok a))
19-
(:: x result)
15+
(:= x (+ok a)) (:: x result)
2016

2117
'pattern matching
2218
(:= get_ok {

src/expr.ml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ type expr =
2828
| List of expr list
2929
[@@derive eq]
3030

31-
let pp_err _ = ""
32-
3331
let primitive = String.append "%"
3432

3533
let nil_op = primitive "nil"

0 commit comments

Comments
 (0)