std::string _parser::statement_to_string( bool verbose ) { LOCK_OBJECT(std::recursive_mutex, _parser_lock); return statement_to_string(_position, verbose); }
/* Print an AST node to stdout (recursive) */ void dump_node(linked_list *list, int indentation) { linked_iter iterator = ll_iter_head(list); while(ll_iter_has_next(&iterator)) { for(int i = 0; i < indentation; i++) { printf("\t"); } statement *state = ll_iter_next(&iterator); printf("%s", statement_to_string(state->type)); printf(": %s\n", evaluate(state->data)); if(state->children != NULL) { dump_node(state->children, indentation + 1); } } }
std::string _parser::to_string( bool verbose ) { LOCK_OBJECT(std::recursive_mutex, _parser_lock); std::stringstream ss; if(verbose) { ss << "STATEMENT[" << _position << "]" << std::endl; } ss << statement_to_string(_position, verbose); return ss.str(); }