mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile/internal/syntax: match argument and parameter parsing (cleanup)
No semantic change. Move functionality not related to argument out of the argument parsing function, and thus match parameter parsing. Also, use a better function name. Change-Id: Ic550875251d64e6fe1ebf91c11d33a9e4aec9fdd Reviewed-on: https://go-review.googlesource.com/70491 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
4b7325c7e3
commit
f8f0d6c4de
1 changed files with 11 additions and 13 deletions
|
|
@ -875,7 +875,11 @@ loop:
|
|||
p.xnest--
|
||||
|
||||
case _Lparen:
|
||||
x = p.call(x)
|
||||
t := new(CallExpr)
|
||||
t.pos = pos
|
||||
t.Fun = x
|
||||
t.ArgList, t.HasDots = p.argList()
|
||||
x = t
|
||||
|
||||
case _Lbrace:
|
||||
// operand may have returned a parenthesized complit
|
||||
|
|
@ -2062,24 +2066,18 @@ func (p *parser) stmtList() (l []Stmt) {
|
|||
}
|
||||
|
||||
// Arguments = "(" [ ( ExpressionList | Type [ "," ExpressionList ] ) [ "..." ] [ "," ] ] ")" .
|
||||
func (p *parser) call(fun Expr) *CallExpr {
|
||||
func (p *parser) argList() (list []Expr, hasDots bool) {
|
||||
if trace {
|
||||
defer p.trace("call")()
|
||||
defer p.trace("argList")()
|
||||
}
|
||||
|
||||
// call or conversion
|
||||
// convtype '(' expr ocomma ')'
|
||||
c := new(CallExpr)
|
||||
c.pos = p.pos()
|
||||
c.Fun = fun
|
||||
|
||||
p.want(_Lparen)
|
||||
p.xnest++
|
||||
|
||||
for p.tok != _EOF && p.tok != _Rparen {
|
||||
c.ArgList = append(c.ArgList, p.expr())
|
||||
c.HasDots = p.got(_DotDotDot)
|
||||
if !p.ocomma(_Rparen) || c.HasDots {
|
||||
list = append(list, p.expr())
|
||||
hasDots = p.got(_DotDotDot)
|
||||
if !p.ocomma(_Rparen) || hasDots {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
@ -2087,7 +2085,7 @@ func (p *parser) call(fun Expr) *CallExpr {
|
|||
p.xnest--
|
||||
p.want(_Rparen)
|
||||
|
||||
return c
|
||||
return
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue