protected ParserNode _HandleLevel_Op(Func<ParserNode> HandleLevelNext, string[] Operators, Func<ParserNode, ParserNode, String, ParserNode> HandleOperator)
{
ParserNode ParserNode = HandleLevelNext();
while (Tokens.HasMore)
{
switch (CurrentTokenType)
{
case "OperatorTemplateToken":
string Operator = CurrentToken.Text;
bool Found = false;
foreach (var CurrentOperator in Operators)
{
if (Operator == CurrentOperator)
{
Tokens.MoveNext();
ParserNode RightNode = HandleLevelNext();
ParserNode = HandleOperator(ParserNode, RightNode, Operator);
Found = true;
break;
}
}
if (!Found)
{
return ParserNode;
}
break;
default:
return ParserNode;
}
}
return ParserNode;
}