Changeset 14956 in project


Ignore:
Timestamp:
06/10/09 04:40:07 (11 years ago)
Author:
Ivan Raikov
Message:

using lset<= instead of equal? to compare input streams in lexgen

Location:
release/4/lexgen/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/lexgen/trunk/lexgen.scm

    r14944 r14956  
    4646    cps-table longest lex )
    4747
     48
     49  (import scheme chicken data-structures srfi-14 srfi-69)
    4850  (require-library srfi-1)
    49 
    50   (import scheme chicken data-structures
    51           (only srfi-1 first second filter-map fold concatenate)
    52           srfi-14 srfi-69)
     51  (import (only srfi-1 first second filter-map fold concatenate lset<= ))
    5352  (require-extension matchable)
    5453
     
    8180                    ((c (h . r))
    8281                     (let ((ans (p t h)))
    83                        (and ans (list (cons ans c) r))))
    84                     ((c ())  s)
     82                        (and ans (list (cons ans c) r))))
    8583                    (else #f)))))
    8684    (lambda (cont streams)
     
    102100  (lambda (cont streams)
    103101    (let ((cont1 (lambda (streams1)
    104                    (if (null? streams1) (p2 cont streams) (cont streams1)))))
     102                   (if (lset<= equal? streams1 streams) (p2 cont streams) (cont streams1)))))
    105103      (p1 cont1 streams))))
    106 
    107104
    108105;; Kleene closure. Analogous to '*'
     
    113110        (let ((cont1 (lambda (streams1) (cont (concatenate (list streams streams1))))))
    114111          (p (lambda (streams1)
    115                (cond ((equal? streams streams1) (cont streams))
     112               (cond ((lset<= equal? streams1 streams) (cont streams))
    116113                     (else  ((star p) cont1 streams1))))
    117114             streams)))))
  • release/4/lexgen/trunk/tests/run.scm

    r14887 r14956  
    6868                   (a-or-b-star-pat identity  aabac-stream))
    6969
     70            (test (sprintf "match ab? on ~S" "abc")
     71                   `(((#\b #\a) (#\c)) )
     72                   (a-b-opt-pat identity  abc-stream))
     73
    7074            (test (sprintf "match ab? on ~S" "aabac")
    7175                   `(((#\a) (#\a #\b #\a #\c)) )
    7276                   (a-b-opt-pat identity  aabac-stream))
    7377
    74             (test (sprintf "match ab? on ~S" "abc")
    75                    `(((#\b #\a) (#\c)) )
    76                    (a-b-opt-pat identity  abc-stream))
    77 
    7878            (test (sprintf "match a*b? on ~S" "aabac")
    79                    `(((#\b #\a #\a) (#\a #\c)) )
     79                   `(((#\b #\a #\a) (#\a #\c)))
    8080                   (a-star-b-opt-pat identity aabac-stream))
    8181
     
    107107         (sign         (opt (char #\-))))
    108108    (seq sign (seq significand (opt exp)))))
    109 
    110109
    111110(test-group "lexgen numpat test"
Note: See TracChangeset for help on using the changeset viewer.