using uCalcSoftware; var uc = new uCalc(); // Define '##' with the same precedence as 'And'. 'And' binds tighter than 'Or'. var and_prec = uc.ItemOf("And", uCalc.Properties(ItemIs.Infix)).Precedence; var op_handle = uc.DefineOperator("{a} ## {b} As Boolean = a and b", and_prec); Console.WriteLine("--- Initial Precedence (like 'And') ---"); // Evaluation is like: true or (false and false) -> true or false -> true Console.WriteLine(uc.EvalStr("true or false ## 1 == 2")); // Now, change the precedence to be lower than 'Or'. var or_prec = uc.ItemOf("Or", uCalc.Properties(ItemIs.Infix)).Precedence; op_handle.Precedence = or_prec - 10; Console.WriteLine(""); Console.WriteLine("--- Changed Precedence (lower than 'Or') ---"); // Evaluation is like: (true or false) and false -> true and false -> false Console.WriteLine(uc.EvalStr("true or false ## 1 == 2"));