Skip to content

Commit 434ddf1

Browse files
committed
Add void to op0 in parser.
1 parent 96f67b5 commit 434ddf1

File tree

8 files changed

+42
-3
lines changed

8 files changed

+42
-3
lines changed

langs/evildoer/test/all.rkt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,12 @@
5353
(check-equal? (run '(char? #t)) #f)
5454
(check-equal? (run '(char? 8)) #f)
5555
(check-equal? (run '(char->integer #\a)) (char->integer #\a))
56-
(check-equal? (run '(integer->char 955)) #\λ))
56+
(check-equal? (run '(integer->char 955)) #\λ)
57+
58+
;; Evildoer examples
59+
(check-equal? (run '(void)) (void))
60+
(check-equal? (run '(begin 1 2)) 2)
61+
(check-equal? (run '(eof-object? (void))) #f))
5762

5863
(test-runner (λ (e) (interp (parse e))))
5964
(test-runner (λ (e) (bits->value (asm-interp (compile (parse e))))))

langs/extort/parse.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
;; Any -> Boolean
2020
(define (op0? x)
21-
(memq x '(read-byte peek-byte)))
21+
(memq x '(read-byte peek-byte void)))
2222

2323
;; Any -> Boolean
2424
(define (op1? x)

langs/extort/test/all.rkt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@
5656
(check-equal? (run '(char? 8)) #f)
5757
(check-equal? (run '(char->integer #\a)) (char->integer #\a))
5858
(check-equal? (run '(integer->char 955)) #\λ)
59+
60+
;; Evildoer examples
61+
(check-equal? (run '(void)) (void))
62+
(check-equal? (run '(begin 1 2)) 2)
63+
(check-equal? (run '(eof-object? (void))) #f)
64+
5965
;; Extort examples
6066
(check-equal? (run '(add1 #f)) 'err)
6167
(check-equal? (run '(sub1 #f)) 'err)

langs/fraud/interp.rkt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313

1414
;; type Env = (Listof (List Id Value))
1515

16+
;; (list (list 'q 10) (list 'x 5) (list 'z #f) (list 'q 2))
17+
#;
18+
(let ((q 2))
19+
(let ((z #f))
20+
(let ((x 5))
21+
(let ((q 10))
22+
q))))
23+
1624
;; Expr -> Answer
1725
(define (interp e)
1826
(interp-env e '()))

langs/fraud/parse.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
;; Any -> Boolean
2525
(define (op0? x)
26-
(memq x '(read-byte peek-byte)))
26+
(memq x '(read-byte peek-byte void)))
2727
(define (op1? x)
2828
(memq x '(add1 sub1 zero? char? integer->char char->integer
2929
write-byte eof-object?)))

langs/fraud/test/test-runner.rkt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@
4444
(check-equal? (run '(char? 8)) #f)
4545
(check-equal? (run '(char->integer #\a)) (char->integer #\a))
4646
(check-equal? (run '(integer->char 955)) #\λ)
47+
48+
;; Evildoer examples
49+
(check-equal? (run '(void)) (void))
50+
(check-equal? (run '(begin 1 2)) 2)
51+
(check-equal? (run '(eof-object? (void))) #f)
52+
4753
;; Extort examples
4854
(check-equal? (run '(add1 #f)) 'err)
4955
(check-equal? (run '(sub1 #f)) 'err)

langs/hoax/test/test-runner.rkt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@
4444
(check-equal? (run '(char? 8)) #f)
4545
(check-equal? (run '(char->integer #\a)) (char->integer #\a))
4646
(check-equal? (run '(integer->char 955)) #\λ)
47+
48+
;; Evildoer examples
49+
(check-equal? (run '(void)) (void))
50+
(check-equal? (run '(begin 1 2)) 2)
51+
(check-equal? (run '(eof-object? (void))) #f)
52+
4753
;; Extort examples
4854
(check-equal? (run '(add1 #f)) 'err)
4955
(check-equal? (run '(sub1 #f)) 'err)

langs/hustle/test/all.rkt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
(check-equal? (run '(if 0 3 4)) 3)
4949
(check-equal? (run '(zero? 4)) #f)
5050
(check-equal? (run '(zero? 0)) #t)
51+
5152
;; Dodger examples
5253
(check-equal? (run #\a) #\a)
5354
(check-equal? (run #\b) #\b)
@@ -56,6 +57,12 @@
5657
(check-equal? (run '(char? 8)) #f)
5758
(check-equal? (run '(char->integer #\a)) (char->integer #\a))
5859
(check-equal? (run '(integer->char 955)) #\λ)
60+
61+
;; Evildoer examples
62+
(check-equal? (run '(void)) (void))
63+
(check-equal? (run '(begin 1 2)) 2)
64+
(check-equal? (run '(eof-object? (void))) #f)
65+
5966
;; Extort examples
6067
(check-equal? (run '(add1 #f)) 'err)
6168
(check-equal? (run '(sub1 #f)) 'err)
@@ -66,6 +73,7 @@
6673
(check-equal? (run '(write-byte #f)) 'err)
6774
(check-equal? (run '(write-byte -1)) 'err)
6875
(check-equal? (run '(write-byte 256)) 'err)
76+
6977
;; Fraud examples
7078
(check-equal? (run '(let ((x 7)) x)) 7)
7179
(check-equal? (run '(let ((x 7)) 2)) 2)

0 commit comments

Comments
 (0)