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