Trunk 19109c Thu May 22 09:18:31 2014 -0400 General - Fix improper nesting of decl tag in declaration statements - Additional support for inline assembly (asm, __asm, __asm__ with volatile or __volatile__) - Support for Apple Blocks - Fix comma incorrectly marked as operators in {} assignment i.e. struct a = { a, b }; C - C11 support C++ - Contextually handle some C++ keywords that are not in C - Fix for C++11 raw strings Java - Fix inconsistent markup of compound name in Java inheritance Trunk 19109b Tue Apr 29 07:53:22 2014 -0400 General - Add lambda tag and place around anonymous functions — Add additional markup to preprocessor statements such as cpp:define - Fix bug association with non-trivial default parameters - Ranged for/foreach statements use range tag instead of an inner init tag - Fix incorrect output of escape tags in Windows - Fix problems with preprocessor statements that use keywords - Fix for ->, ->*, and .* not being marked as complex name - enum internals now marked with decl tags instead of expr tags - Fix markup of complex name with pointer dereference i.e. (*a).b - Support functor call that is return of another call - Comma separated declarations are now have multiple decl tags and are not in a single decl tag - Fix bug where preprocessor statement followed by end of file - catch statements now have a parameter_list around type(s) being caught - Initialization now include = i.e. = … instead of = - Support for declaration within if/while statements - Fix cases where some complex casting could cause early output of ending tags C - Fix markup of struct declaration with pointer e.g. struct foo * bar; C++ - Support for Qt forever statements - Support for Qt foreach statements - Support for template specifier on function calls - Fix inconsistent markup for a typedef that is in and out of a class - Better markup for extern templates - Support for C++14 Variable templates - Support for C++14 lambda capture arguments C# - Improved markup of lambda functions and other anonymous functions such as delegates - Added support for C# goto case statements - Added support for specifiers on properties - Fix inconsistant foreach markup Java - Support for Java instanceof operator - Support for Java assert statements - Support for goto statements even if not part of standard — Fix bug where blocks i.e. { } are in annotations - Fix bug where annotations use a keyword (class i.e. file.class) Trunk 19109 Fri Jan 24 10:55:0 2014 -0500 General - Additional markup for preprocessor directives - Comments did not have position information with --position - Many build changes and improvements - Some fixes to macro's being mistaken for the beginning of a declaration - Solitary specifier such as const; now have markup - Fixed some issues with expression mode and interactive mode - Support for scientific notation and complex numbers for literals - Removed memory leaks. C - Fix issue with a macro followed by a union and fixed markup - Change in markup of bit fields Now : … instead of : - restrict specifier added - Function pointers can now have more than one base name such as HRESULT (WINAPI IDirect3DDevice9::*setShader)(D3DShaderType*) C++ - Support for doxygen style comments - Allow for expressions in template arguments - Alternative operator synaxes such as 'and' and 'or' - Comma was mistakenly marked up as operator in template parameter list - Fix the markup of declarations like: const A a(b()); - Fix where macro constructor (with member initialization) is mistaken for function - typename now have markup typename - Fix issue with templated constructor within class definition - Add support for Qt slots and signals. - C++ 11 support - Add specifiers constexpr and thread_local - Allow for uniform initialization in member initialization list - Added support for lambda functions - Added support for trailing return - Added support for decltype() operator - Added support for final and override contextual keywords/identifiers with special meaning - Added support for enum classes - Added support for using statement for type aliasing - Added support for new string literals - Added support for alignas() - Added support for C++ attributes - Added support for default and delete (member functions) - Added support for extern templates - Added support for noexcept - Added support for ref-qualifier - Added support for alignof() operator - Added support for nullptr literal - Added support for parameter packs - Added support for initializer lists - Ranged for markup change Now : … instead of : - Added support for sizeof...(args) C# - Fix issue with contextual linq keywords being marked up in other non-linq contexts and possibly causing a segmentation fault - Fix markup involving null coalescing operator Java - Support for method specifiers native, strictfp, and transient - Add try-with-resource statement support try (BufferedReader br = new BufferedReader(new FileReader(path))) { return br.readLine(); } - Add support for catching multiple exception types catch (IOException|SQLException ex) { logger.log(ex); throw ex; } - Allow for underscores in numeric litrals - Improved support for Java annotations - Allow Java identifiers to begin with $ - null marked up now as a literal - Java enums are not ended in right spot looking for }; instead of just } - Jave enums are now all treated like a enum class srcml2src - Fix seg fault with XPath - --verbose option provides some additional information for some uses such as for XPath - certain options such as --units accept multiple input files - Fix root unit tag when not using default src prefix Trunk 17088 Fri Oct 18 19:48:45 2013 +0000 - New Features: Added support for C#. Added support for Java synchronize. Added support libxml2 2.9.* Allow anonymous structs/unions/classes Support for xz compression K and R function support. Can build a version of srcML that can take arguments from subversion repository (not built by default). - Bug Fixes: Fix for macro before static/const. Fix for Java anonymous classes Fix of for each in Java Fix for ? in Java template arguments Fix constructor operator ~ confusion for C++ Fix for negate mistaken for destructor Fix for when modifier is at end of type Fix for call in parameter list Fix operator markup in argument list Fix for int = 0 Fix for marking up virtual on destructor. Fix for index in functions. Fix prefix problem with cpp:endif Fix for enum in if-then-else Fix of end handling for struct/class ending Fix for else handling issue causing problems with code in if-then-else blocks Fix for crashing on empty files for libarchive 3.0 Fix if macro is followed by const/static Fix incorrect markup involving incorrect uses of preprocessor (such as just a # or # used as a comment as in some linux files) Constructor declaration detection more consistent between languages Various apply-root fixes. Fix of various memory leaks. Fix compilation for g++ 4.9 - Markup changes: Mark all commas in expression as operators if; now has an empty statement const now marked as a specifier. Variables separated with . operator are now complex names. a.b; a.b; - Other Items: libxslt and libexslt now dynamically loaded. Removal of some deprecated warnings Various refactorings and cleanup of source code Update of GPL. Version Trunk 13990 2012-06-07 15:51:09 -0400 (Thu, 07 Jun 2012) - Identical to Trunk 13953, except for fixes to build and run correctly with g++ 4.7. Needed for Fedora 17 builds. Version Trunk 13953 2012-05-25 13:21:26 -0400 (Fri, 25 May 2012) - Identical to Trunk 13925, except for fixes to build and run correctly with libarchive 3.0.3. Needed for Ubuntu 12.04 64 bit builds Version Trunk 13925 2012-05-17 07:10:04 -0400 (Thu, 17 May 2012) - New explicit option, --cpp, to turn on parsing and markup of preprocessor statements in non-C/C++ languages such as Java. Previously required --xmlns of the cpp namespace. - Improved markup of Java generics including wildcard '?', super/extends, generics for methods and constructors, and use with operator new. - Support for for-each loops in Java and C++. Includes new element for declarations, e.g., 'a b : c', similar to the current element . - Multiple improvements to markup of try/catch/finally statements: - Markup finally-statement in Java - Catch and finally are now nested inside their matching try-statement - Function-try blocks are now supported in C++ for constructors. - Parameters (resources) allowed in try-statement (a Java 1.7 feature). - Fixed ending of try/catch/finally nested in a statement, e.g., if-statements - Detect constructors as function definitions with no type (but can have specifiers and generics) for Java. Previously required being in a class construct. - Fix for static classes in Java - Type modifer '...' now handled the same for C++ and Java - Fix throws list in Java not being marked correctly and ending late - Fix bugs with certain cases of function pointers in parameter lists - Fix operator markup for ':' part of ternary operator - Fix right parentheses being marked as operator in for-statement - Misc cleanups and fixes for build grammar warnings Version Trunk 13528 2012-04-12 13:01:37 -0400 (Thu, 12 Apr 2012) - Fix markup of Java enum, both for simple case and for enum class - Added missing markup for Java finally - Fix markup for multiple initializations in declarations - Exslt extensions now work for XSLT - Fix problem with extremely large nested ifs with XML_PARSE_HUGE option to libxml - Fix problem with XSLT transformations not allowing namespaces on internal units in a srcML archive - Fix regression that prevented generics for Java variables - Fix bug with comma in preprocessor condition Version Trunk 12359 2012-01-24 21:34:59 -0500 (Tue, 24 Jan 2012) - Fix regression error for constructor and destructor definitions caused by a previous fix for macros before statements - Fix output of non-printable character at end of filename with XPath queries - Fix markup error of class/struct/union declarations as declaration statement when friend - Fix markup error of class/struct/union as declaration statement when inheritence was specified as public/private... virtual - Empty parameters are now marked with a src:param element. The count of param elements in a parameter list now corresponds to the count of comma separators plus one - Small fixes for fringe cases for detection of multiple standard inputs - Refactoring of directory and source archive input handling to src2srcml - Misc cleanups Version Trunk 8007 2011-09-21 10:48:52 -0400 (Wed, 21 Sep 2011) - Fix regression error on column position attribute. Version Trunk 7990 2011-09-19 15:10:22 -0400 (Mon, 19 Sep 2011) - Fix for macro before statement, e.g., "MACRO if (a);" Macro call before statement was already handled, e.g., "MACRO() if (a);" - Fix for new detection of BOM for UTF-8 where it was causing some ISO-8859-1 (Latin 1) to not be converted correctly when a non-ASCII character was among the first 3 bytes of the file. Version Trunk 7481 2011-08-18 16:40:36 -0400 (Thu, 18 Aug 2011) - Baseline for new multi-platform build.