[gambit-list] parser bug? (gambit-c v4.2.8)

naruto canada narutocanada at gmail.com
Tue Sep 2 18:31:12 EDT 2008


On 9/3/08, naruto canada <narutocanada at gmail.com> wrote:
> hi
>
> try this:
>
> cd /usr ; rm -rf stalin*
> WGET_UNPACK_HERE ftp://ftp.ecn.purdue.edu/qobi/stalin.tar.Z
> rm -f stalin.tar.Z ; mv stalin-0.11 stalin
>
> WGET_UNPACK
> http://www.iro.umontreal.ca/~gambit/download/gambit/v4.2/source/gambc-v4_2_8.tgz
> ./configure --prefix=/usr --enable-single-host --enable-gcc-opts
> make || INTERVENTION $LINENO
> make install
>
> (don't worry about WGET_UNPACK WGET_UNPACK_HERE INTERVENTION, they
> simply wget and untar the tarball or check compilation error and does
> nothing else)
>
> cat /usr/stalin/benchmarks/*.sc > /tmp/1.sc
> cat /tmp/1.sc | mzscheme -e '(require (lib "pretty.ss"))' -f
> check-parameter.sc
> # ok no error
> cat /tmp/1.sc | /usr/v4.2.8/bin/gsi check-parameter.sc
>
> *** ERROR IN (stdin)@15339.7 -- Invalid token

ha, it turns out that it's just a case-sensitivity problem. (can't parse #T),
after changing #T to #t, all is well. No big deal, I was worry about
something else.
False alarm.


>
>
> cat check-parameter.sc
> ;(set! *parser-canonicalize-symbols?* #f)
>
> (define (atom? x) (not (pair? x)))
> (define prev-token 0)
>
> (define (transform exp)
>   (cond ((atom? exp) (begin (set! prev-token exp) exp))
>         ((list? exp) (map transform exp))
>         (else (begin (if (not (or (eq? 'lambda prev-token) (eq?
> 'define prev-token)))
>                          (begin (display ";;; pair used not as lambda
> parameter list? ")
>                                 (pretty-print (list "exp:" exp
> "prev-token:" prev-token))
>                                 exp))
>                      (display ";;; lambda parameter list : ")
>                      (pretty-print exp) exp))))
>
> (define (loop)
>  (let ((text (read)))
>   (if (eof-object? text) (exit)
>       (begin (pretty-print (transform text)) (newline) (loop)))))
> (newline) (loop)
>
>
> have fun :)
>



More information about the Gambit-list mailing list