public static bool Evaluate(IProcessorState processor, ref int bufferLength, ref int currentBufferPosition, out bool faulted) { ITokenTrie tokens = Instance.GetSymbols(processor); ScopeBuilder <Operators, TTokens> builder = processor.ScopeBuilder(tokens, Map, DereferenceInLiteralsSetting); bool isFaulted = false; IEvaluable result = builder.Build(ref bufferLength, ref currentBufferPosition, x => isFaulted = true); if (isFaulted) { faulted = true; return(false); } try { object evalResult = result.Evaluate(); bool r = (bool)Convert.ChangeType(evalResult, typeof(bool)); faulted = false; return(r); } catch { faulted = true; return(false); } }