private bool Evaluate(Program program, object input) { if (program.IsFolder) return HandleFolderScript(program, input); if (program.IsType) return HandleTypeScript(program, input); if (program.IsProperty) return HandlePropertyScript(program, input); if (program.IsMulti) return HandleMultiScript(program, input); if (program.IsError) return HandleErrorScript(program, input); throw new SyntaxErrorException("Script not recognised\n" + program.ToString()); }