diff --git a/version1.2/nasal_parser.h b/version1.2/nasal_parser.h index a3e0952..ae54bda 100644 --- a/version1.2/nasal_parser.h +++ b/version1.2/nasal_parser.h @@ -1220,9 +1220,7 @@ abstract_syntax_tree nasal_parser::mul_div_operator_expr() node.set_var_string(this_token.content); break; case __id: - node.set_node_type(__id); - node.set_var_name(this_token.content); - node.add_child(identifier_call_expr()); + node=identifier_call_expr(); break; case __left_curve: parse.push(this_token); @@ -1365,7 +1363,7 @@ abstract_syntax_tree nasal_parser::calculation_expr() } else parse.push(this_token); - temp=mul_div_operator_expr(); + node=mul_div_operator_expr(); while(1) { get_token(); @@ -1382,19 +1380,19 @@ abstract_syntax_tree nasal_parser::calculation_expr() case __add_operator: case __sub_operator: case __link_operator: - node.set_clear(); - node.set_node_type(this_token.type); - node.add_child(temp); + temp.set_clear(); + temp.set_node_type(this_token.type); + temp.add_child(node); break; - case __semi:parse.push(this_token);return temp;break; + case __semi:parse.push(this_token);return node;break; case __unknown_operator: ++error; std::cout<<">>[Error] line "<>[Error] line "<