Rule arrayCreationExpression() {
		return Sequence(
				String("new"), group.basics.testLexBreak(), group.basics.optWS(),
				group.types.nonArrayType().label("type"),
				OneOrMore(Sequence(
						Ch('[').label("openArray"), group.basics.optWS(),
						Optional(anyExpression()).label("dimension"), Ch(']'), group.basics.optWS(),
						set(actions.createDimension(value("dimension"), node("openArray"))))),
				Optional(arrayInitializer()).label("initializer"),
				set(actions.createArrayCreationExpression(value("type"), values("OneOrMore/Sequence"), value("initializer"))));
	}
Rule arrayCreationExpression ( ) { return Sequence ( String ( "new" ) , group . basics . testLexBreak ( ) , group . basics . optWS ( ) , group . types . nonArrayType ( ) . label ( "type" ) , OneOrMore ( Sequence ( Ch ( '[' ) . label ( "openArray" ) , group . basics . optWS ( ) , Optional ( anyExpression ( ) ) . label ( "dimension" ) , Ch ( ']' ) , group . basics . optWS ( ) , set ( actions . createDimension ( value ( "dimension" ) , node ( "openArray" ) ) ) ) ) , Optional ( arrayInitializer ( ) ) . label ( "initializer" ) , set ( actions . createArrayCreationExpression ( value ( "type" ) , values ( "OneOrMore/Sequence" ) , value ( "initializer" ) ) ) ) ; }
@see <a href="http://java.sun.com/docs/books/jls/third_edition/html/arrays.html#10.3">JLS section 10.3</a>
@see <a href="http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.10">JLS section 15.10</a>