| 922 | } |
| 923 | |
| 924 | static void compileScope(Token *&tok, AST_state& state) |
| 925 | { |
| 926 | compileTerm(tok, state); |
| 927 | while (tok) { |
| 928 | if (tok->str() == "::") { |
| 929 | const Token *lastOp = state.op.empty() ? nullptr : state.op.top(); |
| 930 | if (Token::Match(lastOp, ":: %name%")) |
| 931 | lastOp = lastOp->next(); |
| 932 | if (Token::Match(lastOp, "%name%") && |
| 933 | (lastOp->next() == tok || (Token::Match(lastOp, "%name% <") && lastOp->linkAt(1) && tok == lastOp->linkAt(1)->next()))) |
| 934 | compileBinOp(tok, state, compileTerm); |
| 935 | else |
| 936 | compileUnaryOp(tok, state, compileTerm); |
| 937 | } else break; |
| 938 | } |
| 939 | } |
| 940 | |
| 941 | static bool isPrefixUnary(const Token* tok, bool cpp) |
| 942 | { |
no test coverage detected