예제 #1
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));
}
예제 #2
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);
}
예제 #3
0
array_t parse_adam_expression(const std::string& str_expression)
{
    once_instance();
    
    std::stringstream   expression_stream(str_expression);
    
    adobe::expression_parser parser(expression_stream, line_position_t("expression"));
    parser.set_keyword_extension_lookup(boost::bind(&keyword_lookup, _1));

    adobe::array_t expression;
    parser.require_expression(expression);
    
    return expression;
}
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);
}