[root]/groovy/groovy-core/src/main/org/codehaus/groovy/antlr/treewalker
add initial NodePrinterTest
4 lines of code changed in:
add initial CompositeVisitorTest
1 lines of code changed in:
add MindMapPrinterTest plus remove some duplication
3 lines of code changed in:
additional test
9 lines of code changed in:
* Added comments to some of the SourcePrinterTests
o '// not in java' - those bits of syntax which are uniquely groovy
o '// fails after parser' - those bits of syntax which parse in antlr but fail somewhere onwards, these are copied to UnimplementedSyntaxTest.java
* Added UnimplementedSyntaxTest.java which has assertions on the failure of a number of language
features in the parser but vocal in their failure below the parser (i.e. error messages)
[ silent ignoring of syntax features are not included, e.g. the current usage of annotations in bytecode ]
* Added SPREAD_DOT (*.) operator to pretty printer, whoops missed this one in 1.0
Cheers
Jez
6 lines of code changed in:
Finally... finished going through every token type the parser can
handle. Tests for every token type that can occur on the AST.
This means the SourceCodeTraversal class is complete (barring edge cases)
* Added better cast handling (casting to arrays), type args, type params,
lower and upper bounds for type arg/params, variable arity parameter.
Try this...
$ export JAVA_OPTS=-Dantlr.ast=html
$ groovyc MyExample.groovy
$ open MyExample.groovy.html # then oooh and ahhhh :-)
Enjoy :-)
Jez.
46 lines of code changed in:
change grammar to use ClosableBlock instead of mixed ClosedBlock/Closure
12 lines of code changed in:
* added to pretty printer <<= >> >>= *= ** **=
spread arguments (f(*list)), spread map arguments (f(*:myMap))
super(), unary plus
* more tests for above and static initializers,
strictfp, string literals, and gstrings
39 lines of code changed in:
added ==~ .@ << to pretty printer
added tests for =~ ==~ .@ << and SLIST
30 lines of code changed in:
Added regex_find =~ to pretty printer
Added more tests for parameters, range exclusive, regex literals.
Marked a couple of deprecated items in the grammar
10 lines of code changed in:
Added even more to pretty printer:
parameters, float literals, long literals,
modifiers, strictfp, with, volatile, transient,
threadsafe, synchronized blocks, switch,
-= % %= ?. += ++ ?:
Fixed wildcards and
type argument bounds (i.e. <? extends F> and <? super F> )
94 lines of code changed in:
dded to pretty printer:
implements, import, in, interface,
long, native!, new, package, return,
short, static, super, synchronized,
this, static imports.
52 lines of code changed in:
Added tests and functionality to pretty printer for:
enum, interface, implements,
implicit parameters,
instance initialiser,
labeled statements,
++, <=, any, as, assert, break,
byte, case, catch, char,
class, continue, def, default,
double, else, extends, for.
77 lines of code changed in:
* Added GE to source printer
* Added tests for GE (>=) and one form of Hex Digit literal
9 lines of code changed in:
MOP preparations: a new typehandling package contains now the number math classes and many methods from Invoker. ScriptBytecodeAdapter and InvokerHelper do now use these functions. The bytecode is changed to provide an additional "sender class" that can be used later for handling visibility. As part of the clean up AsmClassGenerator has been changed and got a unified way for method calling Object gained a iterator() method, that was before implicitly handled by Invoker.
The wrong property name for the conf file in GroovyStarter is corrected now. The error reporting has been adjusted to show exceptions better.
Interfaces of the kind "interface T{ T t}" are now possible and no longer resulting in class loading problems
1 lines of code changed in:
fixed most of the warnings reported by Eclipse (javadoc, unused imports, ...)
0 lines of code changed in:
* Added literal 'final' to pretty printer
* Added tests for annotation, final, classic for loop, double literals and float literals
* Added reminder for wildcard type arguments
7 lines of code changed in:
* fixed ENUM_CONSTANT_DEF to allow for expressions e.g. Penny(1),Quarter(25)
* added interface definitions
* added double literals, including exponents
19 lines of code changed in:
* added classic for loop, POST_INC(++) and enum definitions to pretty printer
* added some more tests for ELIST
31 lines of code changed in:
* added DYNAMIC_MEMBER to pretty printer
* modified METHOD_CALL to allow for 'commands' e.g. "println 2 + 2" instead of "println(2+2)"
* added more test cases for DOT
12 lines of code changed in:
(27 more)