public SnapshotParser(ITextSnapshot snapshot, IClassifier classifier)
{
Snapshot = snapshot;
Classifier = classifier;
ClassificationSpans = Classifier.GetClassificationSpans(new SnapshotSpan(Snapshot, 0, snapshot.Length));
foreach (ClassificationSpan s in ClassificationSpans)
SpanIndex.Add(s.Span.Start.Position, s);
CurrentPoint = Snapshot.GetLineFromLineNumber(0).Start;
if (SpanIndex.ContainsKey(0))
CurrentSpan = SpanIndex[0];
}