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
toma bd9e661782
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
15 years ago
..
Makefile.am Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
README Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
ast.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
ast.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
ast_utils.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
ast_utils.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
cpptree2uml.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
cpptree2uml.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
driver.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
driver.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
errors.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
errors.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
keywords.lut.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
lexer.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
lexer.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
lookup.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
lookup.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
parser.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
parser.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
tree_parser.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
tree_parser.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
urlutil.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
urlutil.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago

README

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

Following files are copies from the directory kdevelop/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 kdevelop/languages/cpp:
 ast_utils.{h,cpp}

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

The source files cpptree2uml.{h,cpp} are based on kdevelop/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 <--------------+