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
a code formatter.
- CHANGE - Moved documentation from
llk/doc/release/ directory to
llk-doc/doc/llk/ in the new
- CHANGE - Grammar option
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.
- 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
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.
- 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
- CHANGE -
ILLKNode no longer extends
ILLKNode.children() to iterate over its children
- CHANGE - Renamed
- CHANGE - Added
ILLKMain.putOpt(String name, Object
- NEW - Added
ILLKParseException. Both LLKParseException and
LLKParseError now implements
- FIXED - SimpleLLKMain now report error location for
- FIXED - Typo that
- CHANGE - There has been considerable changes in this project due to
Sample Grammar Changes
- 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
- CHANGE - Index database schema is changed.
- FIXED - Problem with formatting of indexer declaration.
- FIXED - Updated unicode character set for
CSharpLexer according to
- FIXED - Ambiguity resolution between type arguments and relational operation
as described in C# 2.0 spec. 9.2.3.
- FIXED - Ambigurity resolution between
- 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
- 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.
- FIXED - Formatting of
typeParameters, ... etc.
- CSSParser now generate nodes.
- NEW - Added
grammar which also comes with a code formatter.