From 10b9cbb7fd51185affbfcf33f4b47288aaddfcf7 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 1 Jul 2015 21:21:49 -0400 Subject: [PATCH] Use single version of (if?) --- Makefile | 6 ++++-- eval.scm | 1 - scheme/cyclone/util.sld | 1 + transforms.scm | 4 ---- util.scm | 4 ++++ 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 658e449f..51e5e71c 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,9 @@ scheme/read.o: cyclone scheme/read.sld parser.scm scheme/write.o: cyclone scheme/write.sld ./cyclone scheme/write.sld +scheme/cyclone/util.o: scheme/cyclone/util.sld + ./cyclone scheme/cyclone/util.sld + util.so: util.scm csc -s util.scm @@ -62,7 +65,6 @@ cyclone: cyclone.scm transforms.so util.so cgen.so libraries.so parser.so libcyc #scheme/cyclone/util.o: cyclone scheme/cyclone/util.sld .PHONY: self self: - ./cyclone scheme/cyclone/util.sld ./cyclone scheme/cyclone/libraries.sld ./cyclone scheme/cyclone/transforms.sld ./cyclone scheme/cyclone/cgen.sld @@ -94,7 +96,7 @@ test2: examples/hello-library/int-test/hello.c libcyclone.a ## END temporary directives ########################### -icyc: cyclone icyc.scm eval.scm libraries.scm parser.scm runtime.h scheme/base.o scheme/read.o scheme/write.o scheme/char.o scheme/eval.o scheme/file.o +icyc: cyclone icyc.scm eval.scm libraries.scm parser.scm runtime.h scheme/base.o scheme/read.o scheme/write.o scheme/char.o scheme/eval.o scheme/file.o scheme/cyclone/util.o ./cyclone icyc.scm .PHONY: tags diff --git a/eval.scm b/eval.scm index 126719ab..3d86ae1d 100644 --- a/eval.scm +++ b/eval.scm @@ -59,7 +59,6 @@ (define (make-lambda parameters body) (cons 'lambda (cons parameters body))) -(define (if? exp) (tagged-list? 'if exp)) (define (if-predicate exp) (cadr exp)) (define (if-consequent exp) (caddr exp)) (define (if-alternative exp) diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index cf8eaa6b..c77eec3b 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -7,6 +7,7 @@ every filter tagged-list? + if? mangle mangle-global) (include "../../util.scm") diff --git a/transforms.scm b/transforms.scm index de7bba40..4fec262a 100644 --- a/transforms.scm +++ b/transforms.scm @@ -476,10 +476,6 @@ (define (lambda->exp exp) (cddr exp)) ;; JAE - changed from caddr, so we can handle multiple expressions -; if? : exp -> boolean -(define (if? exp) - (tagged-list? 'if exp)) - ; if->condition : if-exp -> exp (define (if->condition exp) (cadr exp)) diff --git a/util.scm b/util.scm index 102697c6..8ee1f308 100644 --- a/util.scm +++ b/util.scm @@ -11,6 +11,10 @@ (equal? (car exp) tag) #f)) +; if? : exp -> boolean +(define (if? exp) + (tagged-list? 'if exp)) + ; char->natural : char -> natural (define (char->natural c) (let ((i (char->integer c)))