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.