dev/c/tex_parser/tex_table.h

55 lines
2.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef TEX_TABLE_H
#define TEX_TABLE_H
#include <sys/types.h>
#include "xerror.h"
/* Ячейка.
* Если встречается ячейка с \multicolumn{n}, то
* следующие n-1 ячеек в таблице пустые и при компиляции
* к ним не добавляется символ &
*/
struct cell_s {
char *before;
char *request;
char *after;
};
/* Строка.
* Заканчивается тегом "\tabularnewline"
*/
struct row_s {
char *before;
struct cell_s *cells;
char *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
*/
struct header_s {
char *before;
struct row_s *rows;
char *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
*/
struct footer_s {
char *before;
struct row_s *rows;
char *after;
};
struct table_s {
char *id; // "Drossel1.Table1"
char **coumnt_scheme; // "|>{\centering}m{0.1\paperwidth}"
struct header_s header;
struct footer_s footer;
struct row_s *rows;
};
int parse_table(const char *table_source, size_t len, struct table_s *table, struct xerror_s *error);
#endif // TEX_TABLE_H