mirror of
https://github.com/erg-lang/erg.git
synced 2025-10-01 13:11:11 +00:00
Fix #299
This commit is contained in:
parent
f7e9481bad
commit
f677d23294
1 changed files with 22 additions and 0 deletions
|
@ -1328,6 +1328,28 @@ impl Parser {
|
|||
}
|
||||
}
|
||||
}
|
||||
Some(t) if t.is(LSqBr) => {
|
||||
let Some(ExprOrOp::Expr(obj)) = stack.pop() else {
|
||||
self.level -= 1;
|
||||
let err = self.skip_and_throw_syntax_err(caused_by!());
|
||||
self.errs.push(err);
|
||||
return Err(());
|
||||
};
|
||||
self.skip();
|
||||
let index = self
|
||||
.try_reduce_expr(false, false, in_brace, false)
|
||||
.map_err(|_| self.stack_dec())?;
|
||||
let r_sqbr = self.lpop();
|
||||
if !r_sqbr.is(RSqBr) {
|
||||
self.restore(r_sqbr);
|
||||
self.level -= 1;
|
||||
let err = self.skip_and_throw_syntax_err(caused_by!());
|
||||
self.errs.push(err);
|
||||
return Err(());
|
||||
}
|
||||
let acc = Accessor::subscr(obj, index, r_sqbr);
|
||||
stack.push(ExprOrOp::Expr(Expr::Accessor(acc)));
|
||||
}
|
||||
Some(t) if t.is(Comma) && winding => {
|
||||
let first_elem = PosOrKwArg::Pos(PosArg::new(
|
||||
enum_unwrap!(stack.pop(), Some:(ExprOrOp::Expr:(_))),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue