mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-13 00:08:26 -05:00
Fix macro parameters not being able to be specified over multiple lines when defining
This commit is contained in:
@ -47,13 +47,21 @@ public:
|
||||
};
|
||||
|
||||
private:
|
||||
enum class BlockMode
|
||||
enum class BlockMode : uint8_t
|
||||
{
|
||||
NOT_IN_BLOCK,
|
||||
IN_BLOCK,
|
||||
BLOCK_BLOCKED
|
||||
};
|
||||
|
||||
enum class ParameterState : uint8_t
|
||||
{
|
||||
NOT_IN_PARAMETERS,
|
||||
AFTER_OPEN,
|
||||
AFTER_PARAM,
|
||||
AFTER_COMMA
|
||||
};
|
||||
|
||||
IParserLineStream* const m_stream;
|
||||
const bool m_skip_directive_lines;
|
||||
std::map<std::string, Define> m_defines;
|
||||
@ -61,13 +69,15 @@ private:
|
||||
unsigned m_ignore_depth;
|
||||
|
||||
bool m_in_define;
|
||||
ParameterState m_parameter_state;
|
||||
Define m_current_define;
|
||||
std::ostringstream m_current_define_value;
|
||||
std::vector<std::string> m_current_define_parameters;
|
||||
|
||||
static int GetLineEndEscapePos(const ParserLine& line);
|
||||
static std::vector<std::string> MatchDefineParameters(const ParserLine& line, unsigned& parameterPosition);
|
||||
void ContinueDefine(const ParserLine& line);
|
||||
void MatchDefineParameters(const ParserLine& line, unsigned& currentPos);
|
||||
void ContinueDefine(const ParserLine& line, unsigned currentPos);
|
||||
void ContinueParameters(const ParserLine& line, unsigned& currentPos);
|
||||
_NODISCARD bool MatchDefineDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition);
|
||||
_NODISCARD bool MatchUndefDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition);
|
||||
_NODISCARD bool MatchIfDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition);
|
||||
@ -75,7 +85,7 @@ private:
|
||||
_NODISCARD bool MatchIfdefDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition);
|
||||
_NODISCARD bool MatchElseDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition);
|
||||
_NODISCARD bool MatchEndifDirective(const ParserLine& line, unsigned directiveStartPosition, unsigned directiveEndPosition);
|
||||
_NODISCARD bool MatchDirectives(const ParserLine& line);
|
||||
_NODISCARD bool MatchDirectives(ParserLine& line);
|
||||
|
||||
static void
|
||||
ExtractParametersFromDefineUsage(const ParserLine& line, unsigned parameterStart, unsigned& parameterEnd, std::vector<std::string>& parameterValues);
|
||||
|
Reference in New Issue
Block a user