mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Issue #369 - Switch out inline string cmp ops
This commit is contained in:
parent
dba2183191
commit
6ace99f5bb
2 changed files with 26 additions and 22 deletions
|
@ -72,6 +72,11 @@
|
|||
string<=?
|
||||
string>?
|
||||
string>=?
|
||||
fast-string=?
|
||||
fast-string<?
|
||||
fast-string<=?
|
||||
fast-string>?
|
||||
fast-string>=?
|
||||
foldl
|
||||
foldr
|
||||
not
|
||||
|
@ -220,11 +225,11 @@
|
|||
zero?
|
||||
list?
|
||||
not
|
||||
string>=?
|
||||
string>?
|
||||
string<=?
|
||||
string<?
|
||||
string=?
|
||||
fast-string>=?
|
||||
fast-string>?
|
||||
fast-string<=?
|
||||
fast-string<?
|
||||
fast-string=?
|
||||
)
|
||||
(begin
|
||||
;; Features implemented by this Scheme
|
||||
|
@ -601,18 +606,17 @@
|
|||
; TODO: char-ci predicates (in scheme/char library)
|
||||
|
||||
|
||||
; ; TODO: generalize to multiple arguments: (define (string<? str1 str2 . strs)
|
||||
(define (string=? str1 str2) (equal? (string-cmp str1 str2) 0))
|
||||
(define (string<? str1 str2) (< (string-cmp str1 str2) 0))
|
||||
(define (string<=? str1 str2) (<= (string-cmp str1 str2) 0))
|
||||
(define (string>? str1 str2) (> (string-cmp str1 str2) 0))
|
||||
(define (string>=? str1 str2) (>= (string-cmp str1 str2) 0))
|
||||
; ; TODO: generalize to multiple arguments: (define (string<? str1 str2 . strs)
|
||||
; (define (string=?-2 str1 str2) (equal? (string-cmp str1 str2) 0))
|
||||
; (define (string<?-2 str1 str2) (< (string-cmp str1 str2) 0))
|
||||
; (define (string<=?-2 str1 str2) (<= (string-cmp str1 str2) 0))
|
||||
; (define (string>?-2 str1 str2) (> (string-cmp str1 str2) 0))
|
||||
; (define (string>=?-2 str1 str2) (>= (string-cmp str1 str2) 0))
|
||||
|
||||
(define (fast-string=? str1 str2) (equal? (string-cmp str1 str2) 0))
|
||||
(define (fast-string<? str1 str2) (< (string-cmp str1 str2) 0))
|
||||
(define (fast-string<=? str1 str2) (<= (string-cmp str1 str2) 0))
|
||||
(define (fast-string>? str1 str2) (> (string-cmp str1 str2) 0))
|
||||
(define (fast-string>=? str1 str2) (>= (string-cmp str1 str2) 0))
|
||||
|
||||
(define (member-helper obj lst cmp-proc)
|
||||
(cond
|
||||
|
|
|
@ -1133,16 +1133,16 @@ if (acc) {
|
|||
(cons 'write-string-1 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
((and (eq? (car ast) 'write-string) (= (length ast) 3))
|
||||
(cons 'write-string-2 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
;((and (eq? (car ast) 'string>=?) (= (length ast) 3))
|
||||
; (cons 'string>=?-2 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
;((and (eq? (car ast) 'string>?) (= (length ast) 3))
|
||||
; (cons 'string>?-2 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
;((and (eq? (car ast) 'string<=?) (= (length ast) 3))
|
||||
; (cons 'string<=?-2 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
;((and (eq? (car ast) 'string<?) (= (length ast) 3))
|
||||
; (cons 'string<?-2 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
;((and (eq? (car ast) 'string=?) (= (length ast) 3))
|
||||
; (cons 'string=?-2 (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
((and (eq? (car ast) 'string>=?) (= (length ast) 3))
|
||||
(cons 'fast-string>=? (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
((and (eq? (car ast) 'string>?) (= (length ast) 3))
|
||||
(cons 'fast-string>? (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
((and (eq? (car ast) 'string<=?) (= (length ast) 3))
|
||||
(cons 'fast-string<=? (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
((and (eq? (car ast) 'string<?) (= (length ast) 3))
|
||||
(cons 'fast-string<? (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
((and (eq? (car ast) 'string=?) (= (length ast) 3))
|
||||
(cons 'fast-string=? (map (lambda (a) (convert a renamed)) (cdr ast))))
|
||||
;; Regular case, alpha convert everything
|
||||
(else
|
||||
(regular-case)))))
|
||||
|
|
Loading…
Add table
Reference in a new issue