mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Use single version of primitives
This commit is contained in:
parent
10b9cbb7fd
commit
cb55609c19
5 changed files with 18 additions and 15 deletions
2
Makefile
2
Makefile
|
@ -68,7 +68,7 @@ self:
|
|||
./cyclone scheme/cyclone/libraries.sld
|
||||
./cyclone scheme/cyclone/transforms.sld
|
||||
./cyclone scheme/cyclone/cgen.sld
|
||||
./cyclone cyclone.scm
|
||||
./cyclone cyclone-self.scm
|
||||
|
||||
.PHONY: test
|
||||
test: $(TESTFILES) cyclone
|
||||
|
|
2
eval.scm
2
eval.scm
|
@ -52,7 +52,6 @@
|
|||
(make-lambda (cdadr exp) ; formal parameters
|
||||
(cddr exp)))) ; body
|
||||
|
||||
(define (lambda? exp) (tagged-list? 'lambda exp))
|
||||
(define (lambda-parameters exp) (cadr exp))
|
||||
(define (lambda-body exp) (cddr exp))
|
||||
|
||||
|
@ -68,7 +67,6 @@
|
|||
(define (make-if predicate consequent alternative)
|
||||
(list 'if predicate consequent alternative))
|
||||
|
||||
(define (begin? exp) (tagged-list? 'begin exp))
|
||||
(define (begin-actions exp) (cdr exp))
|
||||
(define (last-exp? seq) (null? (cdr seq)))
|
||||
(define (first-exp seq) (car seq))
|
||||
|
|
|
@ -3,13 +3,18 @@
|
|||
(scheme char))
|
||||
; TODO: really need export-all for these cyclone libs!!
|
||||
(export
|
||||
any
|
||||
every
|
||||
filter
|
||||
;; Code analysis
|
||||
tagged-list?
|
||||
if?
|
||||
begin?
|
||||
lambda?
|
||||
;; Code generation
|
||||
mangle
|
||||
mangle-global)
|
||||
mangle-global
|
||||
;; Scheme library functions
|
||||
any
|
||||
every
|
||||
filter)
|
||||
(include "../../util.scm")
|
||||
(begin
|
||||
;; Simplified versions of every/any from SRFI-1
|
||||
|
|
|
@ -398,10 +398,6 @@
|
|||
(define (letrec->args exp)
|
||||
(map cadr (cadr exp)))
|
||||
|
||||
; lambda? : exp -> boolean
|
||||
(define (lambda? exp)
|
||||
(tagged-list? 'lambda exp))
|
||||
|
||||
(define (lambda-varargs? exp)
|
||||
(and (lambda? exp)
|
||||
(or (symbol? (lambda->formals exp))
|
||||
|
@ -660,10 +656,6 @@
|
|||
(define (prim-call? exp)
|
||||
(and (list? exp) (prim? (car exp))))
|
||||
|
||||
; begin? : exp -> boolean
|
||||
(define (begin? exp)
|
||||
(tagged-list? 'begin exp))
|
||||
|
||||
; begin->exps : begin-exp -> list[exp]
|
||||
(define (begin->exps exp)
|
||||
(cdr exp))
|
||||
|
|
8
util.scm
8
util.scm
|
@ -15,6 +15,14 @@
|
|||
(define (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
|
||||
(define (char->natural c)
|
||||
(let ((i (char->integer c)))
|
||||
|
|
Loading…
Add table
Reference in a new issue