(yyvsp[0].term_definition));
;
break;}
case 67:
#line 618 "HTMLParser.y"
{ /* EXTENSION: Allow "flow" instead of "texts" */
delete yyvsp[-2].tag_attributes;
yyval.term_name = new TermName;
yyval.term_name->flow.reset(yyvsp[-1].element_list);
;
break;}
case 68:
#line 623 "HTMLParser.y"
{/* EXTENSION: Ignore after */
delete yyvsp[-4].tag_attributes;
delete yyvsp[-1].tag_attributes;
yyval.term_name = new TermName;
yyval.term_name->flow.reset(yyvsp[-3].element_list);
;
break;}
case 69:
#line 632 "HTMLParser.y"
{
delete yyvsp[-2].tag_attributes;
yyval.term_definition = new TermDefinition;
yyval.term_definition->flow.reset(yyvsp[-1].element_list);
;
break;}
case 70:
#line 637 "HTMLParser.y"
{/* EXTENSION: Ignore
after */
delete yyvsp[-4].tag_attributes;
delete yyvsp[-1].tag_attributes;
yyval.term_definition = new TermDefinition;
yyval.term_definition->flow.reset(yyvsp[-3].element_list);
;
break;}
case 71:
#line 646 "HTMLParser.y"
{
yyval.element_list = new list >;
yyval.element_list->push_back(auto_ptr(yyvsp[0].element));
;
break;}
case 72:
#line 650 "HTMLParser.y"
{
yyval.element_list = yyvsp[-1].element_list;
;
break;}
case 73:
#line 653 "HTMLParser.y"
{
(yyval.element_list = yyvsp[-1].element_list)->push_back(auto_ptr(yyvsp[0].element));
;
break;}
case 74:
#line 659 "HTMLParser.y"
{
yyval.element = yyvsp[0].element;
;
break;}
case 75:
#line 662 "HTMLParser.y"
{ /* EXTENSION: Allow headings in "flow", i.e. in lists */
yyval.element = yyvsp[0].heading;
;
break;}
case 76:
#line 665 "HTMLParser.y"
{
yyval.element = yyvsp[0].element;
;
break;}
case 77:
#line 671 "HTMLParser.y"
{
yyval.preformatted = new Preformatted;
yyval.preformatted->attributes.reset(yyvsp[-2].tag_attributes);
yyval.preformatted->texts.reset(yyvsp[-1].element_list);
;
break;}
case 78:
#line 679 "HTMLParser.y"
{
yyval.caption = new Caption;
yyval.caption->attributes.reset(yyvsp[-2].tag_attributes);
yyval.caption->texts.reset(yyvsp[-1].element_list);
;
break;}
case 79:
#line 687 "HTMLParser.y"
{
yyval.table_rows = new list >;
;
break;}
case 80:
#line 690 "HTMLParser.y"
{
yyval.table_rows = yyvsp[-1].table_rows;
;
break;}
case 81:
#line 693 "HTMLParser.y"
{
TableRow *tr = new TableRow;
tr->attributes.reset(yyvsp[-2].tag_attributes);
tr->cells.reset(yyvsp[-1].table_cells);
(yyval.table_rows = yyvsp[-3].table_rows)->push_back(auto_ptr(tr));
;
break;}
case 82:
#line 702 "HTMLParser.y"
{
yyval.table_cells = new list >;
;
break;}
case 83:
#line 705 "HTMLParser.y"
{
yyval.table_cells = yyvsp[-1].table_cells;
;
break;}
case 84:
#line 708 "HTMLParser.y"
{
TableCell *tc = new TableCell;
tc->attributes.reset(yyvsp[-2].tag_attributes);
tc->content.reset(yyvsp[-1].element_list);
(yyval.table_cells = yyvsp[-3].table_cells)->push_back(auto_ptr(tc));
;
break;}
case 85:
#line 714 "HTMLParser.y"
{
/* EXTENSION: Allow "" in place of "". */
TableHeadingCell *thc = new TableHeadingCell;
thc->attributes.reset(yyvsp[-3].tag_attributes);
thc->content.reset(yyvsp[-2].element_list);
(yyval.table_cells = yyvsp[-4].table_cells)->push_back(auto_ptr(thc));
;
break;}
case 86:
#line 721 "HTMLParser.y"
{ /* EXTENSION: Ignore between table cells. */
delete yyvsp[0].tag_attributes;
yyval.table_cells = yyvsp[-1].table_cells;
;
break;}
case 87:
#line 728 "HTMLParser.y"
{ /* Should be "address_content"... */
delete yyvsp[-2].tag_attributes;
yyval.address = new Address;
yyval.address->content.reset(yyvsp[-1].element_list);
;
break;}
case 88:
#line 738 "HTMLParser.y"
{
yyval.element_list = new list >;
yyval.element_list->push_back(auto_ptr(yyvsp[0].element));
;
break;}
case 89:
#line 742 "HTMLParser.y"
{
(yyval.element_list = yyvsp[-1].element_list)->push_back(auto_ptr(yyvsp[0].element));
;
break;}
case 90:
#line 748 "HTMLParser.y"
{ yyval.element = yyvsp[-1].pcdata; ;
break;}
case 91:
#line 749 "HTMLParser.y"
{ yyval.element = yyvsp[-1].element; ;
break;}
case 92:
#line 750 "HTMLParser.y"
{ yyval.element = yyvsp[-1].element; ;
break;}
case 93:
#line 751 "HTMLParser.y"
{ yyval.element = yyvsp[-1].element; ;
break;}
case 94:
#line 752 "HTMLParser.y"
{ yyval.element = yyvsp[-1].element; ;
break;}
case 95:
#line 753 "HTMLParser.y"
{ /* EXTENSION: NS 1.1 / IE 2.0 */
NoBreak *nb = new NoBreak;
delete yyvsp[-3].tag_attributes;
nb->content.reset(yyvsp[-2].element_list);
yyval.element = nb;
;
break;}
case 96:
#line 762 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(TT, yyvsp[-1].element_list); ;
break;}
case 97:
#line 763 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(I, yyvsp[-1].element_list); ;
break;}
case 98:
#line 764 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(B, yyvsp[-1].element_list); ;
break;}
case 99:
#line 765 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(U, yyvsp[-1].element_list); ;
break;}
case 100:
#line 766 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(STRIKE, yyvsp[-1].element_list); ;
break;}
case 101:
#line 767 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(BIG, yyvsp[-1].element_list); ;
break;}
case 102:
#line 768 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(SMALL, yyvsp[-1].element_list); ;
break;}
case 103:
#line 769 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(SUB, yyvsp[-1].element_list); ;
break;}
case 104:
#line 770 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Font(SUP, yyvsp[-1].element_list); ;
break;}
case 105:
#line 774 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(EM, yyvsp[-1].element_list); ;
break;}
case 106:
#line 775 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(STRONG, yyvsp[-1].element_list); ;
break;}
case 107:
#line 776 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(DFN, yyvsp[-1].element_list); ;
break;}
case 108:
#line 777 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(CODE, yyvsp[-1].element_list); ;
break;}
case 109:
#line 778 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(SAMP, yyvsp[-1].element_list); ;
break;}
case 110:
#line 779 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(KBD, yyvsp[-1].element_list); ;
break;}
case 111:
#line 780 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(VAR, yyvsp[-1].element_list); ;
break;}
case 112:
#line 781 "HTMLParser.y"
{ delete yyvsp[-2].tag_attributes; yyval.element = new Phrase(CITE, yyvsp[-1].element_list); ;
break;}
case 113:
#line 788 "HTMLParser.y"
{
delete yyvsp[-2].tag_attributes;
Anchor *a = new Anchor;
a->attributes.reset(yyvsp[-3].tag_attributes);
a->texts.reset(yyvsp[-1].element_list);
yyval.element = a;
;
break;}
case 114:
#line 795 "HTMLParser.y"
{
Image *i = new Image;
i->attributes.reset(yyvsp[0].tag_attributes);
yyval.element = i;
;
break;}
case 115:
#line 800 "HTMLParser.y"
{
Applet *a = new Applet;
a->attributes.reset(yyvsp[-2].tag_attributes);
a->content.reset(yyvsp[-1].element_list);
yyval.element = a;
;
break;}
case 116:
#line 808 "HTMLParser.y"
{
Font2 *f2 = new Font2;
f2->attributes.reset(yyvsp[-2].tag_attributes);
f2->elements.reset(yyvsp[-1].element_list);
yyval.element = f2;
;
break;}
case 117:
#line 814 "HTMLParser.y"
{
BaseFont *bf = new BaseFont;
bf->attributes.reset(yyvsp[0].tag_attributes);
yyval.element = bf;
;
break;}
case 118:
#line 819 "HTMLParser.y"
{
LineBreak *lb = new LineBreak;
lb->attributes.reset(yyvsp[0].tag_attributes);
yyval.element = lb;
;
break;}
case 119:
#line 824 "HTMLParser.y"
{
Map *m = new Map;
m->attributes.reset(yyvsp[-2].tag_attributes);
m->areas.reset(yyvsp[-1].tag_attributes_list);
yyval.element = m;
;
break;}
case 120:
#line 833 "HTMLParser.y"
{
yyval.element_list = 0;
;
break;}
case 121:
#line 836 "HTMLParser.y"
{
yyval.element_list = yyvsp[-1].element_list ? yyvsp[-1].element_list : new list >;
yyval.element_list->push_back(auto_ptr(yyvsp[0].element));
;
break;}
case 122:
#line 840 "HTMLParser.y"
{
yyval.element_list = yyvsp[-1].element_list ? yyvsp[-1].element_list : new list >;
Param *p = new Param;
p->attributes.reset(yyvsp[0].tag_attributes);
yyval.element_list->push_back(auto_ptr(p));
;
break;}
case 123:
#line 849 "HTMLParser.y"
{
yyval.tag_attributes_list = 0;
;
break;}
case 124:
#line 852 "HTMLParser.y"
{
yyval.tag_attributes_list = yyvsp[-1].tag_attributes_list;
;
break;}
case 125:
#line 855 "HTMLParser.y"
{
yyval.tag_attributes_list = yyvsp[-1].tag_attributes_list ? yyvsp[-1].tag_attributes_list : new list > >;
yyval.tag_attributes_list->push_back(auto_ptr >(yyvsp[0].tag_attributes));
;
break;}
case 126:
#line 862 "HTMLParser.y"
{
Input *i = new Input;
i->attributes.reset(yyvsp[0].tag_attributes);
yyval.element = i;
;
break;}
case 127:
#line 867 "HTMLParser.y"
{
Select *s = new Select;
s->attributes.reset(yyvsp[-2].tag_attributes);
s->content.reset(yyvsp[-1].option_list);
yyval.element = s;
;
break;}
case 128:
#line 873 "HTMLParser.y"
{
TextArea *ta = new TextArea;
ta->attributes.reset(yyvsp[-2].tag_attributes);
ta->pcdata.reset(yyvsp[-1].pcdata);
yyval.element = ta;
;
break;}
case 129:
#line 882 "HTMLParser.y"
{
yyval.option_list = new list >;
yyval.option_list->push_back(auto_ptr