Files
libgtop/guile/features.awk
Martin Baulig 59a07e10f1 New file. Improved automatical generation of the documentation file
1998-08-11  Martin Baulig  <martin@home-of-linux.org>

	* guile/features.awk: New file.
	* guile/make-docbook.scm: Improved automatical generation of
	the documentation file `reference.sgml'.
	* guile/reference.sgml: This file is automatically generated,
	but many people have problems with it, so we add it to CVS.
1998-08-11 15:32:48 +00:00

62 lines
1.1 KiB
Awk

BEGIN {
string = "";
names = "";
}
function output(line) {
split (line, line_fields, /\|/);
retval = line_fields[1];
feature = line_fields[2];
param_def = line_fields[4];
orig = feature; sub(/^@/,"",feature);
space = feature; gsub(/./," ",space);
if (string == "")
string = " '(";
else
string = string" ";
string = string"(\""feature"\" (\""retval"\"";
feature_nounder = feature;
sub(/_/, "-", feature_nounder);
if (names == "")
names = " '(";
else
names = names" ";
names = names"(\""feature"\" \""feature_nounder"\")\n";
nr_params = split (param_def, params, /:/);
for (param = 1; param <= nr_params; param++) {
list = params[param];
type = params[param];
sub(/\(.*/, "", type);
sub(/^\w+\(/, "", list); sub(/\)$/, "", list);
string = string" (\""type"\"";
count = split (list, fields, /,/);
for (field = 1; field <= count; field++) {
string = string" \""fields[field]"\"";
}
string = string")";
}
string = string"))\n";
}
/^[^#]/ { output($0) }
END {
print "(define libgtop-features";
print string" )";
print ")\n";
print "(define libgtop-feature-names";
print names" )";
print ")\n";
}