diff options
author | Jim Meyering <jim@meyering.net> | 1999-01-27 21:29:38 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1999-01-27 21:29:38 +0000 |
commit | 9acb5c85febed10014f6a78ce9867631f6a8c5c8 (patch) | |
tree | 341b0a6cbaf321edc33f3da61c908c10722b9e66 /doc | |
parent | a8284194a9040775b36ab6fe1fe0d308ef9d1a3e (diff) | |
download | idutils-9acb5c85febed10014f6a78ce9867631f6a8c5c8.tar.gz idutils-9acb5c85febed10014f6a78ce9867631f6a8c5c8.tar.bz2 idutils-9acb5c85febed10014f6a78ce9867631f6a8c5c8.zip |
.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile.in | 6 | ||||
-rw-r--r-- | doc/id-utils.info | 1176 | ||||
-rw-r--r-- | doc/stamp-vti | 3 | ||||
-rw-r--r-- | doc/version.texi | 3 |
4 files changed, 3 insertions, 1185 deletions
diff --git a/doc/Makefile.in b/doc/Makefile.in index ec58770..f9b2286 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -115,7 +115,7 @@ GZIP_ENV = --best all: all-redirect .SUFFIXES: .SUFFIXES: .dvi .info .ps .texi .texinfo .txi -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) @@ -123,7 +123,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status -$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@stamp-vti +$(srcdir)/version.texi: stamp-vti @: $(srcdir)/stamp-vti: id-utils.texi $(top_srcdir)/configure.in @@ -144,7 +144,7 @@ clean-vti: distclean-vti: maintainer-clean-vti: - -@MAINTAINER_MODE_TRUE@rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi + -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi id-utils.info: id-utils.texi version.texi id-utils.dvi: id-utils.texi version.texi diff --git a/doc/id-utils.info b/doc/id-utils.info deleted file mode 100644 index c4289df..0000000 --- a/doc/id-utils.info +++ /dev/null @@ -1,1176 +0,0 @@ -This is Info file id-utils.info, produced by Makeinfo-1.63 from the -input file id-utils.texi. - -START-INFO-DIR-ENTRY -* ID database: (id-utils). Identifier database utilities. -* mkid: (id-utils)mkid invocation. Creating an ID database. -* lid: (id-utils)lid invocation. Matching words and patterns. -* fid: (id-utils)fid invocation. Listing a file's tokens. -* fnid: (id-utils)fnid invocation. Looking up file names. -* xtokid: (id-utils)xtokid invocation. Testing mkid scanners. -END-INFO-DIR-ENTRY - - This file documents the `id-utils' database utilities. - - Copyright (C) 1996 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation. - - -File: id-utils.info, Node: Top, Next: Introduction, Up: (dir) - -ID utilities -************ - - This manual documents version 3.2 of the ID utilities. - -* Menu: - -* Introduction:: Overview of the tools with tutorial. -* Quick start:: Quick start procedure. -* Common options:: Common command-line options. -* mkid invocation:: Creating an ID database. -* lid invocation:: Querying an ID database by token. -* fid invocation:: Listing a file's tokens. -* fnid invocation:: Looking up file names. -* xtokid invocation:: Testing language scanners. -* Past and Future:: History and future directions. -* Index:: General index. - - -File: id-utils.info, Node: Introduction, Next: Quick start, Prev: Top, Up: Top - -Introduction -************ - - An "ID database" is a binary file containing a list of file names, a -list of tokens, and a sparse matrix indicating which tokens appear in -which files. - - With this database and some tools to query it (described in this -manual), many text-searching tasks become simpler and faster. For -example, you can list all files that reference a particular `#include' -file throughout a huge source hierarchy, search for all the memos -containing references to a project, or automatically invoke an editor -on all files containing references to some function or variable. -Anyone with a large software project to maintain, or a large set of text -files to organize, can benefit from the ID utilities. - - Although the name `ID' is short for `identifier', the ID utilities -handle more than just identifiers; they also treat other kinds of -tokens, most notably numeric constants, and the contents of certain -character strings. Thus, this manual will use the word "token" as a -term that is inclusive of identifiers, numbers and strings. - - There are several programs in the ID utilities family: - -`mkid' - scans files for tokens and builds the ID database file. - -`lid' - queries the ID database for tokens, then reports matching file - names or matching lines. - -`fid' - lists all tokens recorded in the database for given files, or - tokens common to two files. - -`fnid' - matches the file names in the database, rather than the tokens. - -`xtokid' - extracts raw tokens--helps with testing of new `mkid' scanners. - - In addition, the ID utilities have historically provided several -query programs which are specializations of `lid': - -`gid' - (alias for `lid -R grep') lists all lines containing the requested - pattern. - -`eid' - (alias for `lid -R edit') invokes an editor on all files - containing the requested pattern, and if possible, initiates a - text search for that pattern. - -`aid' - (alias for `lid -ils') treats the requested pattern as a - case-insensitive literal substring. - - Please report bugs to `bug-gnu-utils@gnu.ai.mit.edu'. Remember to -include the version number, machine architecture, input files, and any -other information needed to reproduce the bug: your input, what you -expected, what you got, and why it is wrong. Diffs are welcome, but -please include a description of the problem as well, since this is -sometimes difficult to infer. *Note Bugs: (gcc)Bugs. - - -File: id-utils.info, Node: Quick start, Next: Common options, Prev: Introduction, Up: Top - -Quick Start Procedure -********************* - - Unpack the distribution. - - Type `./configure' - - Type `make' - - Type `make install' as a user with the appropriate privileges - (e.g., `bin' or perhaps even `root'). - - Type `cd /usr/include; mkid' to build an ID database covering all - of the system header files. - - Type `lid FILE', then `gid strtok', then `aid stdout'. - - You have just built, installed and used the most common commands of -the GNU ID utilities. If you ever need help remembering which system -header files contain a particular declaration, or reference a -particular symbol, you'll want to keep the ID file you built in -`/usr/include' for later use. If your working directory is elsewhere -at the time, simply provide the `-f /usr/include' option to `lid' -(*note Reading options::.). - - -File: id-utils.info, Node: Common options, Next: mkid invocation, Prev: Quick start, Up: Top - -Common command-line options -*************************** - - Certain options, and regular expression syntax, are shared by various -groupings of the ID utilities. We describe these in the sections below, -rather than repeating them for each program. - -* Menu: - -* Universal options:: Options common to all programs. -* Extraction options:: Options for programs that extract tokens from source files. -* Walker options:: Options for programs that walk file and directory trees. -* Reading options:: Options for programs that read ID databases. -* Writing options:: Options for programs that write ID databases. -* File listing options:: Options for programs that list file names. - - -File: id-utils.info, Node: Universal options, Next: Extraction options, Up: Common options - -Options Common to All Programs -============================== - -`--help' - Print a usage message listing all available options, then exit - successfully. - -`--version' - Print the version number, then exit successfully. - - -File: id-utils.info, Node: Reading options, Next: Writing options, Prev: Walker options, Up: Common options - -Options for Programs that Read ID Databases -=========================================== - -`-f FILENAME' -`--file=FILENAME' - FILENAME is the ID database to read when processing queries. At - present, only a single `--file' option is processed, but in future - releases, more than one ID database may be named on the command - line. - -`$IDPATH' - `IDPATH' is an environment variable that contains a - colon-separated list of ID database names. If this variable is - present, and no `--file' options are presented on the command - line, the ID databases named in `IDPATH' are implied.(1) - - If no ID databases are specified either on the command line or via -the `IDPATH' environment variable, then the ID utilities search for a -file named `ID' in the current working directory, and then in -successive parent directories. - - ---------- Footnotes ---------- - - (1) At present, this feature is fully implemented, since only the -first of a list of ID database names is processed. - - -File: id-utils.info, Node: Writing options, Next: File listing options, Prev: Reading options, Up: Common options - -Options for Programs that Write ID Databases -============================================ - -`-o FILENAME' -`--output=FILENAME' - The `--output' option names the file in which to write a new ID - database. If no `--output' (or `--file') option is present, an - output file named `ID' is implied. - -`-f FILENAME' -`--file=FILENAME' - This is a synonym for `--output' - - -File: id-utils.info, Node: Walker options, Next: Reading options, Prev: Extraction options, Up: Common options - -Options for Programs that Walk File and Directory Trees. -======================================================== - - The programs `mkid' and `xtokid' accept the names of files and -directories on the command line. Files are scanned if there is a -scanner available and enabled for the file's source language. -Directories are recursively descended, searching for files whose names -match the rules listed in the *language map* file (*note Language -map::.). - - The following option controls the file tree walker: - -`-p NAMES' -`--prune=NAMES' - One or more file or directory names may appear in NAMES. The file - tree walker will stop short at these files and directories and - their contents will not be scanned. - - -File: id-utils.info, Node: File listing options, Prev: Writing options, Up: Common options - -Options for Programs that List File Names -========================================= - - The programs `lid' and `fnid' can print lists of file names as the -result of queries. The following option controls how these lists are -formatted: - -`-S STYLE' -`--separator=STYLE' - STYLE may be one of `braces', `space' or `newline'. - - The STYLE of `braces' means that file names with common directory - prefix and common suffix are printed using the shell's brace - notation in order to compress the output. For example, - `../src/foo.c ../src/bar.c' can be printed in brace notation as - `../src/{foo,bar}.c'. - - The STYLEs of `space' and `newline' mean that file names are - separated spaces or by newlines, respectively. - - If the list of files is being printed on a terminal, brace - notation is the default. If not, file names are separated by - spaces if the KEY is included in the output, and by newlines the - KEY STYLE is `none' (*note lid invocation::.). - - -File: id-utils.info, Node: Extraction options, Next: Walker options, Prev: Universal options, Up: Common options - -Options for Programs that Scan Source Files -=========================================== - - `mkid' and `xtokid' walk file trees, select source files by name, -and extract tokens from source files. They accept the following -options: - -`-m MAPFILE' -`--lang-map=MAPFILE' - MAPFILE contains rules for determining the source languages from - file names. *Note Language map:: - -`-i LANGUAGES' -`--include=LANGUAGES' - The `--include' option names LANGUAGES whose source files should - be scanned and incorporated into the ID database. By default, all - languages known to the ID utilities are enabled. - -`-x LANGUAGES' -`--exclude=LANGUAGES' - The `--exclude' option names LANGUAGES whose source files should - NOT be scanned. The default list of excluded languages is empty. - Note that only one of `--include' or `--exclude' may be specified - on the command line for a single run. - -`-l LANGUAGE:OPTIONS' -`--lang-option=LANGUAGE:OPTIONS' - Language-specific scanners also accept options. LANGUAGE denotes - the desired scanner, and OPTION are the command-line options that - should be passed through to it. For example, to pass the -X - -COKE-BOTTLE options to the scanner for the language SWIZZLE, pass - this: -L SWIZZLE:"-X -COKE-BOTTLE", or this: - -LANG-OPTION=SWIZZLE:"-X -COKE-BOTTLE", or this: -L SWIZZLE-X -L - SWIZZLE:-COKE-BOTTLE. Use the `--help' option to see the - command-line option summary for - - To determine which tokens to extract from a file and store in the -database, `mkid' calls a "scanner"; we say a scanner "recognizes" a -particular language. Scanners for several languages are built-in to -`mkid'; you can add your own scanners as well, as explained in *Note -Defining scanners::. - - The ID utilities determine which scanner to use for a particular -file by consulting the language-map file. Scanners for several are -already built-in to the ID utilities. You can see which languages have -built-in scanners, and examine their language-specific options by -invoking `mkid --help' or `xtokid --help'. - -* Menu: - -* Language map:: Mapping file names to source languages. -* C/C++ scanner:: For the C and C++ programming language. -* Assembler scanner:: For assembly language. -* Text scanner:: For documents or other non-source code. -* Defining scanners:: Defining new scanners in the source code. - - -File: id-utils.info, Node: Language map, Next: C/C++ scanner, Up: Extraction options - -Mapping file names to source languages --------------------------------------- - - The file `id-lang.map', installed by default in -`$(prefix)/share/id-lang.map', contains rules for mapping file names to -source languages. Each rule comprises three parts: a shell GLOB -pattern, a language name, and language-specific scanner options. - - The special pattern `**' denotes the default source language. This -is the language that's assigned to file names that don't match any other -pattern. - - The special pattern `***' should be followed by a file name. The -named file should contain more language-map rules and is included at -this point. - - The order in which rules are presented in a language-map file is -significant. This order influences the order in which files are -displayed as the result of queries. For example, the distributed -language-map file places all rules for C .H files ahead of .C files, so -that in general, declarations will precede definitions in query output. -The same thing is done for C++ and its many different source file name -extensions. - - Here is a pared-down version of the `id-lang.map' file distributed -with the ID utilities: - - - # Default language - ** IGNORE # Although this is listed first, - # the default language pattern is - # logically matched last. - - # Backup files - *~ IGNORE - *.bak IGNORE - *.bk[0-9] IGNORE - - # SCCS files - [sp].* IGNORE - - # list header files before code files - *.h C - *.h.in C - *.H C++ - *.hh C++ - *.hpp C++ - *.hxx C++ - - # list C `meta' files next - *.l C - *.lex C - *.y C - *.yacc C - - # list C code files after header files - *.c C - *.C C++ - *.cc C++ - *.cpp C++ - *.cxx C++ - - # list assembly language after C - *.[sS] asm --comment=; - *.asm asm --comment=; - - # [nt]roff - *.[0-9] roff - *.ms roff - *.me roff - *.mm roff - - # TeX and friends - *.tex TeX - *.ltx TeX - *.texi texinfo - *.texinfo texinfo - - -File: id-utils.info, Node: C/C++ scanner, Next: Assembler scanner, Prev: Language map, Up: Extraction options - -C/C++ Language Scanner ----------------------- - - The C scanner is the most commonly used. Files that match the glob -pattern `*.h', `*.c', as well as `yacc' files that match `*.y' or -`*.yacc', and `lex' files that match `*.l' or `*.lex', are processed -with this scanner. - - Scanner-specific options (Note, these options are presented WITHOUT -the required `-l' or `--lang-option=' prefix): - -`-k CHARACTER-CLASS' -`--keep=CHARACTER-CLASS' - Consider the characters in CHARACTER-CLASS as valid constituents of - identifier names. For example, if you are indexing C code that - contains `$' in some of its identifiers, you can include these by - using `--lang-option=C:--keep=$', or `-l C:"-k $"' (if you don't - like to type so much). - -`-i CHARACTER-CLASS' -`--ignore=CHARACTER-CLASS' - x mkiConsider the characters in CHARACTER-CLASS as valid - constituents of identifier names, but discard all tokens - containing these characters. For example, if some C code has - identifiers containing `$', but you don't want these cluttering up - your ID database, use `--lang-option=C:--ignore=$', or the terser - equivalent `-l C:"-i $"'. - -`-u' -`--strip-underscore' - Strip one leading underscore from C identifiers encapsulated as - character strings. This option is useful if you are indexing C - code that contains symbol-table name strings for systems that - prepend an underscore to external symbols. By default, the - leading underscore is retained. - - -File: id-utils.info, Node: Assembler scanner, Next: Text scanner, Prev: C/C++ scanner, Up: Extraction options - -Assembly Language Scanner -------------------------- - - Assembly languages use a variety of commenting conventions, and -allow a variety of special characters to *dirty up* local symbols, -preventing name space conflicts with symbols defined by higher-level -languages. Also, some compilation systems prepend an underscore to -external symbols. The options listed below are designed to address -these differences. - -`-c CHARACTER-CLASS' -`--comment=CHARACTER-CLASS' - The characters in CHARACTER-CLASS are considered left delimiters - for comments that extend until the end of the current line. - -`-k CHARACTER-CLASS' -`--keep=CHARACTER-CLASS' - Consider the characters of CHARACTER-CLASS as valid constituents of - identifier names. For example, if you are indexing assembly code - that prepends `.' to assembler directives, and prepends `%' to - register names, you can keep these characters in the tokens by - specifying `--lang-option=asm:--keep=.%', or `-l asm:"-k .%"'. - -`-i CHARACTER-CLASS' -`--ignore=CHARACTER-CLASS' - Consider the characters of CHARACTER-CLASS as valid consituents of - identifier names, but discard all tokens containing these - characters. For example, if you don't want to clutter your ID - database with assembler directives that begin with a leading `.' - or with assembler labels that contain `@', use - `--lang-option=asm:--ignore=.@', or `-l asm:"-i .@"'. - -`-u' -`--strip-underscore' - Strip one leading underscore from identifiers. This option is - useful if your compilation system prepends an underscore to - external symbols. By stripping the underscore, you can - canonicalize such names and bring them into conformance the way - they are expressed in the C language. By default, the leading - underscore is retained. - -`-n' -`--no-cpp' - Do not recognize C preprocessor directives. By default, such - lines are handled in the same way as they are by the C language - scanner. - - -File: id-utils.info, Node: Text scanner, Next: Defining scanners, Prev: Assembler scanner, Up: Extraction options - -Text Scanner ------------- - - The plain text scanner is intended for human-language documents, or -as the scanner of last resort for files that have no scanner that is -more specific. It is customizable to the extent that character classes -can be designated as token constituents or as token delimiters. The -default token constituents are the alpha-numerics; all other characters -are considered token delimiters. - -`-i CHARACTER-CLASS' -`--include=CHARACTER-CLASS' - Include characters belonging to CHARACTER-CLASS in tokens. - -`-x CHARACTER-CLASS' -`--exclude=CHARACTER-CLASS' - Exclude characters belonging to CHARACTER-CLASS from tokens, i.e., - treat them as token delimiters. - - -File: id-utils.info, Node: Defining scanners, Prev: Text scanner, Up: Extraction options - -Defining New Scanners in the Source Code ----------------------------------------- - - To add a new scanner in source code, you should add a new section to -the file `scanners.c'. It might be easiest to clone one of the -existing scanners and modify it as necessary. For the hypothetical -language FOO, you must define the functions `get_token_foo', -`parse_args_foo', `help_me_foo', as well as the tables -`long_options_foo' and `args_foo'. If your scanner is modelled after -one of the existing scanners, you'll also need a character-attribute -table `ctype_foo'. - - This is not a terribly difficult programming task, but it requires -recompiling and installing the new version of `mkid' and `xtokid'. You -should use `xtokid' to test the operation of the new scanner. - - Once these functions and tables are ready, add function prototypes -and an entry to to the `languages_0' table near the beginning of the -file. - - Be warned that the existing scanners are built for speed, not -elegance or readability. You might wish to create a new scanner that's -easier to read and understand if you don't feel that speed is so -important. - - -File: id-utils.info, Node: mkid invocation, Next: lid invocation, Prev: Common options, Up: Top - -`mkid': Creating an ID Database -******************************* - - `mkid' builds an ID database. It accepts the names of files and/or -directories on the command line, selects files that have an enabled -scanner, then extracts and stores tokens from those files. The -resulting ID database is architecture- and byte-order-independent so it -can be shared among all systems. - - The primary virtues of `mkid' are speed and high capacity. The size -of the source trees it can index is limited only by available system -memory. `mkid''s indexing algorithm is very space-efficient and -exhibits excellent locality-of-reference, and so is capable of -operating with a working-set size that is only half the size of its -virtual address space. A typical UNIX-like operating system with 16 -megabytes of system memory should be able to build an ID database -covering approximately 12,000-14,000 source files totalling -approximately 50-100 Megabytes. A 66 Mhz 486 computer can build such a -large ID database in approximately 10-15 minutes. - - In a future release, `mkid' will be able to incrementally update an -ID database much faster than it can build one from scratch. Until this -feature becomes available, it might be a good idea to schedule a `cron' -job to regularly update large ID databases during off-hours. - - `mkid' writes the ID file, therefore it accepts the `--output' (and -`--file') options as described in *Note Writing options::. `mkid' -extracts tokens from source files, therefore it accepts the -`--lang-map', `--include', `--exclude', and `--lang-option' options, as -well as the language-specific scanner options, all of which are -described in *Note Extraction options::. `mkid' walks file trees, -therefore it handles file and directory names on its command line and -the `--prune' option as described in *Note Walker options::. - - In addition, `mkid' accepts the following command-line options: - -`-s' -`--statistics' - `mkid' reports statistics about resource usage at the end of its - run. - -`-v' -`--verbose' - `mkid' reports statistics about each file as it is scanned, and - about the resource usage of its indexing algorithm at regular - intervals. - - -File: id-utils.info, Node: lid invocation, Next: fid invocation, Prev: mkid invocation, Up: Top - -`lid': Querying an ID Database by Token -*************************************** - - The `lid' program accepts PATTERNS on the command line which it -matches against the tokens stored in an ID database. The -interpretation of a PATTERN is determined by the makeup of the PATTERN -string itself, or can be overridden by command-line options. If a -PATTERN contains regular expression meta-characters, it is used to -perform a regular-expression substring search. If no such -meta-characters are present, PATTERN is used to perform a literal word -search. (By default, all searches are sensitive to alphabetic case.) -If no PATTERN is supplied on the command line, `lid' lists every entry -in the ID database. - - `lid' reads the ID database, therefore it accepts the `--file' -option, and consults the `IDPATH' environment variable, as described in -*Note Reading options::. `lid' lists file names, therefore it accepts -the `--separator' option, as described in *Note File listing options::. - - In addition, `lid' accepts the following command-line options: - -`-i' -`--ignore-case' - Ignoring differences in alphabetic case between the PATTERN and - the tokens in the ID database. - -`-l' -`--literal' - Match PATTERN as a literal string. Use this option if PATTERN - contains regular-expression meta-characters, but you don't wish to - perform a regular-expression search. - -`-r' -`--regexp' - Match PATTERN as an *extended* regular expression(1). Use this - option if no regular-expression expression meta-characters are - present in PATTERN, but you wish to force a regular-expression - search (note: in this case, a *literal substring* search might be - faster). - -`-w' -`--word' - Match PATTERN using a word-delimited (non substring) search. This - is the default for literal searches. - -`-s' -`--substring' - Match PATTERN using a substring (non word-delimited) search. This - is the default for regular expression searches. - -`-k STYLE' -`--key=STYLE' - STYLE can be one of `token', `pattern' or `none'. This option - controls how the subject of the query is presented. This is best - illustrated by example: - - $ lid --key=token '^dest.' - destaddr libsys/memcpy.c - destination libsys/regex.c - destlst libsys/rx.c - destpos libsys/rx.c - destset libsys/rx.h libsys/rx.c - - $ lid --key=pattern '^dest.' - ^dest. libsys/rx.h libsys/{memcpy,regex,rx}.c - - $ lid --key=none '^dest.' - libsys/rx.h libsys/{memcpy,regex,rx}.c - - When `--key' is either `token' or `pattern', the first column of - output is a TOKEN or PATTERN, respectively. When `--key' is - `none', neither of these is printed, and the file name list begins - immediately. The default is `token'. - -`-R STYLE' -`--result=STYLE' - STYLE can be one of `filenames', `grep', `edit' or `none'. This - option controls how the value associated with the query's KEY - presented. When STYLE is `filenames', a list of file names is - printed (this is the default). When STYLE is `grep', the lines - that match PATTERN are printed in the same format as `egrep -n'. - When STYLE is `edit', the file names are passed to an editor, and - if possible PATTERN is passed as an initial search string (*note - eid invocation::.). When STYLE is `none', the file names are not - processed in any way. This can be useful if you wish to see what - tokens match a PATTERN, but don't care about where they reside. - -`-d' -`-o' -`-x' - These options may be used in any combination to specify the radix - of numeric matches. `-d' allows matching on decimal numbers, `-o' - on octal numbers, and `-x' on hexadecimal numbers. Any - combination of these options may be used. The default is to match - all three radixes. - -`-F RANGE' -`--frequency=RANGE' - Match tokens whose occurrence count falls in RANGE. RANGE may be - expressed as a single number N, or as a range N`..'M. Either - limit of the range may be omitted (e.g., `..'M, or N..`..'). If - the lower limit N is omitted, it defaults to `1'. If the upper - limit is omitted, it defaults in the present implementation to - `65535', the maximum value of an unsigned 16-bit integer. - - Particularly useful queries are `lid -F1', which helps locate - identifiers that are defined but never used, or are used but never - defined. Similarly, `lid -F2' can help find functions that possess - a prototype declaration and a definition, but are never called. - -`-a NUMBER' -`--ambiguous=NUMBER' - List identifiers (not numbers) that are ambiguous for the first - NUMBER characters. This feature might be in useful when porting - programs to ancient pea-brained compilers that don't support long - identifier names. However, the best long-term option is to set - such systems on fire. - -* Menu: - -* lid aliases:: Aliases for specialized lid queries -* Emacs gid interface:: GNU Emacs query interface -* eid invocation:: Invoking an editor on query results - - ---------- Footnotes ---------- - - (1) Extended regular expressions are the same as those accepted by -`egrep'. - - -File: id-utils.info, Node: lid aliases, Next: Emacs gid interface, Up: lid invocation - -Aliases for Specialized `lid' Queries -===================================== - - Historically, the ID utilities have provided several query interfaces -which are specializations of `lid' (*note lid invocation::.). - -`gid' - (alias for `lid -R grep') lists all lines containing the requested - pattern. - -`eid' - (alias for `lid -R edit') invokes an editor on all files - containing the requested pattern, and optionally initiates a text - search for that pattern. - -`aid' - (alias for `lid -ils') treats the requested pattern as a - case-insensitive literal substring. - - -File: id-utils.info, Node: Emacs gid interface, Next: eid invocation, Prev: lid aliases, Up: lid invocation - -GNU Emacs query interface -========================= - - The `id-utils' source distribution comes with a file `id-utils.el', -which defines a GNU Emacs interface to `gid'. To install it, put -`id-utils.el' somewhere that Emacs will find it (i.e., in your -`load-path') and put - - (autoload 'gid "gid" nil t) - -in one of Emacs' initialization files, e.g., `~/.emacs'. You will then -be able to use `M-x gid' to run the command. - - The `gid' function prompts you with the word around point. If you -want to search for something else, simply delete the line and type the -pattern of interest. - - The function then runs the `gid' program in a `*compilation*' -buffer, so the normal `next-error' function can be used to visit all -the places the identifier is found (*note Compilation: -(emacs)Compilation.). - - -File: id-utils.info, Node: eid invocation, Prev: Emacs gid interface, Up: lid invocation - -`eid': Invoking an Editor on Query Results -========================================== - - `lid -R edit' is an editing interface for the ID utilities that is -most commonly used with `vi'. Emacs users should use the interface -defined in `id-utils.el' (*note Emacs gid interface::.). The ID -utilities include an alias called `eid', and for the sake of brevity, -we'll use this alias for the remainder of this section. `eid' performs -a `lid'-style, then asks if you wish to edit the files. If your query -yields more than one line of output, you will be prompted after each -line. This is the prompt you'll see: - - Edit? [y1-9^S/nq] - -You may respond with: - -`y' - Edit all files listed. - -`1...9' - Edit all files starting at the N + 1'st file. - -`/STRING or `CTRL-S'REGEXP' - Search into the file list, and begin editing with the first file - name that matches the regular expression REGEXP. - -`n' - Don't edit any files. If another line of query output is pending, - advance to that line, for which another `Edit?' prompt will appear. - -`q' - Quit--don't edit any files, and don't process any more lines of - query output. - - Here is an example: - - prompt$ eid FILE \^print - FILE {ansi2knr,fid,filenames,idfile,idx,lid,misc,...}.c - Edit? [y1-9^S/nq] n - ^print {ansi2knr,fid,getopt,getopt1,lid,mkid,regex,scanners}.c - Edit? [y1-9^S/nq] 2 - -This will start editing at `getopt'.c. - - `eid' invokes the editor defined by the environment variable -`VISUAL'. If `VISUAL' is undefined, it uses the environment variable -`EDITOR' instead. If `EDITOR' is undefined, it defaults to `vi'. It -is possible for `eid' to pass the editor an initial search pattern so -that your cursor will immediately alight on the token of interest. -This feature is controlled by the following environment variables: - -`EIDARG' - A printf(3) format string for the editor argument to search for the - matching token. For `vi', this should be `+/%s/'. - -`EIDLDEL' - The regular-expression meta-character(s) for delimiting the - beginning of a word (the ``eid' Left DELimiter'). `eid' inserts - this in front of the matching token when a word-search is desired. - For `vi', this should be `\<'. - -`EIDRDEL' - The regular-expression meta-character(s) for delimiting the end of - a word (the ``eid' Right DELimiter'). `eid' inserts this in end - of the matching token when a word-search is desired. For `vi', - this should be `\>'. - - -File: id-utils.info, Node: fid invocation, Next: fnid invocation, Prev: lid invocation, Up: Top - -`fid': Listing a file's tokens -****************************** - - `fid' prints the tokens found in a given file. If two file names -are passed on the command line, `fid' prints the tokens that are common -to both files (i.e., the *set intersection* of the two token sets). - - `lid' reads the ID database, therefore it accepts the `--file' -option, and consults the `IDPATH' environment variable, as described in -*Note Reading options::. - - If the standard output is attached to a terminal, the printed tokens -are separated by spaces. Otherwise, the tokens are printed one per -line. - - -File: id-utils.info, Node: fnid invocation, Next: xtokid invocation, Prev: fid invocation, Up: Top - -`fnid': Looking up filenames -**************************** - - `fnid' queries the list of file names stored in the ID database. It -accepts shell *wildcard* patterns on the command line. If no pattern -is supplied, `*' is implied. `fnid' prints the file names that match -the given patterns. - - `fnid' prints file names, and as such accepts the `--separator' -option as described in *Note File listing options::. - - For example, the command: - - fnid \*.c - -lists all the `.c' files in the database. (The `\' here protects the -`*' from being expanded by the shell.) - - -File: id-utils.info, Node: xtokid invocation, Next: Past and Future, Prev: fnid invocation, Up: Top - -`xtokid': Testing Language Scanners -*********************************** - - `xtokid' accepts the names of files and/or directories on the -command line, then extracts and prints a stream of tokens from those -files for which it has a valid, enabled scanner. This is useful -primarily for debugging new `mkid' scanners (*note Defining -scanners::.). - - `xtokid' extracts tokens from source files, therefore it accepts the -`--lang-map', `--include', `--exclude', and `--lang-option' options, as -well as the language-specific scanner options, all of which are -described in *Note Extraction options::. `xtokid' walks file trees, -therefore it handles file and directory names on its command line and -the `--prune' option as described in *Note Walker options::. - - The name `xtokid' indicates that it is the "eXtract TOKens ID -utility". - - -File: id-utils.info, Node: Past and Future, Next: Index, Prev: xtokid invocation, Up: Top - -Past and Future -*************** - - Greg McGary conceived of the ideas behind the ID utilities when he -began working on the Unix kernel in 1984. He needed a navigation tool -to help him find his way around the expansive, unfamiliar landscape. -The first `id-utils'-like tools were shell scripts, and produced an -ASCII database that looks much like the output of `lid ".*"'. It took -over an hour on a VAX 11/750 to build a database for a 4.1BSD derived -kernel. The first version of `lid' used the UNIX system utility -`look', modified to handle very long lines. - - In 1986, Greg rewrote the shell scripts in C to improve performance. -Build times for the ID file were shortened by an order of magnitude. -The ID utilities were first posted to `comp.sources.unix' in September -1987 under the name `id'. - - Over the next few years, several versions diverged from the original -source. Tom Horsley at Harris Computer Systems Division stepped forward -to take over maintenance and integrated some of the fixes from divergent -versions. A first release of the renamed `mkid' version 2 was posted -to `alt.sources' near the end of 1990. At that time, Tom wrote a -Texinfo manual with the encouragement the net community. (Tom -especially thanks Doug Scofield and Bill Leonard whom he dragooned into -helping poorfraed and edit--they found several problems in the initial -version.) Karl Berry revamped the manual for Texinfo style, indexing, -and organization in 1995. - - In January 1995, Greg McGary reemerged as the primary maintainer and -launched development of `mkid' version 3, whose primary new feature is -an efficient algorithm for building databases that is linear in both -time and space over the size of the input text. (The old algorithm was -quadratic in space so it was incapable of handling very large source -trees.) For the first time, the code was released under the GNU Public -License. - - In June 1996, the package was renamed again to `id-utils' and was -released for the first time under FSF copyright as part of the GNU -system. All programs had their command-line arguments completely -revised. The `mkid' and `xtokid' programs also gained a file-tree -walker, so that directory names can be passed on the command line -instead of the names of every individual file. Greg reorganized and -rewrote most of the Texinfo manual to reflect these changes. - - Future releases of `id-utils' might include: - - an optional coupling with GNU `grep', so that `grep' can use an ID - database for hints - - a `cscope' work-alike query interface - - incremental update of the ID database. - - -File: id-utils.info, Node: Index, Prev: Past and Future, Up: Top - -Index -***** - -* Menu: - -* *compilation* Emacs buffer: Emacs gid interface. -* -ambiguous: lid invocation. -* -comment: Assembler scanner. -* -exclude <1>: Text scanner. -* -exclude: Extraction options. -* -file <1>: Writing options. -* -file: Reading options. -* -frequency: lid invocation. -* -help: Universal options. -* -ignore <1>: Assembler scanner. -* -ignore: C/C++ scanner. -* -ignore-case: lid invocation. -* -include <1>: Text scanner. -* -include: Extraction options. -* -keep <1>: Assembler scanner. -* -keep: C/C++ scanner. -* -lang-map: Extraction options. -* -lang-option: Extraction options. -* -lang-option=asm:-comment: Assembler scanner. -* -lang-option=asm:-ignore: Assembler scanner. -* -lang-option=asm:-keep: Assembler scanner. -* -lang-option=asm:-no-cpp: Assembler scanner. -* -lang-option=asm:-strip-underscore: Assembler scanner. -* -lang-option=asm:-c: Assembler scanner. -* -lang-option=asm:-i: Assembler scanner. -* -lang-option=asm:-k: Assembler scanner. -* -lang-option=asm:-n: Assembler scanner. -* -lang-option=asm:-u: Assembler scanner. -* -lang-option=C:-ignore: C/C++ scanner. -* -lang-option=C:-keep: C/C++ scanner. -* -lang-option=C:-strip-underscore: C/C++ scanner. -* -lang-option=C:-i: C/C++ scanner. -* -lang-option=C:-k: C/C++ scanner. -* -lang-option=C:-u: C/C++ scanner. -* -lang-option=text:-exclude: Text scanner. -* -lang-option=text:-include: Text scanner. -* -lang-option=text:-i: Text scanner. -* -lang-option=text:-x: Text scanner. -* -literal: lid invocation. -* -no-cpp: Assembler scanner. -* -output: Writing options. -* -prune: Walker options. -* -regexp: lid invocation. -* -result: lid invocation. -* -separator: File listing options. -* -statistics: mkid invocation. -* -strip-underscore <1>: Assembler scanner. -* -strip-underscore: C/C++ scanner. -* -substring: lid invocation. -* -verbose: mkid invocation. -* -version: Universal options. -* -word: lid invocation. -* -a: lid invocation. -* -c: Assembler scanner. -* -d: lid invocation. -* -F: lid invocation. -* -f <1>: Writing options. -* -f: Reading options. -* -i <1>: lid invocation. -* -i <1>: Text scanner. -* -i <1>: Assembler scanner. -* -i <1>: C/C++ scanner. -* -i: Extraction options. -* -k <1>: lid invocation. -* -k <1>: Assembler scanner. -* -k: C/C++ scanner. -* -l <1>: lid invocation. -* -l: Extraction options. -* -l asm:-comment: Assembler scanner. -* -l asm:-ignore: Assembler scanner. -* -l asm:-keep: Assembler scanner. -* -l asm:-no-cpp: Assembler scanner. -* -l asm:-strip-underscore: Assembler scanner. -* -l asm:-c: Assembler scanner. -* -l asm:-i: Assembler scanner. -* -l asm:-k: Assembler scanner. -* -l asm:-n: Assembler scanner. -* -l asm:-u: Assembler scanner. -* -l C:-ignore: C/C++ scanner. -* -l C:-keep: C/C++ scanner. -* -l C:-strip-underscore: C/C++ scanner. -* -l C:-i: C/C++ scanner. -* -l C:-k: C/C++ scanner. -* -l C:-u: C/C++ scanner. -* -l text:-exclude: Text scanner. -* -l text:-include: Text scanner. -* -l text:-i: Text scanner. -* -l text:-x: Text scanner. -* -m: Extraction options. -* -n: Assembler scanner. -* -o <1>: lid invocation. -* -o: Writing options. -* -p: Walker options. -* -r: lid invocation. -* -s <1>: lid invocation. -* -s: mkid invocation. -* -S: File listing options. -* -u <1>: Assembler scanner. -* -u: C/C++ scanner. -* -v: mkid invocation. -* -w: lid invocation. -* -x <1>: lid invocation. -* -x <1>: Text scanner. -* -x: Extraction options. -* mkid progress: mkid invocation. -* alphabetic case, ignoring differences in: lid invocation. -* ambiguous identifier names, finding: lid invocation. -* architecture-independence: mkid invocation. -* assembler scanner: Assembler scanner. -* assembly language scanner: Assembler scanner. -* beginning-of-word editor argument: eid invocation. -* Berry, Karl: Past and Future. -* bugs, reporting: Introduction. -* C scanner, predefined: C/C++ scanner. -* common command-line options: Common options. -* creating databases: mkid invocation. -* cron: mkid invocation. -* cscope: Past and Future. -* databases, creating: mkid invocation. -* eid: eid invocation. -* EIDARG: eid invocation. -* EIDLDEL: eid invocation. -* EIDRDEL: eid invocation. -* Emacs interface to gid: Emacs gid interface. -* end-of-word editor argument: eid invocation. -* exclude languages: Extraction options. -* fid: fid invocation. -* file name separator: File listing options. -* file tree pruning: Walker options. -* filenames, matching: fnid invocation. -* fnid: fnid invocation. -* future: Past and Future. -* gid Emacs function: Emacs gid interface. -* grep: Past and Future. -* help, online: Universal options. -* history: Past and Future. -* Horsley, Tom: Past and Future. -* ID database file name <1>: Writing options. -* ID database file name: Reading options. -* ID database, definition of: Introduction. -* ID file format: mkid invocation. -* id-utils.el interface to Emacs: Emacs gid interface. -* ignoring differences in alphabetic case: lid invocation. -* include languages: Extraction options. -* introduction: Introduction. -* language map file: Extraction options. -* language-specific option: Extraction options. -* languages_0: Defining scanners. -* left delimiter editor argument: eid invocation. -* Leonard, Bill: Past and Future. -* load-path: Emacs gid interface. -* look and mkid 1: Past and Future. -* matching filenames: fnid invocation. -* McGary, Greg: Past and Future. -* numeric matches, specifying radix of: lid invocation. -* overview: Introduction. -* radix of numeric matches, specifying: lid invocation. -* right delimiter editor argument: eid invocation. -* scanners: Extraction options. -* scanners, defining in source code: Defining scanners. -* scanners.c: Defining scanners. -* Scofield, Doug: Past and Future. -* search for token, initial: eid invocation. -* sharing ID files: mkid invocation. -* single matches, showing: lid invocation. -* statistics: mkid invocation. -* text scanner: Text scanner. -* tokens common to two files: fid invocation. -* tokens in a file: fid invocation. -* version number, finding: Universal options. - - - -Tag Table: -Node: Top1278 -Node: Introduction2031 -Node: Quick start4560 -Node: Common options5485 -Node: Universal options6283 -Node: Reading options6608 -Node: Writing options7725 -Node: Walker options8221 -Node: File listing options9060 -Node: Extraction options10151 -Node: Language map12701 -Node: C/C++ scanner14907 -Node: Assembler scanner16522 -Node: Text scanner18618 -Node: Defining scanners19426 -Node: mkid invocation20648 -Node: lid invocation22929 -Node: lid aliases28314 -Node: Emacs gid interface28992 -Node: eid invocation29909 -Node: fid invocation32493 -Node: fnid invocation33180 -Node: xtokid invocation33855 -Node: Past and Future34794 -Node: Index37486 - -End Tag Table diff --git a/doc/stamp-vti b/doc/stamp-vti deleted file mode 100644 index c1d6fc8..0000000 --- a/doc/stamp-vti +++ /dev/null @@ -1,3 +0,0 @@ -@set UPDATED 27 January 1999 -@set EDITION 3.2a -@set VERSION 3.2a diff --git a/doc/version.texi b/doc/version.texi deleted file mode 100644 index c1d6fc8..0000000 --- a/doc/version.texi +++ /dev/null @@ -1,3 +0,0 @@ -@set UPDATED 27 January 1999 -@set EDITION 3.2a -@set VERSION 3.2a |