本文整理汇总了C#中ParseContext.GetState方法的典型用法代码示例。如果您正苦于以下问题:C# ParseContext.GetState方法的具体用法?C# ParseContext.GetState怎么用?C# ParseContext.GetState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParseContext
的用法示例。
在下文中一共展示了ParseContext.GetState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
public static TM Parse(TextReader tr)
{
ParseContext<TMEdge> pc = new ParseContext<TMEdge> ();
State<TMEdge> currentState = null, targetState, initState = null;
string line = tr.ReadLine ();
Character ca, cb;
Match m;
TMDirection dir;
while (line != null) {
m = stateRegex.Match (line);
if (m.Success) {
if (currentState == null) {
initState = pc.GetState (m.Groups [0x01].Value);
currentState = initState;
} else {
currentState = pc.GetState (m.Groups [0x01].Value);
}
currentState.Accepting = m.Groups [0x02].Value == "!";
} else if (currentState != null) {
m = edgeRegex.Match (line);
if (m.Success) {
ca = Character.Parse (m.Groups [0x01].Value [0x00]);
targetState = pc.GetState (m.Groups [0x02].Value);
cb = Character.Parse (m.Groups [0x03].Value [0x00]);
dir = TMDirection.Stay;
char c = m.Groups [0x04].Value [0x00];
if (c == 'L') {
dir = TMDirection.Left;
} else if (c == 'R') {
dir = TMDirection.Right;
}
currentState.AddEdge (ca, new TMEdge (targetState, cb, dir));
}
}
line = tr.ReadLine ();
}
return new TM (initState);
}