public Expression array_initializer()
{
Expression expression = null;
List<Expression> dimensions = new List<Expression>(1);
try
{
TypeReference elementType = this.simple_type_reference();
this.match(0x44);
Expression item = this.sum();
if (base.inputState.guessing == 0)
{
dimensions.Add(item);
}
while (this.LA(1) == 0x43)
{
this.match(0x43);
item = this.sum();
if (base.inputState.guessing == 0)
{
dimensions.Add(item);
}
}
this.match(0x45);
if (base.inputState.guessing == 0)
{
expression = CodeFactory.NewArrayInitializer(elementType.get_LexicalInfo(), elementType, dimensions);
}
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_20_);
return expression;
}
return expression;
}