private SuperLinkedList<WordInfo> GetInitSegment(string text)
{
SuperLinkedList<WordInfo> result = new SuperLinkedList<WordInfo>();
Framework.Lexical lexical = new PanGu.Framework.Lexical(text);
DFAResult dfaResult;
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
dfaResult = lexical.Input(c, i);
switch (dfaResult)
{
case DFAResult.Continue:
continue;
case DFAResult.Quit:
result.AddLast(lexical.OutputToken);
break;
case DFAResult.ElseQuit:
result.AddLast(lexical.OutputToken);
if (lexical.OldState != 255)
{
i--;
}
break;
}
}
dfaResult = lexical.Input(0, text.Length);
switch (dfaResult)
{
case DFAResult.Continue:
break;
case DFAResult.Quit:
result.AddLast(lexical.OutputToken);
break;
case DFAResult.ElseQuit:
result.AddLast(lexical.OutputToken);
break;
}
return result;
}