@@ -19,14 +19,19 @@ public List<bool[]> EvaluateAll()
1919 var binary = Convert . ToString ( i , 2 ) . PadLeft ( Ast . Variables . Count , '0' ) ;
2020 var values = binary . Select ( c => c == '1' ) . ToArray ( ) ;
2121
22- var result = Evaluate ( Ast . Root , values ) ;
22+ var result = EvaluateNode ( Ast . Root , values ) ;
2323 table . Add ( values . Append ( result ) . ToArray ( ) ) ;
2424 }
2525
2626 return table ;
2727 }
2828
29- private bool Evaluate ( Node node , bool [ ] values )
29+ public bool Evaluate ( bool [ ] values )
30+ {
31+ return EvaluateNode ( Ast . Root , values ) ;
32+ }
33+
34+ private bool EvaluateNode ( Node node , bool [ ] values )
3035 {
3136 if ( node is VariableNode var )
3237 {
@@ -35,11 +40,11 @@ private bool Evaluate(Node node, bool[] values)
3540 }
3641 else if ( node is OperatorNode op )
3742 {
38- var left = Evaluate ( op . Left , values ) ;
43+ var left = EvaluateNode ( op . Left , values ) ;
3944
4045 if ( node is NotOperatorNode ) return ! left ;
41-
42- var right = Evaluate ( op . Right ! , values ) ;
46+
47+ var right = EvaluateNode ( op . Right ! , values ) ;
4348
4449 if ( node is AndOperatorNode ) return left && right ;
4550 if ( node is OrOperatorNode ) return left || right ;
0 commit comments