MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / skipRequires

Function skipRequires

lib/templatesimplifier.cpp:40–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38#include <utility>
39
40static Token *skipRequires(Token *tok)
41{
42 if (!Token::simpleMatch(tok, "requires"))
43 return tok;
44
45 while (Token::Match(tok, "%oror%|&&|requires %name%|(")) {
46 Token *after = tok->next();
47 if (after->str() == "(") {
48 tok = after->link()->next();
49 continue;
50 }
51 if (Token::simpleMatch(after, "requires (") && Token::simpleMatch(after->linkAt(1), ") {")) {
52 tok = after->linkAt(1)->linkAt(1)->next();
53 continue;
54 }
55 while (Token::Match(after, "%name% :: %name%"))
56 after = after->tokAt(2);
57 if (Token::Match(after, "%name% <")) {
58 after = after->next()->findClosingBracket();
59 tok = after ? after->next() : nullptr;
60 } else
61 break;
62 }
63 return tok;
64}
65
66namespace {
67 class FindToken {

Callers 1

simplifyTemplatesMethod · 0.85

Calls 6

nextMethod · 0.80
linkAtMethod · 0.80
simpleMatchFunction · 0.70
strMethod · 0.45
tokAtMethod · 0.45
findClosingBracketMethod · 0.45

Tested by

no test coverage detected