PP #include non-functional: consistent notation for "header" and "header name".
This is versus a variety of file-related language, designated, requested, etc. Will simplify diffs for next commit.
This commit is contained in:
parent
927608b393
commit
2508602541
@ -2,5 +2,5 @@
|
|||||||
// For the version, it uses the latest git tag followed by the number of commits.
|
// For the version, it uses the latest git tag followed by the number of commits.
|
||||||
// For the date, it uses the current date (when then script is run).
|
// For the date, it uses the current date (when then script is run).
|
||||||
|
|
||||||
#define GLSLANG_REVISION "Overload400-PrecQual.1747"
|
#define GLSLANG_REVISION "Overload400-PrecQual.1748"
|
||||||
#define GLSLANG_DATE "06-Jan-2017"
|
#define GLSLANG_DATE "06-Jan-2017"
|
||||||
|
|||||||
@ -607,14 +607,14 @@ int TPpContext::CPPinclude(TPpToken* ppToken)
|
|||||||
// Process well-formed directive
|
// Process well-formed directive
|
||||||
TShader::Includer::IncludeResult* res = includer.include(filename.c_str(), includeType, currentSourceFile.c_str(),
|
TShader::Includer::IncludeResult* res = includer.include(filename.c_str(), includeType, currentSourceFile.c_str(),
|
||||||
includeStack.size() + 1);
|
includeStack.size() + 1);
|
||||||
if (res && !res->file_name.empty()) {
|
if (res && !res->headerName.empty()) {
|
||||||
if (res->file_data && res->file_length) {
|
if (res->headerData && res->headerLength) {
|
||||||
// path for processing one or more tokens from an included header, hand off 'res'
|
// path for processing one or more tokens from an included header, hand off 'res'
|
||||||
const bool forNextLine = parseContext.lineDirectiveShouldSetNextLine();
|
const bool forNextLine = parseContext.lineDirectiveShouldSetNextLine();
|
||||||
std::ostringstream prologue;
|
std::ostringstream prologue;
|
||||||
std::ostringstream epilogue;
|
std::ostringstream epilogue;
|
||||||
prologue << "#line " << forNextLine << " " << "\"" << res->file_name << "\"\n";
|
prologue << "#line " << forNextLine << " " << "\"" << res->headerName << "\"\n";
|
||||||
epilogue << (res->file_data[res->file_length - 1] == '\n'? "" : "\n") <<
|
epilogue << (res->headerData[res->headerLength - 1] == '\n'? "" : "\n") <<
|
||||||
"#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n";
|
"#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n";
|
||||||
pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this));
|
pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this));
|
||||||
// There's no "current" location anymore.
|
// There's no "current" location anymore.
|
||||||
@ -626,7 +626,7 @@ int TPpContext::CPPinclude(TPpToken* ppToken)
|
|||||||
} else {
|
} else {
|
||||||
// error path, clean up
|
// error path, clean up
|
||||||
std::string message =
|
std::string message =
|
||||||
res ? std::string(res->file_data, res->file_length)
|
res ? std::string(res->headerData, res->headerLength)
|
||||||
: std::string("Could not process include directive");
|
: std::string("Could not process include directive");
|
||||||
parseContext.ppError(directiveLoc, message.c_str(), "#include", "for header name: %s", filename.c_str());
|
parseContext.ppError(directiveLoc, message.c_str(), "#include", "for header name: %s", filename.c_str());
|
||||||
includer.releaseInclude(res);
|
includer.releaseInclude(res);
|
||||||
|
|||||||
@ -507,11 +507,11 @@ protected:
|
|||||||
stringInput(pp, scanner)
|
stringInput(pp, scanner)
|
||||||
{
|
{
|
||||||
strings[0] = prologue_.data();
|
strings[0] = prologue_.data();
|
||||||
strings[1] = includedFile_->file_data;
|
strings[1] = includedFile_->headerData;
|
||||||
strings[2] = epilogue_.data();
|
strings[2] = epilogue_.data();
|
||||||
|
|
||||||
lengths[0] = prologue_.size();
|
lengths[0] = prologue_.size();
|
||||||
lengths[1] = includedFile_->file_length;
|
lengths[1] = includedFile_->headerLength;
|
||||||
lengths[2] = epilogue_.size();
|
lengths[2] = epilogue_.size();
|
||||||
|
|
||||||
scanner.setLine(startLoc.line);
|
scanner.setLine(startLoc.line);
|
||||||
@ -552,7 +552,7 @@ protected:
|
|||||||
// Points to the IncludeResult that this TokenizableIncludeFile represents.
|
// Points to the IncludeResult that this TokenizableIncludeFile represents.
|
||||||
TShader::Includer::IncludeResult* includedFile_;
|
TShader::Includer::IncludeResult* includedFile_;
|
||||||
|
|
||||||
// Will point to prologue_, includedFile_->file_data and epilogue_
|
// Will point to prologue_, includedFile_->headerData and epilogue_
|
||||||
// This is passed to scanner constructor.
|
// This is passed to scanner constructor.
|
||||||
// These do not own the storage and it must remain valid until this
|
// These do not own the storage and it must remain valid until this
|
||||||
// object has been destroyed.
|
// object has been destroyed.
|
||||||
@ -576,7 +576,7 @@ protected:
|
|||||||
|
|
||||||
void push_include(TShader::Includer::IncludeResult* result)
|
void push_include(TShader::Includer::IncludeResult* result)
|
||||||
{
|
{
|
||||||
currentSourceFile = result->file_name;
|
currentSourceFile = result->headerName;
|
||||||
includeStack.push(result);
|
includeStack.push(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -588,7 +588,7 @@ protected:
|
|||||||
if (includeStack.empty()) {
|
if (includeStack.empty()) {
|
||||||
currentSourceFile = rootFileName;
|
currentSourceFile = rootFileName;
|
||||||
} else {
|
} else {
|
||||||
currentSourceFile = includeStack.top()->file_name;
|
currentSourceFile = includeStack.top()->headerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -339,22 +339,22 @@ public:
|
|||||||
// An IncludeResult contains the resolved name and content of a source
|
// An IncludeResult contains the resolved name and content of a source
|
||||||
// inclusion.
|
// inclusion.
|
||||||
struct IncludeResult {
|
struct IncludeResult {
|
||||||
IncludeResult(const std::string& file_name, const char* const file_data, const size_t file_length, void* user_data) :
|
IncludeResult(const std::string& headerName, const char* const headerData, const size_t headerLength, void* userData) :
|
||||||
file_name(file_name), file_data(file_data), file_length(file_length), user_data(user_data) { }
|
headerName(headerName), headerData(headerData), headerLength(headerLength), userData(userData) { }
|
||||||
// For a successful inclusion, the fully resolved name of the requested
|
// For a successful inclusion, the fully resolved name of the requested
|
||||||
// include. For example, in a file system-based includer, full resolution
|
// include. For example, in a file system-based includer, full resolution
|
||||||
// should convert a relative path name into an absolute path name.
|
// should convert a relative path name into an absolute path name.
|
||||||
// For a failed inclusion, this is an empty string.
|
// For a failed inclusion, this is an empty string.
|
||||||
const std::string file_name;
|
const std::string headerName;
|
||||||
// The content and byte length of the requested inclusion. The
|
// The content and byte length of the requested inclusion. The
|
||||||
// Includer producing this IncludeResult retains ownership of the
|
// Includer producing this IncludeResult retains ownership of the
|
||||||
// storage.
|
// storage.
|
||||||
// For a failed inclusion, the file_data
|
// For a failed inclusion, the header
|
||||||
// field points to a string containing error details.
|
// field points to a string containing error details.
|
||||||
const char* const file_data;
|
const char* const headerData;
|
||||||
const size_t file_length;
|
const size_t headerLength;
|
||||||
// Include resolver's context.
|
// Include resolver's context.
|
||||||
void* user_data;
|
void* userData;
|
||||||
protected:
|
protected:
|
||||||
IncludeResult& operator=(const IncludeResult&);
|
IncludeResult& operator=(const IncludeResult&);
|
||||||
IncludeResult();
|
IncludeResult();
|
||||||
@ -364,15 +364,15 @@ public:
|
|||||||
// and include depth.
|
// and include depth.
|
||||||
// On success, returns an IncludeResult containing the resolved name
|
// On success, returns an IncludeResult containing the resolved name
|
||||||
// and content of the include. On failure, returns an IncludeResult
|
// and content of the include. On failure, returns an IncludeResult
|
||||||
// with an empty string for the file_name and error details in the
|
// with an empty string for the headerName and error details in the
|
||||||
// file_data field. The Includer retains ownership of the contents
|
// header field. The Includer retains ownership of the contents
|
||||||
// of the returned IncludeResult value, and those contents must
|
// of the returned IncludeResult value, and those contents must
|
||||||
// remain valid until the releaseInclude method is called on that
|
// remain valid until the releaseInclude method is called on that
|
||||||
// IncludeResult object.
|
// IncludeResult object.
|
||||||
virtual IncludeResult* include(const char* requested_source,
|
virtual IncludeResult* include(const char* headerName,
|
||||||
IncludeType type,
|
IncludeType type,
|
||||||
const char* requesting_source,
|
const char* includerName,
|
||||||
size_t inclusion_depth) = 0;
|
size_t inclusionDepth) = 0;
|
||||||
// Signals that the parser will no longer use the contents of the
|
// Signals that the parser will no longer use the contents of the
|
||||||
// specified IncludeResult.
|
// specified IncludeResult.
|
||||||
virtual void releaseInclude(IncludeResult* result) = 0;
|
virtual void releaseInclude(IncludeResult* result) = 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user