clang 22.0.0git
Namespaces | Macros | Functions | Variables
ParseHLSLRootSignature.cpp File Reference
#include "clang/Parse/ParseHLSLRootSignature.h"
#include "clang/Lex/LiteralSupport.h"
#include "clang/Sema/Sema.h"
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"

Go to the source code of this file.

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::hlsl
 

Macros

#define ROOT_FLAG_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define ROOT_FLAG_ENUM(NAME, LIT)
 
#define SHADER_VISIBILITY_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define SHADER_VISIBILITY_ENUM(NAME, LIT)
 
#define FILTER_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define FILTER_ENUM(NAME, LIT)
 
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT)
 
#define COMPARISON_FUNC_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define COMPARISON_FUNC_ENUM(NAME, LIT)
 
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT)
 
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT)   TokenKind::en_##NAME,
 
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT)
 
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON)   TokenKind::en_##NAME,
 
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON)
 

Functions

template<typename FlagType >
static FlagType clang::hlsl::maybeOrFlag (std::optional< FlagType > Flags, FlagType Flag)
 
IdentifierInfo * clang::hlsl::ParseHLSLRootSignature (Sema &Actions, llvm::dxbc::RootSignatureVersion Version, StringLiteral *Signature)
 

Variables

static const TokenKind clang::hlsl::RootElementKeywords []
 

Macro Definition Documentation

◆ COMPARISON_FUNC_ENUM [1/2]

#define COMPARISON_FUNC_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ COMPARISON_FUNC_ENUM [2/2]

#define COMPARISON_FUNC_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::ComparisonFunc::NAME; \
break;

◆ DESCRIPTOR_RANGE_FLAG_ENUM [1/2]

#define DESCRIPTOR_RANGE_FLAG_ENUM (   NAME,
  LIT,
  ON 
)    TokenKind::en_##NAME,

◆ DESCRIPTOR_RANGE_FLAG_ENUM [2/2]

#define DESCRIPTOR_RANGE_FLAG_ENUM (   NAME,
  LIT,
  ON 
)
Value:
case TokenKind::en_##NAME: \
Flags = maybeOrFlag<llvm::dxbc::DescriptorRangeFlags>( \
Flags, llvm::dxbc::DescriptorRangeFlags::NAME); \
break;

◆ FILTER_ENUM [1/2]

#define FILTER_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ FILTER_ENUM [2/2]

#define FILTER_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::SamplerFilter::NAME; \
break;

◆ ROOT_DESCRIPTOR_FLAG_ENUM [1/2]

#define ROOT_DESCRIPTOR_FLAG_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ ROOT_DESCRIPTOR_FLAG_ENUM [2/2]

#define ROOT_DESCRIPTOR_FLAG_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
Flags = maybeOrFlag<llvm::dxbc::RootDescriptorFlags>( \
Flags, llvm::dxbc::RootDescriptorFlags::NAME); \
break;

◆ ROOT_FLAG_ENUM [1/2]

#define ROOT_FLAG_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ ROOT_FLAG_ENUM [2/2]

#define ROOT_FLAG_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
Flags = maybeOrFlag<llvm::dxbc::RootFlags>(Flags, \
llvm::dxbc::RootFlags::NAME); \
break;

◆ SHADER_VISIBILITY_ENUM [1/2]

#define SHADER_VISIBILITY_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ SHADER_VISIBILITY_ENUM [2/2]

#define SHADER_VISIBILITY_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::ShaderVisibility::NAME; \
break;

◆ STATIC_BORDER_COLOR_ENUM [1/2]

#define STATIC_BORDER_COLOR_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ STATIC_BORDER_COLOR_ENUM [2/2]

#define STATIC_BORDER_COLOR_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::StaticBorderColor::NAME; \
break;

◆ TEXTURE_ADDRESS_MODE_ENUM [1/2]

#define TEXTURE_ADDRESS_MODE_ENUM (   NAME,
  LIT 
)    TokenKind::en_##NAME,

◆ TEXTURE_ADDRESS_MODE_ENUM [2/2]

#define TEXTURE_ADDRESS_MODE_ENUM (   NAME,
  LIT 
)
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::TextureAddressMode::NAME; \
break;