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

Function isExpression

lib/symboldatabase.cpp:1583–1603  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1581}
1582
1583static bool isExpression(const Token* tok)
1584{
1585 if (!tok)
1586 return false;
1587 if (Token::simpleMatch(tok, "{") && tok->scope() && tok->scope()->bodyStart != tok &&
1588 (tok->astOperand1() || tok->astOperand2()))
1589 return true;
1590 if (!Token::Match(tok, "(|.|[|::|?|:|++|--|%cop%|%assign%"))
1591 return false;
1592 if (Token::Match(tok, "*|&|&&")) {
1593 const Token* vartok = findAstNode(tok, [&](const Token* tok2) {
1594 const Variable* var = tok2->variable();
1595 if (!var)
1596 return false;
1597 return var->nameToken() == tok2;
1598 });
1599 if (vartok)
1600 return false;
1601 }
1602 return true;
1603}
1604
1605static std::string getIncompleteNameID(const Token* tok)
1606{

Callers 1

Calls 7

findAstNodeFunction · 0.85
scopeMethod · 0.80
astOperand1Method · 0.80
astOperand2Method · 0.80
variableMethod · 0.80
simpleMatchFunction · 0.70
nameTokenMethod · 0.45

Tested by

no test coverage detected