Moved stlc to tests

This commit is contained in:
William J. Bowman 2016-01-10 18:40:38 -05:00
parent 97ddf170b2
commit f8b19801fd
No known key found for this signature in database
GPG Key ID: DDD48D26958F0D1A

View File

@ -1,18 +1,19 @@
#lang s-exp "../cur.rkt" #lang cur
(require (require
"../stdlib/nat.rkt" rackunit
"../stdlib/sugar.rkt" cur/stdlib/nat
"../oll.rkt" cur/stdlib/sugar
"../stdlib/maybe.rkt" cur/oll
"../stdlib/bool.rkt" cur/stdlib/maybe
"../stdlib/prop.rkt") cur/stdlib/bool
cur/stdlib/prop)
(define-language stlc (define-language stlc
#:vars (x) #:vars (x)
#:output-coq "stlc.v" #:output-coq "stlc.v"
#:output-latex "stlc.tex" #:output-latex "stlc.tex"
(val (v) ::= true false unit) (val (v) ::= true false unit)
;; TODO: Allow datum as terminals ;; TODO: Allow datum, like 1, as terminals
(type (A B) ::= boolty unitty (-> A B) (* A A)) (type (A B) ::= boolty unitty (-> A B) (* A A))
(term (e) ::= x v (app e e) (lambda (x : A) e) (cons e e) (term (e) ::= x v (app e e) (lambda (x : A) e) (cons e e)
(let (x x) = e in e))) (let (x x) = e in e)))
@ -126,8 +127,6 @@
#'stlc-unitty #'stlc-unitty
#'e)]))) #'e)])))
(module+ test
(require rackunit)
(check-equal? (check-equal?
(begin-stlc (lambda (x : 1) x)) (begin-stlc (lambda (x : 1) x))
(stlc-lambda (avar z) stlc-unitty (Var-->-stlc-term (avar z)))) (stlc-lambda (avar z) stlc-unitty (Var-->-stlc-term (avar z))))
@ -141,4 +140,4 @@
(stlc-val-->-stlc-term stlc-unit))) (stlc-val-->-stlc-term stlc-unit)))
(check-equal? (check-equal?
(begin-stlc #t) (begin-stlc #t)
(stlc-val-->-stlc-term stlc-true))) (stlc-val-->-stlc-term stlc-true))