public ExpressionObject Operation(ExpressionObject lhs, ExpressionObject rhs) { var varA = lhs as Variable; var varB = rhs as Variable; if (varA == null || varB == null) { var logText = "Cannot perform " + GetType() + " operation on " + lhs.stringValue + " and " + rhs.stringValue + "of type " + lhs.GetType() + " and " + rhs.GetType() + " respectively."; Debug.LogError(logText); return(null); } var valueA = (bool)varA.value; var valueB = (bool)varB.value; var result = CustomOperation(valueA, valueB); return(new Variable { stringValue = result.ToString(), value = result }); }
public ExpressionObject Operation(ExpressionObject rhs) { var varB = rhs as Variable; if (varB == null || varB.value == null) { Debug.LogError("Incorrect rhs for Not operator"); return(null); } var valueB = (bool)varB.value; var result = !valueB; return(new Variable { stringValue = result.ToString(), value = result }); }