Cosmos/source2/VSIP/Cosmos.VS.XSharp/Scanner.cs
kudzu_cp 687dc7a454
2012-06-10 22:49:28 +00:00

48 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Package;
using Microsoft.VisualStudio.TextManager.Interop;
using Microsoft.VisualStudio.OLE.Interop;
namespace Cosmos.VS.XSharp {
internal class Scanner : IScanner {
IVsTextBuffer mBuffer;
string mSource;
public Scanner(IVsTextBuffer aBuffer) {
mBuffer = aBuffer;
}
int i = 0;
bool IScanner.ScanTokenAndProvideInfoAboutIt(TokenInfo tokenInfo, ref int state) {
tokenInfo.Type = TokenType.Unknown;
tokenInfo.Color = TokenColor.Number;
i++;
return i < 2;
bool foundToken = false;
string token = ""; // lex.GetNextToken();
if (token != null) {
char firstChar = token[0];
if (char.IsPunctuation(firstChar)) {
tokenInfo.Type = TokenType.Operator;
tokenInfo.Color = TokenColor.Keyword;
} else if (char.IsNumber(firstChar)) {
tokenInfo.Type = TokenType.Literal;
tokenInfo.Color = TokenColor.Number;
} else {
tokenInfo.Type = TokenType.Identifier;
tokenInfo.Color = TokenColor.Identifier;
}
}
return foundToken;
}
void IScanner.SetSource(string source, int offset) {
mSource = source.Substring(offset);
}
}
}