void elem_content(node, dummy)

- generate table information for a content model P_Node node; P_Element dummy;

void taglist(elem)

- generate table-entry for an element P_Element elem;

void generate_endlist(name)

- generate table for endtag omission String name;

Whether or not to omit endtags can only be decided at runtime. An endtag may be omitted when the input is an endtag of an open element. And also when a character or starttag input, is not part of the content model of the most recently open element (Standard section 7.3.1.2, page 22).

So at runtime information must be known about which elements are part of a certain content model. The information is stored in a table. The function generate_endlist() generates a table with as table-entries all the defined elements. The function taglist() generates one table-entry, containing information about whether or not the endtag may be omitted, which elements are part of the content model and are characters allowed as content. elem_content() generates a list of elements which are part of the content model of node. The number of elements on one rule does not exceed MAX_ELEM. The table is generated on ``taglist.i''.

gen_tagl.c gen_tagl.h