| 701 | }; |
| 702 | |
| 703 | static void ParseFuncDeclHeader( |
| 704 | Parser* parser, |
| 705 | DeclaratorInfo const& declaratorInfo, |
| 706 | RefPtr<FunctionSyntaxNode> decl) |
| 707 | { |
| 708 | parser->PushScope(decl.Ptr()); |
| 709 | |
| 710 | parser->anonymousParamCounter = 0; |
| 711 | parser->FillPosition(decl.Ptr()); |
| 712 | decl->Position = declaratorInfo.nameToken.Position; |
| 713 | |
| 714 | decl->Name = declaratorInfo.nameToken; |
| 715 | decl->ReturnTypeNode = declaratorInfo.typeSpec; |
| 716 | parser->ReadToken(TokenType::LParent); |
| 717 | while (!AdvanceIfMatch(parser, TokenType::RParent)) |
| 718 | { |
| 719 | decl->Members.Add(parser->ParseParameter()); |
| 720 | if (AdvanceIf(parser, TokenType::RParent)) |
| 721 | break; |
| 722 | parser->ReadToken(TokenType::Comma); |
| 723 | } |
| 724 | } |
| 725 | |
| 726 | static void ParseFuncDeclHeader( |
| 727 | Parser* parser, |
no test coverage detected