PreviousUpNext

15.4.812  src/lib/html/html.grammar.pkg


# Compiled by:
#     src/lib/html/html.lib

  generic package html_lr_vals_g (
    package token:  Token;
    package htmlattrs:  Html_Attributes; ) { 
package parser_data{
package header { 
# html.grammar
#
# COPYRIGHT (c) 1996 AT&T Research.
#
# This grammar parses HTML 3.2.  Note that it does not enforce exclusions
# (for the content of FORM, PRE, etc).  Exclusions should be enforced as
# a second pass over the parse tree.

package has =  html_abstract_syntax;                                                    # html_abstract_syntax                  is from   src/lib/html/html-abstract-syntax.pkg

fun text_list_fn [text] => text;
    text_list_fn l => has::TEXT_LIST l;
end;

fun block_list_fn [blk] => blk;
    block_list_fn l => has::BLOCK_LIST l;
end;

fun textablock l
    =
    has::TEXTABLOCK (text_list_fn l);
    
# The elements of a definition list (<DL>) are tags (<DT>) and items (<DD>).
# To avoid shift/reduce problems, we parse them and then group them.


Deflist_Item
  = DL_TAG  has::Text
  | DL_ITEM has::Block;

fun group_def_list_contents []
        =>
        [];

    group_def_list_contents (h ! t)
        =>
        {   fun gdlc (DL_TAG tag, [])
                    =>
                    (   { dt=> [tag], dd=>has::BLOCK_LIST [] },
                        []
                    );

                gdlc (DL_TAG tag, h ! t)
                    =>
                    {   my  ( { dt, dd }, r)
                            =
                            gdlc (h, t);

                        (   { dt => tag ! dt, dd },
                            r
                        );
                    };

                gdlc (DL_ITEM blk, r)
                    =>
                    (   { dt => [], dd => blk },
                        group_def_list_contents r
                    );
           end;


           (!) (gdlc (h, t));
        };
end;

# A list of Text, paragraphs and blocks requires grouping the Text items and
# making an implicit paragraph.  We cannot directly use TEXT_LIST because of
# conflicts. 


Blklist_Item
  = BL_TEXT  List( has::Text  )
  | BL_BLOCK List( has::Block );

fun cons_text_fn (txt, BL_TEXT tl ! r) =>   BL_TEXT (txt ! tl) ! r;
    cons_text_fn (txt, l)                =>   BL_TEXT [txt] ! l;
end;

fun cons_block_fn (blk, BL_BLOCK bl ! r) =>   BL_BLOCK (blk ! bl) ! r;
    cons_block_fn (blk, l)                 =>   BL_BLOCK [blk] ! l;
end;

fun make_block blks
    =
    {   fun f (BL_TEXT  tl) =>   textablock tl;
            f (BL_BLOCK bl) =>   block_list_fn bl;
        end; 

        block_list_fn (list::map f blks);
    };

fun make_body blks = has::BODY {
        background => NULL,
        bgcolor => NULL,
        text => NULL,
        link => NULL,
        vlink => NULL,
        alink => NULL,
        content => make_block blks
      };


};
package lr_table = token::lr_table;
package token = token;
stipulate include package   lr_table; herein 
my table={   action_rows =
"\
\\x01\x00\x01\x00\x00\x00\x00\x00\
\\x01\x00\x02\x00\x51\x00\x04\x00\x50\x00\x06\x00\x4f\x00\x09\x00\x4e\x00\
\\x0c\x00\x4d\x00\x0e\x00\x4c\x00\x10\x00\x4b\x00\x12\x00\x4a\x00\
\\x15\x00\x49\x00\x17\x00\x48\x00\x19\x00\x47\x00\x1d\x00\x46\x00\
\\x1f\x00\x45\x00\x21\x00\x44\x00\x23\x00\x43\x00\x27\x00\x42\x00\
\\x29\x00\x41\x00\x2b\x00\x40\x00\x2d\x00\x3f\x00\x2f\x00\x3e\x00\
\\x31\x00\x3d\x00\x33\x00\x3c\x00\x35\x00\x3b\x00\x37\x00\x3a\x00\
\\x39\x00\x39\x00\x3d\x00\x38\x00\x40\x00\x37\x00\x42\x00\x36\x00\
\\x43\x00\x35\x00\x45\x00\x34\x00\x4a\x00\x33\x00\x4c\x00\x32\x00\
\\x4f\x00\x31\x00\x53\x00\x30\x00\x55\x00\x2f\x00\x56\x00\x2e\x00\
\\x58\x00\x2d\x00\x5c\x00\x2c\x00\x5e\x00\x2b\x00\x60\x00\x2a\x00\
\\x62\x00\x29\x00\x66\x00\x28\x00\x68\x00\x27\x00\x6a\x00\x26\x00\
\\x6e\x00\x25\x00\x76\x00\x24\x00\x78\x00\x23\x00\x7a\x00\x22\x00\
\\x7c\x00\x21\x00\x7e\x00\x20\x00\x7f\x00\x1f\x00\x80\x00\x1e\x00\x00\x00\
\\x01\x00\x03\x00\xf1\x00\x00\x00\
\\x01\x00\x05\x00\xf0\x00\x00\x00\
\\x01\x00\x07\x00\xeb\x00\x00\x00\
\\x01\x00\x0a\x00\xea\x00\x00\x00\
\\x01\x00\x0d\x00\xe9\x00\x00\x00\
\\x01\x00\x0f\x00\xe8\x00\x00\x00\
\\x01\x00\x14\x00\x04\x01\x00\x00\
\\x01\x00\x16\x00\xe7\x00\x00\x00\
\\x01\x00\x18\x00\xe6\x00\x00\x00\
\\x01\x00\x1a\x00\xe5\x00\x00\x00\
\\x01\x00\x1e\x00\xe4\x00\x00\x00\
\\x01\x00\x20\x00\xe3\x00\x00\x00\
\\x01\x00\x22\x00\xe2\x00\x00\x00\
\\x01\x00\x24\x00\xdf\x00\x00\x00\
\\x01\x00\x28\x00\xdd\x00\x00\x00\
\\x01\x00\x2a\x00\xdc\x00\x00\x00\
\\x01\x00\x2c\x00\xdb\x00\x00\x00\
\\x01\x00\x2e\x00\xda\x00\x00\x00\
\\x01\x00\x30\x00\xd9\x00\x00\x00\
\\x01\x00\x32\x00\xd8\x00\x00\x00\
\\x01\x00\x34\x00\xd7\x00\x00\x00\
\\x01\x00\x36\x00\xd6\x00\x00\x00\
\\x01\x00\x38\x00\xd5\x00\x00\x00\
\\x01\x00\x3a\x00\xd4\x00\x00\x00\
\\x01\x00\x41\x00\xd3\x00\x00\x00\
\\x01\x00\x46\x00\xd2\x00\x00\x00\
\\x01\x00\x4b\x00\xd0\x00\x00\x00\
\\x01\x00\x4d\x00\xcf\x00\x00\x00\
\\x01\x00\x50\x00\xce\x00\x00\x00\
\\x01\x00\x57\x00\xcd\x00\x00\x00\
\\x01\x00\x59\x00\xcc\x00\x00\x00\
\\x01\x00\x5b\x00\xaa\x00\x00\x00\
\\x01\x00\x5b\x00\xf4\x00\x00\x00\
\\x01\x00\x5d\x00\xca\x00\x00\x00\
\\x01\x00\x5f\x00\xc9\x00\x00\x00\
\\x01\x00\x61\x00\xc8\x00\x00\x00\
\\x01\x00\x63\x00\xc7\x00\x00\x00\
\\x01\x00\x65\x00\xa9\x00\x00\x00\
\\x01\x00\x67\x00\xc6\x00\x00\x00\
\\x01\x00\x69\x00\xc5\x00\x00\x00\
\\x01\x00\x6b\x00\xff\x00\x00\x00\
\\x01\x00\x6c\x00\x03\x01\x70\x00\x02\x01\x00\x00\
\\x01\x00\x6f\x00\xc0\x00\x00\x00\
\\x01\x00\x72\x00\x53\x00\x00\x00\
\\x01\x00\x73\x00\xf2\x00\x00\x00\
\\x01\x00\x74\x00\xc3\x00\x00\x00\
\\x01\x00\x77\x00\xbf\x00\x00\x00\
\\x01\x00\x79\x00\xbe\x00\x00\x00\
\\x01\x00\x7b\x00\xb9\x00\x00\x00\
\\x01\x00\x7d\x00\xb7\x00\x00\x00\
\\x1d\x01\x00\x00\
\\x1e\x01\x3e\x00\x04\x00\x00\x00\
\\x1f\x01\x00\x00\
\\x20\x01\x3f\x00\x6d\x00\x00\x00\
\\x21\x01\x00\x00\
\\x22\x01\x00\x00\
\\x23\x01\x3b\x00\x07\x00\x00\x00\
\\x24\x01\x00\x00\
\\x25\x01\x3c\x00\x55\x00\x00\x00\
\\x26\x01\x00\x00\
\\x27\x01\x00\x00\
\\x28\x01\x0b\x00\x10\x00\x44\x00\x0f\x00\x49\x00\x0e\x00\x4e\x00\x0d\x00\
\\x5a\x00\x0c\x00\x64\x00\x0b\x00\x00\x00\
\\x29\x01\x00\x00\
\\x2a\x01\x00\x00\
\\x2b\x01\x00\x00\
\\x2c\x01\x00\x00\
\\x2d\x01\x00\x00\
\\x2e\x01\x00\x00\
\\x2f\x01\x00\x00\
\\x30\x01\x00\x00\
\\x31\x01\x11\x00\x6b\x00\x00\x00\
\\x32\x01\x00\x00\
\\x33\x01\x00\x00\
\\x34\x01\x00\x00\
\\x35\x01\x00\x00\
\\x36\x01\x00\x00\
\\x37\x01\x00\x00\
\\x38\x01\x00\x00\
\\x39\x01\x00\x00\
\\x3a\x01\x02\x00\x51\x00\x04\x00\x50\x00\x06\x00\x4f\x00\x09\x00\x4e\x00\
\\x0c\x00\x4d\x00\x0e\x00\x4c\x00\x12\x00\x4a\x00\x15\x00\x49\x00\
\\x17\x00\x48\x00\x19\x00\x47\x00\x1d\x00\x46\x00\x1f\x00\x45\x00\
\\x21\x00\x44\x00\x23\x00\x43\x00\x27\x00\x42\x00\x29\x00\x41\x00\
\\x2b\x00\x40\x00\x2d\x00\x3f\x00\x2f\x00\x3e\x00\x31\x00\x3d\x00\
\\x33\x00\x3c\x00\x35\x00\x3b\x00\x37\x00\x3a\x00\x39\x00\x39\x00\
\\x3d\x00\x38\x00\x40\x00\x37\x00\x42\x00\x36\x00\x43\x00\x35\x00\
\\x44\x00\x62\x00\x45\x00\x34\x00\x4a\x00\x33\x00\x4c\x00\x32\x00\
\\x4f\x00\x31\x00\x53\x00\x30\x00\x55\x00\x2f\x00\x56\x00\x2e\x00\
\\x58\x00\x2d\x00\x5a\x00\x61\x00\x5c\x00\x2c\x00\x5e\x00\x2b\x00\
\\x60\x00\x2a\x00\x62\x00\x29\x00\x66\x00\x28\x00\x68\x00\x27\x00\
\\x6a\x00\x26\x00\x6e\x00\x25\x00\x76\x00\x24\x00\x78\x00\x23\x00\
\\x7a\x00\x22\x00\x7c\x00\x21\x00\x7e\x00\x20\x00\x7f\x00\x1f\x00\
\\x80\x00\x1e\x00\x00\x00\
\\x3b\x01\x00\x00\
\\x3c\x01\x00\x00\
\\x3d\x01\x00\x00\
\\x3e\x01\x00\x00\
\\x3f\x01\x00\x00\
\\x40\x01\x04\x00\x50\x00\x0e\x00\x4c\x00\x15\x00\x49\x00\x1f\x00\x45\x00\
\\x21\x00\x44\x00\x23\x00\x43\x00\x2d\x00\x3f\x00\x2f\x00\x3e\x00\
\\x31\x00\x3d\x00\x33\x00\x3c\x00\x35\x00\x3b\x00\x37\x00\x3a\x00\
\\x39\x00\x39\x00\x3d\x00\x38\x00\x44\x00\x62\x00\x4c\x00\x32\x00\
\\x4f\x00\x31\x00\x53\x00\x30\x00\x54\x00\x67\x00\x56\x00\x2e\x00\
\\x6a\x00\x26\x00\x7a\x00\x22\x00\x00\x00\
\\x40\x01\x04\x00\x50\x00\x0e\x00\x4c\x00\x15\x00\x49\x00\x1f\x00\x45\x00\
\\x21\x00\x44\x00\x23\x00\x43\x00\x2d\x00\x3f\x00\x2f\x00\x3e\x00\
\\x31\x00\x3d\x00\x33\x00\x3c\x00\x35\x00\x3b\x00\x37\x00\x3a\x00\
\\x39\x00\x39\x00\x3d\x00\x38\x00\x44\x00\x62\x00\x4c\x00\x32\x00\
\\x4f\x00\x31\x00\x53\x00\x30\x00\x54\x00\xad\x00\x56\x00\x2e\x00\
\\x6a\x00\x26\x00\x7a\x00\x22\x00\x00\x00\
\\x40\x01\x04\x00\x50\x00\x0e\x00\x4c\x00\x15\x00\x49\x00\x1f\x00\x45\x00\
\\x21\x00\x44\x00\x23\x00\x43\x00\x2d\x00\x3f\x00\x2f\x00\x3e\x00\
\\x31\x00\x3d\x00\x33\x00\x3c\x00\x35\x00\x3b\x00\x37\x00\x3a\x00\
\\x39\x00\x39\x00\x3d\x00\x38\x00\x44\x00\x62\x00\x4c\x00\x32\x00\
\\x4f\x00\x31\x00\x53\x00\x30\x00\x54\x00\xb2\x00\x56\x00\x2e\x00\
\\x6a\x00\x26\x00\x7a\x00\x22\x00\x00\x00\
\\x41\x01\x00\x00\
\\x42\x01\x00\x00\
\\x43\x01\x00\x00\
\\x44\x01\x00\x00\
\\x45\x01\x00\x00\
\\x46\x01\x00\x00\
\\x47\x01\x00\x00\
\\x48\x01\x00\x00\
\\x49\x01\x00\x00\
\\x4a\x01\x00\x00\
\\x4b\x01\x00\x00\
\\x4c\x01\x02\x00\x51\x00\x06\x00\x4f\x00\x09\x00\x4e\x00\x0c\x00\x4d\x00\
\\x12\x00\x4a\x00\x17\x00\x48\x00\x19\x00\x47\x00\x1d\x00\x46\x00\
\\x27\x00\x42\x00\x29\x00\x41\x00\x2b\x00\x40\x00\x40\x00\x37\x00\
\\x42\x00\x36\x00\x43\x00\x35\x00\x45\x00\x34\x00\x4a\x00\x33\x00\
\\x53\x00\x30\x00\x55\x00\x2f\x00\x58\x00\x2d\x00\x5a\x00\x61\x00\
\\x5c\x00\x2c\x00\x5e\x00\x2b\x00\x60\x00\x2a\x00\x62\x00\x29\x00\
\\x66\x00\x28\x00\x68\x00\x27\x00\x6e\x00\x25\x00\x76\x00\x24\x00\
\\x78\x00\x23\x00\x7c\x00\x21\x00\x7e\x00\x20\x00\x7f\x00\x1f\x00\
\\x80\x00\x1e\x00\x00\x00\
\\x4d\x01\x00\x00\
\\x4e\x01\x00\x00\
\\x4f\x01\x00\x00\
\\x50\x01\x53\x00\x30\x00\x54\x00\xef\x00\x00\x00\
\\x50\x01\x53\x00\x30\x00\x54\x00\x0c\x01\x00\x00\
\\x51\x01\x00\x00\
\\x52\x01\x00\x00\
\\x53\x01\x00\x00\
\\x54\x01\x00\x00\
\\x55\x01\x00\x00\
\\x56\x01\x00\x00\
\\x57\x01\x00\x00\
\\x58\x01\x00\x00\
\\x59\x01\x00\x00\
\\x5a\x01\x00\x00\
\\x5b\x01\x00\x00\
\\x5c\x01\x00\x00\
\\x5d\x01\x00\x00\
\\x5e\x01\x00\x00\
\\x5f\x01\x00\x00\
\\x60\x01\x00\x00\
\\x61\x01\x00\x00\
\\x62\x01\x00\x00\
\\x63\x01\x47\x00\x73\x00\x00\x00\
\\x64\x01\x00\x00\
\\x65\x01\x00\x00\
\\x66\x01\x1b\x00\x97\x00\x25\x00\x96\x00\x00\x00\
\\x67\x01\x00\x00\
\\x68\x01\x00\x00\
\\x69\x01\x00\x00\
\\x6a\x01\x02\x00\x51\x00\x06\x00\x4f\x00\x09\x00\x4e\x00\x0c\x00\x4d\x00\
\\x0e\x00\x4c\x00\x12\x00\x4a\x00\x15\x00\x49\x00\x17\x00\x48\x00\
\\x19\x00\x47\x00\x1d\x00\x46\x00\x1f\x00\x45\x00\x21\x00\x44\x00\
\\x23\x00\x43\x00\x27\x00\x42\x00\x29\x00\x41\x00\x2b\x00\x40\x00\
\\x2d\x00\x3f\x00\x3d\x00\x38\x00\x40\x00\x37\x00\x42\x00\x36\x00\
\\x43\x00\x35\x00\x44\x00\x62\x00\x45\x00\x34\x00\x4a\x00\x33\x00\
\\x4c\x00\x32\x00\x4f\x00\x31\x00\x53\x00\x30\x00\x55\x00\x2f\x00\
\\x56\x00\x2e\x00\x58\x00\x2d\x00\x5a\x00\x61\x00\x5c\x00\x2c\x00\
\\x5e\x00\x2b\x00\x60\x00\x2a\x00\x62\x00\x29\x00\x66\x00\x28\x00\
\\x68\x00\x27\x00\x6a\x00\x26\x00\x6e\x00\x25\x00\x76\x00\x24\x00\
\\x78\x00\x23\x00\x7a\x00\x22\x00\x7c\x00\x21\x00\x7e\x00\x20\x00\
\\x7f\x00\x1f\x00\x80\x00\x1e\x00\x00\x00\
\\x6b\x01\x00\x00\
\\x6c\x01\x00\x00\
\\x6d\x01\x00\x00\
\\x6e\x01\x00\x00\
\\x6f\x01\x0e\x00\x4c\x00\x15\x00\x49\x00\x1f\x00\x45\x00\x21\x00\x44\x00\
\\x23\x00\x43\x00\x2d\x00\x3f\x00\x3d\x00\x38\x00\x44\x00\x62\x00\
\\x4c\x00\x32\x00\x4f\x00\x31\x00\x53\x00\x30\x00\x54\x00\xfc\x00\
\\x56\x00\x2e\x00\x6a\x00\x26\x00\x7a\x00\x22\x00\x00\x00\
\\x6f\x01\x0e\x00\x4c\x00\x15\x00\x49\x00\x1f\x00\x45\x00\x21\x00\x44\x00\
\\x23\x00\x43\x00\x2d\x00\x3f\x00\x3d\x00\x38\x00\x44\x00\x62\x00\
\\x4c\x00\x32\x00\x4f\x00\x31\x00\x53\x00\x30\x00\x54\x00\x10\x01\
\\x56\x00\x2e\x00\x6a\x00\x26\x00\x7a\x00\x22\x00\x00\x00\
\\x70\x01\x00\x00\
\\x71\x01\x00\x00\
\\x72\x01\x00\x00\
\\x73\x01\x48\x00\xf8\x00\x00\x00\
\\x74\x01\x00\x00\
\\x75\x01\x26\x00\x08\x01\x00\x00\
\\x76\x01\x00\x00\
\\x77\x01\x1c\x00\x0a\x01\x00\x00\
\\x78\x01\x00\x00\
\\x79\x01\x00\x00\
\\x7a\x01\x13\x00\x78\x00\x00\x00\
\\x7b\x01\x00\x00\
\\x7c\x01\x74\x00\xc3\x00\x00\x00\
\\x7d\x01\x00\x00\
\\x7e\x01\x75\x00\x14\x01\x00\x00\
\\x7f\x01\x00\x00\
\\x80\x01\x6c\x00\x03\x01\x70\x00\x02\x01\x00\x00\
\\x81\x01\x00\x00\
\\x82\x01\x00\x00\
\\x83\x01\x71\x00\x1a\x01\x00\x00\
\\x84\x01\x00\x00\
\\x85\x01\x6d\x00\x1b\x01\x00\x00\
\\x86\x01\x00\x00\
\\x87\x01\x02\x00\x51\x00\x06\x00\x4f\x00\x09\x00\x4e\x00\x0c\x00\x4d\x00\
\\x12\x00\x4a\x00\x17\x00\x48\x00\x19\x00\x47\x00\x1d\x00\x46\x00\
\\x27\x00\x42\x00\x29\x00\x41\x00\x2b\x00\x40\x00\x40\x00\x37\x00\
\\x42\x00\x36\x00\x43\x00\x35\x00\x45\x00\x34\x00\x4a\x00\x33\x00\
\\x55\x00\x2f\x00\x58\x00\x2d\x00\x5a\x00\x61\x00\x5c\x00\x2c\x00\
\\x5e\x00\x2b\x00\x60\x00\x2a\x00\x62\x00\x29\x00\x66\x00\x28\x00\
\\x68\x00\x27\x00\x6e\x00\x25\x00\x76\x00\x24\x00\x78\x00\x23\x00\
\\x7c\x00\x21\x00\x7e\x00\x20\x00\x7f\x00\x1f\x00\x80\x00\x1e\x00\x00\x00\
\\x88\x01\x00\x00\
\\x89\x01\x00\x00\
\\x8a\x01\x00\x00\
\\x8b\x01\x00\x00\
\\x8c\x01\x00\x00\
\\x8d\x01\x00\x00\
\\x8e\x01\x00\x00\
\\x8f\x01\x00\x00\
\\x90\x01\x00\x00\
\\x91\x01\x00\x00\
\\x92\x01\x00\x00\
\\x93\x01\x00\x00\
\\x94\x01\x00\x00\
\\x95\x01\x00\x00\
\\x96\x01\x00\x00\
\\x97\x01\x00\x00\
\\x98\x01\x00\x00\
\\x99\x01\x00\x00\
\\x9a\x01\x00\x00\
\\x9b\x01\x00\x00\
\\x9c\x01\x00\x00\
\\x9d\x01\x00\x00\
\\x9e\x01\x00\x00\
\\x9f\x01\x00\x00\
\\xa0\x01\x00\x00\
\\xa1\x01\x00\x00\
\\xa2\x01\x00\x00\
\\xa3\x01\x00\x00\
\\xa4\x01\x00\x00\
\\xa5\x01\x00\x00\
\\xa6\x01\x00\x00\
\\xa7\x01\x00\x00\
\\xa8\x01\x00\x00\
\\xa9\x01\x08\x00\x86\x00\x00\x00\
\\xaa\x01\x00\x00\
\\xab\x01\x00\x00\
\\xac\x01\x00\x00\
\\xad\x01\x00\x00\
\\xae\x01\x51\x00\x7f\x00\x00\x00\
\\xaf\x01\x00\x00\
\\xb0\x01\x52\x00\x06\x01\x00\x00\
\\xb1\x01\x00\x00\
\\xb2\x01\x00\x00\
\\xb3\x01\x7e\x00\x20\x00\x7f\x00\x1f\x00\x80\x00\x1e\x00\x00\x00\
\\xb4\x01\x00\x00\
\\xb5\x01\x00\x00\
\\xb6\x01\x00\x00\
\\xb7\x01\x00\x00\
\";
    action_row_numbers =
"\x35\x00\x3a\x00\x36\x00\x3f\x00\
\\x01\x00\x3b\x00\x3f\x00\x2d\x00\
\\x3c\x00\xce\x00\xce\x00\x41\x00\
\\x42\x00\x43\x00\x44\x00\xa4\x00\
\\xa8\x00\xa7\x00\xa6\x00\xa5\x00\
\\x51\x00\x6e\x00\x6d\x00\x57\x00\
\\x51\x00\x51\x00\x48\x00\x37\x00\
\\xd2\x00\xd1\x00\xd0\x00\xa2\x00\
\\x7d\x00\xa2\x00\xa2\x00\xce\x00\
\\x95\x00\xa2\x00\xa2\x00\xa2\x00\
\\xa2\x00\xa2\x00\xc9\x00\xa2\x00\
\\xa2\x00\xc3\x00\xa2\x00\x7d\x00\
\\x7d\x00\xc4\x00\xa2\x00\xc6\x00\
\\xbd\x00\xa2\x00\x73\x00\xa2\x00\
\\xa2\x00\xa2\x00\xa2\x00\xa2\x00\
\\xa2\x00\x51\x00\xa2\x00\xa2\x00\
\\xa2\x00\x80\x00\x51\x00\x7d\x00\
\\xa2\x00\xa2\x00\xa2\x00\x51\x00\
\\xc1\x00\x51\x00\x51\x00\xa2\x00\
\\xa2\x00\xa2\x00\x65\x00\xa2\x00\
\\x40\x00\xce\x00\x39\x00\x3d\x00\
\\xce\x00\xcd\x00\x27\x00\x21\x00\
\\x51\x00\xa9\x00\x58\x00\x51\x00\
\\x75\x00\x51\x00\x4c\x00\xce\x00\
\\x76\x00\x59\x00\x51\x00\x51\x00\
\\x50\x00\x51\x00\x4e\x00\x4d\x00\
\\x47\x00\x49\x00\x34\x00\x38\x00\
\\xa2\x00\xa1\x00\x33\x00\x7d\x00\
\\x32\x00\x84\x00\x31\x00\x30\x00\
\\x2c\x00\x2f\x00\xa2\x00\x29\x00\
\\x28\x00\x26\x00\x25\x00\x24\x00\
\\x23\x00\xce\x00\x20\x00\x1f\x00\
\\x77\x00\x1e\x00\x1d\x00\x1c\x00\
\\xc4\x00\x1b\x00\x1a\x00\x19\x00\
\\x18\x00\x17\x00\x16\x00\x15\x00\
\\x14\x00\x4a\x00\x13\x00\x12\x00\
\\x11\x00\x10\x00\x80\x00\x0f\x00\
\\xa2\x00\x84\x00\x0e\x00\x0d\x00\
\\x0c\x00\x0b\x00\x0a\x00\x09\x00\
\\x4b\x00\x07\x00\x06\x00\x05\x00\
\\x04\x00\x65\x00\x69\x00\x03\x00\
\\x02\x00\x2e\x00\xcf\x00\x45\x00\
\\x46\x00\x52\x00\x56\x00\x51\x00\
\\x54\x00\x53\x00\x22\x00\x5d\x00\
\\x51\x00\x5b\x00\x5a\x00\x4f\x00\
\\xa3\x00\xba\x00\x7e\x00\x78\x00\
\\x84\x00\x8e\x00\x89\x00\x84\x00\
\\xae\x00\xab\x00\xc8\x00\x97\x00\
\\x2a\x00\x2b\x00\x08\x00\xb3\x00\
\\xb2\x00\xb5\x00\xaf\x00\xb1\x00\
\\xc7\x00\xcb\x00\xb8\x00\x94\x00\
\\x79\x00\x7b\x00\xc2\x00\xc5\x00\
\\xb9\x00\xac\x00\x63\x00\x62\x00\
\\x61\x00\x60\x00\x5f\x00\x5e\x00\
\\x72\x00\xc0\x00\xbf\x00\xb4\x00\
\\x81\x00\x7c\x00\x90\x00\x92\x00\
\\x6f\x00\x7a\x00\xb7\x00\xb6\x00\
\\xbb\x00\x70\x00\x71\x00\xb0\x00\
\\xad\x00\xbe\x00\x66\x00\x6a\x00\
\\x68\x00\x65\x00\x64\x00\xbc\x00\
\\x3f\x00\x55\x00\xaa\x00\x5c\x00\
\\x85\x00\x7f\x00\x8f\x00\x88\x00\
\\x8a\x00\x84\x00\x84\x00\x86\x00\
\\x98\x00\x74\x00\x9b\x00\x99\x00\
\\x51\x00\x51\x00\x96\x00\xc9\x00\
\\xcc\x00\x82\x00\x91\x00\x83\x00\
\\x93\x00\x6c\x00\x65\x00\x67\x00\
\\x3e\x00\x8d\x00\x84\x00\x8b\x00\
\\x87\x00\x9c\x00\x9a\x00\x9e\x00\
\\xa0\x00\xca\x00\x6b\x00\x8c\x00\
\\x9d\x00\x9f\x00\x00\x00";
   goto_table =
"\
\\x01\x00\x1a\x01\x02\x00\x01\x00\x00\x00\
\\x04\x00\x04\x00\x05\x00\x03\x00\x00\x00\
\\x00\x00\
\\x07\x00\x08\x00\x08\x00\x07\x00\x09\x00\x06\x00\x00\x00\
\\x0a\x00\x1b\x00\x0e\x00\x1a\x00\x11\x00\x19\x00\x14\x00\x18\x00\
\\x16\x00\x17\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x14\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x08\x00\x50\x00\x09\x00\x06\x00\x00\x00\
\\x00\x00\
\\x06\x00\x52\x00\x00\x00\
\\x32\x00\x56\x00\x33\x00\x55\x00\x34\x00\x54\x00\x00\x00\
\\x32\x00\x57\x00\x33\x00\x55\x00\x34\x00\x54\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0f\x00\x5e\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x10\x00\x64\x00\x11\x00\x63\x00\x14\x00\x5c\x00\x15\x00\x62\x00\
\\x16\x00\x61\x00\x17\x00\x16\x00\x21\x00\x15\x00\x00\x00\
\\x0f\x00\x66\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x0f\x00\x67\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x0c\x00\x68\x00\x00\x00\
\\x03\x00\x6a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x27\x00\x6e\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x18\x00\x70\x00\x19\x00\x6f\x00\x00\x00\
\\x27\x00\x72\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x73\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x32\x00\x74\x00\x33\x00\x55\x00\x34\x00\x54\x00\x00\x00\
\\x22\x00\x75\x00\x00\x00\
\\x27\x00\x77\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x78\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x79\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x7a\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x7b\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x30\x00\x7c\x00\x00\x00\
\\x27\x00\x7e\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x7f\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x27\x00\x80\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x18\x00\x81\x00\x19\x00\x6f\x00\x00\x00\
\\x18\x00\x82\x00\x19\x00\x6f\x00\x00\x00\
\\x2e\x00\x83\x00\x00\x00\
\\x27\x00\x85\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x27\x00\x86\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x27\x00\x87\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x88\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x89\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x8a\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x8b\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x8c\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x0d\x00\x8e\x00\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x8f\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x90\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x91\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x1a\x00\x93\x00\x1b\x00\x92\x00\x00\x00\
\\x0d\x00\x96\x00\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x18\x00\x97\x00\x19\x00\x6f\x00\x00\x00\
\\x27\x00\x98\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x99\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x9a\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x0d\x00\x9b\x00\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x0d\x00\x9c\x00\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x0d\x00\x9d\x00\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x9e\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\x9f\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\xa0\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x12\x00\xa3\x00\x16\x00\xa2\x00\x29\x00\x59\x00\x2a\x00\xa1\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x27\x00\xa4\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x32\x00\xa5\x00\x33\x00\x55\x00\x34\x00\x54\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x33\x00\xa6\x00\x34\x00\x54\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0f\x00\xa9\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x10\x00\xaa\x00\x11\x00\x63\x00\x14\x00\x5c\x00\x15\x00\x62\x00\
\\x16\x00\x61\x00\x17\x00\x16\x00\x21\x00\x15\x00\x00\x00\
\\x0f\x00\xac\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x0f\x00\xad\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x32\x00\xae\x00\x33\x00\x55\x00\x34\x00\x54\x00\x00\x00\
\\x00\x00\
\\x10\x00\xaf\x00\x11\x00\x63\x00\x14\x00\x5c\x00\x15\x00\x62\x00\
\\x16\x00\x61\x00\x17\x00\x16\x00\x21\x00\x15\x00\x00\x00\
\\x0f\x00\xb1\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x0f\x00\xb2\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x0f\x00\xb3\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x28\x00\xb4\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\x2b\x00\x13\x00\
\\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x18\x00\xb6\x00\x19\x00\x6f\x00\x00\x00\
\\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\xb9\x00\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x23\x00\xc0\x00\x24\x00\xbf\x00\x00\x00\
\\x27\x00\xc2\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x32\x00\xc9\x00\x33\x00\x55\x00\x34\x00\x54\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x2e\x00\xcf\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1a\x00\xdc\x00\x1b\x00\x92\x00\x00\x00\
\\x00\x00\
\\x27\x00\xde\x00\x28\x00\x6d\x00\x29\x00\x59\x00\x2a\x00\x6c\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\xdf\x00\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x12\x00\xea\x00\x16\x00\xa2\x00\x29\x00\x59\x00\x2a\x00\xa1\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x13\x00\xec\x00\x16\x00\xeb\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0f\x00\xf1\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0f\x00\xf3\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\x15\x00\x5b\x00\
\\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\x29\x00\x59\x00\
\\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\
\\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\xf4\x00\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x1e\x00\xf5\x00\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xf9\x00\x16\x00\xf8\x00\x17\x00\x16\x00\
\\x1d\x00\xf7\x00\x21\x00\x15\x00\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\xfb\x00\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x23\x00\xfc\x00\x24\x00\xbf\x00\x00\x00\
\\x00\x00\
\\x25\x00\xff\x00\x26\x00\xfe\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x31\x00\x03\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1f\x00\x05\x01\x00\x00\
\\x20\x00\x07\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x13\x00\x09\x01\x16\x00\xeb\x00\x00\x00\
\\x00\x00\
\\x12\x00\x0b\x01\x16\x00\xa2\x00\x29\x00\x59\x00\x2a\x00\xa1\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x08\x00\x0c\x01\x09\x00\x06\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xf9\x00\x16\x00\xf8\x00\x17\x00\x16\x00\
\\x1d\x00\x0d\x01\x21\x00\x15\x00\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\x0f\x01\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\x10\x01\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x25\x00\x11\x01\x26\x00\xfe\x00\x00\x00\
\\x00\x00\
\\x0d\x00\x13\x01\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x0d\x00\x14\x01\x0f\x00\x8d\x00\x11\x00\x5d\x00\x14\x00\x5c\x00\
\\x15\x00\x5b\x00\x16\x00\x5a\x00\x17\x00\x16\x00\x21\x00\x15\x00\
\\x29\x00\x59\x00\x2a\x00\x58\x00\x2b\x00\x13\x00\x2c\x00\x12\x00\
\\x2d\x00\x11\x00\x2f\x00\x10\x00\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x30\x00\x15\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x12\x00\x16\x01\x16\x00\xa2\x00\x29\x00\x59\x00\x2a\x00\xa1\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x14\x00\x5c\x00\x15\x00\xbb\x00\x16\x00\xba\x00\x17\x00\x16\x00\
\\x1c\x00\x17\x01\x21\x00\x15\x00\x29\x00\x59\x00\x2a\x00\xb8\x00\
\\x2b\x00\x13\x00\x2c\x00\x12\x00\x2d\x00\x11\x00\x2f\x00\x10\x00\
\\x34\x00\x0f\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\";
   numstates = 283;
   numrules = 155;
 s = REF "";  index = REF 0;
    string_to_int = \\ () = 
    {    i = *index;
         index := i+2;
         char::to_int (string::get_byte_as_char(*s, i)) + char::to_int (string::get_byte_as_char(*s, i+1)) * 256;
    };

    string_to_list = \\ s' =
    {   len = string::length_in_bytes s';
        fun f () =
           if (*index < len)
           string_to_int() ! f();
           else NIL; fi;
        index := 0;
        s := s';
        f ();
   };

   string_to_pairlist =   \\ (conv_key, conv_entry) =   f
   where 
         fun f ()
             =
             case (string_to_int ())
                 0 => EMPTY;
                 n => PAIR (conv_key (n - 1), conv_entry (string_to_int()), f());
             esac;
   end;

   string_to_pairlist_default =   \\ (conv_key, conv_entry) =
    {   conv_row = string_to_pairlist (conv_key, conv_entry);
       \\ () =
       {   default = conv_entry (string_to_int());
           row = conv_row();
          (row, default);
       };
   };

    string_to_table = \\ (convert_row, s') =
    {   len = string::length_in_bytes s';
        fun f ()
            =
           if (*index < len)
              convert_row() ! f();
           else NIL; fi;
        s := s';
        index := 0;
        f ();
     };

stipulate
  memo = rw_vector::make_rw_vector (numstates+numrules, ERROR);
  my _ ={   fun g i
                =
                {   rw_vector::set (memo, i, REDUCE (i-numstates));
                    g (i+1);
                };

            fun f i
                =
                if   (i == numstates)
                     g i;
                else    rw_vector::set (memo, i, SHIFT (STATE i));
                         f (i+1);
                fi;

            f 0
            except
                INDEX_OUT_OF_BOUNDS =  ();
        };
herein
    entry_to_action
        =
        \\ 0 =>  ACCEPT;
           1 =>  ERROR;
           j =>  rw_vector::get (memo, (j - 2));
        end;
end;

   goto_table = rw_vector::from_list (string_to_table (string_to_pairlist (NONTERM, STATE), goto_table));
   action_rows = string_to_table (string_to_pairlist_default (TERM, entry_to_action), action_rows);
   action_row_numbers = string_to_list action_row_numbers;
   action_table
    =
    {   action_row_lookup
            =
            {   a=rw_vector::from_list (action_rows);

                \\ i =   rw_vector::get (a, i);
            };

        rw_vector::from_list (map action_row_lookup action_row_numbers);
    };

    lr_table::make_lr_table {
        actions => action_table,
        gotos   => goto_table,
        rule_count   => numrules,
        state_count  => numstates,
        initial_state => STATE 0   };
};
end;
stipulate include package   header; herein
Source_Position = Int;
Arg = Int -> htmlattrs::Context;
package values { 
Semantic_Value = TM_VOID | NT_VOID  Void | ENTITY_REF  (String) | CHAR_REF  (String) | PCDATA  (String) | START_UL  (htmlattr_vals::Attributes) | START_TR  (htmlattr_vals::Attributes)
 | START_TH  (htmlattr_vals::Attributes) | START_TEXTAREA  (htmlattr_vals::Attributes) | START_TD  (htmlattr_vals::Attributes) | START_TABLE  (htmlattr_vals::Attributes)
 | START_SELECT  (htmlattr_vals::Attributes) | START_PRE  (htmlattr_vals::Attributes) | TAG_PARAM  (htmlattr_vals::Attributes) | START_P  (htmlattr_vals::Attributes)
 | START_OPTION  (htmlattr_vals::Attributes) | START_OL  (htmlattr_vals::Attributes) | TAG_META  (htmlattr_vals::Attributes) | START_MENU  (htmlattr_vals::Attributes)
 | START_MAP  (htmlattr_vals::Attributes) | TAG_LINK  (htmlattr_vals::Attributes) | START_LI  (htmlattr_vals::Attributes) | TAG_ISINDEX  (htmlattr_vals::Attributes)
 | TAG_INPUT  (htmlattr_vals::Attributes) | TAG_IMG  (htmlattr_vals::Attributes) | TAG_HR  (htmlattr_vals::Attributes) | START_H6  (htmlattr_vals::Attributes) | START_H5  (htmlattr_vals::Attributes)
 | START_H4  (htmlattr_vals::Attributes) | START_H3  (htmlattr_vals::Attributes) | START_H2  (htmlattr_vals::Attributes) | START_H1  (htmlattr_vals::Attributes)
 | START_FORM  (htmlattr_vals::Attributes) | START_BASEFONT  (htmlattr_vals::Attributes) | START_FONT  (htmlattr_vals::Attributes) | START_DL  (htmlattr_vals::Attributes)
 | START_DIV  (htmlattr_vals::Attributes) | START_DIR  (htmlattr_vals::Attributes) | START_CAPTION  (htmlattr_vals::Attributes) | TAG_BR  (htmlattr_vals::Attributes)
 | START_BODY  (htmlattr_vals::Attributes) | TAG_BASE  (htmlattr_vals::Attributes) | TAG_AREA  (htmlattr_vals::Attributes) | START_APPLET  (htmlattr_vals::Attributes)
 | START_A  (htmlattr_vals::Attributes) | QQ_PCDATAELEM  (has::Pcdata) | QQ_PCDATALIST  (List has::Pcdata ) | QQ_PCDATA  (has::Pcdata) | QQ_OPTIONLIST  (List has::Select_Option )
 | QQ_FORM  (has::Text) | QQ_AREALIST  (List has::Area ) | QQ_SPECIAL  (has::Text) | QQ_PHRASE  (has::Text) | QQ_FONT  (has::Text) | QQ_TEXT  (has::Text) | QQ_TEXTWOSCRIPT  (has::Text)
 | QQ_TEXTLIST'  (List has::Text ) | QQ_TEXTLIST  (has::Text) | QQ_TABLECELL  (has::Table_Cell) | QQ_TABLECELLLIST  (List has::Table_Cell ) | QQ_TABLEROW  (has::Tr) | QQ_TABLEROWLIST  (List has::Tr )
 | QQ_OPTCAPTION  (Null_Or has::Caption ) | QQ_PREFORMATTED  (has::Block) | QQ_FLOW2  (List Blklist_Item ) | QQ_FLOW1  (List Blklist_Item ) | QQ_DLITEM  (Deflist_Item)
 | QQ_DLITEMLIST  (List Deflist_Item ) | QQ_LISTITEM  (has::List_Item) | QQ_LISTITEMLIST  (List has::List_Item ) | QQ_LIST  (has::Block) | QQ_PARAGRAPH  (has::Block) | QQ_BLOCK  (has::Block)
 | QQ_BLOCKWOINDEX  (has::Block) | QQ_ADDRESSCONTENT2  (List Blklist_Item ) | QQ_ADDRESSCONTENT1  (List Blklist_Item ) | QQ_BODYELEMENT  (has::Block) | QQ_BODYCONTENT2  (List Blklist_Item )
 | QQ_BODYCONTENT1  (List Blklist_Item ) | QQ_BODYCONTENT0  (has::Body) | QQ_BODYCONTENT  (has::Block) | QQ_BODY  (has::Body) | QQ_HEADELEMENT  (has::Head_Content)
 | QQ_HEADELEMENTS  (List has::Head_Content ) | QQ_HEADCONTENTS  (List has::Head_Content ) | QQ_HEAD  (List has::Head_Content ) | QQ_STARTHTML  (Null_Or has::Cdata ) | QQ_DOCUMENT  (has::Html);
};
Semantic_Value = values::Semantic_Value;
Result = has::Html;
end;
package error_recovery{
include package lr_table;
infix my 60 @@;
fun x @@ y = y ! x;
is_keyword =
\\ _ => FALSE; end;
my preferred_change:   List( (List( Terminal ), List( Terminal )) ) = 
NIL;
no_shift = 
\\ (TERM 0) => TRUE; _ => FALSE; end;
show_terminal =
\\ (TERM 0) => "EOF"
; (TERM 1) => "START_A"
; (TERM 2) => "END_A"
; (TERM 3) => "START_ADDRESS"
; (TERM 4) => "END_ADDRESS"
; (TERM 5) => "START_APPLET"
; (TERM 6) => "END_APPLET"
; (TERM 7) => "TAG_AREA"
; (TERM 8) => "START_B"
; (TERM 9) => "END_B"
; (TERM 10) => "TAG_BASE"
; (TERM 11) => "START_BIG"
; (TERM 12) => "END_BIG"
; (TERM 13) => "START_BLOCKQUOTE"
; (TERM 14) => "END_BLOCKQUOTE"
; (TERM 15) => "START_BODY"
; (TERM 16) => "END_BODY"
; (TERM 17) => "TAG_BR"
; (TERM 18) => "START_CAPTION"
; (TERM 19) => "END_CAPTION"
; (TERM 20) => "START_CENTER"
; (TERM 21) => "END_CENTER"
; (TERM 22) => "START_CITE"
; (TERM 23) => "END_CITE"
; (TERM 24) => "START_CODE"
; (TERM 25) => "END_CODE"
; (TERM 26) => "START_DD"
; (TERM 27) => "END_DD"
; (TERM 28) => "START_DFN"
; (TERM 29) => "END_DFN"
; (TERM 30) => "START_DIR"
; (TERM 31) => "END_DIR"
; (TERM 32) => "START_DIV"
; (TERM 33) => "END_DIV"
; (TERM 34) => "START_DL"
; (TERM 35) => "END_DL"
; (TERM 36) => "START_DT"
; (TERM 37) => "END_DT"
; (TERM 38) => "START_EM"
; (TERM 39) => "END_EM"
; (TERM 40) => "START_FONT"
; (TERM 41) => "END_FONT"
; (TERM 42) => "START_BASEFONT"
; (TERM 43) => "END_BASEFONT"
; (TERM 44) => "START_FORM"
; (TERM 45) => "END_FORM"
; (TERM 46) => "START_H1"
; (TERM 47) => "END_H1"
; (TERM 48) => "START_H2"
; (TERM 49) => "END_H2"
; (TERM 50) => "START_H3"
; (TERM 51) => "END_H3"
; (TERM 52) => "START_H4"
; (TERM 53) => "END_H4"
; (TERM 54) => "START_H5"
; (TERM 55) => "END_H5"
; (TERM 56) => "START_H6"
; (TERM 57) => "END_H6"
; (TERM 58) => "START_HEAD"
; (TERM 59) => "END_HEAD"
; (TERM 60) => "TAG_HR"
; (TERM 61) => "START_HTML"
; (TERM 62) => "END_HTML"
; (TERM 63) => "START_I"
; (TERM 64) => "END_I"
; (TERM 65) => "TAG_IMG"
; (TERM 66) => "TAG_INPUT"
; (TERM 67) => "TAG_ISINDEX"
; (TERM 68) => "START_KBD"
; (TERM 69) => "END_KBD"
; (TERM 70) => "START_LI"
; (TERM 71) => "END_LI"
; (TERM 72) => "TAG_LINK"
; (TERM 73) => "START_MAP"
; (TERM 74) => "END_MAP"
; (TERM 75) => "START_MENU"
; (TERM 76) => "END_MENU"
; (TERM 77) => "TAG_META"
; (TERM 78) => "START_OL"
; (TERM 79) => "END_OL"
; (TERM 80) => "START_OPTION"
; (TERM 81) => "END_OPTION"
; (TERM 82) => "START_P"
; (TERM 83) => "END_P"
; (TERM 84) => "TAG_PARAM"
; (TERM 85) => "START_PRE"
; (TERM 86) => "END_PRE"
; (TERM 87) => "START_SAMP"
; (TERM 88) => "END_SAMP"
; (TERM 89) => "START_SCRIPT"
; (TERM 90) => "END_SCRIPT"
; (TERM 91) => "START_SELECT"
; (TERM 92) => "END_SELECT"
; (TERM 93) => "START_SMALL"
; (TERM 94) => "END_SMALL"
; (TERM 95) => "START_STRIKE"
; (TERM 96) => "END_STRIKE"
; (TERM 97) => "START_STRONG"
; (TERM 98) => "END_STRONG"
; (TERM 99) => "START_STYLE"
; (TERM 100) => "END_STYLE"
; (TERM 101) => "START_SUB"
; (TERM 102) => "END_SUB"
; (TERM 103) => "START_SUP"
; (TERM 104) => "END_SUP"
; (TERM 105) => "START_TABLE"
; (TERM 106) => "END_TABLE"
; (TERM 107) => "START_TD"
; (TERM 108) => "END_TD"
; (TERM 109) => "START_TEXTAREA"
; (TERM 110) => "END_TEXTAREA"
; (TERM 111) => "START_TH"
; (TERM 112) => "END_TH"
; (TERM 113) => "START_TITLE"
; (TERM 114) => "END_TITLE"
; (TERM 115) => "START_TR"
; (TERM 116) => "END_TR"
; (TERM 117) => "START_TT"
; (TERM 118) => "END_TT"
; (TERM 119) => "START_U"
; (TERM 120) => "END_U"
; (TERM 121) => "START_UL"
; (TERM 122) => "END_UL"
; (TERM 123) => "START_VAR"
; (TERM 124) => "END_VAR"
; (TERM 125) => "PCDATA"
; (TERM 126) => "CHAR_REF"
; (TERM 127) => "ENTITY_REF"
; _ => "bogus-term"; end;
stipulate include package   header; herein
errtermvalue=
\\ (TERM 1) => values::START_A(([])); 
(TERM 5) => values::START_APPLET(([
    ("CODE", htmlattrs::NAME ""),
    ("WIDTH", htmlattrs::NAME ""),
    ("HEIGHT", htmlattrs::NAME "")
  ])); 
(TERM 7) => values::TAG_AREA(([("ALT", htmlattrs::NAME "")])); 
(TERM 10) => values::TAG_BASE(([("URL", htmlattrs::NAME "")])); 
(TERM 15) => values::START_BODY(([])); 
(TERM 17) => values::TAG_BR(([])); 
(TERM 18) => values::START_CAPTION(([])); 
(TERM 30) => values::START_DIR(([])); 
(TERM 32) => values::START_DIV(([])); 
(TERM 34) => values::START_DL(([])); 
(TERM 40) => values::START_FONT(([])); 
(TERM 42) => values::START_BASEFONT(([])); 
(TERM 44) => values::START_FORM(([])); 
(TERM 46) => values::START_H1(([])); 
(TERM 48) => values::START_H2(([])); 
(TERM 50) => values::START_H3(([])); 
(TERM 52) => values::START_H4(([])); 
(TERM 54) => values::START_H5(([])); 
(TERM 56) => values::START_H6(([])); 
(TERM 60) => values::TAG_HR(([])); 
(TERM 65) => values::TAG_IMG(([("SRC", htmlattrs::NAME "")])); 
(TERM 66) => values::TAG_INPUT(([])); 
(TERM 67) => values::TAG_ISINDEX(([])); 
(TERM 72) => values::TAG_LINK(([])); 
(TERM 73) => values::START_MAP(([])); 
(TERM 75) => values::START_MENU(([])); 
(TERM 77) => values::TAG_META(([("CONTENT", htmlattrs::NAME "")])); 
(TERM 78) => values::START_OL(([])); 
(TERM 80) => values::START_OPTION(([])); 
(TERM 82) => values::START_P(([])); 
(TERM 84) => values::TAG_PARAM(([("NAME", htmlattrs::NAME "")])); 
(TERM 85) => values::START_PRE(([])); 
(TERM 91) => values::START_SELECT(([("NAME", htmlattrs::NAME "")])); 
(TERM 105) => values::START_TABLE(([])); 
(TERM 107) => values::START_TD(([])); 
(TERM 109) => values::START_TEXTAREA(([
    ("NAME", htmlattrs::NAME ""),
    ("ROWS", htmlattrs::NAME "0"),
    ("COLS", htmlattrs::NAME "0")
  ])); 
(TERM 111) => values::START_TH(([])); 
(TERM 115) => values::START_TR(([])); 
(TERM 121) => values::START_UL(([])); 
_ => values::TM_VOID;
 end; end;
my terms:  List( Terminal ) = NIL
 @@ (TERM 124) @@ (TERM 123) @@ (TERM 122) @@ (TERM 120) @@ (TERM 119) @@ (TERM 118) @@ (TERM 117) @@ (TERM 116) @@ (TERM 114) @@ (TERM 113) @@ (TERM 112) @@ (TERM 110) @@ (TERM 108) @@ (TERM 106) @@ 
(TERM 104) @@ (TERM 103) @@ (TERM 102) @@ (TERM 101) @@ (TERM 100) @@ (TERM 99) @@ (TERM 98) @@ (TERM 97) @@ (TERM 96) @@ (TERM 95) @@ (TERM 94) @@ (TERM 93) @@ (TERM 92) @@ (TERM 90) @@ (TERM 89) @@ 
(TERM 88) @@ (TERM 87) @@ (TERM 86) @@ (TERM 83) @@ (TERM 81) @@ (TERM 79) @@ (TERM 76) @@ (TERM 74) @@ (TERM 71) @@ (TERM 69) @@ (TERM 68) @@ (TERM 64) @@ (TERM 63) @@ (TERM 62) @@ (TERM 61) @@ 
(TERM 59) @@ (TERM 58) @@ (TERM 57) @@ (TERM 55) @@ (TERM 53) @@ (TERM 51) @@ (TERM 49) @@ (TERM 47) @@ (TERM 45) @@ (TERM 43) @@ (TERM 41) @@ (TERM 39) @@ (TERM 38) @@ (TERM 37) @@ (TERM 36) @@ 
(TERM 35) @@ (TERM 33) @@ (TERM 31) @@ (TERM 29) @@ (TERM 28) @@ (TERM 27) @@ (TERM 26) @@ (TERM 25) @@ (TERM 24) @@ (TERM 23) @@ (TERM 22) @@ (TERM 21) @@ (TERM 20) @@ (TERM 19) @@ (TERM 16) @@ 
(TERM 14) @@ (TERM 13) @@ (TERM 12) @@ (TERM 11) @@ (TERM 9) @@ (TERM 8) @@ (TERM 6) @@ (TERM 4) @@ (TERM 3) @@ (TERM 2) @@ (TERM 0);
};
package actions {
exception MLY_ACTION Int;
stipulate include package   header; herein
actions = 
\\ (i392, default_position, stack, 
    (ctx): Arg) = 
case (i392, stack)
  ( 0,  ( ( _,  ( _,  _,  end_html1right)) !  ( _,  ( values::QQ_BODY body,  _,  _)) !  ( _,  ( values::QQ_HEAD head,  _,  _)) !  ( _,  ( values::QQ_STARTHTML starthtml,  starthtml1left,  _)) !  
rest671)) => {  my  result = values::QQ_DOCUMENT (has::HTML { version=>starthtml, head, body } );
 ( lr_table::NONTERM 0,  ( result,  starthtml1left,  end_html1right),  rest671);
 } 
;  ( 1,  ( rest671)) => {  my  result = values::QQ_STARTHTML (NULL);
 ( lr_table::NONTERM 1,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 2,  ( ( _,  ( _,  start_html1left,  start_html1right)) !  rest671)) => {  my  result = values::QQ_STARTHTML (NULL);
 ( lr_table::NONTERM 1,  ( result,  start_html1left,  start_html1right),  
rest671);
 } 
;  ( 3,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 2,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 4,  ( ( _,  ( _,  end_html1left,  end_html1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 2,  ( result,  end_html1left,  end_html1right),  rest671);
 } 
;  ( 5,  ( ( _,  ( _,  _,  endhead1right)) !  ( _,  ( values::QQ_HEADCONTENTS headcontents,  _,  _)) !  ( _,  ( _,  starthead1left,  _)) !  rest671)) => {  my  result = values::QQ_HEAD (headcontents)
;
 ( lr_table::NONTERM 3,  ( result,  starthead1left,  endhead1right),  rest671);
 } 
;  ( 6,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 4,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 7,  ( ( _,  ( _,  start_head1left,  start_head1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 4,  ( result,  start_head1left,  start_head1right),  rest671);
 } 
;  ( 8,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 5,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 9,  ( ( _,  ( _,  end_head1left,  end_head1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 5,  ( result,  end_head1left,  end_head1right),  rest671);
 } 
;  ( 10,  ( ( _,  ( values::QQ_HEADELEMENTS headelements2,  _,  headelements2right)) !  _ !  ( _,  ( values::QQ_PCDATA pcdata,  _,  _)) !  _ !  ( _,  ( values::QQ_HEADELEMENTS headelements1,  
headelements1left,  _)) !  rest671)) => {  my  result = values::QQ_HEADCONTENTS (headelements1 @ (has::HEAD_TITLE pcdata ! headelements2));
 ( lr_table::NONTERM 6,  ( result,  headelements1left,  
headelements2right),  rest671);
 } 
;  ( 11,  ( rest671)) => {  my  result = values::QQ_HEADELEMENTS ([]);
 ( lr_table::NONTERM 7,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 12,  ( ( _,  ( values::QQ_HEADELEMENTS headelements,  _,  headelements1right)) !  ( _,  ( values::QQ_HEADELEMENT headelement,  headelement1left,  _)) !  rest671)) => {  my  result = 
values::QQ_HEADELEMENTS (headelement ! headelements);
 ( lr_table::NONTERM 7,  ( result,  headelement1left,  headelements1right),  rest671);
 } 
;  ( 13,  ( ( _,  ( values::TAG_META tag_meta,  (tag_metaleft as tag_meta1left),  tag_meta1right)) !  rest671)) => {  my  result = values::QQ_HEADELEMENT (
htmlattrs::make_meta (ctx tag_metaleft, tag_meta));
 ( lr_table::NONTERM 8,  ( result,  tag_meta1left,  tag_meta1right),  rest671);
 } 
;  ( 14,  ( ( _,  ( values::TAG_LINK tag_link,  (tag_linkleft as tag_link1left),  tag_link1right)) !  rest671)) => {  my  result = values::QQ_HEADELEMENT (
htmlattrs::make_link (ctx tag_linkleft, tag_link));
 ( lr_table::NONTERM 8,  ( result,  tag_link1left,  tag_link1right),  rest671);
 } 
;  ( 15,  ( ( _,  ( values::TAG_ISINDEX tag_isindex,  (tag_isindexleft as tag_isindex1left),  tag_isindex1right)) !  rest671)) => {  my  result = values::QQ_HEADELEMENT (
   {   stuff = htmlattrs::make_isindex (ctx tag_isindexleft, tag_isindex);
                        has::HEAD_ISINDEX stuff;
                    }
                );
 ( lr_table::NONTERM 8,  ( result,  tag_isindex1left,  
tag_isindex1right),  rest671);
 } 
;  ( 16,  ( ( _,  ( values::TAG_BASE tag_base,  (tag_baseleft as tag_base1left),  tag_base1right)) !  rest671)) => {  my  result = values::QQ_HEADELEMENT (
htmlattrs::make_base (ctx tag_baseleft, tag_base));
 ( lr_table::NONTERM 8,  ( result,  tag_base1left,  tag_base1right),  rest671);
 } 
;  ( 17,  ( ( _,  ( _,  _,  end_style1right)) !  ( _,  ( values::QQ_PCDATA pcdata,  _,  _)) !  ( _,  ( _,  start_style1left,  _)) !  rest671)) => {  my  result = values::QQ_HEADELEMENT (
has::HEAD_STYLE (pcdata));
 ( lr_table::NONTERM 8,  ( result,  start_style1left,  end_style1right),  rest671);
 } 
;  ( 18,  ( ( _,  ( _,  _,  end_script1right)) !  ( _,  ( values::QQ_PCDATA pcdata,  _,  _)) !  ( _,  ( _,  start_script1left,  _)) !  rest671)) => {  my  result = values::QQ_HEADELEMENT (
has::HEAD_SCRIPT (pcdata));
 ( lr_table::NONTERM 8,  ( result,  start_script1left,  end_script1right),  rest671);
 } 
;  ( 19,  ( ( _,  ( _,  _,  endbody1right)) !  ( _,  ( values::QQ_BODYCONTENT0 bodycontent0,  bodycontent01left,  _)) !  rest671)) => {  my  result = values::QQ_BODY (bodycontent0);
 ( 
lr_table::NONTERM 9,  ( result,  bodycontent01left,  endbody1right),  rest671);
 } 
;  ( 20,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 11,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 21,  ( ( _,  ( _,  end_body1left,  end_body1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 11,  ( result,  end_body1left,  end_body1right),  rest671);
 } 
;  ( 22,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  bodycontent11left,  bodycontent11right)) !  rest671)) => {  my  result = values::QQ_BODYCONTENT (make_block bodycontent1);
 ( 
lr_table::NONTERM 12,  ( result,  bodycontent11left,  bodycontent11right),  rest671);
 } 
;  ( 23,  ( ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  bodycontent1right)) !  ( _,  ( values::START_BODY start_body,  (start_bodyleft as start_body1left),  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT0 (htmlattrs::make_body (ctx start_bodyleft, start_body, bodycontent));
 ( lr_table::NONTERM 13,  ( result,  start_body1left,  bodycontent1right),  rest671);
 } 
;  ( 24,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_TEXTWOSCRIPT textwoscript,  textwoscript1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT0 (make_body (cons_text_fn (textwoscript, bodycontent1)));
 ( lr_table::NONTERM 13,  ( result,  textwoscript1left,  bodycontent11right),  rest671);
 } 
;  ( 25,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_BODYELEMENT bodyelement,  bodyelement1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT0 (make_body (cons_block_fn (bodyelement, bodycontent1)));
 ( lr_table::NONTERM 13,  ( result,  bodyelement1left,  bodycontent11right),  rest671);
 } 
;  ( 26,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_BLOCKWOINDEX blockwoindex,  blockwoindex1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT0 (make_body (cons_block_fn (blockwoindex, bodycontent1)));
 ( lr_table::NONTERM 13,  ( result,  blockwoindex1left,  bodycontent11right),  rest671);
 } 
;  ( 27,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT0 (make_body (cons_block_fn (paragraph, bodycontent1)));
 ( lr_table::NONTERM 13,  ( result,  paragraph1left,  bodycontent11right),  rest671);
 } 
;  ( 28,  ( ( _,  ( values::QQ_BODYCONTENT2 bodycontent2,  _,  bodycontent21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT0 (make_body (cons_block_fn (paragraph, bodycontent2)));
 ( lr_table::NONTERM 13,  ( result,  paragraph1left,  bodycontent21right),  rest671);
 } 
;  ( 29,  ( rest671)) => {  my  result = values::QQ_BODYCONTENT1 ([]);
 ( lr_table::NONTERM 14,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 30,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_TEXT text,  text1left,  _)) !  rest671)) => {  my  result = values::QQ_BODYCONTENT1 (
cons_text_fn (text, bodycontent1));
 ( lr_table::NONTERM 14,  ( result,  text1left,  bodycontent11right),  rest671);
 } 
;  ( 31,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_BODYELEMENT bodyelement,  bodyelement1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT1 (cons_block_fn (bodyelement, bodycontent1));
 ( lr_table::NONTERM 14,  ( result,  bodyelement1left,  bodycontent11right),  rest671);
 } 
;  ( 32,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_BLOCK block,  block1left,  _)) !  rest671)) => {  my  result = values::QQ_BODYCONTENT1 (
cons_block_fn (block, bodycontent1));
 ( lr_table::NONTERM 14,  ( result,  block1left,  bodycontent11right),  rest671);
 } 
;  ( 33,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT1 (cons_block_fn (paragraph, bodycontent1));
 ( lr_table::NONTERM 14,  ( result,  paragraph1left,  bodycontent11right),  rest671);
 } 
;  ( 34,  ( ( _,  ( values::QQ_BODYCONTENT2 bodycontent2,  _,  bodycontent21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT1 (cons_block_fn (paragraph, bodycontent2));
 ( lr_table::NONTERM 14,  ( result,  paragraph1left,  bodycontent21right),  rest671);
 } 
;  ( 35,  ( rest671)) => {  my  result = values::QQ_BODYCONTENT2 ([]);
 ( lr_table::NONTERM 15,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 36,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_BODYELEMENT bodyelement,  bodyelement1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT2 (cons_block_fn (bodyelement, bodycontent1));
 ( lr_table::NONTERM 15,  ( result,  bodyelement1left,  bodycontent11right),  rest671);
 } 
;  ( 37,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  ( _,  ( values::QQ_BLOCK block,  block1left,  _)) !  rest671)) => {  my  result = values::QQ_BODYCONTENT2 (
cons_block_fn (block, bodycontent1));
 ( lr_table::NONTERM 15,  ( result,  block1left,  bodycontent11right),  rest671);
 } 
;  ( 38,  ( ( _,  ( values::QQ_BODYCONTENT1 bodycontent1,  _,  bodycontent11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT2 (cons_block_fn (paragraph, bodycontent1));
 ( lr_table::NONTERM 15,  ( result,  paragraph1left,  bodycontent11right),  rest671);
 } 
;  ( 39,  ( ( _,  ( values::QQ_BODYCONTENT2 bodycontent2,  _,  bodycontent21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYCONTENT2 (cons_block_fn (paragraph, bodycontent2));
 ( lr_table::NONTERM 15,  ( result,  paragraph1left,  bodycontent21right),  rest671);
 } 
;  ( 40,  ( ( _,  ( _,  _,  end_h11right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_H1 start_h1,  (start_h1left as start_h11left),  _)) !  rest671)) => {  my  result
 = values::QQ_BODYELEMENT (htmlattrs::make_hn (1, ctx start_h1left, start_h1, textlist));
 ( lr_table::NONTERM 16,  ( result,  start_h11left,  end_h11right),  rest671);
 } 
;  ( 41,  ( ( _,  ( _,  _,  end_h21right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_H2 start_h2,  (start_h2left as start_h21left),  _)) !  rest671)) => {  my  result
 = values::QQ_BODYELEMENT (htmlattrs::make_hn (2, ctx start_h2left, start_h2, textlist));
 ( lr_table::NONTERM 16,  ( result,  start_h21left,  end_h21right),  rest671);
 } 
;  ( 42,  ( ( _,  ( _,  _,  end_h31right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_H3 start_h3,  (start_h3left as start_h31left),  _)) !  rest671)) => {  my  result
 = values::QQ_BODYELEMENT (htmlattrs::make_hn (3, ctx start_h3left, start_h3, textlist));
 ( lr_table::NONTERM 16,  ( result,  start_h31left,  end_h31right),  rest671);
 } 
;  ( 43,  ( ( _,  ( _,  _,  end_h41right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_H4 start_h4,  (start_h4left as start_h41left),  _)) !  rest671)) => {  my  result
 = values::QQ_BODYELEMENT (htmlattrs::make_hn (4, ctx start_h4left, start_h4, textlist));
 ( lr_table::NONTERM 16,  ( result,  start_h41left,  end_h41right),  rest671);
 } 
;  ( 44,  ( ( _,  ( _,  _,  end_h51right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_H5 start_h5,  (start_h5left as start_h51left),  _)) !  rest671)) => {  my  result
 = values::QQ_BODYELEMENT (htmlattrs::make_hn (5, ctx start_h5left, start_h5, textlist));
 ( lr_table::NONTERM 16,  ( result,  start_h51left,  end_h51right),  rest671);
 } 
;  ( 45,  ( ( _,  ( _,  _,  end_h61right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_H6 start_h6,  (start_h6left as start_h61left),  _)) !  rest671)) => {  my  result
 = values::QQ_BODYELEMENT (htmlattrs::make_hn (6, ctx start_h6left, start_h6, textlist));
 ( lr_table::NONTERM 16,  ( result,  start_h61left,  end_h61right),  rest671);
 } 
;  ( 46,  ( ( _,  ( _,  _,  end_address1right)) !  ( _,  ( values::QQ_ADDRESSCONTENT1 addresscontent1,  _,  _)) !  ( _,  ( _,  start_address1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BODYELEMENT (has::ADDRESS (make_block addresscontent1));
 ( lr_table::NONTERM 16,  ( result,  start_address1left,  end_address1right),  rest671);
 } 
;  ( 47,  ( rest671)) => {  my  result = values::QQ_ADDRESSCONTENT1 ([]);
 ( lr_table::NONTERM 17,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 48,  ( ( _,  ( values::QQ_ADDRESSCONTENT1 addresscontent1,  _,  addresscontent11right)) !  ( _,  ( values::QQ_TEXT text,  text1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ADDRESSCONTENT1 (cons_text_fn (text, addresscontent1));
 ( lr_table::NONTERM 17,  ( result,  text1left,  addresscontent11right),  rest671);
 } 
;  ( 49,  ( ( _,  ( values::QQ_ADDRESSCONTENT1 addresscontent1,  _,  addresscontent11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ADDRESSCONTENT1 (cons_block_fn (paragraph, addresscontent1));
 ( lr_table::NONTERM 17,  ( result,  paragraph1left,  addresscontent11right),  rest671);
 } 
;  ( 50,  ( ( _,  ( values::QQ_ADDRESSCONTENT2 addresscontent2,  _,  addresscontent21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ADDRESSCONTENT1 (cons_block_fn (paragraph, addresscontent2));
 ( lr_table::NONTERM 17,  ( result,  paragraph1left,  addresscontent21right),  rest671);
 } 
;  ( 51,  ( rest671)) => {  my  result = values::QQ_ADDRESSCONTENT2 ([]);
 ( lr_table::NONTERM 18,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 52,  ( ( _,  ( values::QQ_ADDRESSCONTENT1 addresscontent1,  _,  addresscontent11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ADDRESSCONTENT2 (cons_block_fn (paragraph, addresscontent1));
 ( lr_table::NONTERM 18,  ( result,  paragraph1left,  addresscontent11right),  rest671);
 } 
;  ( 53,  ( ( _,  ( values::QQ_ADDRESSCONTENT2 addresscontent2,  _,  addresscontent21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ADDRESSCONTENT2 (cons_block_fn (paragraph, addresscontent2));
 ( lr_table::NONTERM 18,  ( result,  paragraph1left,  addresscontent21right),  rest671);
 } 
;  ( 54,  ( ( _,  ( values::QQ_LIST list,  list1left,  list1right)) !  rest671)) => {  my  result = values::QQ_BLOCKWOINDEX (list);
 ( lr_table::NONTERM 19,  ( result,  list1left,  list1right),  
rest671);
 } 
;  ( 55,  ( ( _,  ( values::QQ_PREFORMATTED preformatted,  preformatted1left,  preformatted1right)) !  rest671)) => {  my  result = values::QQ_BLOCKWOINDEX (preformatted);
 ( lr_table::NONTERM 19,  ( 
result,  preformatted1left,  preformatted1right),  rest671);
 } 
;  ( 56,  ( ( _,  ( _,  _,  end_div1right)) !  ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  _)) !  ( _,  ( values::START_DIV start_div,  (start_divleft as start_div1left),  _)) !  rest671)) => { 
 my  result = values::QQ_BLOCKWOINDEX (htmlattrs::make_div (ctx start_divleft, start_div, bodycontent));
 ( lr_table::NONTERM 19,  ( result,  start_div1left,  end_div1right),  rest671);
 } 
;  ( 57,  ( ( _,  ( _,  _,  end_center1right)) !  ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  _)) !  ( _,  ( _,  start_center1left,  _)) !  rest671)) => {  my  result = values::QQ_BLOCKWOINDEX (
has::CENTER bodycontent);
 ( lr_table::NONTERM 19,  ( result,  start_center1left,  end_center1right),  rest671);
 } 
;  ( 58,  ( ( _,  ( _,  _,  end_blockquote1right)) !  ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  _)) !  ( _,  ( _,  start_blockquote1left,  _)) !  rest671)) => {  my  result = 
values::QQ_BLOCKWOINDEX (has::BLOCKQUOTE bodycontent);
 ( lr_table::NONTERM 19,  ( result,  start_blockquote1left,  end_blockquote1right),  rest671);
 } 
;  ( 59,  ( ( _,  ( _,  _,  end_form1right)) !  ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  _)) !  ( _,  ( values::START_FORM start_form,  (start_formleft as start_form1left),  _)) !  rest671))
 => {  my  result = values::QQ_BLOCKWOINDEX (htmlattrs::make_form (ctx start_formleft, start_form, bodycontent));
 ( lr_table::NONTERM 19,  ( result,  start_form1left,  end_form1right),  rest671);
 } 
;  ( 60,  ( ( _,  ( values::TAG_HR tag_hr,  (tag_hrleft as tag_hr1left),  tag_hr1right)) !  rest671)) => {  my  result = values::QQ_BLOCKWOINDEX (htmlattrs::make_hr (ctx tag_hrleft, tag_hr));
 ( 
lr_table::NONTERM 19,  ( result,  tag_hr1left,  tag_hr1right),  rest671);
 } 
;  ( 61,  ( ( _,  ( _,  _,  end_table1right)) !  ( _,  ( values::QQ_TABLEROWLIST tablerowlist,  _,  _)) !  ( _,  ( values::QQ_OPTCAPTION optcaption,  _,  _)) !  ( _,  ( values::START_TABLE start_table
,  (start_tableleft as start_table1left),  _)) !  rest671)) => {  my  result = values::QQ_BLOCKWOINDEX (
htmlattrs::make_table(
                    ctx start_tableleft, start_table,
                    { caption => optcaption, body => tablerowlist } )
                );
 ( lr_table::NONTERM 19,  ( result,  start_table1left,  end_table1right),  
rest671);
 } 
;  ( 62,  ( ( _,  ( values::QQ_BLOCKWOINDEX blockwoindex,  blockwoindex1left,  blockwoindex1right)) !  rest671)) => {  my  result = values::QQ_BLOCK (blockwoindex);
 ( lr_table::NONTERM 20,  ( result
,  blockwoindex1left,  blockwoindex1right),  rest671);
 } 
;  ( 63,  ( ( _,  ( values::TAG_ISINDEX tag_isindex,  (tag_isindexleft as tag_isindex1left),  tag_isindex1right)) !  rest671)) => {  my  result = values::QQ_BLOCK (
   {   stuff =   htmlattrs::make_isindex (ctx tag_isindexleft, tag_isindex);
                        has::ISINDEX stuff;
                    }
                );
 ( lr_table::NONTERM 20,  ( result,  tag_isindex1left,  
tag_isindex1right),  rest671);
 } 
;  ( 64,  ( ( _,  ( values::QQ_TEXTLIST textlist,  _,  textlist1right)) !  ( _,  ( values::START_P start_p,  (start_pleft as start_p1left),  _)) !  rest671)) => {  my  result = values::QQ_PARAGRAPH (
htmlattrs::make_p (ctx start_pleft, start_p, textlist));
 ( lr_table::NONTERM 21,  ( result,  start_p1left,  textlist1right),  rest671);
 } 
;  ( 65,  ( ( _,  ( _,  _,  end_ul1right)) !  ( _,  ( values::QQ_LISTITEMLIST listitemlist,  _,  _)) !  ( _,  ( values::START_UL start_ul,  (start_ulleft as start_ul1left),  _)) !  rest671)) => {  my 
 result = values::QQ_LIST (htmlattrs::make_ul (ctx start_ulleft, start_ul, listitemlist));
 ( lr_table::NONTERM 22,  ( result,  start_ul1left,  end_ul1right),  rest671);
 } 
;  ( 66,  ( ( _,  ( _,  _,  end_ol1right)) !  ( _,  ( values::QQ_LISTITEMLIST listitemlist,  _,  _)) !  ( _,  ( values::START_OL start_ol,  (start_olleft as start_ol1left),  _)) !  rest671)) => {  my 
 result = values::QQ_LIST (htmlattrs::make_ol (ctx start_olleft, start_ol, listitemlist));
 ( lr_table::NONTERM 22,  ( result,  start_ol1left,  end_ol1right),  rest671);
 } 
;  ( 67,  ( ( _,  ( _,  _,  end_dir1right)) !  ( _,  ( values::QQ_LISTITEMLIST listitemlist,  _,  _)) !  ( _,  ( values::START_DIR start_dir,  (start_dirleft as start_dir1left),  _)) !  rest671)) =>
 {  my  result = values::QQ_LIST (htmlattrs::make_dir (ctx start_dirleft, start_dir, listitemlist));
 ( lr_table::NONTERM 22,  ( result,  start_dir1left,  end_dir1right),  rest671);
 } 
;  ( 68,  ( ( _,  ( _,  _,  end_menu1right)) !  ( _,  ( values::QQ_LISTITEMLIST listitemlist,  _,  _)) !  ( _,  ( values::START_MENU start_menu,  (start_menuleft as start_menu1left),  _)) !  rest671))
 => {  my  result = values::QQ_LIST (htmlattrs::make_menu (ctx start_menuleft, start_menu, listitemlist));
 ( lr_table::NONTERM 22,  ( result,  start_menu1left,  end_menu1right),  rest671);
 } 
;  ( 69,  ( ( _,  ( _,  _,  end_dl1right)) !  ( _,  ( values::QQ_DLITEMLIST dlitemlist,  _,  _)) !  ( _,  ( values::START_DL start_dl,  (start_dlleft as start_dl1left),  _)) !  rest671)) => {  my  
result = values::QQ_LIST (htmlattrs::make_dl(
                  ctx start_dlleft, start_dl,
                  group_def_list_contents dlitemlist)
                );
 ( lr_table::NONTERM 22,  ( result,  start_dl1left,  end_dl1right),  rest671)
;
 } 
;  ( 70,  ( rest671)) => {  my  result = values::QQ_LISTITEMLIST ([]);
 ( lr_table::NONTERM 23,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 71,  ( ( _,  ( values::QQ_LISTITEMLIST listitemlist,  _,  listitemlist1right)) !  ( _,  ( values::QQ_LISTITEM listitem,  listitem1left,  _)) !  rest671)) => {  my  result = 
values::QQ_LISTITEMLIST (listitem ! listitemlist);
 ( lr_table::NONTERM 23,  ( result,  listitem1left,  listitemlist1right),  rest671);
 } 
;  ( 72,  ( ( _,  ( _,  _,  endli1right)) !  ( _,  ( values::QQ_FLOW1 flow1,  _,  _)) !  ( _,  ( values::START_LI start_li,  (start_lileft as start_li1left),  _)) !  rest671)) => {  my  result = 
values::QQ_LISTITEM (htmlattrs::make_li (ctx start_lileft, start_li, make_block flow1));
 ( lr_table::NONTERM 24,  ( result,  start_li1left,  endli1right),  rest671);
 } 
;  ( 73,  ( rest671)) => {  my  result = values::QQ_DLITEMLIST ([]);
 ( lr_table::NONTERM 25,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 74,  ( ( _,  ( values::QQ_DLITEMLIST dlitemlist,  _,  dlitemlist1right)) !  ( _,  ( values::QQ_DLITEM dlitem,  dlitem1left,  _)) !  rest671)) => {  my  result = values::QQ_DLITEMLIST (
dlitem ! dlitemlist);
 ( lr_table::NONTERM 25,  ( result,  dlitem1left,  dlitemlist1right),  rest671);
 } 
;  ( 75,  ( ( _,  ( _,  _,  enddt1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_dt1left,  _)) !  rest671)) => {  my  result = values::QQ_DLITEM (DL_TAG textlist);
 ( 
lr_table::NONTERM 26,  ( result,  start_dt1left,  enddt1right),  rest671);
 } 
;  ( 76,  ( ( _,  ( _,  _,  enddd1right)) !  ( _,  ( values::QQ_FLOW1 flow1,  _,  _)) !  ( _,  ( _,  start_dd1left,  _)) !  rest671)) => {  my  result = values::QQ_DLITEM (DL_ITEM (make_block flow1))
;
 ( lr_table::NONTERM 26,  ( result,  start_dd1left,  enddd1right),  rest671);
 } 
;  ( 77,  ( rest671)) => {  my  result = values::QQ_FLOW1 ([]);
 ( lr_table::NONTERM 27,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 78,  ( ( _,  ( values::QQ_FLOW1 flow1,  _,  flow11right)) !  ( _,  ( values::QQ_TEXT text,  text1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW1 (cons_text_fn (text, flow1));
 ( 
lr_table::NONTERM 27,  ( result,  text1left,  flow11right),  rest671);
 } 
;  ( 79,  ( ( _,  ( values::QQ_FLOW1 flow1,  _,  flow11right)) !  ( _,  ( values::QQ_BLOCK block,  block1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW1 (cons_block_fn (block, flow1));
 ( 
lr_table::NONTERM 27,  ( result,  block1left,  flow11right),  rest671);
 } 
;  ( 80,  ( ( _,  ( values::QQ_FLOW1 flow1,  _,  flow11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW1 (
cons_block_fn (paragraph, flow1));
 ( lr_table::NONTERM 27,  ( result,  paragraph1left,  flow11right),  rest671);
 } 
;  ( 81,  ( ( _,  ( values::QQ_FLOW2 flow2,  _,  flow21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW1 (
cons_block_fn (paragraph, flow2));
 ( lr_table::NONTERM 27,  ( result,  paragraph1left,  flow21right),  rest671);
 } 
;  ( 82,  ( rest671)) => {  my  result = values::QQ_FLOW2 ([]);
 ( lr_table::NONTERM 28,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 83,  ( ( _,  ( values::QQ_FLOW1 flow1,  _,  flow11right)) !  ( _,  ( values::QQ_BLOCK block,  block1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW2 (cons_block_fn (block, flow1));
 ( 
lr_table::NONTERM 28,  ( result,  block1left,  flow11right),  rest671);
 } 
;  ( 84,  ( ( _,  ( values::QQ_FLOW1 flow1,  _,  flow11right)) !  _ !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW2 (
cons_block_fn (paragraph, flow1));
 ( lr_table::NONTERM 28,  ( result,  paragraph1left,  flow11right),  rest671);
 } 
;  ( 85,  ( ( _,  ( values::QQ_FLOW2 flow2,  _,  flow21right)) !  ( _,  ( values::QQ_PARAGRAPH paragraph,  paragraph1left,  _)) !  rest671)) => {  my  result = values::QQ_FLOW2 (
cons_block_fn (paragraph, flow2));
 ( lr_table::NONTERM 28,  ( result,  paragraph1left,  flow21right),  rest671);
 } 
;  ( 86,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 29,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 87,  ( ( _,  ( _,  end_li1left,  end_li1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 29,  ( result,  end_li1left,  end_li1right),  rest671);
 } 
;  ( 88,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 30,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 89,  ( ( _,  ( _,  end_dt1left,  end_dt1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 30,  ( result,  end_dt1left,  end_dt1right),  rest671);
 } 
;  ( 90,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 31,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 91,  ( ( _,  ( _,  end_dd1left,  end_dd1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 31,  ( result,  end_dd1left,  end_dd1right),  rest671);
 } 
;  ( 92,  ( ( _,  ( _,  _,  end_pre1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_PRE start_pre,  (start_preleft as start_pre1left),  _)) !  rest671)) => {  my  
result = values::QQ_PREFORMATTED (htmlattrs::make_pre (ctx start_preleft, start_pre, textlist));
 ( lr_table::NONTERM 32,  ( result,  start_pre1left,  end_pre1right),  rest671);
 } 
;  ( 93,  ( rest671)) => {  my  result = values::QQ_OPTCAPTION (NULL);
 ( lr_table::NONTERM 33,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 94,  ( ( _,  ( _,  _,  end_caption1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_CAPTION start_caption,  (start_captionleft as start_caption1left),  _)) !  
rest671)) => {  my  result = values::QQ_OPTCAPTION (THE (htmlattrs::make_caption(
                  ctx start_captionleft, start_caption, textlist)));
 ( lr_table::NONTERM 33,  ( result,  start_caption1left,  
end_caption1right),  rest671);
 } 
;  ( 95,  ( ( _,  ( values::QQ_TABLEROW tablerow,  tablerow1left,  tablerow1right)) !  rest671)) => {  my  result = values::QQ_TABLEROWLIST ([tablerow]);
 ( lr_table::NONTERM 34,  ( result,  
tablerow1left,  tablerow1right),  rest671);
 } 
;  ( 96,  ( ( _,  ( values::QQ_TABLEROWLIST tablerowlist,  _,  tablerowlist1right)) !  ( _,  ( values::QQ_TABLEROW tablerow,  tablerow1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TABLEROWLIST (tablerow ! tablerowlist);
 ( lr_table::NONTERM 34,  ( result,  tablerow1left,  tablerowlist1right),  rest671);
 } 
;  ( 97,  ( ( _,  ( values::QQ_TABLECELLLIST tablecelllist,  _,  tablecelllist1right)) !  ( _,  ( values::START_TR start_tr,  (start_trleft as start_tr1left),  _)) !  rest671)) => {  my  result = 
values::QQ_TABLEROW (htmlattrs::make_tr (ctx start_trleft, start_tr, tablecelllist));
 ( lr_table::NONTERM 35,  ( result,  start_tr1left,  tablecelllist1right),  rest671);
 } 
;  ( 98,  ( ( _,  ( _,  _,  end_tr1right)) !  ( _,  ( values::QQ_TABLECELLLIST tablecelllist,  _,  _)) !  ( _,  ( values::START_TR start_tr,  (start_trleft as start_tr1left),  _)) !  rest671)) => { 
 my  result = values::QQ_TABLEROW (htmlattrs::make_tr (ctx start_trleft, start_tr, tablecelllist));
 ( lr_table::NONTERM 35,  ( result,  start_tr1left,  end_tr1right),  rest671);
 } 
;  ( 99,  ( ( _,  ( values::QQ_TABLECELL tablecell,  tablecell1left,  tablecell1right)) !  rest671)) => {  my  result = values::QQ_TABLECELLLIST ([tablecell]);
 ( lr_table::NONTERM 36,  ( result,  
tablecell1left,  tablecell1right),  rest671);
 } 
;  ( 100,  ( ( _,  ( values::QQ_TABLECELLLIST tablecelllist,  _,  tablecelllist1right)) !  ( _,  ( values::QQ_TABLECELL tablecell,  tablecell1left,  _)) !  rest671)) => {  my  result = 
values::QQ_TABLECELLLIST (tablecell ! tablecelllist);
 ( lr_table::NONTERM 36,  ( result,  tablecell1left,  tablecelllist1right),  rest671);
 } 
;  ( 101,  ( ( _,  ( _,  _,  end_th1right)) !  ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  _)) !  ( _,  ( values::START_TH start_th,  (start_thleft as start_th1left),  _)) !  rest671)) => {  my  
result = values::QQ_TABLECELL (htmlattrs::make_th (ctx start_thleft, start_th, bodycontent));
 ( lr_table::NONTERM 37,  ( result,  start_th1left,  end_th1right),  rest671);
 } 
;  ( 102,  ( ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  bodycontent1right)) !  ( _,  ( values::START_TH start_th,  (start_thleft as start_th1left),  _)) !  rest671)) => {  my  result = 
values::QQ_TABLECELL (htmlattrs::make_th (ctx start_thleft, start_th, bodycontent));
 ( lr_table::NONTERM 37,  ( result,  start_th1left,  bodycontent1right),  rest671);
 } 
;  ( 103,  ( ( _,  ( _,  _,  end_td1right)) !  ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  _)) !  ( _,  ( values::START_TD start_td,  (start_tdleft as start_td1left),  _)) !  rest671)) => {  my  
result = values::QQ_TABLECELL (htmlattrs::make_td (ctx start_tdleft, start_td, bodycontent));
 ( lr_table::NONTERM 37,  ( result,  start_td1left,  end_td1right),  rest671);
 } 
;  ( 104,  ( ( _,  ( values::QQ_BODYCONTENT bodycontent,  _,  bodycontent1right)) !  ( _,  ( values::START_TD start_td,  (start_tdleft as start_td1left),  _)) !  rest671)) => {  my  result = 
values::QQ_TABLECELL (htmlattrs::make_td (ctx start_tdleft, start_td, bodycontent));
 ( lr_table::NONTERM 37,  ( result,  start_td1left,  bodycontent1right),  rest671);
 } 
;  ( 105,  ( ( _,  ( values::QQ_TEXTLIST' textlist',  textlist'1left,  textlist'1right)) !  rest671)) => {  my  result = values::QQ_TEXTLIST (text_list_fn textlist');
 ( lr_table::NONTERM 38,  ( 
result,  textlist'1left,  textlist'1right),  rest671);
 } 
;  ( 106,  ( rest671)) => {  my  result = values::QQ_TEXTLIST' ([]);
 ( lr_table::NONTERM 39,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 107,  ( ( _,  ( values::QQ_TEXTLIST' textlist',  _,  textlist'1right)) !  ( _,  ( values::QQ_TEXT text,  text1left,  _)) !  rest671)) => {  my  result = values::QQ_TEXTLIST' (text ! textlist');
 
( lr_table::NONTERM 39,  ( result,  text1left,  textlist'1right),  rest671);
 } 
;  ( 108,  ( ( _,  ( values::QQ_PCDATAELEM pcdataelem,  pcdataelem1left,  pcdataelem1right)) !  rest671)) => {  my  result = values::QQ_TEXTWOSCRIPT (has::PCDATA pcdataelem);
 ( lr_table::NONTERM 40, 
 ( result,  pcdataelem1left,  pcdataelem1right),  rest671);
 } 
;  ( 109,  ( ( _,  ( values::QQ_FONT font,  font1left,  font1right)) !  rest671)) => {  my  result = values::QQ_TEXTWOSCRIPT (font);
 ( lr_table::NONTERM 40,  ( result,  font1left,  font1right),  
rest671);
 } 
;  ( 110,  ( ( _,  ( values::QQ_PHRASE phrase,  phrase1left,  phrase1right)) !  rest671)) => {  my  result = values::QQ_TEXTWOSCRIPT (phrase);
 ( lr_table::NONTERM 40,  ( result,  phrase1left,  
phrase1right),  rest671);
 } 
;  ( 111,  ( ( _,  ( values::QQ_SPECIAL special,  special1left,  special1right)) !  rest671)) => {  my  result = values::QQ_TEXTWOSCRIPT (special);
 ( lr_table::NONTERM 40,  ( result,  special1left,  
special1right),  rest671);
 } 
;  ( 112,  ( ( _,  ( values::QQ_FORM form,  form1left,  form1right)) !  rest671)) => {  my  result = values::QQ_TEXTWOSCRIPT (form);
 ( lr_table::NONTERM 40,  ( result,  form1left,  form1right),  
rest671);
 } 
;  ( 113,  ( ( _,  ( values::QQ_TEXTWOSCRIPT textwoscript,  textwoscript1left,  textwoscript1right)) !  rest671)) => {  my  result = values::QQ_TEXT (textwoscript);
 ( lr_table::NONTERM 41,  ( result
,  textwoscript1left,  textwoscript1right),  rest671);
 } 
;  ( 114,  ( ( _,  ( _,  _,  end_script1right)) !  ( _,  ( values::QQ_PCDATA pcdata,  _,  _)) !  ( _,  ( _,  start_script1left,  _)) !  rest671)) => {  my  result = values::QQ_TEXT (has::SCRIPT pcdata
);
 ( lr_table::NONTERM 41,  ( result,  start_script1left,  end_script1right),  rest671);
 } 
;  ( 115,  ( ( _,  ( _,  _,  end_tt1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_tt1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::TT (textlist));
 
( lr_table::NONTERM 42,  ( result,  start_tt1left,  end_tt1right),  rest671);
 } 
;  ( 116,  ( ( _,  ( _,  _,  end_i1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_i1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::IX (textlist));
 ( 
lr_table::NONTERM 42,  ( result,  start_i1left,  end_i1right),  rest671);
 } 
;  ( 117,  ( ( _,  ( _,  _,  end_b1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_b1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::BX (textlist));
 ( 
lr_table::NONTERM 42,  ( result,  start_b1left,  end_b1right),  rest671);
 } 
;  ( 118,  ( ( _,  ( _,  _,  end_u1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_u1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::UX (textlist));
 ( 
lr_table::NONTERM 42,  ( result,  start_u1left,  end_u1right),  rest671);
 } 
;  ( 119,  ( ( _,  ( _,  _,  end_strike1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_strike1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (
has::STRIKE (textlist));
 ( lr_table::NONTERM 42,  ( result,  start_strike1left,  end_strike1right),  rest671);
 } 
;  ( 120,  ( ( _,  ( _,  _,  end_big1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_big1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::BIG (textlist))
;
 ( lr_table::NONTERM 42,  ( result,  start_big1left,  end_big1right),  rest671);
 } 
;  ( 121,  ( ( _,  ( _,  _,  end_small1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_small1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (
has::SMALL (textlist));
 ( lr_table::NONTERM 42,  ( result,  start_small1left,  end_small1right),  rest671);
 } 
;  ( 122,  ( ( _,  ( _,  _,  end_sub1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_sub1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::SUB (textlist))
;
 ( lr_table::NONTERM 42,  ( result,  start_sub1left,  end_sub1right),  rest671);
 } 
;  ( 123,  ( ( _,  ( _,  _,  end_sup1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_sup1left,  _)) !  rest671)) => {  my  result = values::QQ_FONT (has::SUP (textlist))
;
 ( lr_table::NONTERM 42,  ( result,  start_sup1left,  end_sup1right),  rest671);
 } 
;  ( 124,  ( ( _,  ( _,  _,  end_em1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_em1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (has::EM (textlist))
;
 ( lr_table::NONTERM 43,  ( result,  start_em1left,  end_em1right),  rest671);
 } 
;  ( 125,  ( ( _,  ( _,  _,  end_strong1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_strong1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::STRONG (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_strong1left,  end_strong1right),  rest671);
 } 
;  ( 126,  ( ( _,  ( _,  _,  end_code1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_code1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::CODE (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_code1left,  end_code1right),  rest671);
 } 
;  ( 127,  ( ( _,  ( _,  _,  end_dfn1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_dfn1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::DFN (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_dfn1left,  end_dfn1right),  rest671);
 } 
;  ( 128,  ( ( _,  ( _,  _,  end_samp1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_samp1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::SAMP (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_samp1left,  end_samp1right),  rest671);
 } 
;  ( 129,  ( ( _,  ( _,  _,  end_kbd1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_kbd1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::KBD (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_kbd1left,  end_kbd1right),  rest671);
 } 
;  ( 130,  ( ( _,  ( _,  _,  end_var1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_var1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::VAR (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_var1left,  end_var1right),  rest671);
 } 
;  ( 131,  ( ( _,  ( _,  _,  end_cite1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( _,  start_cite1left,  _)) !  rest671)) => {  my  result = values::QQ_PHRASE (
has::CITE (textlist));
 ( lr_table::NONTERM 43,  ( result,  start_cite1left,  end_cite1right),  rest671);
 } 
;  ( 132,  ( ( _,  ( _,  _,  end_a1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_A start_a,  (start_aleft as start_a1left),  _)) !  rest671)) => {  my  result = 
values::QQ_SPECIAL (htmlattrs::make_a (ctx start_aleft, start_a, textlist));
 ( lr_table::NONTERM 44,  ( result,  start_a1left,  end_a1right),  rest671);
 } 
;  ( 133,  ( ( _,  ( values::TAG_IMG tag_img,  (tag_imgleft as tag_img1left),  tag_img1right)) !  rest671)) => {  my  result = values::QQ_SPECIAL (htmlattrs::make_img (ctx tag_imgleft, tag_img));
 ( 
lr_table::NONTERM 44,  ( result,  tag_img1left,  tag_img1right),  rest671);
 } 
;  ( 134,  ( ( _,  ( _,  _,  end_applet1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_APPLET start_applet,  (start_appletleft as start_applet1left),  _)) !  
rest671)) => {  my  result = values::QQ_SPECIAL (htmlattrs::make_applet (ctx start_appletleft, start_applet, textlist));
 ( lr_table::NONTERM 44,  ( result,  start_applet1left,  end_applet1right),  
rest671);
 } 
;  ( 135,  ( ( _,  ( _,  _,  end_font1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_FONT start_font,  (start_fontleft as start_font1left),  _)) !  rest671)) => { 
 my  result = values::QQ_SPECIAL (htmlattrs::make_font (ctx start_fontleft, start_font, textlist));
 ( lr_table::NONTERM 44,  ( result,  start_font1left,  end_font1right),  rest671);
 } 
;  ( 136,  ( ( _,  ( _,  _,  end_basefont1right)) !  ( _,  ( values::QQ_TEXTLIST textlist,  _,  _)) !  ( _,  ( values::START_BASEFONT start_basefont,  (start_basefontleft as start_basefont1left),  _))
 !  rest671)) => {  my  result = values::QQ_SPECIAL (htmlattrs::make_basefont(
                  ctx start_basefontleft, start_basefont, textlist)
                );
 ( lr_table::NONTERM 44,  ( result,  start_basefont1left,  
end_basefont1right),  rest671);
 } 
;  ( 137,  ( ( _,  ( values::TAG_BR tag_br,  (tag_brleft as tag_br1left),  tag_br1right)) !  rest671)) => {  my  result = values::QQ_SPECIAL (htmlattrs::make_br (ctx tag_brleft, tag_br));
 ( 
lr_table::NONTERM 44,  ( result,  tag_br1left,  tag_br1right),  rest671);
 } 
;  ( 138,  ( ( _,  ( _,  _,  end_map1right)) !  ( _,  ( values::QQ_AREALIST arealist,  _,  _)) !  ( _,  ( values::START_MAP start_map,  (start_mapleft as start_map1left),  _)) !  rest671)) => {  my  
result = values::QQ_SPECIAL (htmlattrs::make_map (ctx start_mapleft, start_map, arealist));
 ( lr_table::NONTERM 44,  ( result,  start_map1left,  end_map1right),  rest671);
 } 
;  ( 139,  ( ( _,  ( values::TAG_PARAM tag_param,  (tag_paramleft as tag_param1left),  tag_param1right)) !  rest671)) => {  my  result = values::QQ_SPECIAL (
htmlattrs::make_param (ctx tag_paramleft, tag_param));
 ( lr_table::NONTERM 44,  ( result,  tag_param1left,  tag_param1right),  rest671);
 } 
;  ( 140,  ( rest671)) => {  my  result = values::QQ_AREALIST ([]);
 ( lr_table::NONTERM 45,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 141,  ( ( _,  ( values::QQ_AREALIST arealist,  _,  arealist1right)) !  ( _,  ( values::TAG_AREA tag_area,  (tag_arealeft as tag_area1left),  _)) !  rest671)) => {  my  result = 
values::QQ_AREALIST (htmlattrs::make_area (ctx tag_arealeft, tag_area) ! arealist);
 ( lr_table::NONTERM 45,  ( result,  tag_area1left,  arealist1right),  rest671);
 } 
;  ( 142,  ( ( _,  ( values::TAG_INPUT tag_input,  (tag_inputleft as tag_input1left),  tag_input1right)) !  rest671)) => {  my  result = values::QQ_FORM (
htmlattrs::make_input (ctx tag_inputleft, tag_input));
 ( lr_table::NONTERM 46,  ( result,  tag_input1left,  tag_input1right),  rest671);
 } 
;  ( 143,  ( ( _,  ( _,  _,  end_select1right)) !  ( _,  ( values::QQ_OPTIONLIST optionlist,  _,  _)) !  ( _,  ( values::START_SELECT start_select,  (start_selectleft as start_select1left),  _)) !  
rest671)) => {  my  result = values::QQ_FORM (htmlattrs::make_select (ctx start_selectleft, start_select, optionlist));
 ( lr_table::NONTERM 46,  ( result,  start_select1left,  end_select1right),  
rest671);
 } 
;  ( 144,  ( ( _,  ( _,  _,  end_textarea1right)) !  ( _,  ( values::QQ_PCDATA pcdata,  _,  _)) !  ( _,  ( values::START_TEXTAREA start_textarea,  (start_textarealeft as start_textarea1left),  _)) !  
rest671)) => {  my  result = values::QQ_FORM (htmlattrs::make_textarea(
                  ctx start_textarealeft, start_textarea,
                  pcdata)
                );
 ( lr_table::NONTERM 46,  ( result,  start_textarea1left,  
end_textarea1right),  rest671);
 } 
;  ( 145,  ( rest671)) => {  my  result = values::QQ_OPTIONLIST ([]);
 ( lr_table::NONTERM 47,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 146,  ( ( _,  ( values::QQ_OPTIONLIST optionlist,  _,  optionlist1right)) !  _ !  ( _,  ( values::QQ_PCDATA pcdata,  _,  _)) !  ( _,  ( values::START_OPTION start_option,  (start_optionleft as 
start_option1left),  _)) !  rest671)) => {  my  result = values::QQ_OPTIONLIST (htmlattrs::make_option (ctx start_optionleft, start_option, pcdata)
                  ! optionlist
                );
 ( lr_table::NONTERM 47,  ( 
result,  start_option1left,  optionlist1right),  rest671);
 } 
;  ( 147,  ( rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 48,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 148,  ( ( _,  ( _,  end_option1left,  end_option1right)) !  rest671)) => {  my  result = values::NT_VOID ();
 ( lr_table::NONTERM 48,  ( result,  end_option1left,  end_option1right),  rest671)
;
 } 
;  ( 149,  ( ( _,  ( values::QQ_PCDATALIST pcdatalist,  pcdatalist1left,  pcdatalist1right)) !  rest671)) => {  my  result = values::QQ_PCDATA (cat pcdatalist);
 ( lr_table::NONTERM 49,  ( result,  
pcdatalist1left,  pcdatalist1right),  rest671);
 } 
;  ( 150,  ( rest671)) => {  my  result = values::QQ_PCDATALIST ([]);
 ( lr_table::NONTERM 50,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 151,  ( ( _,  ( values::QQ_PCDATALIST pcdatalist,  _,  pcdatalist1right)) !  ( _,  ( values::QQ_PCDATAELEM pcdataelem,  pcdataelem1left,  _)) !  rest671)) => {  my  result = values::QQ_PCDATALIST
 (pcdataelem ! pcdatalist);
 ( lr_table::NONTERM 50,  ( result,  pcdataelem1left,  pcdatalist1right),  rest671);
 } 
;  ( 152,  ( ( _,  ( values::PCDATA pcdata,  pcdata1left,  pcdata1right)) !  rest671)) => {  my  result = values::QQ_PCDATAELEM (pcdata);
 ( lr_table::NONTERM 51,  ( result,  pcdata1left,  
pcdata1right),  rest671);
 } 
;  ( 153,  ( ( _,  ( values::CHAR_REF char_ref,  char_ref1left,  char_ref1right)) !  rest671)) => {  my  result = values::QQ_PCDATAELEM (char_ref);
 ( lr_table::NONTERM 51,  ( result,  char_ref1left, 
 char_ref1right),  rest671);
 } 
;  ( 154,  ( ( _,  ( values::ENTITY_REF entity_ref,  entity_ref1left,  entity_ref1right)) !  rest671)) => {  my  result = values::QQ_PCDATAELEM (entity_ref);
 ( lr_table::NONTERM 51,  ( result,  
entity_ref1left,  entity_ref1right),  rest671);
 } 
; _ => raise exception (MLY_ACTION i392);
esac;
end;
void = values::TM_VOID;
extract = \\ a = (\\ values::QQ_DOCUMENT x => x;
 _ => { exception PARSE_INTERNAL;
         raise exception PARSE_INTERNAL; }; end ) a ;
};
};
package tokens : (weak) Html_Tokens {
Semantic_Value = parser_data::Semantic_Value;
Token (X,Y) = token::Token(X,Y);
fun eof (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 0, (parser_data::values::TM_VOID, p1, p2));
fun start_a (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 1, (parser_data::values::START_A i, p1, p2));
fun end_a (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 2, (parser_data::values::TM_VOID, p1, p2));
fun start_address (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 3, (parser_data::values::TM_VOID, p1, p2));
fun end_address (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 4, (parser_data::values::TM_VOID, p1, p2));
fun start_applet (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 5, (parser_data::values::START_APPLET i, p1, p2));
fun end_applet (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 6, (parser_data::values::TM_VOID, p1, p2));
fun tag_area (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 7, (parser_data::values::TAG_AREA i, p1, p2));
fun start_b (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 8, (parser_data::values::TM_VOID, p1, p2));
fun end_b (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 9, (parser_data::values::TM_VOID, p1, p2));
fun tag_base (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 10, (parser_data::values::TAG_BASE i, p1, p2));
fun start_big (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 11, (parser_data::values::TM_VOID, p1, p2));
fun end_big (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 12, (parser_data::values::TM_VOID, p1, p2));
fun start_blockquote (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 13, (parser_data::values::TM_VOID, p1, p2));
fun end_blockquote (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 14, (parser_data::values::TM_VOID, p1, p2));
fun start_body (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 15, (parser_data::values::START_BODY i, p1, p2));
fun end_body (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 16, (parser_data::values::TM_VOID, p1, p2));
fun tag_br (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 17, (parser_data::values::TAG_BR i, p1, p2));
fun start_caption (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 18, (parser_data::values::START_CAPTION i, p1, p2));
fun end_caption (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 19, (parser_data::values::TM_VOID, p1, p2));
fun start_center (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 20, (parser_data::values::TM_VOID, p1, p2));
fun end_center (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 21, (parser_data::values::TM_VOID, p1, p2));
fun start_cite (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 22, (parser_data::values::TM_VOID, p1, p2));
fun end_cite (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 23, (parser_data::values::TM_VOID, p1, p2));
fun start_code (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 24, (parser_data::values::TM_VOID, p1, p2));
fun end_code (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 25, (parser_data::values::TM_VOID, p1, p2));
fun start_dd (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 26, (parser_data::values::TM_VOID, p1, p2));
fun end_dd (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 27, (parser_data::values::TM_VOID, p1, p2));
fun start_dfn (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 28, (parser_data::values::TM_VOID, p1, p2));
fun end_dfn (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 29, (parser_data::values::TM_VOID, p1, p2));
fun start_dir (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 30, (parser_data::values::START_DIR i, p1, p2));
fun end_dir (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 31, (parser_data::values::TM_VOID, p1, p2));
fun start_div (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 32, (parser_data::values::START_DIV i, p1, p2));
fun end_div (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 33, (parser_data::values::TM_VOID, p1, p2));
fun start_dl (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 34, (parser_data::values::START_DL i, p1, p2));
fun end_dl (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 35, (parser_data::values::TM_VOID, p1, p2));
fun start_dt (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 36, (parser_data::values::TM_VOID, p1, p2));
fun end_dt (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 37, (parser_data::values::TM_VOID, p1, p2));
fun start_em (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 38, (parser_data::values::TM_VOID, p1, p2));
fun end_em (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 39, (parser_data::values::TM_VOID, p1, p2));
fun start_font (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 40, (parser_data::values::START_FONT i, p1, p2));
fun end_font (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 41, (parser_data::values::TM_VOID, p1, p2));
fun start_basefont (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 42, (parser_data::values::START_BASEFONT i, p1, p2));
fun end_basefont (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 43, (parser_data::values::TM_VOID, p1, p2));
fun start_form (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 44, (parser_data::values::START_FORM i, p1, p2));
fun end_form (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 45, (parser_data::values::TM_VOID, p1, p2));
fun start_h1 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 46, (parser_data::values::START_H1 i, p1, p2));
fun end_h1 (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 47, (parser_data::values::TM_VOID, p1, p2));
fun start_h2 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 48, (parser_data::values::START_H2 i, p1, p2));
fun end_h2 (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 49, (parser_data::values::TM_VOID, p1, p2));
fun start_h3 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 50, (parser_data::values::START_H3 i, p1, p2));
fun end_h3 (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 51, (parser_data::values::TM_VOID, p1, p2));
fun start_h4 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 52, (parser_data::values::START_H4 i, p1, p2));
fun end_h4 (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 53, (parser_data::values::TM_VOID, p1, p2));
fun start_h5 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 54, (parser_data::values::START_H5 i, p1, p2));
fun end_h5 (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 55, (parser_data::values::TM_VOID, p1, p2));
fun start_h6 (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 56, (parser_data::values::START_H6 i, p1, p2));
fun end_h6 (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 57, (parser_data::values::TM_VOID, p1, p2));
fun start_head (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 58, (parser_data::values::TM_VOID, p1, p2));
fun end_head (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 59, (parser_data::values::TM_VOID, p1, p2));
fun tag_hr (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 60, (parser_data::values::TAG_HR i, p1, p2));
fun start_html (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 61, (parser_data::values::TM_VOID, p1, p2));
fun end_html (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 62, (parser_data::values::TM_VOID, p1, p2));
fun start_i (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 63, (parser_data::values::TM_VOID, p1, p2));
fun end_i (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 64, (parser_data::values::TM_VOID, p1, p2));
fun tag_img (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 65, (parser_data::values::TAG_IMG i, p1, p2));
fun tag_input (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 66, (parser_data::values::TAG_INPUT i, p1, p2));
fun tag_isindex (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 67, (parser_data::values::TAG_ISINDEX i, p1, p2));
fun start_kbd (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 68, (parser_data::values::TM_VOID, p1, p2));
fun end_kbd (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 69, (parser_data::values::TM_VOID, p1, p2));
fun start_li (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 70, (parser_data::values::START_LI i, p1, p2));
fun end_li (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 71, (parser_data::values::TM_VOID, p1, p2));
fun tag_link (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 72, (parser_data::values::TAG_LINK i, p1, p2));
fun start_map (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 73, (parser_data::values::START_MAP i, p1, p2));
fun end_map (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 74, (parser_data::values::TM_VOID, p1, p2));
fun start_menu (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 75, (parser_data::values::START_MENU i, p1, p2));
fun end_menu (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 76, (parser_data::values::TM_VOID, p1, p2));
fun tag_meta (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 77, (parser_data::values::TAG_META i, p1, p2));
fun start_ol (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 78, (parser_data::values::START_OL i, p1, p2));
fun end_ol (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 79, (parser_data::values::TM_VOID, p1, p2));
fun start_option (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 80, (parser_data::values::START_OPTION i, p1, p2));
fun end_option (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 81, (parser_data::values::TM_VOID, p1, p2));
fun start_p (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 82, (parser_data::values::START_P i, p1, p2));
fun end_p (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 83, (parser_data::values::TM_VOID, p1, p2));
fun tag_param (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 84, (parser_data::values::TAG_PARAM i, p1, p2));
fun start_pre (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 85, (parser_data::values::START_PRE i, p1, p2));
fun end_pre (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 86, (parser_data::values::TM_VOID, p1, p2));
fun start_samp (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 87, (parser_data::values::TM_VOID, p1, p2));
fun end_samp (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 88, (parser_data::values::TM_VOID, p1, p2));
fun start_script (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 89, (parser_data::values::TM_VOID, p1, p2));
fun end_script (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 90, (parser_data::values::TM_VOID, p1, p2));
fun start_select (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 91, (parser_data::values::START_SELECT i, p1, p2));
fun end_select (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 92, (parser_data::values::TM_VOID, p1, p2));
fun start_small (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 93, (parser_data::values::TM_VOID, p1, p2));
fun end_small (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 94, (parser_data::values::TM_VOID, p1, p2));
fun start_strike (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 95, (parser_data::values::TM_VOID, p1, p2));
fun end_strike (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 96, (parser_data::values::TM_VOID, p1, p2));
fun start_strong (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 97, (parser_data::values::TM_VOID, p1, p2));
fun end_strong (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 98, (parser_data::values::TM_VOID, p1, p2));
fun start_style (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 99, (parser_data::values::TM_VOID, p1, p2));
fun end_style (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 100, (parser_data::values::TM_VOID, p1, p2));
fun start_sub (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 101, (parser_data::values::TM_VOID, p1, p2));
fun end_sub (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 102, (parser_data::values::TM_VOID, p1, p2));
fun start_sup (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 103, (parser_data::values::TM_VOID, p1, p2));
fun end_sup (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 104, (parser_data::values::TM_VOID, p1, p2));
fun start_table (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 105, (parser_data::values::START_TABLE i, p1, p2));
fun end_table (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 106, (parser_data::values::TM_VOID, p1, p2));
fun start_td (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 107, (parser_data::values::START_TD i, p1, p2));
fun end_td (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 108, (parser_data::values::TM_VOID, p1, p2));
fun start_textarea (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 109, (parser_data::values::START_TEXTAREA i, p1, p2));
fun end_textarea (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 110, (parser_data::values::TM_VOID, p1, p2));
fun start_th (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 111, (parser_data::values::START_TH i, p1, p2));
fun end_th (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 112, (parser_data::values::TM_VOID, p1, p2));
fun start_title (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 113, (parser_data::values::TM_VOID, p1, p2));
fun end_title (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 114, (parser_data::values::TM_VOID, p1, p2));
fun start_tr (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 115, (parser_data::values::START_TR i, p1, p2));
fun end_tr (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 116, (parser_data::values::TM_VOID, p1, p2));
fun start_tt (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 117, (parser_data::values::TM_VOID, p1, p2));
fun end_tt (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 118, (parser_data::values::TM_VOID, p1, p2));
fun start_u (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 119, (parser_data::values::TM_VOID, p1, p2));
fun end_u (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 120, (parser_data::values::TM_VOID, p1, p2));
fun start_ul (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 121, (parser_data::values::START_UL i, p1, p2));
fun end_ul (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 122, (parser_data::values::TM_VOID, p1, p2));
fun start_var (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 123, (parser_data::values::TM_VOID, p1, p2));
fun end_var (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 124, (parser_data::values::TM_VOID, p1, p2));
fun pcdata (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 125, (parser_data::values::PCDATA i, p1, p2));
fun char_ref (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 126, (parser_data::values::CHAR_REF i, p1, p2));
fun entity_ref (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 127, (parser_data::values::ENTITY_REF i, p1, p2));
};
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext