protected UnpackStatement unpack()
{
UnpackStatement s;
IToken t = null;
Declaration d = null;
s = new UnpackStatement();
Expression e = null;
try { // for error handling
d=declaration();
match(COMMA);
if (0==inputState.guessing)
{
s.Declarations.Add(d);
}
{
switch ( LA(1) )
{
case ID:
{
declaration_list(s.Declarations);
break;
}
case ASSIGN:
{
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
t = LT(1);
match(ASSIGN);
e=array_or_expression();
if (0==inputState.guessing)
{
s.Expression = e;
s.LexicalInfo = ToLexicalInfo(t);
}
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "unpack");
recover(ex,tokenSet_88_);
}
else
{
throw ex;
}
}
return s;
}