in Iris/IrisCompiler/FrontEnd/Lexer.cs [75:143]
public static string TokenName(Token token)
{
string constName = Enum.GetName(typeof(Token), token).ToLower();
if (constName.StartsWith("kw"))
return "'" + constName.Substring(2) + "'";
if (constName.StartsWith("chr"))
{
switch (token)
{
case Token.ChrOpenParen:
return "'('";
case Token.ChrCloseParen:
return "')'";
case Token.ChrOpenBracket:
return "'['";
case Token.ChrCloseBracket:
return "']'";
case Token.ChrColon:
return "':'";
case Token.ChrSemicolon:
return "';'";
case Token.ChrAssign:
return "':='";
case Token.ChrEqual:
return "'='";
case Token.ChrNotEqual:
return "'<>'";
case Token.ChrPlus:
return "'+'";
case Token.ChrMinus:
return "'-'";
case Token.ChrStar:
return "'*'";
case Token.ChrSlash:
return "'/'";
case Token.ChrPercent:
return "'%'";
case Token.ChrComma:
return "','";
case Token.ChrPeriod:
return "'.'";
case Token.ChrGreaterThan:
return "'>'";
case Token.ChrLessThan:
return "'<'";
case Token.ChrGreaterThanEqual:
return "'>='";
case Token.ChrLessThanEqual:
return "'<='";
case Token.ChrDotDot:
return "'..'";
}
}
switch (token)
{
case Token.Eof:
return "end of file";
case Token.Number:
return "numeric constant";
case Token.String:
return "string constant";
case Token.Identifier:
return "identifier";
default:
throw new NotSupportedException("Can't get name of token. Missing case?");
}
}