PreviousUpNext

15.4.204  src/lib/c-kit/src/parser/grammar/c.grammar.pkg

generic package lr_vals_g(package token : Token; 
                            ) { 
package parser_data{
package header { 
#  DO NOT CHANGE THIS FILE -- this file was generated from cd.grammar 

# Compiled by:
#     src/lib/c-kit/src/parser/c-parser.sublib


#  new comments from Satish Chandra, 6/21/99 

# Overriding design approach: 
#
# Accept all legal programs, but possibly some illegal ones at this stage. 
# Do not attempt to make a really tight grammar. Our tools are supposed to
# work on "correct" C programs (i.e. those that cc -ansi would compile without
# warnings). Of course, a type checker on the parse tree can report some errors
# as syntax errors.
#
# Note on MARK:
#
# External_Decl, statement, and expression are the non-terms that are marked.
# Compound statements are not separately marked.
# declarations eventually become either a statement or a External_Decl
#   if they are outside any function. They are marked accordingly.
#
# Note on function definitions:
#
# The order of the paramaters will always come from the FUNC_DECR.
# The types of the parameter may come from the second declaration list  
# (in K&R style)
#
# Note on the package of the grammar:
#
# It is difficult to write a LALR(1) grammar based on the grammar given at
# the back of the K&R book. The basic difficulty is that both TYPE_NAME and
# IDENTIFIER are tokens that are strings, but it depends on the context whether
# a given string is to be treated as an IDENTIFIER or a TYPE_NAME.
# We have borrowed the solution used in GCC's parser specification. In this
# scheme, the lexer always return the token TYPE_NAME if a name has been 
# defined as a type name (via a typedef) in an applicable scope. The grammar 
# productions are heavily rearranged (from K&R's grammar) to do the right 
# thing. In this rearrangement, the basic idea is that a TYPE_NAME is  
# allowed to appear in a declaration as a plain identifier only after a type 
# specifier has previously appeared in the declaration. Also, a TYPE_NAME may 
# appear only once in a declaration as a type specifier.


#  old comments below 
#  Shortcomings 
# 1. No floating-point whatsoever

# Notes on MARK:
# External_Decl and statement are the non-terms that are marked.
# Compound statements are not separately marked.
# expressions are not marked at all.
# declarations eventually become either a statement or a External_Decl
#   if they are outside any function. they are marked accordingly.

 
# Overriding theme: accept all legal programs, but also some illegal ones at this
# stage. Do not attempt to make a really tight grammar. Our tools are supposed to
# work on "correct" C programs (i.e. those that cc -ansi would compile without
# warnings). Of course, a type checker on the parse tree can report some errors
# as syntax errors.



###                      "You can either have software quality
###                       or you can have pointer arithmetic,
###                       but you cannot have both at the same time."
###
###                                            -- Bertrand Meyer



# About function definitions:
# The order of the parameters will always come from the FUNC_DECR thing 
# The types of the parameter may come from the second declaration list  (in K&R style)


include package   parse_tree; # PortingHelp



fun mark_external_decl src_map (d, left, right)
    = 
    MARKEXTERNAL_DECL(line_number_db::location src_map (left, right), d);



fun mark_declaration src_map (d, left, right)
    = 
    MARKDECLARATION(line_number_db::location src_map (left, right), d);



fun mark_declarator src_map (d, left, right)
    = 
    MARKDECLARATOR(line_number_db::location src_map (left, right), d);



fun mark_statement src_map (s, left, right)
    = 
    MARKSTATEMENT(line_number_db::location src_map (left, right), s);



fun mark_expression src_map (s, left, right)
    = 
    MARKEXPRESSION(line_number_db::location src_map (left, right), s);

unknown = { storage => [], qualifiers => [], specifiers => [] }: Decltype;

# This code duplicated in BuildRawSyntaxTree in function processDeclarator:

fun ctype_decr_to_type_name (type as { qualifiers, specifiers }, decr)
    =
    {   fun mk_type spc =   { qualifiers => [], specifiers => [spc] };
        fun add_qual q =   { qualifiers => q ! qualifiers, specifiers };

        case decr

            VAR_DECR x => (type, THE x);

            POINTER_DECR x
                =>
                ctype_decr_to_type_name (mk_type (POINTER type), x);

            ARRAY_DECR (x, size)
                =>
                ctype_decr_to_type_name (mk_type (ARRAY (size, type)), x);

            FUNC_DECR (x, lst)
                =>
                ctype_decr_to_type_name (mk_type (FUNCTION { ret_type => type, parameters => lst } ), x);

            QUAL_DECR (q, decr)
                =>
                ctype_decr_to_type_name (add_qual q, decr);

            EMPTY_DECR                =>  (type, NULL);
            ELLIPSES_DECR             =>  (mk_type ELLIPSES, THE("**ellipses**"));
            DECR_EXT _                =>  (type, NULL);   # Should call decr extension?
            MARKDECLARATOR(loc, decr) =>  ctype_decr_to_type_name(type, decr);

        esac;
     };

fun dclr2str dcl
  = 
  case (ctype_decr_to_type_name ({ qualifiers => [], specifiers => [] }, dcl))

      (_, THE s) =>  s;
      (_, NULL)  =>  "";
  esac;

fun combine_decltypes ( { qualifiers => q1, storage => st1, specifiers => sp1 },
                        { qualifiers => q2, storage => st2, specifiers => sp2 }
                      )
  =
  { qualifiers => q1@q2, storage => st1@st2, specifiers => sp1@sp2 };      #   @ ok

fun apply_pointer (POINTER_DECR x, rest) => POINTER_DECR (apply_pointer (x, rest));
    apply_pointer (QUAL_DECR (q, x), rest) => QUAL_DECR (q, apply_pointer (x, rest));
    apply_pointer (EMPTY_DECR, rest) => rest;
    apply_pointer (_, rest) => rest;
end;  
    /* NCH/David B MacQueen[6/14/99]: this case can never occur  */



fun add_storage (st, { qualifiers, storage, specifiers } )
    =
    { qualifiers, storage => st ! storage, specifiers };



fun add_qualifiers (qs, { qualifiers, storage, specifiers } )
    =
    { qualifiers => qs@qualifiers, storage, specifiers };    #   @ ok



fun add_qualifier (q, { qualifiers, storage, specifiers } )
    =
    { qualifiers => q ! qualifiers, storage, specifiers };



fun add_specifier (sp, { qualifiers, storage, specifiers } )
    =
    { qualifiers, storage, specifiers => sp ! specifiers };



add_all = combine_decltypes;

fun loop_qd (q ! rst, acc) => loop_qd(rst, QUAL_DECR (q, acc));
    loop_qd (NIL, acc) => acc;
end;

fun mk_ctype type = type;


# David B MacQueen: major kludge, using TYPEDEF as storage ilk 

fun insert_decl_names ({ storage, ... }: Decltype, idl)
    =
    case storage
         [TYPEDEF] =>  list::apply (\\ x as (dcl, _) =  type_defs::add_tdef    (dclr2str dcl))  idl;
         _         =>  list::apply (\\ x as (dcl, _) =  type_defs::add_no_tdef (dclr2str dcl))  idl;
    esac;

fun insert_func_name dcl
      =
      {   name = dclr2str dcl;
          type_defs::add_no_tdef name;
      };

fun insert_func_params (FUNC_DECR (_, parameters)) : Void
    => 
    {   fun get_name (ct, dclr)
            =
            dclr2str dclr;

        names = map get_name parameters;

        list::apply type_defs::add_no_tdef names;
    };

    insert_func_params (ARRAY_DECR (dcl, _)) => insert_func_params dcl;
    insert_func_params (POINTER_DECR dcl) => insert_func_params dcl;
    insert_func_params _ => ();    # This is actually an error, but it will be caught in
end;                             # BuildRawSyntaxTree when processing a xt::FUN

stipulate
    Seq X = SEQ List(X);        # Start of abstype-replacement recipe -- see http://successor-ml.org/index.php?title=Degrade_abstype_to_derived_form 
herein                          #
    Seq(X) = Seq(X);            # End of abstype-replacement recipe.

    empty_seq = SEQ NIL;
    fun singleton_seq x = SEQ [x];
    fun add_to_seq (x, SEQ yl) = SEQ(x ! yl);      # add to end of sequence!
#   fun addListToEnd(xl, yl) = SEQ((list::reverse xl) @ yl);

    fun add_opt_to_end (NULL,  yl    ) =>   yl;
        add_opt_to_end (THE x, SEQ yl) =>   SEQ(x ! yl);
    end;

    fun seq_to_list (SEQ yl)
        =
        list::reverse yl;
end;


};
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\xa9\x00\x04\x00\x46\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\
\\x59\x00\x45\x00\x00\x00\
\\x01\x00\x02\x00\xae\x00\x04\x00\x2b\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\
\\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\
\\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\
\\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\
\\x59\x00\x15\x00\x00\x00\
\\x01\x00\x02\x00\xe2\x00\x00\x00\
\\x01\x00\x02\x00\x4b\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x02\x00\x73\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x03\x00\x53\x02\x06\x00\x82\x02\x0b\x00\x53\x02\x1b\x00\x8b\x00\
\\x34\x00\x82\x02\x35\x00\x82\x02\x36\x00\x82\x02\x37\x00\x82\x02\
\\x38\x00\x82\x02\x39\x00\x82\x02\x47\x00\x82\x02\x48\x00\x82\x02\
\\x49\x00\x82\x02\x4a\x00\x82\x02\x4b\x00\x82\x02\x4c\x00\x82\x02\
\\x4d\x00\x82\x02\x50\x00\x82\x02\x51\x00\x82\x02\x52\x00\x82\x02\
\\x53\x00\x82\x02\x54\x00\x82\x02\x56\x00\x82\x02\x59\x00\x82\x02\x00\x00\
\\x01\x00\x03\x00\x57\x02\x06\x00\x83\x02\x0b\x00\x57\x02\x1b\x00\x87\x00\
\\x34\x00\x83\x02\x35\x00\x83\x02\x36\x00\x83\x02\x37\x00\x83\x02\
\\x38\x00\x83\x02\x39\x00\x83\x02\x47\x00\x83\x02\x48\x00\x83\x02\
\\x49\x00\x83\x02\x4a\x00\x83\x02\x4b\x00\x83\x02\x4c\x00\x83\x02\
\\x4d\x00\x83\x02\x50\x00\x83\x02\x51\x00\x83\x02\x52\x00\x83\x02\
\\x53\x00\x83\x02\x54\x00\x83\x02\x56\x00\x83\x02\x59\x00\x83\x02\x00\x00\
\\x01\x00\x03\x00\x30\x00\x00\x00\
\\x01\x00\x03\x00\x7f\x00\x04\x00\x7e\x00\x06\x00\x36\x00\x07\x00\xc2\x01\
\\x0e\x00\x7d\x00\x10\x00\x7c\x00\x12\x00\x7b\x00\x13\x00\x7a\x00\
\\x15\x00\x79\x00\x16\x00\x78\x00\x17\x00\x77\x00\x18\x00\x76\x00\
\\x1a\x00\x75\x00\x30\x00\x74\x00\x31\x00\x73\x00\x32\x00\x72\x00\
\\x33\x00\x71\x00\x34\x00\x9c\x02\x35\x00\x9c\x02\x36\x00\x9c\x02\
\\x37\x00\x9c\x02\x38\x00\x9c\x02\x39\x00\x9c\x02\x3a\x00\x70\x00\
\\x3d\x00\x6f\x00\x3e\x00\x6e\x00\x3f\x00\x6d\x00\x40\x00\x6c\x00\
\\x41\x00\x6b\x00\x42\x00\x6a\x00\x43\x00\x69\x00\x44\x00\x68\x00\
\\x45\x00\x67\x00\x46\x00\x66\x00\x47\x00\x9c\x02\x48\x00\x9c\x02\
\\x49\x00\x9c\x02\x4a\x00\x9c\x02\x4b\x00\x9c\x02\x4c\x00\x9c\x02\
\\x4d\x00\x9c\x02\x50\x00\x9c\x02\x51\x00\x9c\x02\x52\x00\x9c\x02\
\\x53\x00\x9c\x02\x54\x00\x9c\x02\x55\x00\x65\x00\x56\x00\x9c\x02\
\\x59\x00\x9c\x02\x00\x00\
\\x01\x00\x03\x00\x7f\x00\x04\x00\x7e\x00\x06\x00\x36\x00\x0e\x00\x7d\x00\
\\x10\x00\x7c\x00\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\
\\x16\x00\x78\x00\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x75\x00\
\\x30\x00\x74\x00\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\
\\x3a\x00\x70\x00\x3d\x00\x6f\x00\x3e\x00\x6e\x00\x3f\x00\x6d\x00\
\\x40\x00\x6c\x00\x41\x00\x6b\x00\x42\x00\x6a\x00\x43\x00\x69\x00\
\\x44\x00\x68\x00\x45\x00\x67\x00\x46\x00\x66\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x03\x00\xb3\x00\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x03\x00\xdd\x00\x00\x00\
\\x01\x00\x03\x00\xde\x00\x00\x00\
\\x01\x00\x03\x00\x15\x01\x0b\x00\x14\x01\x00\x00\
\\x01\x00\x03\x00\x19\x01\x0b\x00\x18\x01\x00\x00\
\\x01\x00\x03\x00\x47\x01\x00\x00\
\\x01\x00\x03\x00\x48\x01\x00\x00\
\\x01\x00\x03\x00\x7c\x01\x00\x00\
\\x01\x00\x03\x00\x9f\x01\x00\x00\
\\x01\x00\x03\x00\xa1\x01\x00\x00\
\\x01\x00\x04\x00\x2b\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\x00\x00\
\\x01\x00\x04\x00\x2b\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\x34\x00\x28\x00\
\\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\x38\x00\x24\x00\
\\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\
\\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\
\\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\
\\x54\x00\x17\x00\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x04\x00\x2b\x00\x1a\x00\x29\x00\x00\x00\
\\x01\x00\x04\x00\x46\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\x59\x00\x45\x00\x00\x00\
\\x01\x00\x04\x00\x46\x00\x1a\x00\x29\x00\x59\x00\x45\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x05\x00\x45\x01\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x06\x00\xf2\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x09\x00\x91\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x09\x00\xf5\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x09\x00\x62\x01\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x09\x00\x82\x01\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x09\x00\x89\x01\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\x12\x00\x7b\x00\
\\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\x17\x00\x77\x00\
\\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\x31\x00\x73\x00\
\\x32\x00\x72\x00\x33\x00\x71\x00\x38\x00\x24\x00\x39\x00\x23\x00\
\\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\
\\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\
\\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\
\\x55\x00\x65\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x04\x00\x7e\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\x12\x00\x7b\x00\
\\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\x17\x00\x77\x00\
\\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\x31\x00\x73\x00\
\\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\xd7\x00\x08\x00\xd6\x00\x09\x00\xfc\x00\x0a\x00\xd5\x00\
\\x0c\x00\xd4\x00\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\
\\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\
\\x1b\x00\xc8\x00\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\
\\x1f\x00\xc4\x00\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\
\\x23\x00\xc0\x00\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\x01\x00\x04\x00\xd7\x00\x08\x00\xd6\x00\x09\x00\x58\x01\x0a\x00\xd5\x00\
\\x0c\x00\xd4\x00\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\
\\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\
\\x1b\x00\xc8\x00\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\
\\x1f\x00\xc4\x00\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\
\\x23\x00\xc0\x00\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\x01\x00\x04\x00\xd7\x00\x08\x00\xd6\x00\x09\x00\x85\x01\x0a\x00\xd5\x00\
\\x0c\x00\xd4\x00\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\
\\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\
\\x1b\x00\xc8\x00\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\
\\x1f\x00\xc4\x00\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\
\\x23\x00\xc0\x00\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\x01\x00\x04\x00\xd7\x00\x08\x00\xd6\x00\x09\x00\x99\x01\x0a\x00\xd5\x00\
\\x0c\x00\xd4\x00\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\
\\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\
\\x1b\x00\xc8\x00\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\
\\x1f\x00\xc4\x00\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\
\\x23\x00\xc0\x00\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\x01\x00\x04\x00\xd7\x00\x08\x00\xd6\x00\x09\x00\x9b\x01\x0a\x00\xd5\x00\
\\x0c\x00\xd4\x00\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\
\\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\
\\x1b\x00\xc8\x00\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\
\\x1f\x00\xc4\x00\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\
\\x23\x00\xc0\x00\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\x01\x00\x04\x00\xdb\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\x12\x00\x7b\x00\
\\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\x17\x00\x77\x00\
\\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\x31\x00\x73\x00\
\\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x01\x00\x04\x00\xe1\x00\x00\x00\
\\x01\x00\x04\x00\xe4\x00\x00\x00\
\\x01\x00\x04\x00\xe6\x00\x00\x00\
\\x01\x00\x04\x00\xe7\x00\x00\x00\
\\x01\x00\x04\x00\x06\x01\x05\x00\x65\x01\x08\x00\x05\x01\x16\x00\x2a\x00\
\\x1a\x00\x29\x00\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\
\\x37\x00\x25\x00\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\
\\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\
\\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\
\\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\
\\x59\x00\x15\x00\x00\x00\
\\x01\x00\x04\x00\x06\x01\x08\x00\x05\x01\x16\x00\x2a\x00\x1a\x00\x29\x00\
\\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x04\x00\x53\x01\x05\x00\x65\x01\x08\x00\x05\x01\x16\x00\x2a\x00\
\\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x04\x00\x7b\x01\x00\x00\
\\x01\x00\x05\x00\x99\x00\x1a\x00\x98\x00\x34\x00\x28\x00\x35\x00\x27\x00\
\\x36\x00\x26\x00\x37\x00\x25\x00\x38\x00\x24\x00\x39\x00\x23\x00\
\\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\
\\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\
\\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\
\\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x05\x00\xa1\x00\x00\x00\
\\x01\x00\x05\x00\xf8\x00\x1a\x00\x98\x00\x34\x00\x28\x00\x35\x00\x27\x00\
\\x36\x00\x26\x00\x37\x00\x25\x00\x38\x00\x24\x00\x39\x00\x23\x00\
\\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\
\\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\
\\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\
\\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x05\x00\xfb\x00\x00\x00\
\\x01\x00\x05\x00\xfd\x00\x00\x00\
\\x01\x00\x05\x00\x00\x01\x0b\x00\xff\x00\x00\x00\
\\x01\x00\x05\x00\x54\x01\x00\x00\
\\x01\x00\x05\x00\x55\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x05\x00\x59\x01\x00\x00\
\\x01\x00\x05\x00\x5a\x01\x0b\x00\xff\x00\x00\x00\
\\x01\x00\x05\x00\x76\x01\x0b\x00\x75\x01\x00\x00\
\\x01\x00\x05\x00\x77\x01\x00\x00\
\\x01\x00\x05\x00\x78\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x05\x00\x7a\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x05\x00\x7d\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x05\x00\x84\x01\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\
\\x37\x00\x25\x00\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\
\\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\
\\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\
\\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\
\\x59\x00\x15\x00\x00\x00\
\\x01\x00\x05\x00\x86\x01\x00\x00\
\\x01\x00\x05\x00\x87\x01\x00\x00\
\\x01\x00\x05\x00\x8c\x01\x1a\x00\x98\x00\x34\x00\x28\x00\x35\x00\x27\x00\
\\x36\x00\x26\x00\x37\x00\x25\x00\x38\x00\x24\x00\x39\x00\x23\x00\
\\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\
\\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\
\\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\
\\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x05\x00\x9a\x01\x00\x00\
\\x01\x00\x05\x00\x9c\x01\x00\x00\
\\x01\x00\x05\x00\x9d\x01\x0b\x00\xff\x00\x00\x00\
\\x01\x00\x05\x00\x9e\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x05\x00\xa4\x01\x00\x00\
\\x01\x00\x06\x00\x2f\x00\x1a\x00\x2e\x00\x59\x00\x2d\x00\x00\x00\
\\x01\x00\x06\x00\x36\x00\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\
\\x37\x00\x25\x00\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\
\\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\
\\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\
\\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\
\\x59\x00\x15\x00\x00\x00\
\\x01\x00\x06\x00\x4c\x00\x1a\x00\x4b\x00\x59\x00\x4a\x00\x00\x00\
\\x01\x00\x07\x00\xa5\x00\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\
\\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\
\\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\
\\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x07\x00\xd9\x00\x00\x00\
\\x01\x00\x07\x00\x12\x01\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\
\\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\
\\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\
\\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x07\x00\x13\x01\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\
\\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\
\\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\
\\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x07\x00\x6b\x01\x00\x00\
\\x01\x00\x07\x00\x8d\x01\x00\x00\
\\x01\x00\x07\x00\x8e\x01\x00\x00\
\\x01\x00\x07\x00\x8f\x01\x00\x00\
\\x01\x00\x07\x00\x97\x01\x00\x00\
\\x01\x00\x09\x00\x74\x01\x0b\x00\xb2\x00\x00\x00\
\\x01\x00\x1a\x00\x9e\x00\x00\x00\
\\x01\x00\x1a\x00\xdc\x00\x00\x00\
\\x01\x00\x1a\x00\x36\x01\x59\x00\x35\x01\x00\x00\
\\x01\x00\x1a\x00\x41\x01\x59\x00\x40\x01\x00\x00\
\\x01\x00\x1a\x00\x5d\x01\x00\x00\
\\x01\x00\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x58\x00\x5c\x01\
\\x59\x00\x15\x00\x00\x00\
\\x01\x00\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x59\x00\x15\x00\x00\x00\
\\x01\x00\x42\x00\x4d\x01\x00\x00\
\\x01\x00\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\x4a\x00\x1f\x00\
\\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\x50\x00\x1b\x00\
\\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\x54\x00\x17\x00\
\\x59\x00\x15\x00\x00\x00\
\\xa7\x01\x03\x00\x2c\x00\x04\x00\x2b\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\
\\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\xa8\x01\x00\x00\
\\xa9\x01\x00\x00\
\\xaa\x01\x00\x00\
\\xab\x01\x00\x00\
\\xac\x01\x00\x00\
\\xad\x01\x00\x00\
\\xae\x01\x00\x00\
\\xaf\x01\x00\x00\
\\xb0\x01\x00\x00\
\\xb1\x01\x00\x00\
\\xb2\x01\x00\x00\
\\xb3\x01\x00\x00\
\\xb4\x01\x00\x00\
\\xb5\x01\x00\x00\
\\xb6\x01\x00\x00\
\\xb7\x01\x00\x00\
\\xb8\x01\x00\x00\
\\xb9\x01\x3c\x00\xa0\x01\x00\x00\
\\xba\x01\x00\x00\
\\xbb\x01\x00\x00\
\\xbc\x01\x00\x00\
\\xbd\x01\x00\x00\
\\xbe\x01\x04\x00\x46\x00\x16\x00\x2a\x00\x1a\x00\x29\x00\x59\x00\x45\x00\x00\x00\
\\xbf\x01\x0b\x00\x8d\x00\x00\x00\
\\xc0\x01\x0b\x00\x88\x00\x00\x00\
\\xc1\x01\x03\x00\x7f\x00\x04\x00\x7e\x00\x06\x00\x36\x00\x0e\x00\x7d\x00\
\\x10\x00\x7c\x00\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\
\\x16\x00\x78\x00\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x75\x00\
\\x30\x00\x74\x00\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\
\\x3a\x00\x70\x00\x3d\x00\x6f\x00\x3e\x00\x6e\x00\x3f\x00\x6d\x00\
\\x40\x00\x6c\x00\x41\x00\x6b\x00\x42\x00\x6a\x00\x43\x00\x69\x00\
\\x44\x00\x68\x00\x45\x00\x67\x00\x46\x00\x66\x00\x55\x00\x65\x00\x00\x00\
\\xc2\x01\x03\x00\x7f\x00\x04\x00\x7e\x00\x06\x00\x36\x00\x0e\x00\x7d\x00\
\\x10\x00\x7c\x00\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\
\\x16\x00\x78\x00\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x75\x00\
\\x30\x00\x74\x00\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\
\\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x3a\x00\x70\x00\x3d\x00\x6f\x00\
\\x3e\x00\x6e\x00\x3f\x00\x6d\x00\x40\x00\x6c\x00\x41\x00\x6b\x00\
\\x42\x00\x6a\x00\x43\x00\x69\x00\x44\x00\x68\x00\x45\x00\x67\x00\
\\x46\x00\x66\x00\x47\x00\x22\x00\x48\x00\x21\x00\x49\x00\x20\x00\
\\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\x4d\x00\x1c\x00\
\\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\x53\x00\x18\x00\
\\x54\x00\x17\x00\x55\x00\x65\x00\x56\x00\x16\x00\x59\x00\x15\x00\x00\x00\
\\xc3\x01\x00\x00\
\\xc4\x01\x00\x00\
\\xc5\x01\x00\x00\
\\xc6\x01\x00\x00\
\\xc7\x01\x00\x00\
\\xc8\x01\x00\x00\
\\xc9\x01\x00\x00\
\\xca\x01\x00\x00\
\\xcb\x01\x00\x00\
\\xcc\x01\x00\x00\
\\xcd\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xce\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xcf\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd0\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd1\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd2\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd3\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd4\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd5\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd6\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd7\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd8\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xd9\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\x12\x00\xcf\x00\
\\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xda\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\x12\x00\xcf\x00\
\\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xdb\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x0e\x00\xd2\x00\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\
\\x14\x00\xcd\x00\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\
\\x19\x00\xc9\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\x28\x00\xbb\x00\
\\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xdc\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x0e\x00\xd2\x00\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\
\\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\
\\x26\x00\xbd\x00\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\
\\x2a\x00\xb9\x00\x2b\x00\xb8\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xdd\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\
\\x2b\x00\xb8\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\xde\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xdf\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x26\x00\xbd\x00\
\\x27\x00\xbc\x00\x28\x00\xbb\x00\x29\x00\xba\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xe0\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xe1\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xe2\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xe3\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x2e\x00\xb5\x00\
\\x2f\x00\xb4\x00\x00\x00\
\\xe4\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xe5\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x12\x00\xcf\x00\x13\x00\xce\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xe6\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\
\\x19\x00\xc9\x00\x00\x00\
\\xe7\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0d\x00\xd3\x00\
\\x11\x00\xd0\x00\x16\x00\xcc\x00\x17\x00\xcb\x00\x18\x00\xca\x00\
\\x19\x00\xc9\x00\x00\x00\
\\xe8\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xe9\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xea\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xeb\x01\x00\x00\
\\xec\x01\x00\x00\
\\xed\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xee\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xef\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xf0\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xf1\x01\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x17\x00\xcb\x00\
\\x18\x00\xca\x00\x19\x00\xc9\x00\x00\x00\
\\xf2\x01\x04\x00\x7e\x00\x10\x00\x7c\x00\x15\x00\x79\x00\x17\x00\x77\x00\
\\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\x31\x00\x73\x00\
\\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\xf3\x01\x00\x00\
\\xf4\x01\x00\x00\
\\xf5\x01\x00\x00\
\\xf6\x01\x00\x00\
\\xf7\x01\x00\x00\
\\xf8\x01\x00\x00\
\\xf9\x01\x00\x00\
\\xfa\x01\x00\x00\
\\xfb\x01\x00\x00\
\\xfc\x01\x00\x00\
\\xfd\x01\x00\x00\
\\xfe\x01\x00\x00\
\\xfe\x01\x02\x00\xe9\x00\x00\x00\
\\xff\x01\x00\x00\
\\x00\x02\x32\x00\x72\x00\x00\x00\
\\x01\x02\x00\x00\
\\x02\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x03\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x04\x02\x04\x00\x7e\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\x12\x00\x7b\x00\
\\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\x17\x00\x77\x00\
\\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\x31\x00\x73\x00\
\\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x05\x02\x0b\x00\xb2\x00\x00\x00\
\\x06\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x07\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x08\x02\x04\x00\x53\x01\x08\x00\x05\x01\x16\x00\x2a\x00\x00\x00\
\\x09\x02\x00\x00\
\\x0a\x02\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x00\x00\
\\x0b\x02\x34\x00\x28\x00\x35\x00\x27\x00\x36\x00\x26\x00\x37\x00\x25\x00\
\\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x56\x00\x16\x00\x00\x00\
\\x0c\x02\x00\x00\
\\x0d\x02\x00\x00\
\\x0e\x02\x00\x00\
\\x0f\x02\x00\x00\
\\x10\x02\x00\x00\
\\x11\x02\x00\x00\
\\x12\x02\x00\x00\
\\x13\x02\x00\x00\
\\x14\x02\x00\x00\
\\x15\x02\x00\x00\
\\x16\x02\x00\x00\
\\x17\x02\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x00\x00\
\\x18\x02\x38\x00\x24\x00\x39\x00\x23\x00\x47\x00\x22\x00\x48\x00\x21\x00\
\\x49\x00\x20\x00\x4a\x00\x1f\x00\x4b\x00\x1e\x00\x4c\x00\x1d\x00\
\\x4d\x00\x1c\x00\x50\x00\x1b\x00\x51\x00\x1a\x00\x52\x00\x19\x00\
\\x53\x00\x18\x00\x54\x00\x17\x00\x00\x00\
\\x19\x02\x00\x00\
\\x1a\x02\x00\x00\
\\x1b\x02\x38\x00\x24\x00\x39\x00\x23\x00\x00\x00\
\\x1c\x02\x00\x00\
\\x1d\x02\x00\x00\
\\x1e\x02\x00\x00\
\\x1f\x02\x00\x00\
\\x20\x02\x00\x00\
\\x21\x02\x00\x00\
\\x22\x02\x00\x00\
\\x23\x02\x00\x00\
\\x24\x02\x00\x00\
\\x25\x02\x00\x00\
\\x26\x02\x00\x00\
\\x27\x02\x00\x00\
\\x28\x02\x00\x00\
\\x29\x02\x00\x00\
\\x2a\x02\x00\x00\
\\x2b\x02\x00\x00\
\\x2c\x02\x00\x00\
\\x2d\x02\x06\x00\x52\x00\x00\x00\
\\x2e\x02\x06\x00\x51\x00\x00\x00\
\\x2f\x02\x00\x00\
\\x30\x02\x00\x00\
\\x31\x02\x00\x00\
\\x32\x02\x00\x00\
\\x33\x02\x00\x00\
\\x34\x02\x00\x00\
\\x35\x02\x00\x00\
\\x36\x02\x00\x00\
\\x37\x02\x00\x00\
\\x38\x02\x00\x00\
\\x39\x02\x02\x00\x16\x01\x00\x00\
\\x3a\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x3b\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x3c\x02\x02\x00\x1b\x01\x00\x00\
\\x3d\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x3e\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x3f\x02\x00\x00\
\\x40\x02\x00\x00\
\\x41\x02\x00\x00\
\\x42\x02\x00\x00\
\\x43\x02\x00\x00\
\\x44\x02\x06\x00\x9b\x00\x00\x00\
\\x45\x02\x06\x00\x9a\x00\x00\x00\
\\x46\x02\x00\x00\
\\x47\x02\x00\x00\
\\x48\x02\x1b\x00\x11\x01\x00\x00\
\\x49\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x4a\x02\x00\x00\
\\x4b\x02\x00\x00\
\\x4c\x02\x00\x00\
\\x4d\x02\x00\x00\
\\x4e\x02\x00\x00\
\\x4f\x02\x0b\x00\x10\x01\x00\x00\
\\x4f\x02\x0b\x00\x80\x01\x00\x00\
\\x50\x02\x04\x00\x7e\x00\x06\x00\xf2\x00\x0e\x00\x7d\x00\x10\x00\x7c\x00\
\\x12\x00\x7b\x00\x13\x00\x7a\x00\x15\x00\x79\x00\x16\x00\x78\x00\
\\x17\x00\x77\x00\x18\x00\x76\x00\x1a\x00\x90\x00\x30\x00\x74\x00\
\\x31\x00\x73\x00\x32\x00\x72\x00\x33\x00\x71\x00\x55\x00\x65\x00\x00\x00\
\\x50\x02\x1a\x00\x9e\x00\x00\x00\
\\x51\x02\x00\x00\
\\x52\x02\x00\x00\
\\x53\x02\x1b\x00\x8b\x00\x00\x00\
\\x54\x02\x00\x00\
\\x55\x02\x00\x00\
\\x56\x02\x00\x00\
\\x57\x02\x1b\x00\x87\x00\x00\x00\
\\x58\x02\x00\x00\
\\x59\x02\x00\x00\
\\x5a\x02\x00\x00\
\\x5b\x02\x04\x00\x8a\x00\x08\x00\x89\x00\x00\x00\
\\x5c\x02\x04\x00\x8a\x00\x08\x00\x89\x00\x00\x00\
\\x5d\x02\x04\x00\x48\x00\x08\x00\x47\x00\x00\x00\
\\x5e\x02\x04\x00\x48\x00\x08\x00\x47\x00\x00\x00\
\\x5f\x02\x04\x00\x67\x01\x08\x00\x66\x01\x00\x00\
\\x60\x02\x04\x00\x67\x01\x08\x00\x66\x01\x00\x00\
\\x61\x02\x16\x00\x2a\x00\x38\x00\x24\x00\x39\x00\x23\x00\x00\x00\
\\x62\x02\x16\x00\x2a\x00\x00\x00\
\\x63\x02\x00\x00\
\\x64\x02\x00\x00\
\\x65\x02\x00\x00\
\\x66\x02\x00\x00\
\\x67\x02\x00\x00\
\\x68\x02\x00\x00\
\\x69\x02\x00\x00\
\\x6a\x02\x00\x00\
\\x6b\x02\x00\x00\
\\x6c\x02\x00\x00\
\\x6d\x02\x00\x00\
\\x6e\x02\x00\x00\
\\x6f\x02\x00\x00\
\\x70\x02\x00\x00\
\\x71\x02\x00\x00\
\\x72\x02\x00\x00\
\\x73\x02\x00\x00\
\\x74\x02\x00\x00\
\\x75\x02\x00\x00\
\\x76\x02\x00\x00\
\\x77\x02\x00\x00\
\\x78\x02\x00\x00\
\\x79\x02\x04\x00\xd7\x00\x08\x00\xd6\x00\x0a\x00\xd5\x00\x0c\x00\xd4\x00\
\\x0d\x00\xd3\x00\x0e\x00\xd2\x00\x0f\x00\xd1\x00\x11\x00\xd0\x00\
\\x12\x00\xcf\x00\x13\x00\xce\x00\x14\x00\xcd\x00\x16\x00\xcc\x00\
\\x17\x00\xcb\x00\x18\x00\xca\x00\x19\x00\xc9\x00\x1b\x00\xc8\x00\
\\x1c\x00\xc7\x00\x1d\x00\xc6\x00\x1e\x00\xc5\x00\x1f\x00\xc4\x00\
\\x20\x00\xc3\x00\x21\x00\xc2\x00\x22\x00\xc1\x00\x23\x00\xc0\x00\
\\x24\x00\xbf\x00\x25\x00\xbe\x00\x26\x00\xbd\x00\x27\x00\xbc\x00\
\\x28\x00\xbb\x00\x29\x00\xba\x00\x2a\x00\xb9\x00\x2b\x00\xb8\x00\
\\x2c\x00\xb7\x00\x2d\x00\xb6\x00\x2e\x00\xb5\x00\x2f\x00\xb4\x00\x00\x00\
\\x7a\x02\x00\x00\
\\x7b\x02\x00\x00\
\\x7c\x02\x00\x00\
\\x7d\x02\x00\x00\
\\x7e\x02\x00\x00\
\\x7f\x02\x00\x00\
\\x80\x02\x00\x00\
\\x81\x02\x00\x00\
\\x84\x02\x00\x00\
\\x85\x02\x00\x00\
\\x86\x02\x04\x00\x06\x01\x08\x00\x05\x01\x1a\x00\x29\x00\x00\x00\
\\x86\x02\x04\x00\x06\x01\x08\x00\x05\x01\x1a\x00\x29\x00\x59\x00\x0c\x01\x00\x00\
\\x86\x02\x04\x00\x53\x01\x08\x00\x05\x01\x00\x00\
\\x87\x02\x04\x00\x60\x01\x08\x00\x5f\x01\x00\x00\
\\x88\x02\x04\x00\x60\x01\x08\x00\x5f\x01\x00\x00\
\\x89\x02\x00\x00\
\\x8a\x02\x00\x00\
\\x8b\x02\x00\x00\
\\x8c\x02\x00\x00\
\\x8d\x02\x00\x00\
\\x8e\x02\x00\x00\
\\x8f\x02\x00\x00\
\\x90\x02\x00\x00\
\\x91\x02\x00\x00\
\\x92\x02\x0b\x00\xfe\x00\x00\x00\
\\x93\x02\x00\x00\
\\x94\x02\x00\x00\
\\x95\x02\x00\x00\
\\x96\x02\x00\x00\
\\x97\x02\x00\x00\
\\x98\x02\x04\x00\x06\x01\x08\x00\x05\x01\x16\x00\x2a\x00\x1a\x00\x29\x00\
\\x59\x00\x0c\x01\x00\x00\
\\x99\x02\x00\x00\
\\x9a\x02\x00\x00\
\\x9b\x02\x00\x00\
\\x9d\x02\x00\x00\
\";
    action_row_numbers =
"\x61\x00\x60\x00\x49\x00\x62\x00\
\\x08\x00\x63\x00\x65\x00\x4a\x00\
\\xd8\x00\xd9\x00\xcf\x00\xd7\x00\
\\xc6\x00\xcd\x00\x16\x00\x77\x00\
\\x19\x01\x3d\x01\x17\x00\xda\x00\
\\x08\x01\xdb\x00\xe2\x00\xe3\x00\
\\xea\x00\xe9\x00\xdd\x00\xdf\x00\
\\xde\x00\xe0\x00\x4b\x00\xe1\x00\
\\xdc\x00\xfa\x00\xf9\x00\x07\x01\
\\x05\x01\x06\x01\x04\x01\x28\x01\
\\x1d\x01\x15\x00\x64\x00\xe8\x00\
\\xe7\x00\x5d\x00\x76\x00\x39\x01\
\\x4a\x00\x16\x00\x77\x00\x3e\x01\
\\x09\x00\xc4\x00\xd0\x00\xc6\x00\
\\xce\x00\x07\x00\x79\x00\x11\x01\
\\x17\x01\x16\x01\x15\x01\x06\x00\
\\x19\x00\x78\x00\x0d\x01\x21\x01\
\\x18\x00\x1c\x00\x31\x00\x1a\x01\
\\xff\x00\xfe\x00\x56\x00\x1e\x01\
\\xd5\x00\x1f\x01\x32\x00\x5d\x00\
\\x5d\x00\xeb\x00\x4c\x00\x01\x00\
\\x02\x00\xd3\x00\x3a\x01\x3f\x01\
\\x13\x01\x0f\x01\xb9\x00\x5c\x00\
\\x22\x00\x0b\x00\xbc\x00\x6e\x00\
\\x7a\x00\x4d\x00\x7c\x00\x28\x00\
\\x57\x00\x0c\x00\x0d\x00\xbe\x00\
\\x29\x00\x03\x00\x22\x00\x2a\x00\
\\x0a\x00\x2b\x00\x2c\x00\xb6\x00\
\\xba\x00\xb5\x00\xb4\x00\xb8\x00\
\\x22\x00\x22\x00\x81\x00\x85\x00\
\\x83\x00\x82\x00\x84\x00\x80\x00\
\\x21\x00\x75\x00\xcb\x00\xcc\x00\
\\xca\x00\xc9\x00\xc8\x00\xc7\x00\
\\xc5\x00\x1b\x00\x18\x00\x1d\x00\
\\x33\x00\x1b\x00\x18\x01\x18\x00\
\\x34\x00\x23\x00\xb7\x00\x2a\x01\
\\x50\x01\x35\x00\x4e\x01\x36\x00\
\\x2e\x00\x54\x01\x3b\x01\x2c\x01\
\\x56\x00\x56\x00\x01\x01\x09\x01\
\\x02\x01\x20\x01\xd6\x00\x29\x01\
\\x4e\x00\x4f\x00\xec\x00\xe4\x00\
\\x0e\x00\xef\x00\xf3\x00\x22\x00\
\\x0f\x00\xf1\x00\xd3\x00\xf6\x00\
\\x22\x00\xd1\x00\x7b\x00\xa8\x00\
\\x22\x00\x74\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x58\x00\
\\xa5\x00\xa4\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x22\x00\
\\x22\x00\x22\x00\x22\x00\x59\x00\
\\x22\x00\x1a\x00\x7d\x00\x7f\x00\
\\xa9\x00\x21\x00\x10\x00\x6b\x00\
\\x6a\x00\xbf\x00\x11\x00\x22\x00\
\\x0a\x00\x04\x00\x22\x00\x5e\x00\
\\xbe\x00\x22\x00\xbb\x00\x0a\x00\
\\xa7\x00\xa6\x00\xc2\x00\x5f\x00\
\\x37\x00\x38\x00\x14\x01\x35\x01\
\\x1b\x00\x12\x01\x24\x00\x23\x01\
\\x39\x00\x3a\x00\x25\x01\x10\x01\
\\x0e\x01\x22\x01\x2b\x01\x2d\x01\
\\x5b\x00\x5a\x00\x2e\x01\x56\x01\
\\x40\x01\x43\x01\x57\x01\x1e\x00\
\\x2d\x00\x1b\x01\x53\x01\x52\x01\
\\x41\x01\x55\x01\x2f\x01\x09\x01\
\\x09\x01\x50\x00\x0c\x01\x22\x00\
\\xe6\x00\xe5\x00\x01\x00\xed\x00\
\\x22\x00\xf4\x00\x01\x00\xee\x00\
\\xd2\x00\x22\x00\xf7\x00\xd4\x00\
\\x58\x01\xbd\x00\x9e\x00\x9d\x00\
\\x93\x00\x92\x00\x98\x00\x97\x00\
\\x9a\x00\x99\x00\x9c\x00\x9b\x00\
\\x90\x00\x8f\x00\x8e\x00\x8d\x00\
\\x8a\x00\x89\x00\x8b\x00\x8c\x00\
\\x88\x00\x87\x00\x91\x00\xb2\x00\
\\xb0\x00\xa1\x00\x95\x00\xa0\x00\
\\x9f\x00\xa2\x00\x94\x00\x96\x00\
\\xa3\x00\x05\x00\xb1\x00\xaf\x00\
\\x55\x00\x3b\x00\xc0\x00\xad\x00\
\\x3c\x00\x6d\x00\x6c\x00\x3d\x00\
\\x70\x00\x0a\x00\x3e\x00\x30\x00\
\\x12\x00\x3f\x00\x6f\x00\x42\x01\
\\xc3\x00\x2f\x00\x22\x00\xb3\x00\
\\x0a\x01\x37\x01\x24\x01\x26\x01\
\\x27\x01\x51\x01\x4f\x01\x3c\x01\
\\x44\x01\x1f\x00\x40\x00\x25\x00\
\\x46\x01\x41\x00\x42\x00\x4a\x01\
\\x20\x00\x43\x00\x1c\x01\x51\x00\
\\x52\x00\xfb\x00\x00\x01\x03\x01\
\\xf0\x00\xf5\x00\xf2\x00\xf8\x00\
\\x53\x00\x22\x00\xac\x00\x22\x00\
\\xae\x00\xab\x00\x0a\x00\x71\x00\
\\x0a\x00\x22\x00\xbe\x00\x0a\x00\
\\xaa\x00\x54\x00\x0b\x01\x26\x00\
\\x48\x01\x44\x00\x4c\x01\x47\x01\
\\x4b\x01\x45\x01\x27\x00\x30\x01\
\\x45\x00\x46\x00\x32\x01\xfd\x00\
\\xfc\x00\x7e\x00\x86\x00\xc1\x00\
\\x67\x00\x68\x00\x47\x00\x13\x00\
\\x72\x00\x36\x01\x38\x01\x49\x01\
\\x4d\x01\x31\x01\x33\x01\x34\x01\
\\x14\x00\xbe\x00\x0a\x00\x69\x00\
\\x48\x00\x73\x00\x0a\x00\x66\x00\
\\x00\x00";
   goto_table =
"\
\\x01\x00\xa4\x01\x02\x00\x01\x00\x00\x00\
\\x15\x00\x12\x00\x18\x00\x11\x00\x1b\x00\x10\x00\x1d\x00\x0f\x00\
\\x1e\x00\x0e\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\x27\x00\x0b\x00\
\\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x2d\x00\x07\x00\
\\x30\x00\x06\x00\x31\x00\x05\x00\x32\x00\x04\x00\x33\x00\x03\x00\
\\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x06\x00\x33\x00\x1d\x00\x32\x00\x1e\x00\x31\x00\x24\x00\x0d\x00\
\\x26\x00\x0c\x00\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\
\\x2c\x00\x08\x00\x2e\x00\x30\x00\x31\x00\x2f\x00\x32\x00\x04\x00\
\\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1f\x00\x35\x00\x00\x00\
\\x00\x00\
\\x12\x00\x3b\x00\x14\x00\x3a\x00\x15\x00\x12\x00\x18\x00\x39\x00\
\\x1b\x00\x10\x00\x24\x00\x38\x00\x26\x00\x37\x00\x27\x00\x0b\x00\
\\x28\x00\x36\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\x00\x00\
\\x11\x00\x42\x00\x13\x00\x41\x00\x15\x00\x40\x00\x16\x00\x3f\x00\
\\x17\x00\x3e\x00\x18\x00\x3d\x00\x1a\x00\x3c\x00\x1b\x00\x10\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1b\x00\x47\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\x00\
\\x00\x00\
\\x15\x00\x4d\x00\x28\x00\x4c\x00\x29\x00\x4b\x00\x00\x00\
\\x15\x00\x12\x00\x18\x00\x4e\x00\x1b\x00\x10\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\x54\x00\
\\x2a\x00\x53\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x3c\x00\x52\x00\x3d\x00\x51\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x06\x00\x57\x00\x1d\x00\x32\x00\x1e\x00\x31\x00\x24\x00\x0d\x00\
\\x26\x00\x0c\x00\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\
\\x2c\x00\x08\x00\x31\x00\x56\x00\x32\x00\x04\x00\x37\x00\x02\x00\x00\x00\
\\x12\x00\x3b\x00\x14\x00\x3a\x00\x15\x00\x12\x00\x18\x00\x58\x00\
\\x1b\x00\x10\x00\x24\x00\x38\x00\x26\x00\x37\x00\x27\x00\x0b\x00\
\\x28\x00\x36\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\x00\x00\
\\x11\x00\x42\x00\x13\x00\x41\x00\x15\x00\x40\x00\x16\x00\x59\x00\
\\x17\x00\x3e\x00\x18\x00\x3d\x00\x1a\x00\x3c\x00\x1b\x00\x10\x00\x00\x00\
\\x00\x00\
\\x03\x00\x62\x00\x04\x00\x61\x00\x05\x00\x60\x00\x06\x00\x5f\x00\
\\x07\x00\x5e\x00\x09\x00\x5d\x00\x0a\x00\x5c\x00\x3e\x00\x5b\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x20\x00\x83\x00\x24\x00\x82\x00\x27\x00\x81\x00\x28\x00\x80\x00\
\\x2b\x00\x7f\x00\x2c\x00\x7e\x00\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x1f\x00\x84\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1a\x00\x8a\x00\x1b\x00\x47\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x15\x00\x40\x00\x17\x00\x8c\x00\x18\x00\x4e\x00\x1a\x00\x3c\x00\
\\x1b\x00\x10\x00\x00\x00\
\\x07\x00\x8d\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x1d\x00\x95\x00\x1e\x00\x94\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\
\\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x2f\x00\x93\x00\x34\x00\x92\x00\x35\x00\x91\x00\x36\x00\x90\x00\
\\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0d\x00\x9b\x00\x0e\x00\x9a\x00\x00\x00\
\\x15\x00\x9d\x00\x00\x00\
\\x28\x00\x4c\x00\x29\x00\x9e\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\x54\x00\
\\x2a\x00\x53\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x3c\x00\xa0\x00\x3d\x00\x51\x00\x00\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\x54\x00\
\\x2a\x00\x53\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x3c\x00\xa1\x00\x3d\x00\x51\x00\x00\x00\
\\x00\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\x54\x00\
\\x2a\x00\x53\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x3d\x00\xa2\x00\x00\x00\
\\x15\x00\x40\x00\x16\x00\xa6\x00\x17\x00\x3e\x00\x18\x00\x3d\x00\
\\x1a\x00\x3c\x00\x1b\x00\x10\x00\x38\x00\xa5\x00\x3a\x00\xa4\x00\x00\x00\
\\x15\x00\x12\x00\x18\x00\xab\x00\x1b\x00\x10\x00\x26\x00\xaa\x00\
\\x27\x00\x0b\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x39\x00\xa9\x00\x3b\x00\xa8\x00\x00\x00\
\\x21\x00\xad\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x1d\x00\x32\x00\x1e\x00\x31\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\
\\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x2e\x00\xae\x00\x31\x00\x2f\x00\x32\x00\x04\x00\x37\x00\x02\x00\x00\x00\
\\x07\x00\xaf\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\xd6\x00\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\xd8\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x08\x00\xde\x00\x09\x00\xdd\x00\x0a\x00\x5c\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x09\x00\xe1\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x03\x00\xe3\x00\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x40\x00\xe6\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\xe8\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\xe9\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x09\x00\xed\x00\x0a\x00\x5c\x00\x25\x00\xec\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\xeb\x00\
\\x2a\x00\xea\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x20\x00\x83\x00\x24\x00\x82\x00\x27\x00\x81\x00\x28\x00\x80\x00\
\\x2b\x00\x7f\x00\x2c\x00\x7e\x00\x37\x00\x02\x00\x00\x00\
\\x07\x00\xef\x00\x0a\x00\x5c\x00\x22\x00\xee\x00\x40\x00\x5a\x00\x00\x00\
\\x11\x00\xf1\x00\x15\x00\x40\x00\x16\x00\x59\x00\x17\x00\x3e\x00\
\\x18\x00\x3d\x00\x1a\x00\x3c\x00\x1b\x00\x10\x00\x00\x00\
\\x07\x00\xf2\x00\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x1d\x00\x95\x00\x1e\x00\x94\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\
\\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x2f\x00\xf5\x00\x34\x00\x92\x00\x35\x00\xf4\x00\x36\x00\x90\x00\
\\x37\x00\x02\x00\x00\x00\
\\x07\x00\xef\x00\x0a\x00\x5c\x00\x22\x00\xf7\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x11\x00\xf8\x00\x15\x00\x40\x00\x16\x00\x59\x00\x17\x00\x3e\x00\
\\x18\x00\x3d\x00\x1a\x00\x3c\x00\x1b\x00\x10\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0f\x00\x02\x01\x10\x00\x01\x01\x15\x00\x00\x01\x18\x00\xff\x00\
\\x1b\x00\x10\x00\x24\x00\x38\x00\x26\x00\x37\x00\x27\x00\x0b\x00\
\\x28\x00\x36\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\x00\x00\
\\x0f\x00\x09\x01\x10\x00\x01\x01\x15\x00\x08\x01\x18\x00\x07\x01\
\\x19\x00\x06\x01\x1b\x00\x10\x00\x1c\x00\x05\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0d\x00\x0b\x01\x0e\x00\x9a\x00\x00\x00\
\\x0d\x00\x0c\x01\x0e\x00\x9a\x00\x00\x00\
\\x00\x00\
\\x0c\x00\x0d\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\x54\x00\
\\x2a\x00\x53\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x3d\x00\xa2\x00\x00\x00\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\x54\x00\
\\x2a\x00\x53\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x3d\x00\xa2\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x15\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x21\x00\x18\x01\x00\x00\
\\x00\x00\
\\x07\x00\x1a\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x20\x00\x1b\x01\x27\x00\x81\x00\x28\x00\x80\x00\x2b\x00\x7f\x00\
\\x2c\x00\x7e\x00\x37\x00\x02\x00\x00\x00\
\\x03\x00\x62\x00\x04\x00\x1c\x01\x05\x00\x60\x00\x06\x00\x5f\x00\
\\x07\x00\x5e\x00\x09\x00\x5d\x00\x0a\x00\x5c\x00\x1d\x00\x32\x00\
\\x1e\x00\x31\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\x27\x00\x0b\x00\
\\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x31\x00\x56\x00\
\\x32\x00\x04\x00\x37\x00\x02\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x1d\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x1e\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x1f\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x20\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x21\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x22\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x23\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x24\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x25\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x26\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x27\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x28\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x29\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x2a\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x2b\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x2c\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x2d\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x2e\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x2f\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x30\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x31\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x32\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x35\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x36\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x37\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x38\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x39\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x3a\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x3b\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x3c\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x5e\x00\x09\x00\x3d\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x09\x00\x40\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x42\x01\x0a\x00\x5c\x00\x0b\x00\x41\x01\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x09\x00\xed\x00\x0a\x00\x5c\x00\x25\x00\x44\x01\
\\x26\x00\x55\x00\x27\x00\x0b\x00\x28\x00\x4c\x00\x29\x00\xeb\x00\
\\x2a\x00\xea\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x37\x00\x02\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x09\x00\x47\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x03\x00\x48\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x09\x00\x4a\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x08\x00\x4c\x01\x09\x00\xdd\x00\x0a\x00\x5c\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x5e\x00\x09\x00\x4d\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x03\x00\x4e\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0f\x00\x50\x01\x10\x00\x01\x01\x15\x00\x4f\x01\x00\x00\
\\x26\x00\xaa\x00\x27\x00\x0b\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\xef\x00\x0a\x00\x5c\x00\x22\x00\x55\x01\x23\x00\x54\x01\
\\x40\x00\x5a\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\
\\x1d\x00\x95\x00\x1e\x00\x94\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\
\\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x36\x00\x59\x01\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x10\x00\x5c\x01\x1b\x00\x47\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5f\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x0f\x00\x62\x01\x10\x00\x01\x01\x15\x00\x00\x01\x18\x00\x4e\x00\
\\x1b\x00\x10\x00\x1d\x00\x95\x00\x1e\x00\x94\x00\x24\x00\x0d\x00\
\\x26\x00\x0c\x00\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\
\\x2c\x00\x08\x00\x34\x00\x92\x00\x35\x00\x61\x01\x36\x00\x90\x00\
\\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x10\x00\x5c\x01\x1b\x00\x47\x00\x1c\x00\x66\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x0c\x00\x67\x01\x00\x00\
\\x0c\x00\x68\x01\x00\x00\
\\x00\x00\
\\x0e\x00\x6a\x01\x00\x00\
\\x07\x00\x6b\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x15\x00\x40\x00\x16\x00\xa6\x00\x17\x00\x3e\x00\x18\x00\x3d\x00\
\\x1a\x00\x3c\x00\x1b\x00\x10\x00\x38\x00\x6c\x01\x00\x00\
\\x00\x00\
\\x07\x00\x6d\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x15\x00\x40\x00\x16\x00\xa6\x00\x17\x00\x3e\x00\x18\x00\x3d\x00\
\\x1a\x00\x3c\x00\x1b\x00\x10\x00\x38\x00\x6e\x01\x00\x00\
\\x00\x00\
\\x20\x00\x1b\x01\x27\x00\x81\x00\x28\x00\x80\x00\x2b\x00\x7f\x00\
\\x2c\x00\x7e\x00\x37\x00\x02\x00\x00\x00\
\\x07\x00\x6f\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x3f\x00\x70\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\
\\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\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\x77\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x10\x00\x5c\x01\x00\x00\
\\x00\x00\
\\x0f\x00\x62\x01\x10\x00\x01\x01\x15\x00\x4f\x01\x1d\x00\x95\x00\
\\x1e\x00\x94\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\x27\x00\x0b\x00\
\\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\x34\x00\x92\x00\
\\x35\x00\x61\x01\x36\x00\x90\x00\x37\x00\x02\x00\x00\x00\
\\x07\x00\x7c\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x0c\x00\x7d\x01\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x7f\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x1d\x00\x95\x00\x1e\x00\x94\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\
\\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x34\x00\x92\x00\x35\x00\x81\x01\x36\x00\x90\x00\x37\x00\x02\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x86\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x1d\x00\x95\x00\x1e\x00\x94\x00\x24\x00\x0d\x00\x26\x00\x0c\x00\
\\x27\x00\x0b\x00\x28\x00\x0a\x00\x2b\x00\x09\x00\x2c\x00\x08\x00\
\\x2f\x00\x89\x01\x34\x00\x92\x00\x35\x00\x88\x01\x36\x00\x90\x00\
\\x37\x00\x02\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\
\\x07\x00\x8e\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x8f\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x07\x00\x7c\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x03\x00\x90\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x03\x00\x91\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x5e\x00\x09\x00\x92\x01\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x07\x00\x5e\x00\x08\x00\x93\x01\x09\x00\xdd\x00\x0a\x00\x5c\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x03\x00\x94\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\xef\x00\x0a\x00\x5c\x00\x22\x00\x96\x01\x40\x00\x5a\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\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x07\x00\x5e\x00\x08\x00\xa0\x01\x09\x00\xdd\x00\x0a\x00\x5c\x00\
\\x40\x00\x5a\x00\x00\x00\
\\x03\x00\xa1\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\\x00\x00\
\\x03\x00\xa3\x01\x06\x00\x5f\x00\x07\x00\x5e\x00\x09\x00\x5d\x00\
\\x0a\x00\x5c\x00\x40\x00\x5a\x00\x00\x00\
\\x00\x00\
\\x00\x00\
\";
   numstates = 421;
   numrules = 247;
 s = REF "";  index = REF 0;
    string_to_int = \\ () = 
    {    i = *index;
         index := i+2;
         string::get_byte(*s, i) + string::get_byte(*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 = line_number_db::Sourcemap;
package values { 
Semantic_Value = TM_VOID | NT_VOID  Void | TYPE_NAME  (String) | CCONST  (large_int::Int) | STRING_CONSTANT  (String) | REALNUM  (Float) | DECNUM  (large_int::Int) | IDENTIFIER  (String)
 | QQ_STRINGS  (String) | QQ_POPSCOPE  (Void) | QQ_PUSHSCOPE  (Void) | QQ_STRUCTDECLARATION  ((Ctype, List( (Declarator, Expression)) ))
 | QQ_STRUCTDECLARATIONLIST  (Seq ( (Ctype, List( (Declarator, Expression))) ) ) | QQ_NOTYPESTRUCTDECLARATORLIST  (Seq ( (Declarator, Expression) ) )
 | QQ_STRUCTDECLARATORLIST  (Seq ( (Declarator, Expression) ) ) | QQ_NOTYPESTRUCTDECLARATOR  ((Declarator, Expression)) | QQ_STRUCTDECLARATOR  ((Declarator, Expression)) | QQ_STRUCTORUNION  (Bool)
 | QQ_PARAMETERDECLARATION  ((Decltype, Declarator)) | QQ_PARAMETERTYPELIST  (List ( (Decltype, Declarator) ) ) | QQ_PARAMETERLIST  (Seq ( (Decltype, Declarator) ) )
 | QQ_EXTERNALDECLARATION  (Null_Or External_Decl ) | QQ_DECLARATION1  (Declaration) | QQ_DECLARATION  (Declaration) | QQ_FUNCTIONDEFINITION  (External_Decl)
 | QQ_IDENTLIST  (Seq ( (String, Int, Int) ) ) | QQ_DECLARATIONLIST  (Seq Declaration ) | QQ_FDEFDECLARATION  ((Decltype, Declarator)) | QQ_STRUCTORUNIONSPECIFIER  (Specifier)
 | QQ_ENUMSPECIFIER  (Specifier) | QQ_SPECIFIERQUALIFIERLIST  (Ctype) | QQ_TYPEQUALIFIERLIST  (List Qualifier ) | QQ_TYPEQUALIFIER  (Qualifier) | QQ_TYPESPECIFIERRESERVED  (Specifier)
 | QQ_TYPESPECIFIER  (Specifier) | QQ_TYPENAME  (Ctype) | QQ_STORAGEILKSPECIFIER  (Storage) | QQ_INITIALIZERLIST  (Seq Expression ) | QQ_INITIALIZER  (Expression)
 | QQ_RESERVEDSPECIFIERQUALIFIERS  (Ctype) | QQ_SPECIFIERQUALIFIERRESERVED  (Ctype) | QQ_RESERVEDECLARATIONSPECIFIER  (Decltype) | QQ_DECLARATIONMODIFIERS  (Decltype)
 | QQ_DECLARATIONSPECIFIERS  (Decltype) | QQ_PARMDIRECTDECLARATOR  (Declarator) | QQ_NOTYPEDIRECTDECLARATOR  (Declarator) | QQ_AFTERTYPEDIRECTDECLARATOR  (Declarator) | QQ_PARMDECLARATOR  (Declarator)
 | QQ_NOTYPEDECLARATOR  (Declarator) | QQ_AFTERTYPEDECLARATOR  (Declarator) | QQ_DECLARATOR  (Declarator) | QQ_POINTER  (Declarator) | QQ_NOTYPEINITDECLARATORLIST  (Seq ( (Declarator, Expression) ) )
 | QQ_INITDECLARATORLIST  (Seq ( (Declarator, Expression) ) ) | QQ_NOTYPEINITDECLARATOR  ((Declarator, Expression)) | QQ_INITDECLARATOR  ((Declarator, Expression))
 | QQ_DIRECTABSTRACTDECLARATOR  (Declarator) | QQ_ABSTRACTDECLARATOR  (Declarator) | QQ_ENUMERATOR  ((String, Expression)) | QQ_ENUMERATORLIST  (Seq ( (String, Expression) ) )
 | QQ_TRAILINGCOMMA  (Bool) | QQ_ARGUMENTEXPRLIST  (Seq Expression ) | QQ_UNARYOPERATOR  (Operator) | QQ_EXPRWCOMMA  (Expression) | QQ_OPEXPR  (Expression) | QQ_EXPR  (Expression)
 | QQ_COMPOUNDSTATEMENT  (Statement) | QQ_STATEMENTLIST  (Seq Statement ) | QQ_OSTATEMENTLIST  (List Statement ) | QQ_STATEMENT  (Statement) | QQ_TU  (Seq External_Decl )
 | QQ_TRANSLATIONUNIT  (List External_Decl );
};
Semantic_Value = values::Semantic_Value;
Result = List External_Decl ;
end;
package error_recovery{
include package lr_table;
infix my 60 @@;
fun x @@ y = y ! x;
is_keyword =
\\ (TERM 11) => TRUE; (TERM 57) => TRUE; (TERM 58) => TRUE; (TERM 59) => TRUE; (TERM 60) => TRUE; (TERM 61) => TRUE; (TERM 62) => TRUE; (TERM 63) => TRUE; (TERM 64) => TRUE; (TERM 65) => TRUE; (TERM 
66) => TRUE; (TERM 67) => TRUE; (TERM 68) => TRUE; (TERM 69) => TRUE; _ => FALSE; end;
my preferred_change:   List( (List( Terminal ), List( Terminal )) ) = 
(NIL
 @@ (TERM 25), NIL
 @@ (TERM 88)) ! 
NIL;
no_shift = 
\\ (TERM 0) => TRUE; _ => FALSE; end;
show_terminal =
\\ (TERM 0) => "EOF"
; (TERM 1) => "COLON"
; (TERM 2) => "SEMICOLON"
; (TERM 3) => "LPAREN"
; (TERM 4) => "RPAREN"
; (TERM 5) => "LCURLY"
; (TERM 6) => "RCURLY"
; (TERM 7) => "LBRACE"
; (TERM 8) => "RBRACE"
; (TERM 9) => "DOT"
; (TERM 10) => "COMMA"
; (TERM 11) => "QUESTION"
; (TERM 12) => "PERCENT"
; (TERM 13) => "AMP"
; (TERM 14) => "BAR"
; (TERM 15) => "TILDE"
; (TERM 16) => "DIVIDE"
; (TERM 17) => "PLUS"
; (TERM 18) => "MINUS"
; (TERM 19) => "HAT"
; (TERM 20) => "BANG"
; (TERM 21) => "TIMES"
; (TERM 22) => "INC"
; (TERM 23) => "DEC"
; (TERM 24) => "ARROW"
; (TERM 25) => "IDENTIFIER"
; (TERM 26) => "EQUALS"
; (TERM 27) => "PLUSEQUALS"
; (TERM 28) => "MINUSEQUALS"
; (TERM 29) => "XOREQUALS"
; (TERM 30) => "MODEQUALS"
; (TERM 31) => "TIMESEQUALS"
; (TERM 32) => "DIVEQUALS"
; (TERM 33) => "OREQUALS"
; (TERM 34) => "ANDEQUALS"
; (TERM 35) => "LSHIFTEQUALS"
; (TERM 36) => "RSHIFTEQUALS"
; (TERM 37) => "LTE"
; (TERM 38) => "GTE"
; (TERM 39) => "LT"
; (TERM 40) => "GT"
; (TERM 41) => "EQ"
; (TERM 42) => "NEQ"
; (TERM 43) => "OR_T"
; (TERM 44) => "AND_T"
; (TERM 45) => "LSHIFT"
; (TERM 46) => "RSHIFT"
; (TERM 47) => "DECNUM"
; (TERM 48) => "REALNUM"
; (TERM 49) => "STRING_CONSTANT"
; (TERM 50) => "CCONST"
; (TERM 51) => "EXTERN"
; (TERM 52) => "AUTO"
; (TERM 53) => "STATIC"
; (TERM 54) => "REGISTER"
; (TERM 55) => "CONST"
; (TERM 56) => "VOLATILE"
; (TERM 57) => "IF_T"
; (TERM 58) => "THEN_T"
; (TERM 59) => "ELSE_T"
; (TERM 60) => "FOR_T"
; (TERM 61) => "DO_T"
; (TERM 62) => "SWITCH"
; (TERM 63) => "CASE_T"
; (TERM 64) => "DEFAULT"
; (TERM 65) => "WHILE_T"
; (TERM 66) => "RETURN"
; (TERM 67) => "BREAK"
; (TERM 68) => "CONTINUE"
; (TERM 69) => "GOTO"
; (TERM 70) => "CHAR"
; (TERM 71) => "DOUBLE"
; (TERM 72) => "ENUM_T"
; (TERM 73) => "FLOAT"
; (TERM 74) => "INT"
; (TERM 75) => "LONG"
; (TERM 76) => "SHORT"
; (TERM 77) => "FRACTIONAL"
; (TERM 78) => "SATURATE"
; (TERM 79) => "STRUCT"
; (TERM 80) => "UNION"
; (TERM 81) => "UNSIGNED"
; (TERM 82) => "SIGNED"
; (TERM 83) => "VOID"
; (TERM 84) => "SIZEOF"
; (TERM 85) => "TYPEDEF"
; (TERM 86) => "UNARY"
; (TERM 87) => "ELIPSIS"
; (TERM 88) => "TYPE_NAME"
; _ => "bogus-term"; end;
stipulate include package   header; herein
errtermvalue=
\\ (TERM 88) => values::TYPE_NAME(({ error::hint "Likely cause: missing typedef declaration.\n"; "bogus"; } )); 
_ => values::TM_VOID;
 end; end;
my terms:  List( Terminal ) = NIL
 @@ (TERM 87) @@ (TERM 86) @@ (TERM 85) @@ (TERM 84) @@ (TERM 83) @@ (TERM 82) @@ (TERM 81) @@ (TERM 80) @@ (TERM 79) @@ (TERM 78) @@ (TERM 77) @@ (TERM 76) @@ (TERM 75) @@ (TERM 74) @@ (TERM 73) @@ 
(TERM 72) @@ (TERM 71) @@ (TERM 70) @@ (TERM 69) @@ (TERM 68) @@ (TERM 67) @@ (TERM 66) @@ (TERM 65) @@ (TERM 64) @@ (TERM 63) @@ (TERM 62) @@ (TERM 61) @@ (TERM 60) @@ (TERM 59) @@ (TERM 58) @@ 
(TERM 57) @@ (TERM 56) @@ (TERM 55) @@ (TERM 54) @@ (TERM 53) @@ (TERM 52) @@ (TERM 51) @@ (TERM 46) @@ (TERM 45) @@ (TERM 44) @@ (TERM 43) @@ (TERM 42) @@ (TERM 41) @@ (TERM 40) @@ (TERM 39) @@ 
(TERM 38) @@ (TERM 37) @@ (TERM 36) @@ (TERM 35) @@ (TERM 34) @@ (TERM 33) @@ (TERM 32) @@ (TERM 31) @@ (TERM 30) @@ (TERM 29) @@ (TERM 28) @@ (TERM 27) @@ (TERM 26) @@ (TERM 24) @@ (TERM 23) @@ 
(TERM 22) @@ (TERM 21) @@ (TERM 20) @@ (TERM 19) @@ (TERM 18) @@ (TERM 17) @@ (TERM 16) @@ (TERM 15) @@ (TERM 14) @@ (TERM 13) @@ (TERM 12) @@ (TERM 11) @@ (TERM 10) @@ (TERM 9) @@ (TERM 8) @@ (TERM 7
) @@ (TERM 6) @@ (TERM 5) @@ (TERM 4) @@ (TERM 3) @@ (TERM 2) @@ (TERM 1) @@ (TERM 0);
};
package actions {
exception MLY_ACTION Int;
stipulate include package   header; herein
actions = 
\\ (i392, default_position, stack, 
    (src_map): Arg) = 
case (i392, stack)
  ( 0,  ( ( _,  ( values::QQ_TU tu,  tu1left,  tu1right)) !  rest671)) => {  my  result = values::QQ_TRANSLATIONUNIT (seq_to_list tu);
 ( lr_table::NONTERM 0,  ( result,  tu1left,  tu1right),  rest671
);
 } 
;  ( 1,  ( rest671)) => {  my  result = values::QQ_TU (empty_seq);
 ( lr_table::NONTERM 1,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 2,  ( ( _,  ( values::QQ_EXTERNALDECLARATION externaldeclaration,  _,  externaldeclaration1right)) !  ( _,  ( values::QQ_TU tu,  tu1left,  _)) !  rest671)) => {  my  result = values::QQ_TU (
add_opt_to_end (externaldeclaration, tu));
 ( lr_table::NONTERM 1,  ( result,  tu1left,  externaldeclaration1right),  rest671);
 } 
;  ( 3,  ( ( _,  ( values::QQ_DECLARATION declaration,  (declarationleft as declaration1left),  (declarationright as declaration1right))) !  rest671)) => {  my  result = values::QQ_EXTERNALDECLARATION
 (THE(mark_external_decl src_map (EXTERNAL_DECL declaration,
                                                                       declarationleft,
                                                                       declarationright)));
 ( lr_table::NONTERM 50,  ( result,  declaration1left,  
declaration1right),  rest671);
 } 
;  ( 4,  ( ( _,  ( _,  semicolon1left,  semicolon1right)) !  rest671)) => {  my  result = values::QQ_EXTERNALDECLARATION (NULL);
 ( lr_table::NONTERM 50,  ( result,  semicolon1left,  semicolon1right)
,  rest671);
 } 
;  ( 5,  ( ( _,  ( values::QQ_FUNCTIONDEFINITION functiondefinition,  (functiondefinitionleft as functiondefinition1left),  (functiondefinitionright as functiondefinition1right))) !  rest671)) => { 
 my  result = values::QQ_EXTERNALDECLARATION (THE(mark_external_decl src_map (functiondefinition,
                                                                       functiondefinitionleft,
                                                                       functiondefinitionright)));
 ( 
lr_table::NONTERM 50,  ( result,  functiondefinition1left,  functiondefinition1right),  rest671);
 } 
;  ( 6,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( values::QQ_OPEXPR opexpr3,  _,  _)) !  _ !  ( _,  ( values::QQ_OPEXPR opexpr2,  _,  _)) ! 
 _ !  ( _,  ( values::QQ_OPEXPR opexpr1,  _,  _)) !  _ !  ( _,  ( _,  (for_tleft as for_t1left),  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (
mark_statement src_map (FOR(opexpr1, opexpr2, opexpr3, statement),
                                                        for_tleft, statementright));
 ( lr_table::NONTERM 2,  ( result,  for_t1left,  statement1right),  rest671);
 } 
;  ( 7,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  _ !  ( _,  ( _,  (while_tleft as 
while_t1left),  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (mark_statement src_map (WHILE(exprwcomma, statement),
                                                        while_tleft, statementright));
 ( lr_table::NONTERM 2,  ( result
,  while_t1left,  statement1right),  rest671);
 } 
;  ( 8,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  _ !  ( _,  ( _,  (switchleft as switch1left)
,  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (mark_statement src_map (SWITCH(exprwcomma, statement),
                                                        switchleft, statementright));
 ( lr_table::NONTERM 2,  ( result,  switch1left
,  statement1right),  rest671);
 } 
;  ( 9,  ( ( _,  ( _,  _,  (semicolonright as semicolon1right))) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  _ !  _ !  ( _,  ( values::QQ_STATEMENT statement,  _,  _)) !  ( _,  ( _, 
 (do_tleft as do_t1left),  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (mark_statement src_map (DO(exprwcomma, statement),
                                                        do_tleft, semicolonright));
 ( lr_table::NONTERM 2,  ( 
result,  do_t1left,  semicolon1right),  rest671);
 } 
;  ( 10,  ( ( _,  ( _,  _,  (semicolonright as semicolon1right))) !  ( _,  ( _,  (breakleft as break1left),  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (
mark_statement src_map (BREAK, 
                                                        breakleft, semicolonright));
 ( lr_table::NONTERM 2,  ( result,  break1left,  semicolon1right),  rest671);
 } 
;  ( 11,  ( ( _,  ( _,  _,  (semicolonright as semicolon1right))) !  ( _,  ( _,  (continueleft as continue1left),  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (
mark_statement src_map (CONTINUE, 
                                                        continueleft, semicolonright));
 ( lr_table::NONTERM 2,  ( result,  continue1left,  semicolon1right),  rest671);
 } 
;  ( 12,  ( ( _,  ( _,  _,  (semicolonright as semicolon1right))) !  ( _,  ( values::QQ_OPEXPR opexpr,  _,  _)) !  ( _,  ( _,  (returnleft as return1left),  _)) !  rest671)) => {  my  result = 
values::QQ_STATEMENT (mark_statement src_map (RETURN(opexpr), 
                                                        returnleft, semicolonright));
 ( lr_table::NONTERM 2,  ( result,  return1left,  semicolon1right),  rest671);
 } 
;  ( 13,  ( ( _,  ( _,  _,  (semicolonright as semicolon1right))) !  ( _,  ( values::IDENTIFIER identifier,  _,  _)) !  ( _,  ( _,  (gotoleft as goto1left),  _)) !  rest671)) => {  my  result = 
values::QQ_STATEMENT (mark_statement src_map (GOTO(identifier), 
                                                        gotoleft, semicolonright));
 ( lr_table::NONTERM 2,  ( result,  goto1left,  semicolon1right),  rest671);
 } 
;  ( 14,  ( ( _,  ( values::QQ_COMPOUNDSTATEMENT compoundstatement,  compoundstatement1left,  compoundstatement1right)) !  rest671)) => {  my  result = values::QQ_STATEMENT (compoundstatement);
 ( 
lr_table::NONTERM 2,  ( result,  compoundstatement1left,  compoundstatement1right),  rest671);
 } 
;  ( 15,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( values::IDENTIFIER identifier,  (identifierleft as identifier1left),  _)) !  rest671)) =>
 {  my  result = values::QQ_STATEMENT (mark_statement src_map (LABELED (identifier, statement),
                                                        identifierleft, statementright));
 ( lr_table::NONTERM 2,  ( result,  identifier1left,  
statement1right),  rest671);
 } 
;  ( 16,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( _,  (defaultleft as default1left),  _)) !  rest671)) => {  my  result = 
values::QQ_STATEMENT (mark_statement src_map (DEFAULT_LABEL(statement),
                                                        defaultleft, statementright));
 ( lr_table::NONTERM 2,  ( result,  default1left,  statement1right),  rest671);
 } 
;  ( 17,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  ( _,  ( _,  (case_tleft as case_t1left),  _
)) !  rest671)) => {  my  result = values::QQ_STATEMENT (mark_statement src_map (CASE_LABEL(exprwcomma, statement),
                                                        case_tleft, statementright));
 ( lr_table::NONTERM 2,  ( result,  case_t1left
,  statement1right),  rest671);
 } 
;  ( 18,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  (statementright as statement1right))) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  _ !  ( _,  ( _,  (if_tleft as if_t1left), 
 _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (mark_statement src_map (IF_THEN (exprwcomma, statement),
                                                        if_tleft, statementright));
 ( lr_table::NONTERM 2,  ( result,  if_t1left,  
statement1right),  rest671);
 } 
;  ( 19,  ( ( _,  ( values::QQ_STATEMENT statement2,  _,  statement2right)) !  _ !  ( _,  ( values::QQ_STATEMENT statement1,  _,  _)) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  _ ! 
 ( _,  ( _,  (if_tleft as if_t1left),  _)) !  rest671)) => {  my  result = values::QQ_STATEMENT (
mark_statement src_map (IF_THEN_ELSE (exprwcomma, statement1, statement2),
                                                        if_tleft,
                                                        statement2right));
 ( lr_table::NONTERM 2,  ( result,  if_t1left,  statement2right),  rest671);
 } 
;  ( 20,  ( ( _,  ( _,  _,  (semicolonright as semicolon1right))) !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  (exprwcommaleft as exprwcomma1left),  _)) !  rest671)) => {  my  result = 
values::QQ_STATEMENT (mark_statement src_map (EXPR (exprwcomma),
                                                        exprwcommaleft, semicolonright));
 ( lr_table::NONTERM 2,  ( result,  exprwcomma1left,  semicolon1right),  rest671);
 } 
;  ( 21,  ( ( _,  ( _,  (semicolonleft as semicolon1left),  (semicolonright as semicolon1right))) !  rest671)) => {  my  result = values::QQ_STATEMENT (
mark_statement src_map (EXPR(EMPTY_EXPR),
                                                        semicolonleft, semicolonright));
 ( lr_table::NONTERM 2,  ( result,  semicolon1left,  semicolon1right),  rest671);
 } 
;  ( 22,  ( ( _,  ( _,  _,  semicolon1right)) !  ( _,  ( values::QQ_DECLARATION1 declaration1,  declaration11left,  _)) !  rest671)) => {  my  result = values::QQ_DECLARATION (declaration1);
 ( 
lr_table::NONTERM 48,  ( result,  declaration11left,  semicolon1right),  rest671);
 } 
;  ( 23,  ( ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  (declarationspecifiersleft as declarationspecifiers1left),  (declarationspecifiersright as declarationspecifiers1right)))
 !  rest671)) => {  my  result = values::QQ_DECLARATION1 (
   {   insert_decl_names (declarationspecifiers, []);

                                                mark_declaration src_map
                                                  (DECLARATION (declarationspecifiers, []), 
                                                   declarationspecifiersleft, declarationspecifiersright);
                                            } 
                                        
);
 ( lr_table::NONTERM 49,  ( result,  declarationspecifiers1left,  declarationspecifiers1right),  rest671);
 } 
;  ( 24,  ( ( _,  ( values::QQ_INITDECLARATORLIST initdeclaratorlist,  _,  (initdeclaratorlistright as initdeclaratorlist1right))) !  ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  (
declarationspecifiersleft as declarationspecifiers1left),  _)) !  rest671)) => {  my  result = values::QQ_DECLARATION1 (
   {   decl = (declarationspecifiers, seq_to_list initdeclaratorlist);
                                                insert_decl_names decl;
                                                mark_declaration src_map
                                                  (DECLARATION decl, declarationspecifiersleft, initdeclaratorlistright);
                                            }
                                        
);
 ( lr_table::NONTERM 49,  ( result,  declarationspecifiers1left,  initdeclaratorlist1right),  rest671);
 } 
;  ( 25,  ( ( _,  ( values::QQ_NOTYPEINITDECLARATORLIST notypeinitdeclaratorlist,  _,  (notypeinitdeclaratorlistright as notypeinitdeclaratorlist1right))) !  ( _,  ( values::QQ_DECLARATIONMODIFIERS 
declarationmodifiers,  (declarationmodifiersleft as declarationmodifiers1left),  _)) !  rest671)) => {  my  result = values::QQ_DECLARATION1 (
    {   decl = (declarationmodifiers, seq_to_list notypeinitdeclaratorlist);
                                                 insert_decl_names decl;
                                                 mark_declaration src_map
                                                     (DECLARATION decl, declarationmodifiersleft, notypeinitdeclaratorlistright);
                                             }
                                        
);
 ( lr_table::NONTERM 49,  ( result,  declarationmodifiers1left,  notypeinitdeclaratorlist1right),  rest671);
 } 
;  ( 26,  ( ( _,  ( values::QQ_STATEMENTLIST statementlist,  statementlist1left,  statementlist1right)) !  rest671)) => {  my  result = values::QQ_OSTATEMENTLIST (seq_to_list statementlist);
 ( 
lr_table::NONTERM 3,  ( result,  statementlist1left,  statementlist1right),  rest671);
 } 
;  ( 27,  ( rest671)) => {  my  result = values::QQ_OSTATEMENTLIST ([]);
 ( lr_table::NONTERM 3,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 28,  ( ( _,  ( values::QQ_STATEMENT statement,  statement1left,  statement1right)) !  rest671)) => {  my  result = values::QQ_STATEMENTLIST (singleton_seq statement);
 ( lr_table::NONTERM 4,  ( 
result,  statement1left,  statement1right),  rest671);
 } 
;  ( 29,  ( ( _,  ( values::QQ_STATEMENT statement,  _,  statement1right)) !  ( _,  ( values::QQ_STATEMENTLIST statementlist,  statementlist1left,  _)) !  rest671)) => {  my  result = 
values::QQ_STATEMENTLIST (add_to_seq(statement, statementlist));
 ( lr_table::NONTERM 4,  ( result,  statementlist1left,  statement1right),  rest671);
 } 
;  ( 30,  ( ( _,  ( _,  _,  (rcurlyright as rcurly1right))) !  _ !  ( _,  ( values::QQ_OSTATEMENTLIST ostatementlist,  _,  _)) !  ( _,  ( values::QQ_DECLARATIONLIST declarationlist,  _,  _)) !  _ !  (
 _,  ( _,  (lcurlyleft as lcurly1left),  _)) !  rest671)) => {  my  result = values::QQ_COMPOUNDSTATEMENT (
mark_statement src_map (COMPOUND ((map DECL (seq_to_list declarationlist)) @ ostatementlist), lcurlyleft, rcurlyright));
 ( lr_table::NONTERM 5,  ( result,  lcurly1left,  rcurly1right),  rest671);
 } 
;  ( 31,  ( ( _,  ( _,  _,  (rcurlyright as rcurly1right))) !  ( _,  ( values::QQ_OSTATEMENTLIST ostatementlist,  _,  _)) !  ( _,  ( _,  (lcurlyleft as lcurly1left),  _)) !  rest671)) => {  my  result
 = values::QQ_COMPOUNDSTATEMENT (mark_statement src_map (COMPOUND (ostatementlist), lcurlyleft, rcurlyright));
 ( lr_table::NONTERM 5,  ( result,  lcurly1left,  rcurly1right),  rest671);
 } 
;  ( 32,  ( ( _,  ( _,  amp1left,  amp1right)) !  rest671)) => {  my  result = values::QQ_UNARYOPERATOR (ADDR_OF);
 ( lr_table::NONTERM 9,  ( result,  amp1left,  amp1right),  rest671);
 } 
;  ( 33,  ( ( _,  ( _,  times1left,  times1right)) !  rest671)) => {  my  result = values::QQ_UNARYOPERATOR (STAR);
 ( lr_table::NONTERM 9,  ( result,  times1left,  times1right),  rest671);
 } 
;  ( 34,  ( ( _,  ( _,  plus1left,  plus1right)) !  rest671)) => {  my  result = values::QQ_UNARYOPERATOR (UPLUS);
 ( lr_table::NONTERM 9,  ( result,  plus1left,  plus1right),  rest671);
 } 
;  ( 35,  ( ( _,  ( _,  minus1left,  minus1right)) !  rest671)) => {  my  result = values::QQ_UNARYOPERATOR (NEGATE);
 ( lr_table::NONTERM 9,  ( result,  minus1left,  minus1right),  rest671);
 } 
;  ( 36,  ( ( _,  ( _,  tilde1left,  tilde1right)) !  rest671)) => {  my  result = values::QQ_UNARYOPERATOR (BIT_NOT);
 ( lr_table::NONTERM 9,  ( result,  tilde1left,  tilde1right),  rest671);
 } 
;  ( 37,  ( ( _,  ( _,  bang1left,  bang1right)) !  rest671)) => {  my  result = values::QQ_UNARYOPERATOR (NOT);
 ( lr_table::NONTERM 9,  ( result,  bang1left,  bang1right),  rest671);
 } 
;  ( 38,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma1,  _,  _)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  
result = values::QQ_EXPR (mark_expression src_map (QUESTION_COLON(expr1, exprwcomma1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 39,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(PLUS_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 40,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(MINUS_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 41,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(TIMES_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 42,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(DIV_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 43,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(MOD_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 44,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(XOR_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 45,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(OR_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 46,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(AND_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 47,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(LSHIFT_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 48,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(RSHIFT_ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 49,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(ASSIGN, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 50,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(OR, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 51,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(AND, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 52,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(BIT_OR, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 53,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(BIT_XOR, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 54,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(BIT_AND, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 55,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(EQ, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 56,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(NEQ, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 57,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(LT, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 58,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(GT, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 59,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(LTE, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 60,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(GTE, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 61,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(LSHIFT, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 62,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(RSHIFT, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 63,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(PLUS, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 64,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(MINUS, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 65,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(TIMES, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 66,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(DIVIDE, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 67,  ( ( _,  ( values::QQ_EXPR expr2,  _,  expr2right)) !  _ !  ( _,  ( values::QQ_EXPR expr1,  expr1left,  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (BINOP(MOD, expr1, expr2), expr1left, expr2right));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  expr2right),  rest671);
 } 
;  ( 68,  ( ( _,  ( _,  _,  (incright as inc1right))) !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (UNOP(POST_INC, expr), exprleft, incright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  inc1right),  rest671);
 } 
;  ( 69,  ( ( _,  ( _,  _,  (decright as dec1right))) !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (UNOP(POST_DEC, expr), exprleft, decright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  dec1right),  rest671);
 } 
;  ( 70,  ( ( _,  ( values::QQ_EXPR expr,  _,  (exprright as expr1right))) !  ( _,  ( _,  (incleft as inc1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (UNOP(PRE_INC, expr), incleft, exprright));
 ( lr_table::NONTERM 6,  ( result,  inc1left,  expr1right),  rest671);
 } 
;  ( 71,  ( ( _,  ( values::QQ_EXPR expr,  _,  (exprright as expr1right))) !  ( _,  ( _,  (decleft as dec1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (UNOP(PRE_DEC, expr), decleft, exprright));
 ( lr_table::NONTERM 6,  ( result,  dec1left,  expr1right),  rest671);
 } 
;  ( 72,  ( ( _,  ( values::QQ_EXPR expr,  _,  (exprright as expr1right))) !  ( _,  ( values::QQ_UNARYOPERATOR unaryoperator,  (unaryoperatorleft as unaryoperator1left),  _)) !  rest671)) => {  my  
result = values::QQ_EXPR (mark_expression src_map (UNOP(unaryoperator, expr), unaryoperatorleft, exprright));
 ( lr_table::NONTERM 6,  ( result,  unaryoperator1left,  expr1right),  rest671);
 } 
;  ( 73,  ( ( _,  ( values::QQ_EXPR expr,  _,  (exprright as expr1right))) !  ( _,  ( _,  (sizeofleft as sizeof1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (UNOP(SIZEOF, expr), sizeofleft, exprright));
 ( lr_table::NONTERM 6,  ( result,  sizeof1left,  expr1right),  rest671);
 } 
;  ( 74,  ( ( _,  ( values::QQ_EXPR expr,  _,  (exprright as expr1right))) !  _ !  ( _,  ( values::QQ_TYPENAME typename,  _,  _)) !  ( _,  ( _,  (lparenleft as lparen1left),  _)) !  rest671)) => { 
 my  result = values::QQ_EXPR (mark_expression src_map (CAST (typename, expr), lparenleft, exprright));
 ( lr_table::NONTERM 6,  ( result,  lparen1left,  expr1right),  rest671);
 } 
;  ( 75,  ( ( _,  ( _,  _,  (rparenright as rparen1right))) !  ( _,  ( values::QQ_TYPENAME typename,  _,  _)) !  _ !  ( _,  ( _,  (sizeofleft as sizeof1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPR (mark_expression src_map (UNOP(SIZEOF_TYPE typename, EMPTY_EXPR), sizeofleft, rparenright));
 ( lr_table::NONTERM 6,  ( result,  sizeof1left,  rparen1right),  rest671);
 } 
;  ( 76,  ( ( _,  ( _,  _,  (rbraceright as rbrace1right))) !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) =>
 {  my  result = values::QQ_EXPR (mark_expression src_map (BINOP(SUB, expr, exprwcomma), exprleft, rbraceright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  rbrace1right),  rest671);
 } 
;  ( 77,  ( ( _,  ( _,  _,  (rparenright as rparen1right))) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (CALL(expr,[]), exprleft, rparenright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  rparen1right),  rest671);
 } 
;  ( 78,  ( ( _,  ( _,  _,  (rparenright as rparen1right))) !  ( _,  ( values::QQ_ARGUMENTEXPRLIST argumentexprlist,  _,  _)) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  
rest671)) => {  my  result = values::QQ_EXPR (mark_expression src_map (CALL(expr, seq_to_list argumentexprlist), exprleft, rparenright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  rparen1right)
,  rest671);
 } 
;  ( 79,  ( ( _,  ( values::IDENTIFIER identifier,  _,  (identifierright as identifier1right))) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPR (mark_expression src_map (BINOP(DOT, expr, ID(identifier)), exprleft, identifierright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  identifier1right),  rest671);
 } 
;  ( 80,  ( ( _,  ( values::IDENTIFIER identifier,  _,  (identifierright as identifier1right))) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPR (mark_expression src_map (BINOP(ARROW, expr, ID(identifier)), exprleft, identifierright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  identifier1right),  rest671);
 } 
;  ( 81,  ( ( _,  ( values::TYPE_NAME type_name,  _,  (type_nameright as type_name1right))) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPR (mark_expression src_map (BINOP(DOT, expr, ID(type_name)), exprleft, type_nameright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  type_name1right),  rest671);
 } 
;  ( 82,  ( ( _,  ( values::TYPE_NAME type_name,  _,  (type_nameright as type_name1right))) !  _ !  ( _,  ( values::QQ_EXPR expr,  (exprleft as expr1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPR (mark_expression src_map (BINOP(ARROW, expr, ID(type_name)), exprleft, type_nameright));
 ( lr_table::NONTERM 6,  ( result,  expr1left,  type_name1right),  rest671);
 } 
;  ( 83,  ( ( _,  ( _,  _,  (rparenright as rparen1right))) !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  _,  _)) !  ( _,  ( _,  (lparenleft as lparen1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPR (mark_expression src_map (exprwcomma, lparenleft, rparenright));
 ( lr_table::NONTERM 6,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 84,  ( ( _,  ( values::DECNUM decnum,  (decnumleft as decnum1left),  (decnumright as decnum1right))) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (INT_CONST decnum, decnumleft, decnumright));
 ( lr_table::NONTERM 6,  ( result,  decnum1left,  decnum1right),  rest671);
 } 
;  ( 85,  ( ( _,  ( values::REALNUM realnum,  (realnumleft as realnum1left),  (realnumright as realnum1right))) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (REAL_CONST realnum, realnumleft, realnumright));
 ( lr_table::NONTERM 6,  ( result,  realnum1left,  realnum1right),  rest671);
 } 
;  ( 86,  ( ( _,  ( values::CCONST cconst,  (cconstleft as cconst1left),  (cconstright as cconst1right))) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (INT_CONST cconst, cconstleft, cconstright));
 ( lr_table::NONTERM 6,  ( result,  cconst1left,  cconst1right),  rest671);
 } 
;  ( 87,  ( ( _,  ( values::IDENTIFIER identifier,  (identifierleft as identifier1left),  (identifierright as identifier1right))) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (ID(identifier), identifierleft, identifierright));
 ( lr_table::NONTERM 6,  ( result,  identifier1left,  identifier1right),  rest671);
 } 
;  ( 88,  ( ( _,  ( values::QQ_STRINGS strings,  (stringsleft as strings1left),  (stringsright as strings1right))) !  rest671)) => {  my  result = values::QQ_EXPR (
mark_expression src_map (STRING(strings), stringsleft, stringsright));
 ( lr_table::NONTERM 6,  ( result,  strings1left,  strings1right),  rest671);
 } 
;  ( 89,  ( ( _,  ( values::STRING_CONSTANT string_constant,  string_constant1left,  string_constant1right)) !  rest671)) => {  my  result = values::QQ_STRINGS (string_constant);
 ( lr_table::NONTERM 
63,  ( result,  string_constant1left,  string_constant1right),  rest671);
 } 
;  ( 90,  ( ( _,  ( values::QQ_STRINGS strings,  _,  strings1right)) !  ( _,  ( values::STRING_CONSTANT string_constant,  string_constant1left,  _)) !  rest671)) => {  my  result = values::QQ_STRINGS
 (string_constant + strings);
 ( lr_table::NONTERM 63,  ( result,  string_constant1left,  strings1right),  rest671);
 } 
;  ( 91,  ( ( _,  ( values::QQ_EXPR expr,  expr1left,  expr1right)) !  rest671)) => {  my  result = values::QQ_EXPRWCOMMA (expr);
 ( lr_table::NONTERM 8,  ( result,  expr1left,  expr1right),  rest671)
;
 } 
;  ( 92,  ( ( _,  ( values::QQ_EXPR expr,  _,  (exprright as expr1right))) !  _ !  ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  (exprwcommaleft as exprwcomma1left),  _)) !  rest671)) => {  my  result = 
values::QQ_EXPRWCOMMA (mark_expression src_map (BINOP(COMMA, exprwcomma, expr), exprwcommaleft, exprright));
 ( lr_table::NONTERM 8,  ( result,  exprwcomma1left,  expr1right),  rest671);
 } 
;  ( 93,  ( rest671)) => {  my  result = values::QQ_OPEXPR (EMPTY_EXPR);
 ( lr_table::NONTERM 7,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 94,  ( ( _,  ( values::QQ_EXPRWCOMMA exprwcomma,  exprwcomma1left,  exprwcomma1right)) !  rest671)) => {  my  result = values::QQ_OPEXPR (exprwcomma);
 ( lr_table::NONTERM 7,  ( result,  
exprwcomma1left,  exprwcomma1right),  rest671);
 } 
;  ( 95,  ( ( _,  ( values::QQ_EXPR expr,  expr1left,  expr1right)) !  rest671)) => {  my  result = values::QQ_ARGUMENTEXPRLIST (singleton_seq expr);
 ( lr_table::NONTERM 10,  ( result,  expr1left,  
expr1right),  rest671);
 } 
;  ( 96,  ( ( _,  ( values::QQ_EXPR expr,  _,  expr1right)) !  _ !  ( _,  ( values::QQ_ARGUMENTEXPRLIST argumentexprlist,  argumentexprlist1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ARGUMENTEXPRLIST (add_to_seq(expr, argumentexprlist));
 ( lr_table::NONTERM 10,  ( result,  argumentexprlist1left,  expr1right),  rest671);
 } 
;  ( 97,  ( ( _,  ( values::QQ_SPECIFIERQUALIFIERLIST specifierqualifierlist,  specifierqualifierlist1left,  specifierqualifierlist1right)) !  rest671)) => {  my  result = values::QQ_TYPENAME (
specifierqualifierlist);
 ( lr_table::NONTERM 36,  ( result,  specifierqualifierlist1left,  specifierqualifierlist1right),  rest671);
 } 
;  ( 98,  ( ( _,  ( values::QQ_ABSTRACTDECLARATOR abstractdeclarator,  _,  abstractdeclarator1right)) !  ( _,  ( values::QQ_SPECIFIERQUALIFIERLIST specifierqualifierlist,  specifierqualifierlist1left
,  _)) !  rest671)) => {  my  result = values::QQ_TYPENAME (#1 (ctype_decr_to_type_name (specifierqualifierlist, abstractdeclarator)));
 ( lr_table::NONTERM 36,  ( result,  specifierqualifierlist1left
,  abstractdeclarator1right),  rest671);
 } 
;  ( 99,  ( ( _,  ( values::QQ_RESERVEDECLARATIONSPECIFIER reservedeclarationspecifier,  _,  reservedeclarationspecifier1right)) !  ( _,  ( values::QQ_TYPESPECIFIER typespecifier,  typespecifier1left
,  _)) !  rest671)) => {  my  result = values::QQ_DECLARATIONSPECIFIERS (add_specifier (typespecifier,
                                                        reservedeclarationspecifier));
 ( lr_table::NONTERM 28,  ( result,  
typespecifier1left,  reservedeclarationspecifier1right),  rest671);
 } 
;  ( 100,  ( ( _,  ( values::QQ_RESERVEDECLARATIONSPECIFIER reservedeclarationspecifier,  _,  reservedeclarationspecifier1right)) !  ( _,  ( values::QQ_TYPESPECIFIER typespecifier,  _,  _)) !  ( _,  (
 values::QQ_DECLARATIONMODIFIERS declarationmodifiers,  declarationmodifiers1left,  _)) !  rest671)) => {  my  result = values::QQ_DECLARATIONSPECIFIERS (
add_all (declarationmodifiers,
                                                  add_specifier (typespecifier,
                                                                 reservedeclarationspecifier)));
 ( lr_table::NONTERM 28,  ( result,  
declarationmodifiers1left,  reservedeclarationspecifier1right),  rest671);
 } 
;  ( 101,  ( rest671)) => {  my  result = values::QQ_RESERVEDECLARATIONSPECIFIER (unknown);
 ( lr_table::NONTERM 30,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 102,  ( ( _,  ( values::QQ_SPECIFIERQUALIFIERRESERVED specifierqualifierreserved,  _,  specifierqualifierreserved1right)) !  ( _,  ( values::QQ_RESERVEDECLARATIONSPECIFIER 
reservedeclarationspecifier,  reservedeclarationspecifier1left,  _)) !  rest671)) => {  my  result = values::QQ_RESERVEDECLARATIONSPECIFIER (
   {   my { qualifiers, specifiers } = specifierqualifierreserved;

                                                decltype = { qualifiers, specifiers, storage => [] };

                                                add_all (decltype, reservedeclarationspecifier);
                                            }
                                        
);
 ( lr_table::NONTERM 30,  ( result,  reservedeclarationspecifier1left,  specifierqualifierreserved1right),  rest671);
 } 
;  ( 103,  ( ( _,  ( values::QQ_STORAGEILKSPECIFIER storageilkspecifier,  _,  storageilkspecifier1right)) !  ( _,  ( values::QQ_RESERVEDECLARATIONSPECIFIER reservedeclarationspecifier,  
reservedeclarationspecifier1left,  _)) !  rest671)) => {  my  result = values::QQ_RESERVEDECLARATIONSPECIFIER (
add_storage (storageilkspecifier,
                                                      reservedeclarationspecifier));
 ( lr_table::NONTERM 30,  ( result,  reservedeclarationspecifier1left,  
storageilkspecifier1right),  rest671);
 } 
;  ( 104,  ( ( _,  ( values::QQ_TYPESPECIFIERRESERVED typespecifierreserved,  typespecifierreserved1left,  typespecifierreserved1right)) !  rest671)) => {  my  result = 
values::QQ_SPECIFIERQUALIFIERRESERVED ({ qualifiers => [], specifiers => [typespecifierreserved] });
 ( lr_table::NONTERM 31,  ( result,  typespecifierreserved1left,  typespecifierreserved1right),  
rest671);
 } 
;  ( 105,  ( ( _,  ( values::QQ_TYPEQUALIFIER typequalifier,  typequalifier1left,  typequalifier1right)) !  rest671)) => {  my  result = values::QQ_SPECIFIERQUALIFIERRESERVED (
{ qualifiers => [typequalifier], specifiers => [] });
 ( lr_table::NONTERM 31,  ( result,  typequalifier1left,  typequalifier1right),  rest671);
 } 
;  ( 106,  ( ( _,  ( values::QQ_STRUCTORUNIONSPECIFIER structorunionspecifier,  structorunionspecifier1left,  structorunionspecifier1right)) !  rest671)) => {  my  result = 
values::QQ_SPECIFIERQUALIFIERRESERVED ({ qualifiers => [], specifiers => [structorunionspecifier] });
 ( lr_table::NONTERM 31,  ( result,  structorunionspecifier1left,  structorunionspecifier1right), 
 rest671);
 } 
;  ( 107,  ( ( _,  ( values::QQ_ENUMSPECIFIER enumspecifier,  enumspecifier1left,  enumspecifier1right)) !  rest671)) => {  my  result = values::QQ_SPECIFIERQUALIFIERRESERVED (
{ qualifiers => [], specifiers => [enumspecifier] });
 ( lr_table::NONTERM 31,  ( result,  enumspecifier1left,  enumspecifier1right),  rest671);
 } 
;  ( 108,  ( ( _,  ( values::QQ_STORAGEILKSPECIFIER storageilkspecifier,  storageilkspecifier1left,  storageilkspecifier1right)) !  rest671)) => {  my  result = values::QQ_DECLARATIONMODIFIERS (
{ storage  =>  [storageilkspecifier],
                                          qualifiers  =>  [],
                                          specifiers  =>  [] });
 ( lr_table::NONTERM 29,  ( result,  storageilkspecifier1left,  storageilkspecifier1right),  rest671)
;
 } 
;  ( 109,  ( ( _,  ( values::QQ_STORAGEILKSPECIFIER storageilkspecifier,  _,  storageilkspecifier1right)) !  ( _,  ( values::QQ_DECLARATIONMODIFIERS declarationmodifiers,  declarationmodifiers1left, 
 _)) !  rest671)) => {  my  result = values::QQ_DECLARATIONMODIFIERS (add_storage(storageilkspecifier, declarationmodifiers));
 ( lr_table::NONTERM 29,  ( result,  declarationmodifiers1left,  
storageilkspecifier1right),  rest671);
 } 
;  ( 110,  ( ( _,  ( values::QQ_TYPEQUALIFIER typequalifier,  typequalifier1left,  typequalifier1right)) !  rest671)) => {  my  result = values::QQ_DECLARATIONMODIFIERS (
{ specifiers  =>  [],
                                          storage  =>  [], 
                                          qualifiers  =>  [typequalifier] });
 ( lr_table::NONTERM 29,  ( result,  typequalifier1left,  typequalifier1right),  rest671);
 } 
;  ( 111,  ( ( _,  ( values::QQ_TYPEQUALIFIER typequalifier,  _,  typequalifier1right)) !  ( _,  ( values::QQ_DECLARATIONMODIFIERS declarationmodifiers,  declarationmodifiers1left,  _)) !  rest671))
 => {  my  result = values::QQ_DECLARATIONMODIFIERS (add_qualifier(typequalifier, declarationmodifiers));
 ( lr_table::NONTERM 29,  ( result,  declarationmodifiers1left,  typequalifier1right),  
rest671);
 } 
;  ( 112,  ( ( _,  ( values::QQ_RESERVEDSPECIFIERQUALIFIERS reservedspecifierqualifiers,  _,  reservedspecifierqualifiers1right)) !  ( _,  ( values::QQ_TYPESPECIFIER typespecifier,  typespecifier1left
,  _)) !  rest671)) => {  my  result = values::QQ_SPECIFIERQUALIFIERLIST (
   {   my { specifiers, qualifiers } = reservedspecifierqualifiers;

                                                { specifiers => typespecifier ! specifiers, qualifiers };
                                            }
                                        
);
 ( lr_table::NONTERM 41,  ( result,  typespecifier1left,  reservedspecifierqualifiers1right),  rest671);
 } 
;  ( 113,  ( ( _,  ( values::QQ_RESERVEDSPECIFIERQUALIFIERS reservedspecifierqualifiers,  _,  reservedspecifierqualifiers1right)) !  ( _,  ( values::QQ_TYPESPECIFIER typespecifier,  _,  _)) !  ( _,  (
 values::QQ_TYPEQUALIFIERLIST typequalifierlist,  typequalifierlist1left,  _)) !  rest671)) => {  my  result = values::QQ_SPECIFIERQUALIFIERLIST (
   {   my { specifiers, qualifiers } = reservedspecifierqualifiers;

                                                {   specifiers => typespecifier ! specifiers
                                                ,   qualifiers => typequalifierlist@qualifiers
                                                };
                                            }
                                        
);
 ( lr_table::NONTERM 41,  ( result,  typequalifierlist1left,  reservedspecifierqualifiers1right),  rest671);
 } 
;  ( 114,  ( rest671)) => {  my  result = values::QQ_RESERVEDSPECIFIERQUALIFIERS ({ qualifiers => [], specifiers => [] });
 ( lr_table::NONTERM 32,  ( result,  default_position,  default_position),  
rest671);
 } 
;  ( 115,  ( ( _,  ( values::QQ_SPECIFIERQUALIFIERRESERVED specifierqualifierreserved,  _,  specifierqualifierreserved1right)) !  ( _,  ( values::QQ_RESERVEDSPECIFIERQUALIFIERS 
reservedspecifierqualifiers,  reservedspecifierqualifiers1left,  _)) !  rest671)) => {  my  result = values::QQ_RESERVEDSPECIFIERQUALIFIERS (
   {   my { specifiers => s1, qualifiers => q1 } = reservedspecifierqualifiers;
                                                my { specifiers => s2, qualifiers => q2 } = specifierqualifierreserved;

                                                { specifiers => s1@s2, qualifiers => q1@q2 };
                                            }
                                        
);
 ( lr_table::NONTERM 32,  ( result,  reservedspecifierqualifiers1left,  specifierqualifierreserved1right),  rest671);
 } 
;  ( 116,  ( ( _,  ( values::QQ_TYPEQUALIFIER typequalifier,  typequalifier1left,  typequalifier1right)) !  rest671)) => {  my  result = values::QQ_TYPEQUALIFIERLIST ([typequalifier]);
 ( 
lr_table::NONTERM 40,  ( result,  typequalifier1left,  typequalifier1right),  rest671);
 } 
;  ( 117,  ( ( _,  ( values::QQ_TYPEQUALIFIERLIST typequalifierlist,  _,  typequalifierlist1right)) !  ( _,  ( values::QQ_TYPEQUALIFIER typequalifier,  typequalifier1left,  _)) !  rest671)) => {  my  
result = values::QQ_TYPEQUALIFIERLIST (typequalifier ! typequalifierlist);
 ( lr_table::NONTERM 40,  ( result,  typequalifier1left,  typequalifierlist1right),  rest671);
 } 
;  ( 118,  ( ( _,  ( values::QQ_TYPESPECIFIERRESERVED typespecifierreserved,  typespecifierreserved1left,  typespecifierreserved1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIER (
typespecifierreserved);
 ( lr_table::NONTERM 37,  ( result,  typespecifierreserved1left,  typespecifierreserved1right),  rest671);
 } 
;  ( 119,  ( ( _,  ( values::QQ_STRUCTORUNIONSPECIFIER structorunionspecifier,  structorunionspecifier1left,  structorunionspecifier1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIER (
structorunionspecifier);
 ( lr_table::NONTERM 37,  ( result,  structorunionspecifier1left,  structorunionspecifier1right),  rest671);
 } 
;  ( 120,  ( ( _,  ( values::QQ_ENUMSPECIFIER enumspecifier,  enumspecifier1left,  enumspecifier1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIER (enumspecifier);
 ( lr_table::NONTERM 
37,  ( result,  enumspecifier1left,  enumspecifier1right),  rest671);
 } 
;  ( 121,  ( ( _,  ( values::TYPE_NAME type_name,  type_name1left,  type_name1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIER (TYPEDEF_NAME type_name);
 ( lr_table::NONTERM 37,  ( 
result,  type_name1left,  type_name1right),  rest671);
 } 
;  ( 122,  ( ( _,  ( _,  void1left,  void1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (VOID);
 ( lr_table::NONTERM 38,  ( result,  void1left,  void1right),  rest671);
 } 
;  ( 123,  ( ( _,  ( _,  char1left,  char1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (CHAR);
 ( lr_table::NONTERM 38,  ( result,  char1left,  char1right),  rest671);
 } 
;  ( 124,  ( ( _,  ( _,  short1left,  short1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (SHORT);
 ( lr_table::NONTERM 38,  ( result,  short1left,  short1right),  rest671)
;
 } 
;  ( 125,  ( ( _,  ( _,  int1left,  int1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (INT);
 ( lr_table::NONTERM 38,  ( result,  int1left,  int1right),  rest671);
 } 
;  ( 126,  ( ( _,  ( _,  long1left,  long1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (LONG);
 ( lr_table::NONTERM 38,  ( result,  long1left,  long1right),  rest671);
 } 
;  ( 127,  ( ( _,  ( _,  float1left,  float1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (FLOAT);
 ( lr_table::NONTERM 38,  ( result,  float1left,  float1right),  rest671)
;
 } 
;  ( 128,  ( ( _,  ( _,  double1left,  double1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (DOUBLE);
 ( lr_table::NONTERM 38,  ( result,  double1left,  double1right),  
rest671);
 } 
;  ( 129,  ( ( _,  ( _,  signed1left,  signed1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (SIGNED);
 ( lr_table::NONTERM 38,  ( result,  signed1left,  signed1right),  
rest671);
 } 
;  ( 130,  ( ( _,  ( _,  unsigned1left,  unsigned1right)) !  rest671)) => {  my  result = values::QQ_TYPESPECIFIERRESERVED (UNSIGNED);
 ( lr_table::NONTERM 38,  ( result,  unsigned1left,  
unsigned1right),  rest671);
 } 
;  ( 131,  ( ( _,  ( _,  _,  rcurly1right)) !  ( _,  ( values::QQ_STRUCTDECLARATIONLIST structdeclarationlist,  _,  _)) !  _ !  ( _,  ( values::QQ_STRUCTORUNION structorunion,  structorunion1left,  _)
) !  rest671)) => {  my  result = values::QQ_STRUCTORUNIONSPECIFIER (STRUCT { is_struct => structorunion, tag_opt => NULL, members => seq_to_list structdeclarationlist } );
 ( lr_table::NONTERM 43,  (
 result,  structorunion1left,  rcurly1right),  rest671);
 } 
;  ( 132,  ( ( _,  ( _,  _,  rcurly1right)) !  ( _,  ( values::QQ_STRUCTDECLARATIONLIST structdeclarationlist,  _,  _)) !  _ !  ( _,  ( values::IDENTIFIER identifier,  _,  _)) !  ( _,  ( 
values::QQ_STRUCTORUNION structorunion,  structorunion1left,  _)) !  rest671)) => {  my  result = values::QQ_STRUCTORUNIONSPECIFIER (
STRUCT{ is_struct => structorunion, tag_opt => THE identifier, members => seq_to_list structdeclarationlist } );
 ( lr_table::NONTERM 43,  ( result,  structorunion1left,  rcurly1right),  rest671);
 } 
;  ( 133,  ( ( _,  ( _,  _,  rcurly1right)) !  ( _,  ( values::QQ_STRUCTDECLARATIONLIST structdeclarationlist,  _,  _)) !  _ !  ( _,  ( values::TYPE_NAME type_name,  _,  _)) !  ( _,  ( 
values::QQ_STRUCTORUNION structorunion,  structorunion1left,  _)) !  rest671)) => {  my  result = values::QQ_STRUCTORUNIONSPECIFIER (
STRUCT{ is_struct => structorunion, tag_opt => THE type_name, members => seq_to_list structdeclarationlist } );
 ( lr_table::NONTERM 43,  ( result,  structorunion1left,  rcurly1right),  rest671);
 } 
;  ( 134,  ( ( _,  ( values::IDENTIFIER identifier,  _,  identifier1right)) !  ( _,  ( values::QQ_STRUCTORUNION structorunion,  structorunion1left,  _)) !  rest671)) => {  my  result = 
values::QQ_STRUCTORUNIONSPECIFIER (STRUCT_TAG { is_struct => structorunion, name => identifier } );
 ( lr_table::NONTERM 43,  ( result,  structorunion1left,  identifier1right),  rest671);
 } 
;  ( 135,  ( ( _,  ( values::TYPE_NAME type_name,  _,  type_name1right)) !  ( _,  ( values::QQ_STRUCTORUNION structorunion,  structorunion1left,  _)) !  rest671)) => {  my  result = 
values::QQ_STRUCTORUNIONSPECIFIER (STRUCT_TAG { is_struct => structorunion, name => type_name } );
 ( lr_table::NONTERM 43,  ( result,  structorunion1left,  type_name1right),  rest671);
 } 
;  ( 136,  ( ( _,  ( _,  struct1left,  struct1right)) !  rest671)) => {  my  result = values::QQ_STRUCTORUNION (TRUE);
 ( lr_table::NONTERM 54,  ( result,  struct1left,  struct1right),  rest671);
 } 
;  ( 137,  ( ( _,  ( _,  union1left,  union1right)) !  rest671)) => {  my  result = values::QQ_STRUCTORUNION (FALSE);
 ( lr_table::NONTERM 54,  ( result,  union1left,  union1right),  rest671);
 } 
;  ( 138,  ( ( _,  ( values::QQ_STRUCTDECLARATION structdeclaration,  structdeclaration1left,  structdeclaration1right)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATIONLIST (
singleton_seq structdeclaration);
 ( lr_table::NONTERM 59,  ( result,  structdeclaration1left,  structdeclaration1right),  rest671);
 } 
;  ( 139,  ( ( _,  ( values::QQ_STRUCTDECLARATION structdeclaration,  _,  structdeclaration1right)) !  ( _,  ( values::QQ_STRUCTDECLARATIONLIST structdeclarationlist,  structdeclarationlist1left,  _))
 !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATIONLIST (add_to_seq(structdeclaration, structdeclarationlist));
 ( lr_table::NONTERM 59,  ( result,  structdeclarationlist1left,  
structdeclaration1right),  rest671);
 } 
;  ( 140,  ( ( _,  ( _,  _,  semicolon1right)) !  ( _,  ( values::QQ_STRUCTDECLARATORLIST structdeclaratorlist,  _,  _)) !  ( _,  ( values::QQ_SPECIFIERQUALIFIERLIST specifierqualifierlist,  
specifierqualifierlist1left,  _)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATION ((specifierqualifierlist, seq_to_list structdeclaratorlist));
 ( lr_table::NONTERM 60,  ( result,  
specifierqualifierlist1left,  semicolon1right),  rest671);
 } 
;  ( 141,  ( ( _,  ( _,  _,  semicolon1right)) !  ( _,  ( values::QQ_NOTYPESTRUCTDECLARATORLIST notypestructdeclaratorlist,  _,  _)) !  ( _,  ( values::QQ_TYPEQUALIFIERLIST typequalifierlist,  
typequalifierlist1left,  _)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATION (
   {    ct = { qualifiers => typequalifierlist, specifiers => [] };

                                                 (ct, seq_to_list notypestructdeclaratorlist);
                                            }
                                        );
 ( 
lr_table::NONTERM 60,  ( result,  typequalifierlist1left,  semicolon1right),  rest671);
 } 
;  ( 142,  ( ( _,  ( values::QQ_STRUCTDECLARATOR structdeclarator,  structdeclarator1left,  structdeclarator1right)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATORLIST (
singleton_seq structdeclarator);
 ( lr_table::NONTERM 57,  ( result,  structdeclarator1left,  structdeclarator1right),  rest671);
 } 
;  ( 143,  ( ( _,  ( values::QQ_STRUCTDECLARATOR structdeclarator,  _,  structdeclarator1right)) !  _ !  ( _,  ( values::QQ_STRUCTDECLARATORLIST structdeclaratorlist,  structdeclaratorlist1left,  _))
 !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATORLIST (add_to_seq(structdeclarator, structdeclaratorlist));
 ( lr_table::NONTERM 57,  ( result,  structdeclaratorlist1left,  
structdeclarator1right),  rest671);
 } 
;  ( 144,  ( ( _,  ( values::QQ_NOTYPESTRUCTDECLARATOR notypestructdeclarator,  notypestructdeclarator1left,  notypestructdeclarator1right)) !  rest671)) => {  my  result = 
values::QQ_NOTYPESTRUCTDECLARATORLIST (singleton_seq notypestructdeclarator);
 ( lr_table::NONTERM 58,  ( result,  notypestructdeclarator1left,  notypestructdeclarator1right),  rest671);
 } 
;  ( 145,  ( ( _,  ( values::QQ_STRUCTDECLARATOR structdeclarator,  _,  structdeclarator1right)) !  _ !  ( _,  ( values::QQ_NOTYPESTRUCTDECLARATORLIST notypestructdeclaratorlist,  
notypestructdeclaratorlist1left,  _)) !  rest671)) => {  my  result = values::QQ_NOTYPESTRUCTDECLARATORLIST (add_to_seq(structdeclarator, notypestructdeclaratorlist));
 ( lr_table::NONTERM 58,  ( 
result,  notypestructdeclaratorlist1left,  structdeclarator1right),  rest671);
 } 
;  ( 146,  ( ( _,  ( values::QQ_DECLARATOR declarator,  declarator1left,  declarator1right)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATOR (declarator, EMPTY_EXPR);
 ( lr_table::NONTERM 
55,  ( result,  declarator1left,  declarator1right),  rest671);
 } 
;  ( 147,  ( ( _,  ( values::QQ_EXPR expr,  _,  expr1right)) !  ( _,  ( _,  colon1left,  _)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATOR (EMPTY_DECR, expr);
 ( lr_table::NONTERM 55,  (
 result,  colon1left,  expr1right),  rest671);
 } 
;  ( 148,  ( ( _,  ( values::QQ_EXPR expr,  _,  expr1right)) !  _ !  ( _,  ( values::QQ_DECLARATOR declarator,  declarator1left,  _)) !  rest671)) => {  my  result = values::QQ_STRUCTDECLARATOR (
declarator, expr);
 ( lr_table::NONTERM 55,  ( result,  declarator1left,  expr1right),  rest671);
 } 
;  ( 149,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  notypedeclarator1left,  notypedeclarator1right)) !  rest671)) => {  my  result = values::QQ_NOTYPESTRUCTDECLARATOR (
notypedeclarator, EMPTY_EXPR);
 ( lr_table::NONTERM 56,  ( result,  notypedeclarator1left,  notypedeclarator1right),  rest671);
 } 
;  ( 150,  ( ( _,  ( values::QQ_EXPR expr,  _,  expr1right)) !  ( _,  ( _,  colon1left,  _)) !  rest671)) => {  my  result = values::QQ_NOTYPESTRUCTDECLARATOR (EMPTY_DECR, expr);
 ( lr_table::NONTERM 
56,  ( result,  colon1left,  expr1right),  rest671);
 } 
;  ( 151,  ( ( _,  ( values::QQ_EXPR expr,  _,  expr1right)) !  _ !  ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  notypedeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_NOTYPESTRUCTDECLARATOR (notypedeclarator, expr);
 ( lr_table::NONTERM 56,  ( result,  notypedeclarator1left,  expr1right),  rest671);
 } 
;  ( 152,  ( ( _,  ( _,  const1left,  const1right)) !  rest671)) => {  my  result = values::QQ_TYPEQUALIFIER (CONST);
 ( lr_table::NONTERM 39,  ( result,  const1left,  const1right),  rest671);
 } 
;  ( 153,  ( ( _,  ( _,  volatile1left,  volatile1right)) !  rest671)) => {  my  result = values::QQ_TYPEQUALIFIER (VOLATILE);
 ( lr_table::NONTERM 39,  ( result,  volatile1left,  volatile1right),  
rest671);
 } 
;  ( 154,  ( ( _,  ( _,  _,  rcurly1right)) !  ( _,  ( values::QQ_TRAILINGCOMMA trailingcomma,  _,  _)) !  ( _,  ( values::QQ_ENUMERATORLIST enumeratorlist,  _,  _)) !  _ !  ( _,  ( _,  enum_t1left, 
 _)) !  rest671)) => {  my  result = values::QQ_ENUMSPECIFIER (ENUM{ tag_opt => NULL, enumerators => seq_to_list enumeratorlist, trailing_comma => trailingcomma } );
 ( lr_table::NONTERM 42,  ( result
,  enum_t1left,  rcurly1right),  rest671);
 } 
;  ( 155,  ( ( _,  ( _,  _,  rcurly1right)) !  ( _,  ( values::QQ_TRAILINGCOMMA trailingcomma,  _,  _)) !  ( _,  ( values::QQ_ENUMERATORLIST enumeratorlist,  _,  _)) !  _ !  ( _,  ( values::IDENTIFIER
 identifier,  _,  _)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = values::QQ_ENUMSPECIFIER (
ENUM{ tag_opt => THE(identifier), enumerators => seq_to_list enumeratorlist, trailing_comma => trailingcomma } );
 ( lr_table::NONTERM 42,  ( result,  enum_t1left,  rcurly1right),  rest671);
 } 
;  ( 156,  ( ( _,  ( _,  _,  rcurly1right)) !  ( _,  ( values::QQ_TRAILINGCOMMA trailingcomma,  _,  _)) !  ( _,  ( values::QQ_ENUMERATORLIST enumeratorlist,  _,  _)) !  _ !  ( _,  ( values::TYPE_NAME 
type_name,  _,  _)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = values::QQ_ENUMSPECIFIER (
ENUM{ tag_opt => THE(type_name), enumerators => seq_to_list enumeratorlist, trailing_comma => trailingcomma } );
 ( lr_table::NONTERM 42,  ( result,  enum_t1left,  rcurly1right),  rest671);
 } 
;  ( 157,  ( ( _,  ( values::IDENTIFIER identifier,  _,  identifier1right)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = values::QQ_ENUMSPECIFIER (ENUM_TAG(identifier));
 ( 
lr_table::NONTERM 42,  ( result,  enum_t1left,  identifier1right),  rest671);
 } 
;  ( 158,  ( ( _,  ( values::TYPE_NAME type_name,  _,  type_name1right)) !  ( _,  ( _,  enum_t1left,  _)) !  rest671)) => {  my  result = values::QQ_ENUMSPECIFIER (ENUM_TAG(type_name));
 ( 
lr_table::NONTERM 42,  ( result,  enum_t1left,  type_name1right),  rest671);
 } 
;  ( 159,  ( ( _,  ( values::QQ_ENUMERATOR enumerator,  _,  enumerator1right)) !  _ !  ( _,  ( values::QQ_ENUMERATORLIST enumeratorlist,  enumeratorlist1left,  _)) !  rest671)) => {  my  result = 
values::QQ_ENUMERATORLIST (add_to_seq(enumerator, enumeratorlist));
 ( lr_table::NONTERM 12,  ( result,  enumeratorlist1left,  enumerator1right),  rest671);
 } 
;  ( 160,  ( ( _,  ( values::QQ_ENUMERATOR enumerator,  enumerator1left,  enumerator1right)) !  rest671)) => {  my  result = values::QQ_ENUMERATORLIST (
   {   (type_defs::add_no_tdef (#1 (enumerator)));

                                                singleton_seq enumerator;
                                            }
                                        );
 ( lr_table::NONTERM
 12,  ( result,  enumerator1left,  enumerator1right),  rest671);
 } 
;  ( 161,  ( ( _,  ( values::IDENTIFIER identifier,  identifier1left,  identifier1right)) !  rest671)) => {  my  result = values::QQ_ENUMERATOR ((identifier, parse_tree::EMPTY_EXPR));
 ( 
lr_table::NONTERM 13,  ( result,  identifier1left,  identifier1right),  rest671);
 } 
;  ( 162,  ( ( _,  ( values::QQ_EXPR expr,  _,  expr1right)) !  _ !  ( _,  ( values::IDENTIFIER identifier,  identifier1left,  _)) !  rest671)) => {  my  result = values::QQ_ENUMERATOR (
identifier, expr);
 ( lr_table::NONTERM 13,  ( result,  identifier1left,  expr1right),  rest671);
 } 
;  ( 163,  ( ( _,  ( _,  extern1left,  extern1right)) !  rest671)) => {  my  result = values::QQ_STORAGEILKSPECIFIER (EXTERN);
 ( lr_table::NONTERM 35,  ( result,  extern1left,  extern1right),  
rest671);
 } 
;  ( 164,  ( ( _,  ( _,  static1left,  static1right)) !  rest671)) => {  my  result = values::QQ_STORAGEILKSPECIFIER (STATIC);
 ( lr_table::NONTERM 35,  ( result,  static1left,  static1right),  
rest671);
 } 
;  ( 165,  ( ( _,  ( _,  auto1left,  auto1right)) !  rest671)) => {  my  result = values::QQ_STORAGEILKSPECIFIER (AUTO);
 ( lr_table::NONTERM 35,  ( result,  auto1left,  auto1right),  rest671);
 } 
;  ( 166,  ( ( _,  ( _,  register1left,  register1right)) !  rest671)) => {  my  result = values::QQ_STORAGEILKSPECIFIER (REGISTER);
 ( lr_table::NONTERM 35,  ( result,  register1left,  register1right
),  rest671);
 } 
;  ( 167,  ( ( _,  ( _,  typedef1left,  typedef1right)) !  rest671)) => {  my  result = values::QQ_STORAGEILKSPECIFIER (TYPEDEF);
 ( lr_table::NONTERM 35,  ( result,  typedef1left,  typedef1right),  
rest671);
 } 
;  ( 168,  ( rest671)) => {  my  result = values::QQ_TRAILINGCOMMA (FALSE);
 ( lr_table::NONTERM 11,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 169,  ( ( _,  ( _,  comma1left,  comma1right)) !  rest671)) => {  my  result = values::QQ_TRAILINGCOMMA (TRUE);
 ( lr_table::NONTERM 11,  ( result,  comma1left,  comma1right),  rest671);
 } 
;  ( 170,  ( ( _,  ( values::QQ_INITDECLARATOR initdeclarator,  initdeclarator1left,  initdeclarator1right)) !  rest671)) => {  my  result = values::QQ_INITDECLARATORLIST (singleton_seq initdeclarator
);
 ( lr_table::NONTERM 18,  ( result,  initdeclarator1left,  initdeclarator1right),  rest671);
 } 
;  ( 171,  ( ( _,  ( values::QQ_INITDECLARATOR initdeclarator,  _,  initdeclarator1right)) !  _ !  ( _,  ( values::QQ_INITDECLARATORLIST initdeclaratorlist,  initdeclaratorlist1left,  _)) !  rest671))
 => {  my  result = values::QQ_INITDECLARATORLIST (add_to_seq(initdeclarator, initdeclaratorlist));
 ( lr_table::NONTERM 18,  ( result,  initdeclaratorlist1left,  initdeclarator1right),  rest671);
 } 
;  ( 172,  ( ( _,  ( values::QQ_DECLARATOR declarator,  declarator1left,  declarator1right)) !  rest671)) => {  my  result = values::QQ_INITDECLARATOR ((declarator, EMPTY_EXPR));
 ( lr_table::NONTERM 
16,  ( result,  declarator1left,  declarator1right),  rest671);
 } 
;  ( 173,  ( ( _,  ( values::QQ_INITIALIZER initializer,  _,  initializer1right)) !  _ !  ( _,  ( values::QQ_DECLARATOR declarator,  declarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_INITDECLARATOR (declarator, initializer);
 ( lr_table::NONTERM 16,  ( result,  declarator1left,  initializer1right),  rest671);
 } 
;  ( 174,  ( ( _,  ( values::QQ_NOTYPEINITDECLARATOR notypeinitdeclarator,  notypeinitdeclarator1left,  notypeinitdeclarator1right)) !  rest671)) => {  my  result = values::QQ_NOTYPEINITDECLARATORLIST
 (singleton_seq notypeinitdeclarator);
 ( lr_table::NONTERM 19,  ( result,  notypeinitdeclarator1left,  notypeinitdeclarator1right),  rest671);
 } 
;  ( 175,  ( ( _,  ( values::QQ_INITDECLARATOR initdeclarator,  _,  initdeclarator1right)) !  _ !  ( _,  ( values::QQ_NOTYPEINITDECLARATORLIST notypeinitdeclaratorlist,  notypeinitdeclaratorlist1left
,  _)) !  rest671)) => {  my  result = values::QQ_NOTYPEINITDECLARATORLIST (add_to_seq(initdeclarator, notypeinitdeclaratorlist));
 ( lr_table::NONTERM 19,  ( result,  notypeinitdeclaratorlist1left,  
initdeclarator1right),  rest671);
 } 
;  ( 176,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  notypedeclarator1left,  notypedeclarator1right)) !  rest671)) => {  my  result = values::QQ_NOTYPEINITDECLARATOR (
(notypedeclarator, EMPTY_EXPR));
 ( lr_table::NONTERM 17,  ( result,  notypedeclarator1left,  notypedeclarator1right),  rest671);
 } 
;  ( 177,  ( ( _,  ( values::QQ_INITIALIZER initializer,  _,  initializer1right)) !  _ !  ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  notypedeclarator1left,  _)) !  rest671)) => {  my  
result = values::QQ_NOTYPEINITDECLARATOR (notypedeclarator, initializer);
 ( lr_table::NONTERM 17,  ( result,  notypedeclarator1left,  initializer1right),  rest671);
 } 
;  ( 178,  ( ( _,  ( values::QQ_AFTERTYPEDECLARATOR aftertypedeclarator,  aftertypedeclarator1left,  aftertypedeclarator1right)) !  rest671)) => {  my  result = values::QQ_DECLARATOR (
aftertypedeclarator);
 ( lr_table::NONTERM 21,  ( result,  aftertypedeclarator1left,  aftertypedeclarator1right),  rest671);
 } 
;  ( 179,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  notypedeclarator1left,  notypedeclarator1right)) !  rest671)) => {  my  result = values::QQ_DECLARATOR (notypedeclarator);
 ( 
lr_table::NONTERM 21,  ( result,  notypedeclarator1left,  notypedeclarator1right),  rest671);
 } 
;  ( 180,  ( ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  aftertypedirectdeclarator1left,  aftertypedirectdeclarator1right)) !  rest671)) => {  my  result = 
values::QQ_AFTERTYPEDECLARATOR (aftertypedirectdeclarator);
 ( lr_table::NONTERM 22,  ( result,  aftertypedirectdeclarator1left,  aftertypedirectdeclarator1right),  rest671);
 } 
;  ( 181,  ( ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  _,  aftertypedirectdeclarator1right)) !  ( _,  ( values::QQ_POINTER pointer,  pointer1left,  _)) !  rest671)) =>
 {  my  result = values::QQ_AFTERTYPEDECLARATOR (apply_pointer(pointer, aftertypedirectdeclarator));
 ( lr_table::NONTERM 22,  ( result,  pointer1left,  aftertypedirectdeclarator1right),  rest671)
;
 } 
;  ( 182,  ( ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  notypedirectdeclarator1left,  notypedirectdeclarator1right)) !  rest671)) => {  my  result = values::QQ_NOTYPEDECLARATOR
 (notypedirectdeclarator);
 ( lr_table::NONTERM 23,  ( result,  notypedirectdeclarator1left,  notypedirectdeclarator1right),  rest671);
 } 
;  ( 183,  ( ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  _,  notypedirectdeclarator1right)) !  ( _,  ( values::QQ_POINTER pointer,  pointer1left,  _)) !  rest671)) => {  my  
result = values::QQ_NOTYPEDECLARATOR (apply_pointer(pointer, notypedirectdeclarator));
 ( lr_table::NONTERM 23,  ( result,  pointer1left,  notypedirectdeclarator1right),  rest671);
 } 
;  ( 184,  ( ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  parmdirectdeclarator1left,  parmdirectdeclarator1right)) !  rest671)) => {  my  result = values::QQ_PARMDECLARATOR (
parmdirectdeclarator);
 ( lr_table::NONTERM 24,  ( result,  parmdirectdeclarator1left,  parmdirectdeclarator1right),  rest671);
 } 
;  ( 185,  ( ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  _,  parmdirectdeclarator1right)) !  ( _,  ( values::QQ_POINTER pointer,  pointer1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PARMDECLARATOR (apply_pointer(pointer, parmdirectdeclarator));
 ( lr_table::NONTERM 24,  ( result,  pointer1left,  parmdirectdeclarator1right),  rest671);
 } 
;  ( 186,  ( ( _,  ( _,  times1left,  times1right)) !  rest671)) => {  my  result = values::QQ_POINTER (POINTER_DECR(EMPTY_DECR));
 ( lr_table::NONTERM 20,  ( result,  times1left,  times1right),  
rest671);
 } 
;  ( 187,  ( ( _,  ( values::QQ_TYPEQUALIFIERLIST typequalifierlist,  _,  typequalifierlist1right)) !  ( _,  ( _,  times1left,  _)) !  rest671)) => {  my  result = values::QQ_POINTER (
POINTER_DECR(loop_qd(typequalifierlist, EMPTY_DECR)));
 ( lr_table::NONTERM 20,  ( result,  times1left,  typequalifierlist1right),  rest671);
 } 
;  ( 188,  ( ( _,  ( values::QQ_POINTER pointer,  _,  pointer1right)) !  ( _,  ( _,  times1left,  _)) !  rest671)) => {  my  result = values::QQ_POINTER (POINTER_DECR(pointer));
 ( lr_table::NONTERM 
20,  ( result,  times1left,  pointer1right),  rest671);
 } 
;  ( 189,  ( ( _,  ( values::QQ_POINTER pointer,  _,  pointer1right)) !  ( _,  ( values::QQ_TYPEQUALIFIERLIST typequalifierlist,  _,  _)) !  ( _,  ( _,  times1left,  _)) !  rest671)) => {  my  result
 = values::QQ_POINTER (POINTER_DECR(loop_qd(typequalifierlist, pointer)));
 ( lr_table::NONTERM 20,  ( result,  times1left,  pointer1right),  rest671);
 } 
;  ( 190,  ( ( _,  ( values::TYPE_NAME type_name,  (type_nameleft as type_name1left),  (type_nameright as type_name1right))) !  rest671)) => {  my  result = values::QQ_AFTERTYPEDIRECTDECLARATOR (
mark_declarator src_map (VAR_DECR type_name, type_nameleft, type_nameright));
 ( lr_table::NONTERM 25,  ( result,  type_name1left,  type_name1right),  rest671);
 } 
;  ( 191,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_AFTERTYPEDECLARATOR aftertypedeclarator,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = 
values::QQ_AFTERTYPEDIRECTDECLARATOR (aftertypedeclarator);
 ( lr_table::NONTERM 25,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 192,  ( ( _,  ( _,  _,  rbrace1right)) !  _ !  ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  aftertypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_AFTERTYPEDIRECTDECLARATOR (ARRAY_DECR (aftertypedirectdeclarator, EMPTY_EXPR));
 ( lr_table::NONTERM 25,  ( result,  aftertypedirectdeclarator1left,  rbrace1right),  rest671);
 } 
;  ( 193,  ( ( _,  ( _,  _,  rbrace1right)) !  ( _,  ( values::QQ_EXPR expr,  _,  _)) !  _ !  ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  aftertypedirectdeclarator1left, 
 _)) !  rest671)) => {  my  result = values::QQ_AFTERTYPEDIRECTDECLARATOR (ARRAY_DECR (aftertypedirectdeclarator, expr));
 ( lr_table::NONTERM 25,  ( result,  aftertypedirectdeclarator1left,  
rbrace1right),  rest671);
 } 
;  ( 194,  ( ( _,  ( _,  _,  rparen1right)) !  _ !  ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  aftertypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_AFTERTYPEDIRECTDECLARATOR (FUNC_DECR (aftertypedirectdeclarator, NIL));
 ( lr_table::NONTERM 25,  ( result,  aftertypedirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 195,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PARAMETERTYPELIST parametertypelist,  _,  _)) !  _ !  ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  
aftertypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = values::QQ_AFTERTYPEDIRECTDECLARATOR (FUNC_DECR (aftertypedirectdeclarator, parametertypelist));
 ( lr_table::NONTERM 25,  ( result
,  aftertypedirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 196,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_IDENTLIST identlist,  _,  _)) !  _ !  ( _,  ( values::QQ_AFTERTYPEDIRECTDECLARATOR aftertypedirectdeclarator,  
aftertypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = values::QQ_AFTERTYPEDIRECTDECLARATOR (
FUNC_DECR (aftertypedirectdeclarator,
                                            map (\\ (x, y, z) = (unknown, mark_declarator src_map (VAR_DECR x, y, z))) (seq_to_list identlist)));
 ( lr_table::NONTERM 25,  ( result,  
aftertypedirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 197,  ( ( _,  ( values::IDENTIFIER identifier,  (identifierleft as identifier1left),  (identifierright as identifier1right))) !  rest671)) => {  my  result = values::QQ_NOTYPEDIRECTDECLARATOR (
mark_declarator src_map (VAR_DECR identifier, identifierleft, identifierright));
 ( lr_table::NONTERM 26,  ( result,  identifier1left,  identifier1right),  rest671);
 } 
;  ( 198,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = 
values::QQ_NOTYPEDIRECTDECLARATOR (notypedeclarator);
 ( lr_table::NONTERM 26,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 199,  ( ( _,  ( _,  _,  rbrace1right)) !  _ !  ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  notypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_NOTYPEDIRECTDECLARATOR (ARRAY_DECR (notypedirectdeclarator, EMPTY_EXPR));
 ( lr_table::NONTERM 26,  ( result,  notypedirectdeclarator1left,  rbrace1right),  rest671);
 } 
;  ( 200,  ( ( _,  ( _,  _,  rbrace1right)) !  ( _,  ( values::QQ_EXPR expr,  _,  _)) !  _ !  ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  notypedirectdeclarator1left,  _)) !  
rest671)) => {  my  result = values::QQ_NOTYPEDIRECTDECLARATOR (ARRAY_DECR (notypedirectdeclarator, expr));
 ( lr_table::NONTERM 26,  ( result,  notypedirectdeclarator1left,  rbrace1right),  rest671)
;
 } 
;  ( 201,  ( ( _,  ( _,  _,  rparen1right)) !  _ !  ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  notypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_NOTYPEDIRECTDECLARATOR (FUNC_DECR (notypedirectdeclarator, NIL));
 ( lr_table::NONTERM 26,  ( result,  notypedirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 202,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PARAMETERTYPELIST parametertypelist,  _,  _)) !  _ !  ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  
notypedirectdeclarator1left,  _)) !  rest671)) => {  my  result = values::QQ_NOTYPEDIRECTDECLARATOR (FUNC_DECR (notypedirectdeclarator, parametertypelist));
 ( lr_table::NONTERM 26,  ( result,  
notypedirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 203,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_IDENTLIST identlist,  _,  _)) !  _ !  ( _,  ( values::QQ_NOTYPEDIRECTDECLARATOR notypedirectdeclarator,  notypedirectdeclarator1left, 
 _)) !  rest671)) => {  my  result = values::QQ_NOTYPEDIRECTDECLARATOR (
FUNC_DECR (notypedirectdeclarator,
                                                   map (\\ (x, y, z) = (unknown, mark_declarator src_map (VAR_DECR x, y, z))) (seq_to_list identlist)));
 ( lr_table::NONTERM 26,  ( result,  
notypedirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 204,  ( ( _,  ( values::TYPE_NAME type_name,  (type_nameleft as type_name1left),  (type_nameright as type_name1right))) !  rest671)) => {  my  result = values::QQ_PARMDIRECTDECLARATOR (
mark_declarator src_map (VAR_DECR type_name, type_nameleft, type_nameright));
 ( lr_table::NONTERM 27,  ( result,  type_name1left,  type_name1right),  rest671);
 } 
;  ( 205,  ( ( _,  ( _,  _,  rbrace1right)) !  _ !  ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  parmdirectdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PARMDIRECTDECLARATOR (ARRAY_DECR (parmdirectdeclarator, EMPTY_EXPR));
 ( lr_table::NONTERM 27,  ( result,  parmdirectdeclarator1left,  rbrace1right),  rest671);
 } 
;  ( 206,  ( ( _,  ( _,  _,  rbrace1right)) !  ( _,  ( values::QQ_EXPR expr,  _,  _)) !  _ !  ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  parmdirectdeclarator1left,  _)) !  rest671)
) => {  my  result = values::QQ_PARMDIRECTDECLARATOR (ARRAY_DECR (parmdirectdeclarator, expr));
 ( lr_table::NONTERM 27,  ( result,  parmdirectdeclarator1left,  rbrace1right),  rest671);
 } 
;  ( 207,  ( ( _,  ( _,  _,  rparen1right)) !  _ !  ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  parmdirectdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_PARMDIRECTDECLARATOR (FUNC_DECR (parmdirectdeclarator, NIL));
 ( lr_table::NONTERM 27,  ( result,  parmdirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 208,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PARAMETERTYPELIST parametertypelist,  _,  _)) !  _ !  ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  
parmdirectdeclarator1left,  _)) !  rest671)) => {  my  result = values::QQ_PARMDIRECTDECLARATOR (FUNC_DECR (parmdirectdeclarator, parametertypelist));
 ( lr_table::NONTERM 27,  ( result,  
parmdirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 209,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_IDENTLIST identlist,  _,  _)) !  _ !  ( _,  ( values::QQ_PARMDIRECTDECLARATOR parmdirectdeclarator,  parmdirectdeclarator1left,  _))
 !  rest671)) => {  my  result = values::QQ_PARMDIRECTDECLARATOR (
FUNC_DECR (parmdirectdeclarator,
                                                    map (\\ (x, y, z) = (unknown, mark_declarator src_map (VAR_DECR x, y, z))) (seq_to_list identlist)));
 ( lr_table::NONTERM 27,  ( result,  
parmdirectdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 210,  ( ( _,  ( values::QQ_EXPR expr,  expr1left,  expr1right)) !  rest671)) => {  my  result = values::QQ_INITIALIZER (expr);
 ( lr_table::NONTERM 33,  ( result,  expr1left,  expr1right),  
rest671);
 } 
;  ( 211,  ( ( _,  ( _,  _,  (rcurlyright as rcurly1right))) !  _ !  ( _,  ( values::QQ_INITIALIZERLIST initializerlist,  _,  _)) !  ( _,  ( _,  (lcurlyleft as lcurly1left),  _)) !  rest671)) => { 
 my  result = values::QQ_INITIALIZER (mark_expression src_map (INIT_LIST(seq_to_list initializerlist), lcurlyleft, rcurlyright));
 ( lr_table::NONTERM 33,  ( result,  lcurly1left,  rcurly1right),  
rest671);
 } 
;  ( 212,  ( ( _,  ( values::QQ_INITIALIZER initializer,  initializer1left,  initializer1right)) !  rest671)) => {  my  result = values::QQ_INITIALIZERLIST (singleton_seq initializer);
 ( 
lr_table::NONTERM 34,  ( result,  initializer1left,  initializer1right),  rest671);
 } 
;  ( 213,  ( ( _,  ( values::QQ_INITIALIZER initializer,  _,  initializer1right)) !  _ !  ( _,  ( values::QQ_INITIALIZERLIST initializerlist,  initializerlist1left,  _)) !  rest671)) => {  my  result
 = values::QQ_INITIALIZERLIST (add_to_seq(initializer, initializerlist));
 ( lr_table::NONTERM 34,  ( result,  initializerlist1left,  initializer1right),  rest671);
 } 
;  ( 214,  ( ( _,  ( values::QQ_DECLARATION declaration,  (declarationleft as declaration1left),  (declarationright as declaration1right))) !  rest671)) => {  my  result = values::QQ_DECLARATIONLIST (
singleton_seq(mark_declaration src_map (declaration,
                                                                              declarationleft,
                                                                              declarationright)));
 ( lr_table::NONTERM 45,  ( result,  declaration1left,  
declaration1right),  rest671);
 } 
;  ( 215,  ( ( _,  ( values::QQ_DECLARATION declaration,  declarationleft,  (declarationright as declaration1right))) !  ( _,  ( values::QQ_DECLARATIONLIST declarationlist,  declarationlist1left,  _))
 !  rest671)) => {  my  result = values::QQ_DECLARATIONLIST (
add_to_seq(mark_declaration src_map (declaration,
                                                                          declarationleft,
                                                                          declarationright),
                                                  declarationlist));
 ( lr_table::NONTERM 45,  ( result,  
declarationlist1left,  declaration1right),  rest671);
 } 
;  ( 216,  ( ( _,  ( values::IDENTIFIER identifier,  (identifierleft as identifier1left),  (identifierright as identifier1right))) !  rest671)) => {  my  result = values::QQ_IDENTLIST (
singleton_seq (identifier, identifierleft, identifierright));
 ( lr_table::NONTERM 46,  ( result,  identifier1left,  identifier1right),  rest671);
 } 
;  ( 217,  ( ( _,  ( values::IDENTIFIER identifier,  identifierleft,  (identifierright as identifier1right))) !  _ !  ( _,  ( values::QQ_IDENTLIST identlist,  identlist1left,  _)) !  rest671)) => { 
 my  result = values::QQ_IDENTLIST (add_to_seq((identifier, identifierleft, identifierright), identlist));
 ( lr_table::NONTERM 46,  ( result,  identlist1left,  identifier1right),  rest671);
 } 
;  ( 218,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  notypedeclarator1left,  notypedeclarator1right)) !  rest671)) => {  my  result = values::QQ_FDEFDECLARATION (
   {   insert_func_name(notypedeclarator);
                                                type_defs::push_scope();
                                                insert_func_params(notypedeclarator);
                                                (unknown, notypedeclarator);
                                            }
                                        
);
 ( lr_table::NONTERM 44,  ( result,  notypedeclarator1left,  notypedeclarator1right),  rest671);
 } 
;  ( 219,  ( ( _,  ( values::QQ_DECLARATOR declarator,  _,  declarator1right)) !  ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  declarationspecifiers1left,  _)) !  rest671)) => { 
 my  result = values::QQ_FDEFDECLARATION (
   {   insert_func_name(declarator);
                                                type_defs::push_scope();
                                                insert_func_params(declarator);
                                                (declarationspecifiers, declarator);
                                            }
                                        
);
 ( lr_table::NONTERM 44,  ( result,  declarationspecifiers1left,  declarator1right),  rest671);
 } 
;  ( 220,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  _,  notypedeclarator1right)) !  ( _,  ( values::QQ_DECLARATIONMODIFIERS declarationmodifiers,  declarationmodifiers1left,  _)) !  
rest671)) => {  my  result = values::QQ_FDEFDECLARATION (
   {   insert_func_name(notypedeclarator);
                                                type_defs::push_scope();
                                                insert_func_params(notypedeclarator);
                                                (declarationmodifiers, notypedeclarator);
                                            }
                                        
);
 ( lr_table::NONTERM 44,  ( result,  declarationmodifiers1left,  notypedeclarator1right),  rest671);
 } 
;  ( 221,  ( ( _,  ( values::QQ_COMPOUNDSTATEMENT compoundstatement,  _,  compoundstatement1right)) !  ( _,  ( values::QQ_FDEFDECLARATION fdefdeclaration,  fdefdeclaration1left,  _)) !  rest671)) =>
 {  my  result = values::QQ_FUNCTIONDEFINITION (
   {   type_defs::pop_scope();

                                                FUN
                                                   { ret_type  =>  #1 fdefdeclaration,
                                                    fun_decr  =>  #2 fdefdeclaration,
                                                    kr_params  =>  [],
                                                    body  =>  compoundstatement};
                                            }
                                        
);
 ( lr_table::NONTERM 47,  ( result,  fdefdeclaration1left,  compoundstatement1right),  rest671);
 } 
;  ( 222,  ( ( _,  ( values::QQ_COMPOUNDSTATEMENT compoundstatement,  _,  compoundstatement1right)) !  ( _,  ( values::QQ_DECLARATIONLIST declarationlist,  _,  _)) !  ( _,  ( 
values::QQ_FDEFDECLARATION fdefdeclaration,  fdefdeclaration1left,  _)) !  rest671)) => {  my  result = values::QQ_FUNCTIONDEFINITION (
   {   type_defs::pop_scope();

                                                FUN 
                                                   { ret_type  =>  #1 fdefdeclaration,
                                                    fun_decr  =>  #2 fdefdeclaration,
                                                    kr_params  =>  seq_to_list declarationlist,
                                                    body  =>  compoundstatement};
                                            }
                                        
);
 ( lr_table::NONTERM 47,  ( result,  fdefdeclaration1left,  compoundstatement1right),  rest671);
 } 
;  ( 223,  ( ( _,  ( values::QQ_POINTER pointer,  pointer1left,  pointer1right)) !  rest671)) => {  my  result = values::QQ_ABSTRACTDECLARATOR (apply_pointer (pointer, EMPTY_DECR));
 ( 
lr_table::NONTERM 14,  ( result,  pointer1left,  pointer1right),  rest671);
 } 
;  ( 224,  ( ( _,  ( values::QQ_DIRECTABSTRACTDECLARATOR directabstractdeclarator,  directabstractdeclarator1left,  directabstractdeclarator1right)) !  rest671)) => {  my  result = 
values::QQ_ABSTRACTDECLARATOR (directabstractdeclarator);
 ( lr_table::NONTERM 14,  ( result,  directabstractdeclarator1left,  directabstractdeclarator1right),  rest671);
 } 
;  ( 225,  ( ( _,  ( values::QQ_DIRECTABSTRACTDECLARATOR directabstractdeclarator,  _,  directabstractdeclarator1right)) !  ( _,  ( values::QQ_POINTER pointer,  pointer1left,  _)) !  rest671)) => { 
 my  result = values::QQ_ABSTRACTDECLARATOR (apply_pointer(pointer, directabstractdeclarator));
 ( lr_table::NONTERM 14,  ( result,  pointer1left,  directabstractdeclarator1right),  rest671);
 } 
;  ( 226,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_ABSTRACTDECLARATOR abstractdeclarator,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = 
values::QQ_DIRECTABSTRACTDECLARATOR (abstractdeclarator);
 ( lr_table::NONTERM 15,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 227,  ( ( _,  ( _,  _,  rbrace1right)) !  ( _,  ( _,  lbrace1left,  _)) !  rest671)) => {  my  result = values::QQ_DIRECTABSTRACTDECLARATOR (ARRAY_DECR(EMPTY_DECR, EMPTY_EXPR));
 ( 
lr_table::NONTERM 15,  ( result,  lbrace1left,  rbrace1right),  rest671);
 } 
;  ( 228,  ( ( _,  ( _,  _,  rbrace1right)) !  ( _,  ( values::QQ_EXPR expr,  _,  _)) !  ( _,  ( _,  lbrace1left,  _)) !  rest671)) => {  my  result = values::QQ_DIRECTABSTRACTDECLARATOR (
ARRAY_DECR(EMPTY_DECR, expr));
 ( lr_table::NONTERM 15,  ( result,  lbrace1left,  rbrace1right),  rest671);
 } 
;  ( 229,  ( ( _,  ( _,  _,  rbrace1right)) !  _ !  ( _,  ( values::QQ_DIRECTABSTRACTDECLARATOR directabstractdeclarator,  directabstractdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_DIRECTABSTRACTDECLARATOR (ARRAY_DECR (directabstractdeclarator, EMPTY_EXPR));
 ( lr_table::NONTERM 15,  ( result,  directabstractdeclarator1left,  rbrace1right),  rest671);
 } 
;  ( 230,  ( ( _,  ( _,  _,  rbrace1right)) !  ( _,  ( values::QQ_EXPR expr,  _,  _)) !  _ !  ( _,  ( values::QQ_DIRECTABSTRACTDECLARATOR directabstractdeclarator,  directabstractdeclarator1left,  _))
 !  rest671)) => {  my  result = values::QQ_DIRECTABSTRACTDECLARATOR (ARRAY_DECR (directabstractdeclarator, expr));
 ( lr_table::NONTERM 15,  ( result,  directabstractdeclarator1left,  rbrace1right), 
 rest671);
 } 
;  ( 231,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = values::QQ_DIRECTABSTRACTDECLARATOR (FUNC_DECR (EMPTY_DECR, NIL));
 ( lr_table::NONTERM 15
,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 232,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PARAMETERTYPELIST parametertypelist,  _,  _)) !  ( _,  ( _,  lparen1left,  _)) !  rest671)) => {  my  result = 
values::QQ_DIRECTABSTRACTDECLARATOR (FUNC_DECR (EMPTY_DECR, parametertypelist));
 ( lr_table::NONTERM 15,  ( result,  lparen1left,  rparen1right),  rest671);
 } 
;  ( 233,  ( ( _,  ( _,  _,  rparen1right)) !  _ !  ( _,  ( values::QQ_DIRECTABSTRACTDECLARATOR directabstractdeclarator,  directabstractdeclarator1left,  _)) !  rest671)) => {  my  result = 
values::QQ_DIRECTABSTRACTDECLARATOR (FUNC_DECR (directabstractdeclarator, NIL));
 ( lr_table::NONTERM 15,  ( result,  directabstractdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 234,  ( ( _,  ( _,  _,  rparen1right)) !  ( _,  ( values::QQ_PARAMETERTYPELIST parametertypelist,  _,  _)) !  _ !  ( _,  ( values::QQ_DIRECTABSTRACTDECLARATOR directabstractdeclarator,  
directabstractdeclarator1left,  _)) !  rest671)) => {  my  result = values::QQ_DIRECTABSTRACTDECLARATOR (FUNC_DECR (directabstractdeclarator, parametertypelist));
 ( lr_table::NONTERM 15,  ( result,  
directabstractdeclarator1left,  rparen1right),  rest671);
 } 
;  ( 235,  ( ( _,  ( values::QQ_PARAMETERLIST parameterlist,  parameterlist1left,  parameterlist1right)) !  rest671)) => {  my  result = values::QQ_PARAMETERTYPELIST (seq_to_list parameterlist);
 ( 
lr_table::NONTERM 52,  ( result,  parameterlist1left,  parameterlist1right),  rest671);
 } 
;  ( 236,  ( ( _,  ( _,  _,  elipsis1right)) !  _ !  ( _,  ( values::QQ_PARAMETERLIST parameterlist,  parameterlist1left,  _)) !  rest671)) => {  my  result = values::QQ_PARAMETERTYPELIST (
   {   decltype =  {   specifiers => [ELLIPSES],
                                                        qualifiers => [],
                                                        storage    => []
                                                    };

                                        (seq_to_list parameterlist) @ [(decltype, ELLIPSES_DECR)];
                                    }
                                
);
 ( lr_table::NONTERM 52,  ( result,  parameterlist1left,  elipsis1right),  rest671);
 } 
;  ( 237,  ( ( _,  ( values::QQ_PARAMETERDECLARATION parameterdeclaration,  (parameterdeclarationleft as parameterdeclaration1left),  (parameterdeclarationright as parameterdeclaration1right))) !  
rest671)) => {  my  result = values::QQ_PARAMETERLIST (
singleton_seq(#1 parameterdeclaration,
                                              mark_declarator src_map (#2 parameterdeclaration,
                                                                     parameterdeclarationleft,
                                                                     parameterdeclarationright))
);
 ( lr_table::NONTERM 51,  ( result,  parameterdeclaration1left,  parameterdeclaration1right),  rest671);
 } 
;  ( 238,  ( ( _,  ( values::QQ_PARAMETERDECLARATION parameterdeclaration,  parameterdeclarationleft,  (parameterdeclarationright as parameterdeclaration1right))) !  _ !  ( _,  ( 
values::QQ_PARAMETERLIST parameterlist,  parameterlist1left,  _)) !  rest671)) => {  my  result = values::QQ_PARAMETERLIST (
add_to_seq((#1 parameterdeclaration,
                                                   mark_declarator
                                                    src_map 
                                                     (#2 parameterdeclaration,
                                                      parameterdeclarationleft,
                                                      parameterdeclarationright)),
                                          parameterlist)
);
 ( lr_table::NONTERM 51,  ( result,  parameterlist1left,  parameterdeclaration1right),  rest671);
 } 
;  ( 239,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  _,  notypedeclarator1right)) !  ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  declarationspecifiers1left,  _)) ! 
 rest671)) => {  my  result = values::QQ_PARAMETERDECLARATION ((declarationspecifiers, notypedeclarator));
 ( lr_table::NONTERM 53,  ( result,  declarationspecifiers1left,  notypedeclarator1right),  
rest671);
 } 
;  ( 240,  ( ( _,  ( values::QQ_PARMDECLARATOR parmdeclarator,  _,  parmdeclarator1right)) !  ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  declarationspecifiers1left,  _)) !  
rest671)) => {  my  result = values::QQ_PARAMETERDECLARATION ((declarationspecifiers, parmdeclarator));
 ( lr_table::NONTERM 53,  ( result,  declarationspecifiers1left,  parmdeclarator1right),  
rest671);
 } 
;  ( 241,  ( ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  declarationspecifiers1left,  declarationspecifiers1right)) !  rest671)) => {  my  result = values::QQ_PARAMETERDECLARATION
 ((declarationspecifiers, EMPTY_DECR));
 ( lr_table::NONTERM 53,  ( result,  declarationspecifiers1left,  declarationspecifiers1right),  rest671);
 } 
;  ( 242,  ( ( _,  ( values::QQ_ABSTRACTDECLARATOR abstractdeclarator,  _,  abstractdeclarator1right)) !  ( _,  ( values::QQ_DECLARATIONSPECIFIERS declarationspecifiers,  declarationspecifiers1left, 
 _)) !  rest671)) => {  my  result = values::QQ_PARAMETERDECLARATION ((declarationspecifiers, abstractdeclarator));
 ( lr_table::NONTERM 53,  ( result,  declarationspecifiers1left,  
abstractdeclarator1right),  rest671);
 } 
;  ( 243,  ( ( _,  ( values::QQ_NOTYPEDECLARATOR notypedeclarator,  _,  notypedeclarator1right)) !  ( _,  ( values::QQ_DECLARATIONMODIFIERS declarationmodifiers,  declarationmodifiers1left,  _)) !  
rest671)) => {  my  result = values::QQ_PARAMETERDECLARATION ((declarationmodifiers, notypedeclarator));
 ( lr_table::NONTERM 53,  ( result,  declarationmodifiers1left,  notypedeclarator1right),  
rest671);
 } 
;  ( 244,  ( ( _,  ( values::QQ_ABSTRACTDECLARATOR abstractdeclarator,  _,  abstractdeclarator1right)) !  ( _,  ( values::QQ_DECLARATIONMODIFIERS declarationmodifiers,  declarationmodifiers1left,  _))
 !  rest671)) => {  my  result = values::QQ_PARAMETERDECLARATION ((declarationmodifiers, abstractdeclarator));
 ( lr_table::NONTERM 53,  ( result,  declarationmodifiers1left,  abstractdeclarator1right
),  rest671);
 } 
;  ( 245,  ( rest671)) => {  my  result = values::QQ_PUSHSCOPE (type_defs::push_scope());
 ( lr_table::NONTERM 61,  ( result,  default_position,  default_position),  rest671);
 } 
;  ( 246,  ( rest671)) => {  my  result = values::QQ_POPSCOPE (type_defs::pop_scope());
 ( lr_table::NONTERM 62,  ( result,  default_position,  default_position),  rest671);
 } 
; _ => raise exception (MLY_ACTION i392);
esac;
end;
void = values::TM_VOID;
extract = \\ a = (\\ values::QQ_TRANSLATIONUNIT x => x;
 _ => { exception PARSE_INTERNAL;
         raise exception PARSE_INTERNAL; }; end ) a ;
};
};
package tokens : (weak) Ckit_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 colon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 1, (parser_data::values::TM_VOID, p1, p2));
fun semicolon (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 2, (parser_data::values::TM_VOID, p1, p2));
fun lparen (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 3, (parser_data::values::TM_VOID, p1, p2));
fun rparen (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 4, (parser_data::values::TM_VOID, p1, p2));
fun lcurly (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 5, (parser_data::values::TM_VOID, p1, p2));
fun rcurly (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 6, (parser_data::values::TM_VOID, p1, p2));
fun lbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 7, (parser_data::values::TM_VOID, p1, p2));
fun rbrace (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 8, (parser_data::values::TM_VOID, p1, p2));
fun dot (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 9, (parser_data::values::TM_VOID, p1, p2));
fun comma (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 10, (parser_data::values::TM_VOID, p1, p2));
fun question (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 11, (parser_data::values::TM_VOID, p1, p2));
fun percent (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 12, (parser_data::values::TM_VOID, p1, p2));
fun amp (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 13, (parser_data::values::TM_VOID, p1, p2));
fun bar (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 14, (parser_data::values::TM_VOID, p1, p2));
fun tilde (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 15, (parser_data::values::TM_VOID, p1, p2));
fun divide (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 16, (parser_data::values::TM_VOID, p1, p2));
fun plus (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 17, (parser_data::values::TM_VOID, p1, p2));
fun minus (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 18, (parser_data::values::TM_VOID, p1, p2));
fun hat (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 19, (parser_data::values::TM_VOID, p1, p2));
fun bang (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 20, (parser_data::values::TM_VOID, p1, p2));
fun times (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 21, (parser_data::values::TM_VOID, p1, p2));
fun inc (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 22, (parser_data::values::TM_VOID, p1, p2));
fun dec (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 23, (parser_data::values::TM_VOID, p1, p2));
fun arrow (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 24, (parser_data::values::TM_VOID, p1, p2));
fun identifier (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 25, (parser_data::values::IDENTIFIER i, p1, p2));
fun equals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 26, (parser_data::values::TM_VOID, p1, p2));
fun plusequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 27, (parser_data::values::TM_VOID, p1, p2));
fun minusequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 28, (parser_data::values::TM_VOID, p1, p2));
fun xorequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 29, (parser_data::values::TM_VOID, p1, p2));
fun modequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 30, (parser_data::values::TM_VOID, p1, p2));
fun timesequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 31, (parser_data::values::TM_VOID, p1, p2));
fun divequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 32, (parser_data::values::TM_VOID, p1, p2));
fun orequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 33, (parser_data::values::TM_VOID, p1, p2));
fun andequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 34, (parser_data::values::TM_VOID, p1, p2));
fun lshiftequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 35, (parser_data::values::TM_VOID, p1, p2));
fun rshiftequals (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 36, (parser_data::values::TM_VOID, p1, p2));
fun lte (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 37, (parser_data::values::TM_VOID, p1, p2));
fun gte (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 38, (parser_data::values::TM_VOID, p1, p2));
fun lt (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 39, (parser_data::values::TM_VOID, p1, p2));
fun gt (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 40, (parser_data::values::TM_VOID, p1, p2));
fun eq (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 41, (parser_data::values::TM_VOID, p1, p2));
fun neq (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 42, (parser_data::values::TM_VOID, p1, p2));
fun or_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 43, (parser_data::values::TM_VOID, p1, p2));
fun and_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 44, (parser_data::values::TM_VOID, p1, p2));
fun lshift (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 45, (parser_data::values::TM_VOID, p1, p2));
fun rshift (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 46, (parser_data::values::TM_VOID, p1, p2));
fun decnum (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 47, (parser_data::values::DECNUM i, p1, p2));
fun realnum (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 48, (parser_data::values::REALNUM i, p1, p2));
fun string_constant (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 49, (parser_data::values::STRING_CONSTANT i, p1, p2));
fun cconst (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 50, (parser_data::values::CCONST i, p1, p2));
fun extern (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 51, (parser_data::values::TM_VOID, p1, p2));
fun auto (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 52, (parser_data::values::TM_VOID, p1, p2));
fun static (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 53, (parser_data::values::TM_VOID, p1, p2));
fun register (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 54, (parser_data::values::TM_VOID, p1, p2));
fun const (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 55, (parser_data::values::TM_VOID, p1, p2));
fun volatile (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 56, (parser_data::values::TM_VOID, p1, p2));
fun if_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 57, (parser_data::values::TM_VOID, p1, p2));
fun then_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 58, (parser_data::values::TM_VOID, p1, p2));
fun else_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 59, (parser_data::values::TM_VOID, p1, p2));
fun for_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 60, (parser_data::values::TM_VOID, p1, p2));
fun do_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 61, (parser_data::values::TM_VOID, p1, p2));
fun switch (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 62, (parser_data::values::TM_VOID, p1, p2));
fun case_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 63, (parser_data::values::TM_VOID, p1, p2));
fun default (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 64, (parser_data::values::TM_VOID, p1, p2));
fun while_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 65, (parser_data::values::TM_VOID, p1, p2));
fun return (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 66, (parser_data::values::TM_VOID, p1, p2));
fun break (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 67, (parser_data::values::TM_VOID, p1, p2));
fun continue (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 68, (parser_data::values::TM_VOID, p1, p2));
fun goto (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 69, (parser_data::values::TM_VOID, p1, p2));
fun char (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 70, (parser_data::values::TM_VOID, p1, p2));
fun double (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 71, (parser_data::values::TM_VOID, p1, p2));
fun enum_t (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 72, (parser_data::values::TM_VOID, p1, p2));
fun float (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 73, (parser_data::values::TM_VOID, p1, p2));
fun int (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 74, (parser_data::values::TM_VOID, p1, p2));
fun long (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 75, (parser_data::values::TM_VOID, p1, p2));
fun short (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 76, (parser_data::values::TM_VOID, p1, p2));
fun fractional (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 77, (parser_data::values::TM_VOID, p1, p2));
fun saturate (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 78, (parser_data::values::TM_VOID, p1, p2));
fun struct (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 79, (parser_data::values::TM_VOID, p1, p2));
fun union (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 80, (parser_data::values::TM_VOID, p1, p2));
fun unsigned (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 81, (parser_data::values::TM_VOID, p1, p2));
fun signed (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 82, (parser_data::values::TM_VOID, p1, p2));
fun void (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 83, (parser_data::values::TM_VOID, p1, p2));
fun sizeof (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 84, (parser_data::values::TM_VOID, p1, p2));
fun typedef (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 85, (parser_data::values::TM_VOID, p1, p2));
fun unary (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 86, (parser_data::values::TM_VOID, p1, p2));
fun elipsis (p1, p2) = token::TOKEN (parser_data::lr_table::TERM 87, (parser_data::values::TM_VOID, p1, p2));
fun type_name (i, p1, p2) = token::TOKEN (parser_data::lr_table::TERM 88, (parser_data::values::TYPE_NAME i, p1, p2));
};
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext