private boolean parseRow()
		throws IOException
	{
		boolean continueParsing = false;

		HtmlTag tag = new HtmlTag();
		while (nextToken() != HtmlStreamTokenizer.TT_EOF)
		{
			int ttype = getTokenType();

			if (ttype == HtmlStreamTokenizer.TT_TAG)
			{
				try
				{
					m_tok.parseTag(getStringValue(), tag);
					int tagtype = tag.getTagType();
					boolean isEndTag = tag.isEndTag();

					if (tagtype == HtmlTag.T_TR)
					{
						if (!isEndTag)
							pushBackToken();
						// row ended, continue with next row
						continueParsing = true;
						break;
					}
					else if (tagtype == HtmlTag.T_TD || tagtype == HtmlTag.T_TH)
					{
						if (!isEndTag)
						{
							beginCell(tag);
							if (!parseCol())
							{
								endCell();
								continueParsing = false;
								break;
							}
							endCell();
						}
					}
				}
				catch (HtmlException e)
				{
				}
			}
		}

		return continueParsing;
	}