From 873c23fb56c935414669afcdb91b9910ed3cd173 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 19 Feb 2021 19:42:10 +0100 Subject: [PATCH] implement name sequence parsing --- .../Parsing/Commands/Sequence/SequenceName.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ZoneCodeGeneratorLib/Parsing/Commands/Sequence/SequenceName.cpp b/src/ZoneCodeGeneratorLib/Parsing/Commands/Sequence/SequenceName.cpp index f250fdc0..58e69540 100644 --- a/src/ZoneCodeGeneratorLib/Parsing/Commands/Sequence/SequenceName.cpp +++ b/src/ZoneCodeGeneratorLib/Parsing/Commands/Sequence/SequenceName.cpp @@ -18,4 +18,15 @@ SequenceName::SequenceName() void SequenceName::ProcessMatch(CommandsParserState* state, SequenceResult& result) const { + const auto& typeNameToken = result.NextCapture(CAPTURE_TYPE); + + StructureInformation* type; + std::vector members; + if (!state->GetTypenameAndMembersFromTypename(typeNameToken.TypeNameValue(), type, members)) + throw ParsingException(typeNameToken.GetPos(), "Unknown type"); + + if (members.empty()) + throw ParsingException(typeNameToken.GetPos(), "Need to specify a member when trying to set to a structure name."); + + type->m_name_chain = std::move(members); }