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

📄 guile-doc-snarf.awk

📁 gnu 的radius服务器很好用的
💻 AWK
字号:
# This is a snarfer for guile version 1.6# Copyright (C) 2002 Free Software Foundation, Inc.## Written by Sergey Poznyakoff# #  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 of the License, 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 program; if not, write to the Free Software Foundation,#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. BEGIN {      cname = ""}function flush() {	 if (cname == "")	    return;	 if (arg_req + arg_opt + arg_var != numargs)	    error(cname " incorrectly defined as taking " numargs " arguments")	 print "\f" cname	 print "@c snarfed from " loc_source ":" loc_line	 printf "@deffn {Scheme procedure} %s", cname	 for (i = 1; i <= numargs; i++) 	     printf(" %s", arglist[i])	 print ""	 print docstring	 print "@end deffn\n"	     	 delete argpos	 delete arglist	 cname = ""}function error(s) {	 print loc_source ":" loc_line ": " s > "/dev/stderr"	 exit 1}state == 0 && /{/ {	flush()	cname = $3	next}		state == 0 && /fname/ { fname = $2; next }state == 0 && /type/ { type = $2; next }state == 0 && /location/ { loc_source = $2; loc_line = $3 }state == 0 && /arglist/ {	match($0, "\\(.*\\)")	s = substr($0,RSTART+1,RLENGTH-2)	numargs = split(s, a, ",")	for (i = 1; i <= numargs; i++) {	    m = split(a[i], b, "[ \t]*")	    if (b[1] == "") {	       t = b[2]	       n = b[3]	       m--	    } else {	       t = b[1]	       n = b[2]	    }   	    if (m > 2 || t != "SCM")	       error(cname ": wrong argument type for arg " i " " t) 	    arglist[i] = n	}}state == 0 && /argsig/ { arg_req = $2; arg_opt = $3; arg_var = $4 }state == 0 && /.*\"/    {        gsub("\"\"", "")	gsub("\\\\n", "\n")	match($0,"\".*\"")	docstring = substr($0,RSTART+1,RLENGTH-2)}/argpos/ { argpos[$2] = $3 }END {	flush()}

⌨️ 快捷键说明

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