branches/work/kdevelop-pg
Adam Treat
treat at kde.org
Tue Aug 8 14:52:19 UTC 2006
On Tuesday 08 August 2006 5:40 am, Jakob Petsovits wrote:
> SVN commit 570972 by jpetso:
>
> * Say hello to the KDevelop codemodel generator, kdev-cmg.
> It produces those subject-to-be-changed codemodels like
> the current C++ one (which is provided in examples/cpp)
> and uses kdevelop-pg as internal parser ;)
Can it produce a codemodel for csharp and java? How about the binder or is
that next?
> * In order to get both programs into one directory
> (they share the need for kdev-pg's includes/ directory,
> and it's cool to have all examples/ in one place)
> kdev-pg is moved from src/ to kdev-pg/,
> and kdev-cmg gets its own kdev-cmg/ directory.
>
> * Refining kdev-pg's serialization visitor:
> - it deserves to be written to a seperate file,
> lang_serialize_visitor.h, which is created by passing
> the --serialize-visitor command line option to kdev-pg.
> - fix the "startrule is hardcoded" bug
> - don't serialize ast_node.kind, it's not needed
Sweet! BTW, I hooked the csharp serializer up to kdevelop using a custom
class that uses google's sparsehash... Each AST* from Mono's core library
was serialized. 735 files in all. I also made sure to keep the mem pool for
each ast around to gage the true hit to memory...
Here are the results:
%14.1 of memory
8.4MB on disk non-compressed
1.3MB on disk compressed
735 C# files
To me, this is not very different from storing the codemodels ie, storing the
ast seems to be about equivalent of storing the models, both in memory and on
disk. Of course, we're not serializing the token stream yet ;P
> M +2 -1 CMakeLists.txt
> M +1 -0 examples/CMakeLists.txt
> M +1 -1 examples/cool/CMakeLists.txt
> M +3 -3 examples/cool/cool.h
> M +5 -2 examples/csharp/CMakeLists.txt
> M +2 -1686 examples/csharp/csharp.h
> M +10 -10 examples/csharp/csharp_pp.h
> A examples/csharp/csharp_serialize_visitor.h [License: no
> copyright GENERATED FILE] M +1 -0 examples/csharp/main_serialize.cpp
> M +1 -1 examples/fact/CMakeLists.txt
> M +3 -3 examples/fact/fact.h
> M +1 -1 examples/java/CMakeLists.txt
> M +5 -5 examples/java/java.h
> A kdev-cmg (directory)
> A kdev-cmg/ASBeautifier.cpp [License: LGPL (v2.1+) (wrong
> address)] A kdev-cmg/ASFormatter.cpp [License: LGPL (v2.1+)
> (wrong address)] A kdev-cmg/CMakeLists.txt
> A kdev-cmg/astyle.h [License: LGPL (v2.1+) (wrong address)]
> A kdev-cmg/kdev-cmg-beautifier.cpp [License: LGPL (v2+)]
> A kdev-cmg/kdev-cmg-beautifier.h [License: LGPL (v2+)]
> A kdev-cmg/kdev-cmg-declarations-gen.cpp [License: LGPL
> (v2+)] A kdev-cmg/kdev-cmg-declarations-gen.h [License: LGPL
> (v2+)] A kdev-cmg/kdev-cmg-decoder.cpp [License: no
> copyright] A kdev-cmg/kdev-cmg-decoder.h [License: LGPL
> (v2+)] A kdev-cmg/kdev-cmg-forward-declarations-gen.cpp
> [License: LGPL (v2+)] A
> kdev-cmg/kdev-cmg-forward-declarations-gen.h [License: LGPL (v2+)] A
> kdev-cmg/kdev-cmg-generate.cpp [License: LGPL (v2+) GENERATED
> FILE] A kdev-cmg/kdev-cmg-generate.h [License: LGPL (v2+)] A
> kdev-cmg/kdev-cmg-implementation-gen.cpp [License: LGPL
> (v2+)] A kdev-cmg/kdev-cmg-implementation-gen.h [License:
> LGPL (v2+)] A kdev-cmg/kdev-cmg-initialize-ast.cpp [License:
> LGPL (v2+)] A kdev-cmg/kdev-cmg-initialize-ast.h [License:
> LGPL (v2+)] A kdev-cmg/kdev-cmg-io.cpp [License: LGPL (v2+)]
> A kdev-cmg/kdev-cmg-lexer.ll
> A kdev-cmg/kdev-cmg-main.cpp [License: LGPL (v2+)]
> A kdev-cmg/kdev-cmg-parser.g
> A kdev-cmg/kdev-cmg-string-tools.cpp [License: LGPL (v2+)]
> A kdev-cmg/kdev-cmg-string-tools.h [License: LGPL (v2+)]
> A kdev-cmg/kdev-cmg-visitor-template.cpp [License: LGPL
> (v2+)] A kdev-cmg/kdev-cmg-visitor-template.h [License: LGPL
> (v2+)] A kdev-cmg/kdev-cmg.h [License: LGPL (v2+)]
> A kdev-pg (directory) src#531158
> A kdev-pg/CMakeLists.txt src/CMakeLists.txt#570567
> D kdev-pg/Makefile.am
> A kdev-pg/kdev-pg-ast-gen.cpp src/kdev-pg-ast-gen.cpp#570567
> A kdev-pg/kdev-pg-ast-gen.h src/kdev-pg-ast-gen.h#566286
> A kdev-pg/kdev-pg-ast.h src/kdev-pg-ast.h#568589
> A kdev-pg/kdev-pg-beautifier.cpp
> src/kdev-pg-beautifier.cpp#566286 A
> kdev-pg/kdev-pg-beautifier.h src/kdev-pg-beautifier.h#566286 A
> kdev-pg/kdev-pg-checker.cpp src/kdev-pg-checker.cpp#566286 A
> kdev-pg/kdev-pg-checker.h src/kdev-pg-checker.h#566286 A
> kdev-pg/kdev-pg-clone-tree.cpp src/kdev-pg-clone-tree.cpp#568589 A
> kdev-pg/kdev-pg-clone-tree.h src/kdev-pg-clone-tree.h#568589 A
> kdev-pg/kdev-pg-code-gen.cpp src/kdev-pg-code-gen.cpp#570567 A
> kdev-pg/kdev-pg-code-gen.h src/kdev-pg-code-gen.h#568589 A
> kdev-pg/kdev-pg-default-visitor-gen.cpp
> src/kdev-pg-default-visitor-gen.cpp#566734 A
> kdev-pg/kdev-pg-default-visitor-gen.h
> src/kdev-pg-default-visitor-gen.h#566286 A
> kdev-pg/kdev-pg-default-visitor.cpp
> src/kdev-pg-default-visitor.cpp#568589 A
> kdev-pg/kdev-pg-default-visitor.h src/kdev-pg-default-visitor.h#568589 A
> kdev-pg/kdev-pg-environment.h
> src/kdev-pg-environment.h#566286 A kdev-pg/kdev-pg-first.cpp
> src/kdev-pg-first.cpp#568589 A kdev-pg/kdev-pg-first.h
> src/kdev-pg-first.h#568589 A kdev-pg/kdev-pg-follow.cpp
> src/kdev-pg-follow.cpp#568589 A kdev-pg/kdev-pg-follow.h
> src/kdev-pg-follow.h#568589 A kdev-pg/kdev-pg-global.cpp
> src/kdev-pg-global.cpp#566286 A kdev-pg/kdev-pg-lexer.ll
> src/kdev-pg-lexer.ll#569627 A kdev-pg/kdev-pg-main.cpp
> src/kdev-pg-main.cpp#570567 [License: LGPL (v2+) (wrong address) GENERATED
> FILE] A kdev-pg/kdev-pg-parser.yy
> src/kdev-pg-parser.yy#570567 A
> kdev-pg/kdev-pg-pretty-printer.cpp src/kdev-pg-pretty-printer.cpp#568589
> A kdev-pg/kdev-pg-pretty-printer.h
> src/kdev-pg-pretty-printer.h#568589 A
> kdev-pg/kdev-pg-serialize-visitor-gen.cpp
> src/kdev-pg-serialize-visitor-gen.cpp#570567 [License: LGPL (v2+)] A
> kdev-pg/kdev-pg-serialize-visitor-gen.h
> src/kdev-pg-serialize-visitor-gen.h#570567 D
> kdev-pg/kdev-pg-utils.cpp
> D kdev-pg/kdev-pg-utils.h
> A kdev-pg/kdev-pg-visitor-bits-gen.cpp
> src/kdev-pg-visitor-bits-gen.cpp#566286 A
> kdev-pg/kdev-pg-visitor-bits-gen.h src/kdev-pg-visitor-bits-gen.h#566286
> A kdev-pg/kdev-pg-visitor-gen.cpp
> src/kdev-pg-visitor-gen.cpp#566286 A
> kdev-pg/kdev-pg-visitor-gen.h src/kdev-pg-visitor-gen.h#566286 A
> kdev-pg/kdev-pg-visitor.cpp src/kdev-pg-visitor.cpp#568589 A
> kdev-pg/kdev-pg-visitor.h src/kdev-pg-visitor.h#568589 A
> kdev-pg/kdev-pg.cpp src/kdev-pg.cpp#569627
> A kdev-pg/kdev-pg.h src/kdev-pg.h#570567
> D src/ASBeautifier.cpp
> D src/ASFormatter.cpp
> D src/CMakeLists.txt
> D src/astyle.h
> D src/kdev-pg-ast-gen.cpp
> D src/kdev-pg-ast-gen.h
> D src/kdev-pg-ast.h
> D src/kdev-pg-beautifier.cpp
> D src/kdev-pg-beautifier.h
> D src/kdev-pg-checker.cpp
> D src/kdev-pg-checker.h
> D src/kdev-pg-clone-tree.cpp
> D src/kdev-pg-clone-tree.h
> D src/kdev-pg-code-gen.cpp
> D src/kdev-pg-code-gen.h
> D src/kdev-pg-default-visitor-gen.cpp
> D src/kdev-pg-default-visitor-gen.h
> D src/kdev-pg-default-visitor.cpp
> D src/kdev-pg-default-visitor.h
> D src/kdev-pg-environment.h
> D src/kdev-pg-first.cpp
> D src/kdev-pg-first.h
> D src/kdev-pg-follow.cpp
> D src/kdev-pg-follow.h
> D src/kdev-pg-global.cpp
> D src/kdev-pg-lexer.ll
> D src/kdev-pg-main.cpp
> D src/kdev-pg-parser.yy
> D src/kdev-pg-pretty-printer.cpp
> D src/kdev-pg-pretty-printer.h
> D src/kdev-pg-serialize-visitor-gen.cpp
> D src/kdev-pg-serialize-visitor-gen.h
> D src/kdev-pg-visitor-bits-gen.cpp
> D src/kdev-pg-visitor-bits-gen.h
> D src/kdev-pg-visitor-gen.cpp
> D src/kdev-pg-visitor-gen.h
> D src/kdev-pg-visitor.cpp
> D src/kdev-pg-visitor.h
> D src/kdev-pg.cpp
> D src/kdev-pg.h
> _______________________________________________
> KDevelop-devel mailing list
> KDevelop-devel at barney.cs.uni-potsdam.de
> http://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
More information about the KDevelop-devel
mailing list