private Status OnKeyword(string text, ref int pos, List <Token> result) { Status retVal = Status.Begin; if (char.IsLetter(text[pos])) { int m = 1; while (pos + m < text.Length && char.IsLetter(text[pos + m])) { ++m; } if (KeywordSet.Contains(text.Substring(pos, m))) { result.Add(new Token(text, pos, m, Status.Keyword.ToString())); pos += m; } else { retVal = Status.Idendity; } } else { retVal = Status.Error; } return(retVal); }
public CSharpIdentifier(string name) { Name = KeywordSet.Contains(name) ? $"@{name}" : name; }