diff options
author | Matthew Dempsky <mdempsky@google.com> | 2016-06-27 14:51:54 -0700 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2016-08-16 14:32:09 -0700 |
commit | 4bc85b2eb8664470c131517d9fab1090827857b6 (patch) | |
tree | 62c69912c3e9bfa79f37c6d60983c7f221bf2992 | |
parent | 83153e7f372a5822a771e132885633cd24d3df12 (diff) | |
download | go-4bc85b2eb8664470c131517d9fab1090827857b6.tar.gz go-4bc85b2eb8664470c131517d9fab1090827857b6.zip |
cmd/compile/internal/syntax: refactor DeclStmt parsing
No behavior change.
Change-Id: I93c7cb7ab76b5afa74e6a1f092b7045fb96467b1
-rw-r--r-- | src/cmd/compile/internal/syntax/parser.go | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index 3666a49082..f267d4b2c9 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -1530,6 +1530,20 @@ func (p *parser) blockStmt() *BlockStmt { return s } +func (p *parser) declStmt(f func(*Group) Decl) *DeclStmt { + if trace { + defer p.trace("declStmt")() + } + + s := new(DeclStmt) + s.init(p) + + p.next() // _Const, _Type, or _Var + s.DeclList = p.appendGroup(nil, f) + + return s +} + func (p *parser) forStmt() Stmt { if trace { defer p.trace("forStmt")() @@ -1787,25 +1801,13 @@ func (p *parser) stmt() Stmt { return p.blockStmt() case _Var: - p.next() - s := new(DeclStmt) - s.init(p) - s.DeclList = p.appendGroup(nil, p.varDecl) - return s + return p.declStmt(p.varDecl) case _Const: - p.next() - s := new(DeclStmt) - s.init(p) - s.DeclList = p.appendGroup(nil, p.constDecl) - return s + return p.declStmt(p.constDecl) case _Type: - p.next() - s := new(DeclStmt) - s.init(p) - s.DeclList = p.appendGroup(nil, p.typeDecl) - return s + return p.declStmt(p.typeDecl) case _Operator, _Star: switch p.op { |