//===--- TokenConcatenation.h - Token Concatenation Avoidance ---*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines the TokenConcatenation class. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_LEX_TOKENCONCATENATION_H #define LLVM_CLANG_LEX_TOKENCONCATENATION_H #include "clang/Basic/TokenKinds.h" namespace clang { class Preprocessor; class Token; /// TokenConcatenation class, which answers the question of /// "Is it safe to emit two tokens without a whitespace between them, or /// would that cause implicit concatenation of the tokens?" /// /// For example, it emitting two identifiers "foo" and "bar" next to each /// other would cause the lexer to produce one "foobar" token. Emitting "1" /// and ")" next to each other is safe. /// class TokenConcatenation { … }; } // end clang namespace #endif