stephent@shark.UUCP (Steve Tyler) (08/12/85)
Appended is a script which will generate an index to the Franz Lisp Manual by Foderaro and Sklower. On our VAX the manual (June 83 version) comes with a helpindex but this index only gives section numbers. The manual's page numbering in section 4 is off by one so those pages have to be renumbered in the manual by hand. The index contains all functions in the helpindex plus a few extra. To print it I filter it through "pr -2" ("pr -3" truncates some lines). The regular expression in the awk script selects lines that look like: "(xxx...)" or "(yyy..." where y is not a right-paren. =============================================================================== #! /bin/sh # # makelispindex # # usage: makelispindex > lispindex # # Prints each line that matches the regular expression below followed by # the computed section and page number. # The index is sorted and uniq'd. # Assumes 66 lines per page. # Example output: # changes 13-4 # top-level) 13-2 # trace 11-1 # traceargs 11-5 # tracedump) 11-5 # untrace 11-5 # valueof 13-3 # chaplist='0 1 10 11 12 13 14 15 16 2 3 4 5 6 61 7 8 9 b c' for chap in $chaplist do col < /usr/lib/lisp/manual/ch$chap.r | \ awk ' BEGIN { chapter = '$chap' page = 1 line = 1 } /^\(.*\)[ ]*$|^\([^\)]+$/ { split($1, nam, "(") print nam[2] " " chapter "-" page } { if (line >= 66) { line = 1 page = page + 1 } else { line = line + 1 } } ' >> /tmp/,makelispindex$$ done sort < /tmp/,makelispindex$$ | uniq rm /tmp/,makelispindex$$