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
#pragma switch ZFEATHER
#pragma switch DTEX
#switch UV_ANIM
#switch ZFEATHER
#switch DTEX
#ifdef UV_ANIM
#define UV_ANIM_SUFFIX "_ua"
@ -20,7 +20,7 @@
#define DTEX_SUFFIX ""
#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 PIXEL_SHADER "distortion" + ZFEATHER_SUFFIX + ".hlsl"

View File

@ -1,7 +1,7 @@
#pragma switch UV_ANIM
#pragma switch ZFEATHER
#switch UV_ANIM
#switch ZFEATHER
#pragma options MATERIAL_TYPE (default, world, world_vertcol)
#options MATERIAL_TYPE (default, world, world_vertcol)
#if MATERIAL_TYPE == "world"
#define MATERIAL_TYPE_PREFIX "w_"
@ -26,7 +26,7 @@
#define UV_ANIM_SUFFIX ""
#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 WIREFRAME_TECHNIQUE "wireframe_solid" + MATERIAL_TYPE_SUFFIX

View File

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

View File

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