2010{
2012 Token retval = Token::make_RetVal_OK();
2014
2017 DocHtmlCell *cell=nullptr;
2018
2020
2021 if (tok.
is(TokenRetval::TK_HTMLTAG))
2022 {
2025 {
2026 }
2028 {
2030 }
2031 else
2032 {
2034 "found <{}{}> instead!",
parser()->context.token->endTag ?
"/" :
"",
parser()->context.token->name);
2036 goto endrow;
2037 }
2038 }
2039 else if (tok.
is_any_of(TokenRetval::TK_NONE,TokenRetval::TK_EOF))
2040 {
2042 " for a html description title");
2043 goto endrow;
2044 }
2045 else
2046 {
2047 warn_doc_error(
parser()->context.fileName,
parser()->tokenizer.getLineNr(),
"expected <td> or <th> tag but found {} token instead!",
2049 goto endrow;
2050 }
2051
2052
2053 do
2054 {
2061 retval=cell->
parse();
2062 isHeading = retval.
is(TokenRetval::RetVal_TableHCell);
2063
2064 if (retval.
is(TokenRetval::RetVal_EndTableCell))
2065 {
2066
2068
2070 if (tok.
is(TokenRetval::TK_HTMLTAG))
2071 {
2073 !
parser()->context.token->endTag)
2074 {
2075 retval = Token::make_RetVal_TableCell();
2077 }
2079 {
2080 if (
parser()->context.token->endTag)
2081 {
2082 retval = Token::make_RetVal_EndTableRow();
2083 }
2084 else
2085 {
2086 retval = Token::make_RetVal_TableRow();
2087 }
2088 }
2090 {
2091 retval = Token::make_RetVal_EndTable();
2092 }
2093 else
2094 {
2096 "found <{}{}> instead!",
parser()->context.token->endTag ?
"/" :
"",
parser()->context.token->name);
2098 goto endrow;
2099 }
2100 }
2101 else
2102 {
2103 warn_doc_error(
parser()->context.fileName,
parser()->tokenizer.getLineNr(),
"expected <td>, <th> or <tr> tag but found {} token instead!",
2105 goto endrow;
2106 }
2107 }
2108 }
2109 while (retval.
is_any_of(TokenRetval::RetVal_TableCell,TokenRetval::RetVal_TableHCell));
2111
2112endrow:
2113 return retval;
2114}
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,...