@@ -1949,13 +1949,16 @@ bool DocHtmlRow::isHeading() const
19491949
19501950static Token skipSpacesForTable (DocParser *parser)
19511951{
1952+ AUTO_TRACE ();
19521953 // get next token
19531954 Token tok=parser->tokenizer .lex ();
19541955 // skip whitespace and tbody, thead and tfoot tags
1955- while (tok.is_any_of (TokenRetval::TK_WHITESPACE,TokenRetval::TK_NEWPARA,TokenRetval::TK_HTMLTAG))
1956+ while (tok.is_any_of (TokenRetval::TK_WHITESPACE,TokenRetval::TK_NEWPARA,TokenRetval::TK_HTMLTAG,
1957+ TokenRetval::TK_COMMAND_AT,TokenRetval::TK_COMMAND_BS))
19561958 {
19571959 if (tok.is (TokenRetval::TK_HTMLTAG))
19581960 {
1961+ AUTO_TRACE_ADD (" html_tag={}" ,parse->context .token ->name );
19591962 HtmlTagType tagId=Mappers::htmlTagMapper->map (parser->context .token ->name );
19601963 // skip over tbody, thead, tfoot tags
19611964 if (tagId==HtmlTagType::HTML_TBODY ||
@@ -1969,15 +1972,41 @@ static Token skipSpacesForTable(DocParser *parser)
19691972 break ;
19701973 }
19711974 }
1975+ else if (tok.is (TokenRetval::TK_COMMAND_AT) || tok.is (TokenRetval::TK_COMMAND_BS))
1976+ {
1977+ QCString cmdName=parser->context .token ->name ;
1978+ AUTO_TRACE_ADD (" command={}" ,cmdName);
1979+ auto cmdType = Mappers::cmdMapper->map (cmdName);
1980+ if (cmdType==CommandType::CMD_ILINE)
1981+ {
1982+ parser->tokenizer .pushState ();
1983+ parser->tokenizer .setStateILine ();
1984+ tok = parser->tokenizer .lex ();
1985+ if (!tok.is (TokenRetval::TK_WORD))
1986+ {
1987+ warn_doc_error (parser->context .fileName ,parser->tokenizer .getLineNr ()," invalid argument for command '{:c}{}'" ,
1988+ tok.command_to_char (),cmdName);
1989+ }
1990+ parser->tokenizer .popState ();
1991+ tok = parser->tokenizer .lex ();
1992+ }
1993+ else
1994+ {
1995+ break ;
1996+ }
1997+ }
19721998 else
19731999 {
2000+ AUTO_TRACE_ADD (" skip whitespace" );
19742001 tok=parser->tokenizer .lex ();
19752002 }
19762003 }
19772004 return tok;
19782005}
19792006
19802007
2008+
2009+
19812010Token DocHtmlRow::parse ()
19822011{
19832012 AUTO_TRACE ();
@@ -2237,7 +2266,7 @@ Token DocHtmlTable::parse()
22372266 {
22382267 retval = Token::make_RetVal_EndTable ();
22392268 }
2240- else // found some other tag
2269+ else // found some other tag
22412270 {
22422271 warn_doc_error (parser ()->context .fileName ,parser ()->tokenizer .getLineNr ()," expected <tr> or </table> tag but "
22432272 " found token {} instead!" ,retval.to_string ());
0 commit comments