Remove pragma keyword from raw templater

This commit is contained in:
Jan 2022-09-07 18:13:11 +02:00
parent 7e4e7e1229
commit e853674bbe
4 changed files with 17 additions and 36 deletions

View File

@ -1,6 +1,6 @@
#pragma switch UV_ANIM #switch UV_ANIM
#pragma switch ZFEATHER #switch ZFEATHER
#pragma switch DTEX #switch DTEX
#ifdef UV_ANIM #ifdef UV_ANIM
#define UV_ANIM_SUFFIX "_ua" #define UV_ANIM_SUFFIX "_ua"
@ -20,7 +20,7 @@
#define DTEX_SUFFIX "" #define DTEX_SUFFIX ""
#endif #endif
#pragma filename "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + DTEX_SUFFIX + ".tech" #filename "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + DTEX_SUFFIX + ".tech"
#set VERTEX_SHADER "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + DTEX_SUFFIX + ".hlsl" #set VERTEX_SHADER "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + DTEX_SUFFIX + ".hlsl"
#set PIXEL_SHADER "distortion" + ZFEATHER_SUFFIX + ".hlsl" #set PIXEL_SHADER "distortion" + ZFEATHER_SUFFIX + ".hlsl"

View File

@ -1,7 +1,7 @@
#pragma switch UV_ANIM #switch UV_ANIM
#pragma switch ZFEATHER #switch ZFEATHER
#pragma options MATERIAL_TYPE (default, world, world_vertcol) #options MATERIAL_TYPE (default, world, world_vertcol)
#if MATERIAL_TYPE == "world" #if MATERIAL_TYPE == "world"
#define MATERIAL_TYPE_PREFIX "w_" #define MATERIAL_TYPE_PREFIX "w_"
@ -26,7 +26,7 @@
#define UV_ANIM_SUFFIX "" #define UV_ANIM_SUFFIX ""
#endif #endif
#pragma filename MATERIAL_TYPE_PREFIX + "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + ".techset" #filename MATERIAL_TYPE_PREFIX + "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + ".techset"
#set EMISSIVE_TECHNIQUE "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + MATERIAL_TYPE_SUFFIX #set EMISSIVE_TECHNIQUE "distortion_scale" + UV_ANIM_SUFFIX + ZFEATHER_SUFFIX + MATERIAL_TYPE_SUFFIX
#set WIREFRAME_TECHNIQUE "wireframe_solid" + MATERIAL_TYPE_SUFFIX #set WIREFRAME_TECHNIQUE "wireframe_solid" + MATERIAL_TYPE_SUFFIX

View File

@ -22,18 +22,12 @@ bool TemplatingStreamProxy::MatchSwitchDirective(const ParserLine& line, const u
{ {
auto currentPosition = directiveStartPosition; auto currentPosition = directiveStartPosition;
if (directiveEndPosition - directiveStartPosition != std::char_traits<char>::length(PRAGMA_DIRECTIVE) if (directiveEndPosition - directiveStartPosition != std::char_traits<char>::length(SWITCH_DIRECTIVE)
|| !MatchString(line, currentPosition, PRAGMA_DIRECTIVE, std::char_traits<char>::length(PRAGMA_DIRECTIVE))) || !MatchString(line, currentPosition, SWITCH_DIRECTIVE, std::char_traits<char>::length(SWITCH_DIRECTIVE)))
{ {
return false; return false;
} }
if (!SkipWhitespace(line, currentPosition))
return false;
if (!MatchString(line, currentPosition, SWITCH_PRAGMA_COMMAND, std::char_traits<char>::length(SWITCH_PRAGMA_COMMAND)))
return false;
if (!SkipWhitespace(line, currentPosition)) if (!SkipWhitespace(line, currentPosition))
throw ParsingException(CreatePos(line, currentPosition), "Invalid switch directive."); throw ParsingException(CreatePos(line, currentPosition), "Invalid switch directive.");
@ -51,18 +45,12 @@ bool TemplatingStreamProxy::MatchOptionsDirective(const ParserLine& line, const
{ {
auto currentPosition = directiveStartPosition; auto currentPosition = directiveStartPosition;
if (directiveEndPosition - directiveStartPosition != std::char_traits<char>::length(PRAGMA_DIRECTIVE) if (directiveEndPosition - directiveStartPosition != std::char_traits<char>::length(OPTIONS_DIRECTIVE)
|| !MatchString(line, currentPosition, PRAGMA_DIRECTIVE, std::char_traits<char>::length(PRAGMA_DIRECTIVE))) || !MatchString(line, currentPosition, OPTIONS_DIRECTIVE, std::char_traits<char>::length(OPTIONS_DIRECTIVE)))
{ {
return false; return false;
} }
if (!SkipWhitespace(line, currentPosition))
return false;
if (!MatchString(line, currentPosition, OPTIONS_PRAGMA_COMMAND, std::char_traits<char>::length(OPTIONS_PRAGMA_COMMAND)))
return false;
if (!SkipWhitespace(line, currentPosition)) if (!SkipWhitespace(line, currentPosition))
throw ParsingException(CreatePos(line, currentPosition), "Invalid options directive."); throw ParsingException(CreatePos(line, currentPosition), "Invalid options directive.");
@ -105,18 +93,12 @@ bool TemplatingStreamProxy::MatchFilenameDirective(const ParserLine& line, const
{ {
auto currentPosition = directiveStartPosition; auto currentPosition = directiveStartPosition;
if (directiveEndPosition - directiveStartPosition != std::char_traits<char>::length(PRAGMA_DIRECTIVE) if (directiveEndPosition - directiveStartPosition != std::char_traits<char>::length(FILENAME_DIRECTIVE)
|| !MatchString(line, currentPosition, PRAGMA_DIRECTIVE, std::char_traits<char>::length(PRAGMA_DIRECTIVE))) || !MatchString(line, currentPosition, FILENAME_DIRECTIVE, std::char_traits<char>::length(FILENAME_DIRECTIVE)))
{ {
return false; return false;
} }
if (!SkipWhitespace(line, currentPosition))
return false;
if (!MatchString(line, currentPosition, FILENAME_PRAGMA_COMMAND, std::char_traits<char>::length(FILENAME_PRAGMA_COMMAND)))
return false;
if (!SkipWhitespace(line, currentPosition)) if (!SkipWhitespace(line, currentPosition))
throw ParsingException(CreatePos(line, currentPosition), "Invalid options directive."); throw ParsingException(CreatePos(line, currentPosition), "Invalid options directive.");

View File

@ -37,10 +37,9 @@ namespace templating
_NODISCARD bool Eof() const override; _NODISCARD bool Eof() const override;
private: private:
static constexpr const char* PRAGMA_DIRECTIVE = "pragma"; static constexpr const char* SWITCH_DIRECTIVE = "switch";
static constexpr const char* SWITCH_PRAGMA_COMMAND = "switch"; static constexpr const char* OPTIONS_DIRECTIVE = "options";
static constexpr const char* OPTIONS_PRAGMA_COMMAND = "options"; static constexpr const char* FILENAME_DIRECTIVE = "filename";
static constexpr const char* FILENAME_PRAGMA_COMMAND = "filename";
_NODISCARD bool MatchSwitchDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition) const; _NODISCARD bool MatchSwitchDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition) const;
_NODISCARD bool MatchOptionsDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition) const; _NODISCARD bool MatchOptionsDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition) const;