#pragma once #include #include #include #include #include #include namespace fesa { struct DeckRecord final { std::string keyword; std::map> parameters; std::vector> data; SourceLocation source; }; struct ParsedPart final { std::string name; std::vector records; SourceLocation source; }; struct ParsedInstance final { std::string name; std::string part_name; std::vector> transform_data; SourceLocation source; }; struct ParsedAssembly final { std::string name; std::vector instances; std::vector records; SourceLocation source; }; struct ParsedDeck final { std::vector global_records; std::vector parts; std::optional assembly; }; } // namespace fesa