You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdesdk/umbrello/umbrello/codeimport/kdevcppparser
Michele Calgaro 2b89bcb011
Replace QT_STATIC_CONST_* with actual definitions
3 months ago
..
CMakeLists.txt [tdesdk/cmake] added forgotten files 12 years ago
Makefile.am Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
README Additional renaming of kde to tde 13 years ago
ast.cpp Replace auto_ptr 4 months ago
ast.h Replace auto_ptr 4 months ago
ast_utils.cpp Additional k => tde renaming and fixes 11 years ago
ast_utils.h Additional k => tde renaming and fixes 11 years ago
cpptree2uml.cpp Additional renaming of kde to tde 13 years ago
cpptree2uml.h rename the following methods: 13 years ago
driver.cpp Replace QT_STATIC_CONST_* with actual definitions 3 months ago
driver.h Additional k => tde renaming and fixes 11 years ago
errors.cpp Replace QT_STATIC_CONST_* with actual definitions 3 months ago
errors.h Replace QT_STATIC_CONST_* with actual definitions 3 months ago
keywords.lut.h Remove spurious TQ_OBJECT instances 12 years ago
lexer.cpp Replaced various '#define' with actual strings - part 3 6 months ago
lexer.h Rename Token_Q_OBJECT to Token_TQ_OBJECT 10 months ago
lookup.cpp Removed code formatting modelines. 4 years ago
lookup.h Removed code formatting modelines. 4 years ago
parser.cpp Replace auto_ptr 4 months ago
parser.h Additional k => tde renaming and fixes 11 years ago
tree_parser.cpp Additional k => tde renaming and fixes 11 years ago
tree_parser.h Additional k => tde renaming and fixes 11 years ago
urlutil.cpp Rename additional global TQt functions 12 years ago
urlutil.h Additional renaming of kde to tde 13 years ago

README

This directory contains the C++ parser from Kdevelop-3.0.

Following files are copies from the directory tdevelop/lib/cppparser:
 ast.{h,cpp} driver.{h,cpp} errors.{h,cpp} keywords.lut.h lexer.{h,cpp}
 lookup.{h,cpp} parser.{h,cpp} tree_parser.{h,cpp}

Following files are copies from the directory tdevelop/languages/cpp:
 ast_utils.{h,cpp}

Following files are copies from the directory tdevelop/lib/util:
 urlutil.{h,cpp}

The source files cpptree2uml.{h,cpp} are based on tdevelop/languages/cpp/
store_walker.{h,cpp}.  The class CppTree2Uml inherits from class TreeParser
and overrides certain methods from that class.

CppTree2Uml visits the nodes of the abstract syntax tree constructed by the
CppParser, and constructs UML objects on the way.

The import_utils.h (in the parent directory) is the interface between the
CppTree2Uml and Umbrello.
import_utils implements the construction of the UML objects.  CppTree2Uml calls
the create/insert methods in the import_utils while traversing the syntax
tree.

The one and only method that Umbrello uses for accessing the C++ parser,
and any other parser for that matter, is ClassImport::importFiles().
The class CppImport (in the parent directory) implements that operation.
Thus we have these classes:

                +-------------------+
                |   <<interface>>   |
                |   ClassImport     |
                +===================+
Umbrello ------>| importFiles() = 0 |
                +-------------------+
                          A
                          | <<realize>>
                          |
                +-------------------+               +-------------------+
                |    CppImport      |               |    CppTree2Uml    |
                +===================+  <<invoke>>   +===================+
                | importFiles()     |-------------->|                   |
                +-------------------+               |                   |
                                                    +-------------------+
                                                             |
                +-------------------+                        |
                |   <<utility>>     |                        |
                |   Import_Utils    |                        |
                +===================+                        |
                | createUMLObject() |  <<invoke>>            |
                | insertMethod()    |<-----------------------+
                | insertAttribute() |
                +-------------------+
                        |
Umbrello <--------------+