bool Scan_ComplexId(bool declContext = false)
{
TokenType la0;
if (!Scan_IdWithOptionalTypeParams(declContext))
return false;
// Line 159: (TT.ColonColon IdWithOptionalTypeParams)?
la0 = LA0;
if (la0 == TT.ColonColon) {
switch (LA(1)) {
case TT.ContextualKeyword: case TT.Id: case TT.Operator: case TT.Substitute:
case TT.TypeKeyword:
{
if (!TryMatch((int) TT.ColonColon))
return false;
if (!Scan_IdWithOptionalTypeParams(declContext))
return false;
}
break;
}
}
// Line 163: (TT.Dot IdWithOptionalTypeParams)*
for (;;) {
la0 = LA0;
if (la0 == TT.Dot) {
switch (LA(1)) {
case TT.ContextualKeyword: case TT.Id: case TT.Operator: case TT.Substitute:
case TT.TypeKeyword:
{
if (!TryMatch((int) TT.Dot))
return false;
if (!Scan_IdWithOptionalTypeParams(declContext))
return false;
}
break;
default:
goto stop;
}
} else
goto stop;
}
stop:;
return true;
}