private void ConvertNode(RegexNode node)
{
switch (node._type)
{
case RegexNode.Alternate:
{ ConvertNodeAlternate(node); return; }
case RegexNode.Beginning:
{ ConvertNodeBeginning(node); return; }
case RegexNode.Bol:
{ ConvertNodeBol(node); return; }
case RegexNode.Capture: // (...)
{ ConvertNode(node.Child(0)); return; }
case RegexNode.Concatenate:
{ ConvertNodeConcatenate(node); return; }
case RegexNode.Empty:
{ ConvertNodeEmpty(node); return; }
case RegexNode.End:
{ ConvertNodeEnd(node); return; }
case RegexNode.EndZ:
{ ConvertNodeEndZ(node); return; }
case RegexNode.Eol:
{ ConvertNodeEol(node); return; }
case RegexNode.Loop:
{ ConvertNodeLoop(node); return; }
case RegexNode.Multi:
{ ConvertNodeMulti(node); return; }
case RegexNode.Notone:
{ ConvertNodeNotone(node); return; }
case RegexNode.Notoneloop:
{ ConvertNodeNotoneloop(node); return; }
case RegexNode.One:
{ ConvertNodeOne(node); return; }
case RegexNode.Oneloop:
{ ConvertNodeOneloop(node); return; }
case RegexNode.Set:
{ ConvertNodeSet(node); return; }
case RegexNode.Setloop:
{ ConvertNodeSetloop(node); return; }
default:
throw new AutomataException(AutomataExceptionKind.RegexConstructNotSupported);
}
}