⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snarf-guile-m4-docs

📁 MSYS在windows下模拟了一个类unix的终端
💻
字号:
#!/bin/sh# aside from this initial boilerplate, this is actually -*- scheme -*- codemain='(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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -