aboutsummaryrefslogtreecommitdiff
path: root/syntax/parse.go
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/parse.go')
-rw-r--r--syntax/parse.go23
1 files changed, 6 insertions, 17 deletions
diff --git a/syntax/parse.go b/syntax/parse.go
index f329cef..82c6ab0 100644
--- a/syntax/parse.go
+++ b/syntax/parse.go
@@ -409,11 +409,12 @@ func (p *parser) parseParams() []Expr {
// *args or **kwargs
if p.tok == STAR || p.tok == STARSTAR {
stars = true
+ op := p.tok
pos := p.nextToken()
id := p.parseIdent()
params = append(params, &UnaryExpr{
OpPos: pos,
- Op: p.tok,
+ Op: op,
X: id,
})
continue
@@ -703,27 +704,15 @@ func (p *parser) parseArgs() []Expr {
break
}
- // *args
- if p.tok == STAR {
- stars = true
- pos := p.nextToken()
- x := p.parseTest()
- args = append(args, &UnaryExpr{
- OpPos: pos,
- Op: STAR,
- X: x,
- })
- continue
- }
-
- // **kwargs
- if p.tok == STARSTAR {
+ // *args or **kwargs
+ if p.tok == STAR || p.tok == STARSTAR {
stars = true
+ op := p.tok
pos := p.nextToken()
x := p.parseTest()
args = append(args, &UnaryExpr{
OpPos: pos,
- Op: STARSTAR,
+ Op: op,
X: x,
})
continue