public TypeReference anonymous_function_type()
{
TypeReference reference = null;
IToken token = null;
try
{
CallableTypeReference reference2;
ParameterDeclarationCollection declarations;
token = this.LT(1);
this.match(0x13);
if (base.inputState.guessing == 0)
{
reference = reference2 = new CallableTypeReference(ToLexicalInfo(token));
declarations = reference2.get_Parameters();
}
this.function_type_parameters(declarations);
if ((this.LA(1) == 0x42) && ((this.LA(2) == 0x13) || (this.LA(2) == 0x3b)))
{
this.match(0x42);
TypeReference reference3 = this.type_reference();
if (base.inputState.guessing == 0)
{
reference2.set_ReturnType(reference3);
}
return reference;
}
if (!tokenSet_35_.member(this.LA(1)) || !tokenSet_25_.member(this.LA(2)))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
return reference;
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_35_);
return reference;
}
return reference;
}