| 939 | } |
| 940 | |
| 941 | const Token * Token::findOpeningBracket() const |
| 942 | { |
| 943 | if (mStr != ">") |
| 944 | return nullptr; |
| 945 | |
| 946 | const Token *opening = nullptr; |
| 947 | |
| 948 | unsigned int depth = 0; |
| 949 | for (opening = this; opening != nullptr; opening = opening->previous()) { |
| 950 | if (Token::Match(opening, "}|]|)")) { |
| 951 | opening = opening->link(); |
| 952 | if (!opening) |
| 953 | return nullptr; |
| 954 | } else if (Token::Match(opening, "{|{|(|;")) |
| 955 | return nullptr; |
| 956 | else if (opening->str() == ">") |
| 957 | ++depth; |
| 958 | else if (opening->str() == "<") { |
| 959 | if (--depth == 0) |
| 960 | return opening; |
| 961 | } |
| 962 | } |
| 963 | |
| 964 | return opening; |
| 965 | } |
| 966 | |
| 967 | Token * Token::findOpeningBracket() |
| 968 | { |
no test coverage detected