int GetLongName(IList<Token> tokens, int pos)
{
int npos = -1;
int nstate = 0;//type name
for (int i = pos; i < tokens.Count; i += 2)
{
if (nstate == 0 && tokens[i].type == TokenType.TYPE && i + 1 < tokens.Count)
{
if (tokens[i + 1].type == TokenType.PUNCTUATION && tokens[i + 1].text == ".")
{
}
else
{
npos = i;
}
}
else if (tokens[i].type == TokenType.IDENTIFIER && i + 1 < tokens.Count)
{
if (tokens[i + 1].type == TokenType.PUNCTUATION && tokens[i + 1].text == ".")
{
}
else
{
npos = i;
}
}
else
{
break;
}
}
if (npos < pos || tokens[npos].type != TokenType.IDENTIFIER) return -1;
return npos;
}
//得到完整的表达式