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

Function ParseDeclName

Source/SpireCore/Parser.cpp:669–694  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

667 }
668
669 static Token ParseDeclName(
670 Parser* parser)
671 {
672 Token name;
673 if (AdvanceIf(parser, "operator"))
674 {
675 name = parser->ReadToken();
676 switch (name.Type)
677 {
678 case TokenType::OpAdd: case TokenType::OpSub: case TokenType::OpMul: case TokenType::OpDiv:
679 case TokenType::OpMod: case TokenType::OpNot: case TokenType::OpBitNot: case TokenType::OpLsh: case TokenType::OpRsh:
680 case TokenType::OpEql: case TokenType::OpNeq: case TokenType::OpGreater: case TokenType::OpLess: case TokenType::OpGeq:
681 case TokenType::OpLeq: case TokenType::OpAnd: case TokenType::OpOr: case TokenType::OpBitXor: case TokenType::OpBitAnd:
682 case TokenType::OpBitOr: case TokenType::OpInc: case TokenType::OpDec:
683 break;
684 default:
685 parser->sink->diagnose(name.Position, Diagnostics::invalidOperator, name.Content);
686 break;
687 }
688 }
689 else
690 {
691 name = parser->ReadToken(TokenType::Identifier);
692 }
693 return name;
694 }
695
696 struct DeclaratorInfo
697 {

Callers 1

ParseDeclaratorDeclFunction · 0.85

Calls 3

AdvanceIfFunction · 0.85
diagnoseMethod · 0.80
ReadTokenMethod · 0.45

Tested by

no test coverage detected