2013-05-03 4 views
0

У меня есть строка, содержащая функцию C с операторами условий внутри.Вложенные условия Заявления с его эквивалентом TreeStucture

string inputFunction = "if(x > 10) 
{ 
    if(x == 11) 
    { 
     //more conditions 
    } 
    if(x == 12) 
    { 
    } 
}"; 

Использование регулярного выражения Я анализирую для операторов условий, затем проанализируйте его блок кода. затем повторите процесс для следующих условий. Затем я планирую хранить их в классе я создал:

class Condition 
{ 
    public string ConditionString { get; set; } 
    public string ParentCondition { get; set; } 
    public string ChildConditions { get; set; } 
} 

Теперь проблема: я не могу создать отношения родитель-потомок с моим текущим алгоритмом.

Я могу определить только первый набор родителей. Я снова могу повторить этот процесс, чтобы разобрать их детей, но у этих детей также могут быть детские условия внутри. Есть ли у кого-нибудь предложение или есть лучший способ сделать это?

ответ

1

Для древовидной структуры золотое правило состоит в том, чтобы иметь совокупность сущности внутри себя.

Я думаю, что ваша классовая структура должна быть эта

class Condition 
{ 
    public string ConditionString{get;set;} 
    public Condition ParentCondition{get;set;} 
    public List<Condition> ChildConditions{get;set;} // in case there are more 
                // than one conditions. 
} 
+0

Привет спасибо за ответ, у вас есть предложение о том, как я могу заполнить список ChildConditions? –