home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
browser2.zip
/
README
< prev
next >
Wrap
Text File
|
1995-02-17
|
6KB
|
165 lines
$Id: README,v 3.1 1995/02/17 18:21:38 mmann Exp $
A C++ Source Code Browser
Gerd Moellmann, mmann@ibm.net
Overview
--------
I am myself working in C++ commercial software projects for several
years now, and in these projects I always missed software support for
two things:
When a new class library is introduced or you have to work on some
source code you haven't written yourself (or written sufficiently long
ago) you need a tool letting you navigate through class hierarchies
and investigate features of the software. Without such a tool you often
end up grep'ing through dozens or even hundreds of files.
Once you are productive, it would be nice to have a tool that knows your
sources and can help you while you are editing source code. Imagine to
be able to jump to the definition of an identifier while you are
editing, or something that can complete long identifier names because it
knows what identifiers are defined in your program...
The design of the C++ class browser reflects these two needs;
therefore the name class browser is really only half the truth.
How does it work?
A fast parser written in C is used to parse C++ source and header
files. The parser generates a database containing information about
identifiers---classes, members, global functions, types etc.
The second part of the C++ browser is a Lisp program. This package
reads the database generated by the parser; it displays its contents
in various forms and allows you to perform operations on it, or with
the help of the knowledge contained in it.
The "navigational" use of the browser is centered around two main
buffer types which define their own major modes:
"Tree buffers" are used to view class hierarchies in tree form. They
allow you to quickly find classes, find or view a class declaration,
perform operations like query replace on sets of files containing
classes, and finally they are used to produce the second buffer form:
member displays.
Members are displayed in "member buffers". The browser distinguishes
between six different types of members; each type is displayed as a
member list of its own:
* Instance member variables,
* Instance member functions,
* Static member variables,
* Static member functions,
* Friends,
* Types (enums, and typedefs defined with class scope.
You can quickly switch member buffers from one list to another, or to
another class, you can include inherited members in a display, you can
set filters, and most important of all you can edit or view member
declarations and definitions with a keystroke.
These two buffer types and the commands they provide support the
"navigational" use of the browser. The second form resembles the
"tags" package for C and some other procedural languages that is part
of the standard Emacs distribution; its commands are not bound to
special buffer types but are most often used while you are editing
your source code.
To list just some of what you can use the @dfn{tags} part of the browser
for:
* Quickly jump to the definition or declaration of an
identifier in your source code.
* Complete identifiers in your source---just type in a few
characters and let Emacs fill in the rest.
* Perform search and query replace operations over some
or all of your source files.
* Show all identifiers matching a regular expression---and
jump to one of them, if you like.
The browser has already been used in projects containing hundreds of
classes. The maximum project size that has been successfully tried so
long was about 500,000 lines of code. With Emacs 18.55 it runs on an
MS-DOS notebook with 4 Mb of RAM and has no problems to handle
projects up to about 70,000 lines of code.
Prereqisites
------------
You must have Emacs 18.x or 19.x installed on your system. You must
have a C compiler running on your system (GCC preferred).
Operating Systems
-----------------
The system has been in use for more than 2 years on
OS/2 >= 2.0 with Emacs 19.19 and greater
MS-DOS with DJ Emacs 18.55
Unix ports should be trivial (Emacs lisp sources are portable, use GCC
to compile the rest).
The system has been used in projects with more than 800 Kloc code
(it's not a toy :-)).
Installation
------------
The standard distribution consists of a GZIP'ed tar archive. To unpack
this archive use the following commands:
gzip -d C++-browser.tar.gz
tar xvf C++-browser.tar
This will create a directory named `browser' under the current
directory containing all files in the distrubution:
README The file you are currently reading.
INSTALL Installation description.
LICENSE The GNU General Public License.
*.el Emacs Lisp source files.
*.c C source files compilable with GNU C.
and other compilers.
*.h C include files.
makefile Makefile for DMAKE v3.8.
browser.texi Hypertext helo source file for Emacs.
Follow the instructions in `INSTALL' to install the package.
Legal Stuff
-----------
The C++ source code browser 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.
The C++ source code browser 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 the C++ source code browser; see the file COPYING. if not,
write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA
02139, USA.
See the files COPYING.GEM and COPYING for details.
Instead of a list: All the trademarks used in this document and the
other documents in the C++ source code browser package are registered
to whoever it is that owns them.
--- end of file ---