public virtual string[] GetTokenLiteralNames()
{
int numTokens = GetMaxTokenType();
string[] literalNames = new string[numTokens + 1];
for (int i = 0; i < Math.Min(literalNames.Length, typeToStringLiteralList.Count); i++)
{
literalNames[i] = typeToStringLiteralList[i];
}
foreach (KeyValuePair<string, int> entry in stringLiteralToTypeMap)
{
if (entry.Value >= 0 && entry.Value < literalNames.Length && literalNames[entry.Value] == null)
{
literalNames[entry.Value] = entry.Key;
}
}
return literalNames;
}