LNode ComplexThisDecl(bool allowed)
{
TokenType la0;
LNode result = default(LNode);
// line 244
if ((!allowed)) {
Error("'this' is not allowed in this location.");
}
var t = Match((int) TT.This);
// line 245
result = F.Id(t);
// Line 246: (TParams)?
la0 = LA0;
if (la0 == TT.Dot || la0 == TT.LT || la0 == TT.Not) {
switch (LA(1)) {
case TT.AttrKeyword: case TT.ContextualKeyword: case TT.GT: case TT.Id:
case TT.In: case TT.LBrack: case TT.LParen: case TT.Operator:
case TT.Substitute: case TT.TypeKeyword:
TParams(true, ref result);
break;
}
}
return result;
}