bool expression_parser::is_array(array_t& expression_stack) {
    if (!is_token(open_bracket_k))
        return false;

    if (!is_argument_list(expression_stack))
        push_back(expression_stack, adobe::array_t());

    require_token(close_bracket_k);

    return true;
}
Exemple #2
0
bool binspector_parser_t::is_notify()
{
    if (!is_keyword(key_notify))
        return false;

    adobe::array_t argument_list_expression;

    if (is_argument_list(argument_list_expression) == false)
        throw_exception("argument list required");

    adobe::dictionary_t parameters;

    parameters[key_field_type].assign(value_field_type_notify);
    parameters[key_field_name].assign(value_field_type_notify);
    parameters[key_notify_expression].assign(argument_list_expression);

    insert_parser_metadata(parameters);
    add_unnamed_field_proc_m(parameters);

    return true;
}
//  argument_expression_list = named_argument_list | argument_list.
bool expression_parser::is_argument_expression_list(array_t& expression_stack) {
    if (is_named_argument_list(expression_stack) || is_argument_list(expression_stack))
        return true;

    return false;
}