#ifndef TEX_TABLE_CLASS #define TEX_TABLE_CLASS #include #include #include "xerror.h" /* Ячейка. * Если встречается ячейка с \multicolumn{n}, то * следующие n-1 ячеек в таблице пустые и при компиляции * к ним не добавляется символ & */ class cell_c { public: std::string before; std::string request; std::string after; }; /* Строка. * Заканчивается тегом "\tabularnewline" */ class row_c { public: std::string before; std::vector cells; std::string after; }; /* \hline\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В \textnumero{}}\tabularnewline\multicolumn{8}{|c|}{Стенд \textnumero{}18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время:~~~~~~~~~ Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline\hline\endhead */ class header_c { public: std::string before; std::vector rows; std::string after; }; /* \hline\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline\hline\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline\hline\endfoot */ class footer_c { public: std::string before; std::vector rows; std::string after; }; class table_c { public: std::string id; // "Drossel1.Table1" std::vector columns_scheme; // "|>{\centering}m{0.1\paperwidth}" header_c header; footer_c footer; std::vector rows; }; int parse_table(const char *table_source, table_c *table, struct xerror_s *error); #endif // TEX_TABLE_CLASS