示例#1
0
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);
}
示例#2
0
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));
}
示例#3
0
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);
}