File tree Expand file tree Collapse file tree 2 files changed +10
-5
lines changed Expand file tree Collapse file tree 2 files changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -507,11 +507,15 @@ fn parse_expr_initial_token(
507507/// 7. multiplying_operator: * | / | mod | rem
508508/// 8. misc_operator: ** | abs | not
509509pub fn parse_expression ( stream : & mut TokenStream ) -> ParseResult < WithPos < Expression > > {
510+ let state = stream. state ( ) ;
510511 let token = stream. expect ( ) ?;
511- parse_expression_initial_token ( stream, token)
512+ parse_expression_initial_token ( stream, token) . map_err ( |err| {
513+ stream. set_state ( state) ;
514+ err
515+ } )
512516}
513517
514- pub fn parse_expression_initial_token (
518+ fn parse_expression_initial_token (
515519 stream : & mut TokenStream ,
516520 token : Token ,
517521) -> ParseResult < WithPos < Expression > > {
Original file line number Diff line number Diff line change 66
77use super :: common:: ParseResult ;
88/// LRM 8. Names
9- use super :: expression:: { parse_expression, parse_expression_initial_token } ;
9+ use super :: expression:: parse_expression;
1010use super :: subprogram:: parse_signature;
1111use super :: subtype_indication:: parse_subtype_indication;
1212use super :: tokens:: { Kind :: * , Token , TokenStream } ;
@@ -157,11 +157,12 @@ fn assoc_to_expression(assoc: AssociationElement) -> ParseResult<WithPos<Express
157157}
158158
159159fn parse_actual_part ( stream : & mut TokenStream ) -> ParseResult < WithPos < ActualPart > > {
160- let token = stream. expect ( ) ?;
160+ let token = stream. peek_expect ( ) ?;
161161 if token. kind == Open {
162+ stream. move_after ( & token) ;
162163 Ok ( WithPos :: from ( ActualPart :: Open , token) )
163164 } else {
164- Ok ( parse_expression_initial_token ( stream, token ) ?. map_into ( ActualPart :: Expression ) )
165+ Ok ( parse_expression ( stream) ?. map_into ( ActualPart :: Expression ) )
165166 }
166167}
167168
You can’t perform that action at this time.
0 commit comments