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));
};
};