Changeset 2432 in project for doc-indices


Ignore:
Timestamp:
11/15/06 07:08:11 (14 years ago)
Author:
felix winkelmann
Message:

added doc indices for eggs, minor fixes

Location:
doc-indices
Files:
1 added
3 moved

Legend:

Unmodified
Added
Removed
  • doc-indices/grovel

    r2430 r2432  
    88
    99
    10 (define *ignored* '("comet" "chicken"()))
     10(set-sharp-read-syntax!
     11 #\>
     12 (lambda (p)
     13   (let loop ()
     14     (let ((c (read-char p)))
     15       (cond ((eof-object? c) #f)
     16             ((char=? #\< c)
     17              (if (char=? #\# (read-char p)) #f (loop)))
     18             (else (loop)) ) ) ) ) )
     19
     20(define *ignored* '("comet" "chicken" "doc-indices"))
    1121(define *top* #f)
    1222
     
    1525         (unless (member f *ignored*)
    1626           (unless *top*
    17              (print #\newline (list (pathname-file f)) #\newline)
    1827             (fprintf (current-error-port) "~a ...~%" f) )
    1928           (parameterize ((current-directory f))
     
    2736        ((member (pathname-extension f) '("scm" "ss"))
    2837         (print ";; " (pathname-strip-directory f))
    29          (with-input-from-file f
    30            (lambda ()
    31              (for-each-line
    32               (lambda (line)
    33                 (regex-case line
    34                   ("\\(define[ \t]+\\(*([^() \t]+).*" (_ name)
    35                    (unless (char=? #\# (string-ref name 0))
    36                      (print name) ) ) ) ) ) ) ) ) ) )
     38         (process f) ) ) )
     39
     40(define (process file)
     41  (with-input-from-file file
     42    (lambda ()
     43      (call/cc
     44       (lambda (return)
     45         (let loop ()
     46           (let ((x (handle-exceptions ex (begin (print-error-message ex) #f)
     47                      (read))))
     48             (unless (eof-object? x)
     49               (match x
     50                 (('module (? symbol?) (exports ...))
     51                  (emit exports) )
     52                 (('declare . decls)
     53                  (for-each
     54                   (match-lambda
     55                     (('export . exports)
     56                      (emit exports)
     57                      (return #f) )
     58                     (_ #f) )
     59                   decls) )
     60                 (('define (? symbol? s) _) (emit (list s)))
     61                 (('define ((? symbol? s) . _) . _) (emit (list s)))
     62                 (('define-macro ((? symbol? s) . _) . _) (emit (list s)))
     63                 (('define-syntax (? symbol? s) _) (emit (list s)))
     64                 (('define-syntax ((? symbol? s) . _) . _) (emit (list s)))
     65                 (_ #f) )
     66               (loop) ) ) ) ) ) ) ) )
     67
     68(define (emit syms)
     69  (for-each
     70   (lambda (s)
     71     (unless (##sys#qualified-symbol-prefix s)
     72       (pp (cons s (conc "http://www.call-with-current-continuation.org/eggs/" *top* ".html")))) )
     73   syms) )
    3774
    3875(for-each grovel (command-line-arguments))
Note: See TracChangeset for help on using the changeset viewer.