update
This commit is contained in:
parent
b7ce093aa5
commit
025108a692
|
@ -60,7 +60,7 @@ enum parse_token_type
|
||||||
__call_function,__call_vector,__call_hash,
|
__call_function,__call_vector,__call_hash,
|
||||||
__normal_statement_block,
|
__normal_statement_block,
|
||||||
__definition,
|
__definition,
|
||||||
__function,__ifelse
|
__function,__conditional
|
||||||
};
|
};
|
||||||
|
|
||||||
void print_parse_token(int type)
|
void print_parse_token(int type)
|
||||||
|
@ -143,7 +143,7 @@ void print_parse_token(int type)
|
||||||
case __normal_statement_block:context="block"; break;
|
case __normal_statement_block:context="block"; break;
|
||||||
case __definition: context="definition"; break;
|
case __definition: context="definition"; break;
|
||||||
case __function: context="function"; break;
|
case __function: context="function"; break;
|
||||||
case __ifelse: context="if-else"; break;
|
case __conditional: context="conditional"; break;
|
||||||
|
|
||||||
default: context="undefined_token";break;
|
default: context="undefined_token";break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1507,14 +1507,14 @@ abstract_syntax_tree nasal_parse::loop_expr()
|
||||||
|
|
||||||
abstract_syntax_tree nasal_parse::conditional_expr()
|
abstract_syntax_tree nasal_parse::conditional_expr()
|
||||||
{
|
{
|
||||||
abstract_syntax_tree choose_main_node;
|
abstract_syntax_tree conditional_main_node;
|
||||||
abstract_syntax_tree if_node;
|
abstract_syntax_tree if_node;
|
||||||
abstract_syntax_tree elsif_node;
|
abstract_syntax_tree elsif_node;
|
||||||
abstract_syntax_tree else_node;
|
abstract_syntax_tree else_node;
|
||||||
choose_main_node.set_node_type(__ifelse);
|
conditional_main_node.set_node_type(__conditional);
|
||||||
// get 'if'
|
// get 'if'
|
||||||
this->get_token();
|
this->get_token();
|
||||||
choose_main_node.set_node_line(this_token.line);
|
conditional_main_node.set_node_line(this_token.line);
|
||||||
if_node.set_node_type(__if);
|
if_node.set_node_type(__if);
|
||||||
if_node.set_node_line(this_token.line);
|
if_node.set_node_line(this_token.line);
|
||||||
this->get_token();
|
this->get_token();
|
||||||
|
@ -1531,6 +1531,7 @@ abstract_syntax_tree nasal_parse::conditional_expr()
|
||||||
print_parse_error(lack_right_curve,this_token.line);
|
print_parse_error(lack_right_curve,this_token.line);
|
||||||
}
|
}
|
||||||
if_node.add_children(block_generate());
|
if_node.add_children(block_generate());
|
||||||
|
conditional_main_node.add_children(if_node);
|
||||||
// add statements
|
// add statements
|
||||||
this->get_token();
|
this->get_token();
|
||||||
if(this_token.type==__elsif)
|
if(this_token.type==__elsif)
|
||||||
|
@ -1555,7 +1556,7 @@ abstract_syntax_tree nasal_parse::conditional_expr()
|
||||||
print_parse_error(lack_right_curve,this_token.line,this_token.type);
|
print_parse_error(lack_right_curve,this_token.line,this_token.type);
|
||||||
}
|
}
|
||||||
elsif_node.add_children(block_generate());
|
elsif_node.add_children(block_generate());
|
||||||
choose_main_node.add_children(elsif_node);
|
conditional_main_node.add_children(elsif_node);
|
||||||
this->get_token();// get next 'elsif' if it exists
|
this->get_token();// get next 'elsif' if it exists
|
||||||
}
|
}
|
||||||
this->push_token();
|
this->push_token();
|
||||||
|
@ -1568,11 +1569,11 @@ abstract_syntax_tree nasal_parse::conditional_expr()
|
||||||
else_node.set_node_line(this_token.type);
|
else_node.set_node_line(this_token.type);
|
||||||
else_node.set_node_type(__else);
|
else_node.set_node_type(__else);
|
||||||
else_node.add_children(block_generate());
|
else_node.add_children(block_generate());
|
||||||
choose_main_node.add_children(else_node);
|
conditional_main_node.add_children(else_node);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
this->push_token();
|
this->push_token();
|
||||||
// get elsif or else
|
// get elsif or else
|
||||||
return choose_main_node;
|
return conditional_main_node;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue