LNode Constructor(int startIndex, VList<LNode> attrs)
{
TokenType la0;
// line 1780
LNode r;
Token n;
// Line 1781: ( &{_spaceName == LT($LI).Value} (TT.ContextualKeyword|TT.Id) &(TT.LParen TT.RParen (TT.LBrace|TT.Semicolon)) / &{_spaceName != S.Fn || LA($LI + 3) == TT.LBrace} TT.This &(TT.LParen TT.RParen (TT.LBrace|TT.Semicolon)) / (TT.ContextualKeyword|TT.Id|TT.This) &(TT.LParen TT.RParen TT.Colon) )
do {
la0 = LA0;
if (la0 == TT.ContextualKeyword || la0 == TT.Id) {
if (_spaceName == LT(0).Value) {
if (Try_Constructor_Test0(1))
n = MatchAny();
else
goto match3;
} else
goto match3;
} else {
if (_spaceName != S.Fn || LA(0 + 3) == TT.LBrace) {
if (Try_Constructor_Test1(1))
n = Match((int) TT.This);
else
goto match3;
} else
goto match3;
}
break;
match3:
{
n = Match((int) TT.ContextualKeyword, (int) TT.Id, (int) TT.This);
Check(Try_Constructor_Test2(0), "Expected TT.LParen TT.RParen TT.Colon");
}
} while (false);
// line 1790
LNode name = F.Id((Symbol) n.Value, n.StartIndex, n.EndIndex);
r = MethodArgListAndBody(startIndex, n.StartIndex, attrs, S.Constructor, F.Missing, name);
// line 1792
return r;
}