Use single version of primitives

This commit is contained in:
Justin Ethier 2015-07-01 21:46:21 -04:00
parent 10b9cbb7fd
commit cb55609c19
5 changed files with 18 additions and 15 deletions

View file

@ -68,7 +68,7 @@ self:
./cyclone scheme/cyclone/libraries.sld ./cyclone scheme/cyclone/libraries.sld
./cyclone scheme/cyclone/transforms.sld ./cyclone scheme/cyclone/transforms.sld
./cyclone scheme/cyclone/cgen.sld ./cyclone scheme/cyclone/cgen.sld
./cyclone cyclone.scm ./cyclone cyclone-self.scm
.PHONY: test .PHONY: test
test: $(TESTFILES) cyclone test: $(TESTFILES) cyclone

View file

@ -52,7 +52,6 @@
(make-lambda (cdadr exp) ; formal parameters (make-lambda (cdadr exp) ; formal parameters
(cddr exp)))) ; body (cddr exp)))) ; body
(define (lambda? exp) (tagged-list? 'lambda exp))
(define (lambda-parameters exp) (cadr exp)) (define (lambda-parameters exp) (cadr exp))
(define (lambda-body exp) (cddr exp)) (define (lambda-body exp) (cddr exp))
@ -68,7 +67,6 @@
(define (make-if predicate consequent alternative) (define (make-if predicate consequent alternative)
(list 'if predicate consequent alternative)) (list 'if predicate consequent alternative))
(define (begin? exp) (tagged-list? 'begin exp))
(define (begin-actions exp) (cdr exp)) (define (begin-actions exp) (cdr exp))
(define (last-exp? seq) (null? (cdr seq))) (define (last-exp? seq) (null? (cdr seq)))
(define (first-exp seq) (car seq)) (define (first-exp seq) (car seq))

View file

@ -3,13 +3,18 @@
(scheme char)) (scheme char))
; TODO: really need export-all for these cyclone libs!! ; TODO: really need export-all for these cyclone libs!!
(export (export
any ;; Code analysis
every
filter
tagged-list? tagged-list?
if? if?
begin?
lambda?
;; Code generation
mangle mangle
mangle-global) mangle-global
;; Scheme library functions
any
every
filter)
(include "../../util.scm") (include "../../util.scm")
(begin (begin
;; Simplified versions of every/any from SRFI-1 ;; Simplified versions of every/any from SRFI-1

View file

@ -398,10 +398,6 @@
(define (letrec->args exp) (define (letrec->args exp)
(map cadr (cadr exp))) (map cadr (cadr exp)))
; lambda? : exp -> boolean
(define (lambda? exp)
(tagged-list? 'lambda exp))
(define (lambda-varargs? exp) (define (lambda-varargs? exp)
(and (lambda? exp) (and (lambda? exp)
(or (symbol? (lambda->formals exp)) (or (symbol? (lambda->formals exp))
@ -660,10 +656,6 @@
(define (prim-call? exp) (define (prim-call? exp)
(and (list? exp) (prim? (car exp)))) (and (list? exp) (prim? (car exp))))
; begin? : exp -> boolean
(define (begin? exp)
(tagged-list? 'begin exp))
; begin->exps : begin-exp -> list[exp] ; begin->exps : begin-exp -> list[exp]
(define (begin->exps exp) (define (begin->exps exp)
(cdr exp)) (cdr exp))

View file

@ -15,6 +15,14 @@
(define (if? exp) (define (if? exp)
(tagged-list? 'if exp)) (tagged-list? 'if exp))
; begin? : exp -> boolean
(define (begin? exp)
(tagged-list? 'begin exp))
; lambda? : exp -> boolean
(define (lambda? exp)
(tagged-list? 'lambda exp))
; char->natural : char -> natural ; char->natural : char -> natural
(define (char->natural c) (define (char->natural c)
(let ((i (char->integer c))) (let ((i (char->integer c)))