2011{
2013 Token retval = Token::make_RetVal_OK();
2015
2018 DocHtmlCell *cell=nullptr;
2019
2021
2022 if (tok.
is(TokenRetval::TK_HTMLTAG))
2023 {
2026 {
2027 }
2029 {
2031 }
2032 else
2033 {
2035 "found <{}{}> instead!",
parser()->context.token->endTag ?
"/" :
"",
parser()->context.token->name);
2037 goto endrow;
2038 }
2039 }
2040 else if (tok.
is_any_of(TokenRetval::TK_NONE,TokenRetval::TK_EOF))
2041 {
2043 " for a html description title");
2044 goto endrow;
2045 }
2046 else
2047 {
2048 warn_doc_error(
parser()->context.fileName,
parser()->tokenizer.getLineNr(),
"expected <td> or <th> tag but found {} token instead!",
2050 goto endrow;
2051 }
2052
2053
2054 do
2055 {
2062 retval=cell->
parse();
2063 isHeading = retval.
is(TokenRetval::RetVal_TableHCell);
2064
2065 if (retval.
is(TokenRetval::RetVal_EndTableCell))
2066 {
2067
2069
2071 if (tok.
is(TokenRetval::TK_HTMLTAG))
2072 {
2074 !
parser()->context.token->endTag)
2075 {
2076 retval = Token::make_RetVal_TableCell();
2078 }
2080 {
2081 if (
parser()->context.token->endTag)
2082 {
2083 retval = Token::make_RetVal_EndTableRow();
2084 }
2085 else
2086 {
2087 retval = Token::make_RetVal_TableRow();
2088 }
2089 }
2091 {
2092 retval = Token::make_RetVal_EndTable();
2093 }
2094 else
2095 {
2097 "found <{}{}> instead!",
parser()->context.token->endTag ?
"/" :
"",
parser()->context.token->name);
2099 goto endrow;
2100 }
2101 }
2102 else
2103 {
2104 warn_doc_error(
parser()->context.fileName,
parser()->tokenizer.getLineNr(),
"expected <td>, <th> or <tr> tag but found {} token instead!",
2106 goto endrow;
2107 }
2108 }
2109 }
2110 while (retval.
is_any_of(TokenRetval::RetVal_TableCell,TokenRetval::RetVal_TableHCell));
2112
2113endrow:
2114 return retval;
2115}
void markLast(bool v=TRUE)
void markFirst(bool v=TRUE)
DocNodeVariant * thisVariant()
void pushBackHtmlTag(const QCString &tag)
bool is(TokenRetval rv) const
TOKEN_SPECIFICATIONS RETVAL_SPECIFICATIONS const char * to_string() const
bool is_any_of(ARGS... args) const
static Token skipSpacesForTable(DocParser *parser)
#define warn_doc_error(file, line, fmt,...)
const Mapper< HtmlTagType > * htmlTagMapper
void append(Args &&... args)
Append a new DocNodeVariant to the list by constructing it with type T and parameters Args.
T * get_last()
Returns a pointer to the last element in the list if that element exists and holds a T,...