binspector_parser_t::binspector_parser_t(std::istream& in, const adobe::line_position_t& position, const include_directory_set_t& include_directory_set, const set_structure_proc_t& set_structure_proc, const add_field_proc_t& add_field_proc, const add_unnamed_field_proc_t& add_unnamed_field_proc, const add_typedef_proc_t& add_typedef_proc, const included_file_set_t& included_file_set) : adobe::expression_parser(in, position), include_directory_set_m(include_directory_set), included_file_set_m(included_file_set), set_structure_proc_m(set_structure_proc), add_field_proc_m(add_field_proc), add_unnamed_field_proc_m(add_unnamed_field_proc), add_typedef_proc_m(add_typedef_proc) { if (!set_structure_proc_m) throw std::runtime_error("A set structure callback is required"); if (!add_field_proc_m) throw std::runtime_error("An add field callback is required"); if (!add_unnamed_field_proc_m) throw std::runtime_error("An add unnamed field callback is required"); if (!add_typedef_proc_m) throw std::runtime_error("An add typedef callback is required"); set_keyword_extension_lookup(std::bind(&keyword_lookup, std::placeholders::_1)); set_comment_bypass(true); }
adam_parser::adam_parser(std::istream& in, const line_position_t& position) : expression_parser(in, position) { once_instance(); set_keyword_extension_lookup(boost::bind(&keyword_lookup, _1)); }
adam_parser::adam_parser(std::istream& in, const line_position_t& position, const adam_callback_suite_t& callbacks) : expression_parser(in, position), adam_callback_suite_m(callbacks) { once_instance(); set_keyword_extension_lookup(boost::bind(&keyword_lookup, _1)); assert(adam_callback_suite_m.add_cell_proc_m); // all callbacks are required. assert(adam_callback_suite_m.add_relation_proc_m); assert(adam_callback_suite_m.add_interface_proc_m); }
adam_test_parser::adam_test_parser(std::istream& in_stream, const line_position_t& position, std::ostream& out) : adam_parser(in_stream, position), out_m(out), all_checks_passed_m(true) { once_instance(); set_keyword_extension_lookup(&adam_test_keyword_lookup); }