LNode IdWithOptionalTypeParams(bool declarationContext)
{
TokenType la0, la1;
LNode result = default(LNode);
result = IdAtom();
// Line 170: (TParams)?
la0 = LA0;
if (la0 == TT.LT) {
switch (LA(1)) {
case TT.AttrKeyword: case TT.ContextualKeyword: case TT.GT: case TT.Id:
case TT.In: case TT.LBrack: case TT.Operator: case TT.Substitute:
case TT.TypeKeyword:
TParams(declarationContext, ref result);
break;
}
} else if (la0 == TT.Dot) {
la1 = LA(1);
if (la1 == TT.LBrack)
TParams(declarationContext, ref result);
} else if (la0 == TT.Not) {
switch (LA(1)) {
case TT.ContextualKeyword: case TT.Id: case TT.LParen: case TT.Operator:
case TT.Substitute: case TT.TypeKeyword:
TParams(declarationContext, ref result);
break;
}
}
return result;
}