summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/d5/tengo/v2/parser/parser.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/d5/tengo/v2/parser/parser.go')
-rw-r--r--vendor/github.com/d5/tengo/v2/parser/parser.go17
1 files changed, 11 insertions, 6 deletions
diff --git a/vendor/github.com/d5/tengo/v2/parser/parser.go b/vendor/github.com/d5/tengo/v2/parser/parser.go
index 501a9106..fd20423b 100644
--- a/vendor/github.com/d5/tengo/v2/parser/parser.go
+++ b/vendor/github.com/d5/tengo/v2/parser/parser.go
@@ -270,9 +270,13 @@ func (p *Parser) parseCall(x Expr) *CallExpr {
p.exprLevel++
var list []Expr
- for p.token != token.RParen && p.token != token.EOF {
+ var ellipsis Pos
+ for p.token != token.RParen && p.token != token.EOF && !ellipsis.IsValid() {
list = append(list, p.parseExpr())
-
+ if p.token == token.Ellipsis {
+ ellipsis = p.pos
+ p.next()
+ }
if !p.expectComma(token.RParen, "call argument") {
break
}
@@ -281,10 +285,11 @@ func (p *Parser) parseCall(x Expr) *CallExpr {
p.exprLevel--
rparen := p.expect(token.RParen)
return &CallExpr{
- Func: x,
- LParen: lparen,
- RParen: rparen,
- Args: list,
+ Func: x,
+ LParen: lparen,
+ RParen: rparen,
+ Ellipsis: ellipsis,
+ Args: list,
}
}