我有一个文件解析器,它根据条件评估 txt 文件的每一行。如果满足条件,则根据一系列嵌套的 IF 语句评估文件中的后续行。我想做的是一旦再次满足父条件,就跳出嵌套的 IF 语句,然后评估与父条件发生冲突的行并让它再次触发嵌套评估。我这样做是因为所有嵌套的 IF 语句都会提取有关父项的数据。当我击中另一个父项时,逃避子评估并重新开始。
这是处理这种情况的糟糕方式吗?
这是我的伪代码
if (line.Contains(":rule ("))
{
bInRuleFlag = true;
while (bInRuleFlag == true)
{
if (line.Contains(":rule ("))
{
bInRuleFlag = false;
// I have hit a parent element.
// escape the while loop here and evaluate line against the parent IF
}
else if (line.contatins(""))
{
//gets child elements to the rule
}
else if (line.contatins(""))
{
//gets child elements to the rule
}
}
}
如果这是不正确的,我将不胜感激有关更好方法的任何建议。