diff --git a/version1.0/nasal_parser.h b/version1.0/nasal_parser.h index 84496a5..7c1ebe3 100644 --- a/version1.0/nasal_parser.h +++ b/version1.0/nasal_parser.h @@ -175,6 +175,7 @@ void nasal_parser::statements_block() get_token(); while(this_token.type!=__right_brace) { + token t; switch(this_token.type) { case __var:definition_expr();check_semi_at_end();break; @@ -182,6 +183,20 @@ void nasal_parser::statements_block() case __number:number_begin_expr();check_semi_at_end();break; case __string:string_begin_expr();check_semi_at_end();break; case __if:parse.push(this_token);if_else_expr();break; + case __left_curve: + t=this_token; + get_token(); + if(this_token.type==__var) + { + parse.push(t); + definition_expr(); + } + else + { + in_curve_calc_expr(); + } + check_semi_at_end(); + break; case __add_operator: case __sub_operator: case __nor_operator:one_operator_expr();break; @@ -348,12 +363,34 @@ void nasal_parser::hash_generate_expr() void nasal_parser::definition_expr() { get_token(); - if(this_token.type!=__id) + if(this_token.type!=__id && this_token.type!=__left_curve) { ++error; std::cout<<">>[Error] line "<>[Error] line "<>[Error] line "<