#if defined(_MSC_VER)
# pragma warning(disable : 4718)
#endif
#include "compiler/translator/Symbol.h"
#include "compiler/translator/ImmutableStringBuilder.h"
#include "compiler/translator/SymbolTable.h"
namespace sh
{
namespace
{
constexpr const ImmutableString kMainName("main");
constexpr const ImmutableString kImageLoadName("imageLoad");
constexpr const ImmutableString kImageStoreName("imageStore");
constexpr const ImmutableString kImageSizeName("imageSize");
constexpr const ImmutableString kImageAtomicExchangeName("imageAtomicExchange");
constexpr const ImmutableString kAtomicCounterName("atomicCounter");
static const char kFunctionMangledNameSeparator = …;
}
TSymbol::TSymbol(TSymbolTable *symbolTable,
const ImmutableString &name,
SymbolType symbolType,
SymbolClass symbolClass,
TExtension extension)
: … { … }
TSymbol::TSymbol(TSymbolTable *symbolTable,
const ImmutableString &name,
SymbolType symbolType,
SymbolClass symbolClass,
const std::array<TExtension, 3u> &extensions)
: … { … }
ImmutableString TSymbol::name() const
{ … }
ImmutableString TSymbol::getMangledName() const
{ … }
TVariable::TVariable(TSymbolTable *symbolTable,
const ImmutableString &name,
const TType *type,
SymbolType symbolType,
TExtension extension)
: … { … }
TVariable::TVariable(TSymbolTable *symbolTable,
const ImmutableString &name,
const TType *type,
SymbolType symbolType,
const std::array<TExtension, 3u> &extensions)
: … { … }
TStructure::TStructure(TSymbolTable *symbolTable,
const ImmutableString &name,
const TFieldList *fields,
SymbolType symbolType)
: … { … }
void TStructure::createSamplerSymbols(const char *namePrefix,
const TString &apiNamePrefix,
TVector<const TVariable *> *outputSymbols,
TMap<const TVariable *, TString> *outputSymbolsToAPINames,
TSymbolTable *symbolTable) const
{ … }
void TStructure::setName(const ImmutableString &name)
{ … }
TInterfaceBlock::TInterfaceBlock(TSymbolTable *symbolTable,
const ImmutableString &name,
const TFieldList *fields,
const TLayoutQualifier &layoutQualifier,
SymbolType symbolType,
TExtension extension)
: … { … }
TInterfaceBlock::TInterfaceBlock(TSymbolTable *symbolTable,
const ImmutableString &name,
const TFieldList *fields,
const TLayoutQualifier &layoutQualifier,
SymbolType symbolType,
const std::array<TExtension, 3u> &extensions)
: … { … }
TFunction::TFunction(TSymbolTable *symbolTable,
const ImmutableString &name,
SymbolType symbolType,
const TType *retType,
bool knownToNotHaveSideEffects)
: … { … }
void TFunction::addParameter(const TVariable *p)
{ … }
void TFunction::shareParameters(const TFunction ¶metersSource)
{ … }
ImmutableString TFunction::buildMangledName() const
{ … }
bool TFunction::isMain() const
{ … }
bool TFunction::isImageFunction() const
{ … }
bool TFunction::isAtomicCounterFunction() const
{ … }
}