13#ifndef LLVM_CLANG_LEX_LEXHLSLROOTSIGNATURE_H
14#define LLVM_CLANG_LEX_LEXHLSLROOTSIGNATURE_H
19#include "llvm/ADT/SmallVector.h"
20#include "llvm/ADT/StringRef.h"
21#include "llvm/ADT/StringSwitch.h"
28#define TOK(X, SPELLING) X,
29#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
50#define TOK(X, SPELLING) \
51 case RootSignatureToken::Kind::X: \
54#define PUNCTUATOR(X, SPELLING) \
55 case RootSignatureToken::Kind::pu_##X: \
58#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
74 advanceBuffer(Buffer.take_while(isspace).size());
75 return Buffer.empty();
81 uint32_t LocOffset = 0;
84 std::optional<RootSignatureToken> NextToken = std::nullopt;
91 void advanceBuffer(
unsigned NumCharacters = 1) {
92 Buffer = Buffer.drop_front(NumCharacters);
93 LocOffset += NumCharacters;
Defines the Diagnostic-related interfaces.
enum clang::sema::@1840::IndirectLocalPathEntry::EntryKind Kind
Defines the clang::SourceLocation class and associated facilities.
A little helper class used to produce diagnostics.
RootSignatureToken peekNextToken()
Returns the token that proceeds CurToken.
RootSignatureLexer(StringRef Signature)
RootSignatureToken consumeToken()
Consumes and returns the next token.
const DiagnosticBuilder & operator<<(const DiagnosticBuilder &DB, const RootSignatureToken::Kind Kind)
The JSON file list parser is used to communicate input to InstallAPI.
RootSignatureToken(Kind TokKind, uint32_t LocOffset)
RootSignatureToken(uint32_t LocOffset)