#include "tex_table.h"

#include <string.h>
#include <ctype.h>
#include "tex_table_tags.h"
#include "zmalloc.h"

int parse_table(const char *table_source, size_t len, struct table_s *table, struct xerror_s *error)
{
	if (!len)
		len = strlen(table_source);

	char *tag = NULL;
	size_t i = 0;

	enum where_e
	{
		IN_GLOBAL,
		IN_TAG,
		IN_TAG_END,
		IN_TAG_BEGIN_END,
		IN_TAG_PARAM,
		IN_TAG_BEGIN_PARAM
	} where = IN_GLOBAL;

	/* Ищем первое вхождение
	 * \begin{longtable}
	 */
	 for (i = 0; i < len; i++) {
		char c = table_source[i];

		switch (where) {
		case IN_GLOBAL:
			if (c == '\\') {
				zfree(&tag);
				where = IN_TAG;
			}
		break;

		case IN_TAG:
			if (!isalpha(c)) {
				size_t len = zmalloc_getlen(tag);
				zrealloc(&tag, len + 1);
				tag[len] = c;
			} else {
				if (!strcmp(tag, TEX_TAG_BEGIN))
					where = IN_TAG_BEGIN_END;
				else
					where = IN_TAG_END;
			}

		break;

		case IN_TAG_PARAM:
			if ()

			if (!isspace(c) || c == '{')


			 else if (isspace(c)) {
			} else {
			}
		break;

		case IN_TAG_BEGIN_PARAM:
			if (isalpha(c)) {
			} else if (isspace(c)) {
			} else {
			}
		break;
		}
	}

	table->id = "Drossel1.Table1";

	error->message = NULL;

	return 0;
}