protected void interface_property(
TypeMemberCollection container
)
{
IToken id1 = null;
IToken s = null;
IToken id = null;
Property p = null;
TypeReference tr = null;
ParameterDeclarationCollection parameters = null;
try { // for error handling
{
switch ( LA(1) )
{
case ID:
{
id1 = LT(1);
match(ID);
if (0==inputState.guessing)
{
id=id1;
}
break;
}
case SELF:
{
s = LT(1);
match(SELF);
if (0==inputState.guessing)
{
id=s;
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
if (0==inputState.guessing)
{
p = new Property(ToLexicalInfo(id));
p.Name = id.getText();
AddAttributes(p.Attributes);
container.Add(p);
parameters = p.Parameters;
}
{
switch ( LA(1) )
{
case LPAREN:
case LBRACK:
{
{
switch ( LA(1) )
{
case LBRACK:
{
match(LBRACK);
break;
}
case LPAREN:
{
match(LPAREN);
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
parameter_declaration_list(parameters);
{
switch ( LA(1) )
{
case RBRACK:
{
match(RBRACK);
break;
}
case RPAREN:
{
match(RPAREN);
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
break;
}
case AS:
case COLON:
{
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
{
switch ( LA(1) )
{
case AS:
{
match(AS);
tr=type_reference();
break;
}
case COLON:
{
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
if (0==inputState.guessing)
{
p.Type = tr;
}
begin_with_doc(p);
{ // ( ... )+
int _cnt114=0;
for (;;)
{
if ((LA(1)==GET||LA(1)==SET||LA(1)==LBRACK))
{
interface_property_accessor(p);
}
else
{
if (_cnt114 >= 1) { goto _loop114_breakloop; } else { throw new NoViableAltException(LT(1), getFilename());; }
}
_cnt114++;
}
_loop114_breakloop: ;
} // ( ... )+
end(p);
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "interface_property");
recover(ex,tokenSet_56_);
}
else
{
throw ex;
}
}
}