private Color GetTokenTypeColour(CppTokenType tokenType) { // TODO try to get colours from IClassificationFormatMap switch (tokenType) { case CppTokenType.Keyword: return(Colors.Blue); default: return(Colors.Black); } }
public CppToken[] GetTokens(string content) { var tokens = new List <CppToken>(); var sr = new StringReader(content); char c; while (sr.TryPeek(out c)) { CppToken tok; if (Char.IsWhiteSpace(c)) { tok = new CppToken(ReadWhitespace(sr), CppTokenType.Whitespace); } else if (Char.IsLetter(c)) { string text = ReadAlphaNumeric(sr); CppTokenType type = CppTokenType.General; if (IsKeyword(text)) { type = CppTokenType.Keyword; } tok = new CppToken(text, type); } else if (Char.IsDigit(c)) { tok = new CppToken(ReadNumber(sr), CppTokenType.Number); } else { tok = new CppToken(c.ToString(), CppTokenType.General); sr.Read(); } tokens.Add(tok); } return(tokens.ToArray()); }
public CppToken(string text, CppTokenType type) { Text = text; Type = type; }