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.
Michele Calgaro
27e15c3c5f
|
5 months ago | |
---|---|---|
.. | ||
CMakeLists.txt | 13 years ago | |
Makefile.am | 15 years ago | |
README | 13 years ago | |
ast.cpp | 8 months ago | |
ast.h | 8 months ago | |
ast_utils.cpp | 11 years ago | |
ast_utils.h | 11 years ago | |
cpptree2uml.cpp | 13 years ago | |
cpptree2uml.h | 13 years ago | |
driver.cpp | 5 months ago | |
driver.h | 11 years ago | |
errors.cpp | 8 months ago | |
errors.h | 8 months ago | |
keywords.lut.h | 13 years ago | |
lexer.cpp | 10 months ago | |
lexer.h | 1 year ago | |
lookup.cpp | 4 years ago | |
lookup.h | 4 years ago | |
parser.cpp | 8 months ago | |
parser.h | 11 years ago | |
tree_parser.cpp | 11 years ago | |
tree_parser.h | 11 years ago | |
urlutil.cpp | 13 years ago | |
urlutil.h | 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 <--------------+