Blog | Mezzaninehttp://senexcanis.com/blog/feeds/atom/2013-08-26T21:45:30+00:00BlogCppHeaderParser 2.4 Released 2013-08-26T21:45:30+00:00senex/blog/author/senex/http://senexcanis.com/blog/cppheaderparser-24-released/<p>CppHeaderParser version 2.4 is now released.&nbsp; This is basically a bug fix release.<br></p><p><strong>Fixed Bugs:</strong><br>BitBucket issue <a title="#1" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/1/bad-classname-in-certains-cases" href="https://bitbucket.org/senex/cppheaderparser/issue/1/bad-classname-in-certains-cases">#1</a>: Fix line numbering when #define or comment is multi-line and only 2 lines<br>BitBucket issue <a title="#2" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/2/missing-class-in-parsing" href="https://bitbucket.org/senex/cppheaderparser/issue/2/missing-class-in-parsing">#2</a>: Work around classes defined after unsupported #define magic<br>Bitbucket issue <a href="https://bitbucket.org/senex/cppheaderparser/issue/3/still-errors-with-macros" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/3/still-errors-with-macros">#3</a>: Ignore list can now list macro functions to ignore such as "MAGIC_FUNC()". This will cause the parser to ignore this function and anything within the parens<br>BitBucket issue <a title="#4" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/4/typedefs-not-recorded-in" href="https://bitbucket.org/senex/cppheaderparser/issue/4/typedefs-not-recorded-in">#4</a>: Add support for regular typedefs to go into the typedefs list<br>BitBucket issue <a href="https://bitbucket.org/senex/cppheaderparser/issue/5/nested-class-error-unexpected-multiple" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/5/nested-class-error-unexpected-multiple">#5</a>: Nested class error: unexpected multiple definition<br>Bitbucket issue <a href="https://bitbucket.org/senex/cppheaderparser/issue/6/lineno-false-in-a-specific-case" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/6/lineno-false-in-a-specific-case">#6</a>: lines ending in / cause line numbers to be inacurate afterwards<br>BitBucket issue <a href="https://bitbucket.org/senex/cppheaderparser/issue/7/include-before-function-definition-polutes" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/7/include-before-function-definition-polutes">#7</a>: #include before function definition polutes return type<br>BitBucket issue <a href="https://bitbucket.org/senex/cppheaderparser/issue/8/friend-functions-can-cause-exceptions-to" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/8/friend-functions-can-cause-exceptions-to">#8</a>: friend functions can cause exceptions to be thrown<br>BitBucket bug <a href="https://bitbucket.org/senex/cppheaderparser/issue/9/multiple-variable-declaration-parsing" _mce_href="https://bitbucket.org/senex/cppheaderparser/issue/9/multiple-variable-declaration-parsing">#9</a>: Multiple variable declaration parsing error<br>SourceForge bug <a title="#54" _mce_href="https://sourceforge.net/p/cppheaderparser/bugs/54/" href="https://sourceforge.net/p/cppheaderparser/bugs/54/">#54</a>: Add support for __attribute__ by filtering it out<br>SourceForge bug <a title="#55" _mce_href="https://sourceforge.net/p/cppheaderparser/bugs/55/" href="https://sourceforge.net/p/cppheaderparser/bugs/55/">#55</a>: Add support for elaborate type specification of class</p>CppHeaderParser 2.3 Released 2012-12-04T21:32:38+00:00senex/blog/author/senex/http://senexcanis.com/blog/cppheaderparser-23-released/<p>CppHeaderParser version 2.3 is now released.&nbsp; This release fixed many bugs and added support for #defines, #includes, #pragmas, line numbers and more.</p> <p>Project page can be found at <a href="/open-source/cppheaderparser/" _mce_href="/open-source/cppheaderparser/">http://senexcanis.com/open-source/cppheaderparser/</a><br _mce_bogus="1"></p><p><strong>Implemented Feature Request:</strong><br> Added the attribute "line_number" to methods/properties/classes etc.<br>Now #defines, #includes, and #pragmas are parsed into defines, includes, and pragmas lists that are part of the CppHeader class</p><p><br> <strong>Fixed bugs:</strong><br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3567172" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3567172">3567172</a>: Enums without inline definition are skipped such as enum Stem stem_property<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3567854" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3567854">3567854</a>: Not creating instances of anonymous unions. Now anonymous unions will act like anonymous structs, the variable name will be "" (empyt string)<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3568241" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3568241">3568241</a>: Crash parsing 2 anonymous unions in a struct. Now llow multiple variables of the same name if they are anonymous.<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3568629" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3568629">3568629</a>: Crash parsing free function with derefence<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3569663" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3569663">3569663</a>: Crashes parsing indented #define<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3569622" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3569622">3569622</a>: Crashes parsing ::enum<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3570105" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3570105">3570105</a>: Error parsing multi line non #define statements<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3577484" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3577484">3577484</a>: Class template specialization plus inheritance mis-parsed<br> Ignore \f<br> </p>DOLFIN Uses CppHeaderParser2012-08-30T20:32:22+00:00senex/blog/author/senex/http://senexcanis.com/blog/dolfin-uses-cppheaderparser/<p>The latest version of <a href="https://blueprints.launchpad.net/dolfin/+spec/use-cppheaderparser" _mce_href="https://blueprints.launchpad.net/dolfin/+spec/use-cppheaderparser">DOLFIN</a> now uses CppHeaderParser.&nbsp; DOLFIN is a C++/Python library that functions as the main user interface of <a href="http://fenicsproject.org/" _mce_href="http://fenicsproject.org/">FEniCS</a> (More <a href="http://fenicsproject.org/about/components.html" _mce_href="http://fenicsproject.org/about/components.html">here</a> on dolfin).&nbsp; FEniCS is a collection of free software with an extensive list of features for automated, efficient solution of differential equations.</p> <p>CppHeaderParser is used in the module that JITs code.&nbsp; CppHeaderParser will parse the header files, from there SWIG code will be generated then compiled.&nbsp; This allows Python to call native C++ code without manually generating intermediary bridge code as is traditionally required by SWIG.&nbsp;</p> <p>Thanks to Johan Hake for helping me find bugs and test improvements to CppHeaderParser.</p><p> CppHeaderParser can be found in action in compile_extension_module(...) found in <a href="http://bazaar.launchpad.net/%7Edolfin-core/dolfin/trunk/view/head:/site-packages/dolfin/compilemodules/compilemodule.py" _mce_href="http://bazaar.launchpad.net/~dolfin-core/dolfin/trunk/view/head:/site-packages/dolfin/compilemodules/compilemodule.py">/site-packages/dolfin/compilemodules/compilemodule.py</a> which calls parse_and_extract_type_info(code) found in <a href="http://bazaar.launchpad.net/%7Edolfin-core/dolfin/trunk/view/head:/site-packages/dolfin_utils/cppparser/utils.py" _mce_href="http://bazaar.launchpad.net/~dolfin-core/dolfin/trunk/view/head:/site-packages/dolfin_utils/cppparser/utils.py">/site-packages/dolfin_utils/cppparser/utils.py</a><br _mce_bogus="1"></p>CppHeaderParser 2.2 Released2012-07-05T18:38:02+00:00senex/blog/author/senex/http://senexcanis.com/blog/cppheaderparser-22-released/<p>CppHeaderParser version 2.2 is now released.&nbsp; This release fixed many bugs and added support for parsing free functions.</p><p>Project page can be found at <a href="/open-source/cppheaderparser/" _mce_href="/open-source/cppheaderparser/">http://senexcanis.com/open-source/cppheaderparser/</a><br _mce_bogus="1"></p><p><strong>Implemented Feature Request:</strong><br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536266" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536266">3536266</a>: Parsing of free functions</p><p><strong>Fixed bugs:</strong><br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3531219" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3531219">3531219</a>: Nested Classes improperly parsed, when after a defined method<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3535465" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3535465">3535465</a>: Initialization of data in constructors parsed incorrectly<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536069" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536069">3536069</a>: templated base class crashes parser<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536067" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536067">3536067</a>: virtual base classes is not parsed (when virtual is 2nd key word)<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536071" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3536071">3536071</a>: templated base class is not parsed<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3540172" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3540172">3540172</a>: defined free functions are not parsed <br _mce_bogus="1"></p>CppHeaderParser 2.1 Released2012-05-13T14:49:39+00:00senex/blog/author/senex/http://senexcanis.com/blog/cppheaderparser-21-released/<p>CppHeaderParser version 2.1 is now released.&nbsp; This release fixed many bugs and added support for more complex C++ header files.&nbsp; Some features where handling and support were added and improved include:</p><ul><li>unions</li><li>templates</li><li>virtual inheritance</li><li>anonymous structs (and structs in general)<br></li><li>operator overloading functions</li><li>function pointers</li></ul><p>Project page can be found at <a href="/open-source/cppheaderparser/" _mce_href="/open-source/cppheaderparser/">http://senexcanis.com/open-source/cppheaderparser/</a><br _mce_bogus="1"></p><p><br><strong>Fixed bugs:</strong><br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488053" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488053">3488053</a>: Nested classes have incorrect member access specifiers<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488360" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488360">3488360</a>: Inheriting class with namespace causes error<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3487551" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3487551">3487551</a>: Return types of virtual functions start with 'virtual '<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488049" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488049">3488049</a>: Non-manifest constant arrays sizes cause incorrect parsing<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488358" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488358">3488358</a>: Option to suppress printing of warnings and errors<br>&nbsp;To suppress errors do the following:<br>&nbsp;CppHeaderParser.print_errors = 0<br>&nbsp;To supress warnings do the following:<br>&nbsp;CppHeaderParser.print_warnings = 0<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488054" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488054">3488054</a>: Out-of-line inlines / template methods<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488275" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488275">3488275</a>: Template methods reported incorrectly<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488275" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488275">3488275</a>: Template methods reported incorrectly<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491240" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491240">3491240</a>: Explicit constructors are reported as normal methods<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491178" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491178">3491178</a>: Certain template methods are not reported properly<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491232" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491232">3491232</a>: Nested struct causes incorrect access specifiers for parent<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491319" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491319">3491319</a>: Anonymous struct causes crash.<br>&nbsp;Also fixed variable instances followed by struct definitions detecting the type as that struct.<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491334" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491334">3491334</a>: Virtual inheritance causes crash<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3492237" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3492237">3492237</a>: Cast array size reports method named "["<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497164" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497164">3497164</a>: Anonymous structs causes crash<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497160" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497160">3497160</a>: Bad parse when friending forward class<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497155" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497155">3497155</a>: Function declarations cause crash<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497168" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497168">3497168</a>: Constant arithmetic reports bogus methods<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497166" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497166">3497166</a>: Forward struct reports bogus property<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497162" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497162">3497162</a>: Bad parse of nested union<br>&nbsp;Now treat unions like special classes since parsing is a subset<br>3497158 and 3517308: Fixed parsing of template declarations by filtering them out.<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3514728" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3514728">3514728</a>: Multi-line Preprocessor confuses parser<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3517289" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3517289">3517289</a>: Parser crashes if functions are declared under extern "C"<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3514671" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3514671">3514671</a>: Does not parse struct datatype as a struct/class property<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3515330" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3515330">3515330</a>: Namespace causes improper access level in nested classes<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3514672" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3514672">3514672</a>: Incorrect parse of operator=()<br>&nbsp;Added support for all operator oveloads<br>&nbsp;Cleaned up tab warnings<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497170" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3497170">3497170</a>: Function pointers confuse parser<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523010" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523010">3523010</a>: Support for multi-word accessor: Return type wrong<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3519178" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3519178">3519178</a>: Problems with namespaces and templates<br>&nbsp;Fixed return type having colons<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523196" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523196">3523196</a>: Problems with "advanced" namespace and template usage<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3524327" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3524327">3524327</a>: Pure virtual method lost its constness<br><br><strong>Resolve feature requests:</strong><br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488051" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488051">3488051</a>: Classes are well reported but structs (which are classes except for default access specifier) are not reported at all.<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488050" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3488050">3488050</a>: Identify array data members as arrays<br>&nbsp;Variables have the following 2 new attributes:<br>&nbsp;* array: 0 or 1 depending on if its an array<br>&nbsp;* array_size: If something is between [ and ], that will go here<br>&nbsp;<br><strong>Implement feature request:</strong><br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491220" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3491220">3491220</a>: structs are reported as classes<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3519502" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3519502">3519502</a>: Support for Qt Slots<br>&nbsp;Now curAccessSpecifier supports multi-word accessor specifiers such as "public slots"<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523198" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523198">3523198</a>: Add possibility to ignore some symbols<br>Now symbols in CppHeaderParser.ignoreSymbols are ignored.<br>Q_OBJECT is in the list initially<br><a href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523235" _mce_href="https://sourceforge.net/tracker/?func=detail&amp;group_id=231845&amp;atid=1084294&amp;aid=3523235">3523235</a>: Save "constness" of functions/methods<br>&nbsp;Accessed via the "const" tag</p>CppHeaderParser 2.0 released2011-12-31T15:47:45+00:00senex/blog/author/senex/http://senexcanis.com/blog/cppheaderparser-20-released/<p>Thanks to a great amount of work from <a _mce_href="http://www.blogger.com/profile/14287416587600419675" href="http://www.blogger.com/profile/14287416587600419675">HartsAntler</a>, CppHeaderParser has been greatly advanced.&nbsp; 2.0 adds support for parsing more complex C &amp; C++.&nbsp; Resolves some types. Generates much more information for parsed code.&nbsp; 2.0 integrates all changes HartsAntler has done for converting RPython to Javascript in his RPythonic project as covered <a _mce_href="/blog/rpython-to-javascript-uses-cppheaderparser/" href="/blog/rpython-to-javascript-uses-cppheaderparser/">in this article</a>.</p><p>Project page at <a _mce_href="/open-source/cppheaderparser/" href="/open-source/cppheaderparser/">http://senexcanis.com/open-source/cppheaderparser/</a><br _mce_bogus="1"></p>RPython to Javascript uses CppHeaderParser2011-05-17T21:46:54+00:00senex/blog/author/senex/http://senexcanis.com/blog/rpython-to-javascript-uses-cppheaderparser/<p>A new opensource project at <a _mce_href="http://bit.ly/izHL1A" href="http://bit.ly/izHL1A">http://pyppet.blogspot.com/2011/04/rpython-to-javascript.html</a> used to convert RPython to Javascript uses <a _mce_href="http://senexcanis.com/open-source/cppheaderparser/" href="http://senexcanis.com/open-source/cppheaderparser/">CppHeaderParser</a>.&nbsp; CppHeaderParser included is heavily modified to support parsing of C++ source files.&nbsp; Should changes be integrated into the next release of CppHeaderParser?<br></p><p><br></p><p><br></p>CppHeaderParser 1.9 released2011-03-07T21:30:29+00:00senex/blog/author/senex/http://senexcanis.com/blog/cppheaderparser-19-released/<p>CppHeaderParser 1.9 has just been released.&nbsp; 1.9 is functionally equivelant to 1.8 except support for python 3 was added.&nbsp; More information on CppHeaderParser can be found at <a _mce_href="/open-source/cppheaderparser/" href="/open-source/cppheaderparser/">http://senexcanis.com/open-source/cppheaderparser/</a><br _mce_bogus="1"></p>