public TypeReference simple_type_reference()
{
TypeReference reference = null;
try
{
Token token = this.qname();
if ((this.LA(1) == 0x41) && (this.LA(2) == 0x5b))
{
TypeReferenceCollection references;
this.match(0x41);
this.match(0x5b);
if (base.inputState.guessing == 0)
{
GenericTypeReference reference2;
reference = reference2 = new GenericTypeReference(ToLexicalInfo(token), token.getText());
references = reference2.get_GenericArguments();
}
this.type_reference_list(references);
this.match(0x5f);
return reference;
}
if (!tokenSet_35_.member(this.LA(1)) || !tokenSet_25_.member(this.LA(2)))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
if (base.inputState.guessing == 0)
{
SimpleTypeReference reference3;
SimpleTypeReference reference1 = reference3 = new SimpleTypeReference(ToLexicalInfo(token));
reference3.set_Name(token.getText());
reference = reference3;
}
return reference;
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_35_);
return reference;
}
return reference;
}