LLK Changes
This release contains mostly updates to llk-csharp-model for resolving references. While the csharp resolver starts being usable/useful, be warned that it is still in very
early stage, lots of code are quite sloppy and lots features are not yet completed.
Also added sample grammar for EMCA262 (aka Javascript ) which also comes with
a code formatter.
General
- CHANGE - Moved documentation from
llk/doc/release/ directory to llk-doc/doc/llk/ in the new llk-doc project.
Grammar
- CHANGE - Grammar option
VisitorException now
require a fully qualified exception class name (eg "sf.llk.share.support.LLKParseException" ) so that an import statement is automatically generated in the generated visitor and
visitor adapter output.
- CHANGE - Treeparser rule is now allowed to has no child. The empty rule can,
however,implements init and return action for side effects.
Implementation
- NEW -
LLK now accept a special form for the shared
path to specify a package instead of a file path. The special form specify a package with a trailing
'.' eg. sf.llk.share.support. to specify that LLK should search for classes in the
specified package through the ClassLoader instead of searching for source files the file system. This
allow support files in llk-share.jar to be searched and prevent them from being generated.
The special form can be used together with the normal file system paths (eg. sf.llk.share.support.;/workspace/project/src/a/b/c ).
- CHANGE - LLK
--spath command line option now use File.pathSeparator instead of ':' as separator.
- CHANGE - LLK now do not generate node file if it is found on shared paths.
- CHANGE - LLK now generate separate class for charset only if the charset has more
than 256 bits. This should reduce the disk footprint a little bit.
Support Projects Changes
llk-share
- CHANGE -
ILLKNode no longer extends List<ILLKNode> , use ILLKNode.children() to iterate over its children
instead.
- CHANGE - Renamed
ILLKNode.size() to ILLKNode.childCount() .
- CHANGE - Added
ILLKMain.putOpt(String name, Object
value) .
- NEW - Added
ILLKParseException . Both LLKParseException and LLKParseError now implements ILLKParseException .
- FIXED - SimpleLLKMain now report error location for
LLKParseError .
llk-share-formatter
- FIXED - Typo that
FormatBuilder.isOnelineOK()
should be isOnelinerOK() .
codedom
- CHANGE - There has been considerable changes in this project due to
llk-csharp-model changes.
util
fireant
Sample Grammar Changes
General
llk-csharp-model
- NEW - There has been lots of refactoring and update to the
CSharp resolver and related code in the related projects. It now resolve method references properly,
most of the time.
- NEW - Added format options to add space before parameters and arguments.
- NEW - Added format options for whether to break before open brace in
accessors, property and indexer delarations.
- CHANGE - Method signature now get a space before
'(' .
- CHANGE - The format option defaults are changed.
- CHANGE - Now use
'+' instead of '/' as inner type
signature separator.
- CHANGE - Index database schema is changed.
- FIXED - Problem with formatting of indexer declaration.
- FIXED - Updated unicode character set for
IdentifierStart ,
IdentifierPart and SPACES in CSharpLexer according to C#
2.0 spec..
- FIXED - Ambiguity resolution between type arguments and relational operation
as described in C# 2.0 spec. 9.2.3.
- FIXED - Ambigurity resolution between
CastExpression and ParenthesizedExpression .
- FIXED - CSharpLexer now allow unicode escaped sequences as IdentifierStart
and IdentifierPart according to C# 2.0 spec.
- FIXED - CSharp formatter to allow for spaces between
'#' and
preprocessor directives.
- TODO - Many less used features, eg. partial types, attributes,
delegate overload resolution, visibility resolution, user defined conversions, operator overloading,
type inference ... etc., just to name a few, are not yet properly handled in the resolver.
llk-java-model
- FIXED - Formatting of
assertStatement , forStatements , variableDeclarators , typeParameters , ... etc.
llk-gnuc
llk-css2
- CSSParser now generate nodes.
llk-html
llk-xhtml
llk-xml
llk-ecma262
- NEW - Added
ECMA262 (aka. Javascript )
grammar which also comes with a code formatter.
|