#ifndef FESA_IO_ABAQUS_INPUT_SYNTAX_H_ #define FESA_IO_ABAQUS_INPUT_SYNTAX_H_ #include #include #include #include #include "fesa/core/source_identity.h" namespace fesa { /// @brief Stores a canonical parameter name and its optional source value. /// @note Parameter names are canonicalized for lookup while values remain /// source text. struct KeywordParameter { std::string name; std::optional value; }; /// @brief Stores one parsed data row with its source location. struct DataLine { std::vector fields; SourceLocation location; }; /// @brief Stores one syntax-only keyword block and its following data rows. struct KeywordBlock { std::string canonical_name; std::string original_line; std::vector parameters; std::vector data; SourceLocation location; }; /// @brief Stores the parsed syntax and stable identity of one Abaqus input /// file. struct ParsedInput { std::filesystem::path source_path; std::string source_content_identity; std::vector blocks; }; } // namespace fesa #endif // FESA_IO_ABAQUS_INPUT_SYNTAX_H_