MCPcopy Create free account
hub / github.com/csyonghe/Spire / ParseFuncDeclHeader

Function ParseFuncDeclHeader

Source/SpireCore/Parser.cpp:703–724  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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,

Callers 1

ParseFuncDeclFunction · 0.85

Calls 8

AdvanceIfMatchFunction · 0.85
AdvanceIfFunction · 0.85
FillPositionMethod · 0.80
ParseParameterMethod · 0.80
PushScopeMethod · 0.45
PtrMethod · 0.45
ReadTokenMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected