Decl = [ ImportDecl | ConstDecl | TypeDecl | VarDecl | FuncDecl | MethodDecl ] "\n" .
()
| 645 | |
| 646 | // Decl = [ ImportDecl | ConstDecl | TypeDecl | VarDecl | FuncDecl | MethodDecl ] "\n" . |
| 647 | func (p *gc_parser) parse_decl() (pkg string, decl ast.Decl) { |
| 648 | switch p.lit { |
| 649 | case "import": |
| 650 | p.parse_import_decl() |
| 651 | case "const": |
| 652 | pkg, decl = p.parse_const_decl() |
| 653 | case "type": |
| 654 | pkg, decl = p.parse_type_decl() |
| 655 | case "var": |
| 656 | pkg, decl = p.parse_var_decl() |
| 657 | case "func": |
| 658 | p.next() |
| 659 | if p.tok == '(' { |
| 660 | pkg, decl = p.parse_method_decl() |
| 661 | } else { |
| 662 | pkg, decl = p.parse_func_decl() |
| 663 | } |
| 664 | } |
| 665 | p.expect('\n') |
| 666 | return |
| 667 | } |
| 668 | |
| 669 | // Export = PackageClause { Decl } "$$" . |
| 670 | // PackageClause = "package" identifier [ "safe" ] "\n" . |
no test coverage detected