update
This commit is contained in:
parent
6daae85740
commit
67ae3505fb
|
@ -59,11 +59,11 @@ multive_expr::=
|
|||
(unary|scalar) ('*' | '/') (unary|scalar)
|
||||
;
|
||||
unary::=
|
||||
('-'|'!') scalar
|
||||
('-'|'!') (unary|scalar)
|
||||
;
|
||||
scalar::=
|
||||
function {call_scalar}
|
||||
|identifier {call_scalar}
|
||||
|[func] identifier {call_scalar}
|
||||
|vector {call_scalar}
|
||||
|hash {call_scalar}
|
||||
|number
|
||||
|
|
|
@ -140,7 +140,7 @@ enum parse_error
|
|||
void error_info(int line,int error_type,std::string error_str="")
|
||||
{
|
||||
std::string detail;
|
||||
std::cout<<">> [parse] error_info: [line "<<line<<"] ";
|
||||
std::cout<<">> [parse] error: [line "<<line<<"] ";
|
||||
switch(error_type)
|
||||
{
|
||||
case unknown: std::cout<<"unknown error.\n"; break;
|
||||
|
|
|
@ -834,7 +834,13 @@ nasal_ast nasal_parse::unary()
|
|||
case tok_not:node.set_type(ast_unary_not);break;
|
||||
}
|
||||
++ptr;
|
||||
if(ptr<tok_list_size) node.add_child(scalar());
|
||||
if(ptr<tok_list_size)
|
||||
{
|
||||
if(tok_list[ptr].type==tok_sub || tok_list[ptr].type==tok_not)
|
||||
node.add_child(unary());
|
||||
else
|
||||
node.add_child(scalar());
|
||||
}
|
||||
else{ ++error; error_info(error_line,lack_calculation);}
|
||||
return node;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue