diff options
Diffstat (limited to 'scripts/snarf-guile-m4-docs')
-rwxr-xr-x | scripts/snarf-guile-m4-docs | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/scripts/snarf-guile-m4-docs b/scripts/snarf-guile-m4-docs deleted file mode 100755 index 45d258c61..000000000 --- a/scripts/snarf-guile-m4-docs +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh -# aside from this initial boilerplate, this is actually -*- scheme -*- code -main='(module-ref (resolve-module '\''(scripts snarf-guile-m4-docs)) '\'main')' -exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@" -!# -;;; snarf-guile-m4-docs --- Parse guile.m4 comments for texi documentation - -;; Copyright (C) 2002 Free Software Foundation, Inc. -;; -;; This program is free software; you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 2, or -;; (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with this software; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;; Boston, MA 02111-1307 USA - -;;; Author: Thien-Thi Nguyen <ttn@gnu.org> - -;;; Commentary: - -;; Usage: snarf-guile-m4-docs FILE -;; -;; Grep FILE for comments preceding macro definitions, massage -;; them into valid texi, and display to stdout. For each comment, -;; lines preceding "^# Usage:" are discarded. -;; -;; TODO: Generalize. - -;;; Code: - -(define-module (scripts snarf-guile-m4-docs) - :use-module (ice-9 rdelim) - :export (snarf-guile-m4-docs)) - -(define (display-texi lines) - (display "@deffn {Autoconf Macro}") - (for-each (lambda (line) - (display (cond ((and (>= (string-length line) 2) - (string=? "# " (substring line 0 2))) - (substring line 2)) - ((string=? "#" (substring line 0 1)) - (substring line 1)) - (else line))) - (newline)) - lines) - (display "@end deffn") - (newline) (newline)) - -(define (prefix? line sub) - (false-if-exception - (string=? sub (substring line 0 (string-length sub))))) - -(define (massage-usage line) - (let loop ((line (string->list line)) (acc '())) - (if (null? line) - (list (list->string (reverse acc))) - (loop (cdr line) - (cons (case (car line) - ((#\( #\) #\,) #\space) - (else (car line))) - acc))))) - -(define (snarf-guile-m4-docs . args) - (let* ((p (open-file (car args) "r")) - (next (lambda () (read-line p)))) - (let loop ((line (next)) (acc #f)) - (or (eof-object? line) - (cond ((prefix? line "# Usage:") - (loop (next) (massage-usage (substring line 8)))) - ((prefix? line "AC_DEFUN") - (display-texi (reverse acc)) - (loop (next) #f)) - ((and acc (prefix? line "#")) - (loop (next) (cons line acc))) - (else - (loop (next) #f))))))) - -(define main snarf-guile-m4-docs) - -;;; snarf-guile-m4-docs ends here |