#include <c_tree_groupper.h>
Public Member Functions | |
c_tree_groupper (const string &exp) | |
virtual | ~c_tree_groupper () |
string | emit_human_evaluation () |
string | emit_human_microcode (string::size_type indent) |
void | emit_human_tree (string &out) |
string::size_type | get_error_column () |
string | get_exp () |
string | get_human_error () |
const vector< string > & | get_warnings () |
bool | has_error () |
Protected Member Functions | |
virtual void | add_base_of_subscript_as_excluded (c_sub_exp_variable *base)=0 |
string | concat_column (const string &msg) |
void | destroy () |
void | error (e_compiler_error error, string::size_type column) |
bool | get_oper (const string &exp, string::size_type &start, int &oper_idx) |
virtual void | process () |
Protected Attributes | |
string::size_type | m_e_column |
e_compiler_error | m_error |
string | m_exp |
tree< c_sub_exp * > | m_exp_tree |
vector< c_sub_exp * > | m_extra |
vector< c_sub_exp * > | m_flow |
vector< vector< c_sub_exp * > > | m_groups |
vector< string > | m_messages |
c_sub_exp * | root |
Private Member Functions | |
bool | children_complete (tree< c_sub_exp * >::iterator where) |
bool | completed (e_assoc direction, tree< c_sub_exp * >::iterator start, bool only_first=false) |
int | get_deepest () |
c_sub_exp * | get_right (tree< c_sub_exp * >::iterator start, bool only_one=true, bool same_depth=true) |
void | group_children (tree< c_sub_exp * >::iterator where, vector< c_sub_exp * > &group) |
void | include_children (c_sub_exp *parent, tree< c_sub_exp * >::iterator where, tree< c_sub_exp * >::iterator protect, vector< c_sub_exp * > *group) |
void | include_function_args (const tree< c_sub_exp * >::iterator &parent) |
bool | process_oper_binary (vector< c_sub_exp * > &group, const tree< c_sub_exp * >::iterator &where) |
bool | process_oper_binary_or_unary (vector< c_sub_exp * > &group, const tree< c_sub_exp * >::iterator &where) |
bool | process_oper_conditional (vector< c_sub_exp * > &group, const tree< c_sub_exp * >::iterator &where) |
bool | process_oper_unary (const tree< c_sub_exp * >::iterator &where) |
bool | sanity_check (const vector< c_sub_exp * > &group) |
bool | set_index_base (tree< c_sub_exp * >::iterator where) |
Private Attributes | |
tree< c_sub_exp * > | m_elim_tree |
int | m_prec |
vector< c_sub_exp * > | m_to_process |
Friends | |
class | c_sub_exp_conditional_end_marker |
Definition at line 21 of file c_tree_groupper.h.