9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_INTEGRAL_LITERAL_EXPRESSION_MATCHER_H
10#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_INTEGRAL_LITERAL_EXPRESSION_MATCHER_H
12#include <clang/Lex/Token.h>
13#include <llvm/ADT/ArrayRef.h>
33 : Current(Tokens.begin()), End(Tokens.end()), CommaAllowed(CommaAllowed) {
41 bool consume(tok::TokenKind
Kind);
42 template <
typename NonTerminalFunctor,
typename IsKindFunctor>
43 bool nonTerminalChainedExpr(
const NonTerminalFunctor &NonTerminal,
44 const IsKindFunctor &IsKind);
45 template <tok::TokenKind Kind,
typename NonTerminalFunctor>
46 bool nonTerminalChainedExpr(
const NonTerminalFunctor &NonTerminal);
47 template <tok::TokenKind K1, tok::TokenKind K2, tok::TokenKind... Ks,
48 typename NonTerminalFunctor>
49 bool nonTerminalChainedExpr(
const NonTerminalFunctor &NonTerminal);
53 bool multiplicativeExpr();
57 bool relationalExpr();
60 bool exclusiveOrExpr();
61 bool inclusiveOrExpr();
62 bool logicalAndExpr();
64 bool conditionalExpr();
68 ArrayRef<Token>::iterator Current;
69 ArrayRef<Token>::iterator End;
IntegralLiteralExpressionMatcher(ArrayRef< Token > Tokens, bool CommaAllowed)
LiteralSize largestLiteralSize() const