PUMA 1.0 - a library for parsing and manipulating C/C++ source code Copyright (C) 1999-2008 The PUMA developer team. 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. Roadmap ======= * The COPYING file contains a copy of the GPL described above. * See INSTALL for installation details. * ChangeLog describes the changes between the versions of the PUMA library. * Some documentation is located in the `doc' directory. * Examples of how to use PUMA can be found in the `examples' directory. * `src' and `tools' contain all the stuff to build the library. * In the `lib' directory you will find the PUMA library after building it. The corresponding header files will be placed in the `include' directory. Description =========== PUMA is a library of C++ classes for parsing and manipulating C/C++ source code. It provides different levels of analyzing source code, i.e. lexical, syntactical, and semantical analyses. Additionally, PUMA contains its own C preprocessor following the macro language understood by the GNU C preprocessor (cpp). The parsers for C and C++ are based on an extensible recursive descent parser architecture that can be easily adapted for your own needs by inheriting from one of the parsers. They are oriented on the ISO/IEC standards defined in ISO/IEC 9899:1999(E) and ISO/IEC 14882:1998(E) but also supporting a list of extensions to the C and C++ languages. The information about the source code being analyzed is organized in an attributed syntax tree referring to a separate structure of semantic information. For the purpose of manipulating source code PUMA provides a syntax based mechanism for searching code structures. Manipulations on the source code can be collected and validated before executing them in a single transaction. Limitations =========== This version of PUMA is distributed under the terms of the GPL. There is also a commercial edition of the PUMA library available, which may be used to develop commercial/proprietary software. For pricing and availability of the commercial edition, please contact pure-systems GmbH at contact@pure-systems.com. Contact ======= If you want any information about the AspectC++ project or have any comments, feel free to contact the development team via info@aspectc.org.