summaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-06 14:20:30 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-06 14:20:30 +0000
commit0f2952a1b9dca38240341ee5f52aac41082b7fb3 (patch)
treeca926df12cc21f9255b06e75608dc6cf68e8a63e /gcc/cp
parent8dba80b0ca4d214c61b6cc27b7a894522ae9067c (diff)
downloadgcc-0f2952a1b9dca38240341ee5f52aac41082b7fb3.tar.gz
* cp-tree.def (PTRMEM_CST): New tree node.
* cp-tree.h (ptrmem_cst): New type. (lang_type): Remove local_typedecls. (dummy): Increase to 12 bits from 11. (CLASSTYPE_LOCAL_TYPEDECLS): Remove. (PTRMEM_CST_CLASS): New macro. (PTRMEM_CST_MEMBER): Likewise. (current_access_specifier): New variable. (current_class_type): Remove duplicate declaration. (finish_struct): Change prototype. (unreverse_member_declarations): New function. (pushdecl_class_level): Change prototype. (grok_enum_decls): Remove. (fixup_anonymous_union): New function. (grok_x_components): Change prototype. (tsubst_chain): Remove. (finish_member_template_decl): Likewise. (check_explicit_specialization): Fix indentation. (finish_class_definition): Change prototype. (finish_member_class_template): Likewise. (finish_member_declaration): New function. (check_multiple_declarators): Likewise. * class.c (class_stack_node_t): New type. (current_class_base): Remove. (current_class_stack): Change type. (current_access_specifier): New variable. (grow_method): Remove. (check_member_decl_is_same_in_complete_scope): Break out from finish_struct. (make_method_vec): New function. (free_method_vec): Likewise. (add_implicitly_declared_members): Break out from finish_struct_1. (free_method_vecs): New variable. (add_method): Rework for direct use from parser. (handle_using_decl): Watch for NULL_TREE while iterating through CLASSTYPE_METHOD_VEC. (finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here; just do some error-checking. (warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC. (finish_struct_1): Simplify. Use add_implicitly_declared_members. (finish_struct): Change prototype. Simplify; fields and methods are already set up at this point. (init_class_processing): Set up current_class_stack. (pushclass): Save current_access_specifier. (popclass): Restore it. (currently_open_class): Simplify. (build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS. * decl.c (saved_scope): Add access_specifier. (maybe_push_to_top_level): Save it. (pop_from_top_level): Restore it. (maybe_process_template_type_declaration): Use finish_member_declaration. (pushtag): Likewise. (pushdecl_class_level): Don't return a value. (fixup_anonymous_union): Break out from grok_x_components. (shadow_tag): Use it. (xref_tag): Complain about using an elaborated type specifier to reference a template type parameter or typedef name. (xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS. (current_local_enum): Remove. (build_enumerator): Call finish_member_declaration. (grok_enum_decls): Remove. * decl2.c (grok_x_components): Simplify. (check_classfn): Change iteration through CLASSTYPE_METHOD_VEC. (grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS. (merge_functions): Add to comment. (arg_assoc_type): Prototype. (arg_assoc): Pass as many arguments as there are parameters. * error.c (dump_expr): Handle PTRMEM_CST. Improve handling of OFFSET_REF. * expr.c (cpls_expand_expr): Remove dead code. Handle PTRMEM_CST. * friend.c (do_friend): Lookup friends when in nested classes. Change comments. * init.c (build_offset_ref): Do lookup even for classes that are only partially defined. (decl_constant_value): Remove dead code. * method.c (build_overload_value): Remove hack where by TYPE was not a TYPE. Handle PTRMEM_CST. (build_template_parm_names): Don't pass a PARM_DECL where a TYPE should go. * parse.y (components, notype_components, component_decl, component_decl_1, component_declarator, component_declarator0): Now all are itype rather than ttype. Rework to add members to classes on the fly. (typesqpecqual_reserved): Use check_multiple_declarators. (structsp): Update class to finish_class_definition. (do_xref_defn): Unsplit into named_class_head. (access_specifier): Set current_access_specifier. * pt.c (set_current_access_from_decl): New function. (finish_member_template_decl): Don't take the parameters. (comp_template_args): Make more robust. (lookup_template_class): Don't use current_local_enum. (for_each_template_parm): Handle PTRMEM_CST. (instantiate_class_template): Use set_current_access_from_decl, finish_member_declaration and unreverse_member_declarations. Set lineno/input_filename before generating implicit member functions. (type_unification_real): Don't assume back-unification happens only for the last argument. (regenerate_decl_from_template): Call pushclass a bit earlier. (tsubst_chain): Remove. (tsubst_enum): Use set_current_access_from_decl. (set_mangled_name_for_template_decl): Fix indentation. * search.c (lookup_fnfields_1): Change iteration through CLASSTYPE_METHOD_VEC. (dfs_pushdecls): Likewise. (dfs_compress_decls): Likewise. (add_conversions): Likewise. * semantics.c (finish_class_definition): Don't take components. Change call to finish_struct. (finish_member_declaration): New function. (finish_member_class_template): Don't take template parameters. Change call to grok_x_components. Call finish_member_template_decl. (check_multiple_declarators): New function. * sig.c (append_signature_fields): Work from the TYPE_METHODS, not a passed in fieldlist. * tree.c (search_tree): Handle PTRMEM_CST. (mapcar): Likewise. * typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not INTEGER_CSTs, for pointer-to-data members. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog121
-rw-r--r--gcc/cp/class.c811
-rw-r--r--gcc/cp/cp-tree.def5
-rw-r--r--gcc/cp/cp-tree.h59
-rw-r--r--gcc/cp/decl.c164
-rw-r--r--gcc/cp/decl2.c158
-rw-r--r--gcc/cp/error.c19
-rw-r--r--gcc/cp/expr.c42
-rw-r--r--gcc/cp/friend.c25
-rw-r--r--gcc/cp/init.c45
-rw-r--r--gcc/cp/method.c33
-rw-r--r--gcc/cp/parse.c6636
-rw-r--r--gcc/cp/parse.y158
-rw-r--r--gcc/cp/pt.c206
-rw-r--r--gcc/cp/search.c49
-rw-r--r--gcc/cp/semantics.c134
-rw-r--r--gcc/cp/sig.c50
-rw-r--r--gcc/cp/tree.c19
-rw-r--r--gcc/cp/typeck.c17
19 files changed, 4514 insertions, 4237 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ff3901d3855..1588d2d3da8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,126 @@
1998-10-06 Mark Mitchell <mark@markmitchell.com>
+ * cp-tree.def (PTRMEM_CST): New tree node.
+ * cp-tree.h (ptrmem_cst): New type.
+ (lang_type): Remove local_typedecls.
+ (dummy): Increase to 12 bits from 11.
+ (CLASSTYPE_LOCAL_TYPEDECLS): Remove.
+ (PTRMEM_CST_CLASS): New macro.
+ (PTRMEM_CST_MEMBER): Likewise.
+ (current_access_specifier): New variable.
+ (current_class_type): Remove duplicate declaration.
+ (finish_struct): Change prototype.
+ (unreverse_member_declarations): New function.
+ (pushdecl_class_level): Change prototype.
+ (grok_enum_decls): Remove.
+ (fixup_anonymous_union): New function.
+ (grok_x_components): Change prototype.
+ (tsubst_chain): Remove.
+ (finish_member_template_decl): Likewise.
+ (check_explicit_specialization): Fix indentation.
+ (finish_class_definition): Change prototype.
+ (finish_member_class_template): Likewise.
+ (finish_member_declaration): New function.
+ (check_multiple_declarators): Likewise.
+ * class.c (class_stack_node_t): New type.
+ (current_class_base): Remove.
+ (current_class_stack): Change type.
+ (current_access_specifier): New variable.
+ (grow_method): Remove.
+ (check_member_decl_is_same_in_complete_scope): Break out from
+ finish_struct.
+ (make_method_vec): New function.
+ (free_method_vec): Likewise.
+ (add_implicitly_declared_members): Break out from finish_struct_1.
+ (free_method_vecs): New variable.
+ (add_method): Rework for direct use from parser.
+ (handle_using_decl): Watch for NULL_TREE while iterating through
+ CLASSTYPE_METHOD_VEC.
+ (finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here;
+ just do some error-checking.
+ (warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC.
+ (finish_struct_1): Simplify. Use add_implicitly_declared_members.
+ (finish_struct): Change prototype. Simplify; fields and methods
+ are already set up at this point.
+ (init_class_processing): Set up current_class_stack.
+ (pushclass): Save current_access_specifier.
+ (popclass): Restore it.
+ (currently_open_class): Simplify.
+ (build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS.
+ * decl.c (saved_scope): Add access_specifier.
+ (maybe_push_to_top_level): Save it.
+ (pop_from_top_level): Restore it.
+ (maybe_process_template_type_declaration): Use
+ finish_member_declaration.
+ (pushtag): Likewise.
+ (pushdecl_class_level): Don't return a value.
+ (fixup_anonymous_union): Break out from grok_x_components.
+ (shadow_tag): Use it.
+ (xref_tag): Complain about using an elaborated type specifier to
+ reference a template type parameter or typedef name.
+ (xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
+ (current_local_enum): Remove.
+ (build_enumerator): Call finish_member_declaration.
+ (grok_enum_decls): Remove.
+ * decl2.c (grok_x_components): Simplify.
+ (check_classfn): Change iteration through CLASSTYPE_METHOD_VEC.
+ (grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
+ (merge_functions): Add to comment.
+ (arg_assoc_type): Prototype.
+ (arg_assoc): Pass as many arguments as there are parameters.
+ * error.c (dump_expr): Handle PTRMEM_CST. Improve handling of
+ OFFSET_REF.
+ * expr.c (cpls_expand_expr): Remove dead code. Handle
+ PTRMEM_CST.
+ * friend.c (do_friend): Lookup friends when in nested classes.
+ Change comments.
+ * init.c (build_offset_ref): Do lookup even for classes that are
+ only partially defined.
+ (decl_constant_value): Remove dead code.
+ * method.c (build_overload_value): Remove hack where by TYPE was
+ not a TYPE. Handle PTRMEM_CST.
+ (build_template_parm_names): Don't pass a PARM_DECL where a TYPE
+ should go.
+ * parse.y (components, notype_components, component_decl,
+ component_decl_1, component_declarator, component_declarator0):
+ Now all are itype rather than ttype. Rework to add members to
+ classes on the fly.
+ (typesqpecqual_reserved): Use check_multiple_declarators.
+ (structsp): Update class to finish_class_definition.
+ (do_xref_defn): Unsplit into named_class_head.
+ (access_specifier): Set current_access_specifier.
+ * pt.c (set_current_access_from_decl): New function.
+ (finish_member_template_decl): Don't take the parameters.
+ (comp_template_args): Make more robust.
+ (lookup_template_class): Don't use current_local_enum.
+ (for_each_template_parm): Handle PTRMEM_CST.
+ (instantiate_class_template): Use set_current_access_from_decl,
+ finish_member_declaration and unreverse_member_declarations. Set
+ lineno/input_filename before generating implicit member functions.
+ (type_unification_real): Don't assume back-unification happens
+ only for the last argument.
+ (regenerate_decl_from_template): Call pushclass a bit earlier.
+ (tsubst_chain): Remove.
+ (tsubst_enum): Use set_current_access_from_decl.
+ (set_mangled_name_for_template_decl): Fix indentation.
+ * search.c (lookup_fnfields_1): Change iteration through
+ CLASSTYPE_METHOD_VEC.
+ (dfs_pushdecls): Likewise.
+ (dfs_compress_decls): Likewise.
+ (add_conversions): Likewise.
+ * semantics.c (finish_class_definition): Don't take components.
+ Change call to finish_struct.
+ (finish_member_declaration): New function.
+ (finish_member_class_template): Don't take template parameters.
+ Change call to grok_x_components. Call finish_member_template_decl.
+ (check_multiple_declarators): New function.
+ * sig.c (append_signature_fields): Work from the TYPE_METHODS, not
+ a passed in fieldlist.
+ * tree.c (search_tree): Handle PTRMEM_CST.
+ (mapcar): Likewise.
+ * typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not
+ INTEGER_CSTs, for pointer-to-data members.
+
* call.c (resolve_args): Resolve template specializations, if
possible.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index b64a91ad9a6..33a443475c2 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -43,11 +43,32 @@ extern struct obstack permanent_obstack;
extern void set_class_shadows PROTO ((tree));
-/* Way of stacking class types. */
-static tree *current_class_base, *current_class_stack;
-static int current_class_stacksize;
+/* The number of nested classes being processed. If we are not in the
+ scope of any class, this is zero. */
+
int current_class_depth;
+/* In order to deal with nested classes, we keep a stack of classes.
+ The topmost entry is the innermost class, and is the entry at index
+ CURRENT_CLASS_DEPTH */
+
+typedef struct class_stack_node {
+ /* The name of the class. */
+ tree name;
+
+ /* The _TYPE node for the class. */
+ tree type;
+
+ /* The access specifier pending for new declarations in the scope of
+ this class. */
+ tree access;
+}* class_stack_node_t;
+
+/* The stack itself. This is an dynamically resized array. The
+ number of elements allocated is CURRENT_CLASS_STACK_SIZE. */
+static int current_class_stack_size;
+static class_stack_node_t current_class_stack;
+
/* When we're processing a member function, current_class_ptr is the
PARM_DECL for the `this' pointer. The current_class_ref is an
expression for `*this'. */
@@ -56,6 +77,7 @@ tree current_class_ptr, current_class_ref;
/* The following two can be derived from the previous one */
tree current_class_name; /* IDENTIFIER_NODE: name of current class */
tree current_class_type; /* _TYPE: the type of the current class */
+tree current_access_specifier;
tree previous_class_type; /* _TYPE: the previous type that was a class */
tree previous_class_values; /* TREE_LIST: copy of the class_shadowed list
when leaving an outermost class scope. */
@@ -74,7 +96,6 @@ static tree build_vtable PROTO((tree, tree));
static void prepare_fresh_vtable PROTO((tree, tree));
static void fixup_vtable_deltas1 PROTO((tree, tree));
static void fixup_vtable_deltas PROTO((tree, int, tree));
-static void grow_method PROTO((tree, tree *));
static void finish_vtbls PROTO((tree, int, tree));
static void modify_vtable_entry PROTO((tree, tree, tree));
static tree get_vtable_entry_n PROTO((tree, unsigned HOST_WIDE_INT));
@@ -103,6 +124,10 @@ static void build_class_init_list PROTO((tree));
static int finish_base_struct PROTO((tree, struct base_info *));
static void finish_struct_methods PROTO((tree));
static void maybe_warn_about_overly_private_class PROTO ((tree));
+static void check_member_decl_is_same_in_complete_scope PROTO((tree, tree));
+static tree make_method_vec PROTO((int));
+static void free_method_vec PROTO((tree));
+static tree add_implicitly_declared_members PROTO((tree, int, int, int));
/* Way of stacking language names. */
tree *current_lang_base, *current_lang_stack;
@@ -1046,6 +1071,46 @@ add_virtual_function (pv, phv, has_virtual, fndecl, t)
struct obstack class_obstack;
extern struct obstack *current_obstack;
+/* These are method vectors that were too small for the number of
+ methods in some class, and so were abandoned. */
+static tree free_method_vecs;
+
+/* Returns a method vector with enough room for N methods. N should
+ be a power of two. */
+
+static tree
+make_method_vec (n)
+ int n;
+{
+ tree new_vec;
+ tree* t;
+
+ for (t = &free_method_vecs; *t; t = &(TREE_CHAIN (*t)))
+ /* Note that we don't use >= n here because we don't want to
+ allocate a very large vector where it isn't needed. */
+ if (TREE_VEC_LENGTH (*t) == n)
+ {
+ new_vec = *t;
+ *t = TREE_CHAIN (new_vec);
+ TREE_CHAIN (new_vec) = NULL_TREE;
+ bzero (&TREE_VEC_ELT (new_vec, 0), n * sizeof (tree));
+ return new_vec;
+ }
+
+ new_vec = make_tree_vec (n);
+ return new_vec;
+}
+
+/* Free the method vector VEC. */
+
+static void
+free_method_vec (vec)
+ tree vec;
+{
+ TREE_CHAIN (vec) = free_method_vecs;
+ free_method_vecs = vec;
+}
+
/* Add method METHOD to class TYPE. This is used when a method
has been defined which did not initially appear in the class definition,
and helps cut down on spurious error messages.
@@ -1059,109 +1124,127 @@ add_method (type, fields, method)
{
push_obstacks (&permanent_obstack, &permanent_obstack);
+ /* Setting the DECL_CONTEXT and DECL_CLASS_CONTEXT here is probably
+ redundant. */
+ DECL_CONTEXT (method) = type;
+ DECL_CLASS_CONTEXT (method) = type;
+
if (fields && *fields)
- *fields = build_overload (method, *fields);
- else if (CLASSTYPE_METHOD_VEC (type) == 0)
- {
- tree method_vec = make_node (TREE_VEC);
- if (TYPE_IDENTIFIER (type) == DECL_NAME (method))
- {
- /* ??? Is it possible for there to have been enough room in the
- current chunk for the tree_vec structure but not a tree_vec
- plus a tree*? Will this work in that case? */
- obstack_free (current_obstack, method_vec);
- obstack_blank (current_obstack, sizeof (struct tree_vec) + sizeof (tree *));
- if (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (method)))
- TREE_VEC_ELT (method_vec, 1) = method;
- else
- TREE_VEC_ELT (method_vec, 0) = method;
- TREE_VEC_LENGTH (method_vec) = 2;
- }
- else
+ *fields = build_overload (method, *fields);
+ else
+ {
+ int len;
+ tree method_vec;
+
+ if (!CLASSTYPE_METHOD_VEC (type))
+ /* Make a new method vector. We start with 8 entries. We must
+ allocate at least two (for constructors and destructors), and
+ we're going to end up with an assignment operator at some
+ point as well.
+
+ We could use a TREE_LIST for now, and convert it to a
+ TREE_VEC in finish_struct, but we would probably waste more
+ memory making the links in the list than we would by
+ over-allocating the size of the vector here. Furthermore,
+ we would complicate all the code that expects this to be a
+ vector. We keep a free list of vectors that we outgrew so
+ that we don't really waste any memory. */
+ CLASSTYPE_METHOD_VEC (type) = make_method_vec (8);
+
+ method_vec = CLASSTYPE_METHOD_VEC (type);
+ len = TREE_VEC_LENGTH (method_vec);
+
+ if (DECL_NAME (method) == constructor_name (type))
{
- /* ??? Is it possible for there to have been enough room in the
- current chunk for the tree_vec structure but not a tree_vec
- plus a tree*? Will this work in that case? */
- obstack_free (current_obstack, method_vec);
- obstack_blank (current_obstack, sizeof (struct tree_vec) + 2*sizeof (tree *));
- TREE_VEC_ELT (method_vec, 2) = method;
- TREE_VEC_LENGTH (method_vec) = 3;
- obstack_finish (current_obstack);
- }
- CLASSTYPE_METHOD_VEC (type) = method_vec;
- }
- else
- {
- tree method_vec = CLASSTYPE_METHOD_VEC (type);
- int len = TREE_VEC_LENGTH (method_vec);
+ /* A new constructor or destructor. Constructors go in
+ slot 0; destructors go in slot 1. */
+ int slot
+ = DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (method)) ? 1 : 0;
- /* Adding a new ctor or dtor. This is easy because our
- METHOD_VEC always has a slot for such entries. */
- if (TYPE_IDENTIFIER (type) == DECL_NAME (method))
- {
- int idx = !!DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (method));
- /* TREE_VEC_ELT (method_vec, idx) = method; */
- if (method != TREE_VEC_ELT (method_vec, idx))
- TREE_VEC_ELT (method_vec, idx) =
- build_overload (method, TREE_VEC_ELT (method_vec, idx));
+ TREE_VEC_ELT (method_vec, slot)
+ = build_overload (method, TREE_VEC_ELT (method_vec, slot));
}
else
{
- /* This is trickier. We try to extend the TREE_VEC in-place,
- but if that does not work, we copy all its data to a new
- TREE_VEC that's large enough. */
- struct obstack *ob = &class_obstack;
- tree *end = (tree *)obstack_next_free (ob);
+ int i;
- if (end != TREE_VEC_END (method_vec))
+ /* See if we already have an entry with this name. */
+ for (i = 2; i < len; ++i)
+ if (!TREE_VEC_ELT (method_vec, i)
+ || (DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, i)))
+ == DECL_NAME (method)))
+ break;
+
+ if (i == len)
{
- ob = current_obstack;
- TREE_VEC_LENGTH (method_vec) += 1;
- TREE_VEC_ELT (method_vec, len) = NULL_TREE;
- method_vec = copy_node (method_vec);
- TREE_VEC_LENGTH (method_vec) -= 1;
+ /* We need a bigger method vector. */
+ tree new_vec = make_method_vec (2 * len);
+ bcopy (&TREE_VEC_ELT (method_vec, 0),
+ &TREE_VEC_ELT (new_vec, 0),
+ len * sizeof (tree));
+ free_method_vec (method_vec);
+ len = 2 * len;
+ method_vec = CLASSTYPE_METHOD_VEC (type) = new_vec;
}
- else
+
+ if (IDENTIFIER_TYPENAME_P (DECL_NAME (method)))
{
- tree tmp_vec = (tree) obstack_base (ob);
- if (obstack_room (ob) < sizeof (tree))
+ /* Type conversion operators have to come before
+ ordinary methods; add_conversions depends on this to
+ speed up looking for conversion operators. So, if
+ necessary, we slide some of the vector elements up.
+ In theory, this makes this algorithm O(N^2) but we
+ don't expect many conversion operators. */
+ for (i = 2; i < len; ++i)
{
- obstack_blank (ob, sizeof (struct tree_common)
- + tree_code_length[(int) TREE_VEC]
- * sizeof (char *)
- + len * sizeof (tree));
- tmp_vec = (tree) obstack_base (ob);
- bcopy ((char *) method_vec, (char *) tmp_vec,
- (sizeof (struct tree_common)
- + tree_code_length[(int) TREE_VEC] * sizeof (char *)
- + (len-1) * sizeof (tree)));
- method_vec = tmp_vec;
+ tree fn = TREE_VEC_ELT (method_vec, i);
+ tree name;
+
+ if (!fn)
+ /* There are no more entries in the vector, so we
+ can insert the new conversion operator here. */
+ break;
+
+ name = DECL_NAME (OVL_CURRENT (fn));
+ if (!IDENTIFIER_TYPENAME_P (name))
+ /* We can insert the new function right at the Ith
+ position. */
+ break;
}
+
+ if (!TREE_VEC_ELT (method_vec, i))
+ /* There is nothing in the Ith slot, so we can avoid
+ moving anything. */
+ ;
else
- obstack_blank (ob, sizeof (tree));
+ {
+ /* We know the last slot in the vector is empty
+ because we know that at this point there's room for
+ a new function. */
+ bcopy (&TREE_VEC_ELT (method_vec, i),
+ &TREE_VEC_ELT (method_vec, i + 1),
+ (len - i - 1) * sizeof (tree));
+ TREE_VEC_ELT (method_vec, i) = NULL_TREE;
+ }
}
- obstack_finish (ob);
- TREE_VEC_ELT (method_vec, len) = method;
- TREE_VEC_LENGTH (method_vec) = len + 1;
- CLASSTYPE_METHOD_VEC (type) = method_vec;
-
- if (TYPE_BINFO_BASETYPES (type) && CLASSTYPE_BASELINK_VEC (type))
- {
- /* ??? May be better to know whether these can be extended? */
- tree baselink_vec = CLASSTYPE_BASELINK_VEC (type);
-
- TREE_VEC_LENGTH (baselink_vec) += 1;
- CLASSTYPE_BASELINK_VEC (type) = copy_node (baselink_vec);
- TREE_VEC_LENGTH (baselink_vec) -= 1;
-
- TREE_VEC_ELT (CLASSTYPE_BASELINK_VEC (type), len) = 0;
- }
+ /* Actually insert the new method. */
+ TREE_VEC_ELT (method_vec, i)
+ = build_overload (method, TREE_VEC_ELT (method_vec, i));
+ }
+
+ if (TYPE_BINFO_BASETYPES (type) && CLASSTYPE_BASELINK_VEC (type))
+ {
+ /* ??? May be better to know whether these can be extended? */
+ tree baselink_vec = CLASSTYPE_BASELINK_VEC (type);
+
+ TREE_VEC_LENGTH (baselink_vec) += 1;
+ CLASSTYPE_BASELINK_VEC (type) = copy_node (baselink_vec);
+ TREE_VEC_LENGTH (baselink_vec) -= 1;
+
+ TREE_VEC_ELT (CLASSTYPE_BASELINK_VEC (type), len) = 0;
}
}
- DECL_CONTEXT (method) = type;
- DECL_CLASS_CONTEXT (method) = type;
-
pop_obstacks ();
}
@@ -1360,7 +1443,7 @@ handle_using_decl (using_decl, t, method_vec, fields)
name = DECL_NAME (fdecl);
n_methods = method_vec ? TREE_VEC_LENGTH (method_vec) : 0;
- for (i = 2; i < n_methods; i++)
+ for (i = 2; i < n_methods && TREE_VEC_ELT (method_vec, i); i++)
if (DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, i)))
== name)
{
@@ -1872,33 +1955,6 @@ finish_struct_bits (t, max_has_virtual)
}
}
-/* Add FNDECL to the method_vec growing on the class_obstack. Used by
- finish_struct_methods. Note, FNDECL cannot be a constructor or
- destructor, those cases are handled by the caller. */
-
-static void
-grow_method (fndecl, method_vec_ptr)
- tree fndecl;
- tree *method_vec_ptr;
-{
- tree method_vec = (tree)obstack_base (&class_obstack);
-
- /* Start off past the constructors and destructor. */
- tree *testp = &TREE_VEC_ELT (method_vec, 2);
-
- while (testp < (tree *) obstack_next_free (&class_obstack)
- && (*testp == NULL_TREE || DECL_NAME (OVL_CURRENT (*testp)) != DECL_NAME (fndecl)))
- testp++;
-
- if (testp < (tree *) obstack_next_free (&class_obstack))
- *testp = build_overload (fndecl, *testp);
- else
- {
- obstack_ptr_grow (&class_obstack, fndecl);
- *method_vec_ptr = (tree)obstack_base (&class_obstack);
- }
-}
-
/* Issue warnings about T having private constructors, but no friends,
and so forth.
@@ -2044,9 +2100,6 @@ maybe_warn_about_overly_private_class (t)
/* Warn about duplicate methods in fn_fields. Also compact method
lists so that lookup can be made faster.
- Algorithm: Outer loop builds lists by method name. Inner loop
- checks for redundant method names within a list.
-
Data Structure: List of method lists. The outer list is a
TREE_LIST, whose TREE_PURPOSE field is the field name and the
TREE_VALUE is the DECL_CHAIN of the FUNCTION_DECLs. TREE_CHAIN
@@ -2069,22 +2122,10 @@ finish_struct_methods (t)
tree t;
{
tree fn_fields;
- tree method_vec;
+ tree method_vec = CLASSTYPE_METHOD_VEC (t);
tree ctor_name = constructor_name (t);
int i, n_baseclasses = CLASSTYPE_N_BASECLASSES (t);
- /* Now prepare to gather fn_fields into vector. */
- struct obstack *ambient_obstack = current_obstack;
- current_obstack = &class_obstack;
- method_vec = make_tree_vec (2);
- current_obstack = ambient_obstack;
-
- /* Now make this a live vector. */
- obstack_free (&class_obstack, method_vec);
-
- /* Save room for constructors and destructors. */
- obstack_blank (&class_obstack, sizeof (struct tree_vec) + sizeof (struct tree *));
-
/* First fill in entry 0 with the constructors, entry 1 with destructors,
and the next few with type conversion operators (if any). */
for (fn_fields = TYPE_METHODS (t); fn_fields;
@@ -2119,32 +2160,8 @@ finish_struct_methods (t)
TYPE_HAS_NONPUBLIC_CTOR (t) = 2;
}
}
- if (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (fn_fields)))
- {
- /* Destructors go in slot 1. */
- TREE_VEC_ELT (method_vec, 1) =
- build_overload (fn_fields, TREE_VEC_ELT (method_vec, 1));
- }
- else
- {
- /* Constructors go in slot 0. */
- TREE_VEC_ELT (method_vec, 0) =
- build_overload (fn_fields, TREE_VEC_ELT (method_vec, 0));
- }
- }
- else if (IDENTIFIER_TYPENAME_P (fn_name))
- grow_method (fn_fields, &method_vec);
- }
-
- for (fn_fields = TYPE_METHODS (t); fn_fields;
- fn_fields = TREE_CHAIN (fn_fields))
- {
- tree fn_name = DECL_NAME (fn_fields);
-
- if (fn_name == ctor_name || IDENTIFIER_TYPENAME_P (fn_name))
- continue;
-
- if (fn_name == ansi_opname[(int) MODIFY_EXPR])
+ }
+ else if (fn_name == ansi_opname[(int) MODIFY_EXPR])
{
tree parmtype = TREE_VALUE (FUNCTION_ARG_CHAIN (fn_fields));
@@ -2156,15 +2173,8 @@ finish_struct_methods (t)
TYPE_HAS_NONPUBLIC_ASSIGN_REF (t) = 2;
}
}
-
- grow_method (fn_fields, &method_vec);
}
- TREE_VEC_LENGTH (method_vec) = (tree *)obstack_next_free (&class_obstack)
- - (&TREE_VEC_ELT (method_vec, 0));
- obstack_finish (&class_obstack);
- CLASSTYPE_METHOD_VEC (t) = method_vec;
-
if (TYPE_HAS_DESTRUCTOR (t) && !TREE_VEC_ELT (method_vec, 1))
/* We thought there was a destructor, but there wasn't. Some
parse errors cause this anomalous situation. */
@@ -2178,6 +2188,7 @@ finish_struct_methods (t)
destructors), compute where member functions of the same
name reside in base classes. */
if (n_baseclasses != 0
+ && method_vec
&& TREE_VEC_LENGTH (method_vec) > 2)
{
int len = TREE_VEC_LENGTH (method_vec);
@@ -2185,11 +2196,13 @@ finish_struct_methods (t)
int any_links = 0;
tree baselink_binfo = build_tree_list (NULL_TREE, TYPE_BINFO (t));
- for (i = 2; i < len; i++)
+ for (i = 2; i < len && TREE_VEC_ELT (method_vec, i); i++)
{
+ tree ovl = TREE_VEC_ELT (method_vec, i);
+
TREE_VEC_ELT (baselink_vec, i)
= get_baselinks (baselink_binfo, t,
- DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, i))));
+ DECL_NAME (OVL_CURRENT (ovl)));
if (TREE_VEC_ELT (baselink_vec, i) != 0)
any_links = 1;
}
@@ -2995,7 +3008,7 @@ warn_hidden (t)
int i;
/* We go through each separately named virtual function. */
- for (i = 2; i < n_methods; ++i)
+ for (i = 2; i < n_methods && TREE_VEC_ELT (method_vec, i); ++i)
{
tree fns = TREE_VEC_ELT (method_vec, i);
tree fndecl;
@@ -3096,6 +3109,90 @@ finish_struct_anon (t)
extern int interface_only, interface_unknown;
+/* Create default constructors, assignment operators, and so forth for
+ the type indicated by T, if they are needed.
+ CANT_HAVE_DEFAULT_CTOR, CANT_HAVE_CONST_CTOR, and
+ CANT_HAVE_ASSIGNMENT are nonzero if, for whatever reason, the class
+ cannot have a default constructor, copy constructor taking a const
+ reference argument, or an assignment operator, respectively. If a
+ virtual destructor is created, its DECL is returned; otherwise the
+ return value is NULL_TREE. */
+
+static tree
+add_implicitly_declared_members (t, cant_have_default_ctor,
+ cant_have_const_cctor,
+ cant_have_assignment)
+ tree t;
+ int cant_have_default_ctor;
+ int cant_have_const_cctor;
+ int cant_have_assignment;
+{
+ tree default_fn;
+ tree implicit_fns = NULL_TREE;
+ tree name = TYPE_IDENTIFIER (t);
+ tree virtual_dtor = NULL_TREE;
+ tree *f;
+
+ /* Destructor. */
+ if (TYPE_NEEDS_DESTRUCTOR (t) && !TYPE_HAS_DESTRUCTOR (t)
+ && !IS_SIGNATURE (t))
+ {
+ default_fn = cons_up_default_function (t, name, 0);
+ check_for_override (default_fn, t);
+
+ /* If we couldn't make it work, then pretend we didn't need it. */
+ if (default_fn == void_type_node)
+ TYPE_NEEDS_DESTRUCTOR (t) = 0;
+ else
+ {
+ TREE_CHAIN (default_fn) = implicit_fns;
+ implicit_fns = default_fn;
+
+ if (DECL_VINDEX (default_fn))
+ virtual_dtor = default_fn;
+ }
+ }
+ TYPE_NEEDS_DESTRUCTOR (t) |= TYPE_HAS_DESTRUCTOR (t);
+
+ /* Default constructor. */
+ if (! TYPE_HAS_CONSTRUCTOR (t) && ! cant_have_default_ctor
+ && ! IS_SIGNATURE (t))
+ {
+ default_fn = cons_up_default_function (t, name, 2);
+ TREE_CHAIN (default_fn) = implicit_fns;
+ implicit_fns = default_fn;
+ }
+
+ /* Copy constructor. */
+ if (! TYPE_HAS_INIT_REF (t) && ! IS_SIGNATURE (t) && ! TYPE_FOR_JAVA (t))
+ {
+ /* ARM 12.18: You get either X(X&) or X(const X&), but
+ not both. --Chip */
+ default_fn = cons_up_default_function (t, name,
+ 3 + cant_have_const_cctor);
+ TREE_CHAIN (default_fn) = implicit_fns;
+ implicit_fns = default_fn;
+ }
+
+ /* Assignment operator. */
+ if (! TYPE_HAS_ASSIGN_REF (t) && ! IS_SIGNATURE (t) && ! TYPE_FOR_JAVA (t))
+ {
+ default_fn = cons_up_default_function (t, name,
+ 5 + cant_have_assignment);
+ TREE_CHAIN (default_fn) = implicit_fns;
+ implicit_fns = default_fn;
+ }
+
+ /* Now, hook all of the new functions on to TYPE_METHODS,
+ and add them to the CLASSTYPE_METHOD_VEC. */
+ for (f = &implicit_fns; *f; f = &TREE_CHAIN (*f))
+ add_method (t, 0, *f);
+ *f = TYPE_METHODS (t);
+ TYPE_METHODS (t) = implicit_fns;
+
+ return virtual_dtor;
+}
+
/* Create a RECORD_TYPE or UNION_TYPE node for a C struct or union declaration
(or C++ class declaration).
@@ -3121,10 +3218,6 @@ extern int interface_only, interface_unknown;
inheritance. Additional virtual function tables have different
DELTAs, which tell how to adjust `this' to point to the right thing.
- LIST_OF_FIELDLISTS is just that. The elements of the list are
- TREE_LIST elements, whose TREE_PURPOSE field tells what access
- the list has, and the TREE_VALUE slot gives the actual fields.
-
ATTRIBUTES is the set of decl attributes to be applied, if any. */
tree
@@ -3133,10 +3226,8 @@ finish_struct_1 (t, warn_anon)
int warn_anon;
{
int old;
- tree name = TYPE_IDENTIFIER (t);
enum tree_code code = TREE_CODE (t);
tree fields = TYPE_FIELDS (t);
- tree fn_fields = TYPE_METHODS (t);
tree x, last_x, method_vec;
int has_virtual;
int max_has_virtual;
@@ -3145,6 +3236,7 @@ finish_struct_1 (t, warn_anon)
tree abstract_virtuals = NULL_TREE;
tree vfield;
tree vfields;
+ tree virtual_dtor;
int cant_have_default_ctor;
int cant_have_const_ctor;
int no_const_asn_ref;
@@ -3262,8 +3354,6 @@ finish_struct_1 (t, warn_anon)
if (IDENTIFIER_ERROR_LOCUS (DECL_ASSEMBLER_NAME (x)))
continue;
- DECL_CLASS_CONTEXT (x) = t;
-
/* Do both of these, even though they're in the same union;
if the insn `r' member and the size `i' member are
different sizes, as on the alpha, the larger of the two
@@ -3626,32 +3716,6 @@ finish_struct_1 (t, warn_anon)
CLASSTYPE_REF_FIELDS_NEED_INIT (t) = ref_sans_init;
CLASSTYPE_ABSTRACT_VIRTUALS (t) = abstract_virtuals;
- /* Synthesize any needed methods. Note that methods will be synthesized
- for anonymous unions; grok_x_components undoes that. */
-
- if (TYPE_NEEDS_DESTRUCTOR (t) && !TYPE_HAS_DESTRUCTOR (t)
- && !IS_SIGNATURE (t))
- {
- /* Here we must cons up a destructor on the fly. */
- tree dtor = cons_up_default_function (t, name, 0);
- check_for_override (dtor, t);
-
- /* If we couldn't make it work, then pretend we didn't need it. */
- if (dtor == void_type_node)
- TYPE_NEEDS_DESTRUCTOR (t) = 0;
- else
- {
- /* Link dtor onto end of fn_fields. */
-
- TREE_CHAIN (dtor) = fn_fields;
- fn_fields = dtor;
-
- if (DECL_VINDEX (dtor))
- add_virtual_function (&pending_virtuals, &pending_hard_virtuals,
- &has_virtual, dtor, t);
- }
- }
-
/* Effective C++ rule 11. */
if (has_pointers && warn_ecpp && TYPE_HAS_CONSTRUCTOR (t)
&& ! (TYPE_HAS_INIT_REF (t) && TYPE_HAS_ASSIGN_REF (t)))
@@ -3667,9 +3731,9 @@ finish_struct_1 (t, warn_anon)
else if (! TYPE_HAS_ASSIGN_REF (t))
cp_warning (" but does not override `operator=(const %T&)'", t);
}
-
- TYPE_NEEDS_DESTRUCTOR (t) |= TYPE_HAS_DESTRUCTOR (t);
-
+
+ /* Do some bookkeeping that will guide the generation of implicitly
+ declared member functions. */
TYPE_HAS_COMPLEX_INIT_REF (t)
|= (TYPE_HAS_INIT_REF (t) || TYPE_USES_VIRTUAL_BASECLASSES (t)
|| has_virtual || any_default_members);
@@ -3679,46 +3743,23 @@ finish_struct_1 (t, warn_anon)
if (! IS_SIGNATURE (t))
CLASSTYPE_NON_AGGREGATE (t)
= ! aggregate || has_virtual || TYPE_HAS_CONSTRUCTOR (t);
-
- /* ARM $12.1: A default constructor will be generated for a class X
- only if no constructor has been declared for class X. So we
- check TYPE_HAS_CONSTRUCTOR also, to make sure we don't generate
- one if they declared a constructor in this class. */
- if (! TYPE_HAS_CONSTRUCTOR (t) && ! cant_have_default_ctor
- && ! IS_SIGNATURE (t))
- {
- tree default_fn = cons_up_default_function (t, name, 2);
- TREE_CHAIN (default_fn) = fn_fields;
- fn_fields = default_fn;
- }
-
- /* Create default copy constructor, if needed. */
- if (! TYPE_HAS_INIT_REF (t) && ! IS_SIGNATURE (t) && ! TYPE_FOR_JAVA (t))
- {
- /* ARM 12.18: You get either X(X&) or X(const X&), but
- not both. --Chip */
- tree default_fn = cons_up_default_function (t, name,
- 3 + cant_have_const_ctor);
- TREE_CHAIN (default_fn) = fn_fields;
- fn_fields = default_fn;
- }
-
TYPE_HAS_REAL_ASSIGNMENT (t) |= TYPE_HAS_ASSIGNMENT (t);
TYPE_HAS_REAL_ASSIGN_REF (t) |= TYPE_HAS_ASSIGN_REF (t);
TYPE_HAS_COMPLEX_ASSIGN_REF (t)
|= TYPE_HAS_ASSIGN_REF (t) || TYPE_USES_VIRTUAL_BASECLASSES (t);
- if (! TYPE_HAS_ASSIGN_REF (t) && ! IS_SIGNATURE (t) && ! TYPE_FOR_JAVA (t))
- {
- tree default_fn = cons_up_default_function (t, name,
- 5 + no_const_asn_ref);
- TREE_CHAIN (default_fn) = fn_fields;
- fn_fields = default_fn;
- }
+ /* Synthesize any needed methods. Note that methods will be synthesized
+ for anonymous unions; grok_x_components undoes that. */
+ virtual_dtor
+ = add_implicitly_declared_members (t, cant_have_default_ctor,
+ cant_have_const_ctor,
+ no_const_asn_ref);
+ if (virtual_dtor)
+ add_virtual_function (&pending_virtuals, &pending_hard_virtuals,
+ &has_virtual, virtual_dtor, t);
- if (fn_fields)
+ if (TYPE_METHODS (t))
{
- TYPE_METHODS (t) = fn_fields;
finish_struct_methods (t);
method_vec = CLASSTYPE_METHOD_VEC (t);
}
@@ -3806,12 +3847,12 @@ finish_struct_1 (t, warn_anon)
for (x = fields; x; x = TREE_CHAIN (x))
{
tree name = DECL_NAME (x);
- int i = 2;
+ int i;
if (TREE_CODE (x) == TYPE_DECL && DECL_ARTIFICIAL (x))
continue;
- for (; i < n_methods; ++i)
+ for (i = 2; i < n_methods && TREE_VEC_ELT (method_vec, i); ++i)
if (DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, i)))
== name)
{
@@ -4229,18 +4270,94 @@ finish_struct_1 (t, warn_anon)
return t;
}
+/* In [basic.scope.class] we have:
+
+ A name N used in a class S shall refer to the same declaration in
+ its context and when re-evaluated in the completed scope of S.
+
+ This function checks this condition for X, which is a member of
+ T. */
+
+static void
+check_member_decl_is_same_in_complete_scope (t, x)
+ tree t;
+ tree x;
+{
+ /* A name N used in a class S shall refer to the same declaration in
+ its context and when re-evaluated in the completed scope of S.
+
+ Enums, types and static vars have already been checked. */
+ if (TREE_CODE (x) != USING_DECL
+ && TREE_CODE (x) != TYPE_DECL && !DECL_CLASS_TEMPLATE_P (x)
+ && TREE_CODE (x) != CONST_DECL && TREE_CODE (x) != VAR_DECL)
+ {
+ tree name = DECL_NAME (x);
+ tree icv;
+
+ /* Don't get confused by access decls. */
+ if (name && TREE_CODE (name) == IDENTIFIER_NODE)
+ icv = IDENTIFIER_CLASS_VALUE (name);
+ else
+ icv = NULL_TREE;
+
+ if (icv
+ /* Don't complain about constructors. */
+ && name != constructor_name (current_class_type)
+ /* Or inherited names. */
+ && id_in_current_class (name)
+ /* Or shadowed tags. */
+ && !(TREE_CODE (icv) == TYPE_DECL && DECL_CONTEXT (icv) == t))
+ {
+ cp_pedwarn_at ("declaration of identifier `%D' as `%+#D'",
+ name, x);
+ cp_pedwarn_at ("conflicts with other use in class as `%#D'",
+ icv);
+ }
+ }
+}
+
+/* When T was built up, the member declarations were added in reverse
+ order. Rearrange them to declaration order. */
+
+void
+unreverse_member_declarations (t)
+ tree t;
+{
+ tree next;
+ tree prev;
+ tree x;
+
+ /* The TYPE_FIELDS, TYPE_METHODS, and CLASSTYPE_TAGS are all in
+ reverse order. Put them in declaration order now. */
+ TYPE_METHODS (t) = nreverse (TYPE_METHODS (t));
+ CLASSTYPE_TAGS (t) = nreverse (CLASSTYPE_TAGS (t));
+
+ /* Actually, for the TYPE_FIELDS, only the non TYPE_DECLs are in
+ reverse order, so we can't just use nreverse. */
+ prev = NULL_TREE;
+ for (x = TYPE_FIELDS (t);
+ x && TREE_CODE (x) != TYPE_DECL;
+ x = next)
+ {
+ next = TREE_CHAIN (x);
+ TREE_CHAIN (x) = prev;
+ prev = x;
+ }
+ if (prev)
+ {
+ TREE_CHAIN (TYPE_FIELDS (t)) = x;
+ if (prev)
+ TYPE_FIELDS (t) = prev;
+ }
+}
+
tree
-finish_struct (t, list_of_fieldlists, attributes, warn_anon)
- tree t, list_of_fieldlists, attributes;
+finish_struct (t, attributes, warn_anon)
+ tree t, attributes;
int warn_anon;
{
- tree fields = NULL_TREE;
- tree *tail = &TYPE_METHODS (t);
tree name = TYPE_NAME (t);
- tree x, last_x = NULL_TREE;
- tree access;
- tree dummy = NULL_TREE;
- tree next_x = NULL_TREE;
+ tree x;
if (TREE_CODE (name) == TYPE_DECL)
{
@@ -4260,147 +4377,23 @@ finish_struct (t, list_of_fieldlists, attributes, warn_anon)
/* Append the fields we need for constructing signature tables. */
if (IS_SIGNATURE (t))
- append_signature_fields (list_of_fieldlists);
-
- /* Move our self-reference declaration to the end of the field list so
- any real field with the same name takes precedence. */
- if (list_of_fieldlists
- && TREE_VALUE (list_of_fieldlists)
- && DECL_ARTIFICIAL (TREE_VALUE (list_of_fieldlists)))
- {
- dummy = TREE_VALUE (list_of_fieldlists);
- list_of_fieldlists = TREE_CHAIN (list_of_fieldlists);
- }
-
- if (last_x && list_of_fieldlists)
- TREE_CHAIN (last_x) = TREE_VALUE (list_of_fieldlists);
-
- while (list_of_fieldlists)
- {
- access = TREE_PURPOSE (list_of_fieldlists);
-
- /* For signatures, we made all methods `public' in the parser and
- reported an error if a access specifier was used. */
- if (access == access_default_node)
- {
- if (CLASSTYPE_DECLARED_CLASS (t) == 0)
- access = access_public_node;
- else
- access = access_private_node;
- }
-
- for (x = TREE_VALUE (list_of_fieldlists); x; x = next_x)
- {
- next_x = TREE_CHAIN (x);
-
- TREE_PRIVATE (x) = access == access_private_node;
- TREE_PROTECTED (x) = access == access_protected_node;
-
- if (TREE_CODE (x) == TEMPLATE_DECL)
- {
- TREE_PRIVATE (DECL_RESULT (x)) = TREE_PRIVATE (x);
- TREE_PROTECTED (DECL_RESULT (x)) = TREE_PROTECTED (x);
- }
+ append_signature_fields (t);
- /* A name N used in a class S shall refer to the same declaration
- in its context and when re-evaluated in the completed scope of S.
+ /* Now that we've got all the field declarations, reverse everything
+ as necessary. */
+ unreverse_member_declarations (t);
- Enums, types and static vars have already been checked. */
- if (TREE_CODE (x) != TYPE_DECL && TREE_CODE (x) != USING_DECL
- && ! (TREE_CODE (x) == TEMPLATE_DECL
- && TREE_CODE (DECL_RESULT (x)) == TYPE_DECL)
- && TREE_CODE (x) != CONST_DECL && TREE_CODE (x) != VAR_DECL)
- {
- tree name = DECL_NAME (x);
- tree icv;
-
- /* Don't get confused by access decls. */
- if (name && TREE_CODE (name) == IDENTIFIER_NODE)
- icv = IDENTIFIER_CLASS_VALUE (name);
- else
- icv = NULL_TREE;
-
- if (icv
- && flag_optional_diags
- /* Don't complain about constructors. */
- && name != constructor_name (current_class_type)
- /* Or inherited names. */
- && id_in_current_class (name)
- /* Or shadowed tags. */
- && !(TREE_CODE (icv) == TYPE_DECL
- && DECL_CONTEXT (icv) == t))
- {
- cp_pedwarn_at ("declaration of identifier `%D' as `%+#D'",
- name, x);
- cp_pedwarn_at ("conflicts with other use in class as `%#D'",
- icv);
- }
- }
-
- if (TREE_CODE (x) == FUNCTION_DECL
- || DECL_FUNCTION_TEMPLATE_P (x))
- {
- DECL_CLASS_CONTEXT (x) = t;
-
- if (last_x)
- TREE_CHAIN (last_x) = next_x;
-
- /* Link x onto end of TYPE_METHODS. */
- *tail = x;
- tail = &TREE_CHAIN (x);
- continue;
- }
-
- if (TREE_CODE (x) != TYPE_DECL)
- DECL_FIELD_CONTEXT (x) = t;
-
- if (! fields)
- fields = x;
- last_x = x;
- }
- list_of_fieldlists = TREE_CHAIN (list_of_fieldlists);
- /* link the tail while we have it! */
- if (last_x)
- {
- TREE_CHAIN (last_x) = NULL_TREE;
-
- if (list_of_fieldlists
- && TREE_VALUE (list_of_fieldlists)
- && TREE_CODE (TREE_VALUE (list_of_fieldlists)) != FUNCTION_DECL)
- TREE_CHAIN (last_x) = TREE_VALUE (list_of_fieldlists);
- }
- }
-
- /* Now add the tags, if any, to the list of TYPE_DECLs
- defined for this type. */
- if (CLASSTYPE_TAGS (t) || dummy)
+ if (flag_optional_diags)
{
- /* The list of tags was built up in pushtag in reverse order; we need
- to fix that so that enumerators will be processed in forward order
- in template instantiation. */
- CLASSTYPE_TAGS (t) = x = nreverse (CLASSTYPE_TAGS (t));
- while (x)
- {
- tree tag_type = TREE_VALUE (x);
- tree tag = TYPE_MAIN_DECL (TREE_VALUE (x));
-
- if (IS_AGGR_TYPE_CODE (TREE_CODE (tag_type))
- && CLASSTYPE_IS_TEMPLATE (tag_type))
- tag = CLASSTYPE_TI_TEMPLATE (tag_type);
-
- TREE_NONLOCAL_FLAG (tag_type) = 0;
- x = TREE_CHAIN (x);
- last_x = chainon (last_x, tag);
- }
- if (dummy)
- last_x = chainon (last_x, dummy);
- if (fields == NULL_TREE)
- fields = last_x;
- CLASSTYPE_LOCAL_TYPEDECLS (t) = 1;
+ for (x = TYPE_METHODS (t); x; x = TREE_CHAIN (x))
+ check_member_decl_is_same_in_complete_scope (t, x);
+ for (x = TYPE_FIELDS (t); x; x = TREE_CHAIN (x))
+ check_member_decl_is_same_in_complete_scope (t, x);
}
- *tail = NULL_TREE;
- TYPE_FIELDS (t) = fields;
+ /* Mark all the tags in the class as class-local. */
+ for (x = CLASSTYPE_TAGS (t); x; x = TREE_CHAIN (x))
+ TREE_NONLOCAL_FLAG (TREE_VALUE (x)) = 0;
cplus_decl_attributes (t, attributes, NULL_TREE);
@@ -4574,9 +4567,10 @@ void
init_class_processing ()
{
current_class_depth = 0;
- current_class_stacksize = 10;
- current_class_base = (tree *)xmalloc(current_class_stacksize * sizeof (tree));
- current_class_stack = current_class_base;
+ current_class_stack_size = 10;
+ current_class_stack
+ = (class_stack_node_t) xmalloc (current_class_stack_size
+ * sizeof (struct class_stack_node));
current_lang_stacksize = 10;
current_lang_base = (tree *)xmalloc(current_lang_stacksize * sizeof (tree));
@@ -4639,23 +4633,34 @@ pushclass (type, modify)
{
type = TYPE_MAIN_VARIANT (type);
- current_class_depth++;
- *current_class_stack++ = current_class_name;
- *current_class_stack++ = current_class_type;
- if (current_class_stack >= current_class_base + current_class_stacksize)
- {
- current_class_base
- = (tree *)xrealloc (current_class_base,
- sizeof (tree) * (current_class_stacksize + 10));
- current_class_stack = current_class_base + current_class_stacksize;
- current_class_stacksize += 10;
+ /* Make sure there is enough room for the new entry on the stack. */
+ if (current_class_depth + 1 >= current_class_stack_size)
+ {
+ current_class_stack_size *= 2;
+ current_class_stack
+ = (class_stack_node_t) xrealloc (current_class_stack,
+ current_class_stack_size
+ * sizeof (struct class_stack_node));
}
+ /* Insert a new entry on the class stack. */
+ current_class_stack[current_class_depth].name = current_class_name;
+ current_class_stack[current_class_depth].type = current_class_type;
+ current_class_stack[current_class_depth].access = current_access_specifier;
+ current_class_depth++;
+
+ /* Now set up the new type. */
current_class_name = TYPE_NAME (type);
if (TREE_CODE (current_class_name) == TYPE_DECL)
current_class_name = DECL_NAME (current_class_name);
current_class_type = type;
+ /* By default, things in classes are private, while things in
+ structures or unions are public. */
+ current_access_specifier = (CLASSTYPE_DECLARED_CLASS (type)
+ ? access_private_node
+ : access_public_node);
+
if (previous_class_type != NULL_TREE
&& (type != previous_class_type || TYPE_SIZE (previous_class_type) == NULL_TREE)
&& current_class_depth == 1)
@@ -4783,8 +4788,9 @@ popclass (modify)
pop_class_decls ();
current_class_depth--;
- current_class_type = *--current_class_stack;
- current_class_name = *--current_class_stack;
+ current_class_name = current_class_stack[current_class_depth].name;
+ current_class_type = current_class_stack[current_class_depth].type;
+ current_access_specifier = current_class_stack[current_class_depth].access;
ret:
;
@@ -4800,7 +4806,7 @@ currently_open_class (t)
if (t == current_class_type)
return 1;
for (i = 0; i < current_class_depth; ++i)
- if (current_class_stack [-i*2 - 1] == t)
+ if (current_class_stack [i].type == t)
return 1;
return 0;
}
@@ -5505,7 +5511,6 @@ build_self_reference ()
DECL_NONLOCAL (value) = 1;
DECL_CONTEXT (value) = current_class_type;
DECL_CLASS_CONTEXT (value) = current_class_type;
- CLASSTYPE_LOCAL_TYPEDECLS (current_class_type) = 1;
DECL_ARTIFICIAL (value) = 1;
pushdecl_class_level (value);
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index b610737cc23..20a0117c160 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -29,6 +29,11 @@ Boston, MA 02111-1307, USA. */
just won't work for us. */
DEFTREECODE (OFFSET_REF, "offset_ref", 'r', 2)
+/* A pointer-to-member constant. For a pointer-to-member constant
+ `X::Y' The PTRMEM_CST_CLASS is the RECORD_TYPE for `X' and the
+ PTRMEM_CST_MEMBER is the _DECL for `Y'. */
+DEFTREECODE (PTRMEM_CST, "ptrmem_cst", 'c', 1)
+
/* For NEW_EXPR, operand 0 is the placement list.
Operand 1 is the new-declarator.
Operand 2 is the initializer. */
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 68655c155c0..bef5e0e8bbd 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -109,6 +109,12 @@ typedef struct
tree decl;
} template_parm_index;
+typedef struct ptrmem_cst
+{
+ char common[sizeof (struct tree_common)];
+ tree member;
+}* ptrmem_cst_t;
+
/* For a binding between a name and an entity, defines the scope
where the binding is declared. Currently always points to a
namespace declaration. */
@@ -586,7 +592,6 @@ struct lang_type
unsigned has_call_overloaded : 1;
unsigned has_array_ref_overloaded : 1;
unsigned has_arrow_overloaded : 1;
- unsigned local_typedecls : 1;
unsigned interface_only : 1;
unsigned interface_unknown : 1;
@@ -625,7 +630,7 @@ struct lang_type
/* The MIPS compiler gets it wrong if this struct also
does not fill out to a multiple of 4 bytes. Add a
member `dummy' with new bits if you go over the edge. */
- unsigned dummy : 11;
+ unsigned dummy : 12;
} type_flags;
int n_ancestors;
@@ -786,7 +791,12 @@ struct lang_type
hierarchy, then we can use more efficient search techniques. */
#define TYPE_USES_VIRTUAL_BASECLASSES(NODE) (TREE_LANG_FLAG_3(NODE))
-/* List of lists of member functions defined in this class. */
+/* Vector member functions defined in this class. Each element is
+ either a FUNCTION_DECL, a TEMPLATE_DECL, or an OVERLOAD. The first
+ two elements are for constructors, and destructors, respectively.
+ Any user-defined conversion operators follow these. These are
+ followed by ordinary member functions. There may be empty entries
+ at the end of the vector. */
#define CLASSTYPE_METHOD_VEC(NODE) (TYPE_LANG_SPECIFIC(NODE)->methods)
/* The first type conversion operator in the class (the others can be
@@ -900,9 +910,6 @@ struct lang_type
the virtual function table will be written out. */
#define CLASSTYPE_VTABLE_NEEDS_WRITING(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.vtable_needs_writing)
-/* Nonzero means that this type defines its own local type declarations. */
-#define CLASSTYPE_LOCAL_TYPEDECLS(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.local_typedecls)
-
/* Nonzero means that this type has an X() constructor. */
#define TYPE_HAS_DEFAULT_CONSTRUCTOR(NODE) (TYPE_LANG_SPECIFIC(NODE)->type_flags.has_default_ctor)
@@ -1508,6 +1515,17 @@ extern int flag_new_for_scope;
#define DELTA2_FROM_PTRMEMFUNC(NODE) (build_component_ref (build_component_ref ((NODE), pfn_or_delta2_identifier, NULL_TREE, 0), delta2_identifier, NULL_TREE, 0))
#define PFN_FROM_PTRMEMFUNC(NODE) (build_component_ref (build_component_ref ((NODE), pfn_or_delta2_identifier, NULL_TREE, 0), pfn_identifier, NULL_TREE, 0))
+/* For a pointer-to-member constant `X::Y' this is the RECORD_TYPE for
+ `X'. */
+#define PTRMEM_CST_CLASS(NODE) \
+ (TYPE_PTRMEM_P (TREE_TYPE (NODE)) \
+ ? TYPE_OFFSET_BASETYPE (TREE_TYPE (NODE)) \
+ : TYPE_PTRMEMFUNC_OBJECT_TYPE (TREE_TYPE (NODE)))
+
+/* For a pointer-to-member constant `X::Y' this is the _DECL for
+ `Y'. */
+#define PTRMEM_CST_MEMBER(NODE) (((ptrmem_cst_t) NODE)->member)
+
/* Nonzero for VAR_DECL and FUNCTION_DECL node means that `extern' was
specified in its declaration. */
#define DECL_THIS_EXTERN(NODE) (DECL_LANG_FLAG_2(NODE))
@@ -1853,6 +1871,7 @@ extern void constant_expression_warning PROTO((tree));
extern tree convert_and_check PROTO((tree, tree));
extern void overflow_warning PROTO((tree));
extern void unsigned_conversion_warning PROTO((tree, tree));
+
/* Read the rest of the current #-directive line. */
#if USE_CPPLIB
extern char *get_directive_line PROTO((void));
@@ -1957,6 +1976,13 @@ extern int minimal_parse_mode;
extern void maybe_print_template_context PROTO ((void));
/* in class.c */
+
+/* When parsing a class definition, the access specifier most recently
+ given by the user, or, if no access specifier was given, the
+ default value appropriate for the kind of class (i.e., struct,
+ class, or union). */
+extern tree current_access_specifier;
+
extern tree current_class_name;
extern tree current_class_type;
extern tree current_class_ptr;
@@ -2257,7 +2283,6 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG };
/* The following two can be derived from the previous one */
extern tree current_class_name; /* IDENTIFIER_NODE: name of current class */
-extern tree current_class_type; /* _TYPE: the type of the current class */
/* Some macros for char-based bitfields. */
#define B_SET(a,x) (a[x>>3] |= (1 << (x&7)))
@@ -2414,7 +2439,7 @@ extern void add_method PROTO((tree, tree *, tree));
extern int currently_open_class PROTO((tree));
extern tree get_vfield_offset PROTO((tree));
extern void duplicate_tag_error PROTO((tree));
-extern tree finish_struct PROTO((tree, tree, tree, int));
+extern tree finish_struct PROTO((tree, tree, int));
extern tree finish_struct_1 PROTO((tree, int));
extern int resolves_to_fixed_type_p PROTO((tree, int *));
extern void init_class_processing PROTO((void));
@@ -2433,6 +2458,7 @@ extern tree build_self_reference PROTO((void));
extern void warn_hidden PROTO((tree));
extern tree get_enclosing_class PROTO((tree));
int is_base_of_enclosing_class PROTO((tree, tree));
+extern void unreverse_member_declarations PROTO((tree));
/* in cvt.c */
extern tree convert_to_reference PROTO((tree, tree, int, int, tree));
@@ -2488,7 +2514,7 @@ extern int decls_match PROTO((tree, tree));
extern int duplicate_decls PROTO((tree, tree));
extern tree pushdecl PROTO((tree));
extern tree pushdecl_top_level PROTO((tree));
-extern tree pushdecl_class_level PROTO((tree));
+extern void pushdecl_class_level PROTO((tree));
#if 0
extern void pushdecl_nonclass_level PROTO((tree));
#endif
@@ -2551,7 +2577,6 @@ extern void xref_basetypes PROTO((tree, tree, tree, tree));
extern tree start_enum PROTO((tree));
extern tree finish_enum PROTO((tree));
extern tree build_enumerator PROTO((tree, tree, tree));
-extern tree grok_enum_decls PROTO((tree));
extern int start_function PROTO((tree, tree, tree, int));
extern void expand_start_early_try_stmts PROTO((void));
extern void store_parm_decls PROTO((void));
@@ -2572,13 +2597,14 @@ extern void replace_defarg PROTO((tree, tree));
extern void print_other_binding_stack PROTO((struct binding_level *));
extern void revert_static_member_fn PROTO((tree*, tree*, tree*));
extern void cat_namespace_levels PROTO((void));
+extern void fixup_anonymous_union PROTO((tree));
/* in decl2.c */
extern int check_java_method PROTO((tree));
extern int lang_decode_option PROTO((int, char **));
extern tree grok_method_quals PROTO((tree, tree, tree));
extern void warn_if_unknown_interface PROTO((tree));
-extern tree grok_x_components PROTO((tree, tree));
+extern void grok_x_components PROTO((tree));
extern void maybe_retrofit_in_chrg PROTO((tree));
extern void maybe_make_one_only PROTO((tree));
extern void grokclassfn PROTO((tree, tree, enum overload_flags, tree));
@@ -2787,10 +2813,9 @@ extern tree innermost_args PROTO ((tree));
extern tree tsubst PROTO ((tree, tree, tree));
extern tree tsubst_expr PROTO ((tree, tree, tree));
extern tree tsubst_copy PROTO ((tree, tree, tree));
-extern tree tsubst_chain PROTO((tree, tree));
extern void maybe_begin_member_template_processing PROTO((tree));
extern void maybe_end_member_template_processing PROTO((void));
-extern tree finish_member_template_decl PROTO((tree, tree));
+extern tree finish_member_template_decl PROTO((tree));
extern void begin_template_parm_list PROTO((void));
extern void begin_specialization PROTO((void));
extern void reset_specialization PROTO((void));
@@ -2798,7 +2823,7 @@ extern void end_specialization PROTO((void));
extern void begin_explicit_instantiation PROTO((void));
extern void end_explicit_instantiation PROTO((void));
extern tree determine_specialization PROTO((tree, tree, tree *, int, int));
-extern tree check_explicit_specialization PROTO((tree, tree, int, int));
+extern tree check_explicit_specialization PROTO((tree, tree, int, int));
extern tree process_template_parm PROTO((tree, tree));
extern tree end_template_parm_list PROTO((tree));
extern void end_template_decl PROTO((void));
@@ -2950,14 +2975,16 @@ extern tree finish_template_type_parm PROTO((tree, tree));
extern tree finish_template_template_parm PROTO((tree, tree));
extern tree finish_parmlist PROTO((tree, int));
extern tree begin_class_definition PROTO((tree));
-extern tree finish_class_definition PROTO((tree, tree, tree, int));
+extern tree finish_class_definition PROTO((tree, tree, int));
extern void finish_default_args PROTO((void));
extern void begin_inline_definitions PROTO((void));
-extern tree finish_member_class_template PROTO((tree, tree));
+extern tree finish_member_class_template PROTO((tree));
extern void finish_template_decl PROTO((tree));
extern tree finish_template_type PROTO((tree, tree, int));
extern void enter_scope_of PROTO((tree));
extern tree finish_base_specifier PROTO((tree, tree, int));
+extern void finish_member_declaration PROTO((tree));
+extern void check_multiple_declarators PROTO((void));
/* in sig.c */
extern tree build_signature_pointer_type PROTO((tree));
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index cae72561e0c..19cbcf529c2 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -1896,7 +1896,9 @@ struct saved_scope {
tree old_bindings;
tree old_namespace;
struct saved_scope *prev;
- tree class_name, class_type, function_decl;
+ tree class_name, class_type;
+ tree access_specifier;
+ tree function_decl;
struct binding_level *class_bindings;
tree *lang_base, *lang_stack, lang_name;
int lang_stacksize;
@@ -2010,6 +2012,7 @@ maybe_push_to_top_level (pseudo)
s->old_namespace = current_namespace;
s->class_name = current_class_name;
s->class_type = current_class_type;
+ s->access_specifier = current_access_specifier;
s->function_decl = current_function_decl;
s->class_bindings = class_binding_level;
s->lang_stack = current_lang_stack;
@@ -2091,6 +2094,7 @@ pop_from_top_level ()
current_namespace = s->old_namespace;
current_class_name = s->class_name;
current_class_type = s->class_type;
+ current_access_specifier = s->access_specifier;
current_function_decl = s->function_decl;
class_binding_level = s->class_bindings;
free (current_lang_base);
@@ -2297,6 +2301,7 @@ maybe_process_template_type_declaration (type, globalize, b)
{
pushdecl_with_scope (CLASSTYPE_TI_TEMPLATE (type),
b->level_chain);
+ finish_member_declaration (CLASSTYPE_TI_TEMPLATE (type));
/* Put this tag on the list of tags for the class, since
that won't happen below because B is not the class
binding level, but is instead the pseudo-global level. */
@@ -2391,7 +2396,15 @@ pushtag (name, type, globalize)
globalize, b);
if (b->parm_flag == 2)
- d = pushdecl_class_level (d);
+ {
+ pushdecl_class_level (d);
+ if (newdecl && !PROCESSING_REAL_TEMPLATE_DECL_P ())
+ /* Put this TYPE_DECL on the TYPE_FIELDS list for the
+ class. But if it's a member template class, we
+ want the TEMPLATE_DECL, not the TYPE_DECL, so this
+ is done later. */
+ finish_member_declaration (d);
+ }
else
d = pushdecl_with_scope (d, b);
@@ -3788,7 +3801,7 @@ pushdecl_top_level (x)
/* Make the declaration of X appear in CLASS scope. */
-tree
+void
pushdecl_class_level (x)
tree x;
{
@@ -3839,7 +3852,6 @@ pushdecl_class_level (x)
set_identifier_type_value (name, TREE_TYPE (x));
}
}
- return x;
}
#if 0
@@ -6291,6 +6303,48 @@ define_function (name, type, function_code, pfn, library_name)
return decl;
}
+/* When we call finish_struct for an anonymous union, we create
+ default copy constructors and such. But, an anonymous union
+ shouldn't have such things; this function undoes the damage to the
+ anonymous union type T.
+
+ (The reason that we create the synthesized methods is that we don't
+ distinguish `union { int i; }' from `typedef union { int i; } U'.
+ The first is an anonymous union; the second is just an ordinary
+ union type.) */
+
+void
+fixup_anonymous_union (t)
+ tree t;
+{
+ tree *q;
+
+ /* Wipe out memory of synthesized methods */
+ TYPE_HAS_CONSTRUCTOR (t) = 0;
+ TYPE_HAS_DEFAULT_CONSTRUCTOR (t) = 0;
+ TYPE_HAS_INIT_REF (t) = 0;
+ TYPE_HAS_CONST_INIT_REF (t) = 0;
+ TYPE_HAS_ASSIGN_REF (t) = 0;
+ TYPE_HAS_ASSIGNMENT (t) = 0;
+ TYPE_HAS_CONST_ASSIGN_REF (t) = 0;
+
+ /* Splice the implicitly generated functions out of the TYPE_METHODS
+ list. */
+ q = &TYPE_METHODS (t);
+ while (*q)
+ {
+ if (DECL_ARTIFICIAL (*q))
+ *q = TREE_CHAIN (*q);
+ else
+ q = &TREE_CHAIN (*q);
+ }
+
+ /* ANSI C++ June 5 1992 WP 9.5.3. Anonymous unions may not have
+ function members. */
+ if (TYPE_METHODS (t))
+ error ("an anonymous union cannot have function members");
+}
+
/* Called when a declaration is seen that contains no names to declare.
If its type is a reference to a structure, union or enum inherited
from a containing scope, shadow that tag name for the current scope
@@ -6349,31 +6403,7 @@ shadow_tag (declspecs)
|| (TREE_CODE (TYPE_NAME (t)) == TYPE_DECL
&& ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))))
{
- /* See also grok_x_components. */
- tree *q;
-
- /* Wipe out memory of synthesized methods */
- TYPE_HAS_CONSTRUCTOR (t) = 0;
- TYPE_HAS_DEFAULT_CONSTRUCTOR (t) = 0;
- TYPE_HAS_INIT_REF (t) = 0;
- TYPE_HAS_CONST_INIT_REF (t) = 0;
- TYPE_HAS_ASSIGN_REF (t) = 0;
- TYPE_HAS_ASSIGNMENT (t) = 0;
- TYPE_HAS_CONST_ASSIGN_REF (t) = 0;
-
- q = &TYPE_METHODS (t);
- while (*q)
- {
- if (DECL_ARTIFICIAL (*q))
- *q = TREE_CHAIN (*q);
- else
- q = &TREE_CHAIN (*q);
- }
-
- /* ANSI C++ June 5 1992 WP 9.5.3. Anonymous unions may not have
- function members. */
- if (TYPE_METHODS (t))
- error ("an anonymous union cannot have function members");
+ fixup_anonymous_union (t);
if (TYPE_FIELDS (t))
{
@@ -9714,6 +9744,9 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
type = TREE_TYPE (type);
}
+ /* Merge any constancy or volatility into the target type
+ for the pointer. */
+
/* We now know that constp and volatilep don't apply to the
decl, but to the target of the pointer. */
constp = volatilep = 0;
@@ -10040,6 +10073,9 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
&& TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
&& ANON_AGGRNAME_P (TYPE_IDENTIFIER (type)))
{
+ /* FIXME: This is bogus; we should not be doing this for
+ cv-qualified types. */
+
/* For anonymous structs that are cv-qualified, need to use
TYPE_MAIN_VARIANT so that name will mangle correctly. As
type not referenced after this block, don't bother
@@ -10094,9 +10130,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
C_TYPEDEF_EXPLICITLY_SIGNED (decl) = 1;
if (RIDBIT_SETP (RID_MUTABLE, specbits))
- {
- error ("non-object member `%s' cannot be declared mutable", name);
- }
+ error ("non-object member `%s' cannot be declared mutable", name);
bad_specifiers (decl, "type", virtualp, quals != NULL_TREE,
inlinep, friendp, raises != NULL_TREE);
@@ -11477,6 +11511,7 @@ xref_tag (code_type_node, name, globalize)
}
else
t = IDENTIFIER_TYPE_VALUE (name);
+
if (t && TREE_CODE (t) != code && TREE_CODE (t) != TEMPLATE_TYPE_PARM
&& TREE_CODE (t) != TEMPLATE_TEMPLATE_PARM)
t = NULL_TREE;
@@ -11651,6 +11686,19 @@ xref_tag (code_type_node, name, globalize)
TREE_TYPE (ref) = attributes;
+ if (ref && TYPE_P (ref))
+ {
+ /* [dcl.type.elab]
+
+ If the identifier resolves to a typedef-name or a template
+ type-parameter, the elaborated-type-specifier is
+ ill-formed. */
+ if (TYPE_LANG_SPECIFIC (ref) && TYPE_WAS_ANONYMOUS (ref))
+ cp_error ("`%T' is a typedef name", ref);
+ else if (TREE_CODE (ref) == TEMPLATE_TYPE_PARM)
+ cp_error ("`%T' is a template type paramter", ref);
+ }
+
return ref;
}
@@ -11791,7 +11839,6 @@ xref_basetypes (code_type_node, name, ref, binfo)
TYPE_GETS_NEW (ref) |= TYPE_GETS_NEW (basetype);
TYPE_GETS_DELETE (ref) |= TYPE_GETS_DELETE (basetype);
- CLASSTYPE_LOCAL_TYPEDECLS (ref) |= CLASSTYPE_LOCAL_TYPEDECLS (basetype);
i += 1;
}
}
@@ -11817,8 +11864,6 @@ xref_basetypes (code_type_node, name, ref, binfo)
}
-tree current_local_enum = NULL_TREE;
-
/* Begin compiling the definition of an enumeration type.
NAME is its name (or null if anonymous).
Returns the type object, as yet incomplete.
@@ -11858,8 +11903,6 @@ start_enum (name)
if (current_class_type)
TREE_ADDRESSABLE (b->tags) = 1;
- current_local_enum = NULL_TREE;
-
/* We don't copy this value because build_enumerator needs to do it. */
enum_next_value = integer_zero_node;
enum_overflow = 0;
@@ -12079,8 +12122,10 @@ build_enumerator (name, value, type)
if (context && context == current_class_type)
{
pushdecl_class_level (decl);
- TREE_CHAIN (decl) = current_local_enum;
- current_local_enum = decl;
+ /* In something like `struct S { enum E { i = 7 }; };' we put `i'
+ on the TYPE_FIELDS list for `S'. (That's so that you can say
+ things like `S::i' later.) */
+ finish_member_declaration (decl);
}
else
{
@@ -12100,47 +12145,6 @@ build_enumerator (name, value, type)
return result;
}
-/* Called after we have finished the declaration of an enumeration
- type, and, perhaps, some objects whose type involves the
- enumeration type. DECL, if non-NULL, is the declaration of the
- first such object.
-
- If CURRENT_LOCAL_ENUM is NULL, the DECL is returned.
-
- If CURRENT_LOCAL_ENUM is non-NULL, it should be the CONST_DECL for
- the last enumeration constant of an enumeration type that is a
- member of a class. The enumeration constants are already chained
- together through their TREE_CHAIN fields. This function sets the
- TREE_CHAIN of the last enumeration constant to DECL. The
- CONST_DECL for the last enumeration constant is returned.
-
- CURRENT_LOCAL_ENUM will always be NULL when this function
- returns. */
-
-tree
-grok_enum_decls (decl)
- tree decl;
-{
- tree d = current_local_enum;
-
- if (d == NULL_TREE)
- return decl;
-
- while (1)
- {
- if (TREE_CHAIN (d) == NULL_TREE)
- {
- TREE_CHAIN (d) = decl;
- break;
- }
- d = TREE_CHAIN (d);
- }
-
- decl = current_local_enum;
- current_local_enum = NULL_TREE;
-
- return decl;
-}
static int function_depth;
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 492688b6c96..f70867a9e5a 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -860,123 +860,37 @@ warn_if_unknown_interface (decl)
/* A subroutine of the parser, to handle a component list. */
-tree
-grok_x_components (specs, components)
- tree specs, components;
+void
+grok_x_components (specs)
+ tree specs;
{
- register tree t, x, tcode;
-
- /* We just got some friends. They have been recorded elsewhere. */
- if (components == void_type_node)
- return NULL_TREE;
+ struct pending_inline **p;
+ tree t;
- if (components == NULL_TREE)
+ t = groktypename (build_decl_list (strip_attrs (specs), NULL_TREE));
+
+ if (t == NULL_TREE)
{
- t = groktypename (build_decl_list (strip_attrs (specs),
- NULL_TREE));
-
- if (t == NULL_TREE)
- {
- error ("error in component specification");
- return NULL_TREE;
- }
-
- switch (TREE_CODE (t))
- {
- case VAR_DECL:
- /* Static anonymous unions come out as VAR_DECLs. */
- if (ANON_UNION_TYPE_P (TREE_TYPE (t)))
- return t;
-
- /* We return SPECS here, because in the parser it was ending
- up with not doing anything to $$, which is what SPECS
- represents. */
- return specs;
- break;
-
- case RECORD_TYPE:
- case UNION_TYPE:
- if (TREE_CODE (t) == UNION_TYPE)
- tcode = union_type_node;
- else
- tcode = record_type_node;
- if (CLASSTYPE_DECLARED_CLASS (t))
- tcode = class_type_node;
- else if (IS_SIGNATURE (t))
- tcode = signature_type_node;
-
- if (TYPE_LANG_SPECIFIC (t)
- && CLASSTYPE_USE_TEMPLATE (t))
- /* We have already looked up this type. */
- ;
- else
- {
- if (CLASSTYPE_IS_TEMPLATE (t))
- x = DECL_NAME (CLASSTYPE_TI_TEMPLATE (t));
- else
- x = TYPE_IDENTIFIER (t);
- t = xref_tag (tcode, x, 0);
- }
-
- if (ANON_UNION_TYPE_P (t))
- {
- /* See also shadow_tag. */
-
- struct pending_inline **p;
- tree *q;
- x = build_lang_field_decl (FIELD_DECL, NULL_TREE, t);
-
- /* Wipe out memory of synthesized methods */
- TYPE_HAS_CONSTRUCTOR (t) = 0;
- TYPE_HAS_DEFAULT_CONSTRUCTOR (t) = 0;
- TYPE_HAS_INIT_REF (t) = 0;
- TYPE_HAS_CONST_INIT_REF (t) = 0;
- TYPE_HAS_ASSIGN_REF (t) = 0;
- TYPE_HAS_ASSIGNMENT (t) = 0;
- TYPE_HAS_CONST_ASSIGN_REF (t) = 0;
-
- q = &TYPE_METHODS (t);
- while (*q)
- {
- if (DECL_ARTIFICIAL (*q))
- *q = TREE_CHAIN (*q);
- else
- q = &TREE_CHAIN (*q);
- }
- if (TYPE_METHODS (t))
- error ("an anonymous union cannot have function members");
-
- p = &pending_inlines;
- for (; *p; *p = (*p)->next)
- if (DECL_CONTEXT ((*p)->fndecl) != t)
- break;
-
- return x;
- }
-
- return NULL_TREE;
- break;
+ cp_error ("invalid member declaration");
+ return;
+ }
- case ENUMERAL_TYPE:
- tcode = enum_type_node;
- t = xref_tag (tcode, TYPE_IDENTIFIER (t), 0);
- x = grok_enum_decls (NULL_TREE);
- return x;
- break;
+ /* The only case where we need to do anything additional here is an
+ anonymous union field, e.g.: `struct S { union { int i; }; };'. */
+ if (!ANON_UNION_TYPE_P (t))
+ return;
- default:
- if (t != void_type_node)
- error ("empty component declaration");
- return NULL_TREE;
- }
- }
- else
- /* There may or may not be any enum decls to grok, but
- grok_enum_decls will just return components, if there aren't
- any. We used to try to figure out whether or not there were
- any enum decls based on the type of components, but that's too
- hard; it might be something like `enum { a } *p;'. */
- return grok_enum_decls (components);
+ fixup_anonymous_union (t);
+ finish_member_declaration (build_lang_field_decl (FIELD_DECL,
+ NULL_TREE,
+ t));
+
+ /* Ignore any inline function definitions in the anonymous union
+ since an anonymous union may not have function members. */
+ p = &pending_inlines;
+ for (; *p; *p = (*p)->next)
+ if (DECL_CONTEXT ((*p)->fndecl) != t)
+ break;
}
/* Constructors for types with virtual baseclasses need an "in-charge" flag
@@ -1459,7 +1373,7 @@ check_classfn (ctype, function)
&& DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (function)))
goto got_it;
- while (++methods != end)
+ while (++methods != end && *methods)
{
fndecl = *methods;
if (fn_name == DECL_NAME (OVL_CURRENT (*methods)))
@@ -1530,14 +1444,12 @@ check_classfn (ctype, function)
if (templates)
/* This function might be an instantiation or a specialization.
- We should verify that this is possible. If it is, we must
- somehow add the new declaration to the method vector for the
- class. Perhaps we should use add_method? For now, we simply
- return NULL_TREE, which lets the caller know that this
- function is new, but we don't print an error message. */
+ We should verify that this is possible. For now, we simply
+ return NULL_TREE, which lets the caller know that this function
+ is new, but we don't print an error message. */
return NULL_TREE;
- if (methods != end)
+ if (methods != end && *methods)
{
tree fndecl = *methods;
cp_error ("prototype for `%#D' does not match any in class `%T'",
@@ -1640,7 +1552,6 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist)
DECL_NONLOCAL (value) = 1;
DECL_CONTEXT (value) = current_class_type;
DECL_CLASS_CONTEXT (value) = current_class_type;
- CLASSTYPE_LOCAL_TYPEDECLS (current_class_type) = 1;
/* Now that we've updated the context, we need to remangle the
name for this TYPE_DECL. */
@@ -4129,7 +4040,9 @@ add_using_namespace (user, used, indirect)
/* Combines two sets of overloaded functions into an OVERLOAD chain, removing
duplicates. The first list becomes the tail of the result.
- The algorithm is O(n^2). */
+ The algorithm is O(n^2). We could get this down to O(n log n) by
+ doing a sort on the addresses of the functions, if that becomes
+ necessary. */
static tree
merge_functions (s1, s2)
@@ -4414,6 +4327,7 @@ struct arg_lookup
static int arg_assoc PROTO((struct arg_lookup*, tree));
static int arg_assoc_args PROTO((struct arg_lookup*, tree));
+static int arg_assoc_type PROTO((struct arg_lookup*, tree));
/* Add a function to the lookup structure.
Returns 1 on error. */
@@ -4662,7 +4576,7 @@ arg_assoc (k, n)
return 1;
}
else if (TREE_CODE_CLASS (TREE_CODE (t)) == 't'
- && arg_assoc_type (t) == 1)
+ && arg_assoc_type (k, t) == 1)
return 1;
}
}
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index fb6995fe49f..52c519d692a 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1265,6 +1265,13 @@ dump_expr (t, nop)
OB_PUTCP (digit_buffer);
break;
+ case PTRMEM_CST:
+ OB_PUTC ('&');
+ dump_type (PTRMEM_CST_CLASS (t), 0);
+ OB_PUTS ("::");
+ OB_PUTID (DECL_NAME (PTRMEM_CST_MEMBER (t)));
+ break;
+
case STRING_CST:
{
char *p = TREE_STRING_POINTER (t);
@@ -1571,10 +1578,14 @@ dump_expr (t, nop)
{
tree ob = TREE_OPERAND (t, 0);
if (TREE_CODE (ob) == NOP_EXPR
- && TREE_OPERAND (ob, 0) == error_mark_node
- && TREE_CODE (TREE_OPERAND (t, 1)) == FUNCTION_DECL)
- /* A::f */
- dump_expr (TREE_OPERAND (t, 1), 0);
+ && TREE_OPERAND (ob, 0) == error_mark_node)
+ {
+ if (TREE_CODE (TREE_OPERAND (t, 1)) == FUNCTION_DECL)
+ /* A::f */
+ dump_expr (TREE_OPERAND (t, 1), 0);
+ else
+ dump_decl (TREE_OPERAND (t, 1), 0);
+ }
else
{
dump_expr (TREE_OPERAND (t, 0), 0);
diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c
index ae8a374f86a..056f4d1f16a 100644
--- a/gcc/cp/expr.c
+++ b/gcc/cp/expr.c
@@ -162,19 +162,43 @@ cplus_expand_expr (exp, target, tmode, modifier)
return DECL_RTL (slot);
}
+ case PTRMEM_CST:
+ {
+ tree member;
+ tree offset;
+
+ /* Find the member. */
+ member = PTRMEM_CST_MEMBER (exp);
+
+ if (TREE_CODE (member) == FIELD_DECL)
+ {
+ /* Find the offset for the field. */
+ offset = convert (sizetype,
+ size_binop (EASY_DIV_EXPR,
+ DECL_FIELD_BITPOS (member),
+ size_int (BITS_PER_UNIT)));
+
+ /* We offset all pointer to data members by 1 so that we
+ can distinguish between a null pointer to data member
+ and the first data member of a structure. */
+ offset = size_binop (PLUS_EXPR, offset, size_int (1));
+
+ return expand_expr (cp_convert (type, offset), target, tmode,
+ modifier);
+ }
+ else
+ {
+ /* We don't yet handle pointer-to-member functions this
+ way. */
+ my_friendly_abort (0);
+ return 0;
+ }
+ }
+
case OFFSET_REF:
{
-#if 1
return expand_expr (default_conversion (resolve_offset_ref (exp)),
target, tmode, EXPAND_NORMAL);
-#else
- /* This is old crusty code, and does not handle all that the
- resolve_offset_ref function does. (mrs) */
- tree base = build_unary_op (ADDR_EXPR, TREE_OPERAND (exp, 0), 0);
- tree offset = build_unary_op (ADDR_EXPR, TREE_OPERAND (exp, 1), 0);
- return expand_expr (build (PLUS_EXPR, TREE_TYPE (exp), base, offset),
- target, tmode, EXPAND_NORMAL);
-#endif
}
case THUNK_DECL:
diff --git a/gcc/cp/friend.c b/gcc/cp/friend.c
index 91c3d34acc5..acb9657d666 100644
--- a/gcc/cp/friend.c
+++ b/gcc/cp/friend.c
@@ -372,21 +372,22 @@ do_friend (ctype, declarator, decl, parmdecls, flags, quals, funcdef_flag)
if (is_friend_template)
decl = DECL_TI_TEMPLATE (push_template_decl (decl));
- if (TYPE_SIZE (ctype) != 0 && template_class_depth (ctype) == 0)
- decl = check_classfn (ctype, decl);
-
- /* TYPE_BEING_DEFINED is a hack for nested classes having
- member functions of the enclosing class as friends. Will
- go away as parsing of classes gets rewritten. */
- if (TREE_TYPE (decl) != error_mark_node)
+ /* A nested class may declare a member of an enclosing class
+ to be a friend, so we do lookup here even if CTYPE is in
+ the process of being defined. */
+ if (TYPE_SIZE (ctype) != 0 || TYPE_BEING_DEFINED (ctype))
{
- if (TYPE_BEING_DEFINED (ctype) ||
- TYPE_SIZE (ctype) || template_class_depth (ctype) > 0)
+ /* But, we defer looup in template specializations until
+ they are fully specialized. */
+ if (template_class_depth (ctype) == 0)
+ decl = check_classfn (ctype, decl);
+
+ if (decl)
add_friend (current_class_type, decl);
- else
- cp_error ("member `%D' declared as friend before type `%T' defined",
- decl, ctype);
}
+ else
+ cp_error ("member `%D' declared as friend before type `%T' defined",
+ decl, ctype);
}
else
{
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index b6a20ba8687..2386215ba4f 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -1561,30 +1561,11 @@ build_offset_ref (type, name)
name = ctor_identifier;
#endif
- if (TYPE_SIZE (complete_type (type)) == 0)
+ if (TYPE_SIZE (complete_type (type)) == 0
+ && !TYPE_BEING_DEFINED (type))
{
- if (type == current_class_type)
- t = IDENTIFIER_CLASS_VALUE (name);
- else
- t = NULL_TREE;
- if (t == 0)
- {
- cp_error ("incomplete type `%T' does not have member `%D'", type,
- name);
- return error_mark_node;
- }
- if (TREE_CODE (t) == TYPE_DECL || TREE_CODE (t) == VAR_DECL
- || TREE_CODE (t) == CONST_DECL)
- {
- mark_used (t);
- return t;
- }
- if (TREE_CODE (t) == FIELD_DECL)
- sorry ("use of member in incomplete aggregate type");
- else if (TREE_CODE (t) == FUNCTION_DECL)
- sorry ("use of member function in incomplete aggregate type");
- else
- my_friendly_abort (52);
+ cp_error ("incomplete type `%T' does not have member `%D'", type,
+ name);
return error_mark_node;
}
@@ -1883,28 +1864,14 @@ decl_constant_value (decl)
tree decl;
{
if (! TREE_THIS_VOLATILE (decl)
-#if 0
- /* These may be necessary for C, but they break C++. */
- ! TREE_PUBLIC (decl)
- /* Don't change a variable array bound or initial value to a constant
- in a place where a variable is invalid. */
- && ! pedantic
-#endif /* 0 */
- && DECL_INITIAL (decl) != 0
+ && DECL_INITIAL (decl)
&& DECL_INITIAL (decl) != error_mark_node
/* This is invalid if initial value is not constant.
If it has either a function call, a memory reference,
or a variable, then re-evaluating it could give different results. */
&& TREE_CONSTANT (DECL_INITIAL (decl))
/* Check for cases where this is sub-optimal, even though valid. */
- && TREE_CODE (DECL_INITIAL (decl)) != CONSTRUCTOR
-#if 0
- /* We must allow this to work outside of functions so that
- static constants can be used for array sizes. */
- && current_function_decl != 0
- && DECL_MODE (decl) != BLKmode
-#endif
- )
+ && TREE_CODE (DECL_INITIAL (decl)) != CONSTRUCTOR)
return DECL_INITIAL (decl);
return decl;
}
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 819fb51b821..82a886c2377 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -628,15 +628,12 @@ build_overload_value (type, value, in_template)
tree type, value;
int in_template;
{
+ my_friendly_assert (TREE_CODE_CLASS (TREE_CODE (type)) == 't', 0);
+
while (TREE_CODE (value) == NON_LVALUE_EXPR
|| TREE_CODE (value) == NOP_EXPR)
value = TREE_OPERAND (value, 0);
- if (TREE_CODE (type) == PARM_DECL)
- type = TREE_TYPE (type);
-
- my_friendly_assert (TREE_CODE_CLASS (TREE_CODE (type)) == 't', 0);
-
if (numeric_output_need_bar)
{
OB_PUTC ('_');
@@ -649,17 +646,20 @@ build_overload_value (type, value, in_template)
return;
}
- if (TREE_CODE (type) == POINTER_TYPE
- && TREE_CODE (TREE_TYPE (type)) == OFFSET_TYPE)
+ if (TYPE_PTRMEM_P (type))
{
- /* Handle a pointer to data member as a template instantiation
- parameter, boy, what fun! */
- type = integer_type_node;
- if (TREE_CODE (value) != INTEGER_CST)
- {
- sorry ("unknown pointer to member constant");
- return;
- }
+ if (TREE_CODE (value) != PTRMEM_CST)
+ /* We should have already rejected this pointer to member,
+ since it is not a constant. */
+ my_friendly_abort (0);
+
+ /* Get the actual FIELD_DECL. */
+ value = PTRMEM_CST_MEMBER (value);
+ my_friendly_assert (TREE_CODE (value) == FIELD_DECL, 0);
+
+ /* Output the name of the field. */
+ build_overload_identifier (DECL_NAME (value));
+ return;
}
if (TYPE_PTRMEMFUNC_P (type))
@@ -898,7 +898,8 @@ build_template_parm_names (parmlist, arglist)
parm = tsubst (parm, arglist, NULL_TREE);
/* It's a PARM_DECL. */
build_mangled_name_for_type (TREE_TYPE (parm));
- build_overload_value (parm, arg, uses_template_parms (arglist));
+ build_overload_value (TREE_TYPE (parm), arg,
+ uses_template_parms (arglist));
}
}
}
diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c
index e4c7df3eb4a..9ac44964ab0 100644
--- a/gcc/cp/parse.c
+++ b/gcc/cp/parse.c
@@ -154,7 +154,7 @@ empty_parms ()
#line 92 "parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
-#line 282 "parse.y"
+#line 281 "parse.y"
/* List of types and structure classes of the current declaration. */
static tree current_declspecs;
@@ -215,11 +215,11 @@ parse_decl(declarator, specs_attrs, attributes, initialized, decl)
-#define YYFINAL 1608
+#define YYFINAL 1609
#define YYFLAG -32768
#define YYNTBASE 112
-#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 395)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 396)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -310,44 +310,45 @@ static const short yyprhs[] = { 0,
1537, 1541, 1542, 1545, 1548, 1549, 1557, 1562, 1563, 1570,
1574, 1577, 1580, 1583, 1584, 1585, 1595, 1597, 1598, 1600,
1601, 1603, 1605, 1608, 1611, 1614, 1617, 1620, 1623, 1626,
- 1629, 1632, 1636, 1641, 1645, 1648, 1652, 1653, 1655, 1659,
+ 1629, 1632, 1636, 1641, 1645, 1648, 1652, 1654, 1655, 1659,
1662, 1665, 1667, 1669, 1670, 1673, 1677, 1679, 1684, 1686,
1690, 1692, 1694, 1699, 1704, 1707, 1710, 1714, 1718, 1720,
- 1721, 1723, 1726, 1731, 1735, 1737, 1740, 1743, 1746, 1749,
- 1752, 1755, 1758, 1760, 1763, 1766, 1770, 1773, 1776, 1781,
- 1786, 1789, 1791, 1797, 1802, 1804, 1805, 1807, 1811, 1812,
- 1814, 1818, 1820, 1822, 1824, 1826, 1831, 1836, 1841, 1846,
- 1851, 1855, 1860, 1865, 1870, 1875, 1879, 1881, 1885, 1887,
- 1891, 1894, 1896, 1904, 1905, 1908, 1910, 1913, 1914, 1917,
- 1922, 1927, 1930, 1935, 1939, 1943, 1946, 1949, 1953, 1955,
- 1957, 1960, 1962, 1964, 1967, 1970, 1975, 1980, 1984, 1988,
- 1991, 1993, 1997, 2001, 2004, 2007, 2011, 2013, 2017, 2021,
- 2024, 2027, 2031, 2033, 2038, 2042, 2047, 2051, 2053, 2056,
- 2059, 2062, 2065, 2068, 2070, 2073, 2078, 2083, 2086, 2088,
- 2090, 2092, 2094, 2097, 2102, 2105, 2108, 2111, 2114, 2116,
- 2119, 2122, 2125, 2128, 2132, 2134, 2137, 2141, 2146, 2149,
- 2152, 2155, 2158, 2161, 2164, 2169, 2172, 2174, 2177, 2180,
- 2184, 2186, 2190, 2193, 2197, 2200, 2203, 2207, 2209, 2213,
- 2218, 2222, 2225, 2228, 2230, 2234, 2237, 2240, 2242, 2245,
- 2249, 2251, 2255, 2257, 2264, 2269, 2274, 2278, 2284, 2288,
- 2292, 2296, 2299, 2301, 2303, 2306, 2309, 2312, 2313, 2315,
- 2317, 2320, 2324, 2326, 2329, 2330, 2334, 2335, 2336, 2342,
- 2344, 2345, 2348, 2350, 2352, 2354, 2357, 2358, 2363, 2365,
- 2366, 2367, 2373, 2374, 2375, 2383, 2384, 2385, 2386, 2387,
- 2400, 2401, 2402, 2410, 2411, 2417, 2418, 2426, 2427, 2432,
- 2435, 2438, 2441, 2445, 2452, 2461, 2472, 2485, 2490, 2494,
- 2497, 2500, 2502, 2504, 2506, 2508, 2510, 2511, 2512, 2519,
- 2520, 2521, 2527, 2529, 2532, 2533, 2534, 2540, 2542, 2544,
- 2548, 2552, 2555, 2558, 2561, 2564, 2567, 2569, 2572, 2573,
- 2575, 2576, 2578, 2580, 2581, 2583, 2585, 2589, 2594, 2596,
- 2600, 2601, 2603, 2605, 2607, 2610, 2613, 2616, 2618, 2621,
- 2624, 2625, 2629, 2631, 2633, 2635, 2638, 2641, 2644, 2649,
- 2652, 2655, 2658, 2661, 2664, 2667, 2669, 2672, 2674, 2677,
- 2679, 2681, 2682, 2683, 2685, 2686, 2691, 2694, 2696, 2698,
- 2702, 2703, 2707, 2711, 2715, 2717, 2720, 2723, 2726, 2729,
- 2732, 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759,
- 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, 2790,
- 2793, 2796, 2799, 2802, 2806, 2809, 2812, 2817, 2822, 2826
+ 1721, 1723, 1726, 1730, 1733, 1736, 1738, 1741, 1744, 1747,
+ 1750, 1753, 1756, 1759, 1761, 1764, 1767, 1771, 1774, 1777,
+ 1782, 1787, 1790, 1792, 1798, 1803, 1805, 1806, 1808, 1812,
+ 1813, 1815, 1819, 1821, 1823, 1825, 1827, 1832, 1837, 1842,
+ 1847, 1852, 1856, 1861, 1866, 1871, 1876, 1880, 1882, 1886,
+ 1888, 1892, 1895, 1897, 1905, 1906, 1909, 1911, 1914, 1915,
+ 1918, 1923, 1928, 1931, 1936, 1940, 1944, 1947, 1950, 1954,
+ 1956, 1958, 1961, 1963, 1965, 1968, 1971, 1976, 1981, 1985,
+ 1989, 1992, 1994, 1998, 2002, 2005, 2008, 2012, 2014, 2018,
+ 2022, 2025, 2028, 2032, 2034, 2039, 2043, 2048, 2052, 2054,
+ 2057, 2060, 2063, 2066, 2069, 2071, 2074, 2079, 2084, 2087,
+ 2089, 2091, 2093, 2095, 2098, 2103, 2106, 2109, 2112, 2115,
+ 2117, 2120, 2123, 2126, 2129, 2133, 2135, 2138, 2142, 2147,
+ 2150, 2153, 2156, 2159, 2162, 2165, 2170, 2173, 2175, 2178,
+ 2181, 2185, 2187, 2191, 2194, 2198, 2201, 2204, 2208, 2210,
+ 2214, 2219, 2223, 2226, 2229, 2231, 2235, 2238, 2241, 2243,
+ 2246, 2250, 2252, 2256, 2258, 2265, 2270, 2275, 2279, 2285,
+ 2289, 2293, 2297, 2300, 2302, 2304, 2307, 2310, 2313, 2314,
+ 2316, 2318, 2321, 2325, 2327, 2330, 2331, 2335, 2336, 2337,
+ 2343, 2345, 2346, 2349, 2351, 2353, 2355, 2358, 2359, 2364,
+ 2366, 2367, 2368, 2374, 2375, 2376, 2384, 2385, 2386, 2387,
+ 2388, 2401, 2402, 2403, 2411, 2412, 2418, 2419, 2427, 2428,
+ 2433, 2436, 2439, 2442, 2446, 2453, 2462, 2473, 2486, 2491,
+ 2495, 2498, 2501, 2503, 2505, 2507, 2509, 2511, 2512, 2513,
+ 2520, 2521, 2522, 2528, 2530, 2533, 2534, 2535, 2541, 2543,
+ 2545, 2549, 2553, 2556, 2559, 2562, 2565, 2568, 2570, 2573,
+ 2574, 2576, 2577, 2579, 2581, 2582, 2584, 2586, 2590, 2595,
+ 2597, 2601, 2602, 2604, 2606, 2608, 2611, 2614, 2617, 2619,
+ 2622, 2625, 2626, 2630, 2632, 2634, 2636, 2639, 2642, 2645,
+ 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2670, 2673, 2675,
+ 2678, 2680, 2682, 2683, 2684, 2686, 2687, 2692, 2695, 2697,
+ 2699, 2703, 2704, 2708, 2712, 2716, 2718, 2721, 2724, 2727,
+ 2730, 2733, 2736, 2739, 2742, 2745, 2748, 2751, 2754, 2757,
+ 2760, 2763, 2766, 2769, 2772, 2775, 2778, 2781, 2784, 2787,
+ 2791, 2794, 2797, 2800, 2803, 2807, 2810, 2813, 2818, 2823,
+ 2827
};
static const short yyrhs[] = { -1,
@@ -359,16 +360,16 @@ static const short yyrhs[] = { -1,
0, 0, 44, 163, 58, 123, 115, 109, 0, 0,
44, 58, 124, 115, 109, 0, 125, 0, 127, 60,
0, 129, 0, 118, 122, 0, 0, 44, 163, 64,
- 126, 132, 60, 0, 46, 309, 0, 46, 323, 309,
- 0, 46, 323, 208, 0, 46, 131, 163, 0, 46,
- 323, 163, 0, 46, 323, 131, 163, 0, 0, 46,
+ 126, 132, 60, 0, 46, 310, 0, 46, 324, 310,
+ 0, 46, 324, 208, 0, 46, 131, 163, 0, 46,
+ 324, 163, 0, 46, 324, 131, 163, 0, 0, 46,
44, 130, 132, 60, 0, 57, 54, 0, 131, 57,
- 54, 0, 208, 0, 309, 0, 323, 309, 0, 323,
+ 54, 0, 208, 0, 310, 0, 324, 310, 0, 324,
208, 0, 98, 0, 133, 98, 0, 0, 48, 74,
135, 136, 75, 0, 48, 74, 75, 0, 140, 0,
136, 59, 140, 0, 163, 0, 0, 266, 137, 0,
45, 137, 0, 134, 266, 137, 0, 138, 0, 138,
- 64, 223, 0, 386, 0, 386, 64, 203, 0, 139,
+ 64, 223, 0, 387, 0, 387, 64, 203, 0, 139,
0, 139, 64, 183, 0, 134, 142, 0, 134, 1,
0, 148, 147, 0, 143, 0, 141, 0, 133, 116,
148, 117, 147, 0, 133, 116, 143, 117, 0, 118,
@@ -378,33 +379,33 @@ static const short yyrhs[] = { -1,
166, 60, 0, 224, 60, 0, 1, 60, 0, 1,
109, 0, 60, 0, 218, 0, 159, 0, 0, 158,
0, 158, 60, 0, 0, 107, 0, 154, 146, 145,
- 333, 0, 154, 146, 357, 0, 154, 146, 1, 0,
- 0, 314, 5, 93, 150, 377, 108, 296, 389, 0,
- 314, 5, 47, 296, 389, 0, 0, 323, 314, 5,
- 93, 151, 377, 108, 296, 389, 0, 323, 314, 5,
- 47, 296, 389, 0, 0, 314, 178, 93, 152, 377,
- 108, 296, 389, 0, 314, 178, 47, 296, 389, 0,
- 0, 323, 314, 178, 93, 153, 377, 108, 296, 389,
- 0, 323, 314, 178, 47, 296, 389, 0, 224, 221,
- 0, 227, 306, 0, 306, 0, 227, 149, 0, 149,
- 0, 5, 93, 377, 108, 296, 389, 0, 5, 47,
- 296, 389, 0, 178, 93, 377, 108, 296, 389, 0,
- 178, 47, 296, 389, 0, 227, 155, 0, 155, 0,
- 224, 221, 0, 227, 306, 0, 306, 0, 227, 149,
+ 334, 0, 154, 146, 358, 0, 154, 146, 1, 0,
+ 0, 315, 5, 93, 150, 378, 108, 297, 390, 0,
+ 315, 5, 47, 297, 390, 0, 0, 324, 315, 5,
+ 93, 151, 378, 108, 297, 390, 0, 324, 315, 5,
+ 47, 297, 390, 0, 0, 315, 178, 93, 152, 378,
+ 108, 297, 390, 0, 315, 178, 47, 297, 390, 0,
+ 0, 324, 315, 178, 93, 153, 378, 108, 297, 390,
+ 0, 324, 315, 178, 47, 297, 390, 0, 224, 221,
+ 0, 227, 307, 0, 307, 0, 227, 149, 0, 149,
+ 0, 5, 93, 378, 108, 297, 390, 0, 5, 47,
+ 297, 390, 0, 178, 93, 378, 108, 297, 390, 0,
+ 178, 47, 297, 390, 0, 227, 155, 0, 155, 0,
+ 224, 221, 0, 227, 307, 0, 307, 0, 227, 149,
0, 149, 0, 25, 3, 0, 157, 251, 0, 157,
93, 195, 108, 0, 157, 47, 0, 62, 160, 161,
0, 0, 0, 162, 0, 161, 59, 162, 0, 161,
1, 0, 93, 195, 108, 0, 47, 0, 164, 93,
- 195, 108, 0, 164, 47, 0, 302, 93, 195, 108,
- 0, 302, 47, 0, 316, 93, 195, 108, 0, 316,
+ 195, 108, 0, 164, 47, 0, 303, 93, 195, 108,
+ 0, 303, 47, 0, 317, 93, 195, 108, 0, 317,
47, 0, 3, 0, 4, 0, 5, 0, 56, 0,
57, 0, 3, 0, 56, 0, 57, 0, 104, 0,
103, 0, 105, 0, 0, 48, 175, 230, 60, 167,
176, 0, 0, 48, 175, 224, 221, 168, 176, 0,
- 0, 48, 175, 306, 169, 176, 0, 0, 48, 175,
+ 0, 48, 175, 307, 169, 176, 0, 0, 48, 175,
149, 170, 176, 0, 0, 7, 48, 175, 230, 60,
171, 176, 0, 0, 7, 48, 175, 224, 221, 172,
- 176, 0, 0, 7, 48, 175, 306, 173, 176, 0,
+ 176, 0, 0, 7, 48, 175, 307, 173, 176, 0,
0, 7, 48, 175, 149, 174, 176, 0, 0, 0,
56, 74, 181, 180, 179, 0, 4, 74, 181, 180,
179, 0, 178, 0, 5, 74, 181, 180, 179, 0,
@@ -413,17 +414,17 @@ static const short yyrhs[] = { -1,
79, 0, 78, 0, 86, 0, 87, 0, 110, 0,
194, 0, 203, 0, 47, 0, 93, 185, 108, 0,
47, 0, 93, 189, 108, 0, 0, 189, 0, 1,
- 0, 0, 367, 221, 235, 244, 64, 190, 252, 0,
- 185, 0, 109, 0, 330, 328, 109, 0, 330, 328,
- 1, 109, 0, 330, 1, 109, 0, 0, 58, 193,
- 191, 0, 342, 0, 203, 59, 203, 0, 203, 59,
+ 0, 0, 368, 221, 235, 244, 64, 190, 252, 0,
+ 185, 0, 109, 0, 331, 329, 109, 0, 331, 329,
+ 1, 109, 0, 331, 1, 109, 0, 0, 58, 193,
+ 191, 0, 343, 0, 203, 59, 203, 0, 203, 59,
1, 0, 194, 59, 203, 0, 194, 59, 1, 0,
203, 0, 194, 0, 212, 0, 118, 202, 0, 80,
202, 0, 70, 202, 0, 88, 202, 0, 184, 202,
0, 67, 163, 0, 13, 196, 0, 13, 93, 223,
108, 0, 29, 196, 0, 29, 93, 223, 108, 0,
- 214, 295, 0, 214, 295, 200, 0, 214, 199, 295,
- 0, 214, 199, 295, 200, 0, 214, 93, 198, 223,
+ 214, 296, 0, 214, 296, 200, 0, 214, 199, 296,
+ 0, 214, 199, 296, 200, 0, 214, 93, 198, 223,
197, 0, 214, 93, 198, 223, 197, 200, 0, 214,
199, 93, 198, 223, 197, 0, 214, 199, 93, 198,
223, 197, 200, 0, 215, 202, 0, 215, 94, 111,
@@ -441,49 +442,49 @@ static const short yyrhs[] = { -1,
203, 72, 203, 0, 203, 71, 203, 0, 203, 70,
203, 0, 203, 68, 203, 0, 203, 69, 203, 0,
203, 67, 203, 0, 203, 66, 203, 0, 203, 65,
- 372, 62, 203, 0, 203, 64, 203, 0, 203, 63,
- 203, 0, 61, 0, 61, 203, 0, 88, 387, 163,
- 0, 88, 387, 177, 0, 206, 0, 394, 0, 3,
+ 373, 62, 203, 0, 203, 64, 203, 0, 203, 63,
+ 203, 0, 61, 0, 61, 203, 0, 88, 388, 163,
+ 0, 88, 388, 177, 0, 206, 0, 395, 0, 3,
0, 56, 0, 57, 0, 0, 6, 74, 205, 181,
- 180, 0, 394, 74, 205, 181, 180, 0, 48, 163,
+ 180, 0, 395, 74, 205, 181, 180, 0, 48, 163,
74, 181, 180, 0, 48, 6, 74, 181, 180, 0,
- 48, 394, 74, 181, 180, 0, 204, 0, 4, 0,
+ 48, 395, 74, 181, 180, 0, 204, 0, 4, 0,
5, 0, 204, 0, 80, 209, 0, 70, 209, 0,
93, 209, 108, 0, 3, 74, 181, 180, 0, 57,
- 74, 182, 180, 0, 308, 0, 204, 0, 210, 0,
+ 74, 182, 180, 0, 309, 0, 204, 0, 210, 0,
93, 209, 108, 0, 204, 0, 10, 0, 216, 0,
217, 0, 93, 185, 108, 0, 93, 209, 108, 0,
- 93, 1, 108, 0, 0, 93, 213, 334, 108, 0,
+ 93, 1, 108, 0, 0, 93, 213, 335, 108, 0,
204, 93, 195, 108, 0, 204, 47, 0, 212, 93,
195, 108, 0, 212, 47, 0, 212, 94, 185, 111,
0, 212, 86, 0, 212, 87, 0, 40, 0, 9,
- 93, 195, 108, 0, 312, 0, 50, 74, 223, 75,
+ 93, 195, 108, 0, 313, 0, 50, 74, 223, 75,
93, 185, 108, 0, 51, 74, 223, 75, 93, 185,
108, 0, 52, 74, 223, 75, 93, 185, 108, 0,
53, 74, 223, 75, 93, 185, 108, 0, 49, 93,
- 185, 108, 0, 49, 93, 223, 108, 0, 323, 3,
- 0, 323, 206, 0, 323, 394, 0, 311, 0, 311,
- 93, 195, 108, 0, 311, 47, 0, 219, 207, 0,
+ 185, 108, 0, 49, 93, 223, 108, 0, 324, 3,
+ 0, 324, 206, 0, 324, 395, 0, 312, 0, 312,
+ 93, 195, 108, 0, 312, 47, 0, 219, 207, 0,
219, 207, 93, 195, 108, 0, 219, 207, 47, 0,
- 219, 208, 0, 219, 311, 0, 219, 208, 93, 195,
- 108, 0, 219, 208, 47, 0, 219, 311, 93, 195,
- 108, 0, 219, 311, 47, 0, 219, 88, 8, 47,
+ 219, 208, 0, 219, 312, 0, 219, 208, 93, 195,
+ 108, 0, 219, 208, 47, 0, 219, 312, 93, 195,
+ 108, 0, 219, 312, 47, 0, 219, 88, 8, 47,
0, 219, 8, 54, 88, 8, 47, 0, 219, 1,
- 0, 39, 0, 323, 39, 0, 38, 0, 323, 215,
+ 0, 39, 0, 324, 39, 0, 38, 0, 324, 215,
0, 42, 0, 43, 0, 11, 0, 217, 11, 0,
0, 212, 92, 0, 212, 91, 0, 230, 232, 60,
0, 224, 232, 60, 0, 227, 233, 60, 0, 224,
- 60, 0, 227, 60, 0, 118, 220, 0, 301, 0,
- 306, 0, 47, 0, 222, 47, 0, 228, 326, 0,
- 297, 326, 0, 230, 326, 0, 228, 0, 297, 0,
+ 60, 0, 227, 60, 0, 118, 220, 0, 302, 0,
+ 307, 0, 47, 0, 222, 47, 0, 228, 327, 0,
+ 298, 327, 0, 230, 327, 0, 228, 0, 298, 0,
228, 0, 225, 0, 227, 230, 0, 230, 226, 0,
230, 229, 226, 0, 227, 230, 226, 0, 227, 230,
229, 0, 227, 230, 229, 226, 0, 7, 0, 226,
231, 0, 226, 7, 0, 226, 245, 0, 245, 0,
- 297, 0, 7, 0, 227, 9, 0, 227, 7, 0,
- 227, 245, 0, 245, 0, 230, 0, 297, 230, 0,
- 230, 229, 0, 297, 230, 229, 0, 231, 0, 229,
- 231, 0, 259, 0, 8, 0, 303, 0, 28, 93,
+ 298, 0, 7, 0, 227, 9, 0, 227, 7, 0,
+ 227, 245, 0, 245, 0, 230, 0, 298, 230, 0,
+ 230, 229, 0, 298, 230, 229, 0, 231, 0, 229,
+ 231, 0, 259, 0, 8, 0, 304, 0, 28, 93,
185, 108, 0, 28, 93, 223, 108, 0, 30, 93,
185, 108, 0, 30, 93, 223, 108, 0, 8, 0,
9, 0, 259, 0, 240, 0, 232, 59, 236, 0,
@@ -491,7 +492,7 @@ static const short yyrhs[] = { -1,
236, 0, 0, 119, 93, 217, 108, 0, 0, 221,
235, 244, 64, 237, 252, 0, 221, 235, 244, 0,
0, 244, 64, 239, 252, 0, 244, 0, 221, 235,
- 238, 0, 306, 235, 238, 0, 0, 306, 235, 243,
+ 238, 0, 307, 235, 238, 0, 0, 307, 235, 243,
238, 0, 149, 235, 244, 0, 0, 245, 0, 246,
0, 245, 246, 0, 31, 93, 93, 247, 108, 108,
0, 248, 0, 247, 59, 248, 0, 0, 249, 0,
@@ -502,231 +503,232 @@ static const short yyrhs[] = { -1,
58, 253, 109, 0, 58, 253, 59, 109, 0, 1,
0, 252, 0, 253, 59, 252, 0, 94, 203, 111,
252, 0, 163, 62, 252, 0, 253, 59, 163, 62,
- 252, 0, 97, 0, 254, 146, 145, 333, 0, 254,
- 146, 357, 0, 254, 146, 1, 0, 0, 256, 255,
+ 252, 0, 97, 0, 254, 146, 145, 334, 0, 254,
+ 146, 358, 0, 254, 146, 1, 0, 0, 256, 255,
147, 0, 102, 203, 107, 0, 102, 1, 107, 0,
0, 258, 257, 0, 258, 1, 0, 0, 14, 163,
- 58, 260, 293, 265, 109, 0, 14, 163, 58, 109,
- 0, 0, 14, 58, 261, 293, 265, 109, 0, 14,
- 58, 109, 0, 14, 163, 0, 14, 321, 0, 45,
- 316, 0, 0, 0, 273, 279, 281, 109, 244, 262,
+ 58, 260, 294, 265, 109, 0, 14, 163, 58, 109,
+ 0, 0, 14, 58, 261, 294, 265, 109, 0, 14,
+ 58, 109, 0, 14, 163, 0, 14, 322, 0, 45,
+ 317, 0, 0, 0, 273, 279, 281, 109, 244, 262,
258, 263, 256, 0, 273, 0, 0, 59, 0, 0,
59, 0, 36, 0, 266, 7, 0, 266, 8, 0,
266, 9, 0, 266, 36, 0, 266, 245, 0, 266,
163, 0, 266, 165, 0, 267, 58, 0, 267, 62,
- 0, 266, 314, 163, 0, 266, 323, 314, 163, 0,
- 266, 323, 163, 0, 266, 177, 0, 266, 314, 177,
- 0, 0, 267, 0, 268, 270, 274, 0, 269, 274,
- 0, 266, 58, 0, 272, 0, 271, 0, 0, 62,
- 387, 0, 62, 387, 275, 0, 276, 0, 275, 59,
- 387, 276, 0, 277, 0, 278, 387, 277, 0, 316,
- 0, 302, 0, 30, 93, 185, 108, 0, 30, 93,
- 223, 108, 0, 37, 387, 0, 7, 387, 0, 278,
- 37, 387, 0, 278, 7, 387, 0, 58, 0, 0,
- 280, 0, 280, 282, 0, 281, 37, 62, 282, 0,
- 281, 37, 62, 0, 283, 0, 282, 283, 0, 284,
- 60, 0, 284, 109, 0, 156, 62, 0, 156, 95,
- 0, 156, 25, 0, 156, 58, 0, 60, 0, 118,
- 283, 0, 134, 283, 0, 134, 224, 60, 0, 224,
- 285, 0, 227, 286, 0, 306, 235, 244, 251, 0,
- 149, 235, 244, 251, 0, 62, 203, 0, 1, 0,
- 227, 155, 235, 244, 251, 0, 155, 235, 244, 251,
- 0, 127, 0, 0, 287, 0, 285, 59, 288, 0,
- 0, 290, 0, 286, 59, 292, 0, 289, 0, 290,
- 0, 291, 0, 292, 0, 301, 235, 244, 251, 0,
- 4, 62, 203, 244, 0, 306, 235, 244, 251, 0,
- 149, 235, 244, 251, 0, 3, 62, 203, 244, 0,
- 62, 203, 244, 0, 301, 235, 244, 251, 0, 4,
- 62, 203, 244, 0, 306, 235, 244, 251, 0, 3,
- 62, 203, 244, 0, 62, 203, 244, 0, 294, 0,
- 293, 59, 294, 0, 163, 0, 163, 64, 203, 0,
- 367, 324, 0, 367, 0, 93, 198, 223, 197, 94,
- 185, 111, 0, 0, 296, 9, 0, 9, 0, 297,
- 9, 0, 0, 298, 185, 0, 298, 93, 195, 108,
- 0, 298, 93, 377, 108, 0, 298, 47, 0, 298,
- 93, 1, 108, 0, 80, 297, 301, 0, 70, 297,
- 301, 0, 80, 301, 0, 70, 301, 0, 322, 296,
- 301, 0, 305, 0, 313, 0, 323, 313, 0, 302,
- 0, 304, 0, 323, 304, 0, 314, 313, 0, 305,
- 300, 296, 389, 0, 305, 94, 299, 111, 0, 305,
- 94, 111, 0, 93, 301, 108, 0, 314, 313, 0,
- 313, 0, 80, 297, 306, 0, 70, 297, 306, 0,
- 80, 306, 0, 70, 306, 0, 322, 296, 306, 0,
- 211, 0, 80, 297, 306, 0, 70, 297, 306, 0,
- 80, 307, 0, 70, 307, 0, 322, 296, 306, 0,
- 308, 0, 211, 300, 296, 389, 0, 93, 307, 108,
- 0, 211, 94, 299, 111, 0, 211, 94, 111, 0,
- 310, 0, 314, 210, 0, 314, 208, 0, 314, 207,
- 0, 314, 204, 0, 314, 207, 0, 310, 0, 323,
- 310, 0, 230, 93, 195, 108, 0, 230, 93, 209,
- 108, 0, 230, 222, 0, 4, 0, 5, 0, 177,
- 0, 315, 0, 314, 315, 0, 314, 48, 320, 54,
- 0, 4, 54, 0, 5, 54, 0, 57, 54, 0,
- 177, 54, 0, 317, 0, 323, 317, 0, 318, 163,
- 0, 318, 177, 0, 318, 320, 0, 318, 48, 320,
- 0, 319, 0, 318, 319, 0, 318, 320, 54, 0,
- 318, 48, 320, 54, 0, 4, 54, 0, 5, 54,
- 0, 177, 54, 0, 56, 54, 0, 3, 54, 0,
- 57, 54, 0, 163, 74, 181, 180, 0, 323, 313,
- 0, 304, 0, 323, 304, 0, 314, 80, 0, 323,
- 314, 80, 0, 54, 0, 80, 296, 324, 0, 80,
- 296, 0, 70, 296, 324, 0, 70, 296, 0, 322,
- 296, 0, 322, 296, 324, 0, 325, 0, 94, 185,
- 111, 0, 325, 94, 299, 111, 0, 80, 297, 326,
- 0, 80, 326, 0, 80, 297, 0, 80, 0, 70,
- 297, 326, 0, 70, 326, 0, 70, 297, 0, 70,
- 0, 322, 296, 0, 322, 296, 326, 0, 327, 0,
- 93, 326, 108, 0, 90, 0, 327, 93, 377, 108,
- 296, 389, 0, 327, 47, 296, 389, 0, 327, 94,
- 299, 111, 0, 327, 94, 111, 0, 93, 378, 108,
- 296, 389, 0, 201, 296, 389, 0, 222, 296, 389,
- 0, 94, 299, 111, 0, 94, 111, 0, 341, 0,
- 329, 0, 328, 341, 0, 328, 329, 0, 1, 60,
- 0, 0, 331, 0, 332, 0, 331, 332, 0, 33,
- 250, 60, 0, 334, 0, 1, 334, 0, 0, 58,
- 335, 191, 0, 0, 0, 15, 337, 187, 338, 339,
- 0, 334, 0, 0, 340, 342, 0, 334, 0, 342,
- 0, 220, 0, 185, 60, 0, 0, 336, 16, 343,
- 339, 0, 336, 0, 0, 0, 17, 344, 187, 345,
- 192, 0, 0, 0, 18, 346, 339, 17, 347, 186,
- 60, 0, 0, 0, 0, 0, 19, 348, 93, 370,
- 349, 188, 60, 350, 372, 108, 351, 192, 0, 0,
- 0, 20, 352, 93, 189, 108, 353, 339, 0, 0,
- 21, 203, 62, 354, 341, 0, 0, 21, 203, 12,
- 203, 62, 355, 341, 0, 0, 22, 62, 356, 341,
- 0, 23, 60, 0, 24, 60, 0, 25, 60, 0,
- 25, 185, 60, 0, 119, 371, 93, 217, 108, 60,
- 0, 119, 371, 93, 217, 62, 373, 108, 60, 0,
- 119, 371, 93, 217, 62, 373, 62, 373, 108, 60,
- 0, 119, 371, 93, 217, 62, 373, 62, 373, 62,
- 376, 108, 60, 0, 26, 80, 185, 60, 0, 26,
- 163, 60, 0, 369, 341, 0, 369, 109, 0, 60,
- 0, 360, 0, 129, 0, 128, 0, 125, 0, 0,
- 0, 95, 358, 145, 334, 359, 363, 0, 0, 0,
- 95, 361, 334, 362, 363, 0, 364, 0, 363, 364,
- 0, 0, 0, 96, 365, 368, 366, 334, 0, 228,
- 0, 297, 0, 93, 12, 108, 0, 93, 386, 108,
- 0, 3, 62, 0, 56, 62, 0, 4, 62, 0,
- 5, 62, 0, 372, 60, 0, 220, 0, 58, 191,
- 0, 0, 9, 0, 0, 185, 0, 1, 0, 0,
- 374, 0, 375, 0, 374, 59, 375, 0, 11, 93,
- 185, 108, 0, 11, 0, 376, 59, 11, 0, 0,
- 378, 0, 223, 0, 382, 0, 383, 12, 0, 382,
- 12, 0, 223, 12, 0, 12, 0, 382, 62, 0,
- 223, 62, 0, 0, 64, 380, 381, 0, 101, 0,
- 252, 0, 384, 0, 386, 379, 0, 383, 385, 0,
- 383, 388, 0, 383, 388, 64, 252, 0, 382, 59,
- 0, 223, 59, 0, 225, 221, 0, 228, 221, 0,
- 230, 221, 0, 225, 326, 0, 225, 0, 227, 306,
- 0, 386, 0, 386, 379, 0, 384, 0, 223, 0,
- 0, 0, 306, 0, 0, 61, 93, 391, 108, 0,
- 61, 47, 0, 223, 0, 390, 0, 391, 59, 390,
- 0, 0, 80, 296, 392, 0, 70, 296, 392, 0,
- 322, 296, 392, 0, 41, 0, 393, 80, 0, 393,
- 81, 0, 393, 82, 0, 393, 78, 0, 393, 79,
- 0, 393, 70, 0, 393, 68, 0, 393, 69, 0,
- 393, 88, 0, 393, 59, 0, 393, 73, 0, 393,
- 74, 0, 393, 75, 0, 393, 72, 0, 393, 63,
- 0, 393, 64, 0, 393, 76, 0, 393, 77, 0,
- 393, 86, 0, 393, 87, 0, 393, 67, 0, 393,
- 66, 0, 393, 110, 0, 393, 65, 62, 0, 393,
- 71, 0, 393, 91, 0, 393, 83, 0, 393, 47,
- 0, 393, 94, 111, 0, 393, 39, 0, 393, 38,
- 0, 393, 39, 94, 111, 0, 393, 38, 94, 111,
- 0, 393, 367, 392, 0, 393, 1, 0
+ 0, 266, 315, 163, 0, 266, 324, 315, 163, 0,
+ 266, 324, 163, 0, 266, 177, 0, 266, 315, 177,
+ 0, 267, 0, 0, 268, 271, 274, 0, 269, 274,
+ 0, 266, 58, 0, 272, 0, 270, 0, 0, 62,
+ 388, 0, 62, 388, 275, 0, 276, 0, 275, 59,
+ 388, 276, 0, 277, 0, 278, 388, 277, 0, 317,
+ 0, 303, 0, 30, 93, 185, 108, 0, 30, 93,
+ 223, 108, 0, 37, 388, 0, 7, 388, 0, 278,
+ 37, 388, 0, 278, 7, 388, 0, 58, 0, 0,
+ 280, 0, 280, 283, 0, 281, 282, 283, 0, 281,
+ 282, 0, 37, 62, 0, 284, 0, 283, 284, 0,
+ 285, 60, 0, 285, 109, 0, 156, 62, 0, 156,
+ 95, 0, 156, 25, 0, 156, 58, 0, 60, 0,
+ 118, 284, 0, 134, 284, 0, 134, 224, 60, 0,
+ 224, 286, 0, 227, 287, 0, 307, 235, 244, 251,
+ 0, 149, 235, 244, 251, 0, 62, 203, 0, 1,
+ 0, 227, 155, 235, 244, 251, 0, 155, 235, 244,
+ 251, 0, 127, 0, 0, 288, 0, 286, 59, 289,
+ 0, 0, 291, 0, 287, 59, 293, 0, 290, 0,
+ 291, 0, 292, 0, 293, 0, 302, 235, 244, 251,
+ 0, 4, 62, 203, 244, 0, 307, 235, 244, 251,
+ 0, 149, 235, 244, 251, 0, 3, 62, 203, 244,
+ 0, 62, 203, 244, 0, 302, 235, 244, 251, 0,
+ 4, 62, 203, 244, 0, 307, 235, 244, 251, 0,
+ 3, 62, 203, 244, 0, 62, 203, 244, 0, 295,
+ 0, 294, 59, 295, 0, 163, 0, 163, 64, 203,
+ 0, 368, 325, 0, 368, 0, 93, 198, 223, 197,
+ 94, 185, 111, 0, 0, 297, 9, 0, 9, 0,
+ 298, 9, 0, 0, 299, 185, 0, 299, 93, 195,
+ 108, 0, 299, 93, 378, 108, 0, 299, 47, 0,
+ 299, 93, 1, 108, 0, 80, 298, 302, 0, 70,
+ 298, 302, 0, 80, 302, 0, 70, 302, 0, 323,
+ 297, 302, 0, 306, 0, 314, 0, 324, 314, 0,
+ 303, 0, 305, 0, 324, 305, 0, 315, 314, 0,
+ 306, 301, 297, 390, 0, 306, 94, 300, 111, 0,
+ 306, 94, 111, 0, 93, 302, 108, 0, 315, 314,
+ 0, 314, 0, 80, 298, 307, 0, 70, 298, 307,
+ 0, 80, 307, 0, 70, 307, 0, 323, 297, 307,
+ 0, 211, 0, 80, 298, 307, 0, 70, 298, 307,
+ 0, 80, 308, 0, 70, 308, 0, 323, 297, 307,
+ 0, 309, 0, 211, 301, 297, 390, 0, 93, 308,
+ 108, 0, 211, 94, 300, 111, 0, 211, 94, 111,
+ 0, 311, 0, 315, 210, 0, 315, 208, 0, 315,
+ 207, 0, 315, 204, 0, 315, 207, 0, 311, 0,
+ 324, 311, 0, 230, 93, 195, 108, 0, 230, 93,
+ 209, 108, 0, 230, 222, 0, 4, 0, 5, 0,
+ 177, 0, 316, 0, 315, 316, 0, 315, 48, 321,
+ 54, 0, 4, 54, 0, 5, 54, 0, 57, 54,
+ 0, 177, 54, 0, 318, 0, 324, 318, 0, 319,
+ 163, 0, 319, 177, 0, 319, 321, 0, 319, 48,
+ 321, 0, 320, 0, 319, 320, 0, 319, 321, 54,
+ 0, 319, 48, 321, 54, 0, 4, 54, 0, 5,
+ 54, 0, 177, 54, 0, 56, 54, 0, 3, 54,
+ 0, 57, 54, 0, 163, 74, 181, 180, 0, 324,
+ 314, 0, 305, 0, 324, 305, 0, 315, 80, 0,
+ 324, 315, 80, 0, 54, 0, 80, 297, 325, 0,
+ 80, 297, 0, 70, 297, 325, 0, 70, 297, 0,
+ 323, 297, 0, 323, 297, 325, 0, 326, 0, 94,
+ 185, 111, 0, 326, 94, 300, 111, 0, 80, 298,
+ 327, 0, 80, 327, 0, 80, 298, 0, 80, 0,
+ 70, 298, 327, 0, 70, 327, 0, 70, 298, 0,
+ 70, 0, 323, 297, 0, 323, 297, 327, 0, 328,
+ 0, 93, 327, 108, 0, 90, 0, 328, 93, 378,
+ 108, 297, 390, 0, 328, 47, 297, 390, 0, 328,
+ 94, 300, 111, 0, 328, 94, 111, 0, 93, 379,
+ 108, 297, 390, 0, 201, 297, 390, 0, 222, 297,
+ 390, 0, 94, 300, 111, 0, 94, 111, 0, 342,
+ 0, 330, 0, 329, 342, 0, 329, 330, 0, 1,
+ 60, 0, 0, 332, 0, 333, 0, 332, 333, 0,
+ 33, 250, 60, 0, 335, 0, 1, 335, 0, 0,
+ 58, 336, 191, 0, 0, 0, 15, 338, 187, 339,
+ 340, 0, 335, 0, 0, 341, 343, 0, 335, 0,
+ 343, 0, 220, 0, 185, 60, 0, 0, 337, 16,
+ 344, 340, 0, 337, 0, 0, 0, 17, 345, 187,
+ 346, 192, 0, 0, 0, 18, 347, 340, 17, 348,
+ 186, 60, 0, 0, 0, 0, 0, 19, 349, 93,
+ 371, 350, 188, 60, 351, 373, 108, 352, 192, 0,
+ 0, 0, 20, 353, 93, 189, 108, 354, 340, 0,
+ 0, 21, 203, 62, 355, 342, 0, 0, 21, 203,
+ 12, 203, 62, 356, 342, 0, 0, 22, 62, 357,
+ 342, 0, 23, 60, 0, 24, 60, 0, 25, 60,
+ 0, 25, 185, 60, 0, 119, 372, 93, 217, 108,
+ 60, 0, 119, 372, 93, 217, 62, 374, 108, 60,
+ 0, 119, 372, 93, 217, 62, 374, 62, 374, 108,
+ 60, 0, 119, 372, 93, 217, 62, 374, 62, 374,
+ 62, 377, 108, 60, 0, 26, 80, 185, 60, 0,
+ 26, 163, 60, 0, 370, 342, 0, 370, 109, 0,
+ 60, 0, 361, 0, 129, 0, 128, 0, 125, 0,
+ 0, 0, 95, 359, 145, 335, 360, 364, 0, 0,
+ 0, 95, 362, 335, 363, 364, 0, 365, 0, 364,
+ 365, 0, 0, 0, 96, 366, 369, 367, 335, 0,
+ 228, 0, 298, 0, 93, 12, 108, 0, 93, 387,
+ 108, 0, 3, 62, 0, 56, 62, 0, 4, 62,
+ 0, 5, 62, 0, 373, 60, 0, 220, 0, 58,
+ 191, 0, 0, 9, 0, 0, 185, 0, 1, 0,
+ 0, 375, 0, 376, 0, 375, 59, 376, 0, 11,
+ 93, 185, 108, 0, 11, 0, 377, 59, 11, 0,
+ 0, 379, 0, 223, 0, 383, 0, 384, 12, 0,
+ 383, 12, 0, 223, 12, 0, 12, 0, 383, 62,
+ 0, 223, 62, 0, 0, 64, 381, 382, 0, 101,
+ 0, 252, 0, 385, 0, 387, 380, 0, 384, 386,
+ 0, 384, 389, 0, 384, 389, 64, 252, 0, 383,
+ 59, 0, 223, 59, 0, 225, 221, 0, 228, 221,
+ 0, 230, 221, 0, 225, 327, 0, 225, 0, 227,
+ 307, 0, 387, 0, 387, 380, 0, 385, 0, 223,
+ 0, 0, 0, 307, 0, 0, 61, 93, 392, 108,
+ 0, 61, 47, 0, 223, 0, 391, 0, 392, 59,
+ 391, 0, 0, 80, 297, 393, 0, 70, 297, 393,
+ 0, 323, 297, 393, 0, 41, 0, 394, 80, 0,
+ 394, 81, 0, 394, 82, 0, 394, 78, 0, 394,
+ 79, 0, 394, 70, 0, 394, 68, 0, 394, 69,
+ 0, 394, 88, 0, 394, 59, 0, 394, 73, 0,
+ 394, 74, 0, 394, 75, 0, 394, 72, 0, 394,
+ 63, 0, 394, 64, 0, 394, 76, 0, 394, 77,
+ 0, 394, 86, 0, 394, 87, 0, 394, 67, 0,
+ 394, 66, 0, 394, 110, 0, 394, 65, 62, 0,
+ 394, 71, 0, 394, 91, 0, 394, 83, 0, 394,
+ 47, 0, 394, 94, 111, 0, 394, 39, 0, 394,
+ 38, 0, 394, 39, 94, 111, 0, 394, 38, 94,
+ 111, 0, 394, 368, 393, 0, 394, 1, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 335, 337, 345, 348, 349, 353, 355, 358, 363, 367,
- 373, 377, 380, 384, 387, 389, 391, 394, 396, 399,
- 402, 404, 406, 408, 410, 411, 413, 414, 418, 421,
- 430, 433, 435, 439, 442, 444, 448, 451, 463, 470,
- 478, 480, 481, 483, 487, 490, 496, 499, 501, 506,
- 509, 513, 516, 519, 522, 526, 531, 541, 543, 545,
- 547, 549, 562, 565, 569, 572, 574, 576, 579, 582,
- 586, 588, 590, 592, 597, 599, 601, 603, 605, 606,
- 613, 614, 615, 618, 621, 625, 627, 628, 631, 633,
- 636, 639, 641, 645, 648, 650, 654, 656, 658, 662,
- 664, 666, 670, 672, 674, 680, 684, 687, 690, 693,
- 698, 701, 703, 705, 711, 721, 723, 726, 729, 731,
- 734, 738, 747, 750, 752, 756, 769, 789, 792, 794,
- 795, 798, 805, 811, 813, 815, 817, 819, 822, 827,
- 829, 830, 831, 832, 835, 837, 838, 841, 843, 844,
- 847, 852, 852, 856, 856, 859, 859, 862, 862, 866,
- 866, 871, 871, 874, 874, 877, 879, 882, 889, 893,
- 896, 899, 905, 914, 916, 924, 927, 930, 933, 937,
- 940, 942, 945, 948, 950, 952, 954, 958, 961, 964,
- 969, 973, 978, 982, 985, 986, 990, 1009, 1016, 1019,
- 1021, 1022, 1023, 1026, 1030, 1031, 1035, 1039, 1042, 1044,
- 1048, 1051, 1054, 1058, 1061, 1063, 1065, 1067, 1070, 1074,
- 1076, 1078, 1080, 1086, 1089, 1092, 1095, 1107, 1112, 1116,
- 1120, 1125, 1127, 1131, 1135, 1137, 1146, 1150, 1153, 1156,
- 1161, 1164, 1166, 1174, 1187, 1192, 1198, 1200, 1202, 1215,
- 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236,
- 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256,
- 1258, 1262, 1264, 1266, 1283, 1286, 1288, 1289, 1290, 1291,
- 1292, 1295, 1298, 1301, 1305, 1308, 1310, 1315, 1317, 1318,
- 1321, 1323, 1325, 1327, 1331, 1334, 1338, 1342, 1343, 1344,
- 1348, 1356, 1357, 1358, 1372, 1374, 1377, 1379, 1390, 1395,
- 1397, 1399, 1401, 1403, 1405, 1407, 1410, 1412, 1456, 1457,
- 1461, 1465, 1469, 1473, 1475, 1479, 1481, 1483, 1491, 1493,
- 1495, 1497, 1501, 1503, 1505, 1507, 1512, 1514, 1516, 1518,
- 1521, 1523, 1525, 1569, 1572, 1576, 1579, 1583, 1586, 1591,
- 1593, 1597, 1610, 1613, 1620, 1627, 1632, 1634, 1639, 1641,
- 1648, 1650, 1654, 1658, 1664, 1668, 1671, 1674, 1677, 1687,
- 1689, 1692, 1696, 1699, 1702, 1705, 1708, 1714, 1720, 1722,
- 1727, 1729, 1738, 1741, 1743, 1746, 1752, 1754, 1764, 1768,
- 1771, 1774, 1779, 1782, 1790, 1792, 1794, 1796, 1799, 1802,
- 1817, 1836, 1839, 1841, 1844, 1846, 1849, 1851, 1854, 1856,
- 1859, 1862, 1866, 1872, 1873, 1885, 1892, 1895, 1901, 1905,
- 1910, 1916, 1917, 1925, 1928, 1932, 1935, 1939, 1944, 1947,
- 1951, 1954, 1956, 1958, 1960, 1967, 1969, 1970, 1971, 1975,
- 1978, 1982, 1985, 1991, 1993, 1996, 1999, 2002, 2008, 2011,
- 2014, 2016, 2018, 2022, 2028, 2036, 2038, 2042, 2044, 2049,
- 2052, 2055, 2057, 2059, 2063, 2068, 2075, 2079, 2083, 2090,
- 2094, 2097, 2100, 2106, 2118, 2120, 2123, 2143, 2145, 2148,
- 2150, 2155, 2157, 2159, 2161, 2163, 2165, 2169, 2174, 2177,
- 2179, 2183, 2189, 2194, 2199, 2201, 2205, 2210, 2213, 2220,
- 2237, 2243, 2245, 2248, 2251, 2253, 2257, 2259, 2263, 2268,
- 2274, 2277, 2278, 2299, 2322, 2324, 2328, 2339, 2353, 2358,
- 2365, 2368, 2376, 2387, 2396, 2400, 2416, 2419, 2424, 2426,
- 2428, 2430, 2432, 2434, 2437, 2439, 2443, 2449, 2451, 2454,
- 2457, 2459, 2470, 2475, 2478, 2483, 2486, 2487, 2498, 2501,
- 2502, 2513, 2515, 2518, 2520, 2523, 2530, 2538, 2545, 2551,
- 2557, 2565, 2569, 2574, 2578, 2581, 2590, 2592, 2596, 2599,
- 2604, 2608, 2614, 2625, 2628, 2632, 2636, 2644, 2649, 2655,
- 2658, 2660, 2662, 2668, 2671, 2673, 2675, 2677, 2681, 2684,
- 2702, 2712, 2714, 2715, 2719, 2724, 2727, 2729, 2731, 2733,
- 2737, 2743, 2746, 2748, 2750, 2752, 2756, 2759, 2762, 2764,
- 2766, 2768, 2772, 2775, 2778, 2780, 2782, 2784, 2786, 2793,
- 2797, 2802, 2806, 2811, 2813, 2817, 2820, 2822, 2825, 2827,
- 2828, 2831, 2833, 2835, 2841, 2856, 2862, 2868, 2882, 2884,
- 2888, 2902, 2904, 2906, 2910, 2916, 2929, 2931, 2935, 2948,
- 2954, 2956, 2957, 2958, 2966, 2971, 2980, 2981, 2985, 2988,
- 2994, 3000, 3003, 3005, 3007, 3009, 3013, 3017, 3021, 3024,
- 3029, 3032, 3034, 3036, 3038, 3040, 3042, 3044, 3046, 3050,
- 3054, 3058, 3062, 3063, 3065, 3067, 3069, 3071, 3073, 3075,
- 3077, 3079, 3087, 3089, 3090, 3091, 3094, 3100, 3102, 3107,
- 3109, 3112, 3126, 3129, 3132, 3136, 3139, 3146, 3148, 3151,
- 3153, 3155, 3158, 3161, 3164, 3167, 3169, 3172, 3176, 3178,
- 3184, 3186, 3187, 3189, 3194, 3196, 3198, 3200, 3202, 3205,
- 3206, 3208, 3211, 3212, 3215, 3215, 3218, 3218, 3221, 3221,
- 3223, 3225, 3227, 3229, 3235, 3241, 3244, 3247, 3253, 3255,
- 3257, 3261, 3263, 3264, 3265, 3267, 3270, 3277, 3282, 3290,
- 3294, 3296, 3299, 3301, 3304, 3308, 3310, 3313, 3315, 3318,
- 3335, 3341, 3349, 3351, 3353, 3357, 3360, 3361, 3369, 3373,
- 3377, 3380, 3381, 3387, 3390, 3393, 3395, 3399, 3404, 3407,
- 3417, 3422, 3423, 3430, 3433, 3436, 3438, 3441, 3443, 3453,
- 3467, 3471, 3474, 3476, 3480, 3484, 3487, 3490, 3492, 3496,
- 3498, 3505, 3512, 3515, 3518, 3522, 3526, 3532, 3536, 3541,
- 3543, 3546, 3551, 3557, 3568, 3571, 3573, 3577, 3582, 3584,
- 3591, 3594, 3596, 3598, 3604, 3609, 3612, 3614, 3616, 3618,
- 3620, 3622, 3624, 3626, 3628, 3630, 3632, 3634, 3636, 3638,
- 3640, 3642, 3644, 3646, 3648, 3650, 3652, 3654, 3656, 3658,
- 3660, 3662, 3664, 3666, 3668, 3670, 3672, 3674, 3677, 3679
+ 334, 336, 344, 347, 348, 352, 354, 357, 362, 366,
+ 372, 376, 379, 383, 386, 388, 390, 393, 395, 398,
+ 401, 403, 405, 407, 409, 410, 412, 413, 417, 420,
+ 429, 432, 434, 438, 441, 443, 447, 450, 462, 469,
+ 477, 479, 480, 482, 486, 489, 495, 498, 500, 505,
+ 508, 512, 515, 518, 521, 525, 530, 540, 542, 544,
+ 546, 548, 561, 564, 568, 571, 573, 575, 578, 581,
+ 585, 587, 589, 591, 596, 598, 600, 602, 604, 605,
+ 612, 613, 614, 617, 620, 624, 626, 627, 630, 632,
+ 635, 638, 640, 644, 647, 649, 653, 655, 657, 661,
+ 663, 665, 669, 671, 673, 679, 683, 686, 689, 692,
+ 697, 700, 702, 704, 710, 720, 722, 725, 728, 730,
+ 733, 737, 746, 749, 751, 755, 768, 788, 791, 793,
+ 794, 797, 804, 810, 812, 814, 816, 818, 821, 826,
+ 828, 829, 830, 831, 834, 836, 837, 840, 842, 843,
+ 846, 851, 851, 855, 855, 858, 858, 861, 861, 865,
+ 865, 870, 870, 873, 873, 876, 878, 881, 888, 892,
+ 895, 898, 904, 913, 915, 923, 926, 929, 932, 936,
+ 939, 941, 944, 947, 949, 951, 953, 957, 960, 963,
+ 968, 972, 977, 981, 984, 985, 989, 1008, 1015, 1018,
+ 1020, 1021, 1022, 1025, 1029, 1030, 1034, 1038, 1041, 1043,
+ 1047, 1050, 1053, 1057, 1060, 1062, 1064, 1066, 1069, 1073,
+ 1075, 1077, 1079, 1085, 1088, 1091, 1094, 1106, 1111, 1115,
+ 1119, 1124, 1126, 1130, 1134, 1136, 1145, 1149, 1152, 1155,
+ 1160, 1163, 1165, 1173, 1186, 1191, 1197, 1199, 1201, 1214,
+ 1217, 1219, 1221, 1223, 1225, 1227, 1229, 1231, 1233, 1235,
+ 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253, 1255,
+ 1257, 1261, 1263, 1265, 1282, 1285, 1287, 1288, 1289, 1290,
+ 1291, 1294, 1297, 1300, 1304, 1307, 1309, 1314, 1316, 1317,
+ 1320, 1322, 1324, 1326, 1330, 1333, 1337, 1341, 1342, 1343,
+ 1347, 1355, 1356, 1357, 1371, 1373, 1376, 1378, 1389, 1394,
+ 1396, 1398, 1400, 1402, 1404, 1406, 1409, 1411, 1455, 1456,
+ 1460, 1464, 1468, 1472, 1474, 1478, 1480, 1482, 1490, 1492,
+ 1494, 1496, 1500, 1502, 1504, 1506, 1511, 1513, 1515, 1517,
+ 1520, 1522, 1524, 1568, 1571, 1575, 1578, 1582, 1585, 1590,
+ 1592, 1596, 1609, 1612, 1619, 1626, 1631, 1633, 1638, 1640,
+ 1647, 1649, 1653, 1657, 1663, 1667, 1670, 1673, 1676, 1686,
+ 1688, 1691, 1695, 1698, 1701, 1704, 1707, 1713, 1719, 1721,
+ 1726, 1728, 1737, 1740, 1742, 1745, 1751, 1753, 1763, 1767,
+ 1770, 1773, 1778, 1781, 1789, 1791, 1793, 1795, 1798, 1801,
+ 1816, 1835, 1838, 1840, 1843, 1845, 1849, 1851, 1855, 1857,
+ 1861, 1864, 1868, 1874, 1875, 1887, 1894, 1897, 1903, 1907,
+ 1912, 1918, 1919, 1927, 1930, 1934, 1937, 1941, 1946, 1949,
+ 1953, 1956, 1958, 1960, 1962, 1969, 1971, 1972, 1973, 1977,
+ 1980, 1984, 1987, 1993, 1995, 1998, 2001, 2004, 2010, 2013,
+ 2016, 2018, 2020, 2024, 2030, 2038, 2040, 2044, 2046, 2051,
+ 2054, 2057, 2059, 2061, 2065, 2070, 2077, 2081, 2085, 2092,
+ 2096, 2099, 2102, 2108, 2120, 2122, 2125, 2145, 2147, 2150,
+ 2152, 2157, 2159, 2161, 2163, 2165, 2167, 2171, 2179, 2182,
+ 2184, 2188, 2194, 2199, 2204, 2206, 2210, 2213, 2215, 2221,
+ 2238, 2244, 2246, 2249, 2252, 2254, 2258, 2260, 2264, 2269,
+ 2275, 2278, 2279, 2300, 2323, 2325, 2329, 2340, 2354, 2359,
+ 2366, 2368, 2369, 2370, 2373, 2388, 2393, 2399, 2401, 2406,
+ 2408, 2410, 2412, 2414, 2416, 2419, 2429, 2436, 2461, 2467,
+ 2470, 2473, 2475, 2486, 2491, 2494, 2499, 2502, 2509, 2519,
+ 2522, 2529, 2539, 2541, 2544, 2546, 2549, 2556, 2564, 2571,
+ 2577, 2583, 2591, 2595, 2600, 2604, 2607, 2616, 2618, 2622,
+ 2625, 2630, 2634, 2640, 2651, 2654, 2658, 2662, 2670, 2675,
+ 2681, 2684, 2686, 2688, 2694, 2697, 2699, 2701, 2703, 2707,
+ 2710, 2728, 2738, 2740, 2741, 2745, 2750, 2753, 2755, 2757,
+ 2759, 2763, 2769, 2772, 2774, 2776, 2778, 2782, 2785, 2788,
+ 2790, 2792, 2794, 2798, 2801, 2804, 2806, 2808, 2810, 2812,
+ 2819, 2823, 2828, 2832, 2837, 2839, 2843, 2846, 2848, 2851,
+ 2853, 2854, 2857, 2859, 2861, 2867, 2882, 2888, 2894, 2908,
+ 2910, 2914, 2928, 2930, 2932, 2936, 2942, 2955, 2957, 2961,
+ 2974, 2980, 2982, 2983, 2984, 2992, 2997, 3006, 3007, 3011,
+ 3014, 3020, 3026, 3029, 3031, 3033, 3035, 3039, 3043, 3047,
+ 3050, 3055, 3058, 3060, 3062, 3064, 3066, 3068, 3070, 3072,
+ 3076, 3080, 3084, 3088, 3089, 3091, 3093, 3095, 3097, 3099,
+ 3101, 3103, 3105, 3113, 3115, 3116, 3117, 3120, 3126, 3128,
+ 3133, 3135, 3138, 3152, 3155, 3158, 3162, 3165, 3172, 3174,
+ 3177, 3179, 3181, 3184, 3187, 3190, 3193, 3195, 3198, 3202,
+ 3204, 3210, 3212, 3213, 3215, 3220, 3222, 3224, 3226, 3228,
+ 3231, 3232, 3234, 3237, 3238, 3241, 3241, 3244, 3244, 3247,
+ 3247, 3249, 3251, 3253, 3255, 3261, 3267, 3270, 3273, 3279,
+ 3281, 3283, 3287, 3289, 3290, 3291, 3293, 3296, 3303, 3308,
+ 3316, 3320, 3322, 3325, 3327, 3330, 3334, 3336, 3339, 3341,
+ 3344, 3361, 3367, 3375, 3377, 3379, 3383, 3386, 3387, 3395,
+ 3399, 3403, 3406, 3407, 3413, 3416, 3419, 3421, 3425, 3430,
+ 3433, 3443, 3448, 3449, 3456, 3459, 3462, 3464, 3467, 3469,
+ 3479, 3493, 3497, 3500, 3502, 3506, 3510, 3513, 3516, 3518,
+ 3522, 3524, 3531, 3538, 3541, 3544, 3548, 3552, 3558, 3562,
+ 3567, 3569, 3572, 3577, 3583, 3594, 3597, 3599, 3603, 3608,
+ 3610, 3617, 3620, 3622, 3624, 3630, 3635, 3638, 3640, 3642,
+ 3644, 3646, 3648, 3650, 3652, 3654, 3656, 3658, 3660, 3662,
+ 3664, 3666, 3668, 3670, 3672, 3674, 3676, 3678, 3680, 3682,
+ 3684, 3686, 3688, 3690, 3692, 3694, 3696, 3698, 3700, 3703,
+ 3705
};
#endif
@@ -775,10 +777,10 @@ static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER"
"pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
"@29","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
"named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
-"do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
+"named_class_head","@30","unnamed_class_head","class_head","maybe_base_class_list",
"base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
-"self_reference","opt.component_decl_list","component_decl_list","component_decl",
-"component_decl_1","components","notype_components","component_declarator0",
+"self_reference","opt.component_decl_list","access_specifier","component_decl_list",
+"component_decl","component_decl_1","components","notype_components","component_declarator0",
"component_declarator","after_type_component_declarator0","notype_component_declarator0",
"after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
"new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
@@ -789,13 +791,13 @@ static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER"
"typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
"complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
-"label_decls","label_decl","compstmt_or_error","compstmt","@30","simple_if",
-"@31","@32","implicitly_scoped_stmt","@33","stmt","simple_stmt","@34","@35",
-"@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","function_try_block",
-"@48","@49","try_block","@50","@51","handler_seq","handler","@52","@53","type_specifier_seq",
+"label_decls","label_decl","compstmt_or_error","compstmt","@31","simple_if",
+"@32","@33","implicitly_scoped_stmt","@34","stmt","simple_stmt","@35","@36",
+"@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","function_try_block",
+"@49","@50","try_block","@51","@52","handler_seq","handler","@53","@54","type_specifier_seq",
"handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
"asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"complex_parmlist","defarg","@54","defarg1","parms","parms_comma","named_parm",
+"complex_parmlist","defarg","@55","defarg1","parms","parms_comma","named_parm",
"full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
"ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
};
@@ -851,44 +853,45 @@ static const short yyr1[] = { 0,
257, 258, 258, 258, 260, 259, 259, 261, 259, 259,
259, 259, 259, 262, 263, 259, 259, 264, 264, 265,
265, 266, 266, 266, 266, 266, 266, 267, 268, 268,
- 268, 269, 269, 269, 269, 269, 270, 271, 271, 271,
+ 268, 269, 269, 269, 269, 269, 270, 271, 270, 270,
272, 273, 273, 274, 274, 274, 275, 275, 276, 276,
277, 277, 277, 277, 278, 278, 278, 278, 279, 280,
- 281, 281, 281, 281, 282, 282, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 283, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 285, 285, 285, 286, 286,
- 286, 287, 287, 288, 288, 289, 289, 290, 290, 290,
- 290, 291, 291, 292, 292, 292, 293, 293, 294, 294,
- 295, 295, 295, 296, 296, 297, 297, 298, 299, 300,
- 300, 300, 300, 301, 301, 301, 301, 301, 301, 302,
- 302, 303, 303, 303, 304, 305, 305, 305, 305, 305,
- 305, 306, 306, 306, 306, 306, 306, 307, 307, 307,
- 307, 307, 307, 308, 308, 308, 308, 308, 308, 309,
- 309, 310, 310, 311, 311, 312, 312, 312, 313, 313,
- 313, 314, 314, 314, 315, 315, 315, 315, 316, 316,
- 317, 317, 317, 317, 318, 318, 318, 318, 319, 319,
- 319, 319, 319, 319, 320, 321, 321, 321, 322, 322,
- 323, 324, 324, 324, 324, 324, 324, 324, 325, 325,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 281, 281, 281, 281, 282, 283, 283, 284, 284, 284,
+ 284, 284, 284, 284, 284, 284, 284, 285, 285, 285,
+ 285, 285, 285, 285, 285, 285, 286, 286, 286, 287,
+ 287, 287, 288, 288, 289, 289, 290, 290, 291, 291,
+ 291, 291, 292, 292, 293, 293, 293, 294, 294, 295,
+ 295, 296, 296, 296, 297, 297, 298, 298, 299, 300,
+ 301, 301, 301, 301, 302, 302, 302, 302, 302, 302,
+ 303, 303, 304, 304, 304, 305, 306, 306, 306, 306,
+ 306, 306, 307, 307, 307, 307, 307, 307, 308, 308,
+ 308, 308, 308, 308, 309, 309, 309, 309, 309, 309,
+ 310, 310, 311, 311, 312, 312, 313, 313, 313, 314,
+ 314, 314, 315, 315, 315, 316, 316, 316, 316, 317,
+ 317, 318, 318, 318, 318, 319, 319, 319, 319, 320,
+ 320, 320, 320, 320, 320, 321, 322, 322, 322, 323,
+ 323, 324, 325, 325, 325, 325, 325, 325, 325, 326,
326, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 328, 328, 328, 328, 329, 330, 330, 331,
- 331, 332, 333, 333, 335, 334, 337, 338, 336, 339,
- 340, 339, 341, 341, 342, 342, 343, 342, 342, 344,
- 345, 342, 346, 347, 342, 348, 349, 350, 351, 342,
- 352, 353, 342, 354, 342, 355, 342, 356, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 358, 359, 357, 361,
- 362, 360, 363, 363, 365, 366, 364, 367, 367, 368,
- 368, 369, 369, 369, 369, 370, 370, 370, 371, 371,
- 372, 372, 372, 373, 373, 374, 374, 375, 376, 376,
- 377, 377, 377, 378, 378, 378, 378, 378, 378, 378,
- 380, 379, 381, 381, 382, 382, 382, 382, 382, 383,
- 383, 384, 384, 384, 384, 384, 384, 385, 385, 386,
- 386, 387, 388, 388, 389, 389, 389, 390, 391, 391,
- 392, 392, 392, 392, 393, 394, 394, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394
+ 327, 327, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 329, 329, 329, 329, 330, 331, 331,
+ 332, 332, 333, 334, 334, 336, 335, 338, 339, 337,
+ 340, 341, 340, 342, 342, 343, 343, 344, 343, 343,
+ 345, 346, 343, 347, 348, 343, 349, 350, 351, 352,
+ 343, 353, 354, 343, 355, 343, 356, 343, 357, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 359, 360, 358,
+ 362, 363, 361, 364, 364, 366, 367, 365, 368, 368,
+ 369, 369, 370, 370, 370, 370, 371, 371, 371, 372,
+ 372, 373, 373, 373, 374, 374, 375, 375, 376, 377,
+ 377, 378, 378, 378, 379, 379, 379, 379, 379, 379,
+ 379, 381, 380, 382, 382, 383, 383, 383, 383, 383,
+ 384, 384, 385, 385, 385, 385, 385, 385, 386, 386,
+ 387, 387, 388, 389, 389, 390, 390, 390, 391, 392,
+ 392, 393, 393, 393, 393, 394, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395
};
static const short yyr2[] = { 0,
@@ -941,99 +944,100 @@ static const short yyr2[] = { 0,
3, 0, 2, 2, 0, 7, 4, 0, 6, 3,
2, 2, 2, 0, 0, 9, 1, 0, 1, 0,
1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 3, 4, 3, 2, 3, 0, 1, 3, 2,
+ 2, 3, 4, 3, 2, 3, 1, 0, 3, 2,
2, 1, 1, 0, 2, 3, 1, 4, 1, 3,
1, 1, 4, 4, 2, 2, 3, 3, 1, 0,
- 1, 2, 4, 3, 1, 2, 2, 2, 2, 2,
- 2, 2, 1, 2, 2, 3, 2, 2, 4, 4,
- 2, 1, 5, 4, 1, 0, 1, 3, 0, 1,
- 3, 1, 1, 1, 1, 4, 4, 4, 4, 4,
- 3, 4, 4, 4, 4, 3, 1, 3, 1, 3,
- 2, 1, 7, 0, 2, 1, 2, 0, 2, 4,
- 4, 2, 4, 3, 3, 2, 2, 3, 1, 1,
- 2, 1, 1, 2, 2, 4, 4, 3, 3, 2,
- 1, 3, 3, 2, 2, 3, 1, 3, 3, 2,
- 2, 3, 1, 4, 3, 4, 3, 1, 2, 2,
- 2, 2, 2, 1, 2, 4, 4, 2, 1, 1,
- 1, 1, 2, 4, 2, 2, 2, 2, 1, 2,
- 2, 2, 2, 3, 1, 2, 3, 4, 2, 2,
- 2, 2, 2, 2, 4, 2, 1, 2, 2, 3,
- 1, 3, 2, 3, 2, 2, 3, 1, 3, 4,
- 3, 2, 2, 1, 3, 2, 2, 1, 2, 3,
- 1, 3, 1, 6, 4, 4, 3, 5, 3, 3,
- 3, 2, 1, 1, 2, 2, 2, 0, 1, 1,
- 2, 3, 1, 2, 0, 3, 0, 0, 5, 1,
- 0, 2, 1, 1, 1, 2, 0, 4, 1, 0,
- 0, 5, 0, 0, 7, 0, 0, 0, 0, 12,
- 0, 0, 7, 0, 5, 0, 7, 0, 4, 2,
- 2, 2, 3, 6, 8, 10, 12, 4, 3, 2,
- 2, 1, 1, 1, 1, 1, 0, 0, 6, 0,
- 0, 5, 1, 2, 0, 0, 5, 1, 1, 3,
- 3, 2, 2, 2, 2, 2, 1, 2, 0, 1,
- 0, 1, 1, 0, 1, 1, 3, 4, 1, 3,
- 0, 1, 1, 1, 2, 2, 2, 1, 2, 2,
- 0, 3, 1, 1, 1, 2, 2, 2, 4, 2,
- 2, 2, 2, 2, 2, 1, 2, 1, 2, 1,
- 1, 0, 0, 1, 0, 4, 2, 1, 1, 3,
- 0, 3, 3, 3, 1, 2, 2, 2, 2, 2,
+ 1, 2, 3, 2, 2, 1, 2, 2, 2, 2,
+ 2, 2, 2, 1, 2, 2, 3, 2, 2, 4,
+ 4, 2, 1, 5, 4, 1, 0, 1, 3, 0,
+ 1, 3, 1, 1, 1, 1, 4, 4, 4, 4,
+ 4, 3, 4, 4, 4, 4, 3, 1, 3, 1,
+ 3, 2, 1, 7, 0, 2, 1, 2, 0, 2,
+ 4, 4, 2, 4, 3, 3, 2, 2, 3, 1,
+ 1, 2, 1, 1, 2, 2, 4, 4, 3, 3,
+ 2, 1, 3, 3, 2, 2, 3, 1, 3, 3,
+ 2, 2, 3, 1, 4, 3, 4, 3, 1, 2,
+ 2, 2, 2, 2, 1, 2, 4, 4, 2, 1,
+ 1, 1, 1, 2, 4, 2, 2, 2, 2, 1,
+ 2, 2, 2, 2, 3, 1, 2, 3, 4, 2,
+ 2, 2, 2, 2, 2, 4, 2, 1, 2, 2,
+ 3, 1, 3, 2, 3, 2, 2, 3, 1, 3,
+ 4, 3, 2, 2, 1, 3, 2, 2, 1, 2,
+ 3, 1, 3, 1, 6, 4, 4, 3, 5, 3,
+ 3, 3, 2, 1, 1, 2, 2, 2, 0, 1,
+ 1, 2, 3, 1, 2, 0, 3, 0, 0, 5,
+ 1, 0, 2, 1, 1, 1, 2, 0, 4, 1,
+ 0, 0, 5, 0, 0, 7, 0, 0, 0, 0,
+ 12, 0, 0, 7, 0, 5, 0, 7, 0, 4,
+ 2, 2, 2, 3, 6, 8, 10, 12, 4, 3,
+ 2, 2, 1, 1, 1, 1, 1, 0, 0, 6,
+ 0, 0, 5, 1, 2, 0, 0, 5, 1, 1,
+ 3, 3, 2, 2, 2, 2, 2, 1, 2, 0,
+ 1, 0, 1, 1, 0, 1, 1, 3, 4, 1,
+ 3, 0, 1, 1, 1, 2, 2, 2, 1, 2,
+ 2, 0, 3, 1, 1, 1, 2, 2, 2, 4,
+ 2, 2, 2, 2, 2, 2, 1, 2, 1, 2,
+ 1, 1, 0, 0, 1, 0, 4, 2, 1, 1,
+ 3, 0, 3, 3, 3, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
- 2, 2, 2, 3, 2, 2, 4, 4, 3, 2
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
+ 2, 2, 2, 2, 3, 2, 2, 4, 4, 3,
+ 2
};
static const short yydefact[] = { 3,
- 12, 12, 5, 0, 4, 0, 279, 629, 630, 0,
- 384, 396, 576, 0, 11, 0, 0, 0, 10, 482,
- 835, 0, 0, 0, 167, 661, 280, 281, 83, 0,
- 0, 822, 0, 45, 0, 0, 13, 25, 0, 27,
- 8, 0, 16, 15, 89, 110, 86, 0, 631, 171,
- 298, 277, 299, 607, 0, 371, 0, 370, 389, 0,
- 409, 388, 426, 395, 0, 498, 497, 504, 503, 502,
- 477, 383, 592, 397, 593, 108, 297, 618, 590, 0,
- 632, 574, 0, 0, 278, 81, 82, 176, 635, 176,
- 636, 176, 282, 167, 140, 141, 142, 143, 144, 468,
- 471, 0, 657, 0, 472, 0, 0, 0, 0, 141,
+ 12, 12, 5, 0, 4, 0, 279, 630, 631, 0,
+ 384, 396, 577, 0, 11, 0, 0, 0, 10, 482,
+ 836, 0, 0, 0, 167, 662, 280, 281, 83, 0,
+ 0, 823, 0, 45, 0, 0, 13, 25, 0, 27,
+ 8, 0, 16, 15, 89, 110, 86, 0, 632, 171,
+ 298, 277, 299, 608, 0, 371, 0, 370, 389, 0,
+ 409, 388, 426, 395, 0, 497, 498, 504, 503, 502,
+ 477, 383, 593, 397, 594, 108, 297, 619, 591, 0,
+ 633, 575, 0, 0, 278, 81, 82, 176, 636, 176,
+ 637, 176, 282, 167, 140, 141, 142, 143, 144, 468,
+ 471, 0, 658, 0, 472, 0, 0, 0, 0, 141,
142, 143, 144, 23, 0, 0, 0, 0, 0, 0,
- 0, 473, 639, 0, 645, 0, 0, 0, 37, 0,
- 0, 31, 0, 0, 47, 0, 176, 637, 0, 0,
- 605, 0, 0, 0, 604, 0, 0, 0, 0, 298,
- 0, 578, 0, 297, 574, 28, 0, 26, 3, 46,
+ 0, 473, 640, 0, 646, 0, 0, 0, 37, 0,
+ 0, 31, 0, 0, 47, 0, 176, 638, 0, 0,
+ 606, 0, 0, 0, 605, 0, 0, 0, 0, 298,
+ 0, 579, 0, 297, 575, 28, 0, 26, 3, 46,
0, 64, 384, 0, 0, 8, 67, 63, 66, 89,
0, 0, 0, 395, 90, 14, 0, 424, 0, 0,
- 442, 87, 79, 638, 578, 0, 574, 80, 0, 0,
- 0, 106, 0, 405, 361, 589, 362, 601, 0, 574,
+ 442, 87, 79, 639, 579, 0, 575, 80, 0, 0,
+ 0, 106, 0, 405, 361, 590, 362, 602, 0, 575,
386, 385, 78, 109, 372, 0, 407, 387, 107, 378,
402, 403, 373, 391, 393, 382, 404, 0, 75, 427,
483, 484, 485, 486, 501, 149, 148, 150, 488, 489,
- 495, 487, 0, 0, 490, 491, 504, 822, 500, 519,
- 520, 577, 390, 0, 421, 630, 0, 659, 171, 622,
- 623, 619, 595, 633, 0, 594, 591, 0, 870, 866,
- 865, 863, 845, 850, 851, 0, 857, 856, 842, 843,
- 841, 860, 849, 846, 847, 848, 852, 853, 839, 840,
- 836, 837, 838, 862, 854, 855, 844, 861, 0, 858,
- 768, 389, 769, 831, 282, 279, 576, 302, 350, 0,
+ 495, 487, 0, 0, 490, 491, 504, 823, 500, 519,
+ 520, 578, 390, 0, 421, 631, 0, 660, 171, 623,
+ 624, 620, 596, 634, 0, 595, 592, 0, 871, 867,
+ 866, 864, 846, 851, 852, 0, 858, 857, 843, 844,
+ 842, 861, 850, 847, 848, 849, 853, 854, 840, 841,
+ 837, 838, 839, 863, 855, 856, 845, 862, 0, 859,
+ 769, 389, 770, 832, 282, 279, 577, 302, 350, 0,
0, 0, 0, 346, 344, 317, 348, 349, 0, 0,
0, 0, 0, 280, 281, 273, 0, 0, 184, 183,
0, 185, 186, 0, 0, 187, 0, 0, 177, 178,
0, 247, 0, 250, 182, 301, 213, 0, 0, 303,
- 304, 0, 180, 368, 389, 369, 624, 329, 319, 0,
- 0, 0, 0, 176, 0, 470, 0, 465, 0, 658,
- 656, 0, 188, 189, 0, 0, 0, 431, 3, 21,
- 29, 653, 649, 650, 652, 654, 651, 140, 141, 142,
- 0, 143, 144, 641, 642, 646, 643, 640, 0, 289,
- 290, 288, 621, 620, 33, 32, 49, 0, 157, 0,
- 0, 389, 155, 0, 0, 603, 0, 602, 141, 142,
- 275, 276, 293, 0, 611, 292, 0, 610, 0, 300,
- 615, 0, 0, 12, 0, 167, 9, 9, 70, 0,
+ 304, 0, 180, 368, 389, 369, 625, 329, 319, 0,
+ 0, 0, 0, 176, 0, 470, 0, 465, 0, 659,
+ 657, 0, 188, 189, 0, 0, 0, 431, 3, 21,
+ 29, 654, 650, 651, 653, 655, 652, 140, 141, 142,
+ 0, 143, 144, 642, 643, 647, 644, 641, 0, 289,
+ 290, 288, 622, 621, 33, 32, 49, 0, 157, 0,
+ 0, 389, 155, 0, 0, 604, 0, 603, 141, 142,
+ 275, 276, 293, 0, 612, 292, 0, 611, 0, 300,
+ 616, 0, 0, 12, 0, 167, 9, 9, 70, 0,
65, 0, 0, 71, 74, 0, 423, 425, 122, 93,
- 127, 757, 0, 85, 84, 92, 125, 0, 0, 123,
- 88, 617, 0, 0, 582, 0, 825, 0, 587, 0,
- 586, 0, 0, 0, 0, 574, 424, 0, 77, 578,
- 574, 600, 0, 375, 376, 0, 76, 424, 380, 379,
+ 127, 758, 0, 85, 84, 92, 125, 0, 0, 123,
+ 88, 618, 0, 0, 583, 0, 826, 0, 588, 0,
+ 587, 0, 0, 0, 0, 575, 424, 0, 77, 579,
+ 575, 601, 0, 375, 376, 0, 76, 424, 380, 379,
381, 374, 394, 411, 410, 492, 496, 494, 0, 499,
- 505, 0, 0, 392, 424, 574, 94, 0, 0, 0,
- 0, 574, 100, 575, 606, 630, 660, 171, 0, 0,
- 859, 864, 391, 574, 574, 0, 574, 869, 176, 0,
+ 505, 0, 0, 392, 424, 575, 94, 0, 0, 0,
+ 0, 575, 100, 576, 607, 631, 661, 171, 0, 0,
+ 860, 865, 391, 575, 575, 0, 575, 870, 176, 0,
0, 0, 220, 0, 0, 222, 235, 236, 0, 0,
0, 0, 0, 274, 219, 216, 215, 217, 0, 0,
0, 0, 0, 301, 0, 0, 0, 214, 174, 175,
@@ -1041,1098 +1045,1067 @@ static const short yydefact[] = { 3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 311, 0,
313, 315, 316, 354, 353, 0, 0, 238, 238, 0,
- 224, 572, 0, 232, 351, 343, 0, 0, 822, 332,
- 335, 336, 0, 0, 363, 678, 674, 683, 0, 578,
- 574, 574, 574, 365, 681, 0, 628, 367, 0, 0,
- 366, 331, 0, 326, 345, 327, 347, 625, 0, 328,
- 173, 173, 0, 165, 0, 389, 163, 569, 480, 567,
+ 224, 573, 0, 232, 351, 343, 0, 0, 823, 332,
+ 335, 336, 0, 0, 363, 679, 675, 684, 0, 579,
+ 575, 575, 575, 365, 682, 0, 629, 367, 0, 0,
+ 366, 331, 0, 326, 345, 327, 347, 626, 0, 328,
+ 173, 173, 0, 165, 0, 389, 163, 570, 480, 568,
467, 0, 0, 398, 0, 0, 399, 400, 401, 437,
- 438, 439, 436, 0, 429, 432, 0, 3, 0, 644,
- 176, 647, 0, 41, 42, 0, 53, 0, 0, 57,
- 61, 50, 821, 816, 0, 368, 389, 53, 369, 820,
- 59, 168, 153, 151, 168, 173, 296, 609, 608, 300,
- 612, 0, 18, 20, 89, 9, 9, 73, 72, 0,
- 128, 352, 0, 705, 91, 703, 448, 0, 444, 443,
- 212, 0, 211, 579, 616, 0, 798, 0, 793, 389,
- 0, 792, 794, 823, 805, 0, 0, 614, 585, 584,
- 0, 0, 599, 0, 419, 418, 406, 598, 0, 825,
- 588, 377, 408, 420, 424, 493, 629, 630, 822, 0,
- 822, 631, 506, 507, 509, 822, 512, 511, 0, 542,
- 630, 0, 533, 0, 0, 545, 0, 121, 116, 0,
- 171, 546, 549, 0, 525, 0, 119, 0, 424, 422,
- 825, 791, 176, 176, 634, 176, 825, 791, 574, 97,
- 574, 103, 868, 867, 831, 831, 831, 0, 0, 0,
- 0, 628, 0, 0, 0, 0, 389, 0, 0, 0,
- 307, 0, 305, 306, 0, 245, 179, 279, 629, 630,
- 280, 281, 0, 0, 449, 478, 0, 272, 271, 783,
- 782, 0, 269, 268, 266, 267, 265, 264, 263, 260,
- 261, 262, 258, 259, 253, 254, 255, 256, 257, 251,
- 252, 0, 0, 0, 0, 0, 238, 226, 242, 0,
- 0, 225, 574, 574, 0, 574, 571, 668, 0, 0,
- 0, 0, 0, 334, 0, 338, 0, 340, 0, 677,
- 676, 673, 672, 821, 0, 0, 692, 0, 0, 825,
- 364, 825, 679, 574, 791, 578, 678, 674, 0, 0,
- 574, 0, 0, 0, 0, 0, 170, 172, 283, 168,
- 161, 159, 168, 0, 481, 0, 480, 210, 209, 208,
- 207, 431, 0, 0, 24, 0, 0, 648, 0, 38,
- 44, 43, 55, 52, 53, 0, 48, 0, 0, 678,
- 674, 0, 812, 574, 815, 817, 0, 813, 814, 54,
- 488, 0, 158, 168, 168, 156, 169, 17, 19, 69,
- 89, 412, 145, 133, 146, 147, 0, 126, 129, 0,
- 0, 0, 0, 704, 698, 445, 0, 124, 583, 580,
- 797, 811, 800, 0, 581, 796, 810, 799, 795, 824,
- 807, 818, 808, 801, 806, 827, 0, 416, 597, 596,
- 415, 516, 0, 515, 822, 822, 822, 0, 574, 791,
- 541, 534, 546, 535, 424, 424, 531, 532, 529, 530,
- 574, 791, 279, 629, 0, 411, 117, 537, 547, 552,
- 553, 411, 411, 0, 0, 411, 115, 538, 550, 411,
- 526, 527, 528, 424, 0, 474, 96, 0, 0, 0,
- 0, 102, 0, 825, 791, 825, 791, 833, 832, 834,
- 284, 318, 221, 223, 324, 325, 0, 0, 0, 0,
- 306, 309, 0, 0, 0, 0, 246, 0, 310, 312,
- 314, 0, 0, 0, 0, 227, 244, 0, 0, 665,
- 663, 0, 666, 578, 233, 0, 0, 176, 341, 0,
- 0, 0, 675, 671, 682, 574, 691, 689, 690, 680,
- 825, 0, 687, 0, 626, 627, 0, 330, 166, 168,
- 168, 164, 570, 568, 469, 0, 430, 428, 279, 0,
- 22, 30, 655, 56, 51, 58, 62, 677, 673, 678,
- 674, 0, 590, 0, 574, 679, 60, 154, 152, 68,
- 0, 131, 0, 135, 0, 137, 0, 139, 0, 758,
- 0, 200, 706, 0, 699, 700, 0, 446, 678, 674,
- 0, 301, 0, 624, 819, 0, 0, 828, 829, 0,
- 0, 413, 0, 0, 0, 518, 517, 510, 825, 0,
- 536, 442, 442, 825, 0, 0, 0, 424, 424, 0,
- 424, 424, 0, 424, 0, 442, 0, 462, 574, 286,
- 285, 287, 574, 99, 0, 105, 0, 0, 0, 0,
- 0, 0, 452, 0, 450, 249, 270, 240, 239, 237,
- 228, 0, 241, 243, 664, 662, 669, 667, 0, 234,
- 0, 0, 333, 337, 339, 825, 685, 574, 686, 162,
- 160, 466, 0, 433, 435, 677, 673, 595, 679, 132,
- 130, 0, 0, 0, 0, 440, 0, 0, 279, 629,
- 630, 707, 720, 723, 726, 731, 0, 0, 0, 0,
- 0, 0, 0, 0, 280, 752, 760, 0, 779, 756,
- 755, 754, 0, 715, 0, 0, 389, 0, 694, 713,
- 719, 693, 714, 753, 0, 701, 447, 0, 627, 809,
- 803, 804, 802, 0, 826, 417, 0, 513, 514, 508,
- 112, 574, 540, 544, 114, 574, 424, 424, 561, 442,
- 279, 629, 0, 548, 554, 555, 411, 411, 442, 442,
- 0, 442, 551, 539, 0, 825, 825, 574, 574, 0,
- 0, 0, 0, 451, 0, 0, 229, 230, 670, 342,
- 285, 688, 825, 0, 134, 136, 138, 765, 759, 763,
- 0, 702, 697, 203, 772, 774, 775, 0, 0, 711,
- 0, 0, 0, 738, 740, 741, 742, 0, 0, 0,
- 0, 0, 0, 0, 773, 0, 360, 780, 0, 716,
- 358, 411, 0, 359, 0, 411, 0, 0, 0, 201,
- 696, 695, 717, 751, 750, 306, 830, 414, 825, 825,
- 560, 557, 559, 0, 0, 424, 424, 424, 556, 558,
- 543, 464, 0, 463, 458, 95, 101, 825, 825, 320,
- 321, 322, 323, 453, 0, 231, 684, 434, 0, 764,
- 441, 192, 0, 708, 721, 710, 0, 0, 0, 0,
- 0, 734, 0, 743, 0, 749, 39, 144, 34, 144,
- 0, 35, 761, 0, 356, 357, 0, 0, 0, 355,
- 202, 711, 111, 113, 424, 424, 566, 442, 442, 0,
- 0, 476, 98, 104, 573, 0, 766, 199, 0, 389,
- 0, 711, 0, 724, 712, 698, 777, 727, 0, 0,
- 0, 0, 739, 748, 40, 36, 0, 0, 718, 565,
- 563, 562, 564, 461, 460, 454, 86, 89, 0, 0,
- 0, 193, 411, 709, 204, 722, 206, 0, 778, 0,
- 776, 732, 736, 735, 762, 784, 0, 0, 459, 770,
- 771, 767, 424, 698, 190, 0, 0, 196, 0, 195,
- 711, 0, 0, 0, 785, 786, 744, 457, 0, 456,
- 0, 205, 0, 725, 728, 733, 737, 0, 784, 0,
- 0, 455, 197, 191, 0, 0, 0, 745, 787, 0,
- 0, 788, 0, 0, 198, 729, 789, 0, 746, 0,
- 0, 0, 730, 790, 747, 0, 0, 0
+ 438, 439, 436, 0, 429, 432, 0, 3, 0, 645,
+ 176, 648, 0, 41, 42, 0, 53, 0, 0, 57,
+ 61, 50, 822, 817, 0, 368, 389, 53, 369, 821,
+ 59, 168, 153, 151, 168, 173, 296, 610, 609, 300,
+ 613, 0, 18, 20, 89, 9, 9, 73, 72, 0,
+ 128, 352, 0, 706, 91, 704, 448, 0, 444, 443,
+ 212, 0, 211, 580, 617, 0, 799, 0, 794, 389,
+ 0, 793, 795, 824, 806, 0, 0, 615, 586, 585,
+ 0, 0, 600, 0, 419, 418, 406, 599, 0, 826,
+ 589, 377, 408, 420, 424, 493, 630, 631, 823, 0,
+ 823, 632, 506, 507, 509, 823, 512, 511, 0, 543,
+ 631, 0, 534, 0, 0, 546, 0, 121, 116, 0,
+ 171, 547, 550, 0, 526, 0, 119, 0, 424, 0,
+ 422, 826, 792, 176, 176, 635, 176, 826, 792, 575,
+ 97, 575, 103, 869, 868, 832, 832, 832, 0, 0,
+ 0, 0, 629, 0, 0, 0, 0, 389, 0, 0,
+ 0, 307, 0, 305, 306, 0, 245, 179, 279, 630,
+ 631, 280, 281, 0, 0, 449, 478, 0, 272, 271,
+ 784, 783, 0, 269, 268, 266, 267, 265, 264, 263,
+ 260, 261, 262, 258, 259, 253, 254, 255, 256, 257,
+ 251, 252, 0, 0, 0, 0, 0, 238, 226, 242,
+ 0, 0, 225, 575, 575, 0, 575, 572, 669, 0,
+ 0, 0, 0, 0, 334, 0, 338, 0, 340, 0,
+ 678, 677, 674, 673, 822, 0, 0, 693, 0, 0,
+ 826, 364, 826, 680, 575, 792, 579, 679, 675, 0,
+ 0, 575, 0, 0, 0, 0, 0, 170, 172, 283,
+ 168, 161, 159, 168, 0, 481, 0, 480, 210, 209,
+ 208, 207, 431, 0, 0, 24, 0, 0, 649, 0,
+ 38, 44, 43, 55, 52, 53, 0, 48, 0, 0,
+ 679, 675, 0, 813, 575, 816, 818, 0, 814, 815,
+ 54, 488, 0, 158, 168, 168, 156, 169, 17, 19,
+ 69, 89, 412, 145, 133, 146, 147, 0, 126, 129,
+ 0, 0, 0, 0, 705, 699, 445, 0, 124, 584,
+ 581, 798, 812, 801, 0, 582, 797, 811, 800, 796,
+ 825, 808, 819, 809, 802, 807, 828, 0, 416, 598,
+ 597, 415, 516, 0, 515, 823, 823, 823, 0, 575,
+ 792, 542, 535, 547, 536, 424, 424, 532, 533, 530,
+ 531, 575, 792, 279, 630, 0, 411, 117, 538, 548,
+ 553, 554, 411, 411, 0, 0, 411, 115, 539, 551,
+ 411, 527, 528, 529, 424, 525, 474, 0, 96, 0,
+ 0, 0, 0, 102, 0, 826, 792, 826, 792, 834,
+ 833, 835, 284, 318, 221, 223, 324, 325, 0, 0,
+ 0, 0, 306, 309, 0, 0, 0, 0, 246, 0,
+ 310, 312, 314, 0, 0, 0, 0, 227, 244, 0,
+ 0, 666, 664, 0, 667, 579, 233, 0, 0, 176,
+ 341, 0, 0, 0, 676, 672, 683, 575, 692, 690,
+ 691, 681, 826, 0, 688, 0, 627, 628, 0, 330,
+ 166, 168, 168, 164, 571, 569, 469, 0, 430, 428,
+ 279, 0, 22, 30, 656, 56, 51, 58, 62, 678,
+ 674, 679, 675, 0, 591, 0, 575, 680, 60, 154,
+ 152, 68, 0, 131, 0, 135, 0, 137, 0, 139,
+ 0, 759, 0, 200, 707, 0, 700, 701, 0, 446,
+ 679, 675, 0, 301, 0, 625, 820, 0, 0, 829,
+ 830, 0, 0, 413, 0, 0, 0, 518, 517, 510,
+ 826, 0, 537, 442, 442, 826, 0, 0, 0, 424,
+ 424, 0, 424, 424, 0, 424, 0, 442, 462, 575,
+ 286, 285, 287, 575, 99, 0, 105, 0, 0, 0,
+ 0, 0, 0, 452, 0, 450, 249, 270, 240, 239,
+ 237, 228, 0, 241, 243, 665, 663, 670, 668, 0,
+ 234, 0, 0, 333, 337, 339, 826, 686, 575, 687,
+ 162, 160, 466, 0, 433, 435, 678, 674, 596, 680,
+ 132, 130, 0, 0, 0, 0, 440, 0, 0, 279,
+ 630, 631, 708, 721, 724, 727, 732, 0, 0, 0,
+ 0, 0, 0, 0, 0, 280, 753, 761, 0, 780,
+ 757, 756, 755, 0, 716, 0, 0, 389, 0, 695,
+ 714, 720, 694, 715, 754, 0, 702, 447, 0, 628,
+ 810, 804, 805, 803, 0, 827, 417, 0, 513, 514,
+ 508, 112, 575, 541, 545, 114, 575, 424, 424, 562,
+ 442, 279, 630, 0, 549, 555, 556, 411, 411, 442,
+ 442, 0, 442, 552, 540, 0, 826, 826, 575, 575,
+ 0, 0, 0, 0, 451, 0, 0, 229, 230, 671,
+ 342, 285, 689, 826, 0, 134, 136, 138, 766, 760,
+ 764, 0, 703, 698, 203, 773, 775, 776, 0, 0,
+ 712, 0, 0, 0, 739, 741, 742, 743, 0, 0,
+ 0, 0, 0, 0, 0, 774, 0, 360, 781, 0,
+ 717, 358, 411, 0, 359, 0, 411, 0, 0, 0,
+ 201, 697, 696, 718, 752, 751, 306, 831, 414, 826,
+ 826, 561, 558, 560, 0, 0, 424, 424, 424, 557,
+ 559, 544, 464, 0, 463, 458, 95, 101, 826, 826,
+ 320, 321, 322, 323, 453, 0, 231, 685, 434, 0,
+ 765, 441, 192, 0, 709, 722, 711, 0, 0, 0,
+ 0, 0, 735, 0, 744, 0, 750, 39, 144, 34,
+ 144, 0, 35, 762, 0, 356, 357, 0, 0, 0,
+ 355, 202, 712, 111, 113, 424, 424, 567, 442, 442,
+ 0, 0, 476, 98, 104, 574, 0, 767, 199, 0,
+ 389, 0, 712, 0, 725, 713, 699, 778, 728, 0,
+ 0, 0, 0, 740, 749, 40, 36, 0, 0, 719,
+ 566, 564, 563, 565, 461, 460, 454, 86, 89, 0,
+ 0, 0, 193, 411, 710, 204, 723, 206, 0, 779,
+ 0, 777, 733, 737, 736, 763, 785, 0, 0, 459,
+ 771, 772, 768, 424, 699, 190, 0, 0, 196, 0,
+ 195, 712, 0, 0, 0, 786, 787, 745, 457, 0,
+ 456, 0, 205, 0, 726, 729, 734, 738, 0, 785,
+ 0, 0, 455, 197, 191, 0, 0, 0, 746, 788,
+ 0, 0, 789, 0, 0, 198, 730, 790, 0, 747,
+ 0, 0, 0, 731, 791, 748, 0, 0, 0
};
-static const short yydefgoto[] = { 1606,
+static const short yydefgoto[] = { 1607,
424, 2, 425, 161, 694, 327, 177, 3, 4, 37,
- 658, 369, 1290, 659, 766, 1291, 1292, 389, 1393, 663,
- 41, 767, 398, 669, 933, 670, 671, 672, 43, 168,
- 169, 44, 443, 180, 176, 45, 46, 782, 1055, 788,
- 1057, 47, 769, 770, 181, 182, 444, 701, 968, 969,
- 638, 970, 230, 48, 955, 954, 685, 682, 1121, 1120,
- 913, 910, 136, 953, 49, 50, 907, 551, 328, 329,
- 330, 331, 1293, 1557, 1454, 1559, 1499, 1590, 1163, 1536,
- 1554, 363, 900, 332, 1231, 855, 590, 862, 333, 334,
+ 658, 369, 1291, 659, 766, 1292, 1293, 389, 1394, 663,
+ 41, 767, 398, 669, 934, 670, 671, 672, 43, 168,
+ 169, 44, 443, 180, 176, 45, 46, 783, 1057, 789,
+ 1059, 47, 769, 770, 181, 182, 444, 701, 969, 970,
+ 638, 971, 230, 48, 956, 955, 685, 682, 1123, 1122,
+ 914, 911, 136, 954, 49, 50, 908, 551, 328, 329,
+ 330, 331, 1294, 1558, 1455, 1560, 1500, 1591, 1165, 1537,
+ 1555, 363, 901, 332, 1232, 856, 590, 863, 333, 334,
364, 336, 354, 52, 251, 664, 413, 53, 54, 337,
- 546, 338, 339, 340, 341, 445, 342, 1294, 484, 612,
- 343, 1295, 56, 213, 675, 344, 214, 524, 215, 193,
- 206, 60, 467, 485, 1317, 735, 1181, 194, 207, 61,
- 495, 736, 62, 63, 654, 655, 656, 1267, 450, 825,
- 826, 1527, 1528, 1492, 1434, 1345, 64, 642, 357, 1208,
- 1435, 1076, 916, 65, 66, 67, 68, 237, 69, 70,
- 71, 239, 753, 754, 755, 756, 241, 492, 493, 774,
- 775, 776, 1028, 1038, 1029, 1334, 1030, 1031, 1335, 1336,
- 639, 640, 591, 890, 346, 453, 454, 187, 195, 73,
- 74, 75, 196, 197, 153, 77, 132, 347, 348, 349,
- 79, 350, 81, 758, 123, 124, 125, 500, 105, 82,
- 351, 867, 868, 885, 615, 1298, 1299, 1164, 1165, 1166,
- 705, 1300, 975, 1301, 1378, 1502, 1457, 1458, 1302, 1303,
- 1482, 1379, 1503, 1380, 1538, 1381, 1540, 1585, 1600, 1382,
- 1561, 1512, 1562, 1463, 446, 702, 1265, 1304, 1396, 1517,
- 1369, 1370, 1449, 1531, 1501, 1497, 1305, 1508, 1399, 832,
- 1564, 1565, 1566, 1598, 721, 722, 995, 1177, 1313, 723,
- 724, 725, 991, 726, 146, 993, 728, 1179, 1180, 518,
- 84, 85
+ 546, 338, 339, 340, 341, 445, 342, 1295, 484, 612,
+ 343, 1296, 56, 213, 675, 344, 214, 524, 215, 193,
+ 206, 60, 467, 485, 1318, 735, 1183, 194, 207, 61,
+ 495, 736, 62, 63, 654, 655, 656, 1268, 450, 826,
+ 827, 1528, 1529, 1493, 1435, 1346, 64, 642, 357, 1209,
+ 1436, 1078, 917, 65, 66, 67, 68, 69, 237, 70,
+ 71, 239, 753, 754, 755, 756, 241, 492, 493, 780,
+ 774, 775, 776, 1029, 1039, 1030, 1335, 1031, 1032, 1336,
+ 1337, 639, 640, 591, 891, 346, 453, 454, 187, 195,
+ 73, 74, 75, 196, 197, 153, 77, 132, 347, 348,
+ 349, 79, 350, 81, 758, 123, 124, 125, 500, 105,
+ 82, 351, 868, 869, 886, 615, 1299, 1300, 1166, 1167,
+ 1168, 705, 1301, 976, 1302, 1379, 1503, 1458, 1459, 1303,
+ 1304, 1483, 1380, 1504, 1381, 1539, 1382, 1541, 1586, 1601,
+ 1383, 1562, 1513, 1563, 1464, 446, 702, 1266, 1305, 1397,
+ 1518, 1370, 1371, 1450, 1532, 1502, 1498, 1306, 1509, 1400,
+ 833, 1565, 1566, 1567, 1599, 721, 722, 996, 1179, 1314,
+ 723, 724, 725, 992, 726, 146, 994, 728, 1181, 1182,
+ 518, 84, 85
};
-static const short yypact[] = { 116,
- 144,-32768,-32768, 3219,-32768, 156, 153, 205, 332, 176,
- 170,-32768,-32768, 1325,-32768, 160, 185, 227,-32768,-32768,
--32768, 532, 752, 1021, 259,-32768, 308, 426,-32768, 684,
- 684,-32768, 5043,-32768, 3219, 323,-32768,-32768, 404,-32768,
- 62, 2851,-32768,-32768, 350, 1007, 453, 415, 437,-32768,
--32768,-32768,-32768, 530, 1892,-32768, 4895,-32768, 885, 379,
--32768, 471,-32768,-32768, 1233, 93,-32768, 479,-32768,-32768,
- 491, 2947,-32768,-32768,-32768, 1248,-32768,-32768,-32768, 1551,
--32768,-32768, 612, 8144, 524,-32768,-32768, 9669,-32768, 9669,
--32768, 9669,-32768,-32768,-32768, 205, 332, 308, 517, 476,
- 543, 437,-32768, 451,-32768, 612, 9755, 9755, 516,-32768,
--32768,-32768,-32768,-32768, 425, 579, 519, 546, 591, 598,
- 605,-32768,-32768, 1440,-32768, 1568, 205, 332,-32768, 308,
- 517,-32768, 562, 343, 599, 5841, 9669,-32768, 9669, 3212,
--32768, 1951, 692, 3212,-32768, 1726, 3405, 3405, 5043, 570,
- 586, 609, 602, 610,-32768,-32768, 732,-32768, 590,-32768,
- 4344,-32768,-32768, 259, 3053, 646,-32768,-32768,-32768, 350,
- 5462, 10843, 576, 698,-32768,-32768, 659, 471, 757, 209,
- 251, 734,-32768,-32768, 685, 267,-32768,-32768, 3412, 3412,
- 5669, 1248, 768,-32768,-32768, 615,-32768,-32768, 2065,-32768,
--32768,-32768,-32768,-32768, 885, 774,-32768, 471, 1248,-32768,
--32768,-32768, 2313, 885,-32768, 471,-32768, 5462,-32768,-32768,
+static const short yypact[] = { 129,
+ 148,-32768,-32768, 10535,-32768, 92, 171, 272, 418, 199,
+ 124,-32768,-32768, 917,-32768, 270, 355, 360,-32768,-32768,
+-32768, 1076, 1285, 1017, 216,-32768, 409, 499,-32768, 1618,
+ 1618,-32768, 4295,-32768, 10535, 415,-32768,-32768, 457,-32768,
+ 56, 4736,-32768,-32768, 412, 903, 509, 492, 505,-32768,
+-32768,-32768,-32768, 404, 1979,-32768, 4015,-32768, 2281, 329,
+-32768, 560,-32768,-32768, 798, 328,-32768, 548,-32768,-32768,
+ 567, 3285,-32768,-32768,-32768, 580,-32768,-32768,-32768, 1021,
+-32768,-32768, 274, 7834, 555,-32768,-32768, 9429,-32768, 9429,
+-32768, 9429,-32768,-32768,-32768, 272, 418, 409, 578, 563,
+ 600, 505,-32768, 760,-32768, 274, 9515, 9515, 607,-32768,
+-32768,-32768,-32768,-32768, 601, 648, 549, 665, 680, 663,
+ 670,-32768,-32768, 1357,-32768, 1247, 272, 418,-32768, 409,
+ 578,-32768, 690, 1972, 657, 5887, 9429,-32768, 9429, 2223,
+-32768, 2434, 402, 2223,-32768, 1599, 2316, 2316, 4295, 641,
+ 654, 649, 658, 679,-32768,-32768, 781,-32768, 685,-32768,
+ 3410,-32768,-32768, 216, 3278, 722,-32768,-32768,-32768, 412,
+ 4520, 10740, 737, 749,-32768,-32768, 735, 560, 843, 98,
+ 689, 791,-32768,-32768, 736, 66,-32768,-32768, 2840, 2840,
+ 4591, 580, 855,-32768,-32768, 540,-32768,-32768, 2691,-32768,
+-32768,-32768,-32768,-32768, 2281, 878,-32768, 560, 580,-32768,
+-32768,-32768, 2369, 2281,-32768, 560,-32768, 4520,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 437, 471, 1887, 1830,-32768,-32768, 479,-32768,-32768,-32768,
--32768,-32768, 1160, 612,-32768, 537, 1463,-32768, 342,-32768,
--32768,-32768,-32768,-32768, 4337,-32768,-32768, 229,-32768, 707,
- 717,-32768,-32768,-32768,-32768, 751,-32768,-32768,-32768,-32768,
+ 505, 560, 1485, 1636,-32768,-32768, 548,-32768,-32768,-32768,
+-32768,-32768, 1027, 274,-32768, 217, 1224,-32768, 94,-32768,
+-32768,-32768,-32768,-32768, 2883,-32768,-32768, 229,-32768, 765,
+ 769,-32768,-32768,-32768,-32768, 811,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 704,-32768,
--32768, 1160, 2947, 1101,-32768,-32768, 725,-32768,-32768, 10363,
- 10449, 10535, 10535,-32768,-32768,-32768,-32768,-32768, 727, 769,
- 792, 795, 801, 874, 517, 9841, 1937, 10535,-32768,-32768,
- 10535,-32768,-32768, 10535, 7622,-32768, 10535, 442, 772,-32768,
- 10535,-32768, 9927,-32768, 10838, 376, 1310, 2889, 10013,-32768,
- 893, 1805,-32768, 2496, 3971, 3697,-32768, 440,-32768, 1965,
- 1825, 442, 442, 9669, 5841,-32768, 1937, 804, 1937,-32768,
--32768, 810, 861, 10919, 815, 828, 839, 1668, 590,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 579, 519, 546,
- 1937, 591, 598, 876, 605,-32768, 904,-32768, 457, 205,
- 332,-32768,-32768,-32768,-32768,-32768,-32768, 4481,-32768, 5462,
- 5736, 2489,-32768, 442, 63,-32768, 363,-32768, 892, 899,
--32768,-32768,-32768, 3212,-32768,-32768, 3212,-32768, 867,-32768,
--32768, 4337, 88, 850, 883,-32768,-32768,-32768,-32768, 5841,
--32768, 812, 823,-32768,-32768, 732,-32768, 471,-32768,-32768,
--32768,-32768, 111,-32768,-32768,-32768,-32768, 7713, 9841,-32768,
--32768,-32768, 9841, 896,-32768, 6976, 226, 5116,-32768, 5116,
--32768, 5186, 5186, 5669, 888,-32768, 471, 5462,-32768, 900,
--32768,-32768, 5405, 2313, 885, 5462,-32768, 471,-32768,-32768,
- 471, 2313,-32768, 986,-32768,-32768, 437,-32768, 1887,-32768,
- 1226, 3343, 81, 1160, 471,-32768,-32768, 941, 943, 965,
- 953,-32768,-32768,-32768,-32768, 593,-32768, 450, 918, 919,
--32768,-32768, 1160,-32768,-32768, 964,-32768,-32768, 9669, 9841,
- 725, 7622,-32768, 509, 7622,-32768,-32768,-32768, 9755, 5650,
- 5650, 5650, 5650, 10964,-32768,-32768,-32768,-32768, 924, 10621,
- 10621, 7622, 927, 107, 928, 979, 934,-32768,-32768,-32768,
--32768, 9669,-32768, 7252, 7622,-32768, 9841, 9841, 7804, 9841,
- 9841, 9841, 9841, 9841, 9841, 9841, 9841, 9841, 9841, 9841,
- 9841, 9841, 9841, 9841, 9841, 9841, 9841, 9841,-32768, 9841,
--32768,-32768,-32768,-32768,-32768, 9841, 9841,-32768,-32768, 1313,
- 315, 906, 8504,-32768,-32768,-32768, 989, 1463, 1037, 511,
- 528, 638, 2333, 692,-32768, 1576, 1576,-32768, 2501, 937,
- 956, 1003,-32768,-32768, 634, 9124, 1116,-32768, 999, 612,
--32768,-32768, 9841,-32768,-32768,-32768,-32768,-32768, 303, 524,
--32768,-32768, 442,-32768, 5462, 2982,-32768, 990, 1000,-32768,
--32768, 1937, 876,-32768, 8236, 8327,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 193,-32768, 969, 949, 590, 457, 1010,
- 9669,-32768, 1008,-32768,-32768, 343, 1095, 1044, 299, 1018,
- 1023,-32768,-32768, 2225, 10843, 2225, 4136, 1233, 3794,-32768,
- 1026,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 985,
--32768, 1035,-32768,-32768, 350,-32768,-32768,-32768,-32768, 95,
- 783, 1039, 979,-32768,-32768,-32768,-32768, 7158, 10964,-32768,
- 861, 1012, 10919,-32768,-32768, 1014,-32768, 1019, 406, 4599,
- 1022,-32768, 103, 5361, 1047, 1052, 654,-32768,-32768,-32768,
- 5116, 5116,-32768, 5405,-32768, 1054,-32768,-32768, 1015, 226,
--32768, 2313,-32768,-32768, 471,-32768, 519, 546,-32768, 1036,
--32768, 605, 1074,-32768,-32768, 233,-32768,-32768, 1962,-32768,
- 791, 1141,-32768, 9841, 6374,-32768, 6374, 83, 83, 301,
- 658, 4251, 10775, 5963,-32768, 194, 83, 1073, 471,-32768,
- 226, 3153, 9669, 9669,-32768, 9669, 226, 3153,-32768,-32768,
--32768,-32768,-32768,-32768, 1067, 1067, 1067, 442, 1046, 1048,
- 10105, 1003, 1057, 1058, 1068, 1104, 4764, 1107, 1108, 1109,
--32768, 1078,-32768,-32768, 1082,-32768,-32768, 1132, 432, 762,
- 182, 80, 9841, 1137,-32768, 1142, 1092, 10964, 10964,-32768,
--32768, 1140, 4489, 6071, 6114, 3259, 5876, 4207, 3574, 2596,
- 2596, 2596, 2581, 2581, 1305, 1305, 478, 478, 478,-32768,
--32768, 1096, 1099, 1102, 9841, 9755,-32768, 315,-32768, 7713,
- 9841,-32768,-32768,-32768, 9841,-32768,-32768, 1125, 10535, 1110,
- 1138, 1146, 1185,-32768, 9841,-32768, 9841,-32768, 9841, 2601,
--32768, 2601,-32768, 97, 1126, 1131,-32768, 1134, 5650, 226,
--32768, 226, 2752,-32768, 3153, 1144, 9308, 9308, 6471, 1143,
- 9927, 1150, 2158, 1825, 1004, 1152,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 9841, 1937, 1139, 1000,-32768, 10964,-32768,
- 10964, 1668, 1153, 10191,-32768, 1157, 1186,-32768, 442,-32768,
--32768,-32768,-32768,-32768, 1416, 4481,-32768, 5650, 9669, 1795,
- 1795, 3508,-32768,-32768,-32768,-32768, 2065,-32768,-32768,-32768,
- 417, 9841,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 350,-32768, 579,-32768, 591, 598, 9841, 1208,-32768, 666,
- 674, 683, 979,-32768, 72,-32768, 183,-32768,-32768,-32768,
--32768,-32768,-32768, 9216,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 1052, 1204,-32768,-32768,-32768, 5650,-32768,-32768,-32768,
- 1206,-32768, 9755,-32768,-32768,-32768,-32768, 851,-32768, 3153,
- 10964,-32768, 1679,-32768, 471, 471,-32768,-32768,-32768,-32768,
--32768, 3153, 502, 787, 9841, 986,-32768, 1212,-32768,-32768,
--32768, 235, 497, 1551, 692, 569, 83, 1214,-32768, 621,
--32768,-32768,-32768, 471, 8572,-32768,-32768, 1168, 442, 442,
- 442,-32768, 1169, 226, 3153, 226, 3153,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768, 1192, 1193, 1195, 1202,
- 985,-32768, 6766, 7713, 7346, 1188,-32768, 9841,-32768,-32768,
--32768, 1190, 1170, 1196, 5650,-32768,-32768, 1198, 173, 334,
- 334, 1200, 334,-32768,-32768, 10535, 1301, 9669,-32768, 1216,
- 1217, 1231,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 226, 1234,-32768, 1223,-32768,-32768, 2735,-32768,-32768,-32768,
--32768,-32768, 10964,-32768,-32768, 1235,-32768,-32768, 199, 1240,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 2393, 2393, 2680,
- 2680, 3508,-32768, 2065,-32768, 3520, 10838,-32768,-32768,-32768,
- 1242,-32768, 783,-32768, 9841,-32768, 9841,-32768, 9841,-32768,
- 1937,-32768,-32768, 6711, 1318,-32768, 7437,-32768, 9400, 9400,
- 6861, 135, 1245, 261,-32768, 7713, 7528,-32768,-32768, 210,
- 7713,-32768, 1246, 1247, 1226,-32768,-32768,-32768, 226, 1251,
--32768, 1297, 1297, 226, 1257, 9841, 9841, 4003, 471, 4760,
- 471, 471, 1105, 471, 5244, 1297, 8642,-32768,-32768,-32768,
- 1314,-32768,-32768,-32768, 1267,-32768, 1269, 9841, 9841, 9841,
- 9841, 7713,-32768, 1316,-32768,-32768, 10964,-32768,-32768,-32768,
- 380, 1196,-32768,-32768,-32768,-32768,-32768,-32768, 1279,-32768,
- 1345, 442,-32768,-32768,-32768, 226,-32768,-32768,-32768,-32768,
--32768,-32768, 9841,-32768,-32768, 2393, 2393,-32768, 3520,-32768,
--32768, 1285, 1286, 1290, 1309,-32768, 829, 214, 1347, 805,
- 816,-32768,-32768,-32768,-32768,-32768, 9841, 1348, 1352, 1353,
- 9492, 175, 1937, 616, 655,-32768,-32768, 9583, 1398,-32768,
--32768,-32768, 1354,-32768, 5089, 5564, 4654, 6601,-32768,-32768,
- 1400,-32768,-32768,-32768, 8735,-32768,-32768, 1321, 1368,-32768,
--32768,-32768,-32768, 5650,-32768,-32768, 7713,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768, 4003, 4003,-32768, 1297,
- 691, 863, 9841,-32768,-32768,-32768, 986, 986, 1297, 1297,
- 593, 1297,-32768,-32768, 6263, 226, 226,-32768,-32768, 1323,
- 1329, 1334, 1340,-32768, 7713, 9841,-32768, 380,-32768,-32768,
--32768,-32768, 226, 1342,-32768,-32768,-32768,-32768, 1309,-32768,
- 1937,-32768,-32768,-32768,-32768,-32768,-32768, 688, 688, 979,
- 1324, 1333, 6168,-32768,-32768,-32768,-32768, 1362, 9841, 1373,
- 1393, 1406, 1973, 2131,-32768, 979,-32768,-32768, 1372,-32768,
--32768, 986, 841,-32768, 881, 986, 10277, 894, 252,-32768,
--32768,-32768,-32768,-32768,-32768, 340,-32768,-32768, 226, 226,
--32768,-32768,-32768, 9841, 9841, 4003, 471, 471,-32768,-32768,
--32768,-32768, 8418,-32768,-32768,-32768,-32768, 226, 226,-32768,
--32768,-32768,-32768,-32768, 1359,-32768,-32768,-32768, 1381,-32768,
--32768,-32768, 9755,-32768,-32768,-32768, 1461, 9031, 7067, 9755,
- 9841,-32768, 8843,-32768, 1420,-32768,-32768, 1428,-32768, 1406,
- 1973,-32768,-32768, 732,-32768,-32768, 10707, 10707, 7895,-32768,
--32768, 979,-32768,-32768, 4003, 4003,-32768, 1297, 1297, 1376,
- 10874, 1387,-32768,-32768,-32768, 4964,-32768,-32768, 1377, 487,
- 5462, 979, 8937,-32768,-32768, 72,-32768,-32768, 1430, 1385,
- 10942, 8843,-32768,-32768,-32768,-32768, 1309, 91,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768, 453, 350, 1386, 1394,
- 979,-32768, 986,-32768,-32768,-32768,-32768, 690,-32768, 7986,
--32768,-32768,-32768,-32768, 1309, 1490, 1449, 218,-32768,-32768,
--32768,-32768, 471, 72,-32768, 9841, 1451,-32768, 1453,-32768,
- 979, 8843, 1422, 68, 1459,-32768,-32768,-32768, 111,-32768,
- 1458,-32768, 1415,-32768,-32768,-32768,-32768, 9841, 1490, 1466,
- 1490,-32768,-32768,-32768, 8077, 1419, 677,-32768,-32768, 7713,
- 1421,-32768, 1517, 1470,-32768,-32768,-32768, 270,-32768, 8937,
- 1521, 1475,-32768,-32768,-32768, 1537, 1538,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 764,-32768,
+-32768, 1027, 3285, 814,-32768,-32768, 790,-32768,-32768, 10123,
+ 10209, 10295, 10295,-32768,-32768,-32768,-32768,-32768, 800, 825,
+ 834, 853, 870, 1090, 578, 9601, 1697, 10295,-32768,-32768,
+ 10295,-32768,-32768, 10295, 7312,-32768, 10295, 181, 894,-32768,
+ 10295,-32768, 9687,-32768, 10982, 370, 1912, 4227, 9773,-32768,
+ 948, 2212,-32768, 1316, 3488, 3177,-32768, 380,-32768, 1589,
+ 1575, 181, 181, 9429, 5887,-32768, 1697, 857, 1697,-32768,
+-32768, 871, 934, 10915, 889, 902, 908, 1438, 685,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, 648, 549, 665,
+ 1697, 680, 663, 932, 670,-32768, 969,-32768, 3160, 272,
+ 418,-32768,-32768,-32768,-32768,-32768,-32768, 4962,-32768, 4520,
+ 5717, 557,-32768, 181, 865,-32768, 366,-32768, 977, 985,
+-32768,-32768,-32768, 2223,-32768,-32768, 2223,-32768, 935,-32768,
+-32768, 2883, 96, 951, 957,-32768,-32768,-32768,-32768, 5887,
+-32768, 890, 897,-32768,-32768, 781,-32768, 560,-32768,-32768,
+-32768,-32768, 145,-32768,-32768,-32768,-32768, 7403, 9601,-32768,
+-32768,-32768, 9601, 973,-32768, 6666, 131, 3139,-32768, 3139,
+-32768, 3732, 3732, 4591, 978,-32768, 560, 4520,-32768, 974,
+-32768,-32768, 3884, 2369, 2281, 4520,-32768, 560,-32768,-32768,
+ 560, 2369,-32768, 1061,-32768,-32768, 505,-32768, 1485,-32768,
+ 1755, 5946, 61, 1027, 560,-32768,-32768, 991, 1015, 1037,
+ 1019,-32768,-32768,-32768,-32768, 387,-32768, 392, 983, 986,
+-32768,-32768, 1027,-32768,-32768, 466,-32768,-32768, 9429, 9601,
+ 790, 7312,-32768, 400, 7312,-32768,-32768,-32768, 9515, 3739,
+ 3739, 3739, 3739, 10960,-32768,-32768,-32768,-32768, 990, 10381,
+ 10381, 7312, 995, 50, 999, 1050, 1003,-32768,-32768,-32768,
+-32768, 9429,-32768, 6942, 7312,-32768, 9601, 9601, 7494, 9601,
+ 9601, 9601, 9601, 9601, 9601, 9601, 9601, 9601, 9601, 9601,
+ 9601, 9601, 9601, 9601, 9601, 9601, 9601, 9601,-32768, 9601,
+-32768,-32768,-32768,-32768,-32768, 9601, 9601,-32768,-32768, 4867,
+ 796, 610, 8194,-32768,-32768,-32768, 1065, 1224, 1112, 448,
+ 502, 520, 1832, 402,-32768, 1177, 1177,-32768, 2598, 1012,
+ 1031, 1080,-32768,-32768, 575, 8884, 956,-32768, 711, 274,
+-32768,-32768, 9601,-32768,-32768,-32768,-32768,-32768, 562, 555,
+-32768,-32768, 181,-32768, 4520, 2080,-32768, 1067, 1070,-32768,
+-32768, 1697, 932,-32768, 7926, 8017,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768, 141,-32768, 1049, 1039, 685, 3160, 1093,
+ 9429,-32768, 1091,-32768,-32768, 1972, 1328, 1116, 481, 1092,
+ 1096,-32768,-32768, 2423, 10740, 2423, 2100, 798, 4579,-32768,
+ 1102,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1046,
+-32768, 1097,-32768,-32768, 412,-32768,-32768,-32768,-32768, 97,
+ 362, 1106, 1050,-32768,-32768,-32768,-32768, 6848, 10960,-32768,
+ 934, 1062, 10915,-32768,-32768, 1063,-32768, 1066, 624, 2989,
+ 1072,-32768, 154, 5663, 1109, 1111, 577,-32768,-32768,-32768,
+ 3139, 3139,-32768, 3884,-32768, 1119,-32768,-32768, 1073, 131,
+-32768, 2369,-32768,-32768, 560,-32768, 549, 665,-32768, 1095,
+-32768, 670, 1133,-32768,-32768, 376,-32768,-32768, 1770,-32768,
+ 635, 785,-32768, 9601, 10613,-32768, 10613, 365, 365, 343,
+ 630, 3533, 5783, 8262,-32768, 191, 365, 1131, 560, 8332,
+-32768, 131, 4646, 9429, 9429,-32768, 9429, 131, 4646,-32768,
+-32768,-32768,-32768,-32768,-32768, 526, 526, 526, 181, 1086,
+ 1089, 9865, 1080, 1098, 1099, 1100, 1125, 3672, 1134, 1142,
+ 1146,-32768, 1114,-32768,-32768, 1115,-32768,-32768, 1163, 422,
+ 547, 325, 85, 9601, 1164,-32768, 1173, 1127, 10960, 10960,
+-32768,-32768, 1175, 4072, 3326, 5005, 3563, 5041, 4438, 2541,
+ 3040, 3040, 3040, 2262, 2262, 1391, 1391, 146, 146, 146,
+-32768,-32768, 1136, 1137, 1130, 9601, 9515,-32768, 796,-32768,
+ 7403, 9601,-32768,-32768,-32768, 9601,-32768,-32768, 1148, 10295,
+ 1143, 1178, 1198, 1226,-32768, 9601,-32768, 9601,-32768, 9601,
+ 1792,-32768, 1792,-32768, 103, 1166, 1168,-32768, 1171, 3739,
+ 131,-32768, 131, 2092,-32768, 4646, 1172, 9068, 9068, 6252,
+ 1176, 9687, 1183, 2753, 1575, 861, 1186,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 9601, 1697, 1197, 1070,-32768, 10960,
+-32768, 10960, 1438, 1202, 9951,-32768, 1204, 1255,-32768, 181,
+-32768,-32768,-32768,-32768,-32768, 1207, 4962,-32768, 3739, 9429,
+ 1346, 1346, 4301,-32768,-32768,-32768,-32768, 2691,-32768,-32768,
+-32768, 993, 9601,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, 412,-32768, 648,-32768, 680, 663, 9601, 1227,-32768,
+ 637, 644, 667, 1050,-32768, 93,-32768, 117,-32768,-32768,
+-32768,-32768,-32768,-32768, 8976,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 1111, 1252,-32768,-32768,-32768, 3739,-32768,-32768,
+-32768, 1253,-32768, 9515,-32768,-32768,-32768,-32768, 875,-32768,
+ 4646, 10960,-32768, 1199,-32768, 560, 560,-32768,-32768,-32768,
+-32768,-32768, 4646, 523, 898, 9601, 1061,-32768, 1263,-32768,
+-32768,-32768, 197, 225, 1021, 402, 333, 365, 1267,-32768,
+ 462,-32768,-32768,-32768, 560,-32768,-32768, 8402,-32768, 1222,
+ 181, 181, 181,-32768, 1229, 131, 4646, 131, 4646,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1241, 1242,
+ 1245, 1250, 1046,-32768, 10848, 7403, 7036, 1231,-32768, 9601,
+-32768,-32768,-32768, 1239, 1246, 1248, 3739,-32768,-32768, 1249,
+ 361, 768, 768, 1257, 768,-32768,-32768, 10295, 1350, 9429,
+-32768, 1266, 1280, 1281,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 131, 1282,-32768, 1260,-32768,-32768, 2901,-32768,
+-32768,-32768,-32768,-32768, 10960,-32768,-32768, 1283,-32768,-32768,
+ 210, 1286,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1374,
+ 1374, 1710, 1710, 4301,-32768, 2691,-32768, 1851, 10982,-32768,
+-32768,-32768, 1287,-32768, 362,-32768, 9601,-32768, 9601,-32768,
+ 9601,-32768, 1697,-32768,-32768, 6460, 1342,-32768, 7127,-32768,
+ 9160, 9160, 6572, 285, 1289, 373,-32768, 7403, 7218,-32768,
+-32768, 268, 7403,-32768, 1290, 1291, 1755,-32768,-32768,-32768,
+ 131, 1296,-32768, 1343, 1343, 131, 1304, 9601, 9601, 10826,
+ 560, 3996, 560, 560, 921, 560, 4123, 1343,-32768,-32768,
+-32768, 1365,-32768,-32768,-32768, 1312,-32768, 1317, 9601, 9601,
+ 9601, 9601, 7403,-32768, 1367,-32768,-32768, 10960,-32768,-32768,
+-32768, 496, 1248,-32768,-32768,-32768,-32768,-32768,-32768, 1321,
+-32768, 1380, 181,-32768,-32768,-32768, 131,-32768,-32768,-32768,
+-32768,-32768,-32768, 9601,-32768,-32768, 1374, 1374,-32768, 1851,
+-32768,-32768, 1325, 1327, 1330, 1352,-32768, 923, 275, 1387,
+ 980, 1038,-32768,-32768,-32768,-32768,-32768, 9601, 1396, 1399,
+ 1401, 9252, 237, 1697, 421, 636,-32768,-32768, 9343, 1454,
+-32768,-32768,-32768, 1409,-32768, 4396, 10681, 10795, 6350,-32768,
+-32768, 1461,-32768,-32768,-32768, 8495,-32768,-32768, 1372, 614,
+-32768,-32768,-32768,-32768, 3739,-32768,-32768, 7403,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, 10826, 10826,-32768,
+ 1343, 651, 1048, 9601,-32768,-32768,-32768, 1061, 1061, 1343,
+ 1343, 387, 1343,-32768,-32768, 6089, 131, 131,-32768,-32768,
+ 1376, 1377, 1379, 1383,-32768, 7403, 9601,-32768, 496,-32768,
+-32768,-32768,-32768, 131, 1388,-32768,-32768,-32768,-32768, 1352,
+-32768, 1697,-32768,-32768,-32768,-32768,-32768,-32768, 682, 682,
+ 1050, 1404, 1410, 5995,-32768,-32768,-32768,-32768, 1442, 9601,
+ 1444, 1441, 1458, 1840, 1872,-32768, 1050,-32768,-32768, 1422,
+-32768,-32768, 1061, 927,-32768, 954, 1061, 10037, 987, 289,
+-32768,-32768,-32768,-32768,-32768,-32768, 397,-32768,-32768, 131,
+ 131,-32768,-32768,-32768, 9601, 9601, 10826, 560, 560,-32768,
+-32768,-32768,-32768, 8108,-32768,-32768,-32768,-32768, 131, 131,
+-32768,-32768,-32768,-32768,-32768, 1405,-32768,-32768,-32768, 1424,
+-32768,-32768,-32768, 9515,-32768,-32768,-32768, 1501, 8791, 6757,
+ 9515, 9601,-32768, 8603,-32768, 1460,-32768,-32768, 1467,-32768,
+ 1458, 1840,-32768,-32768, 781,-32768,-32768, 10467, 10467, 7585,
+-32768,-32768, 1050,-32768,-32768, 10826, 10826,-32768, 1343, 1343,
+ 1415, 10870, 1430,-32768,-32768,-32768, 5586,-32768,-32768, 1420,
+ 252, 4520, 1050, 8697,-32768,-32768, 93,-32768,-32768, 1471,
+ 1427, 10938, 8603,-32768,-32768,-32768,-32768, 1352, 89,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, 509, 412, 1431,
+ 1432, 1050,-32768, 1061,-32768,-32768,-32768,-32768, 705,-32768,
+ 7676,-32768,-32768,-32768,-32768, 1352, 1527, 1486, 170,-32768,
+-32768,-32768,-32768, 560, 93,-32768, 9601, 1487,-32768, 1488,
+-32768, 1050, 8603, 1452, 753, 1493,-32768,-32768,-32768, 145,
+-32768, 1489,-32768, 1446,-32768,-32768,-32768,-32768, 9601, 1527,
+ 1495, 1527,-32768,-32768,-32768, 7767, 1457, 787,-32768,-32768,
+ 7403, 1459,-32768, 1557, 1511,-32768,-32768,-32768, 295,-32768,
+ 8697, 1561, 1513,-32768,-32768,-32768, 1576, 1577,-32768
};
static const short yypgoto[] = {-32768,
- 1541,-32768, -322, 1382, -386, 58, 0, 1540,-32768, 1512,
--32768,-32768, 113,-32768, 253,-32768, 287,-32768, 159, 901,
- 33, 19,-32768,-32768, -611,-32768,-32768, 627, 59, 1402,
- 1147, 1408, -690, 51, -164, 10, 1,-32768,-32768,-32768,
--32768,-32768, 806,-32768,-32768,-32768,-32768,-32768,-32768, 433,
- 1592,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 1494, -649, 5793, -67, -534, -203, 21, 1455,
- -507,-32768, 397,-32768, 222,-32768, -1353,-32768, -1343, -3,
--32768, 1661, 891, -267, 370, -520,-32768, -828, 1473, 74,
- 1135, 3774, 1317, -325, -74, -94, 1462, -70, 434,-32768,
--32768,-32768, -330,-32768, -154,-32768,-32768, -1214, -48, -327,
- 3104, 52, 424, -150, 28, 86, -200, -4, -28, -163,
- -157, 7, -35, -103,-32768, -359,-32768,-32768,-32768,-32768,
--32768, -113, 237, -2,-32768, 697,-32768,-32768, -1067, -431,
- 905,-32768,-32768,-32768,-32768,-32768, 167,-32768,-32768,-32768,
--32768,-32768, 705, -373,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 1384,-32768, 444, 619,-32768,-32768,-32768,-32768, 589,
- -717,-32768,-32768,-32768,-32768,-32768,-32768, 864,-32768, 431,
- 996, 726, 1050, 4767, 47, 25, -443, 1446, 3480, -462,
--32768, 2,-32768, 5022, -146, 651, -106, 4331, 1302,-32768,
- 4962, 2031, 1670, -9, -104,-32768, 1519, -53,-32768, 4406,
- 2964, -301,-32768, 1578,-32768,-32768, 347,-32768,-32768, 484,
- 82, -419,-32768,-32768,-32768,-32768, -1336,-32768, -1222, -1362,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768, 102,-32768,-32768,-32768,-32768,-32768,
- 142, -1296,-32768,-32768, -38,-32768,-32768,-32768,-32768, -1378,
- 73,-32768, 79,-32768, -691, -572, 669,-32768,-32768,-32768,
--32768, -389,-32768, -379, -143,-32768, 988, 348,-32768, 132,
--32768, -227
+ 1586,-32768, -336, 1421, -382, 70, 6, 1573,-32768, 1554,
+-32768,-32768, 266,-32768, 277,-32768, 396,-32768, 195, 937,
+ 52, 14,-32768,-32768, -628,-32768,-32768, 661, 53, 1426,
+ 1179, 1439, -685, 77, -162, 13, 139,-32768,-32768,-32768,
+-32768,-32768, 835,-32768,-32768,-32768,-32768,-32768,-32768, 456,
+ 1536,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 1518, -616, 5440, -68, -498, -295, 26, 1478,
+ -508,-32768, -43,-32768, 245,-32768, -1359,-32768, -1380, 27,
+-32768, 1476, 1201, -274, 405, -542,-32768, -817, 4764, 1360,
+ 1170, 3522, 1349, -326, -85, -94, 105, -71, -27,-32768,
+-32768,-32768, -327,-32768, -156,-32768,-32768, -1216, 68, -343,
+ 4423, 107, 1101, -118, 19, 102, -200, -4, -138, -160,
+ -169, 20, -42, -245,-32768, -342,-32768,-32768,-32768,-32768,
+-32768, -5, 1809, -17,-32768, 724,-32768,-32768, -988, -428,
+ 941,-32768,-32768,-32768,-32768,-32768, 168,-32768,-32768,-32768,
+-32768,-32768, 733, -362,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, 1416,-32768, 465, 645,-32768,-32768,-32768,-32768,-32768,
+ 881, -684,-32768,-32768,-32768,-32768,-32768,-32768, 885,-32768,
+ 460, 1022, 752, 1083, 4670, 47, 25, -441, 1474, 2689,
+ -454,-32768, 18,-32768, 5069, -134, 156, -82, 4079, 1334,
+-32768, 4154, 1775, 1562, -16, -107,-32768, 1555, -58,-32768,
+ 4257, 2711, -195,-32768, 2673,-32768,-32768, 381,-32768,-32768,
+ 516, 115, -427,-32768,-32768,-32768,-32768, -1353,-32768, -1239,
+ -1387,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768, 137,-32768,-32768,-32768,-32768,
+-32768, 176, -1300,-32768,-32768, -54,-32768,-32768,-32768,-32768,
+ -1367, 116,-32768, 123,-32768, -698, -581, 704,-32768,-32768,
+-32768,-32768, -383,-32768, -376, -175,-32768, 1675, 393,-32768,
+ 232,-32768, -226
};
-#define YYLAST 11048
+#define YYLAST 11066
static const short yytable[] = { 59,
- 415, 418, 423, 36, 475, 431, 192, 432, 680, 252,
- 178, 973, 249, 122, 433, 103, 710, 617, 681, 501,
- 627, 388, 42, 706, 678, 626, 739, 396, 757, 1086,
- 59, 57, 523, 526, 36, 956, 886, 59, 394, 395,
- 245, 695, 494, 886, 817, 294, 657, 1012, 173, 1014,
- 72, 170, 205, 42, 474, 55, 1041, 204, 393, 220,
- 42, 35, 57, 482, 437, 556, 950, 243, 856, 172,
- 387, 252, 1450, 1397, 166, 1412, 140, 144, 186, 292,
- 1509, 72, 1415, 345, 256, 345, 55, 345, 72, 58,
- 1048, 513, 35, 171, 491, 1505, 1053, 908, 595, 165,
- 167, 595, 345, 345, 1161, 595, 1510, 360, 981, 15,
- 352, 703, 353, -411, 986, -1, 38, 778, 744, 159,
- 58, 552, 192, 630, 1323, 1324, 815, 58, 252, 1579,
- 293, 402, 345, 138, 345, 780, 399, 549, 1344, 550,
- 1537, -144, -411, -2, 513, 1519, -411, 38, 631, 632,
- 235, 957, 1546, 579, 236, 982, 59, 404, 983, 160,
- 59, 987, 1539, 401, 988, 1534, 888, 205, 704, 291,
- 428, 173, 204, 478, 170, 1580, 186, 95, 110, 111,
- 1162, -298, 72, 42, 480, 483, 1560, 400, 57, 779,
- 508, -411, 172, 414, 417, 692, 802, 166, 1547, 580,
- 686, 687, 962, 1112, 816, 220, 1591, 72, 174, 440,
- 1572, 72, 55, 220, -291, 86, 171, 94, 1568, 605,
- 186, 58, 165, 167, 1576, 217, 88, -298, -298, 220,
- 112, 113, 8, 506, 504, 458, 460, 1537, 971, 1006,
- 1513, 1167, -291, -143, 1507, 256, 58, 601, 1450, 93,
- 58, 922, 107, 1042, 1389, 137, 39, 1253, 89, -361,
- 1119, 15, 1423, 1122, 87, 801, -352, 600, 1314, 1007,
- 441, 1429, 1430, 1373, 1431, -352, 359, 108, 90, 441,
- 1234, 700, 665, 974, 130, 131, 727, 39, 243, 1544,
- 40, 1168, -361, 208, 935, 216, -361, 447, 627, 592,
- 923, 232, 1043, 442, 1148, 1149, 1254, -618, 507, 960,
- 961, 1373, 442, 455, 448, 415, 418, 1315, 1190, 109,
- 345, 40, 1374, 1134, 742, 1017, 886, 660, 1601, -361,
- 1195, 174, 135, 292, 680, 926, 1085, 127, 128, 1577,
- 304, 243, 504, 449, 992, 296, 390, 391, 10, 345,
- 636, 683, 256, -618, -618, 634, 26, 936, 1018, 456,
- 1481, 859, 1019, 1215, 737, 1217, 127, 128, -618, 886,
- 501, 217, 743, 937, 633, 527, 528, 1602, 860, 217,
- 217, 137, 401, 21, 293, 91, -300, 26, 502, 130,
- 131, 536, 617, 677, 537, 1020, 205, 538, 27, 315,
- 548, 72, 1357, 863, 553, 92, 635, 861, 208, 217,
- 359, 886, 594, 864, 438, 157, 668, 981, 130, 131,
- 1522, 1523, 579, 291, 771, 59, 859, 865, 1087, 909,
- 32, 1137, -300, -300, 503, 220, 173, 218, 219, 697,
- 58, 216, 507, 860, 679, 480, 483, -294, 745, 481,
- 216, 720, 1114, 480, 8, 9, 175, 172, 217, 296,
- 390, 391, 10, 158, 982, 483, 152, 983, 580, -821,
- 1250, 1251, 861, 1356, 183, -52, 72, 179, 220, 138,
- -52, 171, 370, 676, 483, 89, 622, 59, 371, 1041,
- 184, -52, 768, -141, 211, 212, 791, 21, 359, 139,
- 14, 18, 679, 362, 366, 90, 130, 131, 731, 732,
- 26, 217, 27, 315, 345, 58, 549, 345, 550, 773,
- 345, -362, 20, 15, 345, 807, 807, 807, 807, 1446,
- 959, 23, 623, 605, 95, 110, 111, 345, 72, 798,
- 238, 676, 792, 772, 32, 757, 680, 345, 240, 765,
- 345, 592, 665, 1160, -362, 605, 681, 874, -362, 932,
- 577, 578, 678, 1196, 296, 390, 391, 10, 217, 886,
- 138, 931, 373, 627, 876, 88, -578, 58, 626, 801,
- 152, 152, 152, 496, 356, 292, 911, 112, 113, 114,
- 91, -362, 90, -120, 1061, 15, 174, 295, 886, 374,
- 358, 801, 21, 875, 677, 1002, 513, 1004, 368, 247,
- 92, 720, 1008, 536, 537, 8, 9, 27, 315, 92,
- 877, 256, -578, 185, 152, 943, -120, 948, 949, 497,
- -120, 1001, 372, 556, 218, 434, 293, 208, 216, 789,
- 217, 217, 1223, 1225, 375, -118, 91, 15, 217, 32,
- 1239, 376, 880, 882, 388, 679, 345, 122, 377, 129,
- 217, -578, 679, -120, 137, 1046, 92, 130, 131, 26,
- 205, 949, 1392, 397, 243, 291, 630, -291, -118, 217,
- 894, 929, -118, 154, 878, 790, 7, 127, 128, 10,
- 971, 972, 13, 420, 676, 127, 128, 771, -7, 771,
- 996, 676, 185, 438, 1021, 771, 771, -578, 470, 421,
- 481, 216, 1154, 480, 438, -118, 1395, -613, 481, 677,
- 1156, 543, 757, 1027, 21, 1133, 895, 896, 137, 1158,
- 879, 438, 1015, 1016, 1452, 1225, 1555, 26, 1593, 27,
- 28, 1044, 299, 160, 1310, 1312, 997, 130, 131, 1316,
- 1022, 436, 1424, 30, 116, 117, 118, 435, 1155, 439,
- 59, 802, 59, 31, 88, 768, 1157, 768, 205, 59,
- 679, 32, 1026, 1036, 768, 1159, 33, 677, 345, 345,
- 1453, 345, 1556, 677, 1594, 963, 747, 748, 1235, 1236,
- 1354, 1238, 773, 451, 773, 452, 1150, 154, 154, 154,
- 509, 773, 217, 1049, 1050, 26, 1051, 119, 120, 676,
- 510, 72, 511, 72, 512, 91, 772, 520, 1013, 529,
- 72, 674, 765, -142, 765, 772, 468, 469, 679, 964,
- 552, 765, 476, 477, 679, 92, 26, 1009, 965, 966,
- 89, 154, 530, 217, 91, 1210, 1211, 1212, 1197, 714,
- 58, 345, 58, 116, 747, 748, 1089, 1569, 89, 58,
- 90, 1185, 1186, 1187, 92, 531, 1376, 676, 532, 91,
- 468, 698, 216, 676, 533, 967, 252, 1377, 90, 674,
- 750, 476, 699, 1010, 807, 1418, 217, 1371, 1372, 92,
- 677, 210, 211, 212, 720, 152, 152, 152, 14, 468,
- 1475, 1192, 1193, 595, 26, 256, 119, 120, 217, 127,
- 128, 208, 641, 216, 232, 18, 89, 644, 543, 645,
- 20, 543, 647, 1444, 1425, 804, 1058, 1059, 1060, 23,
- 1206, 677, -181, 807, 345, 648, 90, 677, 543, 476,
- 1476, 679, 1095, 880, 882, 679, 649, 137, -181, 661,
- -181, 543, 468, 1480, 668, 831, 216, 662, -6, 26,
- 1456, 130, 131, 252, 1027, 90, 249, 127, 128, 802,
- 536, 537, 92, 217, 690, 863, 1473, 771, 481, 720,
- 676, 438, 679, 854, 676, 864, 1138, 1139, 679, 870,
- 1199, 693, 807, 415, 418, 733, 1201, 1202, 345, 865,
- 1199, 1204, 8, 9, 1202, 677, 715, 8, 9, 208,
- 738, 359, 15, 1026, 783, 438, 784, 677, 785, 130,
- 131, 676, 415, 418, 127, 128, 786, 676, 793, 794,
- 679, 811, 674, 15, 813, 814, 704, -411, 1361, 674,
- 59, 816, 871, 248, 873, 768, 359, 887, 889, 891,
- 677, 359, 677, 914, 130, 131, 679, 925, 915, 130,
- 131, 924, 1456, 928, 129, -411, -411, 930, 679, 676,
- 127, 128, 773, 252, 26, 504, 130, 131, 248, 20,
- 807, 938, 1456, 507, 1329, 1330, 939, 1339, 1340, 952,
- 1342, 72, -294, 345, 958, 676, 772, 378, 379, 380,
- 441, 679, 765, 679, 127, 128, 680, 676, 127, 1341,
- -820, 1552, 154, 154, 154, 994, 1530, 998, 1242, 978,
- 26, 979, 130, 131, -574, 999, 980, -574, 1003, 985,
- 58, 1403, 1005, 1408, 1045, 508, 514, 677, 1405, 771,
- 676, 1456, 676, 972, 127, 128, 515, 674, 26, 706,
- 382, 383, 359, 1062, 26, 1063, 130, 131, 1595, 1297,
- 130, 131, 891, 1289, 1064, 1065, 720, 211, 212, 1240,
- 514, 232, 802, 14, -574, 1066, -574, -574, 1067, -574,
- 515, 1068, 1069, 1070, 507, 1071, 1256, 1257, 679, 1072,
- -574, 1296, -574, -140, 26, 20, 130, 131, 1074, 1077,
- 1075, 1078, 59, 1079, 23, 674, 1080, 768, -574, -574,
- 72, 674, 1081, 1421, 1422, 1256, 1257, 679, 1094, 1098,
- 1096, 1288, 335, -574, 335, 1097, 335, 676, 116, 747,
- 748, 1099, 749, 1105, 773, 95, 96, 97, 1106, 221,
- 222, 223, 536, 537, 1107, 1132, 1402, 1125, 1402, 58,
- 1115, 438, 438, 72, 1113, 750, 676, 1116, 772, 1118,
- 1128, 1092, 751, 18, 765, 1131, 1153, 1176, 224, 1182,
- 1200, 335, 1205, 335, 15, 1209, 1213, 1229, -411, 26,
- 438, 119, 120, 1297, 1218, 1219, 26, 1220, 98, 99,
- 225, 205, 58, 1297, 1221, 543, 1226, 1289, 1228, 513,
- 1297, 1427, 1428, 1230, 1289, 1233, -411, -411, 1241, 807,
- 1237, -411, 1487, 1488, 1489, 1296, 8, 9, 674, 1518,
- 12, 13, 674, 1243, 1244, 1296, 14, 95, 96, 97,
- 415, 418, 1296, 1249, 72, 226, 227, 228, 1245, 712,
- 16, 1248, 17, 1252, 72, 1288, 718, 1255, 20, 1260,
- 1161, 72, 1309, 1318, 1319, 1288, 581, 23, 1322, 674,
- 448, 548, 1288, 1549, 1326, 674, 26, -655, 130, 131,
- 478, 1520, 1521, 58, 1348, 152, 1349, 1355, 26, -300,
- 98, 99, 100, 58, 574, 575, 576, 577, 578, 1359,
- 58, 1360, 1365, 1366, -300, 582, 583, 1367, -300, 1183,
- 584, 585, 586, 587, 1368, 857, 1398, 674, 1375, 1384,
- 799, 1385, 1386, 1400, -300, 1413, 1459, 152, 95, 110,
- 111, 1464, 221, 222, 223, 1460, -300, -300, 1416, -300,
- 1440, -300, 1466, 674, 438, 438, 1441, 438, 438, 1571,
- 438, 1442, 378, 379, 380, 674, 18, 1443, 1500, 1448,
- 534, 224, 1533, 1297, 1297, 1500, 371, 1289, 1297, 1467,
- -300, -300, 1289, 217, 1474, 95, 110, 111, 498, 1495,
- 852, 112, 113, 1496, 345, -300, 853, 1504, 674, 1514,
- 674, 1515, 1524, 1526, 1532, 1296, 1296, 381, 335, 1541,
- 1296, 677, 1542, 1550, 151, 382, 383, 1553, 1297, 293,
- 1563, 1551, 1289, 21, 72, 72, 293, 1297, 1567, 72,
- 1574, 1289, 1575, 906, 1578, 1288, 1288, 1581, 112, 113,
- 1288, 1583, 1584, 731, 732, 1588, 1592, 1597, 1596, 1599,
- 1296, 1604, 208, 216, 1605, 1500, 1607, 1608, 291, 1296,
- 1, 5, 679, 58, 58, 291, 156, 430, 58, 72,
- 536, 537, 1471, 7, 8, 246, 10, 1297, 72, 927,
- 1288, 1289, 1135, 438, 438, 674, 429, 543, 427, 1288,
- 116, 117, 118, 152, 152, 152, 696, 1548, 1037, 127,
- 128, 676, 709, 713, 13, 1261, 293, 355, 58, 1296,
- 713, 21, 154, 405, 674, 1297, 1603, 58, 247, 1289,
- 1455, 1358, 152, 152, 152, 101, 27, 28, 72, 416,
- 419, 519, 977, 115, 1350, 1351, 1352, 1353, 1127, 1288,
- 490, 1126, 605, 119, 120, 291, 1188, 1296, 1320, 26,
- 248, 130, 131, 1207, 154, 1343, 1039, 917, 32, 858,
- 1124, 471, 386, 602, 1411, 606, 72, 58, 1306, 1570,
- 1582, 1587, 151, 335, 713, 607, 229, 1288, 1545, 1589,
- 1175, 1417, 438, 438, 438, 608, 217, 0, 609, 610,
- 95, 110, 111, 0, 650, 651, 652, 1388, 0, 0,
- 0, 1023, 1024, 9, 10, 58, 335, 0, 709, 0,
- 0, 828, 829, 0, 833, 834, 835, 836, 837, 838,
- 839, 840, 841, 842, 843, 844, 845, 846, 847, 848,
- 849, 850, 851, 0, 713, 384, 0, 0, 0, 21,
- 713, 438, 438, 112, 113, 0, 0, 1000, 95, 409,
- 410, 0, 26, 0, 27, 28, 0, 411, 1191, 0,
- 1025, 0, 0, 0, 0, 1082, 1083, 0, 189, 254,
- 713, 1088, 1445, 0, 0, 0, 0, 713, 190, 0,
- 0, 0, 0, 0, 0, 1100, 32, 1101, 1047, 1102,
- 0, 191, 0, 254, 1052, 0, 0, 0, 0, 919,
- 921, 98, 113, 0, 0, 1465, 545, 0, 0, 438,
- 154, 154, 154, 0, 0, 335, 0, 7, 8, 9,
- 10, 0, 254, 13, 0, 596, 0, 296, 390, 391,
- 10, 254, 597, 0, 1130, 0, 611, 611, 611, 154,
- 154, 154, 0, 0, 486, 488, 0, 624, 8, 9,
- 10, 0, 95, 96, 97, 21, 0, 0, 499, 0,
- 152, 605, 709, 0, 0, 21, 0, 0, 26, 1498,
- 27, 28, 598, 0, 0, 831, 1498, 1151, 26, 0,
- 27, 315, 304, 625, 940, 21, 0, 0, 254, 0,
- 0, 0, 0, 0, 941, 543, 0, 1108, 26, 1109,
- 130, 131, 32, 0, 608, 98, 99, 942, 610, 95,
- 96, 97, 599, 0, 7, 8, 9, 10, 1011, 0,
- 0, 0, 254, 0, 0, 0, 0, 0, 535, 0,
- 152, 152, 152, 0, 0, 0, 0, 335, 335, 674,
- 335, 614, 618, 621, 416, 419, 0, 254, 0, 0,
- 0, 0, 21, 0, 359, 713, 1498, 0, 0, 95,
- 110, 111, 98, 99, 0, 26, 0, 27, 28, 0,
- 643, 188, 1573, 7, 127, 128, 10, 1073, 0, 653,
- 0, 189, 0, 0, 116, 747, 748, 296, 8, 9,
- 10, 190, 643, 0, 1586, 95, 110, 111, 0, 32,
- 0, 831, 0, 545, 191, 0, 545, 0, 0, 713,
- 713, 21, 112, 113, 709, 713, 0, 0, 247, 0,
- 0, 0, 416, 812, 0, 21, 27, 28, 0, 713,
- 0, 713, 247, 713, 0, 0, 545, 119, 120, 254,
- 27, 315, 0, 0, 0, 0, 0, 0, 112, 1468,
- 248, 0, 0, 0, 80, 0, 0, 0, 32, 0,
- 0, 1214, 0, 1216, 104, 1262, 0, 1263, 1123, 1264,
- 0, 0, 32, 0, 133, 0, 0, 154, 713, 0,
- 142, 142, 0, 142, 0, 80, 0, 7, 8, 9,
- 10, 0, 80, 335, 0, 0, 254, 902, 611, 611,
- 746, 611, 0, 0, 0, 199, 1147, 80, 901, 0,
- 0, 0, 0, 0, 0, 233, 0, 0, 1247, 0,
- 0, 713, 104, 0, 0, 21, 0, 0, 0, 711,
- 0, 0, 247, 258, 104, 0, 711, 0, 713, 0,
- 27, 28, 0, 0, 0, 0, 0, 154, 154, 154,
- 0, 0, 0, 95, 110, 111, 104, 0, 0, 0,
- 0, 0, 0, 1364, 248, 824, 611, 0, 611, 611,
- 0, 611, 32, 0, 0, 0, 0, 0, 254, 1198,
- 296, 8, 9, 10, 133, 0, 80, 0, 0, 0,
- 142, 0, 0, 407, 142, 0, 1321, 142, 142, 142,
- 711, 1325, 0, 881, 883, 254, 112, 1470, 0, 872,
- 0, 80, 611, 0, 0, 80, 0, 0, 21, 0,
- 0, 199, 80, 0, 0, 247, 0, 0, 709, 709,
- 0, 0, 1227, 27, 315, 0, 0, 0, 0, 199,
- 199, 199, 0, 0, 0, 0, 0, 7, 8, 9,
- 10, 0, 335, 1362, 0, 0, 0, 248, 0, 0,
- 711, 0, 0, 0, 0, 32, 711, 0, 199, 0,
- 0, 945, 0, 614, 618, 0, 621, 0, 934, 0,
- 0, 0, 902, 0, 489, 21, 0, 0, 0, 951,
- 0, 605, 254, 0, 104, 0, 711, 0, 26, 611,
- 27, 28, 0, 711, 0, 142, 0, 0, 254, 713,
- 0, 713, 0, 713, 940, 0, 0, 618, 0, 824,
- 0, 709, 0, 0, 941, 0, 0, 0, 0, 0,
- 709, 709, 32, 0, 608, 709, 0, 942, 610, 479,
- 211, 212, 0, 104, 516, 0, 14, 0, 0, 0,
- 1327, 1328, 0, 1436, 1437, 296, 127, 128, 10, 0,
- 0, 0, 0, 18, 0, 0, 0, 0, 20, 0,
- 1447, 0, 611, 0, 611, 0, 709, 23, 0, 416,
- 812, 0, 0, 0, 0, 611, 0, 0, 104, 901,
- 901, 901, 603, 21, 516, 516, 619, 0, 0, 0,
- 247, 0, 0, 0, 618, 80, 0, 713, 27, 315,
- 0, 0, 0, 0, 0, 7, 8, 9, 10, 0,
- 0, 242, 0, 151, 0, 0, 1483, 1484, 0, 0,
- 0, 1383, 611, 611, 611, 0, 0, 0, 0, 133,
- 32, 0, 0, 0, 0, 1493, 1494, 0, 104, 0,
- 199, 104, 0, 21, 0, 0, 0, 0, 0, 605,
- 0, 0, 0, 0, 142, 1173, 26, 142, 27, 28,
- 0, 709, 142, 0, 0, 0, 901, 1103, 0, 1104,
- 80, 711, 940, 0, 0, 0, 0, 1426, 0, 0,
- 1110, 0, 941, 0, 881, 883, 0, 0, 0, 0,
- 32, 0, 608, 0, 0, 942, 610, 0, 199, 709,
- 199, 0, 199, 199, 199, 210, 211, 212, 199, 127,
- 128, 0, 14, 199, 8, 9, 199, 163, 12, 13,
- 0, 0, 717, 653, 14, 711, 711, 881, 883, 18,
- 0, 711, 80, 0, 20, 0, 934, 0, 16, 0,
- 17, 18, 0, 23, 0, 711, 20, 711, 0, 711,
- 0, 713, 605, 0, 0, 23, 0, 605, 684, 26,
- 0, 130, 131, 0, 26, 0, 130, 131, 1485, 1486,
- 104, 104, 104, 104, 0, 606, 0, 1491, 0, 0,
- 606, 0, 254, 0, 254, 607, 0, 0, 0, 0,
- 607, 0, 0, 0, 711, 608, 0, 0, 609, 610,
- 608, 0, 0, 609, 610, 1511, 0, 0, 0, 0,
- 0, 0, 416, 419, 127, 128, 0, 0, 0, 242,
- 611, 611, 611, 611, 611, 0, 254, 0, 611, 0,
- 104, 0, 516, 0, 0, 0, 0, 711, 0, 0,
- 0, 416, 1308, 0, 603, 0, 516, 516, 0, 619,
- 0, 901, 901, 901, 711, 0, 903, 605, 0, 0,
- 905, 0, 0, 0, 26, 0, 130, 131, 572, 573,
- 574, 575, 576, 577, 578, 199, 1224, 0, 0, 0,
- 606, 570, 571, 572, 573, 574, 575, 576, 577, 578,
- 607, 0, 7, 8, 9, 10, 0, 0, 13, 133,
- 608, 0, 0, 609, 610, 0, 133, 0, 0, 0,
- 0, 0, 0, 254, 199, 947, 199, 199, 233, 619,
- 0, 0, 0, 0, 0, 1103, 1104, 881, 883, 0,
- 21, 0, 0, 1110, 709, 0, 605, 0, 611, 611,
- 0, 611, 0, 26, 0, 27, 28, 296, 8, 9,
- 10, 0, 0, 0, 0, 0, 881, 883, 0, 1140,
- 199, 0, 1266, 0, 947, 127, 128, 0, 1224, 1141,
- 504, 199, 199, 0, 199, 0, 0, 32, 0, 608,
- 0, 0, 1142, 610, 0, 21, 0, 0, 0, 0,
- 0, 0, 247, 0, 0, 0, 254, 0, 0, 0,
- 27, 315, 133, 0, 0, 80, 0, 80, 605, 0,
- 0, 0, 1034, 80, 80, 26, 0, 130, 131, 0,
- 0, 0, 104, 254, 507, 711, 0, 711, 104, 711,
- 0, 606, 32, 0, 0, 516, 516, 516, 0, 0,
- 0, 607, 0, 1103, 1104, 0, 1110, 516, 0, 0,
- 0, 608, 0, 0, 609, 610, 0, 0, 0, 0,
- 0, 162, 0, 7, 8, 9, 10, 163, 12, 13,
- 0, 0, 0, 0, 14, 0, 0, 0, 1173, 0,
- 0, 0, 254, 1390, 1391, 0, 0, 0, 16, 0,
- 17, 18, 19, 0, 0, 0, 20, 0, 0, 0,
- 0, 21, 8, 9, 0, 23, 12, 13, 164, 0,
- 0, 0, 14, 0, 26, 0, 27, 28, 0, 0,
- 516, 0, 516, 711, 0, 0, 16, 0, 17, 104,
- 30, 0, 0, 516, 20, 104, 0, 903, 903, 903,
- 31, 0, 0, 23, 1117, 0, 0, 0, 32, 416,
- 1308, 0, 26, 33, 130, 131, 588, 0, 34, 0,
- 8, 9, 0, 0, 12, 242, 0, 0, 0, 0,
- 14, 0, 1451, 0, 0, 0, 104, 83, 104, 0,
- 199, 199, 1144, 0, 16, 0, 17, 106, 0, 0,
- 0, 589, 20, 0, 1469, 1472, 126, 134, 210, 211,
- 212, 23, 0, 143, 143, 14, 143, 0, 83, 0,
- 26, 0, 130, 131, 0, 83, 0, 0, 0, 0,
- 0, 0, 18, 0, 1144, 0, 0, 20, 143, 0,
- 83, 0, 0, 0, 0, 0, 23, 104, 234, 0,
- 0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
- 104, 912, 0, 1034, 0, 0, 0, 244, 0, 0,
- 0, 0, 104, 0, 0, 7, 8, 9, 10, 163,
- 12, 13, 1516, 0, 0, 1203, 14, 711, 0, 0,
- 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
- 16, 0, 17, 18, 19, 104, 0, 104, 20, 0,
- 0, 0, 0, 21, 0, 0, 0, 23, 0, 83,
- 164, 0, 0, 143, 0, 0, 26, 143, 27, 28,
- 143, 143, 143, 0, 0, 104, 0, 0, 0, 0,
- 516, 516, 30, 516, 83, 0, 0, 0, 83, 0,
- 0, 0, 31, 0, 143, 83, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 33, 0, 0, 0, 0,
- 34, 0, 143, 143, 143, 0, 8, 9, 0, 163,
- 12, 13, 0, 0, 717, 0, 14, 0, 199, 199,
- 199, 199, 1144, 0, 0, 0, 199, 0, 0, 0,
- 16, 143, 17, 18, 0, 0, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 0, 23, 0, 1144,
- 1144, 1144, 0, 0, 0, 0, 26, 0, 130, 131,
- 365, 367, 0, 0, 7, 127, 128, 10, 143, 6,
- 242, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 199, 0, 14, 0, 0, 142, 0, 80, 0, 0,
- 0, 0, 0, 0, 0, 15, 16, 0, 17, 18,
- 19, 0, 21, 0, 20, 0, 244, 143, 0, 21,
- 0, 0, 22, 23, 24, 26, 25, 27, 28, 0,
- 0, 0, 26, 0, 27, 28, 0, 0, 29, 0,
- 0, 30, 0, 0, 0, 0, 199, 199, 30, 199,
- 0, 31, 0, 0, 0, 0, 0, 0, 31, 32,
- 0, 244, 0, 0, 33, 604, 32, 143, 143, 620,
- 0, 33, 0, 0, 629, 0, 34, 0, 83, 0,
- 0, 0, 0, 0, 0, 199, 947, 199, 564, 565,
- 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
- 576, 577, 578, 760, 104, 7, 8, 761, 10, 163,
- 12, 13, 666, 0, 0, 0, 14, 0, 0, 0,
- 0, 244, 0, 143, 244, 0, 0, 0, 0, 0,
- 16, 0, 17, 18, 19, 0, 0, 143, 20, -521,
- 143, 0, 0, 21, 0, 143, 0, 23, 762, 0,
- 164, 0, 0, 83, 0, 0, 26, 0, 27, 28,
- 0, 0, 763, 0, 764, 0, 0, 7, 127, 128,
- 10, 0, 30, 13, 7, 8, 9, 10, 0, 0,
- 13, 143, 31, 143, 0, 143, 143, 143, 547, 0,
- 32, 143, 0, 0, 0, 33, 143, 1144, 0, 143,
- 0, 0, 0, 0, 0, 21, 0, 0, 0, 0,
- 0, -521, 21, 0, 759, 83, 0, 0, 26, 0,
- 27, 28, 0, 0, 0, 26, 0, 27, 28, 0,
- 0, 0, 0, 0, 147, 0, 0, 0, 0, 0,
- 0, 189, 0, 0, 148, 0, 0, 0, 0, 0,
- 0, 190, 32, 244, 244, 244, 244, 149, 0, 32,
- 0, 673, 0, 0, 191, 0, 0, 1144, 1144, 1144,
- 7, 8, 9, 10, 163, 12, 13, 0, 0, 717,
- 0, 14, 7, 8, 9, 10, 104, 0, 504, 0,
- 0, 199, 0, 0, 0, 16, 0, 17, 18, 0,
- 0, 0, 0, 20, 0, 0, 0, 0, 21, 0,
- 0, 0, 23, 244, 605, 143, 0, 0, 0, 719,
- 21, 26, 0, 27, 28, 0, 605, 0, 0, 143,
- 143, 0, 620, 26, 0, 27, 28, 1140, 0, 904,
- 0, 0, 0, 0, 0, 0, 0, 1141, 0, 940,
- 0, 0, 629, 0, 0, 32, 0, 608, 143, 941,
- 1142, 610, 0, 0, 0, 0, 0, 32, 0, 608,
- 0, 0, 942, 610, 0, 0, 0, 0, 0, 0,
- 0, 0, 666, 0, 0, 800, 0, 0, 803, 0,
- 126, 0, 805, 806, 808, 809, 810, 143, 620, 143,
- 143, 234, 620, 0, 0, 547, 567, 568, 569, 570,
- 571, 572, 573, 574, 575, 576, 577, 578, 827, 0,
- 0, 0, 0, 0, 759, 0, 0, 0, 459, 461,
- 465, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 143, 0, 0, 0, 620, 0, 0,
- 0, 0, 0, 0, 143, 143, 0, 143, 0, 0,
- 8, 9, 0, 0, 12, 242, 0, 0, 0, 0,
- 14, 0, 884, 0, 0, 0, 0, 0, 0, 884,
- 0, 0, 0, 0, 16, 134, 17, 0, 83, 0,
- 83, 0, 20, 0, 0, 1035, 83, 83, 0, 0,
- 0, 23, 0, 605, 0, 244, 0, 0, 0, 0,
- 26, 244, 130, 131, 0, 0, 0, 0, 143, 143,
- 143, 0, 0, 0, 0, 0, 606, 0, 0, 0,
- 143, 0, 0, 0, 0, 0, 607, 51, 0, 0,
- 0, 0, 0, 0, 0, 0, 608, 0, 0, 609,
- 610, 0, 0, 0, 0, 0, -383, 8, 9, -383,
- -383, 12, 242, 51, 51, 0, 150, 14, 51, 0,
- 0, 0, 0, 0, 0, 51, 0, 0, 0, 0,
- 0, 16, 0, 17, -383, 0, 0, 673, 51, 20,
- 51, 0, 0, 0, -383, 0, 0, 0, 23, 0,
- 605, 0, 0, 143, 0, 143, 0, 26, 0, 130,
- 131, 0, 244, 250, 0, 0, 143, 0, 244, 0,
- 904, 904, 904, 606, 0, 0, 0, 629, 0, 0,
- 0, 0, 0, 607, 0, 0, 0, 0, 0, 0,
- 0, -383, 0, 608, 0, 719, 609, 610, 0, 0,
- 0, 719, 0, 0, 0, 0, 0, 0, 0, 244,
- 0, 244, 0, 143, 143, 620, 392, 392, 0, 51,
- 0, 0, 0, 51, 0, 250, 0, 51, 0, 0,
- 150, 150, 150, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 51, 0, 0, 729, 51, 730,
- 0, 459, 461, 465, 51, 51, 0, 904, 0, 0,
- 0, 0, 741, 0, 0, 0, 0, 0, 0, 1084,
- 244, 0, 51, 51, 150, 0, 0, 0, 0, 0,
- 0, 759, 250, 244, 127, 128, 1035, 0, 211, 212,
- 0, 0, 0, 0, 14, 244, 0, 0, 0, 0,
- 0, 51, 827, 0, 0, 0, 0, 0, 719, 0,
- 0, 0, 884, 0, 0, 0, 20, 0, 83, 0,
- 0, 0, 0, 0, 0, 23, 0, 605, 244, 0,
- 244, 0, 0, 0, 26, 0, 130, 131, 51, 0,
- 0, 0, 0, 18, 0, 0, 0, 0, 0, 673,
- 606, 1136, 0, 0, 0, 884, 0, 0, 244, 0,
- 607, 0, 0, 143, 143, 0, 143, 0, 0, 0,
- 608, 0, 0, 616, 610, 557, 558, 559, 560, 561,
- 562, 563, 564, 565, 566, 567, 568, 569, 570, 571,
- 572, 573, 574, 575, 576, 577, 578, 884, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 544, 0,
- 1178, 143, 143, 143, 143, 620, 1184, 0, 0, 143,
- 0, 0, 0, 719, 0, 392, 759, 0, 0, 0,
- 0, 0, 0, 250, 0, 719, 0, 0, 51, 0,
- 0, 0, 904, 904, 904, 0, 0, 0, 7, 8,
- 9, 10, 210, 211, 212, 0, 0, 0, 759, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 719, 0,
- 719, 0, 392, 143, 0, 0, 18, 0, 143, 0,
- 83, 20, 0, 51, 0, 0, 21, 0, 0, 0,
- 23, 0, 605, 0, 0, 0, 0, 51, 1232, 26,
- 51, 27, 28, 0, 0, 51, 0, 0, 0, 0,
- 0, 0, 0, 51, 0, 940, 0, 0, 0, 0,
- 729, 730, 0, 741, 0, 941, 0, 0, 0, 143,
- 143, 0, 143, 32, 0, 608, 0, 0, 942, 610,
- 0, 51, 0, 51, 0, 150, 150, 150, 0, 0,
- 0, 51, 0, 0, 0, 884, 51, 1394, 0, 51,
- 0, 1032, 0, 1023, 1024, 9, 10, 0, 143, 620,
- 143, 0, 0, 0, 0, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 884, 0, 0, 244, 566, 567,
- 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
- 578, 21, 0, 0, 0, 544, 0, 0, 544, 0,
- 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
- 0, 0, 1025, 544, 544, 544, 0, 0, 0, 0,
- 189, 0, 0, 0, 0, 0, 0, 0, 544, 0,
- 190, 0, 0, 0, 78, 0, 0, 0, 32, 7,
- 127, 128, 10, 191, 6, 504, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 14, 0, 0,
- 78, 78, 0, 78, 0, 78, 0, 0, 0, 0,
- 904, 16, 78, 17, 18, 0, 250, 21, 0, 20,
- 0, 0, 0, 0, 21, 78, 0, 78, 23, 544,
- 26, 426, 27, 28, 0, 0, 0, 26, 0, 27,
- 28, 0, 0, 29, 0, 0, 30, 0, 51, 0,
- 0, 0, 0, 30, 0, 0, 31, 1178, 0, 459,
- 461, 465, 0, 31, 32, 0, 0, 0, 0, 33,
- 0, 32, 392, 0, 0, 0, 33, 0, 155, 392,
- 904, 904, 904, 0, 0, 0, 0, 51, 51, 51,
- 51, 0, 0, 0, 0, 0, 0, 0, 0, 244,
- 200, 0, 0, 465, 143, 0, 78, 0, 0, 0,
- 78, 0, 0, 0, 78, 0, 0, 78, 78, 78,
- 0, 0, 0, 0, 8, 9, 0, 163, 12, 13,
- 0, 78, 1032, 51, 14, 78, 0, 51, 0, 0,
- 0, 78, 78, 0, 51, 51, 0, 51, 16, 0,
- 17, 18, 0, 0, 0, 0, 20, 0, 0, 78,
- 78, 78, 0, 0, 0, 667, 0, 0, 164, 0,
- 0, 0, 0, 0, 26, 0, 130, 131, 51, 0,
- 51, 0, 0, 0, 0, 51, 51, 51, 78, 0,
- 0, 0, 155, 155, 155, 561, 562, 563, 564, 565,
- 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
- 576, 577, 578, 0, 544, 0, 200, 0, 0, 0,
- 0, 0, 547, 0, 0, 78, 0, 0, 0, 0,
- 0, 0, 0, 0, 200, 200, 466, 0, 0, 673,
+ 423, 617, 433, 178, 475, 152, 122, 431, 252, 36,
+ 432, 249, 415, 418, 680, 706, 974, 42, 388, 710,
+ 501, 681, 57, 627, 626, 523, 526, 887, 739, 294,
+ 59, 103, 657, 245, 887, 678, 757, 59, 394, 395,
+ 36, 1088, 494, 818, 220, 695, 857, 393, 42, 951,
+ 72, 396, 205, 57, 170, 42, 631, 632, 556, 1413,
+ 172, 173, 491, 362, 366, 387, 1416, 243, 957, 1451,
+ 252, 1506, 1398, 35, 480, 483, 140, 144, 186, 292,
+ 1013, 72, 1015, 345, 1050, 345, 474, 345, 72, 1042,
+ 1055, 513, 1510, 166, 167, 482, 579, 778, 440, 595,
+ 256, 1511, 345, 345, 35, 58, 595, 595, 686, 687,
+ 55, 165, 455, 159, 982, 352, 1538, 353, 816, 152,
+ 152, 152, 192, 360, 630, 1163, 1540, 252, -1, 1520,
+ 293, 402, 345, 909, 345, 744, 58, 151, 138, 504,
+ 502, 55, 580, 58, 513, 703, -144, -2, 171, 1535,
+ 1547, 86, 781, 160, 401, -352, 59, -291, 456, 441,
+ 59, 983, 404, 152, 984, 987, 478, 205, 889, 779,
+ 1569, 94, 437, 428, 1573, 1169, 186, 170, 42, 57,
+ 803, 1561, 72, 172, 173, 291, 503, 958, 154, 508,
+ 220, 727, 442, 414, 417, 204, 1548, 1114, 220, 923,
+ 87, 1164, 704, 692, 963, 1324, 1325, 72, 1577, 174,
+ 817, 72, 988, 1538, 220, 989, 166, 167, 1592, 1345,
+ 186, -361, 737, 15, 1514, 1170, 217, -352, 577, 578,
+ 743, 441, 8, 506, 165, 458, 460, 58, 192, 95,
+ 110, 111, 400, 1508, 88, 1451, 972, 601, 924, -362,
+ 1043, 15, 416, 419, -361, 549, 600, 550, -361, 211,
+ 212, 256, 58, 496, 442, 14, 58, 55, 1254, 38,
+ 91, 171, 93, 1545, 399, 975, 359, 8, 9, 700,
+ 39, 543, -362, 592, 130, 131, -362, 20, 243, 135,
+ 92, -361, 112, 113, 1121, 151, 23, 1124, 605, 1044,
+ 38, 627, 154, 154, 154, 936, 665, 1136, 507, 497,
+ 204, 39, 1192, 961, 962, 1087, 1390, 1255, 887, -362,
+ 345, 927, 660, 1578, 1197, 89, 1315, 415, 418, 130,
+ 131, -298, 174, 292, 1374, 480, 483, 910, 1150, 1151,
+ 680, 243, 1424, 480, 802, 90, 154, 993, 1374, 345,
+ 636, 1430, 1431, 1602, 1432, 483, 742, -120, 1216, 15,
+ 1218, 887, 107, 1042, 964, 747, 748, 1018, 256, 127,
+ 128, 501, 217, 401, 483, 1316, 617, -298, -298, 633,
+ 217, 217, 1007, 1375, 293, 235, -143, 218, 219, 236,
+ -120, 15, -291, 677, -120, -411, 205, 1482, 137, 40,
+ 1019, 72, 1603, 887, 1020, 127, 128, 605, 965, 714,
+ 217, 668, 1008, 359, 1358, 26, 579, 966, 967, -619,
+ 220, 130, 131, 771, -411, 59, 622, -120, -411, 545,
+ 40, 1139, 1089, 790, 152, 152, 152, 1021, 792, 291,
+ 91, 745, 697, -300, 679, 507, 605, 108, 172, 173,
+ -579, 720, 109, 802, 968, 1116, 58, 130, 131, 217,
+ 92, 635, 580, 220, 129, -619, -619, 683, 1235, 127,
+ 128, 91, 623, -411, 26, 89, 72, 1393, 543, 791,
+ -619, 543, 137, -141, 793, 805, -118, 59, 15, -300,
+ -300, 92, 802, 634, 875, 90, -579, 185, 543, 676,
+ 1523, 1524, 679, 1063, -294, 1251, 1252, 157, 731, 732,
+ 773, 543, 217, 359, 345, 832, 158, 345, 175, -118,
+ 345, 130, 131, -118, 345, 808, 808, 808, 808, 127,
+ 128, 58, 960, 179, 504, 592, 171, 345, 72, 937,
+ 876, 1447, 860, 855, 799, 248, 1162, 345, 877, 871,
+ 345, 183, 138, 680, 757, 938, -118, 676, 184, 861,
+ 681, 765, 887, 210, 211, 212, 879, 416, 419, 217,
+ 14, 932, 139, 1003, 678, 1005, 665, 627, 626, 26,
+ 1009, 130, 131, 933, 1198, 292, -579, 18, 862, 1357,
+ 18, 887, 20, 58, 878, 514, 88, 174, 772, 304,
+ 91, 23, 373, 480, 677, 515, 15, 513, -142, 238,
+ -411, 720, 880, 127, 128, 26, 684, 154, 154, 154,
+ 92, 895, 90, 997, 240, -300, 545, 556, 295, 545,
+ 768, 138, -579, 470, 1135, 982, 293, 256, -411, -411,
+ -300, 217, 217, -411, -300, 416, 813, 1224, 1226, 217,
+ 122, 388, 881, 883, 1240, 679, 345, 358, 370, 545,
+ -300, 217, 679, 26, 371, 130, 131, 896, 897, 998,
+ 205, 356, -300, -300, 243, -300, 1022, -300, 630, 864,
+ 217, 1010, 983, 1156, 973, 984, 930, -822, 91, 865,
+ 1158, 291, 296, 390, 391, 10, 771, 1396, 771, 368,
+ 972, 372, 912, 866, 771, 771, -300, -300, 92, 137,
+ 676, 771, 1425, 1160, 8, 9, 376, 676, 374, 677,
+ 903, -300, 1023, 377, 88, 1016, 1017, 1011, 1453, 1157,
+ 21, 397, 757, 375, 1045, 447, 1159, 247, 92, 1002,
+ 1226, 944, 185, 949, 950, 27, 315, 803, -291, 1311,
+ 1313, 1556, 448, 137, 1317, 1211, 1212, 1213, 359, 1161,
+ 59, 420, 59, 8, 9, 421, 130, 131, 205, 59,
+ 679, 127, 128, 1047, 1454, 59, 504, 32, 677, 345,
+ 345, 449, 345, 773, 677, 773, -614, 950, 127, 128,
+ 248, 299, 773, -7, 1355, 218, 434, 1557, 773, 1152,
+ 95, 96, 97, 217, 221, 222, 223, 359, 435, 1051,
+ 1052, 72, 1053, 72, 1580, 130, 131, 127, 128, 160,
+ 72, 26, 1094, 130, 131, 676, 72, 436, 18, 679,
+ 1187, 1188, 1189, 224, 765, 679, 765, 864, 26, 1028,
+ 130, 131, 860, 765, 217, 439, 452, 865, 1594, 765,
+ 451, 26, 345, 98, 99, 225, 543, 1091, 509, 861,
+ 1581, 866, 510, 1570, 8, 9, 58, 26, 58, 130,
+ 131, 772, 511, 1014, 512, 58, 252, 116, 747, 748,
+ 772, 58, 520, 514, 676, 808, 772, 217, 862, 1419,
+ 676, 677, 529, 515, 1595, 720, 1236, 1237, 530, 1239,
+ 226, 227, 228, 768, 750, 768, 903, 531, 359, 217,
+ 1027, 1037, 768, 468, 469, 152, 130, 131, 768, 95,
+ 96, 97, 256, 552, 127, 1342, 532, 1445, 26, 15,
+ 119, 120, 677, -411, 808, 345, 476, 477, 677, 549,
+ 507, 550, 679, 533, 881, 883, 679, 1362, 468, 698,
+ 668, 89, 552, 1457, 803, 476, 699, 152, 595, 1199,
+ 1185, -411, -411, 252, -575, 641, 249, -575, 359, 1474,
+ 26, 90, 98, 99, 100, 217, 130, 131, 644, 771,
+ 720, 1372, 1373, 679, 1201, 468, 1476, 1140, 1141, 679,
+ 1203, 1204, 645, 808, 1201, 1206, 647, 676, 1204, 345,
+ 507, 676, 892, 416, 813, 661, 677, 415, 418, 648,
+ 1194, 1195, 476, 1477, -575, 649, -575, -575, 677, -575,
+ 127, 128, 662, 7, 8, 246, 10, 1060, 1061, 1062,
+ -575, 679, -575, 89, 211, 212, 415, 418, 676, 1208,
+ 14, 1377, 690, 59, 676, 468, 1481, 151, -575, -575,
+ 90, -52, 677, 90, 677, 1457, -52, 679, 92, -6,
+ 129, 21, 20, -575, 784, 693, 773, -52, 247, 679,
+ 26, 23, 130, 131, 252, 1457, 27, 28, 95, 110,
+ 111, 1028, 808, 715, 738, 733, 676, 15, 785, 1175,
+ 786, 91, 787, 794, 72, 345, 795, 812, 154, 1378,
+ 248, 89, 814, 679, 1553, 679, 815, 704, 32, 1426,
+ 817, 92, 676, 680, 152, 152, 152, 765, 872, 874,
+ 1531, 90, 888, 890, 676, 1243, 892, 1406, 916, 543,
+ 915, 112, 113, 114, 1457, 1404, 508, 1409, 973, 677,
+ 154, 925, 706, 152, 152, 152, 929, 926, -181, 58,
+ 931, 20, 1027, -294, 772, 939, 959, 803, 676, 940,
+ 676, 1298, 1596, 137, -181, 953, -181, 441, 720, 979,
+ 980, 1290, -821, 981, 995, 1351, 1352, 1353, 1354, 986,
+ 127, 128, 999, 1000, 1297, 13, 768, 1004, 1257, 1258,
+ 679, 1006, 1046, 1064, 1330, 1331, 1065, 1340, 1341, 1069,
+ 1343, 1024, 1025, 9, 10, 1066, 1067, 1068, 1070, 95,
+ 110, 111, 72, 221, 222, 223, 1071, 1257, 1258, 679,
+ 1072, 1073, 1074, 605, -140, 1076, 95, 110, 111, 498,
+ 26, 1077, 130, 131, 1079, 1289, 1080, 18, 1389, 21,
+ 1083, 1096, 224, 1081, 1082, 676, 606, 416, 419, 116,
+ 117, 118, 26, 1098, 27, 28, 607, 335, 1193, 335,
+ 1026, 335, 112, 113, 21, 1099, 608, 58, 189, 609,
+ 610, 1100, 1101, 1107, 676, 1108, 416, 1309, 190, 112,
+ 113, 1109, 1115, 1117, 1298, 1155, 32, 116, 117, 118,
+ 1118, 191, 205, 1120, 1298, 1428, 1429, 154, 154, 154,
+ 513, 1298, 119, 120, 1290, 1127, 335, 1297, 335, 1130,
+ 808, 1290, 1133, 1446, 1134, 1178, 1184, 1297, 1519, 127,
+ 128, 1202, 1422, 1423, 1297, 1207, 154, 154, 154, 1210,
+ 378, 379, 380, 1219, 1220, 72, 1214, 1221, 26, 1227,
+ 119, 120, 1222, 415, 418, 72, 1466, 1229, 7, 8,
+ 9, 10, 72, 1230, 13, 1231, 1234, 1242, 1289, 378,
+ 379, 380, 605, 1403, 478, 1403, 1550, 1238, 1289, 26,
+ 1250, 130, 131, 1244, 1163, 1289, 7, 8, 9, 10,
+ 152, 26, 242, 382, 383, 606, 21, 1245, 1246, 1249,
+ 58, 1253, 605, 1256, 1261, 607, 1310, 1319, 1320, 26,
+ 58, 27, 28, 1323, 381, 608, 448, 58, 609, 610,
+ 1499, 1327, 382, 383, 21, 941, 832, 1499, -656, 1349,
+ 605, 1488, 1489, 1490, 1350, 942, 1361, 26, 1356, 27,
+ 28, 1360, 1366, 32, 1367, 608, 543, 1368, 943, 610,
+ 95, 110, 111, 941, 650, 651, 652, 1369, 1376, 1501,
+ 152, 152, 152, 942, 1298, 1298, 1501, 1385, 1386, 1298,
+ 1387, 32, 1399, 608, 1290, 217, 943, 610, 1401, 1290,
+ 574, 575, 576, 577, 578, 345, 1414, 1297, 1297, 1417,
+ 1521, 1522, 1297, 1441, 1442, 534, 1443, 95, 96, 97,
+ 1444, 1554, 677, 112, 113, 1449, 1460, 1499, 674, 1298,
+ 293, 1465, 1461, 1467, 371, 72, 72, 293, 1298, 1290,
+ 72, 1468, 1175, 1574, 1475, 1496, 1497, 1505, 1290, 1515,
+ 1516, 1525, 1297, 335, 731, 732, 1527, 1533, 1289, 1289,
+ 1542, 1297, 359, 1289, 1543, 1587, 1501, 1564, 1551, 1552,
+ 98, 99, 832, 679, 1579, 1568, 1575, 1576, 1572, 101,
+ 72, 1582, 1584, 1585, 1589, 291, 674, 115, 1298, 72,
+ 58, 58, 291, 154, 1593, 58, 1597, 1598, 1290, 1534,
+ 1600, 1605, 1606, 1289, 5, 1608, 1609, 624, 8, 9,
+ 10, 1297, 1289, 416, 1309, 1, 430, 293, 156, 1472,
+ 429, 296, 8, 9, 10, 928, 1298, 1137, 676, 427,
+ 229, 95, 409, 410, 1549, 58, 1290, 1038, 696, 72,
+ 1262, 355, 304, 625, 58, 21, 405, 709, 713, 1297,
+ 7, 127, 128, 10, 1456, 713, 13, 1604, 26, 21,
+ 130, 131, 1289, 154, 154, 154, 247, 1359, 95, 96,
+ 97, 254, 291, 519, 27, 315, 1129, 72, 978, 712,
+ 1128, 1321, 490, 1190, 98, 113, 718, 1040, 21, 384,
+ 1048, 527, 528, 918, 58, 254, 1344, 1126, 217, 471,
+ 1289, 26, 859, 27, 28, 602, 32, 536, 386, 1412,
+ 537, 411, 1307, 538, 1583, 1571, 548, 30, 335, 713,
+ 553, 98, 99, 1546, 254, 1588, 1177, 31, 594, 95,
+ 110, 111, 58, 254, 1590, 32, 0, 1418, 0, 674,
+ 33, 0, 7, 8, 9, 10, 674, 0, 13, 0,
+ 800, 335, 0, 709, 0, 0, 829, 830, 0, 834,
+ 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
+ 845, 846, 847, 848, 849, 850, 851, 852, 0, 713,
+ 21, 0, 112, 113, 0, 713, 605, 116, 747, 748,
+ 254, 749, 0, 26, 0, 27, 28, 0, 486, 488,
+ 0, 0, 116, 747, 748, 0, 0, 0, 80, 1142,
+ 853, 0, 499, 0, 750, 713, 854, 0, 104, 1143,
+ 0, 751, 713, 0, 254, 127, 128, 32, 133, 608,
+ 242, 0, 1144, 610, 142, 142, 0, 142, 26, 80,
+ 119, 120, 0, 0, 920, 922, 80, 0, 0, 254,
+ 0, 0, 0, 907, 674, 119, 120, 0, 0, 199,
+ 335, 80, 0, 0, 296, 127, 128, 10, 605, 233,
+ 0, 0, 95, 110, 111, 26, 104, 130, 131, 0,
+ 0, 0, 535, 7, 8, 9, 10, 258, 104, 504,
+ 0, 606, 0, 0, 0, 208, 0, 216, 0, 0,
+ 0, 607, 21, 232, 95, 110, 111, 709, 0, 247,
+ 104, 608, 0, 674, 609, 610, 0, 27, 315, 674,
+ 0, 21, 0, 0, 643, 112, 1469, 605, 0, 536,
+ 537, 0, 0, 653, 26, 0, 27, 28, 133, 0,
+ 80, 254, 0, 0, 142, 0, 643, 407, 142, 32,
+ 941, 142, 142, 142, 711, 0, 0, 112, 1471, 0,
+ 942, 711, 0, 1012, 0, 80, 0, 0, 32, 80,
+ 608, 0, 0, 943, 610, 199, 80, 0, 0, 0,
+ 0, 0, 0, 335, 335, 0, 335, 0, 581, 0,
+ 0, 0, 0, 199, 199, 199, 0, 0, 254, 0,
+ 0, 713, 0, 0, 296, 390, 391, 10, 0, 0,
+ 208, 7, 8, 9, 10, 0, 438, 0, 0, 0,
+ 0, 0, 199, 1075, 0, 711, 674, 582, 583, 0,
+ 674, 0, 584, 585, 586, 587, 0, 0, 489, 0,
+ 0, 0, 21, 216, 0, 0, 0, 0, 104, 21,
+ 0, 481, 216, 0, 746, 713, 713, 27, 315, 142,
+ 709, 713, 26, 0, 27, 28, 0, 674, 188, 0,
+ 0, 0, 0, 674, 0, 713, 0, 713, 189, 713,
+ 254, 0, 0, 0, 0, 711, 1084, 1085, 190, 32,
+ 0, 711, 1090, 0, 0, 0, 32, 104, 516, 0,
+ 0, 191, 0, 0, 0, 0, 1102, 254, 1103, 0,
+ 1104, 0, 0, 0, 1125, 674, 210, 211, 212, 825,
+ 0, 711, 0, 14, 713, 127, 128, 0, 711, 0,
+ 504, 0, 7, 8, 9, 10, 210, 211, 212, 335,
+ 18, 674, 104, 14, 0, 20, 603, 0, 516, 516,
+ 619, 0, 1149, 674, 23, 1132, 0, 0, 0, 80,
+ 18, 0, 0, 873, 0, 20, 0, 713, 605, 913,
+ 21, 0, 0, 0, 23, 26, 605, 130, 131, 0,
+ 0, 0, 0, 26, 713, 27, 28, 674, 0, 674,
+ 0, 606, 0, 133, 254, 0, 0, 0, 1153, 941,
+ 0, 607, 104, 0, 199, 104, 0, 0, 0, 942,
+ 254, 608, 0, 0, 609, 610, 0, 32, 142, 608,
+ 0, 142, 943, 610, 0, 1200, 142, 0, 0, 0,
+ 0, 0, 935, 0, 80, 0, 0, 0, 0, 208,
+ 216, 0, 596, 952, 296, 390, 391, 10, 0, 597,
+ 0, 0, 0, 0, 0, 7, 127, 128, 10, 1097,
+ 0, 242, 199, 0, 199, 0, 199, 199, 199, 0,
+ 0, 0, 199, 825, 674, 709, 709, 199, 0, 1228,
+ 199, 0, 21, 0, 0, 0, 0, 536, 537, 598,
+ 0, 0, 0, 21, 0, 26, 80, 27, 315, 335,
+ 0, 0, 0, 674, 0, 438, 26, 711, 27, 28,
+ 0, 0, 481, 216, 0, 0, 438, 210, 211, 212,
+ 481, 0, 30, 0, 14, 0, 0, 0, 0, 599,
+ 0, 0, 31, 438, 104, 104, 104, 104, 0, 0,
+ 32, 18, 0, 0, 0, 33, 20, 0, 7, 127,
+ 128, 10, 0, 0, 13, 23, 713, 0, 713, 0,
+ 713, 711, 711, 0, 0, 0, 0, 711, 709, 572,
+ 573, 574, 575, 576, 577, 578, 0, 709, 709, 0,
+ 0, 711, 709, 711, 0, 711, 21, 1263, 0, 1264,
+ 0, 1265, 0, 0, 104, 0, 516, 1328, 1329, 26,
+ 0, 27, 28, 0, 0, 479, 211, 212, 603, 0,
+ 516, 516, 14, 619, 0, 147, 0, 0, 0, 0,
+ 904, 0, 709, 0, 906, 148, 0, 0, 0, 18,
+ 711, 0, 0, 32, 20, 0, 0, 0, 149, 199,
+ 0, 0, 0, 23, 1001, 0, 0, 0, 0, 0,
+ 0, 0, 0, 713, 0, 7, 8, 9, 10, 0,
+ 0, 0, 0, 133, 0, 0, 7, 127, 128, 10,
+ 133, 0, 0, 711, 216, 0, 0, 1384, 199, 948,
+ 199, 199, 233, 619, 1365, 0, 1049, 1241, 653, 0,
+ 711, 0, 1054, 21, 0, 254, 0, 254, 0, 605,
+ 0, 935, 0, 0, 21, 0, 26, 0, 27, 28,
+ 0, 247, 0, 208, 0, 216, 232, 709, 0, 27,
+ 28, 0, 941, 0, 199, 0, 0, 0, 948, 0,
+ 0, 0, 942, 1427, 0, 199, 199, 0, 199, 254,
+ 32, 0, 608, 248, 0, 943, 610, 0, 0, 0,
+ 0, 32, 0, 0, 0, 709, 0, 0, 216, 0,
+ 536, 537, 0, 0, 0, 0, 133, 0, 0, 80,
+ 0, 80, 0, 0, 0, 0, 1035, 80, 80, 0,
+ 481, 0, 0, 438, 80, 0, 0, 104, 0, 0,
+ 0, 0, 0, 104, 0, 1110, 0, 1111, 0, 0,
+ 516, 516, 516, 0, 0, 0, 0, 713, 0, 0,
+ 0, 208, 516, 0, 0, 0, 0, 438, 0, 0,
+ 0, 0, 0, 0, 1486, 1487, 254, 674, 0, 0,
+ 0, 8, 9, 1492, 163, 12, 13, 0, 0, 717,
+ 0, 14, 1225, 567, 568, 569, 570, 571, 572, 573,
+ 574, 575, 576, 577, 578, 16, 0, 17, 18, 0,
+ 0, 1512, 711, 20, 711, 0, 711, 0, 0, 0,
+ 0, 0, 23, 0, 605, 0, 0, 0, 548, 0,
+ 0, 26, 0, 130, 131, 516, 0, 516, 0, 0,
+ 0, 0, 0, 0, 104, 0, 0, 606, 516, 0,
+ 104, 0, 904, 904, 904, 0, 0, 607, 0, 1119,
+ 254, 0, 0, 0, 0, 0, 0, 608, 0, 0,
+ 609, 610, 0, 7, 8, 9, 10, 0, 1267, 0,
+ 0, 0, 0, 0, 1225, 0, 0, 254, 0, 0,
+ 0, 104, 0, 104, 83, 199, 199, 1146, 0, 0,
+ 0, 0, 0, 0, 106, 0, 0, 0, 0, 711,
+ 1215, 21, 1217, 126, 134, 0, 0, 0, 247, 0,
+ 143, 143, 0, 143, 232, 83, 27, 28, 0, 0,
+ 0, 0, 83, 0, 0, 296, 8, 9, 10, 1146,
+ 709, 0, 0, 0, 0, 143, 254, 83, 0, 0,
+ 248, 0, 104, 0, 0, 234, 0, 0, 32, 0,
+ 0, 0, 244, 0, 0, 104, 0, 1248, 1035, 0,
+ 0, 0, 0, 21, 244, 0, 0, 104, 0, 0,
+ 247, 0, 0, 0, 0, 0, 0, 0, 27, 315,
+ 1205, 0, 0, 0, 0, 0, 0, 0, 1391, 1392,
+ 0, 0, 80, 0, 438, 438, 0, 0, 0, 0,
+ 0, 104, 248, 104, 0, 0, 0, 536, 537, 0,
+ 32, 0, 7, 8, 9, 10, 83, 0, 13, 0,
+ 143, 0, 0, 438, 143, 0, 0, 143, 143, 143,
+ 0, 104, 0, 0, 0, 1322, 516, 516, 0, 516,
+ 1326, 83, 0, 0, 0, 83, 0, 459, 461, 465,
+ 21, 143, 83, 711, 0, 7, 127, 128, 10, 0,
+ 0, 504, 0, 26, 0, 27, 28, 0, 0, 143,
+ 143, 143, 0, 296, 8, 9, 10, 1452, 0, 189,
+ 0, 0, 0, 0, 199, 199, 199, 199, 1146, 190,
+ 0, 1363, 199, 21, 0, 0, 0, 32, 143, 1470,
+ 1473, 0, 191, 0, 0, 0, 26, 0, 27, 28,
+ 0, 21, 0, 0, 0, 1146, 1146, 1146, 247, 0,
+ 0, 0, 30, 0, 0, 0, 27, 315, 0, 0,
+ 0, 0, 31, 0, 0, 143, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 199, 0, 0, 0,
+ 507, 142, 0, 0, 0, 0, 0, 0, 32, 0,
0, 7, 8, 9, 10, 210, 211, 212, 0, 0,
- 0, 0, 14, 0, 0, 0, 0, 729, 730, 459,
- 461, 465, 0, 200, 0, 741, 0, 0, 0, 18,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 21,
- 0, 0, 0, 23, 0, 605, 0, 0, 459, 461,
- 465, 0, 26, 0, 27, 28, 7, 8, 9, 10,
- 210, 211, 212, 0, 0, 0, 0, 14, 940, 0,
- 544, 544, 544, 0, 0, 0, 250, 0, 941, 1337,
- 0, 628, 0, 0, 18, 78, 32, 0, 608, 20,
- 0, 984, 610, 0, 21, 0, 0, 0, 23, 517,
- 605, 0, 0, 0, 0, 0, 0, 26, 0, 27,
- 28, 0, 0, 51, 51, 150, 0, 0, 0, 0,
- 250, 0, 0, 189, 0, 0, 0, 0, 0, 0,
- 78, 0, 0, 190, 0, 729, 730, 0, 741, 0,
- 0, 32, 0, 0, 78, 0, 1407, 78, 0, 613,
- 613, 613, 78, 0, 0, 0, 0, 1172, 0, 0,
- 78, 0, 1331, 1332, 9, 10, 0, 127, 128, 0,
- 0, 211, 212, 0, 0, 0, 0, 14, 0, 0,
- 0, 0, 0, 0, 0, 0, 51, 0, 78, 0,
- 78, 0, 78, 78, 78, 0, 0, 0, 78, 20,
- 21, 0, 0, 78, 0, 200, 78, 250, 23, 0,
- 605, 0, 0, 26, 0, 27, 28, 26, 51, 130,
- 131, 1333, 78, 0, 0, 0, 0, 0, 0, 189,
- 0, 0, 0, 606, 0, 0, 0, 0, 0, 190,
- 0, 0, 0, 607, 0, 0, 0, 32, 255, 0,
- 0, 0, 191, 608, 0, 0, 609, 610, 0, 0,
- 0, 0, 0, 200, 0, 200, 0, 466, 466, 466,
- 0, 0, 0, 200, 0, 0, 0, 0, 200, 0,
- 0, 200, 0, 0, 0, 0, 465, 0, 0, 0,
- 250, 0, 0, 0, 0, 0, 0, 7, 8, 9,
- 10, 201, 12, 202, 0, 0, 0, 0, 14, 0,
- 0, 51, 51, 150, 150, 150, 0, 250, 0, 51,
- 0, 422, 16, 0, 17, 18, 0, 0, 0, 0,
- 20, 0, 0, 0, 628, 21, 0, 0, 0, 23,
- 0, 0, 1172, 1172, 1172, 0, 0, 0, 26, 0,
- 27, 28, 0, 457, 203, 0, 459, 461, 465, 0,
- 0, 0, 0, 0, 30, 78, 473, 8, 9, 0,
- 163, 12, 13, 51, 31, 1529, 0, 14, 51, 0,
- 51, 0, 32, 0, 0, 0, 0, 33, 0, 0,
- 0, 16, 0, 17, 18, 0, 0, 866, 0, 20,
- 0, 0, 0, 0, 78, 78, 78, 78, 23, 0,
- 0, 613, 613, 0, 613, 0, 198, 26, 0, 130,
- 131, 613, 0, 0, 0, 76, 0, 0, 0, 51,
- 51, 0, 51, 0, 0, 0, 0, 0, 0, 0,
- 200, 253, 0, 0, 257, 7, 127, 128, 10, 0,
- 78, 141, 145, 0, 78, 0, 76, 0, 0, 0,
- 0, 78, 78, 76, 78, 253, 0, 361, 51, 51,
- 51, 0, 0, 0, 0, 0, 0, 0, 209, 944,
- 0, 944, 944, 21, 613, 0, 0, 0, 0, 0,
- 0, 7, 8, 9, 10, 78, 26, 78, 27, 28,
- 0, 0, 78, 78, 78, 0, 0, 0, 0, 0,
- 0, 0, 147, 0, 0, 0, 0, 0, 7, 8,
- 9, 10, 148, 0, 242, 944, 0, 0, 0, 21,
- 32, 0, 198, 0, 0, 149, 200, 200, 0, 200,
- 0, 0, 26, 0, 27, 28, 0, 0, 1401, 0,
- 198, 198, 198, 0, 0, 0, 21, 403, 189, 0,
- 472, 406, 0, 0, 0, 408, 0, 0, 190, 26,
- 0, 27, 28, 0, 0, 0, 32, 200, 0, 198,
- 1172, 191, 76, 0, 0, 189, 76, 0, 7, 8,
- 9, 10, 0, 209, 13, 190, 0, 0, 0, 0,
- 517, 517, 517, 32, 0, 257, 0, 0, 191, 0,
- 141, 145, 613, 0, 0, 0, 0, 0, 0, 253,
- 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
- 0, 0, 734, 0, 628, 0, 0, 740, 0, 26,
- 0, 27, 28, 0, 0, 0, 1331, 127, 128, 10,
- 1172, 1172, 1172, 0, 0, 462, 0, 0, 0, 0,
- 0, 0, 781, 0, 0, 463, 0, 0, 787, 0,
- 78, 78, 78, 32, 51, 0, 505, 0, 464, 0,
- 795, 796, 0, 797, 21, 613, 0, 613, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 26, 613, 27,
- 28, 0, 613, 613, 613, 1333, 0, 0, 0, 0,
- 0, 253, 257, 30, 1174, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 0, 0, 0, 0, 0, 0,
- 0, 32, 0, 0, 0, 0, 33, 0, 0, 0,
- 0, 0, 0, 78, 0, 944, 944, 1145, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 198, 0, 7, 8, 9, 10, 163, 12, 13,
- 0, 0, 989, 0, 14, 78, 637, 0, 892, 893,
- 0, 0, 0, 892, 0, 0, 0, 0, 16, 1145,
- 17, 18, 0, 0, 0, 0, 20, 0, 0, 0,
- 0, 21, 0, 0, 0, 23, 0, 7, 8, 9,
- 10, 0, 0, 504, 26, 0, 27, 28, 200, 198,
- 0, 198, 0, 198, 198, 198, 0, 0, 0, 198,
- 30, 0, 0, 0, 198, 688, 0, 198, 689, 0,
- 31, 0, 0, 691, 0, 21, 0, 0, 32, 0,
- 0, 76, 0, 33, 0, 0, 0, 0, 26, 0,
- 27, 28, 0, 0, 7, 8, 9, 10, 78, 78,
- 78, 78, 78, 0, 189, 0, 78, 0, 0, 406,
- 0, 408, 0, 0, 190, 0, 0, 0, 0, 0,
- 0, 0, 32, 0, 505, 866, 866, 191, 866, 1174,
- 1174, 1174, 21, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 777, 0, 26, 0, 27, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 189, 0, 0, 0, 78, 0, 78, 0, 0,
- 0, 190, 0, 944, 944, 1145, 1145, 1145, 0, 32,
- 0, 944, 0, 0, 191, 1054, 0, 1056, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 8, 9, 10,
- 201, 12, 202, 0, 1145, 1145, 1145, 14, 0, 0,
- 253, 257, 0, 0, 0, 0, 78, 78, 0, 78,
- 0, 16, 0, 17, 18, 0, 198, 0, 0, 20,
- 0, 0, 0, 0, 21, 200, 0, 0, 23, 0,
- 0, 0, 0, 0, 0, 0, 0, 26, 0, 27,
- 28, 0, 0, 1404, 0, 78, 78, 78, 0, 1090,
- 1091, 0, 1093, 30, 0, 198, 0, 198, 198, 0,
- 0, 0, 0, 31, 0, 0, 0, 0, 0, 0,
- 0, 32, 0, 8, 9, 0, 33, 12, 13, 0,
- 1111, 944, 944, 14, 944, 0, 0, 0, 0, 0,
- 0, 7, 8, 9, 10, 0, 0, 16, 0, 17,
- 0, 198, 0, 0, 0, 20, 0, 0, 0, 0,
- 0, 0, 198, 198, 23, 198, 946, 0, 0, 0,
- 200, 0, 200, 26, 0, 130, 131, 0, 0, 21,
- 1146, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 257, 0, 26, 0, 27, 28, 0, 0, 0, 0,
- 0, 0, 0, 198, 0, 0, 0, 1174, 462, 8,
- 9, 0, 201, 12, 202, 990, 0, 0, 463, 14,
- 0, 0, 688, 689, 0, 691, 32, 0, 0, 0,
- 0, 464, 0, 16, 0, 17, 18, 0, 0, 0,
- 0, 20, 0, 0, 0, 1189, 0, 0, 0, 0,
- 23, 0, 0, 0, 0, 0, 777, 1194, 777, 26,
- 0, 130, 131, 1033, 1040, 777, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 102, 1174, 1174, 1174,
- 0, 0, 466, 0, 0, 121, 102, 0, 0, 0,
- 0, 0, 102, 102, 0, 102, 0, 0, 0, 0,
- 0, 78, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7, 8, 9, 10, 163, 12, 13,
- 0, 0, 0, 0, 14, 0, 0, 231, 0, 0,
- 0, 0, 0, 0, 253, 257, 253, 0, 16, 0,
- 17, 18, 1246, 0, 0, 0, 20, 0, 0, 0,
- 0, 21, 466, 466, 466, 23, 0, 0, 0, 0,
- 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
- 0, 198, 198, 1143, 0, 0, 200, 0, 253, 0,
- 30, 1259, 0, 0, 0, 0, 385, 0, 121, 0,
- 31, 0, 0, 0, 0, 102, 102, 0, 32, 0,
- 0, 0, 102, 33, 102, 102, 102, 0, 412, 102,
- 102, 102, 0, 0, 0, 1143, 565, 566, 567, 568,
+ 0, 0, 14, 244, 143, 0, 0, 1517, 438, 438,
+ 0, 438, 438, 0, 438, 0, 614, 618, 621, 18,
+ 0, 1437, 1438, 0, 20, 0, 0, 0, 0, 21,
+ 0, 199, 199, 23, 199, 605, 0, 0, 1448, 0,
+ 0, 0, 26, 0, 27, 28, 0, 0, 244, 0,
+ 0, 0, 604, 0, 143, 143, 620, 0, 941, 0,
+ 0, 629, 0, 0, 0, 83, 0, 0, 942, 0,
+ 199, 948, 199, 0, 0, 0, 32, 0, 608, 0,
+ 0, 985, 610, 0, 0, 0, 0, 0, 0, 104,
+ 0, 0, 0, 0, 1484, 1485, 0, 0, 0, 666,
+ 0, 0, 0, 0, 0, 208, 216, 0, 244, 0,
+ 143, 244, 0, 1494, 1495, 570, 571, 572, 573, 574,
+ 575, 576, 577, 578, 143, 0, 0, 143, 0, 0,
+ 0, 0, 143, 0, 0, 0, 438, 438, 0, 0,
+ 83, 7, 8, 9, 10, 0, 729, 242, 730, 0,
+ 459, 461, 465, 0, 0, 0, 0, 0, 0, 0,
+ 0, 741, 296, 390, 391, 10, 0, 0, 143, 0,
+ 143, 0, 143, 143, 143, 0, 0, 0, 143, 21,
+ 8, 9, 1146, 143, 12, 242, 143, 0, 0, 0,
+ 14, 0, 26, 0, 27, 28, 0, 0, 0, 0,
+ 21, 759, 83, 0, 16, 0, 17, 0, 189, 0,
+ 0, 0, 20, 26, 0, 27, 315, 0, 190, 0,
+ 0, 23, 0, 605, 0, 0, 32, 0, 0, 0,
+ 26, 191, 130, 131, 0, 438, 438, 438, 0, 0,
+ 244, 244, 244, 244, 0, 0, 606, 32, 0, 0,
+ 0, 0, 1146, 1146, 1146, 0, 607, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 608, 0, 0, 609,
+ 610, 104, 0, 0, 0, 0, 199, 0, 882, 884,
+ 7, 8, 9, 10, 163, 12, 13, 0, 8, 9,
+ 0, 14, 12, 242, 438, 438, 0, 0, 14, 0,
+ 244, 0, 143, 0, 0, 16, 0, 17, 18, 19,
+ 0, 0, 16, 20, 17, 0, 143, 143, 21, 620,
+ 20, 0, 23, 0, 0, 164, 905, 0, 0, 23,
+ 0, 26, 0, 27, 28, 0, 0, 0, 26, 629,
+ 130, 131, 0, 0, 0, 143, 946, 30, 614, 618,
+ 0, 621, 0, 0, 0, 0, 0, 31, 0, 0,
+ 0, 0, 438, 0, 0, 32, 0, 0, 0, 666,
+ 33, 0, 0, 0, 0, 34, 0, 126, 0, 0,
+ 0, 0, 0, 0, 143, 620, 143, 143, 234, 620,
+ 0, 0, 618, 562, 563, 564, 565, 566, 567, 568,
569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
- 0, 141, 145, 760, 0, 7, 8, 761, 10, 163,
- 12, 13, 0, 0, 198, 1346, 14, 0, 0, 1347,
+ 6, 759, 7, 8, 9, 10, 11, 12, 13, 729,
+ 730, 0, 741, 14, 0, 0, 0, 0, 0, 0,
+ 143, 0, 0, 0, 620, 0, 0, 16, 0, 17,
+ 18, 143, 143, 0, 143, 20, 0, 0, 0, 0,
+ 21, 0, 0, 0, 23, 0, 0, 426, 0, 0,
+ 1033, 0, 0, 26, 0, 27, 28, 0, 0, 29,
+ 0, 0, 134, 0, 0, 83, 0, 83, 0, 30,
+ 618, 0, 1036, 83, 83, 0, 0, 0, 0, 31,
+ 83, 127, 128, 244, 0, 211, 212, 32, 0, 244,
+ 0, 14, 33, 0, 0, 0, 143, 143, 143, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 143, 0,
+ 0, 0, 0, 20, 0, 51, 0, 0, 0, 0,
+ 0, 0, 23, 0, 605, 1024, 1025, 9, 10, 0,
+ 0, 26, 0, 130, 131, 0, 0, 0, 0, 0,
+ 0, 51, 51, 1105, 150, 1106, 51, 606, 0, 0,
+ 0, 0, 0, 51, 0, 0, 1112, 607, 0, 0,
+ 882, 884, 0, 21, 0, 0, 51, 608, 51, 0,
+ 616, 610, 0, 0, 0, 0, 26, 0, 27, 28,
+ 0, 143, 0, 143, 1026, 0, 0, 0, 0, 0,
+ 244, 250, 189, 0, 143, 0, 244, 0, 905, 905,
+ 905, 0, 190, 882, 884, 629, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 191, 0, 0, 0, 459,
+ 461, 465, 564, 565, 566, 567, 568, 569, 570, 571,
+ 572, 573, 574, 575, 576, 577, 578, 244, 0, 244,
+ 0, 143, 143, 620, 392, 392, 0, 51, 0, 0,
+ 0, 51, 0, 250, 0, 51, 0, 0, 150, 150,
+ 150, 0, 0, 465, 0, 127, 128, 0, 0, 211,
+ 212, 0, 51, 0, 0, 14, 51, 0, 0, 0,
+ 0, 0, 51, 51, 0, 905, 0, 0, 0, 0,
+ 0, 0, 1033, 0, 0, 0, 0, 20, 244, 0,
+ 51, 51, 150, 0, 0, 0, 23, 0, 605, 759,
+ 250, 244, 0, 0, 1036, 26, 0, 130, 131, 0,
+ 0, 0, 0, 244, 7, 8, 9, 10, 0, 51,
+ 13, 606, 8, 9, 0, 0, 12, 13, 0, 0,
+ 0, 607, 14, 0, 0, 0, 0, 0, 83, 0,
+ 0, 608, 0, 0, 609, 610, 16, 244, 17, 244,
+ 0, 0, 21, 0, 20, 0, 51, 0, 0, 0,
+ 0, 0, 0, 23, 0, 26, 0, 27, 28, 0,
+ 0, 0, 26, 0, 130, 131, 0, 244, 0, 0,
+ 0, 462, 143, 143, 0, 143, 0, 0, 0, 0,
+ 0, 463, 1105, 1106, 882, 884, 0, 0, 0, 32,
+ 1112, 0, 0, 0, 464, 0, 0, 0, 729, 730,
+ 459, 461, 465, 0, 0, 0, 741, 0, 0, 0,
+ 0, 0, 0, 882, 884, 0, 544, 0, 0, 0,
+ 143, 143, 143, 143, 620, 0, 0, 0, 143, 459,
+ 461, 465, 0, 392, 0, 759, 0, 0, 0, 0,
+ 0, 250, 0, 0, 0, 0, 51, 0, 0, 0,
+ 0, 905, 905, 905, 0, 0, 7, 8, 9, 10,
+ 1338, 0, 504, 0, 0, 0, 0, 759, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 0, 17, 18, 19, 472, 0, 0, 20, -522,
- 0, 0, 0, 21, 0, 0, 0, 23, 762, 0,
- 164, 0, 0, 0, 1363, 0, 26, 0, 27, 28,
- 0, 0, 763, 0, 764, 487, 102, 0, 0, 0,
- 0, 0, 30, 0, 1033, 0, 0, 0, 0, 0,
- 0, 0, 31, 0, 0, 0, 0, 102, 0, 0,
- 32, 0, 0, 0, 0, 33, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 777, 0, 0, 0,
- 0, -522, 0, 0, 0, 0, 0, 0, 253, 0,
- 0, 0, 0, 0, 0, 0, 102, 0, 1419, 0,
- 0, 0, 1420, 0, 0, 0, 0, 0, 0, 198,
- 198, 198, 198, 1143, 0, 1258, 0, 198, 0, 0,
- 0, 0, 0, 0, 1438, 1439, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1143, 1143, 1143, 0, 102, 0, 102, 102, 562, 563,
- 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
- 574, 575, 576, 577, 578, 0, 0, 0, 0, 406,
- 408, 198, 0, 0, 0, 0, 0, 505, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1461,
- 0, 102, 563, 564, 565, 566, 567, 568, 569, 570,
- 571, 572, 573, 574, 575, 576, 577, 578, 0, 102,
- 0, 0, 0, 0, 0, 0, 102, 0, 0, 102,
- 0, 0, 0, 0, 102, 0, 0, 198, 198, 0,
- 198, 1338, 0, 0, 0, 0, 1338, 0, 777, 1462,
- 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
+ 392, 0, 143, 0, 0, 0, 0, 143, 0, 0,
+ 0, 51, 0, 0, 21, 0, 0, 0, 0, 1105,
+ 1106, 0, 1112, 0, 0, 51, 0, 26, 51, 27,
+ 28, 0, 0, 51, 0, 729, 730, 0, 741, 0,
+ 0, 51, 0, 189, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 190, 0, 0, 0, 143, 143, 0,
+ 143, 32, 0, 0, 0, 0, 191, 0, 0, 51,
+ 0, 51, 0, 150, 150, 150, 0, 0, 0, 51,
+ 0, 0, 0, 0, 51, 1395, 0, 51, 1332, 1333,
+ 9, 10, 0, 0, 0, 0, 143, 620, 143, 0,
+ 0, 0, 0, 51, 0, 0, 0, 7, 8, 9,
+ 10, 201, 12, 202, 0, 244, 0, 0, 14, 0,
+ 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
+ 0, 0, 16, 544, 17, 18, 544, 0, 0, 26,
+ 20, 27, 28, 0, 0, 21, 0, 1334, 0, 23,
+ 0, 544, 544, 544, 0, 189, 0, 0, 26, 0,
+ 27, 28, 0, 0, 203, 190, 544, 0, 0, 0,
+ 0, 0, 78, 32, 30, 0, 0, 0, 191, 0,
+ 0, 0, 0, 0, 31, 0, 465, 0, 0, 0,
+ 0, 0, 32, 0, 0, 0, 0, 33, 78, 78,
+ 0, 78, 0, 78, 0, 0, 0, 0, 905, 0,
+ 78, 0, 0, 0, 250, 1332, 127, 128, 10, 0,
+ 0, 0, 0, 78, 0, 78, 0, 544, 561, 562,
+ 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
+ 573, 574, 575, 576, 577, 578, 51, 0, 0, 0,
+ 0, 0, 0, 21, 0, 0, 459, 461, 465, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0, 27, 28,
+ 392, 0, 0, 0, 1334, 0, 0, 392, 905, 905,
+ 905, 0, 30, 0, 0, 51, 51, 51, 51, 0,
+ 0, 0, 31, 0, 0, 0, 0, 244, 198, 0,
+ 32, 0, 143, 0, 78, 33, 0, 0, 78, 0,
+ 0, 0, 78, 0, 0, 78, 78, 78, 0, 0,
+ 8, 9, 0, 253, 12, 13, 257, 0, 0, 78,
+ 14, 51, 0, 78, 0, 51, 0, 0, 0, 78,
+ 78, 0, 51, 51, 16, 51, 17, 253, 0, 361,
+ 0, 0, 20, 0, 0, 0, 0, 78, 78, 78,
+ 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 130, 131, 588, 0, 51, 0, 51, 155,
+ 0, 0, 0, 51, 51, 51, 78, 7, 127, 128,
+ 10, 51, 0, 7, 8, 9, 10, 163, 12, 13,
+ 0, 200, 717, 0, 14, 0, 0, 0, 0, 589,
+ 0, 0, 0, 544, 198, 0, 0, 0, 16, 0,
+ 17, 18, 0, 78, 0, 21, 20, 0, 0, 0,
+ 0, 21, 198, 198, 198, 23, 0, 605, 26, 0,
+ 27, 28, 472, 0, 26, 0, 27, 28, 0, 0,
+ 0, 0, 0, 0, 147, 0, 0, 0, 0, 0,
+ 1142, 198, 0, 0, 148, 0, 0, 0, 0, 0,
+ 1143, 0, 32, 0, 0, 0, 0, 149, 32, 0,
+ 608, 0, 0, 1144, 610, 0, 0, 257, 7, 8,
+ 9, 10, 0, 155, 155, 155, 0, 0, 0, 0,
+ 0, 253, 0, 0, 0, 0, 0, 0, 0, 544,
+ 544, 544, 0, 0, 0, 250, 0, 200, 0, 628,
+ 0, 0, 0, 78, 0, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 200, 200, 466, 0, 26,
+ 0, 27, 28, 0, 0, 1402, 0, 0, 0, 0,
+ 0, 0, 51, 51, 150, 189, 0, 0, 0, 250,
+ 0, 0, 0, 0, 200, 190, 0, 0, 78, 0,
+ 0, 0, 0, 32, 0, 0, 0, 0, 191, 0,
+ 0, 0, 78, 0, 0, 78, 0, 0, 0, 0,
+ 78, 0, 0, 253, 257, 0, 1174, 0, 78, 566,
567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
- 577, 578, 0, 0, 0, 0, 198, 0, 198, 0,
- 0, 0, 0, 1432, 0, -475, -475, -475, -475, -475,
- -475, -475, 0, 0, -475, 0, -475, 688, 689, 0,
- 691, 102, 0, 752, 0, 0, 0, -475, 0, -475,
- 0, 0, 0, -475, 0, 0, 0, 0, -475, 0,
- 0, 0, 0, -475, 0, 0, 0, -475, 102, -475,
- 0, 0, 0, 0, 0, 0, -475, 1406, -475, -475,
- -475, -475, -475, 0, -475, -475, -475, -475, -475, -475,
- -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
- -475, -475, -475, -475, -475, -475, -475, 0, -475, -475,
- -475, 0, -475, -475, -475, -475, -475, -475, 0, -475,
- 0, 0, 0, 0, 1433, 0, 0, 0, 1143, -475,
- -475, -475, 0, -475, 760, 0, 7, 8, 761, 10,
- 163, 12, 13, 0, 102, 0, 0, 14, 0, 0,
- 0, 0, 0, 0, 0, 102, 102, 0, 102, 102,
- 0, 16, 0, 17, 18, 19, 0, 0, 0, 20,
- 0, 0, 0, 0, 21, 0, 0, 0, 23, 762,
- 0, 164, 0, 0, 0, 0, 0, 26, 0, 27,
- 28, 0, 0, 763, 0, 764, 0, 0, 1143, 1143,
- 1143, 0, 0, 30, 0, 0, 0, 0, 0, 0,
- 0, 102, 0, 31, 0, 0, 0, 0, 102, 121,
- 0, 32, 198, 0, 0, 0, 33, 0, 0, 0,
- 231, 539, 0, 296, 8, 9, 10, 163, 12, 297,
- 298, 299, 717, 300, 14, 0, 0, 0, 0, 0,
- 0, 0, 0, 752, 0, 0, 0, 0, 16, 301,
- 17, 18, 19, 0, 302, 303, 20, 0, 304, 305,
- 306, 21, 307, 308, 0, 23, 0, 605, 0, 309,
- 310, 311, 312, 313, 26, 0, 27, 315, -308, 0,
- 0, 316, 0, 0, 0, 0, 0, 317, 0, 0,
- 897, 0, 0, 0, 0, 0, 0, 0, 319, 320,
- 898, 752, 0, 0, 102, 0, 322, 323, 324, 0,
- 608, 0, 0, 899, 610, 0, 0, 0, 0, 0,
+ 577, 578, 7, 8, 9, 10, 0, 0, 0, 365,
+ 367, 0, 0, 0, 0, 51, 78, 0, 78, 0,
+ 78, 78, 78, 0, 0, 0, 78, 0, 0, 0,
+ 517, 78, 0, 198, 78, 0, 250, 0, 0, 0,
+ 21, 0, 0, 0, 0, 0, 0, 0, 0, 51,
+ 78, 0, 0, 26, 0, 27, 28, 0, 0, 0,
+ 0, -383, 8, 9, -383, -383, 12, 242, 0, 189,
+ 0, 0, 14, 7, 8, 9, 10, 0, 0, 190,
+ 613, 613, 613, 0, 0, 0, 16, 32, 17, -383,
+ 0, 198, 191, 198, 20, 198, 198, 198, 0, -383,
+ 0, 198, 0, 23, 0, 605, 198, 0, 0, 198,
+ 0, 21, 26, 0, 130, 131, 0, 0, 0, 0,
+ 250, 0, 0, 0, 26, 0, 27, 28, 606, 8,
+ 9, 0, 163, 12, 13, 0, 200, 717, 607, 14,
+ 462, 51, 51, 150, 150, 150, -383, 250, 608, 51,
+ 463, 609, 610, 16, 0, 17, 18, 0, 32, 0,
+ 0, 20, 628, 464, 0, 0, 0, 0, 0, 0,
+ 23, 0, 1174, 1174, 1174, 0, 0, 0, 0, 26,
+ 0, 130, 131, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 78, 200, 0, 200, 0, 466, 466,
+ 466, 0, 0, 51, 200, 0, 0, 0, 51, 200,
+ 0, 0, 200, 0, 0, 0, 162, 0, 7, 8,
+ 9, 10, 163, 12, 13, 0, 0, 547, 0, 14,
+ 0, 255, 78, 78, 78, 78, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 0,
+ 0, 20, 253, 257, 0, 0, 21, 0, 51, 51,
+ 23, 51, 0, 164, 0, 0, 0, 0, 198, 26,
+ 0, 27, 28, 0, 0, 0, 0, 0, 78, 0,
+ 0, 0, 78, 0, 0, 30, 0, 0, 0, 78,
+ 78, 0, 78, 0, 0, 31, 0, 51, 51, 51,
+ 673, 0, 0, 32, 422, 0, 0, 198, 33, 198,
+ 198, 0, 0, 34, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 78, 0, 78, 0, 0, 867, 0,
+ 78, 78, 78, 0, 0, 0, 457, 0, 78, 0,
+ 0, 0, 613, 613, 0, 613, 0, 0, 0, 473,
+ 8, 9, 613, 198, 12, 13, 0, 0, 719, 0,
+ 14, 0, 0, 0, 198, 198, 0, 198, 0, 0,
+ 0, 200, 0, 0, 16, 0, 17, 0, 0, 0,
+ 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 23, 257, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 130, 131, 0, 198, 0, 0, 0, 1174,
+ 945, 0, 945, 945, 0, 613, 0, 0, 0, 0,
+ 0, 0, 0, 0, 801, 0, 0, 804, 0, 0,
+ 0, 806, 807, 809, 810, 811, 0, 0, 0, 858,
+ 0, 0, 0, 0, 547, 8, 9, 0, 163, 12,
+ 13, 0, 0, 0, 0, 14, 945, 828, 0, 0,
+ 0, 0, 0, 628, 0, 0, 0, 200, 200, 16,
+ 200, 17, 18, 0, 0, 0, 0, 20, 0, 1174,
+ 1174, 1174, 0, 0, 0, 0, 667, 0, 0, 164,
+ 0, 0, 0, 0, 0, 26, 0, 130, 131, 78,
+ 78, 78, 0, 51, 0, 0, 0, 0, 200, 0,
+ 0, 885, 0, 0, 0, 0, 0, 0, 885, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 326, 0, 0, 0, 0, 0, 0, 102, 102, 102,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
- 0, 1409, 0, 1269, 1270, 1271, 10, 163, 12, 297,
- 298, 299, 0, 300, 14, 1272, 0, 1273, 1274, 1275,
- 1276, 1277, 1278, 1279, 1280, 1281, 1282, 15, 16, 301,
- 17, 18, 19, 0, 302, 303, 20, 0, 304, 305,
- 306, 21, 307, 308, 1283, 23, 1284, 0, 0, 309,
- 310, 311, 312, 313, 26, 0, 1285, 315, 704, 0,
- 1286, 316, 0, 0, 0, 0, 0, 317, 0, 0,
- 318, 0, 102, 0, 102, 0, 0, 0, 319, 320,
- 321, 0, 0, 0, 0, 102, 322, 323, 324, 0,
- 0, 0, 0, 325, 0, 1287, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1410,
- 326, 1268, 0, 1269, 1270, 1271, 10, 163, 12, 297,
- 298, 299, 0, 300, 14, 1272, 0, 1273, 1274, 1275,
- 1276, 1277, 1278, 1279, 1280, 1281, 1282, 15, 16, 301,
- 17, 18, 19, 0, 302, 303, 20, 0, 304, 305,
- 306, 21, 307, 308, 1283, 23, 1284, 0, 0, 309,
- 310, 311, 312, 313, 26, 0, 1285, 315, 704, 0,
- 1286, 316, 0, 0, 0, 0, 0, 317, 0, 0,
- 318, 0, 0, 0, 0, 0, 0, 0, 319, 320,
- 321, 0, 0, 0, 0, 0, 322, 323, 324, 0,
- 752, 0, 0, 325, 0, 1287, 0, 0, 0, 0,
+ 0, 0, 517, 517, 517, 0, 0, 253, 257, 253,
+ 0, 0, 0, 1176, 613, 0, 0, 0, 0, 0,
+ 0, 0, 76, 563, 564, 565, 566, 567, 568, 569,
+ 570, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 0, 78, 0, 198, 198, 1145, 0, 141, 145,
+ 0, 253, 0, 76, 0, 0, 0, 611, 611, 611,
+ 76, 565, 566, 567, 568, 569, 570, 571, 572, 573,
+ 574, 575, 576, 577, 578, 209, 78, 0, 0, 0,
+ 0, 0, 0, 0, 0, 734, 0, 613, 1145, 613,
+ 740, 0, 0, 0, 0, 0, 673, 0, 0, 0,
+ 613, 0, 0, 0, 613, 613, 613, 0, 0, 0,
+ 0, 0, 0, 0, 0, 782, 0, 198, 0, 0,
+ 0, 788, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 796, 797, 0, 798, 0, 472, 0,
+ 0, 0, 0, 0, 0, 0, 0, 945, 945, 1147,
+ 0, 0, 0, 0, 403, 719, 0, 0, 406, 0,
+ 0, 719, 408, 0, 0, 0, 0, 0, 78, 78,
+ 78, 78, 78, 0, 0, 0, 78, 0, 0, 76,
+ 0, 0, 0, 76, 0, 0, 0, 0, 0, 0,
+ 209, 1147, 0, 0, 0, 0, 0, 0, 0, 1176,
+ 1176, 1176, 0, 0, 0, 0, 0, 141, 145, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 326, 0, 0, 0, 0, 0, 0, 102, 557, 558,
- 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
- 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
+ 200, 0, 253, 0, 0, 0, 0, 0, 0, 1086,
+ 78, 893, 894, 0, 0, 78, 893, 0, 0, 0,
+ 0, 0, 0, 198, 198, 198, 198, 1145, 0, 1259,
+ 0, 198, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 828, 0, 0, 0, 0, 0, 719, 0,
+ 0, 0, 885, 505, 1145, 1145, 1145, 0, 0, 0,
+ 0, 0, 0, 0, 0, 78, 78, 0, 78, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 867, 867,
+ 0, 867, 0, 0, 0, 198, 0, 0, 0, 673,
+ 0, 1138, 0, 0, 0, 885, 0, 0, 0, 611,
+ 611, 0, 611, 0, 78, 78, 78, 0, 0, 902,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 539, 0, 7, 8, 9, 10, 163, 12, 297,
- 298, 299, 717, 300, 14, 0, 1222, 0, 0, 0,
- 0, 0, 102, 102, 0, 102, 0, 0, 16, 301,
- 17, 18, 19, 0, 302, 303, 20, 0, 304, 305,
- 306, 21, 307, 308, 0, 23, 0, 605, 0, 309,
- 310, 311, 312, 313, 26, 0, 27, 28, -308, 0,
- 0, 316, 0, 0, 0, 0, 0, 317, 0, 0,
- 1169, 0, 0, 0, 0, 0, 0, 0, 319, 320,
- 1170, 0, 0, 0, 0, 752, 322, 323, 324, 0,
- 608, 0, 0, 1171, 610, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 945, 945, 1147, 1147,
+ 1147, 0, 0, 0, 945, 0, 0, 885, 0, 0,
+ 198, 198, 0, 198, 0, 0, 0, 0, 0, 0,
+ 1180, 0, 0, 637, 0, 0, 1186, 1147, 1147, 1147,
+ 0, 0, 0, 719, 0, 0, 0, 611, 0, 611,
+ 611, 0, 611, 0, 0, 719, 0, 0, 0, 198,
+ 0, 198, 0, 102, 0, 0, 0, 0, 200, 1056,
+ 0, 1058, 121, 102, 0, 0, 0, 0, 0, 102,
+ 102, 0, 102, 0, 0, 0, 0, 0, 0, 719,
+ 0, 719, 688, 611, 0, 689, 1176, 0, 0, 0,
+ 691, 0, 0, 0, 0, 0, 0, 0, 76, 0,
+ 0, 0, 0, 0, 231, 0, 0, 0, 0, 1233,
+ 0, 0, 0, 945, 945, 0, 945, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 406, 0, 408, 0,
+ 0, 0, 0, 1092, 1093, 0, 1095, 0, 0, 0,
+ 0, 505, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 200, 0, 200, 0, 1176, 1176, 1176, 0,
+ 777, 1145, 0, 385, 1113, 121, 885, 0, 0, 0,
+ 0, 611, 102, 102, 0, 0, 0, 0, 0, 102,
+ 78, 102, 102, 102, 0, 412, 102, 102, 102, 8,
+ 9, 0, 163, 12, 13, 885, 0, 1530, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 326, 0, 0, 0, 0, 0, 716, 752, 296, 8,
+ 0, 0, 0, 16, 1148, 17, 18, 0, 0, 0,
+ 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 1145, 1145, 1145, 0, 0, 0, 0, 0, 26,
+ 0, 130, 131, 0, 611, 0, 611, 0, 0, 0,
+ 0, 0, 0, 0, 0, 198, 0, 611, 0, 0,
+ 0, 902, 902, 902, 466, 7, 8, 9, 10, 163,
+ 12, 13, 487, 102, 990, 0, 14, 0, 0, 1191,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 1196, 17, 18, 102, 0, 0, 0, 20, 0,
+ 0, 0, 0, 21, 611, 611, 611, 23, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0, 27, 28,
+ 8, 9, 0, 201, 12, 202, 0, 0, 0, 0,
+ 14, 0, 30, 102, 466, 466, 466, 1180, 0, 0,
+ 0, 0, 31, 947, 16, 0, 17, 18, 902, 0,
+ 32, 0, 20, 0, 0, 33, 0, 0, 200, 0,
+ 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 130, 131, 0, 0, 0, 1247, 0, 0,
+ 0, 102, 0, 102, 102, 1024, 8, 761, 10, 201,
+ 12, 202, 991, 0, 0, 0, 14, 0, 0, 688,
+ 689, 0, 691, 0, 0, 0, 0, 0, 0, 0,
+ 16, 0, 17, 18, 0, 0, 1260, 0, 20, 0,
+ 0, 0, 0, 21, 0, 0, 0, 23, 102, 0,
+ 0, 0, 0, 777, 0, 777, 26, 0, 27, 28,
+ 1034, 1041, 777, 0, 1026, 0, 102, 0, 777, 0,
+ 0, 0, 30, 102, 0, 0, 102, 0, 0, 0,
+ 0, 102, 31, 0, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 0, 0, 1347,
+ 0, 0, 0, 1348, 0, 0, 0, 0, 0, 7,
+ 8, 9, 10, 163, 12, 13, 0, 0, 0, 0,
+ 14, 0, 547, 611, 611, 611, 611, 611, 0, 0,
+ 0, 611, 0, 0, 16, 0, 17, 18, 1364, 673,
+ 0, 0, 20, 0, 0, 0, 0, 21, 102, 0,
+ 752, 23, 0, 0, 902, 902, 902, 0, 0, 0,
+ 26, 0, 27, 28, 0, 0, 760, 0, 7, 8,
+ 761, 10, 163, 12, 13, 102, 30, 0, 0, 14,
+ 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
+ 0, 0, 0, 16, 32, 17, 18, 19, 0, 33,
+ 0, 20, -521, 0, 0, 0, 21, 0, 0, 0,
+ 23, 762, 1420, 164, 0, 0, 1421, 0, 0, 26,
+ 0, 27, 28, 0, 0, 763, 1462, 764, 0, 141,
+ 145, 0, 0, 0, 0, 30, 0, 0, 1439, 1440,
+ 611, 611, 0, 611, 0, 31, 0, 0, 0, 0,
+ 0, 102, 0, 32, 0, 0, 0, 0, 33, 0,
+ 0, 0, 102, 102, 0, 102, 102, 0, 0, 0,
+ 0, 0, 0, 0, -521, 0, 1463, 557, 558, 559,
+ 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
+ 570, 571, 572, 573, 574, 575, 576, 577, 578, 0,
+ 0, 0, 1034, 0, 0, 0, 0, 0, 0, 1433,
+ 0, -475, -475, -475, -475, -475, -475, -475, 102, 0,
+ -475, 0, -475, 0, 0, 102, 121, 0, 0, 0,
+ 0, 0, 0, -475, 0, -475, 777, 231, 0, -475,
+ 0, 0, 0, 0, -475, 0, 0, 0, 0, -475,
+ 0, 0, 0, -475, 0, -475, 0, 0, 0, 0,
+ 752, 0, -475, 0, -475, -475, -475, -475, -475, 0,
+ -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+ -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+ -475, -475, -475, 0, -475, -475, -475, 0, -475, -475,
+ -475, -475, -475, -475, 0, -475, 0, 0, 0, 0,
+ 1434, 0, 0, 0, 0, -475, -475, -475, 752, -475,
+ 0, 102, 0, 0, 0, 0, 0, 0, 406, 408,
+ 0, 0, 0, 0, 0, 0, 505, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 102, 102, 102, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 102, 0, 0,
+ 0, 0, 539, 0, 296, 8, 9, 10, 163, 12,
+ 297, 298, 299, 717, 300, 14, 0, 0, 0, 0,
+ 1339, 0, 0, 0, 0, 1339, 0, 0, 0, 16,
+ 301, 17, 18, 19, 0, 302, 303, 20, 0, 304,
+ 305, 306, 21, 307, 308, 0, 23, 0, 605, 0,
+ 309, 310, 311, 312, 313, 26, 0, 27, 315, -308,
+ 0, 0, 316, 0, 0, 0, 0, 0, 317, 0,
+ 102, 898, 102, 0, 0, 688, 689, 0, 691, 319,
+ 320, 899, 0, 102, 0, 0, 0, 322, 323, 324,
+ 0, 608, 0, 0, 900, 610, 0, 0, 0, 0,
+ 1410, 0, 1270, 1271, 1272, 10, 163, 12, 297, 298,
+ 299, 326, 300, 14, 1273, 1407, 1274, 1275, 1276, 1277,
+ 1278, 1279, 1280, 1281, 1282, 1283, 15, 16, 301, 17,
+ 18, 19, 0, 302, 303, 20, 0, 304, 305, 306,
+ 21, 307, 308, 1284, 23, 1285, 0, 0, 309, 310,
+ 311, 312, 313, 26, 0, 1286, 315, 704, 0, 1287,
+ 316, 0, 0, 0, 0, 0, 317, 0, 0, 318,
+ 0, 0, 0, 0, 0, 0, 0, 319, 320, 321,
+ 0, 0, 0, 0, 0, 322, 323, 324, 0, 0,
+ 0, 0, 325, 0, 1288, 0, 0, 0, 752, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1411, 326,
+ 1269, 0, 1270, 1271, 1272, 10, 163, 12, 297, 298,
+ 299, 0, 300, 14, 1273, 102, 1274, 1275, 1276, 1277,
+ 1278, 1279, 1280, 1281, 1282, 1283, 15, 16, 301, 17,
+ 18, 19, 0, 302, 303, 20, 0, 304, 305, 306,
+ 21, 307, 308, 1284, 23, 1285, 0, 0, 309, 310,
+ 311, 312, 313, 26, 0, 1286, 315, 704, 0, 1287,
+ 316, 0, 0, 0, 0, 0, 317, 0, 0, 318,
+ 0, 102, 102, 0, 102, 0, 0, 319, 320, 321,
+ 0, 0, 0, 0, 0, 322, 323, 324, 0, 0,
+ 0, 0, 325, 0, 1288, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 326,
+ 0, 0, 539, 0, 7, 8, 9, 10, 163, 12,
+ 297, 298, 299, 717, 300, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 752, 0, 0, 0, 0, 16,
+ 301, 17, 18, 19, 0, 302, 303, 20, 0, 304,
+ 305, 306, 21, 307, 308, 0, 23, 0, 605, 0,
+ 309, 310, 311, 312, 313, 26, 752, 27, 28, -308,
+ 0, 0, 316, 0, 0, 0, 0, 0, 317, 0,
+ 0, 1171, 0, 0, 102, 0, 102, 0, 0, 319,
+ 320, 1172, 0, 0, 0, 0, 0, 322, 323, 324,
+ 0, 608, 0, 0, 1173, 610, 716, 0, 296, 8,
9, 10, 163, 12, 297, 298, 299, 717, 300, 14,
- 0, 0, 0, 0, 0, 102, 0, 102, 0, 0,
+ 0, 326, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 301, 17, 18, 19, 0, 302,
303, 20, 0, 304, 305, 306, 21, 307, 308, 0,
23, 0, 0, 0, 309, 310, 311, 312, 313, 26,
0, 27, 315, 0, 0, 0, 316, 0, 0, 0,
0, 0, 317, 0, 0, 318, 0, 0, 0, 0,
0, 0, 0, 319, 320, 321, 0, 0, 0, 0,
- 0, 322, 323, 324, 0, 0, 0, 830, 325, 296,
+ 0, 322, 323, 324, 0, 0, 0, 831, 325, 296,
8, 9, 10, 163, 12, 297, 298, 299, 0, 300,
- 14, 0, 0, -791, 0, 326, 0, 0, 0, 0,
+ 14, 0, 0, -792, 0, 326, 0, 0, 0, 0,
0, 0, 0, 0, 16, 301, 17, 18, 19, 0,
302, 303, 20, 0, 304, 305, 306, 21, 307, 308,
0, 23, 0, 0, 0, 309, 310, 311, 312, 313,
- 26, 0, 27, 315, 1506, 0, -781, 316, 0, 0,
+ 26, 0, 27, 315, 1507, 0, -782, 316, 0, 0,
0, 0, 0, 317, 0, 0, 318, 0, 0, 0,
0, 0, 0, 0, 319, 320, 321, 0, 0, 0,
0, 0, 322, 323, 324, 0, 0, 0, 707, 325,
- 818, 819, 820, 10, 0, 12, 521, 298, 299, 0,
+ 819, 820, 821, 10, 0, 12, 521, 298, 299, 0,
300, 14, 0, 0, 0, 0, 326, 0, 0, 0,
0, 0, 0, 0, 0, 16, 301, 17, 0, 19,
0, 302, 303, 20, 0, 304, 305, 306, 21, 307,
308, 0, 23, 0, 0, 0, 309, 310, 311, 312,
- 313, 26, 0, 821, 822, 708, 0, 0, 316, 0,
+ 313, 26, 0, 822, 823, 708, 0, 0, 316, 0,
0, 0, 0, 0, 317, 0, 0, 318, 0, 0,
0, 0, 0, 0, 0, 319, 320, 321, 0, 0,
0, 0, 0, 322, 323, 324, 0, 0, 0, 0,
- 325, 823, 707, 0, 818, 819, 820, 10, 0, 12,
- 521, 298, 299, 0, 300, 14, 976, 326, 0, 0,
+ 325, 824, 707, 0, 819, 820, 821, 10, 0, 12,
+ 521, 298, 299, 0, 300, 14, 977, 326, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
301, 17, 0, 19, 0, 302, 303, 20, 0, 304,
305, 306, 21, 307, 308, 0, 23, 0, 0, 0,
- 309, 310, 311, 312, 313, 26, 0, 821, 822, 708,
+ 309, 310, 311, 312, 313, 26, 0, 822, 823, 708,
0, 0, 316, 0, 0, 0, 0, 0, 317, 0,
0, 318, 0, 0, 0, 0, 0, 0, 0, 319,
320, 321, 0, 0, 0, 0, 0, 322, 323, 324,
- 0, 0, 0, 0, 325, 823, 707, 0, 818, 819,
- 820, 10, 0, 12, 521, 298, 299, 0, 300, 14,
+ 0, 0, 0, 0, 325, 824, 707, 0, 819, 820,
+ 821, 10, 0, 12, 521, 298, 299, 0, 300, 14,
0, 326, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 301, 17, 0, 19, 0, 302,
303, 20, 0, 304, 305, 306, 21, 307, 308, 0,
23, 0, 0, 0, 309, 310, 311, 312, 313, 26,
- 0, 821, 822, 708, 0, 0, 316, 0, 0, 0,
+ 0, 822, 823, 708, 0, 0, 316, 0, 0, 0,
0, 0, 317, 0, 0, 318, 0, 0, 0, 0,
0, 0, 0, 319, 320, 321, 0, 0, 0, 0,
- 0, 322, 323, 324, 0, 0, 0, 707, 325, 818,
- 819, 820, 10, 0, 12, 521, 298, 299, 0, 300,
+ 0, 322, 323, 324, 0, 0, 0, 707, 325, 819,
+ 820, 821, 10, 0, 12, 521, 298, 299, 0, 300,
14, 0, 0, 0, -479, 326, 0, 0, 0, 0,
0, 0, 0, 0, 16, 301, 17, 0, 19, 0,
302, 303, 20, 0, 304, 305, 306, 21, 307, 308,
0, 23, 0, 0, 0, 309, 310, 311, 312, 313,
- 26, 0, 821, 822, 708, 0, 0, 316, 0, 0,
+ 26, 0, 822, 823, 708, 0, 0, 316, 0, 0,
0, 0, 0, 317, 0, 0, 318, 0, 0, 0,
0, 0, 0, 0, 319, 320, 321, 0, 0, 0,
0, 0, 322, 323, 324, 0, 0, 0, 707, 325,
296, 8, 9, 10, 0, 12, 521, 298, 299, 0,
- 300, 14, 0, 0, 0, 1307, 326, 0, 0, 0,
+ 300, 14, 0, 0, 0, 1308, 326, 0, 0, 0,
0, 0, 0, 0, 0, 16, 301, 17, 0, 19,
0, 302, 303, 20, 0, 304, 305, 306, 21, 307,
308, 0, 23, 0, 0, 0, 309, 310, 311, 312,
@@ -2140,7 +2113,7 @@ static const short yytable[] = { 59,
0, 0, 0, 0, 317, 0, 0, 318, 0, 0,
0, 0, 0, 0, 0, 319, 320, 321, 0, 0,
0, 0, 0, 322, 323, 324, 0, 0, 0, 0,
- 325, 0, 539, 0, 296, 8, 9, 10, 1311, 12,
+ 325, 0, 539, 0, 296, 8, 9, 10, 1312, 12,
297, 298, 299, 0, 300, 14, 0, 326, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
301, 17, 0, 19, 0, 302, 303, 20, 0, 304,
@@ -2158,13 +2131,13 @@ static const short yytable[] = { 59,
708, 0, 0, 316, 0, 0, 0, 0, 0, 317,
0, 0, 318, 0, 0, 0, 0, 0, 0, 0,
319, 320, 321, 0, 0, 0, 0, 0, 322, 323,
- 324, 0, 0, 0, 830, 325, 296, 8, 9, 10,
+ 324, 0, 0, 0, 831, 325, 296, 8, 9, 10,
0, 12, 521, 298, 299, 0, 300, 14, 0, 0,
0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
0, 16, 301, 17, 0, 19, 0, 302, 303, 20,
0, 304, 305, 306, 21, 307, 308, 0, 23, 0,
0, 0, 309, 310, 311, 312, 313, 26, 0, 27,
- 315, 0, 0, 0, 316, -781, 0, 0, 0, 0,
+ 315, 0, 0, 0, 316, -782, 0, 0, 0, 0,
317, 0, 0, 318, 0, 0, 0, 0, 0, 0,
0, 319, 320, 321, 0, 0, 0, 0, 0, 322,
323, 324, 0, 0, 0, 539, 325, 7, 8, 9,
@@ -2174,9 +2147,9 @@ static const short yytable[] = { 59,
20, 0, 304, 305, 306, 21, 307, 308, 0, 23,
0, 0, 0, 309, 310, 311, 312, 313, 26, 0,
27, 28, -308, 0, 0, 316, 0, 0, 0, 0,
- 0, 317, 0, 0, 1477, 0, 0, 0, 0, 0,
- 0, 0, 319, 320, 1478, 0, 0, 0, 0, 0,
- 322, 323, 324, 0, 0, 0, 1558, 1479, 296, 8,
+ 0, 317, 0, 0, 1478, 0, 0, 0, 0, 0,
+ 0, 0, 319, 320, 1479, 0, 0, 0, 0, 0,
+ 322, 323, 324, 0, 0, 0, 1559, 1480, 296, 8,
9, 10, 0, 12, 297, 298, 299, 0, 300, 14,
0, 0, 0, 0, 326, 0, 0, 0, 0, 0,
0, 0, 0, 16, 301, 17, 0, 19, 0, 302,
@@ -2185,7 +2158,7 @@ static const short yytable[] = { 59,
0, 27, 315, 0, 0, -194, 316, 0, 0, 0,
0, 0, 317, 0, 0, 318, 0, 0, 0, 0,
0, 0, 0, 319, 320, 321, 0, 0, 0, 0,
- 0, 322, 323, 324, 0, 0, 0, 830, 325, 296,
+ 0, 322, 323, 324, 0, 0, 0, 831, 325, 296,
8, 9, 10, 0, 12, 521, 298, 299, 0, 300,
14, 0, 0, 0, 0, 326, 0, 0, 0, 0,
0, 0, 0, 0, 16, 301, 17, 0, 19, 0,
@@ -2196,12 +2169,12 @@ static const short yytable[] = { 59,
0, 12, 13, 0, 319, 320, 321, 14, 0, 0,
0, 0, 322, 323, 324, 0, 0, 0, 0, 325,
0, 16, 0, 17, 0, 0, 0, 0, 0, 20,
- 0, 260, 261, 0, -781, 0, 326, 0, 23, 0,
+ 0, 260, 261, 0, -782, 0, 326, 0, 23, 0,
262, 0, 0, 0, 0, 0, 0, 26, 0, 130,
131, 0, 263, 0, 0, 0, 264, 265, 266, 267,
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
278, 279, 280, 281, 282, 283, 284, 0, 0, 285,
- 286, 287, 0, 0, 288, 0, 918, 289, 296, 8,
+ 286, 287, 0, 0, 288, 0, 919, 289, 296, 8,
9, 10, 0, 12, 521, 298, 299, 0, 300, 14,
0, 0, 0, 290, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 301, 17, 0, 19, 0, 302,
@@ -2210,7 +2183,7 @@ static const short yytable[] = { 59,
0, 27, 315, 0, 0, 0, 316, 0, 0, 0,
0, 0, 317, 0, 0, 318, 0, 0, 0, 0,
0, 0, 0, 319, 320, 321, 0, 0, 0, 0,
- 0, 322, 323, 324, 0, 0, 0, 920, 325, 296,
+ 0, 322, 323, 324, 0, 0, 0, 921, 325, 296,
8, 9, 10, 0, 12, 521, 298, 299, 0, 300,
14, 0, 0, 0, 0, 326, 0, 0, 0, 0,
0, 0, 0, 0, 16, 301, 17, 0, 19, 0,
@@ -2219,7 +2192,7 @@ static const short yytable[] = { 59,
26, 0, 27, 315, 0, 0, 0, 316, 0, 0,
0, 0, 0, 317, 0, 0, 318, 0, 0, 0,
0, 0, 0, 0, 319, 320, 321, 0, 0, 0,
- 0, 0, 322, 323, 324, 0, 0, 0, 1490, 325,
+ 0, 0, 322, 323, 324, 0, 0, 0, 1491, 325,
296, 8, 9, 10, 0, 12, 521, 298, 299, 0,
300, 14, 0, 0, 0, 0, 326, 0, 0, 0,
0, 0, 0, 0, 0, 16, 301, 17, 0, 19,
@@ -2238,8 +2211,15 @@ static const short yytable[] = { 59,
317, 0, 760, 318, 7, 8, 761, 10, 163, 12,
13, 319, 320, 321, 0, 14, 0, 0, 0, 322,
323, 324, 0, 0, 0, 0, 325, 0, 0, 16,
+ 0, 17, 18, 19, 0, 0, 0, 20, -522, 0,
+ 0, 0, 21, 326, 870, 0, 23, 762, 0, 164,
+ 0, 0, 0, 0, 0, 26, 0, 27, 28, 0,
+ 0, 763, 0, 764, 0, 0, 0, 0, 0, 0,
+ 0, 30, 760, 0, 7, 8, 761, 10, 163, 12,
+ 13, 31, 0, 0, 0, 14, 0, 0, 0, 32,
+ 0, 0, 0, 0, 33, 0, 0, 0, 0, 16,
0, 17, 18, 19, 0, 0, 0, 20, -524, 0,
- 0, 0, 21, 326, 869, 0, 23, 762, 0, 164,
+ -522, 0, 21, 0, 0, 0, 23, 762, 0, 164,
0, 0, 0, 0, 0, 26, 0, 27, 28, 0,
0, 763, 0, 764, 0, 0, 0, 0, 0, 0,
0, 30, 760, 0, 7, 8, 761, 10, 163, 12,
@@ -2251,89 +2231,89 @@ static const short yytable[] = { 59,
0, 763, 0, 764, 0, 0, 0, 0, 0, 0,
0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
0, 31, 0, 0, 0, 0, 0, 0, 0, 32,
- 0, 0, 0, 0, 33, 0, 0, 1269, 1270, 1271,
- 10, 163, 12, 297, 298, 299, 0, 300, 14, 1272,
- -523, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
- 1282, 15, 16, 301, 17, 18, 19, 0, 302, 303,
- 20, 0, 304, 305, 306, 21, 307, 308, 1283, 23,
- 1284, 0, 0, 309, 310, 311, 312, 313, 26, 0,
- 1285, 315, 704, 0, 1286, 316, 0, 0, 0, 0,
+ 0, 0, 0, 0, 33, 0, 0, 1270, 1271, 1272,
+ 10, 163, 12, 297, 298, 299, 0, 300, 14, 1273,
+ -523, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282,
+ 1283, 15, 16, 301, 17, 18, 19, 0, 302, 303,
+ 20, 0, 304, 305, 306, 21, 307, 308, 1284, 23,
+ 1285, 0, 0, 309, 310, 311, 312, 313, 26, 0,
+ 1286, 315, 704, 0, 1287, 316, 0, 0, 0, 0,
0, 317, 0, 0, 318, 0, 0, 0, 0, 0,
0, 0, 319, 320, 321, 0, 0, 0, 0, 0,
- 322, 323, 324, 0, 0, 0, 0, 325, 0, 1287,
+ 322, 323, 324, 0, 0, 0, 0, 325, 0, 1288,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1414, 326, 1269, 1270, 1271, 10, 163,
- 12, 297, 298, 299, 0, 300, 14, 1272, 0, 1273,
- 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 15,
+ 0, 0, 0, 1415, 326, 1270, 1271, 1272, 10, 163,
+ 12, 297, 298, 299, 0, 300, 14, 1273, 0, 1274,
+ 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 15,
16, 301, 17, 18, 19, 0, 302, 303, 20, 0,
- 304, 305, 306, 21, 307, 308, 1283, 23, 1284, 0,
- 0, 309, 310, 311, 312, 313, 26, 0, 1285, 315,
- 704, 0, 1286, 316, 0, 0, 0, 0, 0, 317,
+ 304, 305, 306, 21, 307, 308, 1284, 23, 1285, 0,
+ 0, 309, 310, 311, 312, 313, 26, 0, 1286, 315,
+ 704, 0, 1287, 316, 0, 0, 0, 0, 0, 317,
0, 0, 318, 0, 0, 0, 0, 0, 0, 0,
319, 320, 321, 0, 0, 0, 0, 0, 322, 323,
- 324, 0, 0, 0, 0, 325, 0, 1287, 0, 1269,
- 1270, 1271, 10, 163, 12, 297, 298, 299, 0, 300,
- 14, 1272, 326, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
- 1280, 1281, 1282, 15, 16, 301, 17, 18, 19, 0,
+ 324, 0, 0, 0, 0, 325, 0, 1288, 0, 1270,
+ 1271, 1272, 10, 163, 12, 297, 298, 299, 0, 300,
+ 14, 1273, 326, 1274, 1275, 1276, 1277, 1278, 1279, 1280,
+ 1281, 1282, 1283, 15, 16, 301, 17, 18, 19, 0,
302, 303, 20, 0, 304, 305, 306, 21, 307, 308,
- 1283, 23, 1284, 0, 0, 309, 310, 311, 312, 313,
- 26, 0, 1285, 315, 1535, 0, 1286, 316, 0, 0,
+ 1284, 23, 1285, 0, 0, 309, 310, 311, 312, 313,
+ 26, 0, 1286, 315, 1536, 0, 1287, 316, 0, 0,
0, 0, 0, 317, 0, 0, 318, 0, 0, 0,
0, 0, 0, 0, 319, 320, 321, 0, 0, 0,
0, 0, 322, 323, 324, 0, 0, 0, 0, 325,
- 0, 1287, 0, 1269, 1270, 1271, 10, 163, 12, 297,
- 298, 299, 0, 300, 14, 1272, 326, 1273, 1274, 1275,
- 1276, 1277, 1278, 1279, 1280, 1281, 1282, 15, 16, 301,
+ 0, 1288, 0, 1270, 1271, 1272, 10, 163, 12, 297,
+ 298, 299, 0, 300, 14, 1273, 326, 1274, 1275, 1276,
+ 1277, 1278, 1279, 1280, 1281, 1282, 1283, 15, 16, 301,
17, 18, 19, 0, 302, 303, 20, 0, 304, 305,
- 306, 21, 307, 308, 1283, 23, 1284, 0, 0, 309,
- 310, 311, 312, 313, 26, 0, 1285, 315, 0, 0,
- 1286, 316, 0, 0, 0, 0, 0, 317, 0, 0,
+ 306, 21, 307, 308, 1284, 23, 1285, 0, 0, 309,
+ 310, 311, 312, 313, 26, 0, 1286, 315, 0, 0,
+ 1287, 316, 0, 0, 0, 0, 0, 317, 0, 0,
318, 0, 0, 0, 0, 0, 0, 0, 319, 320,
321, 0, 0, 0, 0, 0, 322, 323, 324, 0,
- 0, 0, 0, 325, 0, 1287, 296, 8, 9, 10,
+ 0, 0, 0, 325, 0, 1288, 296, 8, 9, 10,
163, 12, 297, 298, 299, 717, 300, 14, 0, 0,
326, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 16, 301, 17, 18, 19, 0, 302, 303, 20,
0, 304, 305, 306, 21, 307, 308, 0, 23, 0,
605, 0, 309, 310, 311, 312, 313, 26, 0, 27,
315, 0, 0, 0, 316, 0, 0, 0, 0, 0,
- 317, 0, 0, 897, 0, 0, 0, 0, 0, 0,
- 0, 319, 320, 898, 0, 0, 0, 0, 0, 322,
- 323, 324, 0, 608, 0, 0, 899, 610, 7, 8,
+ 317, 0, 0, 898, 0, 0, 0, 0, 0, 0,
+ 0, 319, 320, 899, 0, 0, 0, 0, 0, 322,
+ 323, 324, 0, 608, 0, 0, 900, 610, 7, 8,
9, 10, 163, 12, 297, 298, 299, 717, 300, 14,
0, 0, 0, 326, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 301, 17, 18, 19, 0, 302,
303, 20, 0, 304, 305, 306, 21, 307, 308, 0,
23, 0, 605, 0, 309, 310, 311, 312, 313, 26,
0, 27, 28, 0, 0, 0, 316, 0, 0, 0,
- 0, 0, 317, 0, 0, 1169, 0, 0, 0, 0,
- 0, 0, 0, 319, 320, 1170, 0, 0, 0, 0,
- 0, 322, 323, 324, 0, 608, 0, 0, 1171, 610,
+ 0, 0, 317, 0, 0, 1171, 0, 0, 0, 0,
+ 0, 0, 0, 319, 320, 1172, 0, 0, 0, 0,
+ 0, 322, 323, 324, 0, 608, 0, 0, 1173, 610,
296, 8, 9, 10, 0, 12, 297, 298, 299, 0,
300, 14, 0, 0, 0, 326, 0, 0, 0, 0,
0, 0, 0, 0, 0, 16, 301, 17, 0, 19,
0, 302, 303, 20, 0, 304, 305, 306, 21, 307,
308, 0, 23, 0, 605, 0, 309, 310, 311, 312,
313, 26, 0, 27, 315, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 317, 0, 0, 897, 0, 0,
- 0, 0, 0, 0, 0, 319, 320, 898, 0, 0,
+ 0, 0, 0, 0, 317, 0, 0, 898, 0, 0,
+ 0, 0, 0, 0, 0, 319, 320, 899, 0, 0,
0, 0, 0, 322, 323, 324, 0, 608, 0, 0,
- 899, 610, 7, 8, 9, 10, 0, 12, 297, 298,
+ 900, 610, 7, 8, 9, 10, 0, 12, 297, 298,
299, 0, 300, 14, 0, 0, 0, 326, 0, 0,
0, 0, 0, 0, 0, 0, 0, 16, 301, 17,
0, 19, 0, 302, 303, 20, 0, 304, 305, 306,
21, 307, 308, 0, 23, 0, 605, 0, 309, 310,
311, 312, 313, 26, 0, 27, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 317, 0, 0, 1169,
- 0, 0, 0, 0, 0, 0, 0, 319, 320, 1170,
+ 0, 0, 0, 0, 0, 0, 317, 0, 0, 1171,
+ 0, 0, 0, 0, 0, 0, 0, 319, 320, 1172,
0, 0, 0, 0, 0, 322, 323, 324, 0, 608,
- 0, 0, 1171, 610, 296, 8, 9, 10, 0, 12,
+ 0, 0, 1173, 610, 296, 8, 9, 10, 0, 12,
521, 298, 299, 0, 300, 14, 0, 0, 0, 326,
0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
301, 17, 0, 19, 0, 302, 303, 20, 0, 304,
305, 306, 21, 307, 308, 0, 23, 0, 0, 0,
309, 310, 311, 312, 313, 26, 0, 27, 315, 0,
- 0, 1387, 316, 0, 0, 0, 0, 0, 317, 0,
+ 0, 1388, 316, 0, 0, 0, 0, 0, 317, 0,
0, 318, 0, 0, 0, 0, 0, 0, 0, 319,
320, 321, 0, 0, 0, 0, 0, 322, 323, 324,
0, 0, 0, 0, 325, 296, 8, 9, 10, 163,
@@ -2397,7 +2377,7 @@ static const short yytable[] = { 59,
27, 315, 0, 0, 0, 316, 0, 0, 0, 0,
0, 317, 0, 0, 540, 0, 0, 0, 0, 0,
0, 0, 319, 320, 541, 0, 0, 0, 0, 0,
- 322, 323, 324, 1129, 8, 9, 10, 542, 12, 521,
+ 322, 323, 324, 1131, 8, 9, 10, 542, 12, 521,
298, 299, 0, 300, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 326, 0, 0, 0, 16, 301,
17, 0, 19, 0, 302, 303, 20, 0, 304, 305,
@@ -2412,9 +2392,9 @@ static const short yytable[] = { 59,
302, 303, 20, 0, 304, 305, 306, 21, 307, 308,
0, 23, 0, 0, 0, 309, 310, 311, 312, 313,
26, 0, 27, 28, 0, 0, 0, 316, 0, 0,
- 0, 0, 0, 317, 0, 0, 1477, 0, 0, 0,
- 0, 0, 0, 0, 319, 320, 1478, 0, 0, 0,
- 0, 0, 322, 323, 324, 296, 8, 9, 10, 1479,
+ 0, 0, 0, 317, 0, 0, 1478, 0, 0, 0,
+ 0, 0, 0, 0, 319, 320, 1479, 0, 0, 0,
+ 0, 0, 322, 323, 324, 296, 8, 9, 10, 1480,
12, 521, 298, 299, 0, 300, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 326, 0, 0, 0,
16, 301, 17, 0, 19, 0, 302, 303, 20, 0,
@@ -2455,737 +2435,732 @@ static const short yytable[] = { 59,
302, 303, 20, 0, 304, 305, 306, 21, 307, 308,
0, 23, 0, 0, 0, 309, 310, 311, 312, 313,
26, 0, 27, 28, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 317, 0, 0, 1477, 1023, 8, 761,
- 10, 201, 12, 202, 319, 320, 1478, 0, 14, 0,
- 0, 0, 322, 323, 324, 0, 0, 0, 0, 1479,
- 0, 0, 16, 0, 17, 18, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 21, 326, 0, 0, 23,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
- 27, 28, 0, 0, 0, 0, 1025, 0, 0, 0,
- 0, 0, 0, 0, 30, 7, 8, 9, 10, 201,
- 12, 202, 0, 0, 31, 0, 14, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 0,
- 16, 0, 17, 18, 0, 0, 0, 0, 20, 0,
- 0, 0, 0, 21, 0, 0, 0, 23, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 0, 27, 28,
+ 0, 0, 0, 317, 0, 6, 1478, 7, 8, 9,
+ 10, 11, 12, 13, 319, 320, 1479, 0, 14, 0,
+ 0, 0, 322, 323, 324, 0, 0, 0, 0, 1480,
+ 0, 15, 16, 0, 17, 18, 19, 0, 0, 0,
+ 20, 0, 0, 0, 0, 21, 326, 0, 22, 23,
+ 24, 0, 25, 0, 0, 0, 0, 0, 26, 0,
+ 27, 28, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 30, 0, 0, 0, 0, 0,
+ 0, 0, 0, 760, 31, 7, 8, 761, 10, 163,
+ 12, 13, 32, 0, 0, 0, 14, 33, 0, 0,
+ 0, 0, 34, 0, 0, 0, 0, 0, 0, 0,
+ 16, 0, 17, 18, 19, 0, 0, 0, 20, 0,
+ 0, 0, 0, 21, 0, 0, 0, 23, 762, 0,
+ 164, 0, 0, 0, 0, 0, 26, 0, 27, 28,
+ 0, 0, 763, 0, 764, 0, 0, 0, 0, 0,
+ 0, 0, 30, 7, 8, 9, 10, 201, 12, 202,
+ 0, 0, 31, 0, 14, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 0, 16, 0,
+ 17, 18, 0, 0, 0, 0, 20, 0, 0, 0,
+ 0, 21, 0, 0, 0, 23, 0, 0, 0, 0,
+ 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
+ 1405, 0, 7, 8, 9, 10, 201, 12, 202, 0,
+ 30, 0, 0, 14, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 0, 0, 0, 0, 16, 32, 17,
+ 18, 0, 0, 33, 0, 20, 0, 0, 0, 0,
+ 21, 0, 0, 0, 23, 0, 0, 0, 0, 0,
+ 0, 0, 0, 26, 0, 27, 28, 7, 8, 9,
+ 10, 210, 211, 212, 0, 0, 0, 0, 14, 30,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 0, 0, 0, 0, 0, 18, 0, 32, 0, 0,
+ 20, 0, 33, 0, 0, 21, 0, 0, 0, 23,
+ 0, 605, 0, 0, 0, 0, 0, 0, 26, 0,
+ 27, 28, 0, 0, 0, 0, 18, 0, 0, 0,
+ 0, 0, 0, 0, 189, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 190, 0, 0, 0, 0, 0,
+ 0, 0, 32, 0, 0, 0, 0, 1408, 557, 558,
+ 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
+ 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
- 567, 568, 30, 570, 571, 572, 573, 574, 575, 576,
- 577, 578, 31, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 33, 557, 558, 559, 560,
- 561, 562, 563, 564, 565, 566, 567, 568, 569, 570,
- 571, 572, 573, 574, 575, 576, 577, 578, 0, 0,
+ 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
+ 577, 578, 557, 558, 559, 560, 561, 562, 563, 564,
+ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
+ 575, 576, 577, 578, 0, 0, 0, 0, 1223, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 646, 0, 0,
- 1525, 557, 558, 559, 560, 561, 562, 563, 564, 565,
- 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
- 576, 577, 578, 1543, 557, 558, 559, 560, 561, 562,
- 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
- 573, 574, 575, 576, 577, 578, 557, 558, 559, 560,
- 561, 562, 563, 564, 565, 566, 567, 568, 569, 570,
- 571, 572, 573, 574, 575, 576, 577, 578
+ 0, 0, 0, 646, 0, 0, 1526, 557, 558, 559,
+ 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
+ 570, 571, 572, 573, 574, 575, 576, 577, 578, 1544,
+ 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
+ 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
+ 577, 578, 557, 558, 559, 560, 561, 562, 563, 564,
+ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
+ 575, 576, 577, 578, 557, 558, 559, 560, 561, 562,
+ 563, 564, 565, 566, 567, 568, 0, 570, 571, 572,
+ 573, 574, 575, 576, 577, 578
};
static const short yycheck[] = { 4,
- 147, 148, 157, 4, 205, 170, 55, 171, 398, 80,
- 46, 702, 80, 23, 172, 14, 448, 345, 398, 247,
- 351, 126, 4, 443, 398, 351, 470, 134, 491, 858,
- 35, 4, 300, 301, 35, 685, 609, 42, 133, 134,
- 76, 428, 243, 616, 552, 84, 369, 765, 42, 767,
- 4, 42, 57, 35, 205, 4, 774, 57, 133, 62,
- 42, 4, 35, 214, 178, 333, 678, 72, 589, 42,
- 124, 142, 1369, 1288, 42, 1298, 30, 31, 54, 84,
- 1459, 35, 1305, 88, 83, 90, 35, 92, 42, 4,
- 782, 292, 35, 42, 238, 1458, 788, 632, 11, 42,
- 42, 11, 107, 108, 33, 11, 1460, 106, 12, 27,
- 90, 1, 92, 31, 12, 0, 4, 37, 478, 58,
- 35, 59, 171, 351, 1192, 1193, 546, 42, 199, 62,
- 84, 136, 137, 54, 139, 495, 136, 75, 1206, 77,
- 1503, 62, 60, 0, 345, 1482, 64, 35, 352, 353,
- 58, 686, 62, 47, 62, 59, 161, 137, 62, 98,
- 165, 59, 1506, 136, 62, 1502, 610, 172, 58, 84,
- 161, 165, 172, 209, 165, 108, 152, 3, 4, 5,
- 109, 47, 136, 165, 213, 214, 1540, 136, 161, 109,
- 258, 109, 165, 147, 148, 108, 524, 165, 108, 93,
- 404, 405, 108, 895, 108, 208, 1585, 161, 42, 1,
- 1554, 165, 161, 216, 108, 60, 165, 48, 1, 47,
- 196, 136, 165, 165, 1561, 59, 74, 93, 94, 232,
- 56, 57, 4, 5, 9, 189, 190, 1600, 701, 7,
- 1463, 59, 108, 62, 1459, 244, 161, 342, 1545, 74,
- 165, 59, 93, 60, 80, 74, 4, 59, 54, 25,
- 910, 27, 1330, 913, 109, 93, 58, 342, 59, 37,
- 62, 1339, 1340, 60, 1342, 58, 48, 93, 74, 62,
- 108, 436, 389, 703, 56, 57, 61, 35, 293, 1512,
- 4, 109, 58, 57, 668, 59, 62, 47, 629, 338,
- 108, 65, 109, 95, 954, 955, 108, 47, 80, 696,
- 697, 60, 95, 47, 64, 462, 463, 108, 1010, 93,
- 325, 35, 109, 935, 475, 25, 899, 381, 59, 95,
- 1022, 165, 74, 338, 724, 658, 857, 4, 5, 1562,
- 38, 346, 9, 93, 724, 3, 4, 5, 6, 354,
- 355, 400, 351, 93, 94, 355, 54, 59, 58, 93,
- 109, 47, 62, 1055, 468, 1057, 4, 5, 108, 942,
- 598, 205, 476, 75, 354, 302, 303, 108, 64, 213,
- 214, 74, 355, 41, 338, 54, 47, 54, 47, 56,
- 57, 318, 720, 398, 321, 95, 401, 324, 56, 57,
- 327, 355, 1231, 70, 331, 74, 355, 93, 172, 243,
- 48, 984, 339, 80, 178, 93, 398, 12, 56, 57,
- 1488, 1489, 47, 338, 492, 430, 47, 94, 860, 633,
- 88, 939, 93, 94, 93, 438, 430, 59, 60, 430,
- 355, 205, 80, 64, 398, 474, 475, 108, 484, 213,
- 214, 456, 896, 482, 4, 5, 107, 430, 292, 3,
- 4, 5, 6, 60, 59, 494, 33, 62, 93, 64,
- 1120, 1121, 93, 94, 60, 59, 430, 25, 481, 54,
- 64, 430, 58, 398, 513, 54, 47, 492, 64, 1207,
- 54, 75, 492, 62, 8, 9, 47, 41, 48, 74,
- 14, 31, 456, 107, 108, 74, 56, 57, 462, 463,
- 54, 345, 56, 57, 519, 430, 75, 522, 77, 492,
- 525, 25, 36, 27, 529, 530, 531, 532, 533, 1358,
- 695, 45, 93, 47, 3, 4, 5, 542, 492, 519,
- 62, 456, 93, 492, 88, 1008, 936, 552, 58, 492,
- 555, 590, 659, 973, 58, 47, 936, 47, 62, 666,
- 83, 84, 936, 62, 3, 4, 5, 6, 402, 1142,
- 54, 666, 54, 904, 47, 74, 47, 492, 904, 93,
- 147, 148, 149, 47, 109, 590, 635, 56, 57, 58,
- 54, 95, 74, 25, 798, 27, 430, 74, 1171, 54,
- 58, 93, 41, 93, 609, 749, 807, 751, 93, 48,
- 74, 616, 756, 540, 541, 4, 5, 56, 57, 74,
- 93, 620, 93, 94, 191, 674, 58, 676, 677, 93,
- 62, 745, 54, 901, 59, 60, 590, 401, 402, 47,
- 474, 475, 1074, 1075, 54, 25, 54, 27, 482, 88,
- 1094, 54, 606, 607, 759, 609, 661, 667, 54, 44,
- 494, 47, 616, 95, 74, 779, 74, 56, 57, 54,
- 675, 720, 57, 75, 679, 590, 904, 108, 58, 513,
- 47, 661, 62, 33, 47, 93, 3, 4, 5, 6,
- 1153, 701, 9, 108, 609, 4, 5, 765, 109, 767,
- 47, 616, 94, 467, 47, 773, 774, 93, 94, 108,
- 474, 475, 47, 742, 478, 95, 62, 108, 482, 724,
- 47, 325, 1185, 772, 41, 929, 93, 94, 74, 47,
- 93, 495, 768, 769, 47, 1167, 47, 54, 62, 56,
- 57, 777, 11, 98, 1176, 1177, 93, 56, 57, 1181,
- 93, 93, 62, 70, 3, 4, 5, 60, 93, 3,
- 765, 1089, 767, 80, 74, 765, 93, 767, 773, 774,
- 724, 88, 772, 773, 774, 93, 93, 782, 783, 784,
- 93, 786, 93, 788, 108, 3, 4, 5, 1090, 1091,
- 1222, 1093, 765, 60, 767, 111, 961, 147, 148, 149,
- 94, 774, 636, 783, 784, 54, 786, 56, 57, 724,
- 94, 765, 62, 767, 111, 54, 765, 93, 767, 93,
- 774, 398, 765, 62, 767, 774, 59, 60, 782, 47,
- 59, 774, 59, 60, 788, 74, 54, 47, 56, 57,
- 54, 191, 74, 677, 54, 1049, 1050, 1051, 62, 453,
- 765, 856, 767, 3, 4, 5, 861, 1548, 54, 774,
- 74, 1005, 1006, 1007, 74, 74, 62, 782, 74, 54,
- 59, 60, 636, 788, 74, 93, 947, 62, 74, 456,
- 30, 59, 60, 93, 889, 1317, 720, 59, 60, 74,
- 895, 7, 8, 9, 899, 462, 463, 464, 14, 59,
- 60, 1015, 1016, 11, 54, 904, 56, 57, 742, 4,
- 5, 675, 109, 677, 678, 31, 54, 108, 522, 59,
- 36, 525, 108, 1355, 62, 529, 795, 796, 797, 45,
- 1044, 936, 59, 938, 939, 108, 74, 942, 542, 59,
- 60, 895, 869, 897, 898, 899, 108, 74, 75, 74,
- 77, 555, 59, 60, 936, 559, 720, 54, 109, 54,
- 1380, 56, 57, 1034, 1013, 74, 1034, 4, 5, 1297,
- 897, 898, 74, 807, 108, 70, 1396, 1045, 742, 984,
- 895, 745, 936, 587, 899, 80, 940, 941, 942, 593,
- 1026, 109, 997, 1140, 1141, 108, 1032, 1033, 1003, 94,
- 1036, 1037, 4, 5, 1040, 1010, 111, 4, 5, 773,
- 111, 48, 27, 1013, 74, 779, 74, 1022, 54, 56,
- 57, 936, 1169, 1170, 4, 5, 74, 942, 111, 111,
- 984, 108, 609, 27, 108, 108, 58, 31, 1242, 616,
- 1045, 108, 54, 80, 8, 1045, 48, 111, 93, 47,
- 1055, 48, 1057, 64, 56, 57, 1010, 109, 59, 56,
- 57, 93, 1482, 54, 44, 59, 60, 60, 1022, 984,
- 4, 5, 1045, 1144, 54, 9, 56, 57, 80, 36,
- 1085, 64, 1502, 80, 1198, 1199, 64, 1201, 1202, 64,
- 1204, 1045, 108, 1098, 60, 1010, 1045, 3, 4, 5,
- 62, 1055, 1045, 1057, 4, 5, 1496, 1022, 4, 5,
- 64, 1531, 462, 463, 464, 64, 1496, 64, 1098, 108,
- 54, 108, 56, 57, 9, 111, 108, 12, 93, 108,
- 1045, 1295, 59, 1297, 62, 1203, 70, 1142, 1296, 1207,
- 1055, 1561, 1057, 1153, 4, 5, 80, 724, 54, 1569,
- 56, 57, 48, 108, 54, 108, 56, 57, 1590, 1164,
- 56, 57, 47, 1164, 108, 108, 1171, 8, 9, 1096,
- 70, 935, 1500, 14, 59, 108, 61, 62, 75, 64,
- 80, 75, 75, 75, 80, 108, 1140, 1141, 1142, 108,
- 75, 1164, 77, 62, 54, 36, 56, 57, 62, 108,
- 59, 62, 1207, 108, 45, 782, 108, 1207, 93, 94,
- 1164, 788, 111, 1327, 1328, 1169, 1170, 1171, 94, 74,
- 111, 1164, 88, 108, 90, 88, 92, 1142, 3, 4,
- 5, 47, 7, 108, 1207, 3, 4, 5, 108, 7,
- 8, 9, 1169, 1170, 111, 60, 1295, 109, 1297, 1164,
- 108, 1015, 1016, 1207, 111, 30, 1171, 108, 1207, 108,
- 108, 865, 37, 31, 1207, 109, 59, 64, 36, 64,
- 59, 137, 59, 139, 27, 108, 108, 108, 31, 54,
- 1044, 56, 57, 1288, 93, 93, 54, 93, 56, 57,
- 58, 1296, 1207, 1298, 93, 899, 109, 1298, 109, 1500,
- 1305, 1337, 1338, 108, 1305, 108, 59, 60, 8, 1314,
- 111, 64, 1426, 1427, 1428, 1288, 4, 5, 895, 1474,
- 8, 9, 899, 108, 108, 1298, 14, 3, 4, 5,
- 1477, 1478, 1305, 111, 1288, 103, 104, 105, 108, 449,
- 28, 108, 30, 109, 1298, 1288, 456, 108, 36, 108,
- 33, 1305, 108, 108, 108, 1298, 47, 45, 108, 936,
- 64, 1288, 1305, 1528, 108, 942, 54, 54, 56, 57,
- 1406, 1485, 1486, 1288, 108, 942, 108, 62, 54, 12,
- 56, 57, 58, 1298, 80, 81, 82, 83, 84, 111,
- 1305, 47, 108, 108, 27, 86, 87, 108, 31, 1003,
- 91, 92, 93, 94, 96, 93, 9, 984, 62, 62,
- 520, 60, 60, 60, 47, 16, 93, 984, 3, 4,
- 5, 60, 7, 8, 9, 93, 59, 60, 108, 62,
- 108, 64, 60, 1010, 1198, 1199, 108, 1201, 1202, 1553,
- 1204, 108, 3, 4, 5, 1022, 31, 108, 1453, 108,
- 316, 36, 1501, 1458, 1459, 1460, 64, 1458, 1463, 54,
- 93, 94, 1463, 1297, 93, 3, 4, 5, 6, 111,
- 580, 56, 57, 93, 1479, 108, 586, 17, 1055, 60,
- 1057, 54, 107, 97, 108, 1458, 1459, 48, 354, 60,
- 1463, 1496, 108, 108, 33, 56, 57, 1533, 1503, 1453,
- 11, 108, 1503, 41, 1458, 1459, 1460, 1512, 60, 1463,
- 60, 1512, 60, 623, 93, 1458, 1459, 59, 56, 57,
- 1463, 64, 108, 1477, 1478, 60, 108, 11, 108, 60,
- 1503, 11, 1296, 1297, 60, 1540, 0, 0, 1453, 1512,
- 0, 2, 1496, 1458, 1459, 1460, 35, 166, 1463, 1503,
- 1477, 1478, 1394, 3, 4, 5, 6, 1562, 1512, 659,
- 1503, 1562, 936, 1327, 1328, 1142, 165, 1171, 161, 1512,
- 3, 4, 5, 1140, 1141, 1142, 430, 1527, 773, 4,
- 5, 1496, 448, 449, 9, 1153, 1540, 94, 1503, 1562,
- 456, 41, 942, 139, 1171, 1600, 1600, 1512, 48, 1600,
- 1379, 1232, 1169, 1170, 1171, 14, 56, 57, 1562, 148,
- 149, 295, 708, 22, 1218, 1219, 1220, 1221, 922, 1562,
- 237, 917, 47, 56, 57, 1540, 1008, 1600, 1185, 54,
- 80, 56, 57, 1045, 984, 1205, 773, 642, 88, 590,
- 915, 196, 124, 342, 1298, 70, 1600, 1562, 1165, 1548,
- 1569, 1579, 191, 519, 520, 80, 65, 1600, 1517, 1581,
- 992, 1314, 1426, 1427, 1428, 90, 1500, -1, 93, 94,
- 3, 4, 5, -1, 7, 8, 9, 1281, -1, -1,
- -1, 3, 4, 5, 6, 1600, 552, -1, 554, -1,
- -1, 557, 558, -1, 560, 561, 562, 563, 564, 565,
- 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
- 576, 577, 578, -1, 580, 124, -1, -1, -1, 41,
- 586, 1485, 1486, 56, 57, -1, -1, 740, 3, 4,
- 5, -1, 54, -1, 56, 57, -1, 146, 60, -1,
- 62, -1, -1, -1, -1, 855, 856, -1, 70, 80,
- 616, 861, 1356, -1, -1, -1, -1, 623, 80, -1,
- -1, -1, -1, -1, -1, 875, 88, 877, 781, 879,
- -1, 93, -1, 104, 787, -1, -1, -1, -1, 645,
- 646, 56, 57, -1, -1, 1389, 325, -1, -1, 1553,
- 1140, 1141, 1142, -1, -1, 661, -1, 3, 4, 5,
- 6, -1, 133, 9, -1, 1, -1, 3, 4, 5,
- 6, 142, 8, -1, 924, -1, 344, 345, 346, 1169,
- 1170, 1171, -1, -1, 233, 234, -1, 3, 4, 5,
- 6, -1, 3, 4, 5, 41, -1, -1, 247, -1,
- 1407, 47, 708, -1, -1, 41, -1, -1, 54, 1453,
- 56, 57, 48, -1, -1, 1459, 1460, 967, 54, -1,
- 56, 57, 38, 39, 70, 41, -1, -1, 199, -1,
- -1, -1, -1, -1, 80, 1479, -1, 890, 54, 892,
- 56, 57, 88, -1, 90, 56, 57, 93, 94, 3,
- 4, 5, 88, -1, 3, 4, 5, 6, 764, -1,
- -1, -1, 233, -1, -1, -1, -1, -1, 317, -1,
- 1477, 1478, 1479, -1, -1, -1, -1, 783, 784, 1496,
- 786, 344, 345, 346, 463, 464, -1, 258, -1, -1,
- -1, -1, 41, -1, 48, 801, 1540, -1, -1, 3,
- 4, 5, 56, 57, -1, 54, -1, 56, 57, -1,
- 359, 60, 1556, 3, 4, 5, 6, 823, -1, 368,
- -1, 70, -1, -1, 3, 4, 5, 3, 4, 5,
- 6, 80, 381, -1, 1578, 3, 4, 5, -1, 88,
- -1, 1585, -1, 522, 93, -1, 525, -1, -1, 855,
- 856, 41, 56, 57, 860, 861, -1, -1, 48, -1,
- -1, -1, 541, 542, -1, 41, 56, 57, -1, 875,
- -1, 877, 48, 879, -1, -1, 555, 56, 57, 350,
- 56, 57, -1, -1, -1, -1, -1, -1, 56, 57,
- 80, -1, -1, -1, 4, -1, -1, -1, 88, -1,
- -1, 1054, -1, 1056, 14, 1155, -1, 1157, 914, 1159,
- -1, -1, 88, -1, 24, -1, -1, 1407, 924, -1,
- 30, 31, -1, 33, -1, 35, -1, 3, 4, 5,
- 6, -1, 42, 939, -1, -1, 407, 616, 606, 607,
- 489, 609, -1, -1, -1, 55, 952, 57, 616, -1,
- -1, -1, -1, -1, -1, 65, -1, -1, 1111, -1,
- -1, 967, 72, -1, -1, 41, -1, -1, -1, 449,
- -1, -1, 48, 83, 84, -1, 456, -1, 984, -1,
- 56, 57, -1, -1, -1, -1, -1, 1477, 1478, 1479,
- -1, -1, -1, 3, 4, 5, 106, -1, -1, -1,
- -1, -1, -1, 1253, 80, 554, 674, -1, 676, 677,
- -1, 679, 88, -1, -1, -1, -1, -1, 489, 1025,
- 3, 4, 5, 6, 134, -1, 136, -1, -1, -1,
- 140, -1, -1, 143, 144, -1, 1189, 147, 148, 149,
- 520, 1194, -1, 606, 607, 516, 56, 57, -1, 598,
- -1, 161, 720, -1, -1, 165, -1, -1, 41, -1,
- -1, 171, 172, -1, -1, 48, -1, -1, 1074, 1075,
- -1, -1, 1078, 56, 57, -1, -1, -1, -1, 189,
- 190, 191, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, -1, 1098, 1246, -1, -1, -1, 80, -1, -1,
- 580, -1, -1, -1, -1, 88, 586, -1, 218, -1,
- -1, 674, -1, 676, 677, -1, 679, -1, 667, -1,
- -1, -1, 801, -1, 234, 41, -1, -1, -1, 678,
- -1, 47, 603, -1, 244, -1, 616, -1, 54, 807,
- 56, 57, -1, 623, -1, 255, -1, -1, 619, 1155,
- -1, 1157, -1, 1159, 70, -1, -1, 720, -1, 708,
- -1, 1167, -1, -1, 80, -1, -1, -1, -1, -1,
- 1176, 1177, 88, -1, 90, 1181, -1, 93, 94, 7,
- 8, 9, -1, 293, 294, -1, 14, -1, -1, -1,
- 1196, 1197, -1, 1346, 1347, 3, 4, 5, 6, -1,
- -1, -1, -1, 31, -1, -1, -1, -1, 36, -1,
- 1363, -1, 880, -1, 882, -1, 1222, 45, -1, 898,
- 899, -1, -1, -1, -1, 893, -1, -1, 338, 897,
- 898, 899, 342, 41, 344, 345, 346, -1, -1, -1,
- 48, -1, -1, -1, 807, 355, -1, 1253, 56, 57,
- -1, -1, -1, -1, -1, 3, 4, 5, 6, -1,
- -1, 9, -1, 942, -1, -1, 1419, 1420, -1, -1,
- -1, 1277, 940, 941, 942, -1, -1, -1, -1, 389,
- 88, -1, -1, -1, -1, 1438, 1439, -1, 398, -1,
- 400, 401, -1, 41, -1, -1, -1, -1, -1, 47,
- -1, -1, -1, -1, 414, 984, 54, 417, 56, 57,
- -1, 1317, 422, -1, -1, -1, 984, 880, -1, 882,
- 430, 801, 70, -1, -1, -1, -1, 1333, -1, -1,
- 893, -1, 80, -1, 897, 898, -1, -1, -1, -1,
- 88, -1, 90, -1, -1, 93, 94, -1, 458, 1355,
- 460, -1, 462, 463, 464, 7, 8, 9, 468, 4,
- 5, -1, 14, 473, 4, 5, 476, 7, 8, 9,
- -1, -1, 12, 922, 14, 855, 856, 940, 941, 31,
- -1, 861, 492, -1, 36, -1, 935, -1, 28, -1,
- 30, 31, -1, 45, -1, 875, 36, 877, -1, 879,
- -1, 1407, 47, -1, -1, 45, -1, 47, 60, 54,
- -1, 56, 57, -1, 54, -1, 56, 57, 1424, 1425,
- 530, 531, 532, 533, -1, 70, -1, 1433, -1, -1,
- 70, -1, 903, -1, 905, 80, -1, -1, -1, -1,
- 80, -1, -1, -1, 924, 90, -1, -1, 93, 94,
- 90, -1, -1, 93, 94, 1461, -1, -1, -1, -1,
- -1, -1, 1141, 1142, 4, 5, -1, -1, -1, 9,
- 1138, 1139, 1140, 1141, 1142, -1, 947, -1, 1146, -1,
- 590, -1, 592, -1, -1, -1, -1, 967, -1, -1,
- -1, 1170, 1171, -1, 604, -1, 606, 607, -1, 609,
- -1, 1169, 1170, 1171, 984, -1, 616, 47, -1, -1,
- 620, -1, -1, -1, 54, -1, 56, 57, 78, 79,
- 80, 81, 82, 83, 84, 635, 1075, -1, -1, -1,
- 70, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 80, -1, 3, 4, 5, 6, -1, -1, 9, 659,
- 90, -1, -1, 93, 94, -1, 666, -1, -1, -1,
- -1, -1, -1, 1034, 674, 675, 676, 677, 678, 679,
- -1, -1, -1, -1, -1, 1138, 1139, 1140, 1141, -1,
- 41, -1, -1, 1146, 1590, -1, 47, -1, 1256, 1257,
- -1, 1259, -1, 54, -1, 56, 57, 3, 4, 5,
- 6, -1, -1, -1, -1, -1, 1169, 1170, -1, 70,
- 720, -1, 1161, -1, 724, 4, 5, -1, 1167, 80,
- 9, 731, 732, -1, 734, -1, -1, 88, -1, 90,
- -1, -1, 93, 94, -1, 41, -1, -1, -1, -1,
- -1, -1, 48, -1, -1, -1, 1117, -1, -1, -1,
- 56, 57, 762, -1, -1, 765, -1, 767, 47, -1,
- -1, -1, 772, 773, 774, 54, -1, 56, 57, -1,
- -1, -1, 782, 1144, 80, 1155, -1, 1157, 788, 1159,
- -1, 70, 88, -1, -1, 795, 796, 797, -1, -1,
- -1, 80, -1, 1256, 1257, -1, 1259, 807, -1, -1,
- -1, 90, -1, -1, 93, 94, -1, -1, -1, -1,
- -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- -1, -1, -1, -1, 14, -1, -1, -1, 1407, -1,
- -1, -1, 1203, 1282, 1283, -1, -1, -1, 28, -1,
- 30, 31, 32, -1, -1, -1, 36, -1, -1, -1,
- -1, 41, 4, 5, -1, 45, 8, 9, 48, -1,
- -1, -1, 14, -1, 54, -1, 56, 57, -1, -1,
- 880, -1, 882, 1253, -1, -1, 28, -1, 30, 889,
- 70, -1, -1, 893, 36, 895, -1, 897, 898, 899,
- 80, -1, -1, 45, 904, -1, -1, -1, 88, 1478,
- 1479, -1, 54, 93, 56, 57, 58, -1, 98, -1,
- 4, 5, -1, -1, 8, 9, -1, -1, -1, -1,
- 14, -1, 1371, -1, -1, -1, 936, 4, 938, -1,
- 940, 941, 942, -1, 28, -1, 30, 14, -1, -1,
- -1, 93, 36, -1, 1393, 1394, 23, 24, 7, 8,
- 9, 45, -1, 30, 31, 14, 33, -1, 35, -1,
- 54, -1, 56, 57, -1, 42, -1, -1, -1, -1,
- -1, -1, 31, -1, 984, -1, -1, 36, 55, -1,
- 57, -1, -1, -1, -1, -1, 45, 997, 65, -1,
- -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
- 1010, 60, -1, 1013, -1, -1, -1, 84, -1, -1,
- -1, -1, 1022, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 1471, -1, -1, 1035, 14, 1407, -1, -1,
- -1, -1, -1, -1, -1, 1045, -1, -1, -1, -1,
- 28, -1, 30, 31, 32, 1055, -1, 1057, 36, -1,
- -1, -1, -1, 41, -1, -1, -1, 45, -1, 136,
- 48, -1, -1, 140, -1, -1, 54, 144, 56, 57,
- 147, 148, 149, -1, -1, 1085, -1, -1, -1, -1,
- 1090, 1091, 70, 1093, 161, -1, -1, -1, 165, -1,
- -1, -1, 80, -1, 171, 172, -1, -1, -1, -1,
- 88, -1, -1, -1, -1, 93, -1, -1, -1, -1,
- 98, -1, 189, 190, 191, -1, 4, 5, -1, 7,
- 8, 9, -1, -1, 12, -1, 14, -1, 1138, 1139,
- 1140, 1141, 1142, -1, -1, -1, 1146, -1, -1, -1,
- 28, 218, 30, 31, -1, -1, -1, -1, 36, -1,
- -1, -1, -1, -1, -1, -1, -1, 45, -1, 1169,
- 1170, 1171, -1, -1, -1, -1, 54, -1, 56, 57,
- 107, 108, -1, -1, 3, 4, 5, 6, 255, 1,
- 9, 3, 4, 5, 6, 7, 8, 9, -1, -1,
- 1200, -1, 14, -1, -1, 1205, -1, 1207, -1, -1,
- -1, -1, -1, -1, -1, 27, 28, -1, 30, 31,
- 32, -1, 41, -1, 36, -1, 293, 294, -1, 41,
- -1, -1, 44, 45, 46, 54, 48, 56, 57, -1,
- -1, -1, 54, -1, 56, 57, -1, -1, 60, -1,
- -1, 70, -1, -1, -1, -1, 1256, 1257, 70, 1259,
- -1, 80, -1, -1, -1, -1, -1, -1, 80, 88,
- -1, 338, -1, -1, 93, 342, 88, 344, 345, 346,
- -1, 93, -1, -1, 351, -1, 98, -1, 355, -1,
- -1, -1, -1, -1, -1, 1295, 1296, 1297, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 1, 1314, 3, 4, 5, 6, 7,
- 8, 9, 389, -1, -1, -1, 14, -1, -1, -1,
- -1, 398, -1, 400, 401, -1, -1, -1, -1, -1,
- 28, -1, 30, 31, 32, -1, -1, 414, 36, 37,
- 417, -1, -1, 41, -1, 422, -1, 45, 46, -1,
- 48, -1, -1, 430, -1, -1, 54, -1, 56, 57,
- -1, -1, 60, -1, 62, -1, -1, 3, 4, 5,
- 6, -1, 70, 9, 3, 4, 5, 6, -1, -1,
- 9, 458, 80, 460, -1, 462, 463, 464, 325, -1,
- 88, 468, -1, -1, -1, 93, 473, 1407, -1, 476,
- -1, -1, -1, -1, -1, 41, -1, -1, -1, -1,
- -1, 109, 41, -1, 491, 492, -1, -1, 54, -1,
- 56, 57, -1, -1, -1, 54, -1, 56, 57, -1,
- -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
- -1, 70, -1, -1, 80, -1, -1, -1, -1, -1,
- -1, 80, 88, 530, 531, 532, 533, 93, -1, 88,
- -1, 398, -1, -1, 93, -1, -1, 1477, 1478, 1479,
- 3, 4, 5, 6, 7, 8, 9, -1, -1, 12,
- -1, 14, 3, 4, 5, 6, 1496, -1, 9, -1,
- -1, 1501, -1, -1, -1, 28, -1, 30, 31, -1,
- -1, -1, -1, 36, -1, -1, -1, -1, 41, -1,
- -1, -1, 45, 590, 47, 592, -1, -1, -1, 456,
- 41, 54, -1, 56, 57, -1, 47, -1, -1, 606,
- 607, -1, 609, 54, -1, 56, 57, 70, -1, 616,
- -1, -1, -1, -1, -1, -1, -1, 80, -1, 70,
- -1, -1, 629, -1, -1, 88, -1, 90, 635, 80,
- 93, 94, -1, -1, -1, -1, -1, 88, -1, 90,
- -1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
- -1, -1, 659, -1, -1, 522, -1, -1, 525, -1,
- 667, -1, 529, 530, 531, 532, 533, 674, 675, 676,
- 677, 678, 679, -1, -1, 542, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 555, -1,
- -1, -1, -1, -1, 701, -1, -1, -1, 189, 190,
- 191, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 720, -1, -1, -1, 724, -1, -1,
- -1, -1, -1, -1, 731, 732, -1, 734, -1, -1,
- 4, 5, -1, -1, 8, 9, -1, -1, -1, -1,
- 14, -1, 609, -1, -1, -1, -1, -1, -1, 616,
- -1, -1, -1, -1, 28, 762, 30, -1, 765, -1,
- 767, -1, 36, -1, -1, 772, 773, 774, -1, -1,
- -1, 45, -1, 47, -1, 782, -1, -1, -1, -1,
- 54, 788, 56, 57, -1, -1, -1, -1, 795, 796,
- 797, -1, -1, -1, -1, -1, 70, -1, -1, -1,
- 807, -1, -1, -1, -1, -1, 80, 4, -1, -1,
- -1, -1, -1, -1, -1, -1, 90, -1, -1, 93,
- 94, -1, -1, -1, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 30, 31, -1, 33, 14, 35, -1,
- -1, -1, -1, -1, -1, 42, -1, -1, -1, -1,
- -1, 28, -1, 30, 31, -1, -1, 724, 55, 36,
- 57, -1, -1, -1, 41, -1, -1, -1, 45, -1,
- 47, -1, -1, 880, -1, 882, -1, 54, -1, 56,
- 57, -1, 889, 80, -1, -1, 893, -1, 895, -1,
- 897, 898, 899, 70, -1, -1, -1, 904, -1, -1,
- -1, -1, -1, 80, -1, -1, -1, -1, -1, -1,
- -1, 88, -1, 90, -1, 782, 93, 94, -1, -1,
- -1, 788, -1, -1, -1, -1, -1, -1, -1, 936,
- -1, 938, -1, 940, 941, 942, 133, 134, -1, 136,
- -1, -1, -1, 140, -1, 142, -1, 144, -1, -1,
- 147, 148, 149, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 161, -1, -1, 458, 165, 460,
- -1, 462, 463, 464, 171, 172, -1, 984, -1, -1,
- -1, -1, 473, -1, -1, -1, -1, -1, -1, 856,
- 997, -1, 189, 190, 191, -1, -1, -1, -1, -1,
- -1, 1008, 199, 1010, 4, 5, 1013, -1, 8, 9,
- -1, -1, -1, -1, 14, 1022, -1, -1, -1, -1,
- -1, 218, 889, -1, -1, -1, -1, -1, 895, -1,
- -1, -1, 899, -1, -1, -1, 36, -1, 1045, -1,
- -1, -1, -1, -1, -1, 45, -1, 47, 1055, -1,
- 1057, -1, -1, -1, 54, -1, 56, 57, 255, -1,
- -1, -1, -1, 31, -1, -1, -1, -1, -1, 936,
- 70, 938, -1, -1, -1, 942, -1, -1, 1085, -1,
- 80, -1, -1, 1090, 1091, -1, 1093, -1, -1, -1,
- 90, -1, -1, 93, 94, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 984, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 325, -1,
- 997, 1138, 1139, 1140, 1141, 1142, 1003, -1, -1, 1146,
- -1, -1, -1, 1010, -1, 342, 1153, -1, -1, -1,
- -1, -1, -1, 350, -1, 1022, -1, -1, 355, -1,
- -1, -1, 1169, 1170, 1171, -1, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, -1, -1, -1, 1185, 14,
- -1, -1, -1, -1, -1, -1, -1, -1, 1055, -1,
- 1057, -1, 389, 1200, -1, -1, 31, -1, 1205, -1,
- 1207, 36, -1, 400, -1, -1, 41, -1, -1, -1,
- 45, -1, 47, -1, -1, -1, -1, 414, 1085, 54,
- 417, 56, 57, -1, -1, 422, -1, -1, -1, -1,
- -1, -1, -1, 430, -1, 70, -1, -1, -1, -1,
- 731, 732, -1, 734, -1, 80, -1, -1, -1, 1256,
- 1257, -1, 1259, 88, -1, 90, -1, -1, 93, 94,
- -1, 458, -1, 460, -1, 462, 463, 464, -1, -1,
- -1, 468, -1, -1, -1, 1142, 473, 1284, -1, 476,
- -1, 772, -1, 3, 4, 5, 6, -1, 1295, 1296,
- 1297, -1, -1, -1, -1, 492, -1, -1, -1, -1,
- -1, -1, -1, -1, 1171, -1, -1, 1314, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 41, -1, -1, -1, 522, -1, -1, 525, -1,
- -1, -1, -1, -1, 54, -1, 56, 57, -1, -1,
- -1, -1, 62, 540, 541, 542, -1, -1, -1, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, 555, -1,
- 80, -1, -1, -1, 4, -1, -1, -1, 88, 3,
- 4, 5, 6, 93, 1, 9, 3, 4, 5, 6,
- 7, 8, 9, -1, -1, -1, -1, 14, -1, -1,
- 30, 31, -1, 33, -1, 35, -1, -1, -1, -1,
- 1407, 28, 42, 30, 31, -1, 603, 41, -1, 36,
- -1, -1, -1, -1, 41, 55, -1, 57, 45, 616,
- 54, 48, 56, 57, -1, -1, -1, 54, -1, 56,
- 57, -1, -1, 60, -1, -1, 70, -1, 635, -1,
- -1, -1, -1, 70, -1, -1, 80, 1314, -1, 940,
- 941, 942, -1, 80, 88, -1, -1, -1, -1, 93,
- -1, 88, 659, -1, -1, -1, 93, -1, 33, 666,
- 1477, 1478, 1479, -1, -1, -1, -1, 674, 675, 676,
- 677, -1, -1, -1, -1, -1, -1, -1, -1, 1496,
- 55, -1, -1, 984, 1501, -1, 136, -1, -1, -1,
- 140, -1, -1, -1, 144, -1, -1, 147, 148, 149,
- -1, -1, -1, -1, 4, 5, -1, 7, 8, 9,
- -1, 161, 1013, 720, 14, 165, -1, 724, -1, -1,
- -1, 171, 172, -1, 731, 732, -1, 734, 28, -1,
- 30, 31, -1, -1, -1, -1, 36, -1, -1, 189,
- 190, 191, -1, -1, -1, 45, -1, -1, 48, -1,
- -1, -1, -1, -1, 54, -1, 56, 57, 765, -1,
- 767, -1, -1, -1, -1, 772, 773, 774, 218, -1,
- -1, -1, 147, 148, 149, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, 801, -1, 171, -1, -1, -1,
- -1, -1, 1479, -1, -1, 255, -1, -1, -1, -1,
- -1, -1, -1, -1, 189, 190, 191, -1, -1, 1496,
+ 157, 345, 172, 46, 205, 33, 23, 170, 80, 4,
+ 171, 80, 147, 148, 398, 443, 702, 4, 126, 448,
+ 247, 398, 4, 351, 351, 300, 301, 609, 470, 84,
+ 35, 14, 369, 76, 616, 398, 491, 42, 133, 134,
+ 35, 859, 243, 552, 62, 428, 589, 133, 35, 678,
+ 4, 134, 57, 35, 42, 42, 352, 353, 333, 1299,
+ 42, 42, 238, 107, 108, 124, 1306, 72, 685, 1370,
+ 142, 1459, 1289, 4, 213, 214, 30, 31, 54, 84,
+ 765, 35, 767, 88, 783, 90, 205, 92, 42, 774,
+ 789, 292, 1460, 42, 42, 214, 47, 37, 1, 11,
+ 83, 1461, 107, 108, 35, 4, 11, 11, 404, 405,
+ 4, 42, 47, 58, 12, 90, 1504, 92, 546, 147,
+ 148, 149, 55, 106, 351, 33, 1507, 199, 0, 1483,
+ 84, 136, 137, 632, 139, 478, 35, 33, 54, 9,
+ 47, 35, 93, 42, 345, 1, 62, 0, 42, 1503,
+ 62, 60, 495, 98, 136, 58, 161, 108, 93, 62,
+ 165, 59, 137, 191, 62, 12, 209, 172, 610, 109,
+ 1, 48, 178, 161, 1555, 59, 152, 165, 165, 161,
+ 524, 1541, 136, 165, 165, 84, 93, 686, 33, 258,
+ 208, 61, 95, 147, 148, 57, 108, 896, 216, 59,
+ 109, 109, 58, 108, 108, 1194, 1195, 161, 1562, 42,
+ 108, 165, 59, 1601, 232, 62, 165, 165, 1586, 1208,
+ 196, 25, 468, 27, 1464, 109, 59, 58, 83, 84,
+ 476, 62, 4, 5, 165, 189, 190, 136, 171, 3,
+ 4, 5, 136, 1460, 74, 1546, 701, 342, 108, 25,
+ 60, 27, 148, 149, 58, 75, 342, 77, 62, 8,
+ 9, 244, 161, 47, 95, 14, 165, 161, 59, 4,
+ 54, 165, 74, 1513, 136, 703, 48, 4, 5, 436,
+ 4, 325, 58, 338, 56, 57, 62, 36, 293, 74,
+ 74, 95, 56, 57, 911, 191, 45, 914, 47, 109,
+ 35, 629, 147, 148, 149, 668, 389, 936, 80, 93,
+ 172, 35, 1011, 696, 697, 858, 80, 108, 900, 95,
+ 325, 658, 381, 1563, 1023, 54, 59, 462, 463, 56,
+ 57, 47, 165, 338, 60, 474, 475, 633, 955, 956,
+ 724, 346, 1331, 482, 93, 74, 191, 724, 60, 354,
+ 355, 1340, 1341, 59, 1343, 494, 475, 25, 1057, 27,
+ 1059, 943, 93, 1048, 3, 4, 5, 25, 351, 4,
+ 5, 598, 205, 355, 513, 108, 720, 93, 94, 354,
+ 213, 214, 7, 109, 338, 58, 62, 59, 60, 62,
+ 58, 27, 108, 398, 62, 31, 401, 109, 74, 4,
+ 58, 355, 108, 985, 62, 4, 5, 47, 47, 453,
+ 243, 398, 37, 48, 1232, 54, 47, 56, 57, 47,
+ 438, 56, 57, 492, 60, 430, 47, 95, 64, 325,
+ 35, 940, 861, 47, 462, 463, 464, 95, 47, 338,
+ 54, 484, 430, 47, 398, 80, 47, 93, 430, 430,
+ 47, 456, 93, 93, 93, 897, 355, 56, 57, 292,
+ 74, 355, 93, 481, 44, 93, 94, 400, 108, 4,
+ 5, 54, 93, 109, 54, 54, 430, 57, 522, 93,
+ 108, 525, 74, 62, 93, 529, 25, 492, 27, 93,
+ 94, 74, 93, 355, 47, 74, 93, 94, 542, 398,
+ 1489, 1490, 456, 799, 108, 1122, 1123, 93, 462, 463,
+ 492, 555, 345, 48, 519, 559, 60, 522, 107, 58,
+ 525, 56, 57, 62, 529, 530, 531, 532, 533, 4,
+ 5, 430, 695, 25, 9, 590, 430, 542, 492, 59,
+ 93, 1359, 47, 587, 519, 80, 974, 552, 47, 593,
+ 555, 60, 54, 937, 1009, 75, 95, 456, 54, 64,
+ 937, 492, 1144, 7, 8, 9, 47, 463, 464, 402,
+ 14, 666, 74, 749, 937, 751, 659, 905, 905, 54,
+ 756, 56, 57, 666, 62, 590, 47, 31, 93, 94,
+ 31, 1173, 36, 492, 93, 70, 74, 430, 492, 38,
+ 54, 45, 54, 742, 609, 80, 27, 808, 62, 62,
+ 31, 616, 93, 4, 5, 54, 60, 462, 463, 464,
+ 74, 47, 74, 47, 58, 12, 522, 902, 74, 525,
+ 492, 54, 93, 94, 930, 12, 590, 620, 59, 60,
+ 27, 474, 475, 64, 31, 541, 542, 1076, 1077, 482,
+ 667, 759, 606, 607, 1096, 609, 661, 58, 58, 555,
+ 47, 494, 616, 54, 64, 56, 57, 93, 94, 93,
+ 675, 109, 59, 60, 679, 62, 47, 64, 905, 70,
+ 513, 47, 59, 47, 701, 62, 661, 64, 54, 80,
+ 47, 590, 3, 4, 5, 6, 765, 62, 767, 93,
+ 1155, 54, 635, 94, 773, 774, 93, 94, 74, 74,
+ 609, 780, 62, 47, 4, 5, 54, 616, 54, 724,
+ 616, 108, 93, 54, 74, 768, 769, 93, 47, 93,
+ 41, 75, 1187, 54, 777, 47, 93, 48, 74, 745,
+ 1169, 674, 94, 676, 677, 56, 57, 1091, 108, 1178,
+ 1179, 47, 64, 74, 1183, 1051, 1052, 1053, 48, 93,
+ 765, 108, 767, 4, 5, 108, 56, 57, 773, 774,
+ 724, 4, 5, 779, 93, 780, 9, 88, 783, 784,
+ 785, 93, 787, 765, 789, 767, 108, 720, 4, 5,
+ 80, 11, 774, 109, 1223, 59, 60, 93, 780, 962,
+ 3, 4, 5, 636, 7, 8, 9, 48, 60, 784,
+ 785, 765, 787, 767, 62, 56, 57, 4, 5, 98,
+ 774, 54, 866, 56, 57, 724, 780, 93, 31, 783,
+ 1006, 1007, 1008, 36, 765, 789, 767, 70, 54, 772,
+ 56, 57, 47, 774, 677, 3, 111, 80, 62, 780,
+ 60, 54, 857, 56, 57, 58, 900, 862, 94, 64,
+ 108, 94, 94, 1549, 4, 5, 765, 54, 767, 56,
+ 57, 765, 62, 767, 111, 774, 948, 3, 4, 5,
+ 774, 780, 93, 70, 783, 890, 780, 720, 93, 1318,
+ 789, 896, 93, 80, 108, 900, 1092, 1093, 74, 1095,
+ 103, 104, 105, 765, 30, 767, 802, 74, 48, 742,
+ 772, 773, 774, 59, 60, 943, 56, 57, 780, 3,
+ 4, 5, 905, 59, 4, 5, 74, 1356, 54, 27,
+ 56, 57, 937, 31, 939, 940, 59, 60, 943, 75,
+ 80, 77, 896, 74, 898, 899, 900, 1243, 59, 60,
+ 937, 54, 59, 1381, 1298, 59, 60, 985, 11, 62,
+ 1004, 59, 60, 1035, 9, 109, 1035, 12, 48, 1397,
+ 54, 74, 56, 57, 58, 808, 56, 57, 108, 1048,
+ 985, 59, 60, 937, 1027, 59, 60, 941, 942, 943,
+ 1033, 1034, 59, 998, 1037, 1038, 108, 896, 1041, 1004,
+ 80, 900, 47, 899, 900, 74, 1011, 1142, 1143, 108,
+ 1016, 1017, 59, 60, 59, 108, 61, 62, 1023, 64,
+ 4, 5, 54, 3, 4, 5, 6, 796, 797, 798,
+ 75, 985, 77, 54, 8, 9, 1171, 1172, 937, 1045,
+ 14, 62, 108, 1048, 943, 59, 60, 943, 93, 94,
+ 74, 59, 1057, 74, 1059, 1483, 64, 1011, 74, 109,
+ 44, 41, 36, 108, 74, 109, 1048, 75, 48, 1023,
+ 54, 45, 56, 57, 1146, 1503, 56, 57, 3, 4,
+ 5, 1014, 1087, 111, 111, 108, 985, 27, 74, 985,
+ 54, 54, 74, 111, 1048, 1100, 111, 108, 943, 62,
+ 80, 54, 108, 1057, 1532, 1059, 108, 58, 88, 62,
+ 108, 74, 1011, 1497, 1142, 1143, 1144, 1048, 54, 8,
+ 1497, 74, 111, 93, 1023, 1100, 47, 1297, 59, 1173,
+ 64, 56, 57, 58, 1562, 1296, 1205, 1298, 1155, 1144,
+ 985, 93, 1570, 1171, 1172, 1173, 54, 109, 59, 1048,
+ 60, 36, 1014, 108, 1048, 64, 60, 1501, 1057, 64,
+ 1059, 1166, 1591, 74, 75, 64, 77, 62, 1173, 108,
+ 108, 1166, 64, 108, 64, 1219, 1220, 1221, 1222, 108,
+ 4, 5, 64, 111, 1166, 9, 1048, 93, 1142, 1143,
+ 1144, 59, 62, 108, 1200, 1201, 108, 1203, 1204, 75,
+ 1206, 3, 4, 5, 6, 108, 108, 108, 75, 3,
+ 4, 5, 1166, 7, 8, 9, 75, 1171, 1172, 1173,
+ 75, 108, 108, 47, 62, 62, 3, 4, 5, 6,
+ 54, 59, 56, 57, 108, 1166, 62, 31, 1282, 41,
+ 111, 94, 36, 108, 108, 1144, 70, 1143, 1144, 3,
+ 4, 5, 54, 111, 56, 57, 80, 88, 60, 90,
+ 62, 92, 56, 57, 41, 88, 90, 1166, 70, 93,
+ 94, 74, 47, 108, 1173, 108, 1172, 1173, 80, 56,
+ 57, 111, 111, 108, 1289, 59, 88, 3, 4, 5,
+ 108, 93, 1297, 108, 1299, 1338, 1339, 1142, 1143, 1144,
+ 1501, 1306, 56, 57, 1299, 109, 137, 1289, 139, 108,
+ 1315, 1306, 109, 1357, 60, 64, 64, 1299, 1475, 4,
+ 5, 59, 1328, 1329, 1306, 59, 1171, 1172, 1173, 108,
+ 3, 4, 5, 93, 93, 1289, 108, 93, 54, 109,
+ 56, 57, 93, 1478, 1479, 1299, 1390, 109, 3, 4,
+ 5, 6, 1306, 108, 9, 108, 108, 8, 1289, 3,
+ 4, 5, 47, 1296, 1407, 1298, 1529, 111, 1299, 54,
+ 111, 56, 57, 108, 33, 1306, 3, 4, 5, 6,
+ 1408, 54, 9, 56, 57, 70, 41, 108, 108, 108,
+ 1289, 109, 47, 108, 108, 80, 108, 108, 108, 54,
+ 1299, 56, 57, 108, 48, 90, 64, 1306, 93, 94,
+ 1454, 108, 56, 57, 41, 70, 1460, 1461, 54, 108,
+ 47, 1427, 1428, 1429, 108, 80, 47, 54, 62, 56,
+ 57, 111, 108, 88, 108, 90, 1480, 108, 93, 94,
+ 3, 4, 5, 70, 7, 8, 9, 96, 62, 1454,
+ 1478, 1479, 1480, 80, 1459, 1460, 1461, 62, 60, 1464,
+ 60, 88, 9, 90, 1459, 1298, 93, 94, 60, 1464,
+ 80, 81, 82, 83, 84, 1480, 16, 1459, 1460, 108,
+ 1486, 1487, 1464, 108, 108, 316, 108, 3, 4, 5,
+ 108, 1534, 1497, 56, 57, 108, 93, 1541, 398, 1504,
+ 1454, 60, 93, 60, 64, 1459, 1460, 1461, 1513, 1504,
+ 1464, 54, 1408, 1557, 93, 111, 93, 17, 1513, 60,
+ 54, 107, 1504, 354, 1478, 1479, 97, 108, 1459, 1460,
+ 60, 1513, 48, 1464, 108, 1579, 1541, 11, 108, 108,
+ 56, 57, 1586, 1497, 93, 60, 60, 60, 1554, 14,
+ 1504, 59, 64, 108, 60, 1454, 456, 22, 1563, 1513,
+ 1459, 1460, 1461, 1408, 108, 1464, 108, 11, 1563, 1502,
+ 60, 11, 60, 1504, 2, 0, 0, 3, 4, 5,
+ 6, 1563, 1513, 1479, 1480, 0, 166, 1541, 35, 1395,
+ 165, 3, 4, 5, 6, 659, 1601, 937, 1497, 161,
+ 65, 3, 4, 5, 1528, 1504, 1601, 773, 430, 1563,
+ 1155, 94, 38, 39, 1513, 41, 139, 448, 449, 1601,
+ 3, 4, 5, 6, 1380, 456, 9, 1601, 54, 41,
+ 56, 57, 1563, 1478, 1479, 1480, 48, 1233, 3, 4,
+ 5, 80, 1541, 295, 56, 57, 923, 1601, 708, 449,
+ 918, 1187, 237, 1009, 56, 57, 456, 773, 41, 124,
+ 780, 302, 303, 642, 1563, 104, 1207, 916, 1501, 196,
+ 1601, 54, 590, 56, 57, 342, 88, 318, 124, 1299,
+ 321, 146, 1167, 324, 1570, 1549, 327, 70, 519, 520,
+ 331, 56, 57, 1518, 133, 1580, 993, 80, 339, 3,
+ 4, 5, 1601, 142, 1582, 88, -1, 1315, -1, 609,
+ 93, -1, 3, 4, 5, 6, 616, -1, 9, -1,
+ 520, 552, -1, 554, -1, -1, 557, 558, -1, 560,
+ 561, 562, 563, 564, 565, 566, 567, 568, 569, 570,
+ 571, 572, 573, 574, 575, 576, 577, 578, -1, 580,
+ 41, -1, 56, 57, -1, 586, 47, 3, 4, 5,
+ 199, 7, -1, 54, -1, 56, 57, -1, 233, 234,
+ -1, -1, 3, 4, 5, -1, -1, -1, 4, 70,
+ 580, -1, 247, -1, 30, 616, 586, -1, 14, 80,
+ -1, 37, 623, -1, 233, 4, 5, 88, 24, 90,
+ 9, -1, 93, 94, 30, 31, -1, 33, 54, 35,
+ 56, 57, -1, -1, 645, 646, 42, -1, -1, 258,
+ -1, -1, -1, 623, 724, 56, 57, -1, -1, 55,
+ 661, 57, -1, -1, 3, 4, 5, 6, 47, 65,
+ -1, -1, 3, 4, 5, 54, 72, 56, 57, -1,
+ -1, -1, 317, 3, 4, 5, 6, 83, 84, 9,
+ -1, 70, -1, -1, -1, 57, -1, 59, -1, -1,
+ -1, 80, 41, 65, 3, 4, 5, 708, -1, 48,
+ 106, 90, -1, 783, 93, 94, -1, 56, 57, 789,
+ -1, 41, -1, -1, 359, 56, 57, 47, -1, 540,
+ 541, -1, -1, 368, 54, -1, 56, 57, 134, -1,
+ 136, 350, -1, -1, 140, -1, 381, 143, 144, 88,
+ 70, 147, 148, 149, 449, -1, -1, 56, 57, -1,
+ 80, 456, -1, 764, -1, 161, -1, -1, 88, 165,
+ 90, -1, -1, 93, 94, 171, 172, -1, -1, -1,
+ -1, -1, -1, 784, 785, -1, 787, -1, 47, -1,
+ -1, -1, -1, 189, 190, 191, -1, -1, 407, -1,
+ -1, 802, -1, -1, 3, 4, 5, 6, -1, -1,
+ 172, 3, 4, 5, 6, -1, 178, -1, -1, -1,
+ -1, -1, 218, 824, -1, 520, 896, 86, 87, -1,
+ 900, -1, 91, 92, 93, 94, -1, -1, 234, -1,
+ -1, -1, 41, 205, -1, -1, -1, -1, 244, 41,
+ -1, 213, 214, -1, 489, 856, 857, 56, 57, 255,
+ 861, 862, 54, -1, 56, 57, -1, 937, 60, -1,
+ -1, -1, -1, 943, -1, 876, -1, 878, 70, 880,
+ 489, -1, -1, -1, -1, 580, 856, 857, 80, 88,
+ -1, 586, 862, -1, -1, -1, 88, 293, 294, -1,
+ -1, 93, -1, -1, -1, -1, 876, 516, 878, -1,
+ 880, -1, -1, -1, 915, 985, 7, 8, 9, 554,
+ -1, 616, -1, 14, 925, 4, 5, -1, 623, -1,
+ 9, -1, 3, 4, 5, 6, 7, 8, 9, 940,
+ 31, 1011, 338, 14, -1, 36, 342, -1, 344, 345,
+ 346, -1, 953, 1023, 45, 925, -1, -1, -1, 355,
+ 31, -1, -1, 598, -1, 36, -1, 968, 47, 60,
+ 41, -1, -1, -1, 45, 54, 47, 56, 57, -1,
+ -1, -1, -1, 54, 985, 56, 57, 1057, -1, 1059,
+ -1, 70, -1, 389, 603, -1, -1, -1, 968, 70,
+ -1, 80, 398, -1, 400, 401, -1, -1, -1, 80,
+ 619, 90, -1, -1, 93, 94, -1, 88, 414, 90,
+ -1, 417, 93, 94, -1, 1026, 422, -1, -1, -1,
+ -1, -1, 667, -1, 430, -1, -1, -1, -1, 401,
+ 402, -1, 1, 678, 3, 4, 5, 6, -1, 8,
+ -1, -1, -1, -1, -1, 3, 4, 5, 6, 870,
+ -1, 9, 458, -1, 460, -1, 462, 463, 464, -1,
+ -1, -1, 468, 708, 1144, 1076, 1077, 473, -1, 1080,
+ 476, -1, 41, -1, -1, -1, -1, 898, 899, 48,
+ -1, -1, -1, 41, -1, 54, 492, 56, 57, 1100,
+ -1, -1, -1, 1173, -1, 467, 54, 802, 56, 57,
+ -1, -1, 474, 475, -1, -1, 478, 7, 8, 9,
+ 482, -1, 70, -1, 14, -1, -1, -1, -1, 88,
+ -1, -1, 80, 495, 530, 531, 532, 533, -1, -1,
+ 88, 31, -1, -1, -1, 93, 36, -1, 3, 4,
+ 5, 6, -1, -1, 9, 45, 1157, -1, 1159, -1,
+ 1161, 856, 857, -1, -1, -1, -1, 862, 1169, 78,
+ 79, 80, 81, 82, 83, 84, -1, 1178, 1179, -1,
+ -1, 876, 1183, 878, -1, 880, 41, 1157, -1, 1159,
+ -1, 1161, -1, -1, 590, -1, 592, 1198, 1199, 54,
+ -1, 56, 57, -1, -1, 7, 8, 9, 604, -1,
+ 606, 607, 14, 609, -1, 70, -1, -1, -1, -1,
+ 616, -1, 1223, -1, 620, 80, -1, -1, -1, 31,
+ 925, -1, -1, 88, 36, -1, -1, -1, 93, 635,
+ -1, -1, -1, 45, 740, -1, -1, -1, -1, -1,
+ -1, -1, -1, 1254, -1, 3, 4, 5, 6, -1,
+ -1, -1, -1, 659, -1, -1, 3, 4, 5, 6,
+ 666, -1, -1, 968, 636, -1, -1, 1278, 674, 675,
+ 676, 677, 678, 679, 1254, -1, 782, 1098, 923, -1,
+ 985, -1, 788, 41, -1, 904, -1, 906, -1, 47,
+ -1, 936, -1, -1, 41, -1, 54, -1, 56, 57,
+ -1, 48, -1, 675, -1, 677, 678, 1318, -1, 56,
+ 57, -1, 70, -1, 720, -1, -1, -1, 724, -1,
+ -1, -1, 80, 1334, -1, 731, 732, -1, 734, 948,
+ 88, -1, 90, 80, -1, 93, 94, -1, -1, -1,
+ -1, 88, -1, -1, -1, 1356, -1, -1, 720, -1,
+ 1171, 1172, -1, -1, -1, -1, 762, -1, -1, 765,
+ -1, 767, -1, -1, -1, -1, 772, 773, 774, -1,
+ 742, -1, -1, 745, 780, -1, -1, 783, -1, -1,
+ -1, -1, -1, 789, -1, 891, -1, 893, -1, -1,
+ 796, 797, 798, -1, -1, -1, -1, 1408, -1, -1,
+ -1, 773, 808, -1, -1, -1, -1, 779, -1, -1,
+ -1, -1, -1, -1, 1425, 1426, 1035, 1497, -1, -1,
+ -1, 4, 5, 1434, 7, 8, 9, -1, -1, 12,
+ -1, 14, 1077, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 28, -1, 30, 31, -1,
+ -1, 1462, 1157, 36, 1159, -1, 1161, -1, -1, -1,
+ -1, -1, 45, -1, 47, -1, -1, -1, 1289, -1,
+ -1, 54, -1, 56, 57, 881, -1, 883, -1, -1,
+ -1, -1, -1, -1, 890, -1, -1, 70, 894, -1,
+ 896, -1, 898, 899, 900, -1, -1, 80, -1, 905,
+ 1119, -1, -1, -1, -1, -1, -1, 90, -1, -1,
+ 93, 94, -1, 3, 4, 5, 6, -1, 1163, -1,
+ -1, -1, -1, -1, 1169, -1, -1, 1146, -1, -1,
+ -1, 937, -1, 939, 4, 941, 942, 943, -1, -1,
+ -1, -1, -1, -1, 14, -1, -1, -1, -1, 1254,
+ 1056, 41, 1058, 23, 24, -1, -1, -1, 48, -1,
+ 30, 31, -1, 33, 936, 35, 56, 57, -1, -1,
+ -1, -1, 42, -1, -1, 3, 4, 5, 6, 985,
+ 1591, -1, -1, -1, -1, 55, 1205, 57, -1, -1,
+ 80, -1, 998, -1, -1, 65, -1, -1, 88, -1,
+ -1, -1, 72, -1, -1, 1011, -1, 1113, 1014, -1,
+ -1, -1, -1, 41, 84, -1, -1, 1023, -1, -1,
+ 48, -1, -1, -1, -1, -1, -1, -1, 56, 57,
+ 1036, -1, -1, -1, -1, -1, -1, -1, 1283, 1284,
+ -1, -1, 1048, -1, 1016, 1017, -1, -1, -1, -1,
+ -1, 1057, 80, 1059, -1, -1, -1, 1478, 1479, -1,
+ 88, -1, 3, 4, 5, 6, 136, -1, 9, -1,
+ 140, -1, -1, 1045, 144, -1, -1, 147, 148, 149,
+ -1, 1087, -1, -1, -1, 1191, 1092, 1093, -1, 1095,
+ 1196, 161, -1, -1, -1, 165, -1, 189, 190, 191,
+ 41, 171, 172, 1408, -1, 3, 4, 5, 6, -1,
+ -1, 9, -1, 54, -1, 56, 57, -1, -1, 189,
+ 190, 191, -1, 3, 4, 5, 6, 1372, -1, 70,
+ -1, -1, -1, -1, 1140, 1141, 1142, 1143, 1144, 80,
+ -1, 1247, 1148, 41, -1, -1, -1, 88, 218, 1394,
+ 1395, -1, 93, -1, -1, -1, 54, -1, 56, 57,
+ -1, 41, -1, -1, -1, 1171, 1172, 1173, 48, -1,
+ -1, -1, 70, -1, -1, -1, 56, 57, -1, -1,
+ -1, -1, 80, -1, -1, 255, -1, -1, -1, -1,
+ 88, -1, -1, -1, -1, 93, 1202, -1, -1, -1,
+ 80, 1207, -1, -1, -1, -1, -1, -1, 88, -1,
-1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
- -1, -1, 14, -1, -1, -1, -1, 1138, 1139, 1140,
- 1141, 1142, -1, 218, -1, 1146, -1, -1, -1, 31,
- -1, -1, -1, -1, 36, -1, -1, -1, -1, 41,
- -1, -1, -1, 45, -1, 47, -1, -1, 1169, 1170,
- 1171, -1, 54, -1, 56, 57, 3, 4, 5, 6,
- 7, 8, 9, -1, -1, -1, -1, 14, 70, -1,
- 897, 898, 899, -1, -1, -1, 903, -1, 80, 1200,
- -1, 351, -1, -1, 31, 355, 88, -1, 90, 36,
- -1, 93, 94, -1, 41, -1, -1, -1, 45, 294,
- 47, -1, -1, -1, -1, -1, -1, 54, -1, 56,
- 57, -1, -1, 940, 941, 942, -1, -1, -1, -1,
- 947, -1, -1, 70, -1, -1, -1, -1, -1, -1,
- 400, -1, -1, 80, -1, 1256, 1257, -1, 1259, -1,
- -1, 88, -1, -1, 414, -1, 93, 417, -1, 344,
- 345, 346, 422, -1, -1, -1, -1, 984, -1, -1,
- 430, -1, 3, 4, 5, 6, -1, 4, 5, -1,
- -1, 8, 9, -1, -1, -1, -1, 14, -1, -1,
- -1, -1, -1, -1, -1, -1, 1013, -1, 458, -1,
- 460, -1, 462, 463, 464, -1, -1, -1, 468, 36,
- 41, -1, -1, 473, -1, 400, 476, 1034, 45, -1,
- 47, -1, -1, 54, -1, 56, 57, 54, 1045, 56,
- 57, 62, 492, -1, -1, -1, -1, -1, -1, 70,
- -1, -1, -1, 70, -1, -1, -1, -1, -1, 80,
- -1, -1, -1, 80, -1, -1, -1, 88, 82, -1,
- -1, -1, 93, 90, -1, -1, 93, 94, -1, -1,
- -1, -1, -1, 458, -1, 460, -1, 462, 463, 464,
- -1, -1, -1, 468, -1, -1, -1, -1, 473, -1,
- -1, 476, -1, -1, -1, -1, 1407, -1, -1, -1,
- 1117, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, -1, -1, -1, -1, 14, -1,
- -1, 1138, 1139, 1140, 1141, 1142, -1, 1144, -1, 1146,
- -1, 155, 28, -1, 30, 31, -1, -1, -1, -1,
- 36, -1, -1, -1, 604, 41, -1, -1, -1, 45,
- -1, -1, 1169, 1170, 1171, -1, -1, -1, 54, -1,
- 56, 57, -1, 187, 60, -1, 1477, 1478, 1479, -1,
- -1, -1, -1, -1, 70, 635, 200, 4, 5, -1,
- 7, 8, 9, 1200, 80, 12, -1, 14, 1205, -1,
- 1207, -1, 88, -1, -1, -1, -1, 93, -1, -1,
- -1, 28, -1, 30, 31, -1, -1, 592, -1, 36,
- -1, -1, -1, -1, 674, 675, 676, 677, 45, -1,
- -1, 606, 607, -1, 609, -1, 55, 54, -1, 56,
- 57, 616, -1, -1, -1, 4, -1, -1, -1, 1256,
- 1257, -1, 1259, -1, -1, -1, -1, -1, -1, -1,
- 635, 80, -1, -1, 83, 3, 4, 5, 6, -1,
- 720, 30, 31, -1, 724, -1, 35, -1, -1, -1,
- -1, 731, 732, 42, 734, 104, -1, 106, 1295, 1296,
- 1297, -1, -1, -1, -1, -1, -1, -1, 57, 674,
- -1, 676, 677, 41, 679, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, 765, 54, 767, 56, 57,
- -1, -1, 772, 773, 774, -1, -1, -1, -1, -1,
- -1, -1, 70, -1, -1, -1, -1, -1, 3, 4,
- 5, 6, 80, -1, 9, 720, -1, -1, -1, 41,
- 88, -1, 171, -1, -1, 93, 731, 732, -1, 734,
- -1, -1, 54, -1, 56, 57, -1, -1, 60, -1,
- 189, 190, 191, -1, -1, -1, 41, 136, 70, -1,
- 199, 140, -1, -1, -1, 144, -1, -1, 80, 54,
- -1, 56, 57, -1, -1, -1, 88, 772, -1, 218,
- 1407, 93, 161, -1, -1, 70, 165, -1, 3, 4,
- 5, 6, -1, 172, 9, 80, -1, -1, -1, -1,
- 795, 796, 797, 88, -1, 244, -1, -1, 93, -1,
- 189, 190, 807, -1, -1, -1, -1, -1, -1, 258,
- -1, -1, -1, -1, -1, -1, 41, -1, -1, -1,
- -1, -1, 466, -1, 904, -1, -1, 471, -1, 54,
- -1, 56, 57, -1, -1, -1, 3, 4, 5, 6,
- 1477, 1478, 1479, -1, -1, 70, -1, -1, -1, -1,
- -1, -1, 496, -1, -1, 80, -1, -1, 502, -1,
- 940, 941, 942, 88, 1501, -1, 255, -1, 93, -1,
- 514, 515, -1, 517, 41, 880, -1, 882, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 54, 893, 56,
- 57, -1, 897, 898, 899, 62, -1, -1, -1, -1,
- -1, 350, 351, 70, 984, -1, -1, -1, -1, -1,
- -1, -1, -1, 80, -1, -1, -1, -1, -1, -1,
- -1, 88, -1, -1, -1, -1, 93, -1, -1, -1,
- -1, -1, -1, 1013, -1, 940, 941, 942, -1, -1,
+ -1, -1, 14, 293, 294, -1, -1, 1472, 1200, 1201,
+ -1, 1203, 1204, -1, 1206, -1, 344, 345, 346, 31,
+ -1, 1347, 1348, -1, 36, -1, -1, -1, -1, 41,
+ -1, 1257, 1258, 45, 1260, 47, -1, -1, 1364, -1,
+ -1, -1, 54, -1, 56, 57, -1, -1, 338, -1,
+ -1, -1, 342, -1, 344, 345, 346, -1, 70, -1,
+ -1, 351, -1, -1, -1, 355, -1, -1, 80, -1,
+ 1296, 1297, 1298, -1, -1, -1, 88, -1, 90, -1,
+ -1, 93, 94, -1, -1, -1, -1, -1, -1, 1315,
+ -1, -1, -1, -1, 1420, 1421, -1, -1, -1, 389,
+ -1, -1, -1, -1, -1, 1297, 1298, -1, 398, -1,
+ 400, 401, -1, 1439, 1440, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 414, -1, -1, 417, -1, -1,
+ -1, -1, 422, -1, -1, -1, 1328, 1329, -1, -1,
+ 430, 3, 4, 5, 6, -1, 458, 9, 460, -1,
+ 462, 463, 464, -1, -1, -1, -1, -1, -1, -1,
+ -1, 473, 3, 4, 5, 6, -1, -1, 458, -1,
+ 460, -1, 462, 463, 464, -1, -1, -1, 468, 41,
+ 4, 5, 1408, 473, 8, 9, 476, -1, -1, -1,
+ 14, -1, 54, -1, 56, 57, -1, -1, -1, -1,
+ 41, 491, 492, -1, 28, -1, 30, -1, 70, -1,
+ -1, -1, 36, 54, -1, 56, 57, -1, 80, -1,
+ -1, 45, -1, 47, -1, -1, 88, -1, -1, -1,
+ 54, 93, 56, 57, -1, 1427, 1428, 1429, -1, -1,
+ 530, 531, 532, 533, -1, -1, 70, 88, -1, -1,
+ -1, -1, 1478, 1479, 1480, -1, 80, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 90, -1, -1, 93,
+ 94, 1497, -1, -1, -1, -1, 1502, -1, 606, 607,
+ 3, 4, 5, 6, 7, 8, 9, -1, 4, 5,
+ -1, 14, 8, 9, 1486, 1487, -1, -1, 14, -1,
+ 590, -1, 592, -1, -1, 28, -1, 30, 31, 32,
+ -1, -1, 28, 36, 30, -1, 606, 607, 41, 609,
+ 36, -1, 45, -1, -1, 48, 616, -1, -1, 45,
+ -1, 54, -1, 56, 57, -1, -1, -1, 54, 629,
+ 56, 57, -1, -1, -1, 635, 674, 70, 676, 677,
+ -1, 679, -1, -1, -1, -1, -1, 80, -1, -1,
+ -1, -1, 1554, -1, -1, 88, -1, -1, -1, 659,
+ 93, -1, -1, -1, -1, 98, -1, 667, -1, -1,
+ -1, -1, -1, -1, 674, 675, 676, 677, 678, 679,
+ -1, -1, 720, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 1, 701, 3, 4, 5, 6, 7, 8, 9, 731,
+ 732, -1, 734, 14, -1, -1, -1, -1, -1, -1,
+ 720, -1, -1, -1, 724, -1, -1, 28, -1, 30,
+ 31, 731, 732, -1, 734, 36, -1, -1, -1, -1,
+ 41, -1, -1, -1, 45, -1, -1, 48, -1, -1,
+ 772, -1, -1, 54, -1, 56, 57, -1, -1, 60,
+ -1, -1, 762, -1, -1, 765, -1, 767, -1, 70,
+ 808, -1, 772, 773, 774, -1, -1, -1, -1, 80,
+ 780, 4, 5, 783, -1, 8, 9, 88, -1, 789,
+ -1, 14, 93, -1, -1, -1, 796, 797, 798, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 808, -1,
+ -1, -1, -1, 36, -1, 4, -1, -1, -1, -1,
+ -1, -1, 45, -1, 47, 3, 4, 5, 6, -1,
+ -1, 54, -1, 56, 57, -1, -1, -1, -1, -1,
+ -1, 30, 31, 881, 33, 883, 35, 70, -1, -1,
+ -1, -1, -1, 42, -1, -1, 894, 80, -1, -1,
+ 898, 899, -1, 41, -1, -1, 55, 90, 57, -1,
+ 93, 94, -1, -1, -1, -1, 54, -1, 56, 57,
+ -1, 881, -1, 883, 62, -1, -1, -1, -1, -1,
+ 890, 80, 70, -1, 894, -1, 896, -1, 898, 899,
+ 900, -1, 80, 941, 942, 905, -1, -1, -1, -1,
+ 88, -1, -1, -1, -1, 93, -1, -1, -1, 941,
+ 942, 943, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 937, -1, 939,
+ -1, 941, 942, 943, 133, 134, -1, 136, -1, -1,
+ -1, 140, -1, 142, -1, 144, -1, -1, 147, 148,
+ 149, -1, -1, 985, -1, 4, 5, -1, -1, 8,
+ 9, -1, 161, -1, -1, 14, 165, -1, -1, -1,
+ -1, -1, 171, 172, -1, 985, -1, -1, -1, -1,
+ -1, -1, 1014, -1, -1, -1, -1, 36, 998, -1,
+ 189, 190, 191, -1, -1, -1, 45, -1, 47, 1009,
+ 199, 1011, -1, -1, 1014, 54, -1, 56, 57, -1,
+ -1, -1, -1, 1023, 3, 4, 5, 6, -1, 218,
+ 9, 70, 4, 5, -1, -1, 8, 9, -1, -1,
+ -1, 80, 14, -1, -1, -1, -1, -1, 1048, -1,
+ -1, 90, -1, -1, 93, 94, 28, 1057, 30, 1059,
+ -1, -1, 41, -1, 36, -1, 255, -1, -1, -1,
+ -1, -1, -1, 45, -1, 54, -1, 56, 57, -1,
+ -1, -1, 54, -1, 56, 57, -1, 1087, -1, -1,
+ -1, 70, 1092, 1093, -1, 1095, -1, -1, -1, -1,
+ -1, 80, 1140, 1141, 1142, 1143, -1, -1, -1, 88,
+ 1148, -1, -1, -1, 93, -1, -1, -1, 1140, 1141,
+ 1142, 1143, 1144, -1, -1, -1, 1148, -1, -1, -1,
+ -1, -1, -1, 1171, 1172, -1, 325, -1, -1, -1,
+ 1140, 1141, 1142, 1143, 1144, -1, -1, -1, 1148, 1171,
+ 1172, 1173, -1, 342, -1, 1155, -1, -1, -1, -1,
+ -1, 350, -1, -1, -1, -1, 355, -1, -1, -1,
+ -1, 1171, 1172, 1173, -1, -1, 3, 4, 5, 6,
+ 1202, -1, 9, -1, -1, -1, -1, 1187, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 400, -1, 3, 4, 5, 6, 7, 8, 9,
- -1, -1, 12, -1, 14, 1045, 355, -1, 612, 613,
- -1, -1, -1, 617, -1, -1, -1, -1, 28, 984,
- 30, 31, -1, -1, -1, -1, 36, -1, -1, -1,
- -1, 41, -1, -1, -1, 45, -1, 3, 4, 5,
- 6, -1, -1, 9, 54, -1, 56, 57, 1013, 458,
+ 389, -1, 1202, -1, -1, -1, -1, 1207, -1, -1,
+ -1, 400, -1, -1, 41, -1, -1, -1, -1, 1257,
+ 1258, -1, 1260, -1, -1, 414, -1, 54, 417, 56,
+ 57, -1, -1, 422, -1, 1257, 1258, -1, 1260, -1,
+ -1, 430, -1, 70, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 80, -1, -1, -1, 1257, 1258, -1,
+ 1260, 88, -1, -1, -1, -1, 93, -1, -1, 458,
-1, 460, -1, 462, 463, 464, -1, -1, -1, 468,
- 70, -1, -1, -1, 473, 414, -1, 476, 417, -1,
- 80, -1, -1, 422, -1, 41, -1, -1, 88, -1,
- -1, 430, -1, 93, -1, -1, -1, -1, 54, -1,
- 56, 57, -1, -1, 3, 4, 5, 6, 1138, 1139,
- 1140, 1141, 1142, -1, 70, -1, 1146, -1, -1, 458,
- -1, 460, -1, -1, 80, -1, -1, -1, -1, -1,
- -1, -1, 88, -1, 473, 1090, 1091, 93, 1093, 1169,
- 1170, 1171, 41, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 492, -1, 54, -1, 56, 57, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 1200, 70, -1, -1, -1, 1205, -1, 1207, -1, -1,
- -1, 80, -1, 1138, 1139, 1140, 1141, 1142, -1, 88,
- -1, 1146, -1, -1, 93, 789, -1, 791, -1, -1,
- -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, -1, 1169, 1170, 1171, 14, -1, -1,
- 619, 620, -1, -1, -1, -1, 1256, 1257, -1, 1259,
- -1, 28, -1, 30, 31, -1, 635, -1, -1, 36,
- -1, -1, -1, -1, 41, 1200, -1, -1, 45, -1,
- -1, -1, -1, -1, -1, -1, -1, 54, -1, 56,
- 57, -1, -1, 60, -1, 1295, 1296, 1297, -1, 863,
- 864, -1, 866, 70, -1, 674, -1, 676, 677, -1,
- -1, -1, -1, 80, -1, -1, -1, -1, -1, -1,
- -1, 88, -1, 4, 5, -1, 93, 8, 9, -1,
- 894, 1256, 1257, 14, 1259, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, -1, -1, 28, -1, 30,
- -1, 720, -1, -1, -1, 36, -1, -1, -1, -1,
- -1, -1, 731, 732, 45, 734, 675, -1, -1, -1,
- 1295, -1, 1297, 54, -1, 56, 57, -1, -1, 41,
- 944, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 759, -1, 54, -1, 56, 57, -1, -1, -1, -1,
- -1, -1, -1, 772, -1, -1, -1, 1407, 70, 4,
- 5, -1, 7, 8, 9, 724, -1, -1, 80, 14,
- -1, -1, 731, 732, -1, 734, 88, -1, -1, -1,
- -1, 93, -1, 28, -1, 30, 31, -1, -1, -1,
- -1, 36, -1, -1, -1, 1009, -1, -1, -1, -1,
- 45, -1, -1, -1, -1, -1, 765, 1021, 767, 54,
- -1, 56, 57, 772, 773, 774, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 14, 1477, 1478, 1479,
- -1, -1, 1407, -1, -1, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, -1, 33, -1, -1, -1, -1,
- -1, 1501, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- -1, -1, -1, -1, 14, -1, -1, 65, -1, -1,
- -1, -1, -1, -1, 903, 904, 905, -1, 28, -1,
- 30, 31, 1106, -1, -1, -1, 36, -1, -1, -1,
- -1, 41, 1477, 1478, 1479, 45, -1, -1, -1, -1,
- -1, -1, -1, -1, 54, -1, 56, 57, -1, -1,
- -1, 940, 941, 942, -1, -1, 1501, -1, 947, -1,
- 70, 1145, -1, -1, -1, -1, 124, -1, 126, -1,
- 80, -1, -1, -1, -1, 133, 134, -1, 88, -1,
- -1, -1, 140, 93, 142, 143, 144, -1, 146, 147,
- 148, 149, -1, -1, -1, 984, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 940, 941, 1, -1, 3, 4, 5, 6, 7,
- 8, 9, -1, -1, 1013, 1209, 14, -1, -1, 1213,
+ -1, -1, -1, -1, 473, 1285, -1, 476, 3, 4,
+ 5, 6, -1, -1, -1, -1, 1296, 1297, 1298, -1,
+ -1, -1, -1, 492, -1, -1, -1, 3, 4, 5,
+ 6, 7, 8, 9, -1, 1315, -1, -1, 14, -1,
+ -1, -1, -1, -1, -1, -1, 41, -1, -1, -1,
+ -1, -1, 28, 522, 30, 31, 525, -1, -1, 54,
+ 36, 56, 57, -1, -1, 41, -1, 62, -1, 45,
+ -1, 540, 541, 542, -1, 70, -1, -1, 54, -1,
+ 56, 57, -1, -1, 60, 80, 555, -1, -1, -1,
+ -1, -1, 4, 88, 70, -1, -1, -1, 93, -1,
+ -1, -1, -1, -1, 80, -1, 1408, -1, -1, -1,
+ -1, -1, 88, -1, -1, -1, -1, 93, 30, 31,
+ -1, 33, -1, 35, -1, -1, -1, -1, 1408, -1,
+ 42, -1, -1, -1, 603, 3, 4, 5, 6, -1,
+ -1, -1, -1, 55, -1, 57, -1, 616, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 635, -1, -1, -1,
+ -1, -1, -1, 41, -1, -1, 1478, 1479, 1480, -1,
+ -1, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ 659, -1, -1, -1, 62, -1, -1, 666, 1478, 1479,
+ 1480, -1, 70, -1, -1, 674, 675, 676, 677, -1,
+ -1, -1, 80, -1, -1, -1, -1, 1497, 55, -1,
+ 88, -1, 1502, -1, 136, 93, -1, -1, 140, -1,
+ -1, -1, 144, -1, -1, 147, 148, 149, -1, -1,
+ 4, 5, -1, 80, 8, 9, 83, -1, -1, 161,
+ 14, 720, -1, 165, -1, 724, -1, -1, -1, 171,
+ 172, -1, 731, 732, 28, 734, 30, 104, -1, 106,
+ -1, -1, 36, -1, -1, -1, -1, 189, 190, 191,
+ -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
+ 54, -1, 56, 57, 58, -1, 765, -1, 767, 33,
+ -1, -1, -1, 772, 773, 774, 218, 3, 4, 5,
+ 6, 780, -1, 3, 4, 5, 6, 7, 8, 9,
+ -1, 55, 12, -1, 14, -1, -1, -1, -1, 93,
+ -1, -1, -1, 802, 171, -1, -1, -1, 28, -1,
+ 30, 31, -1, 255, -1, 41, 36, -1, -1, -1,
+ -1, 41, 189, 190, 191, 45, -1, 47, 54, -1,
+ 56, 57, 199, -1, 54, -1, 56, 57, -1, -1,
+ -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
+ 70, 218, -1, -1, 80, -1, -1, -1, -1, -1,
+ 80, -1, 88, -1, -1, -1, -1, 93, 88, -1,
+ 90, -1, -1, 93, 94, -1, -1, 244, 3, 4,
+ 5, 6, -1, 147, 148, 149, -1, -1, -1, -1,
+ -1, 258, -1, -1, -1, -1, -1, -1, -1, 898,
+ 899, 900, -1, -1, -1, 904, -1, 171, -1, 351,
+ -1, -1, -1, 355, -1, -1, 41, -1, -1, -1,
+ -1, -1, -1, -1, -1, 189, 190, 191, -1, 54,
+ -1, 56, 57, -1, -1, 60, -1, -1, -1, -1,
+ -1, -1, 941, 942, 943, 70, -1, -1, -1, 948,
+ -1, -1, -1, -1, 218, 80, -1, -1, 400, -1,
+ -1, -1, -1, 88, -1, -1, -1, -1, 93, -1,
+ -1, -1, 414, -1, -1, 417, -1, -1, -1, -1,
+ 422, -1, -1, 350, 351, -1, 985, -1, 430, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 3, 4, 5, 6, -1, -1, -1, 107,
+ 108, -1, -1, -1, -1, 1014, 458, -1, 460, -1,
+ 462, 463, 464, -1, -1, -1, 468, -1, -1, -1,
+ 294, 473, -1, 400, 476, -1, 1035, -1, -1, -1,
+ 41, -1, -1, -1, -1, -1, -1, -1, -1, 1048,
+ 492, -1, -1, 54, -1, 56, 57, -1, -1, -1,
+ -1, 3, 4, 5, 6, 7, 8, 9, -1, 70,
+ -1, -1, 14, 3, 4, 5, 6, -1, -1, 80,
+ 344, 345, 346, -1, -1, -1, 28, 88, 30, 31,
+ -1, 458, 93, 460, 36, 462, 463, 464, -1, 41,
+ -1, 468, -1, 45, -1, 47, 473, -1, -1, 476,
+ -1, 41, 54, -1, 56, 57, -1, -1, -1, -1,
+ 1119, -1, -1, -1, 54, -1, 56, 57, 70, 4,
+ 5, -1, 7, 8, 9, -1, 400, 12, 80, 14,
+ 70, 1140, 1141, 1142, 1143, 1144, 88, 1146, 90, 1148,
+ 80, 93, 94, 28, -1, 30, 31, -1, 88, -1,
+ -1, 36, 604, 93, -1, -1, -1, -1, -1, -1,
+ 45, -1, 1171, 1172, 1173, -1, -1, -1, -1, 54,
+ -1, 56, 57, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 635, 458, -1, 460, -1, 462, 463,
+ 464, -1, -1, 1202, 468, -1, -1, -1, 1207, 473,
+ -1, -1, 476, -1, -1, -1, 1, -1, 3, 4,
+ 5, 6, 7, 8, 9, -1, -1, 325, -1, 14,
+ -1, 82, 674, 675, 676, 677, -1, -1, -1, -1,
+ -1, -1, -1, 28, -1, 30, 31, 32, -1, -1,
+ -1, 36, 619, 620, -1, -1, 41, -1, 1257, 1258,
+ 45, 1260, -1, 48, -1, -1, -1, -1, 635, 54,
+ -1, 56, 57, -1, -1, -1, -1, -1, 720, -1,
+ -1, -1, 724, -1, -1, 70, -1, -1, -1, 731,
+ 732, -1, 734, -1, -1, 80, -1, 1296, 1297, 1298,
+ 398, -1, -1, 88, 155, -1, -1, 674, 93, 676,
+ 677, -1, -1, 98, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 765, -1, 767, -1, -1, 592, -1,
+ 772, 773, 774, -1, -1, -1, 187, -1, 780, -1,
+ -1, -1, 606, 607, -1, 609, -1, -1, -1, 200,
+ 4, 5, 616, 720, 8, 9, -1, -1, 456, -1,
+ 14, -1, -1, -1, 731, 732, -1, 734, -1, -1,
+ -1, 635, -1, -1, 28, -1, 30, -1, -1, -1,
+ -1, -1, 36, -1, -1, -1, -1, -1, -1, -1,
+ -1, 45, 759, -1, -1, -1, -1, -1, -1, -1,
+ 54, -1, 56, 57, -1, 772, -1, -1, -1, 1408,
+ 674, -1, 676, 677, -1, 679, -1, -1, -1, -1,
+ -1, -1, -1, -1, 522, -1, -1, 525, -1, -1,
+ -1, 529, 530, 531, 532, 533, -1, -1, -1, 93,
+ -1, -1, -1, -1, 542, 4, 5, -1, 7, 8,
+ 9, -1, -1, -1, -1, 14, 720, 555, -1, -1,
+ -1, -1, -1, 905, -1, -1, -1, 731, 732, 28,
+ 734, 30, 31, -1, -1, -1, -1, 36, -1, 1478,
+ 1479, 1480, -1, -1, -1, -1, 45, -1, -1, 48,
+ -1, -1, -1, -1, -1, 54, -1, 56, 57, 941,
+ 942, 943, -1, 1502, -1, -1, -1, -1, 772, -1,
+ -1, 609, -1, -1, -1, -1, -1, -1, 616, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 28, -1, 30, 31, 32, 1034, -1, -1, 36, 37,
- -1, -1, -1, 41, -1, -1, -1, 45, 46, -1,
- 48, -1, -1, -1, 1248, -1, 54, -1, 56, 57,
- -1, -1, 60, -1, 62, 233, 234, -1, -1, -1,
- -1, -1, 70, -1, 1013, -1, -1, -1, -1, -1,
- -1, -1, 80, -1, -1, -1, -1, 255, -1, -1,
- 88, -1, -1, -1, -1, 93, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 1045, -1, -1, -1,
- -1, 109, -1, -1, -1, -1, -1, -1, 1117, -1,
- -1, -1, -1, -1, -1, -1, 294, -1, 1322, -1,
- -1, -1, 1326, -1, -1, -1, -1, -1, -1, 1138,
- 1139, 1140, 1141, 1142, -1, 1144, -1, 1146, -1, -1,
- -1, -1, -1, -1, 1348, 1349, -1, -1, -1, -1,
+ -1, -1, 796, 797, 798, -1, -1, 904, 905, 906,
+ -1, -1, -1, 985, 808, -1, -1, -1, -1, -1,
+ -1, -1, 4, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, 1014, -1, 941, 942, 943, -1, 30, 31,
+ -1, 948, -1, 35, -1, -1, -1, 344, 345, 346,
+ 42, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 57, 1048, -1, -1, -1,
+ -1, -1, -1, -1, -1, 466, -1, 881, 985, 883,
+ 471, -1, -1, -1, -1, -1, 724, -1, -1, -1,
+ 894, -1, -1, -1, 898, 899, 900, -1, -1, -1,
+ -1, -1, -1, -1, -1, 496, -1, 1014, -1, -1,
+ -1, 502, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 514, 515, -1, 517, -1, 1035, -1,
+ -1, -1, -1, -1, -1, -1, -1, 941, 942, 943,
+ -1, -1, -1, -1, 136, 783, -1, -1, 140, -1,
+ -1, 789, 144, -1, -1, -1, -1, -1, 1140, 1141,
+ 1142, 1143, 1144, -1, -1, -1, 1148, -1, -1, 161,
+ -1, -1, -1, 165, -1, -1, -1, -1, -1, -1,
+ 172, 985, -1, -1, -1, -1, -1, -1, -1, 1171,
+ 1172, 1173, -1, -1, -1, -1, -1, 189, 190, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 1169, 1170, 1171, -1, 342, -1, 344, 345, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, -1, -1, -1, 1138,
- 1139, 1200, -1, -1, -1, -1, -1, 1146, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 12,
- -1, 389, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 407,
- -1, -1, -1, -1, -1, -1, 414, -1, -1, 417,
- -1, -1, -1, -1, 422, -1, -1, 1256, 1257, -1,
- 1259, 1200, -1, -1, -1, -1, 1205, -1, 1207, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, -1, 1295, -1, 1297, -1,
- -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
- 8, 9, -1, -1, 12, -1, 14, 1256, 1257, -1,
- 1259, 489, -1, 491, -1, -1, -1, 25, -1, 27,
- -1, -1, -1, 31, -1, -1, -1, -1, 36, -1,
- -1, -1, -1, 41, -1, -1, -1, 45, 516, 47,
- -1, -1, -1, -1, -1, -1, 54, 1296, 56, 57,
- 58, 59, 60, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 86, 87,
- 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, 102, -1, -1, -1, 1407, 107,
- 108, 109, -1, 111, 1, -1, 3, 4, 5, 6,
- 7, 8, 9, -1, 592, -1, -1, 14, -1, -1,
- -1, -1, -1, -1, -1, 603, 604, -1, 606, 607,
- -1, 28, -1, 30, 31, 32, -1, -1, -1, 36,
- -1, -1, -1, -1, 41, -1, -1, -1, 45, 46,
- -1, 48, -1, -1, -1, -1, -1, 54, -1, 56,
- 57, -1, -1, 60, -1, 62, -1, -1, 1477, 1478,
- 1479, -1, -1, 70, -1, -1, -1, -1, -1, -1,
- -1, 659, -1, 80, -1, -1, -1, -1, 666, 667,
- -1, 88, 1501, -1, -1, -1, 93, -1, -1, -1,
- 678, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, -1, -1, -1, -1, -1,
- -1, -1, -1, 701, -1, -1, -1, -1, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
- 40, 41, 42, 43, -1, 45, -1, 47, -1, 49,
- 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
- -1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, 759, -1, -1, 762, -1, 86, 87, 88, -1,
- 90, -1, -1, 93, 94, -1, -1, -1, -1, -1,
+ 1014, -1, 1119, -1, -1, -1, -1, -1, -1, 857,
+ 1202, 612, 613, -1, -1, 1207, 617, -1, -1, -1,
+ -1, -1, -1, 1140, 1141, 1142, 1143, 1144, -1, 1146,
+ -1, 1148, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 890, -1, -1, -1, -1, -1, 896, -1,
+ -1, -1, 900, 255, 1171, 1172, 1173, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1257, 1258, -1, 1260, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 1092, 1093,
+ -1, 1095, -1, -1, -1, 1202, -1, -1, -1, 937,
+ -1, 939, -1, -1, -1, 943, -1, -1, -1, 606,
+ 607, -1, 609, -1, 1296, 1297, 1298, -1, -1, 616,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 110, -1, -1, -1, -1, -1, -1, 795, 796, 797,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 807,
- -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, -1, -1, 49,
- 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
- 60, 61, -1, -1, -1, -1, -1, 67, -1, -1,
- 70, -1, 880, -1, 882, -1, -1, -1, 78, 79,
- 80, -1, -1, -1, -1, 893, 86, 87, 88, -1,
- -1, -1, -1, 93, -1, 95, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,
- 110, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, -1, -1, 49,
- 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
- 60, 61, -1, -1, -1, -1, -1, 67, -1, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
- 1008, -1, -1, 93, -1, 95, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1140, 1141, 1142, 1143,
+ 1144, -1, -1, -1, 1148, -1, -1, 985, -1, -1,
+ 1257, 1258, -1, 1260, -1, -1, -1, -1, -1, -1,
+ 998, -1, -1, 355, -1, -1, 1004, 1171, 1172, 1173,
+ -1, -1, -1, 1011, -1, -1, -1, 674, -1, 676,
+ 677, -1, 679, -1, -1, 1023, -1, -1, -1, 1296,
+ -1, 1298, -1, 14, -1, -1, -1, -1, 1202, 790,
+ -1, 792, 23, 24, -1, -1, -1, -1, -1, 30,
+ 31, -1, 33, -1, -1, -1, -1, -1, -1, 1057,
+ -1, 1059, 414, 720, -1, 417, 1408, -1, -1, -1,
+ 422, -1, -1, -1, -1, -1, -1, -1, 430, -1,
+ -1, -1, -1, -1, 65, -1, -1, -1, -1, 1087,
+ -1, -1, -1, 1257, 1258, -1, 1260, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 458, -1, 460, -1,
+ -1, -1, -1, 864, 865, -1, 867, -1, -1, -1,
+ -1, 473, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 1296, -1, 1298, -1, 1478, 1479, 1480, -1,
+ 492, 1408, -1, 124, 895, 126, 1144, -1, -1, -1,
+ -1, 808, 133, 134, -1, -1, -1, -1, -1, 140,
+ 1502, 142, 143, 144, -1, 146, 147, 148, 149, 4,
+ 5, -1, 7, 8, 9, 1173, -1, 12, -1, 14,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 110, -1, -1, -1, -1, -1, -1, 1035, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, 28, 945, 30, 31, -1, -1, -1,
+ -1, 36, -1, -1, -1, -1, -1, -1, -1, -1,
+ 45, 1478, 1479, 1480, -1, -1, -1, -1, -1, 54,
+ -1, 56, 57, -1, 881, -1, 883, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1502, -1, 894, -1, -1,
+ -1, 898, 899, 900, 1408, 3, 4, 5, 6, 7,
+ 8, 9, 233, 234, 12, -1, 14, -1, -1, 1010,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, -1, 111, -1, -1, -1,
- -1, -1, 1090, 1091, -1, 1093, -1, -1, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
- 40, 41, 42, 43, -1, 45, -1, 47, -1, 49,
- 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
- -1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, -1, -1, -1, -1, 1153, 86, 87, 88, -1,
- 90, -1, -1, 93, 94, -1, -1, -1, -1, -1,
+ 28, 1022, 30, 31, 255, -1, -1, -1, 36, -1,
+ -1, -1, -1, 41, 941, 942, 943, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ 4, 5, -1, 7, 8, 9, -1, -1, -1, -1,
+ 14, -1, 70, 294, 1478, 1479, 1480, 1315, -1, -1,
+ -1, -1, 80, 675, 28, -1, 30, 31, 985, -1,
+ 88, -1, 36, -1, -1, 93, -1, -1, 1502, -1,
+ -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
+ 54, -1, 56, 57, -1, -1, -1, 1108, -1, -1,
+ -1, 342, -1, 344, 345, 3, 4, 5, 6, 7,
+ 8, 9, 724, -1, -1, -1, 14, -1, -1, 731,
+ 732, -1, 734, -1, -1, -1, -1, -1, -1, -1,
+ 28, -1, 30, 31, -1, -1, 1147, -1, 36, -1,
+ -1, -1, -1, 41, -1, -1, -1, 45, 389, -1,
+ -1, -1, -1, 765, -1, 767, 54, -1, 56, 57,
+ 772, 773, 774, -1, 62, -1, 407, -1, 780, -1,
+ -1, -1, 70, 414, -1, -1, 417, -1, -1, -1,
+ -1, 422, 80, -1, -1, -1, -1, -1, -1, -1,
+ 88, -1, -1, -1, -1, 93, -1, -1, -1, 1210,
+ -1, -1, -1, 1214, -1, -1, -1, -1, -1, 3,
+ 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
+ 14, -1, 1480, 1140, 1141, 1142, 1143, 1144, -1, -1,
+ -1, 1148, -1, -1, 28, -1, 30, 31, 1249, 1497,
+ -1, -1, 36, -1, -1, -1, -1, 41, 489, -1,
+ 491, 45, -1, -1, 1171, 1172, 1173, -1, -1, -1,
+ 54, -1, 56, 57, -1, -1, 1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 516, 70, -1, -1, 14,
+ -1, -1, -1, -1, -1, -1, 80, -1, -1, -1,
+ -1, -1, -1, 28, 88, 30, 31, 32, -1, 93,
+ -1, 36, 37, -1, -1, -1, 41, -1, -1, -1,
+ 45, 46, 1323, 48, -1, -1, 1327, -1, -1, 54,
+ -1, 56, 57, -1, -1, 60, 12, 62, -1, 941,
+ 942, -1, -1, -1, -1, 70, -1, -1, 1349, 1350,
+ 1257, 1258, -1, 1260, -1, 80, -1, -1, -1, -1,
+ -1, 592, -1, 88, -1, -1, -1, -1, 93, -1,
+ -1, -1, 603, 604, -1, 606, 607, -1, -1, -1,
+ -1, -1, -1, -1, 109, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, 1014, -1, -1, -1, -1, -1, -1, 1,
+ -1, 3, 4, 5, 6, 7, 8, 9, 659, -1,
+ 12, -1, 14, -1, -1, 666, 667, -1, -1, -1,
+ -1, -1, -1, 25, -1, 27, 1048, 678, -1, 31,
+ -1, -1, -1, -1, 36, -1, -1, -1, -1, 41,
+ -1, -1, -1, 45, -1, 47, -1, -1, -1, -1,
+ 701, -1, 54, -1, 56, 57, 58, 59, 60, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 87, 88, -1, 90, 91,
+ 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
+ 102, -1, -1, -1, -1, 107, 108, 109, 759, 111,
+ -1, 762, -1, -1, -1, -1, -1, -1, 1140, 1141,
+ -1, -1, -1, -1, -1, -1, 1148, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 110, -1, -1, -1, -1, -1, 1, 1185, 3, 4,
+ -1, -1, -1, -1, -1, 796, 797, 798, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 808, -1, -1,
+ -1, -1, 1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, -1, -1, -1, -1,
+ 1202, -1, -1, -1, -1, 1207, -1, -1, -1, 28,
+ 29, 30, 31, 32, -1, 34, 35, 36, -1, 38,
+ 39, 40, 41, 42, 43, -1, 45, -1, 47, -1,
+ 49, 50, 51, 52, 53, 54, -1, 56, 57, 58,
+ -1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
+ 881, 70, 883, -1, -1, 1257, 1258, -1, 1260, 78,
+ 79, 80, -1, 894, -1, -1, -1, 86, 87, 88,
+ -1, 90, -1, -1, 93, 94, -1, -1, -1, -1,
+ 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 110, 13, 14, 15, 1297, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, -1, -1, 49, 50,
+ 51, 52, 53, 54, -1, 56, 57, 58, -1, 60,
+ 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
+ -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
+ -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
+ -1, -1, 93, -1, 95, -1, -1, -1, 1009, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
+ 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, 13, 14, 15, 1036, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, -1, -1, 49, 50,
+ 51, 52, 53, 54, -1, 56, 57, 58, -1, 60,
+ 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
+ -1, 1092, 1093, -1, 1095, -1, -1, 78, 79, 80,
+ -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
+ -1, -1, 93, -1, 95, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
+ -1, -1, 1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1155, -1, -1, -1, -1, 28,
+ 29, 30, 31, 32, -1, 34, 35, 36, -1, 38,
+ 39, 40, 41, 42, 43, -1, 45, -1, 47, -1,
+ 49, 50, 51, 52, 53, 54, 1187, 56, 57, 58,
+ -1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
+ -1, 70, -1, -1, 1205, -1, 1207, -1, -1, 78,
+ 79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
+ -1, 90, -1, -1, 93, 94, 1, -1, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- -1, -1, -1, -1, -1, 1203, -1, 1205, -1, -1,
+ -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 28, 29, 30, 31, 32, -1, 34,
35, 36, -1, 38, 39, 40, 41, 42, 43, -1,
45, -1, -1, -1, 49, 50, 51, 52, 53, 54,
@@ -3357,6 +3332,13 @@ static const short yycheck[] = { 4,
109, -1, 41, -1, -1, -1, 45, 46, -1, 48,
-1, -1, -1, -1, -1, 54, -1, 56, 57, -1,
-1, 60, -1, 62, -1, -1, -1, -1, -1, -1,
+ -1, 70, 1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 80, -1, -1, -1, 14, -1, -1, -1, 88,
+ -1, -1, -1, -1, 93, -1, -1, -1, -1, 28,
+ -1, 30, 31, 32, -1, -1, -1, 36, 37, -1,
+ 109, -1, 41, -1, -1, -1, 45, 46, -1, 48,
+ -1, -1, -1, -1, -1, 54, -1, 56, 57, -1,
+ -1, 60, -1, 62, -1, -1, -1, -1, -1, -1,
-1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 80, -1, -1, -1, -1, -1, -1, -1, 88,
-1, -1, -1, -1, 93, -1, -1, 3, 4, 5,
@@ -3563,34 +3545,60 @@ static const short yycheck[] = { 4,
34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
-1, 45, -1, -1, -1, 49, 50, 51, 52, 53,
54, -1, 56, 57, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 67, -1, -1, 70, 3, 4, 5,
+ -1, -1, -1, 67, -1, 1, 70, 3, 4, 5,
6, 7, 8, 9, 78, 79, 80, -1, 14, -1,
-1, -1, 86, 87, 88, -1, -1, -1, -1, 93,
- -1, -1, 28, -1, 30, 31, -1, -1, -1, -1,
- 36, -1, -1, -1, -1, 41, 110, -1, -1, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, 54, -1,
- 56, 57, -1, -1, -1, -1, 62, -1, -1, -1,
- -1, -1, -1, -1, 70, 3, 4, 5, 6, 7,
- 8, 9, -1, -1, 80, -1, 14, -1, -1, -1,
- -1, -1, 88, -1, -1, -1, -1, 93, -1, -1,
- 28, -1, 30, 31, -1, -1, -1, -1, 36, -1,
- -1, -1, -1, 41, -1, -1, -1, 45, -1, -1,
- -1, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ -1, 27, 28, -1, 30, 31, 32, -1, -1, -1,
+ 36, -1, -1, -1, -1, 41, 110, -1, 44, 45,
+ 46, -1, 48, -1, -1, -1, -1, -1, 54, -1,
+ 56, 57, -1, -1, 60, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
+ -1, -1, -1, 1, 80, 3, 4, 5, 6, 7,
+ 8, 9, 88, -1, -1, -1, 14, 93, -1, -1,
+ -1, -1, 98, -1, -1, -1, -1, -1, -1, -1,
+ 28, -1, 30, 31, 32, -1, -1, -1, 36, -1,
+ -1, -1, -1, 41, -1, -1, -1, 45, 46, -1,
+ 48, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ -1, -1, 60, -1, 62, -1, -1, -1, -1, -1,
+ -1, -1, 70, 3, 4, 5, 6, 7, 8, 9,
+ -1, -1, 80, -1, 14, -1, -1, -1, -1, -1,
+ 88, -1, -1, -1, -1, 93, -1, -1, 28, -1,
+ 30, 31, -1, -1, -1, -1, 36, -1, -1, -1,
+ -1, 41, -1, -1, -1, 45, -1, -1, -1, -1,
+ -1, -1, -1, -1, 54, -1, 56, 57, -1, -1,
+ 60, -1, 3, 4, 5, 6, 7, 8, 9, -1,
+ 70, -1, -1, 14, -1, -1, -1, -1, -1, -1,
+ 80, -1, -1, -1, -1, -1, -1, 28, 88, 30,
+ 31, -1, -1, 93, -1, 36, -1, -1, -1, -1,
+ 41, -1, -1, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, 54, -1, 56, 57, 3, 4, 5,
+ 6, 7, 8, 9, -1, -1, -1, -1, 14, 70,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 80,
+ -1, -1, -1, -1, -1, 31, -1, 88, -1, -1,
+ 36, -1, 93, -1, -1, 41, -1, -1, -1, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, 54, -1,
+ 56, 57, -1, -1, -1, -1, 31, -1, -1, -1,
+ -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 80, -1, -1, -1, -1, -1,
+ -1, -1, 88, -1, -1, -1, -1, 93, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 70, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 80, -1, -1, -1, -1, -1, -1, -1,
- 88, -1, -1, -1, -1, 93, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, -1, -1, -1, -1, 111, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
- 107, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84
+ -1, -1, -1, 59, -1, -1, 107, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple"
@@ -4091,106 +4099,106 @@ yyreduce:
switch (yyn) {
case 2:
-#line 338 "parse.y"
+#line 337 "parse.y"
{ finish_translation_unit (); ;
break;}
case 3:
-#line 346 "parse.y"
+#line 345 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 4:
-#line 348 "parse.y"
+#line 347 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 5:
-#line 350 "parse.y"
+#line 349 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 8:
-#line 359 "parse.y"
+#line 358 "parse.y"
{ have_extern_spec = 1;
used_extern_spec = 0;
yyval.ttype = NULL_TREE; ;
break;}
case 9:
-#line 364 "parse.y"
+#line 363 "parse.y"
{ have_extern_spec = 0; ;
break;}
case 10:
-#line 369 "parse.y"
+#line 368 "parse.y"
{ yyval.itype = pedantic;
pedantic = 0; ;
break;}
case 12:
-#line 378 "parse.y"
+#line 377 "parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
break;}
case 13:
-#line 380 "parse.y"
+#line 379 "parse.y"
{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
pop_everything (); ;
break;}
case 14:
-#line 386 "parse.y"
+#line 385 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
break;}
case 15:
-#line 388 "parse.y"
+#line 387 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
break;}
case 16:
-#line 390 "parse.y"
+#line 389 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
break;}
case 17:
-#line 392 "parse.y"
+#line 391 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
assemble_asm (yyvsp[-2].ttype); ;
break;}
case 18:
-#line 395 "parse.y"
+#line 394 "parse.y"
{ pop_lang_context (); ;
break;}
case 19:
-#line 397 "parse.y"
+#line 396 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
pop_lang_context (); ;
break;}
case 20:
-#line 400 "parse.y"
+#line 399 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
pop_lang_context (); ;
break;}
case 21:
-#line 403 "parse.y"
+#line 402 "parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
break;}
case 22:
-#line 405 "parse.y"
+#line 404 "parse.y"
{ pop_namespace (); ;
break;}
case 23:
-#line 407 "parse.y"
+#line 406 "parse.y"
{ push_namespace (NULL_TREE); ;
break;}
case 24:
-#line 409 "parse.y"
+#line 408 "parse.y"
{ pop_namespace (); ;
break;}
case 26:
-#line 412 "parse.y"
+#line 411 "parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
break;}
case 28:
-#line 415 "parse.y"
+#line 414 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
break;}
case 29:
-#line 420 "parse.y"
+#line 419 "parse.y"
{ begin_only_namespace_names (); ;
break;}
case 30:
-#line 422 "parse.y"
+#line 421 "parse.y"
{
end_only_namespace_names ();
if (lastiddecl)
@@ -4199,35 +4207,35 @@ case 30:
;
break;}
case 31:
-#line 432 "parse.y"
+#line 431 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 32:
-#line 434 "parse.y"
+#line 433 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 33:
-#line 436 "parse.y"
+#line 435 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 34:
-#line 441 "parse.y"
+#line 440 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 35:
-#line 443 "parse.y"
+#line 442 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
break;}
case 36:
-#line 445 "parse.y"
+#line 444 "parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 37:
-#line 450 "parse.y"
+#line 449 "parse.y"
{ begin_only_namespace_names (); ;
break;}
case 38:
-#line 452 "parse.y"
+#line 451 "parse.y"
{
end_only_namespace_names ();
/* If no declaration was found, the using-directive is
@@ -4239,7 +4247,7 @@ case 38:
;
break;}
case 39:
-#line 465 "parse.y"
+#line 464 "parse.y"
{
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
@@ -4247,7 +4255,7 @@ case 39:
;
break;}
case 40:
-#line 471 "parse.y"
+#line 470 "parse.y"
{
yyval.ttype = yyvsp[-1].ttype;
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
@@ -4256,86 +4264,86 @@ case 40:
;
break;}
case 43:
-#line 482 "parse.y"
+#line 481 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 44:
-#line 484 "parse.y"
+#line 483 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 45:
-#line 489 "parse.y"
+#line 488 "parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
break;}
case 46:
-#line 491 "parse.y"
+#line 490 "parse.y"
{ if (current_lang_name != yyvsp[0].ttype)
cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
break;}
case 47:
-#line 498 "parse.y"
+#line 497 "parse.y"
{ begin_template_parm_list (); ;
break;}
case 48:
-#line 500 "parse.y"
+#line 499 "parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
break;}
case 49:
-#line 502 "parse.y"
+#line 501 "parse.y"
{ begin_specialization();
yyval.ttype = NULL_TREE; ;
break;}
case 50:
-#line 508 "parse.y"
+#line 507 "parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 51:
-#line 510 "parse.y"
+#line 509 "parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 52:
-#line 515 "parse.y"
+#line 514 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 53:
-#line 517 "parse.y"
+#line 516 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 54:
-#line 521 "parse.y"
+#line 520 "parse.y"
{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 55:
-#line 523 "parse.y"
+#line 522 "parse.y"
{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
break;}
case 56:
-#line 528 "parse.y"
+#line 527 "parse.y"
{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 57:
-#line 540 "parse.y"
+#line 539 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 58:
-#line 542 "parse.y"
+#line 541 "parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
break;}
case 59:
-#line 544 "parse.y"
+#line 543 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
break;}
case 60:
-#line 546 "parse.y"
+#line 545 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
break;}
case 61:
-#line 548 "parse.y"
+#line 547 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 62:
-#line 550 "parse.y"
+#line 549 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
&& TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
@@ -4348,66 +4356,66 @@ case 62:
;
break;}
case 63:
-#line 564 "parse.y"
+#line 563 "parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
break;}
case 64:
-#line 566 "parse.y"
+#line 565 "parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
break;}
case 65:
-#line 571 "parse.y"
+#line 570 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
break;}
case 66:
-#line 573 "parse.y"
+#line 572 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
break;}
case 67:
-#line 575 "parse.y"
+#line 574 "parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
break;}
case 68:
-#line 577 "parse.y"
+#line 576 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
pop_lang_context (); ;
break;}
case 69:
-#line 580 "parse.y"
+#line 579 "parse.y"
{ if (pending_inlines) do_pending_inlines ();
pop_lang_context (); ;
break;}
case 70:
-#line 583 "parse.y"
+#line 582 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
break;}
case 72:
-#line 589 "parse.y"
+#line 588 "parse.y"
{;
break;}
case 73:
-#line 591 "parse.y"
+#line 590 "parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
break;}
case 74:
-#line 593 "parse.y"
+#line 592 "parse.y"
{ maybe_process_partial_specialization (yyvsp[-1].ftype.t);
note_got_semicolon (yyvsp[-1].ftype.t); ;
break;}
case 76:
-#line 600 "parse.y"
+#line 599 "parse.y"
{;
break;}
case 77:
-#line 602 "parse.y"
+#line 601 "parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
break;}
case 78:
-#line 604 "parse.y"
+#line 603 "parse.y"
{ pedwarn ("empty declaration"); ;
break;}
case 80:
-#line 607 "parse.y"
+#line 606 "parse.y"
{
tree t, attrs;
split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
@@ -4416,124 +4424,124 @@ case 80:
;
break;}
case 84:
-#line 620 "parse.y"
+#line 619 "parse.y"
{ yyval.itype = 0; ;
break;}
case 85:
-#line 622 "parse.y"
+#line 621 "parse.y"
{ yyval.itype = 1; ;
break;}
case 91:
-#line 638 "parse.y"
+#line 637 "parse.y"
{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
break;}
case 92:
-#line 640 "parse.y"
+#line 639 "parse.y"
{ ;
break;}
case 93:
-#line 642 "parse.y"
+#line 641 "parse.y"
{ ;
break;}
case 94:
-#line 647 "parse.y"
+#line 646 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 95:
-#line 649 "parse.y"
+#line 648 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 96:
-#line 651 "parse.y"
+#line 650 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
;
break;}
case 97:
-#line 655 "parse.y"
+#line 654 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 98:
-#line 657 "parse.y"
+#line 656 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 99:
-#line 659 "parse.y"
+#line 658 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
;
break;}
case 100:
-#line 663 "parse.y"
+#line 662 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 101:
-#line 665 "parse.y"
+#line 664 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 102:
-#line 667 "parse.y"
+#line 666 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
;
break;}
case 103:
-#line 671 "parse.y"
+#line 670 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 104:
-#line 673 "parse.y"
+#line 672 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 105:
-#line 675 "parse.y"
+#line 674 "parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
;
break;}
case 106:
-#line 682 "parse.y"
+#line 681 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
YYERROR1; ;
break;}
case 107:
-#line 685 "parse.y"
+#line 684 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
YYERROR1; ;
break;}
case 108:
-#line 688 "parse.y"
+#line 687 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
YYERROR1; ;
break;}
case 109:
-#line 691 "parse.y"
+#line 690 "parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
YYERROR1; ;
break;}
case 110:
-#line 694 "parse.y"
+#line 693 "parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
YYERROR1; ;
break;}
case 111:
-#line 700 "parse.y"
+#line 699 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 112:
-#line 702 "parse.y"
+#line 701 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 113:
-#line 704 "parse.y"
+#line 703 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 114:
-#line 706 "parse.y"
+#line 705 "parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 115:
-#line 713 "parse.y"
+#line 712 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
yyval.ttype = start_method (specs, yyvsp[0].ttype);
rest_of_mdef:
@@ -4544,34 +4552,34 @@ case 115:
reinit_parse_for_method (yychar, yyval.ttype); ;
break;}
case 116:
-#line 722 "parse.y"
+#line 721 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
break;}
case 117:
-#line 724 "parse.y"
+#line 723 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
break;}
case 118:
-#line 727 "parse.y"
+#line 726 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
break;}
case 119:
-#line 730 "parse.y"
+#line 729 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
break;}
case 120:
-#line 732 "parse.y"
+#line 731 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
break;}
case 121:
-#line 735 "parse.y"
+#line 734 "parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
break;}
case 122:
-#line 740 "parse.y"
+#line 739 "parse.y"
{
if (! current_function_parms_stored)
store_parm_decls ();
@@ -4579,19 +4587,19 @@ case 122:
;
break;}
case 123:
-#line 749 "parse.y"
+#line 748 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 124:
-#line 751 "parse.y"
+#line 750 "parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
break;}
case 125:
-#line 753 "parse.y"
+#line 752 "parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
break;}
case 126:
-#line 758 "parse.y"
+#line 757 "parse.y"
{
if (yyvsp[0].itype == 0)
error ("no base initializers given following ':'");
@@ -4603,7 +4611,7 @@ case 126:
;
break;}
case 127:
-#line 771 "parse.y"
+#line 770 "parse.y"
{
if (! current_function_parms_stored)
store_parm_decls ();
@@ -4622,15 +4630,15 @@ case 127:
;
break;}
case 128:
-#line 791 "parse.y"
+#line 790 "parse.y"
{ yyval.itype = 0; ;
break;}
case 129:
-#line 793 "parse.y"
+#line 792 "parse.y"
{ yyval.itype = 1; ;
break;}
case 132:
-#line 800 "parse.y"
+#line 799 "parse.y"
{
if (current_class_name)
pedwarn ("anachronistic old style base class initializer");
@@ -4638,7 +4646,7 @@ case 132:
;
break;}
case 133:
-#line 806 "parse.y"
+#line 805 "parse.y"
{
if (current_class_name)
pedwarn ("anachronistic old style base class initializer");
@@ -4646,89 +4654,89 @@ case 133:
;
break;}
case 134:
-#line 812 "parse.y"
+#line 811 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 135:
-#line 814 "parse.y"
+#line 813 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
break;}
case 136:
-#line 816 "parse.y"
+#line 815 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 137:
-#line 818 "parse.y"
+#line 817 "parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
break;}
case 138:
-#line 820 "parse.y"
+#line 819 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
yyvsp[-1].ttype); ;
break;}
case 139:
-#line 823 "parse.y"
+#line 822 "parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
void_type_node); ;
break;}
case 151:
-#line 849 "parse.y"
+#line 848 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
yyungetc (';', 1); ;
break;}
case 153:
-#line 853 "parse.y"
+#line 852 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 155:
-#line 857 "parse.y"
+#line 856 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 157:
-#line 860 "parse.y"
+#line 859 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 159:
-#line 863 "parse.y"
+#line 862 "parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
yyungetc (';', 1); ;
break;}
case 161:
-#line 868 "parse.y"
+#line 867 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
break;}
case 163:
-#line 872 "parse.y"
+#line 871 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
break;}
case 165:
-#line 875 "parse.y"
+#line 874 "parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
break;}
case 167:
-#line 880 "parse.y"
+#line 879 "parse.y"
{ begin_explicit_instantiation(); ;
break;}
case 168:
-#line 883 "parse.y"
+#line 882 "parse.y"
{ end_explicit_instantiation(); ;
break;}
case 169:
-#line 892 "parse.y"
+#line 891 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 170:
-#line 895 "parse.y"
+#line 894 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 172:
-#line 902 "parse.y"
+#line 901 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 173:
-#line 906 "parse.y"
+#line 905 "parse.y"
{
if (yychar == YYEMPTY)
yychar = YYLEX;
@@ -4738,7 +4746,7 @@ case 173:
;
break;}
case 175:
-#line 917 "parse.y"
+#line 916 "parse.y"
{
/* Handle `Class<Class<Type>>' without space in the `>>' */
pedwarn ("`>>' should be `> >' in template class name");
@@ -4746,79 +4754,79 @@ case 175:
;
break;}
case 176:
-#line 926 "parse.y"
+#line 925 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 178:
-#line 932 "parse.y"
+#line 931 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
break;}
case 179:
-#line 934 "parse.y"
+#line 933 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 180:
-#line 939 "parse.y"
+#line 938 "parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
break;}
case 181:
-#line 941 "parse.y"
+#line 940 "parse.y"
{ yyval.ttype = lastiddecl; ;
break;}
case 183:
-#line 947 "parse.y"
+#line 946 "parse.y"
{ yyval.code = NEGATE_EXPR; ;
break;}
case 184:
-#line 949 "parse.y"
+#line 948 "parse.y"
{ yyval.code = CONVERT_EXPR; ;
break;}
case 185:
-#line 951 "parse.y"
+#line 950 "parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
break;}
case 186:
-#line 953 "parse.y"
+#line 952 "parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
break;}
case 187:
-#line 955 "parse.y"
+#line 954 "parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
break;}
case 188:
-#line 960 "parse.y"
+#line 959 "parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
break;}
case 190:
-#line 966 "parse.y"
+#line 965 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
cond_stmt_keyword);
yyval.ttype = integer_zero_node; ;
break;}
case 191:
-#line 970 "parse.y"
+#line 969 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 192:
-#line 975 "parse.y"
+#line 974 "parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
cond_stmt_keyword);
yyval.ttype = integer_zero_node; ;
break;}
case 193:
-#line 979 "parse.y"
+#line 978 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 194:
-#line 984 "parse.y"
+#line 983 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 196:
-#line 987 "parse.y"
+#line 986 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 197:
-#line 992 "parse.y"
+#line 991 "parse.y"
{ {
tree d;
for (d = getdecls (); d; d = TREE_CHAIN (d))
@@ -4837,7 +4845,7 @@ case 197:
;
break;}
case 198:
-#line 1009 "parse.y"
+#line 1008 "parse.y"
{
cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
resume_momentary (yyvsp[-2].itype);
@@ -4847,182 +4855,182 @@ case 198:
;
break;}
case 204:
-#line 1028 "parse.y"
+#line 1027 "parse.y"
{ yyval.ttype = begin_compound_stmt (1); ;
break;}
case 205:
-#line 1030 "parse.y"
+#line 1029 "parse.y"
{ finish_compound_stmt (1, yyvsp[-1].ttype); ;
break;}
case 207:
-#line 1037 "parse.y"
+#line 1036 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 208:
-#line 1040 "parse.y"
+#line 1039 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
build_expr_list (NULL_TREE, error_mark_node)); ;
break;}
case 209:
-#line 1043 "parse.y"
+#line 1042 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 210:
-#line 1045 "parse.y"
+#line 1044 "parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
break;}
case 211:
-#line 1050 "parse.y"
+#line 1049 "parse.y"
{ yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
break;}
case 213:
-#line 1056 "parse.y"
+#line 1055 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 214:
-#line 1059 "parse.y"
+#line 1058 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
pedantic = yyvsp[-1].itype; ;
break;}
case 215:
-#line 1062 "parse.y"
+#line 1061 "parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
break;}
case 216:
-#line 1064 "parse.y"
+#line 1063 "parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
break;}
case 217:
-#line 1066 "parse.y"
+#line 1065 "parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
break;}
case 218:
-#line 1068 "parse.y"
+#line 1067 "parse.y"
{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
break;}
case 219:
-#line 1071 "parse.y"
+#line 1070 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids `&&'");
yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
break;}
case 220:
-#line 1075 "parse.y"
+#line 1074 "parse.y"
{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
break;}
case 221:
-#line 1077 "parse.y"
+#line 1076 "parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
break;}
case 222:
-#line 1079 "parse.y"
+#line 1078 "parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
break;}
case 223:
-#line 1081 "parse.y"
+#line 1080 "parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
check_for_new_type ("alignof", yyvsp[-1].ftype); ;
break;}
case 224:
-#line 1087 "parse.y"
+#line 1086 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
check_for_new_type ("new", yyvsp[0].ftype); ;
break;}
case 225:
-#line 1090 "parse.y"
+#line 1089 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
check_for_new_type ("new", yyvsp[-1].ftype); ;
break;}
case 226:
-#line 1093 "parse.y"
+#line 1092 "parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
check_for_new_type ("new", yyvsp[0].ftype); ;
break;}
case 227:
-#line 1096 "parse.y"
+#line 1095 "parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
check_for_new_type ("new", yyvsp[-1].ftype); ;
break;}
case 228:
-#line 1109 "parse.y"
+#line 1108 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
NULL_TREE, yyvsp[-4].itype);
check_for_new_type ("new", yyvsp[-1].ftype); ;
break;}
case 229:
-#line 1114 "parse.y"
+#line 1113 "parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
check_for_new_type ("new", yyvsp[-2].ftype); ;
break;}
case 230:
-#line 1118 "parse.y"
+#line 1117 "parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype);
check_for_new_type ("new", yyvsp[-1].ftype); ;
break;}
case 231:
-#line 1122 "parse.y"
+#line 1121 "parse.y"
{ yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype);
check_for_new_type ("new", yyvsp[-2].ftype); ;
break;}
case 232:
-#line 1126 "parse.y"
+#line 1125 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
break;}
case 233:
-#line 1128 "parse.y"
+#line 1127 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
if (yychar == YYEMPTY)
yychar = YYLEX; ;
break;}
case 234:
-#line 1132 "parse.y"
+#line 1131 "parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
if (yychar == YYEMPTY)
yychar = YYLEX; ;
break;}
case 235:
-#line 1136 "parse.y"
+#line 1135 "parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
break;}
case 236:
-#line 1138 "parse.y"
+#line 1137 "parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
break;}
case 237:
-#line 1148 "parse.y"
+#line 1147 "parse.y"
{ finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
break;}
case 238:
-#line 1151 "parse.y"
+#line 1150 "parse.y"
{ yyval.itype = begin_new_placement (); ;
break;}
case 239:
-#line 1155 "parse.y"
+#line 1154 "parse.y"
{ yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
break;}
case 240:
-#line 1157 "parse.y"
+#line 1156 "parse.y"
{ cp_pedwarn ("old style placement syntax, use () instead");
yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
break;}
case 241:
-#line 1163 "parse.y"
+#line 1162 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 242:
-#line 1165 "parse.y"
+#line 1164 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 243:
-#line 1167 "parse.y"
+#line 1166 "parse.y"
{
cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
yyval.ttype = error_mark_node;
;
break;}
case 244:
-#line 1175 "parse.y"
+#line 1174 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids initialization of new expression with `='");
@@ -5034,23 +5042,23 @@ case 244:
;
break;}
case 245:
-#line 1189 "parse.y"
+#line 1188 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
check_for_new_type ("cast", yyvsp[-1].ftype); ;
break;}
case 246:
-#line 1193 "parse.y"
+#line 1192 "parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
check_for_new_type ("cast", yyvsp[-1].ftype); ;
break;}
case 248:
-#line 1201 "parse.y"
+#line 1200 "parse.y"
{ yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 249:
-#line 1203 "parse.y"
+#line 1202 "parse.y"
{
tree init = build_nt (CONSTRUCTOR, NULL_TREE,
nreverse (yyvsp[-2].ttype));
@@ -5063,161 +5071,161 @@ case 249:
;
break;}
case 251:
-#line 1219 "parse.y"
+#line 1218 "parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 252:
-#line 1221 "parse.y"
+#line 1220 "parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 253:
-#line 1223 "parse.y"
+#line 1222 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 254:
-#line 1225 "parse.y"
+#line 1224 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 255:
-#line 1227 "parse.y"
+#line 1226 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 256:
-#line 1229 "parse.y"
+#line 1228 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 257:
-#line 1231 "parse.y"
+#line 1230 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 258:
-#line 1233 "parse.y"
+#line 1232 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 259:
-#line 1235 "parse.y"
+#line 1234 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 260:
-#line 1237 "parse.y"
+#line 1236 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 261:
-#line 1239 "parse.y"
+#line 1238 "parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 262:
-#line 1241 "parse.y"
+#line 1240 "parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 263:
-#line 1243 "parse.y"
+#line 1242 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 264:
-#line 1245 "parse.y"
+#line 1244 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 265:
-#line 1247 "parse.y"
+#line 1246 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 266:
-#line 1249 "parse.y"
+#line 1248 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 267:
-#line 1251 "parse.y"
+#line 1250 "parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 268:
-#line 1253 "parse.y"
+#line 1252 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 269:
-#line 1255 "parse.y"
+#line 1254 "parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
break;}
case 270:
-#line 1257 "parse.y"
+#line 1256 "parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 271:
-#line 1259 "parse.y"
+#line 1258 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
if (yyval.ttype != error_mark_node)
C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
break;}
case 272:
-#line 1263 "parse.y"
+#line 1262 "parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
break;}
case 273:
-#line 1265 "parse.y"
+#line 1264 "parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
break;}
case 274:
-#line 1267 "parse.y"
+#line 1266 "parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
break;}
case 275:
-#line 1285 "parse.y"
+#line 1284 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
break;}
case 276:
-#line 1287 "parse.y"
+#line 1286 "parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
break;}
case 282:
-#line 1296 "parse.y"
+#line 1295 "parse.y"
{ yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE); ;
break;}
case 283:
-#line 1300 "parse.y"
+#line 1299 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 284:
-#line 1302 "parse.y"
+#line 1301 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 285:
-#line 1307 "parse.y"
+#line 1306 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 286:
-#line 1309 "parse.y"
+#line 1308 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 287:
-#line 1312 "parse.y"
+#line 1311 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 292:
-#line 1324 "parse.y"
+#line 1323 "parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
break;}
case 293:
-#line 1326 "parse.y"
+#line 1325 "parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
break;}
case 294:
-#line 1328 "parse.y"
+#line 1327 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 295:
-#line 1333 "parse.y"
+#line 1332 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 296:
-#line 1335 "parse.y"
+#line 1334 "parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 300:
-#line 1345 "parse.y"
+#line 1344 "parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
break;}
case 301:
-#line 1350 "parse.y"
+#line 1349 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
@@ -5226,7 +5234,7 @@ case 301:
;
break;}
case 304:
-#line 1359 "parse.y"
+#line 1358 "parse.y"
{
if (processing_template_decl)
push_obstacks (&permanent_obstack, &permanent_obstack);
@@ -5242,20 +5250,20 @@ case 304:
;
break;}
case 305:
-#line 1373 "parse.y"
+#line 1372 "parse.y"
{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
break;}
case 306:
-#line 1375 "parse.y"
+#line 1374 "parse.y"
{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
break;}
case 307:
-#line 1378 "parse.y"
+#line 1377 "parse.y"
{ yyval.ttype = error_mark_node; ;
break;}
case 308:
-#line 1380 "parse.y"
+#line 1379 "parse.y"
{ tree scope = current_scope ();
if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
{
@@ -5268,43 +5276,43 @@ case 308:
;
break;}
case 309:
-#line 1391 "parse.y"
+#line 1390 "parse.y"
{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 310:
-#line 1396 "parse.y"
+#line 1395 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
break;}
case 311:
-#line 1398 "parse.y"
+#line 1397 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
break;}
case 312:
-#line 1400 "parse.y"
+#line 1399 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
break;}
case 313:
-#line 1402 "parse.y"
+#line 1401 "parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
break;}
case 314:
-#line 1404 "parse.y"
+#line 1403 "parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
break;}
case 315:
-#line 1406 "parse.y"
+#line 1405 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
break;}
case 316:
-#line 1408 "parse.y"
+#line 1407 "parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
break;}
case 317:
-#line 1411 "parse.y"
+#line 1410 "parse.y"
{ yyval.ttype = finish_this_expr (); ;
break;}
case 318:
-#line 1413 "parse.y"
+#line 1412 "parse.y"
{
tree type = NULL_TREE;
tree id = yyval.ttype;
@@ -5350,49 +5358,49 @@ case 318:
;
break;}
case 320:
-#line 1458 "parse.y"
+#line 1457 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
break;}
case 321:
-#line 1462 "parse.y"
+#line 1461 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
check_for_new_type ("static_cast", yyvsp[-4].ftype);
yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
break;}
case 322:
-#line 1466 "parse.y"
+#line 1465 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
break;}
case 323:
-#line 1470 "parse.y"
+#line 1469 "parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
check_for_new_type ("const_cast", yyvsp[-4].ftype);
yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
break;}
case 324:
-#line 1474 "parse.y"
+#line 1473 "parse.y"
{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
break;}
case 325:
-#line 1476 "parse.y"
+#line 1475 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
check_for_new_type ("typeid", yyvsp[-1].ftype);
yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
break;}
case 326:
-#line 1480 "parse.y"
+#line 1479 "parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
break;}
case 327:
-#line 1482 "parse.y"
+#line 1481 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 328:
-#line 1484 "parse.y"
+#line 1483 "parse.y"
{
got_scope = NULL_TREE;
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
@@ -5402,102 +5410,102 @@ case 328:
;
break;}
case 329:
-#line 1492 "parse.y"
+#line 1491 "parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
break;}
case 330:
-#line 1494 "parse.y"
+#line 1493 "parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 331:
-#line 1496 "parse.y"
+#line 1495 "parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
break;}
case 332:
-#line 1498 "parse.y"
+#line 1497 "parse.y"
{
yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
;
break;}
case 333:
-#line 1502 "parse.y"
+#line 1501 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
break;}
case 334:
-#line 1504 "parse.y"
+#line 1503 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 335:
-#line 1506 "parse.y"
+#line 1505 "parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
break;}
case 336:
-#line 1508 "parse.y"
+#line 1507 "parse.y"
{ if (processing_template_decl)
yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
else
yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
break;}
case 337:
-#line 1513 "parse.y"
+#line 1512 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
break;}
case 338:
-#line 1515 "parse.y"
+#line 1514 "parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 339:
-#line 1517 "parse.y"
+#line 1516 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
break;}
case 340:
-#line 1519 "parse.y"
+#line 1518 "parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 341:
-#line 1522 "parse.y"
+#line 1521 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 342:
-#line 1524 "parse.y"
+#line 1523 "parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
break;}
case 343:
-#line 1526 "parse.y"
+#line 1525 "parse.y"
{
yyval.ttype = error_mark_node;
;
break;}
case 344:
-#line 1571 "parse.y"
+#line 1570 "parse.y"
{ yyval.itype = 0; ;
break;}
case 345:
-#line 1573 "parse.y"
+#line 1572 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
break;}
case 346:
-#line 1578 "parse.y"
+#line 1577 "parse.y"
{ yyval.itype = 0; ;
break;}
case 347:
-#line 1580 "parse.y"
+#line 1579 "parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
break;}
case 348:
-#line 1585 "parse.y"
+#line 1584 "parse.y"
{ yyval.ttype = boolean_true_node; ;
break;}
case 349:
-#line 1587 "parse.y"
+#line 1586 "parse.y"
{ yyval.ttype = boolean_false_node; ;
break;}
case 351:
-#line 1594 "parse.y"
+#line 1593 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 352:
-#line 1599 "parse.y"
+#line 1598 "parse.y"
{
if (! current_function_parms_stored)
store_parm_decls ();
@@ -5509,18 +5517,18 @@ case 352:
;
break;}
case 353:
-#line 1612 "parse.y"
+#line 1611 "parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
break;}
case 354:
-#line 1614 "parse.y"
+#line 1613 "parse.y"
{
yyval.ttype = build_x_arrow (yyval.ttype);
got_object = TREE_TYPE (yyval.ttype);
;
break;}
case 355:
-#line 1622 "parse.y"
+#line 1621 "parse.y"
{
resume_momentary (yyvsp[-1].itype);
if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
@@ -5528,138 +5536,138 @@ case 355:
;
break;}
case 356:
-#line 1628 "parse.y"
+#line 1627 "parse.y"
{
resume_momentary (yyvsp[-1].itype);
note_list_got_semicolon (yyvsp[-2].ftype.t);
;
break;}
case 357:
-#line 1633 "parse.y"
+#line 1632 "parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
break;}
case 358:
-#line 1635 "parse.y"
+#line 1634 "parse.y"
{
shadow_tag (yyvsp[-1].ftype.t);
note_list_got_semicolon (yyvsp[-1].ftype.t);
;
break;}
case 359:
-#line 1640 "parse.y"
+#line 1639 "parse.y"
{ warning ("empty declaration"); ;
break;}
case 360:
-#line 1642 "parse.y"
+#line 1641 "parse.y"
{ pedantic = yyvsp[-1].itype; ;
break;}
case 363:
-#line 1656 "parse.y"
+#line 1655 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
NULL_TREE, NULL_TREE); ;
break;}
case 364:
-#line 1659 "parse.y"
+#line 1658 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
NULL_TREE); ;
break;}
case 365:
-#line 1666 "parse.y"
+#line 1665 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 366:
-#line 1669 "parse.y"
+#line 1668 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 367:
-#line 1672 "parse.y"
+#line 1671 "parse.y"
{ yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 368:
-#line 1675 "parse.y"
+#line 1674 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
case 369:
-#line 1678 "parse.y"
+#line 1677 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
case 372:
-#line 1694 "parse.y"
+#line 1693 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
case 373:
-#line 1697 "parse.y"
+#line 1696 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 374:
-#line 1700 "parse.y"
+#line 1699 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
break;}
case 375:
-#line 1703 "parse.y"
+#line 1702 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 376:
-#line 1706 "parse.y"
+#line 1705 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 377:
-#line 1709 "parse.y"
+#line 1708 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
break;}
case 378:
-#line 1716 "parse.y"
+#line 1715 "parse.y"
{ if (extra_warnings)
warning ("`%s' is not at beginning of declaration",
IDENTIFIER_POINTER (yyval.ttype));
yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
break;}
case 379:
-#line 1721 "parse.y"
+#line 1720 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
break;}
case 380:
-#line 1723 "parse.y"
+#line 1722 "parse.y"
{ if (extra_warnings)
warning ("`%s' is not at beginning of declaration",
IDENTIFIER_POINTER (yyvsp[0].ttype));
yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;}
case 381:
-#line 1728 "parse.y"
+#line 1727 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 382:
-#line 1730 "parse.y"
+#line 1729 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
break;}
case 383:
-#line 1740 "parse.y"
+#line 1739 "parse.y"
{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
break;}
case 384:
-#line 1742 "parse.y"
+#line 1741 "parse.y"
{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
break;}
case 385:
-#line 1744 "parse.y"
+#line 1743 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
TREE_STATIC (yyval.ttype) = 1; ;
break;}
case 386:
-#line 1747 "parse.y"
+#line 1746 "parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
warning ("`%s' is not at beginning of declaration",
IDENTIFIER_POINTER (yyvsp[0].ttype));
@@ -5667,61 +5675,61 @@ case 386:
TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
break;}
case 387:
-#line 1753 "parse.y"
+#line 1752 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 388:
-#line 1755 "parse.y"
+#line 1754 "parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
break;}
case 389:
-#line 1766 "parse.y"
+#line 1765 "parse.y"
{ yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
case 390:
-#line 1769 "parse.y"
+#line 1768 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
case 391:
-#line 1772 "parse.y"
+#line 1771 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
case 392:
-#line 1775 "parse.y"
+#line 1774 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
break;}
case 393:
-#line 1781 "parse.y"
+#line 1780 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
break;}
case 394:
-#line 1783 "parse.y"
+#line 1782 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
break;}
case 396:
-#line 1793 "parse.y"
+#line 1792 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
break;}
case 397:
-#line 1795 "parse.y"
+#line 1794 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
break;}
case 398:
-#line 1797 "parse.y"
+#line 1796 "parse.y"
{ yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
yyval.ftype.new_type_flag = 0; ;
break;}
case 399:
-#line 1800 "parse.y"
+#line 1799 "parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = 0; ;
break;}
case 400:
-#line 1803 "parse.y"
+#line 1802 "parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);
yyval.ftype.new_type_flag = 0;
@@ -5738,7 +5746,7 @@ case 400:
;
break;}
case 401:
-#line 1818 "parse.y"
+#line 1817 "parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = 0;
@@ -5755,188 +5763,200 @@ case 401:
;
break;}
case 402:
-#line 1838 "parse.y"
+#line 1837 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
break;}
case 403:
-#line 1840 "parse.y"
+#line 1839 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
break;}
+case 406:
+#line 1846 "parse.y"
+{ check_multiple_declarators (); ;
+ break;}
+case 408:
+#line 1852 "parse.y"
+{ check_multiple_declarators (); ;
+ break;}
+case 410:
+#line 1858 "parse.y"
+{ check_multiple_declarators (); ;
+ break;}
case 411:
-#line 1861 "parse.y"
+#line 1863 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 412:
-#line 1863 "parse.y"
+#line 1865 "parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 413:
-#line 1868 "parse.y"
+#line 1870 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
yyvsp[-1].ttype, prefix_attributes); ;
break;}
case 414:
-#line 1872 "parse.y"
+#line 1874 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
break;}
case 415:
-#line 1874 "parse.y"
+#line 1876 "parse.y"
{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
yyvsp[0].ttype, prefix_attributes);
cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
break;}
case 416:
-#line 1887 "parse.y"
+#line 1889 "parse.y"
{ yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype,
yyvsp[-1].ttype, 1, &yyval.ttype); ;
break;}
case 417:
-#line 1892 "parse.y"
+#line 1894 "parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
LOOKUP_ONLYCONVERTING);
yyval.itype = yyvsp[-2].itype; ;
break;}
case 418:
-#line 1896 "parse.y"
+#line 1898 "parse.y"
{ tree d;
yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
break;}
case 419:
-#line 1903 "parse.y"
+#line 1905 "parse.y"
{ yyval.itype = yyvsp[0].itype; ;
break;}
case 420:
-#line 1907 "parse.y"
+#line 1909 "parse.y"
{ yyval.itype = yyvsp[0].itype; ;
break;}
case 421:
-#line 1912 "parse.y"
+#line 1914 "parse.y"
{ /* Set things up as initdcl0_innards expects. */
yyvsp[0].ttype = yyvsp[-1].ttype;
yyvsp[-1].ttype = NULL_TREE; ;
break;}
case 422:
-#line 1916 "parse.y"
+#line 1918 "parse.y"
{;
break;}
case 423:
-#line 1918 "parse.y"
+#line 1920 "parse.y"
{ tree d;
parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
break;}
case 424:
-#line 1927 "parse.y"
+#line 1929 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 425:
-#line 1929 "parse.y"
+#line 1931 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 426:
-#line 1934 "parse.y"
+#line 1936 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 427:
-#line 1936 "parse.y"
+#line 1938 "parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 428:
-#line 1941 "parse.y"
+#line 1943 "parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
break;}
case 429:
-#line 1946 "parse.y"
+#line 1948 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 430:
-#line 1948 "parse.y"
+#line 1950 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 431:
-#line 1953 "parse.y"
+#line 1955 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 432:
-#line 1955 "parse.y"
+#line 1957 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 433:
-#line 1957 "parse.y"
+#line 1959 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
break;}
case 434:
-#line 1959 "parse.y"
+#line 1961 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
break;}
case 435:
-#line 1961 "parse.y"
+#line 1963 "parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 440:
-#line 1977 "parse.y"
+#line 1979 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 441:
-#line 1979 "parse.y"
+#line 1981 "parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 442:
-#line 1984 "parse.y"
+#line 1986 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 443:
-#line 1986 "parse.y"
+#line 1988 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 445:
-#line 1994 "parse.y"
+#line 1996 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
break;}
case 446:
-#line 1997 "parse.y"
+#line 1999 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
break;}
case 447:
-#line 2000 "parse.y"
+#line 2002 "parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
break;}
case 448:
-#line 2003 "parse.y"
+#line 2005 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 449:
-#line 2010 "parse.y"
+#line 2012 "parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
break;}
case 450:
-#line 2012 "parse.y"
+#line 2014 "parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;}
case 451:
-#line 2015 "parse.y"
+#line 2017 "parse.y"
{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 452:
-#line 2017 "parse.y"
+#line 2019 "parse.y"
{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 453:
-#line 2019 "parse.y"
+#line 2021 "parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
break;}
case 454:
-#line 2024 "parse.y"
+#line 2026 "parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
NULL_TREE, 1);
reinit_parse_for_function (); ;
break;}
case 455:
-#line 2030 "parse.y"
+#line 2032 "parse.y"
{
int nested = (hack_decl_function_context
(current_function_decl) != NULL_TREE);
@@ -5945,37 +5965,37 @@ case 455:
;
break;}
case 456:
-#line 2037 "parse.y"
+#line 2039 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
break;}
case 457:
-#line 2039 "parse.y"
+#line 2041 "parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
break;}
case 460:
-#line 2051 "parse.y"
+#line 2053 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 461:
-#line 2053 "parse.y"
+#line 2055 "parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
break;}
case 463:
-#line 2058 "parse.y"
+#line 2060 "parse.y"
{ do_pending_defargs (); ;
break;}
case 464:
-#line 2060 "parse.y"
+#line 2062 "parse.y"
{ do_pending_defargs (); ;
break;}
case 465:
-#line 2065 "parse.y"
+#line 2067 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
yyval.ttype = current_enum_type;
current_enum_type = start_enum (yyvsp[-1].ttype); ;
break;}
case 466:
-#line 2069 "parse.y"
+#line 2071 "parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
yyval.ftype.t = finish_enum (current_enum_type);
yyval.ftype.new_type_flag = 1;
@@ -5984,19 +6004,19 @@ case 466:
check_for_missing_semicolon (yyval.ftype.t); ;
break;}
case 467:
-#line 2076 "parse.y"
+#line 2078 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
yyval.ftype.new_type_flag = 1;
check_for_missing_semicolon (yyval.ftype.t); ;
break;}
case 468:
-#line 2080 "parse.y"
+#line 2082 "parse.y"
{ yyvsp[0].itype = suspend_momentary ();
yyval.ttype = current_enum_type;
current_enum_type = start_enum (make_anon_name ()); ;
break;}
case 469:
-#line 2084 "parse.y"
+#line 2086 "parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
yyval.ftype.t = finish_enum (current_enum_type);
yyval.ftype.new_type_flag = 1;
@@ -6005,30 +6025,30 @@ case 469:
check_for_missing_semicolon (yyval.ftype.t); ;
break;}
case 470:
-#line 2091 "parse.y"
+#line 2093 "parse.y"
{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
yyval.ftype.new_type_flag = 1;
check_for_missing_semicolon (yyval.ftype.t); ;
break;}
case 471:
-#line 2095 "parse.y"
+#line 2097 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
yyval.ftype.new_type_flag = 0; ;
break;}
case 472:
-#line 2098 "parse.y"
+#line 2100 "parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
yyval.ftype.new_type_flag = 0; ;
break;}
case 473:
-#line 2101 "parse.y"
+#line 2103 "parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
yyval.ftype.new_type_flag = 0;
if (!processing_template_decl)
cp_pedwarn ("using `typename' outside of template"); ;
break;}
case 474:
-#line 2108 "parse.y"
+#line 2110 "parse.y"
{
int semi;
@@ -6036,21 +6056,21 @@ case 474:
yychar = YYLEX;
semi = yychar == ';';
- yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
+ yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[0].ttype, semi);
;
break;}
case 475:
-#line 2118 "parse.y"
+#line 2120 "parse.y"
{ finish_default_args (); ;
break;}
case 476:
-#line 2120 "parse.y"
+#line 2122 "parse.y"
{ yyval.ftype.t = yyvsp[-3].ttype;
yyval.ftype.new_type_flag = 1;
begin_inline_definitions (); ;
break;}
case 477:
-#line 2124 "parse.y"
+#line 2126 "parse.y"
{
yyval.ftype.new_type_flag = 0;
if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
@@ -6070,85 +6090,88 @@ case 477:
;
break;}
case 481:
-#line 2151 "parse.y"
+#line 2153 "parse.y"
{ if (pedantic && !in_system_header)
pedwarn ("comma at end of enumerator list"); ;
break;}
case 483:
-#line 2158 "parse.y"
+#line 2160 "parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
break;}
case 484:
-#line 2160 "parse.y"
+#line 2162 "parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
break;}
case 485:
-#line 2162 "parse.y"
+#line 2164 "parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
break;}
case 486:
-#line 2164 "parse.y"
+#line 2166 "parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
break;}
case 487:
-#line 2166 "parse.y"
+#line 2168 "parse.y"
{ yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 488:
-#line 2171 "parse.y"
-{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
+#line 2173 "parse.y"
+{
+ current_aggr = yyvsp[-1].ttype;
+ yyval.ttype = yyvsp[0].ttype;
+ ;
break;}
case 489:
-#line 2176 "parse.y"
+#line 2181 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
break;}
case 490:
-#line 2178 "parse.y"
+#line 2183 "parse.y"
{ yyungetc ('{', 1); ;
break;}
case 491:
-#line 2180 "parse.y"
+#line 2185 "parse.y"
{ yyungetc (':', 1); ;
break;}
case 492:
-#line 2185 "parse.y"
+#line 2190 "parse.y"
{
current_aggr = yyvsp[-2].ttype;
yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
;
break;}
case 493:
-#line 2190 "parse.y"
+#line 2195 "parse.y"
{
current_aggr = yyvsp[-3].ttype;
yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
;
break;}
case 494:
-#line 2195 "parse.y"
+#line 2200 "parse.y"
{
current_aggr = yyvsp[-2].ttype;
yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
;
break;}
case 495:
-#line 2200 "parse.y"
+#line 2205 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
break;}
case 496:
-#line 2202 "parse.y"
+#line 2207 "parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
break;}
case 497:
-#line 2207 "parse.y"
-{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
- break;}
-case 498:
#line 2212 "parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 1); ;
break;}
+case 498:
+#line 2214 "parse.y"
+{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
+ break;}
case 499:
-#line 2215 "parse.y"
+#line 2216 "parse.y"
{
yyval.ttype = yyvsp[-1].ttype;
if (yyvsp[0].ttype)
@@ -6156,7 +6179,7 @@ case 499:
;
break;}
case 500:
-#line 2221 "parse.y"
+#line 2222 "parse.y"
{
yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
if (TREE_INT_CST_LOW (current_aggr) == union_type
@@ -6173,44 +6196,44 @@ case 500:
;
break;}
case 501:
-#line 2239 "parse.y"
+#line 2240 "parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
yyungetc ('{', 1); ;
break;}
case 504:
-#line 2250 "parse.y"
+#line 2251 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 505:
-#line 2252 "parse.y"
+#line 2253 "parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
break;}
case 506:
-#line 2254 "parse.y"
+#line 2255 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 508:
-#line 2260 "parse.y"
+#line 2261 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 509:
-#line 2265 "parse.y"
+#line 2266 "parse.y"
{ yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
current_aggr
== signature_type_node); ;
break;}
case 510:
-#line 2269 "parse.y"
+#line 2270 "parse.y"
{ yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype,
current_aggr
== signature_type_node); ;
break;}
case 511:
-#line 2276 "parse.y"
+#line 2277 "parse.y"
{ if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
break;}
case 513:
-#line 2279 "parse.y"
+#line 2280 "parse.y"
{
if (current_aggr == signature_type_node)
{
@@ -6233,7 +6256,7 @@ case 513:
;
break;}
case 514:
-#line 2300 "parse.y"
+#line 2301 "parse.y"
{
if (current_aggr == signature_type_node)
{
@@ -6256,13 +6279,13 @@ case 514:
;
break;}
case 516:
-#line 2325 "parse.y"
+#line 2326 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
cp_error ("`%D' access", yyvsp[-1].ttype);
yyval.ttype = access_default_virtual_node; ;
break;}
case 517:
-#line 2329 "parse.y"
+#line 2330 "parse.y"
{
if (yyvsp[-2].ttype != access_default_virtual_node)
error ("multiple access specifiers");
@@ -6275,7 +6298,7 @@ case 517:
;
break;}
case 518:
-#line 2340 "parse.y"
+#line 2341 "parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
cp_error ("`%D' access", yyvsp[-1].ttype);
else if (yyval.ttype == access_public_node)
@@ -6289,281 +6312,296 @@ case 518:
;
break;}
case 519:
-#line 2355 "parse.y"
+#line 2356 "parse.y"
{ yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ;
break;}
case 520:
-#line 2360 "parse.y"
-{
- yyval.ttype = build_self_reference ();
- ;
- break;}
-case 521:
-#line 2367 "parse.y"
-{ if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
- break;}
-case 522:
-#line 2369 "parse.y"
+#line 2361 "parse.y"
{
- if (current_aggr == signature_type_node)
- yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
- else
- yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
- if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
+ finish_member_declaration (build_self_reference ());
;
break;}
-case 523:
-#line 2377 "parse.y"
+case 525:
+#line 2375 "parse.y"
{
- tree visspec = yyvsp[-2].ttype;
-
if (current_aggr == signature_type_node)
{
error ("access specifier not allowed in signature");
- visspec = access_public_node;
+ yyvsp[-1].ttype = access_public_node;
}
- yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
- ;
- break;}
-case 524:
-#line 2388 "parse.y"
-{
- if (current_aggr == signature_type_node)
- error ("access specifier not allowed in signature");
- ;
- break;}
-case 525:
-#line 2398 "parse.y"
-{ if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
- ;
+
+ current_access_specifier = yyvsp[-1].ttype;
+ ;
break;}
case 526:
-#line 2401 "parse.y"
-{ /* In pushdecl, we created a reverse list of names
- in this binding level. Make sure that the chain
- of what we're trying to add isn't the item itself
- (which can happen with what pushdecl's doing). */
- if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node
- && yyvsp[0].ttype != error_mark_node)
- {
- if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
- yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
- else
- yyval.ttype = yyvsp[0].ttype;
- }
+#line 2390 "parse.y"
+{
+ finish_member_declaration (yyvsp[0].ttype);
;
break;}
case 527:
-#line 2418 "parse.y"
-{ ;
+#line 2394 "parse.y"
+{
+ finish_member_declaration (yyvsp[0].ttype);
+ ;
break;}
-case 528:
-#line 2420 "parse.y"
+case 529:
+#line 2402 "parse.y"
{ error ("missing ';' before right brace");
yyungetc ('}', 0); ;
break;}
-case 529:
-#line 2425 "parse.y"
-{ yyval.ttype = finish_method (yyval.ttype); ;
- break;}
case 530:
-#line 2427 "parse.y"
+#line 2407 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 531:
-#line 2429 "parse.y"
+#line 2409 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 532:
-#line 2431 "parse.y"
+#line 2411 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 533:
-#line 2433 "parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 2413 "parse.y"
+{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 534:
-#line 2435 "parse.y"
-{ yyval.ttype = yyvsp[0].ttype;
- pedantic = yyvsp[-1].itype; ;
+#line 2415 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
break;}
case 535:
-#line 2438 "parse.y"
-{ yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 2417 "parse.y"
+{ yyval.ttype = yyvsp[0].ttype;
+ pedantic = yyvsp[-1].itype; ;
break;}
case 536:
-#line 2440 "parse.y"
-{ yyval.ttype = finish_member_class_template (yyvsp[-2].ttype, yyvsp[-1].ftype.t); ;
+#line 2420 "parse.y"
+{
+ if (yyvsp[0].ttype)
+ yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
+ else
+ /* The component was already processed. */
+ yyval.ttype = NULL_TREE;
+
+ finish_template_decl (yyvsp[-1].ttype);
+ ;
break;}
case 537:
-#line 2448 "parse.y"
-{ yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+#line 2430 "parse.y"
+{
+ yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t);
+ finish_template_decl (yyvsp[-2].ttype);
+ ;
break;}
case 538:
-#line 2450 "parse.y"
-{ yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 2441 "parse.y"
+{
+ /* Most of the productions for component_decl only
+ allow the creation of one new member, so we call
+ finish_member_declaration in component_decl_list.
+ For this rule and the next, however, there can be
+ more than one member, e.g.:
+
+ int i, j;
+
+ and we need the first member to be fully
+ registered before the second is processed.
+ Therefore, the rules for components take care of
+ this processing. To avoid registering the
+ components more than once, we send NULL_TREE up
+ here; that lets finish_member_declaration now
+ that there is nothing to do. */
+ if (!yyvsp[0].itype)
+ grok_x_components (yyvsp[-1].ftype.t);
+ yyval.ttype = NULL_TREE;
+ ;
break;}
case 539:
-#line 2452 "parse.y"
-{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
- build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
+#line 2462 "parse.y"
+{
+ if (!yyvsp[0].itype)
+ grok_x_components (yyvsp[-1].ttype);
+ yyval.ttype = NULL_TREE;
+ ;
break;}
case 540:
-#line 2455 "parse.y"
+#line 2468 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
break;}
case 541:
-#line 2458 "parse.y"
-{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
+#line 2471 "parse.y"
+{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
+ build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
break;}
case 542:
-#line 2460 "parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 2474 "parse.y"
+{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
break;}
case 543:
-#line 2471 "parse.y"
+#line 2476 "parse.y"
+{ yyval.ttype = NULL_TREE; ;
+ break;}
+case 544:
+#line 2487 "parse.y"
{ tree specs, attrs;
split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, attrs)); ;
break;}
-case 544:
-#line 2476 "parse.y"
+case 545:
+#line 2492 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
break;}
-case 545:
-#line 2479 "parse.y"
+case 546:
+#line 2495 "parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
break;}
-case 546:
-#line 2485 "parse.y"
-{ yyval.ttype = NULL_TREE; ;
+case 547:
+#line 2501 "parse.y"
+{ yyval.itype = 0; ;
break;}
case 548:
-#line 2488 "parse.y"
-{
- /* In this context, void_type_node encodes
- friends. They have been recorded elsewhere. */
- if (yyval.ttype == void_type_node)
- yyval.ttype = yyvsp[0].ttype;
- else
- yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
+#line 2503 "parse.y"
+{
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
+ finish_member_declaration (yyvsp[0].ttype);
+ yyval.itype = 1;
;
break;}
case 549:
-#line 2500 "parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 2510 "parse.y"
+{
+ check_multiple_declarators ();
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
+ finish_member_declaration (yyvsp[0].ttype);
+ yyval.itype = 2;
+ ;
+ break;}
+case 550:
+#line 2521 "parse.y"
+{ yyval.itype = 0; ;
break;}
case 551:
-#line 2503 "parse.y"
-{
- /* In this context, void_type_node encodes
- friends. They have been recorded elsewhere. */
- if (yyval.ttype == void_type_node)
- yyval.ttype = yyvsp[0].ttype;
- else
- yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
+#line 2523 "parse.y"
+{
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
+ finish_member_declaration (yyvsp[0].ttype);
+ yyval.itype = 1;
;
break;}
-case 556:
-#line 2525 "parse.y"
+case 552:
+#line 2530 "parse.y"
+{
+ check_multiple_declarators ();
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
+ finish_member_declaration (yyvsp[0].ttype);
+ yyval.itype = 2;
+ ;
+ break;}
+case 557:
+#line 2551 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 557:
-#line 2531 "parse.y"
+case 558:
+#line 2557 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 558:
-#line 2540 "parse.y"
+case 559:
+#line 2566 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 559:
-#line 2546 "parse.y"
+case 560:
+#line 2572 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 560:
-#line 2552 "parse.y"
+case 561:
+#line 2578 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 561:
-#line 2558 "parse.y"
+case 562:
+#line 2584 "parse.y"
{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-3].ttype = current_declspecs;
yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 562:
-#line 2567 "parse.y"
+case 563:
+#line 2593 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 563:
-#line 2570 "parse.y"
+case 564:
+#line 2596 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 564:
-#line 2576 "parse.y"
+case 565:
+#line 2602 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 565:
-#line 2579 "parse.y"
+case 566:
+#line 2605 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 566:
-#line 2582 "parse.y"
+case 567:
+#line 2608 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 568:
-#line 2593 "parse.y"
+case 569:
+#line 2619 "parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 569:
-#line 2598 "parse.y"
+case 570:
+#line 2624 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
break;}
-case 570:
-#line 2600 "parse.y"
+case 571:
+#line 2626 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
break;}
-case 571:
-#line 2606 "parse.y"
+case 572:
+#line 2632 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 572:
-#line 2609 "parse.y"
+case 573:
+#line 2635 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
-case 573:
-#line 2616 "parse.y"
+case 574:
+#line 2642 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
@@ -6572,72 +6610,72 @@ case 573:
yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
;
break;}
-case 574:
-#line 2627 "parse.y"
+case 575:
+#line 2653 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 575:
-#line 2629 "parse.y"
+case 576:
+#line 2655 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;}
-case 576:
-#line 2634 "parse.y"
+case 577:
+#line 2660 "parse.y"
{ yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
yyval.ftype.new_type_flag = 0; ;
break;}
-case 577:
-#line 2637 "parse.y"
+case 578:
+#line 2663 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 578:
-#line 2646 "parse.y"
-{ yyval.itype = suspend_momentary (); ;
- break;}
case 579:
-#line 2651 "parse.y"
-{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
+#line 2672 "parse.y"
+{ yyval.itype = suspend_momentary (); ;
break;}
case 580:
-#line 2657 "parse.y"
-{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
+#line 2677 "parse.y"
+{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
break;}
case 581:
-#line 2659 "parse.y"
+#line 2683 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 582:
-#line 2661 "parse.y"
-{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
+#line 2685 "parse.y"
+{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 583:
-#line 2663 "parse.y"
-{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
+#line 2687 "parse.y"
+{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
break;}
case 584:
-#line 2670 "parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+#line 2689 "parse.y"
+{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
break;}
case 585:
-#line 2672 "parse.y"
-{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+#line 2696 "parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
case 586:
-#line 2674 "parse.y"
-{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
+#line 2698 "parse.y"
+{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
case 587:
-#line 2676 "parse.y"
-{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
+#line 2700 "parse.y"
+{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 588:
-#line 2678 "parse.y"
+#line 2702 "parse.y"
+{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
+ break;}
+case 589:
+#line 2704 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 590:
-#line 2686 "parse.y"
+case 591:
+#line 2712 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
{
@@ -6655,8 +6693,8 @@ case 590:
yyval.ttype = yyvsp[0].ttype;
;
break;}
-case 591:
-#line 2703 "parse.y"
+case 592:
+#line 2729 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
@@ -6665,153 +6703,153 @@ case 591:
got_scope = NULL_TREE;
;
break;}
-case 594:
-#line 2716 "parse.y"
+case 595:
+#line 2742 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 595:
-#line 2721 "parse.y"
+case 596:
+#line 2747 "parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
break;}
-case 596:
-#line 2726 "parse.y"
+case 597:
+#line 2752 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 597:
-#line 2728 "parse.y"
+case 598:
+#line 2754 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 598:
-#line 2730 "parse.y"
+case 599:
+#line 2756 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;}
-case 599:
-#line 2732 "parse.y"
+case 600:
+#line 2758 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 600:
-#line 2734 "parse.y"
+case 601:
+#line 2760 "parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
break;}
-case 602:
-#line 2745 "parse.y"
+case 603:
+#line 2771 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 603:
-#line 2747 "parse.y"
+case 604:
+#line 2773 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 604:
-#line 2749 "parse.y"
+case 605:
+#line 2775 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 605:
-#line 2751 "parse.y"
+case 606:
+#line 2777 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 606:
-#line 2753 "parse.y"
+case 607:
+#line 2779 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 608:
-#line 2761 "parse.y"
+case 609:
+#line 2787 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 609:
-#line 2763 "parse.y"
+case 610:
+#line 2789 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 610:
-#line 2765 "parse.y"
+case 611:
+#line 2791 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 611:
-#line 2767 "parse.y"
+case 612:
+#line 2793 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 612:
-#line 2769 "parse.y"
+case 613:
+#line 2795 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 614:
-#line 2777 "parse.y"
+case 615:
+#line 2803 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 615:
-#line 2779 "parse.y"
+case 616:
+#line 2805 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 616:
-#line 2781 "parse.y"
+case 617:
+#line 2807 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 617:
-#line 2783 "parse.y"
+case 618:
+#line 2809 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;}
-case 618:
-#line 2785 "parse.y"
+case 619:
+#line 2811 "parse.y"
{ enter_scope_of (yyvsp[0].ttype); ;
break;}
-case 619:
-#line 2787 "parse.y"
+case 620:
+#line 2813 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
enter_scope_of (yyval.ttype);
;
break;}
-case 620:
-#line 2795 "parse.y"
+case 621:
+#line 2821 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
break;}
-case 621:
-#line 2798 "parse.y"
+case 622:
+#line 2824 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 622:
-#line 2804 "parse.y"
+case 623:
+#line 2830 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
break;}
-case 623:
-#line 2807 "parse.y"
+case 624:
+#line 2833 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 625:
-#line 2814 "parse.y"
+case 626:
+#line 2840 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 626:
-#line 2819 "parse.y"
+case 627:
+#line 2845 "parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
break;}
-case 627:
-#line 2821 "parse.y"
+case 628:
+#line 2847 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
break;}
-case 628:
-#line 2823 "parse.y"
+case 629:
+#line 2849 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 633:
-#line 2834 "parse.y"
+case 634:
+#line 2860 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 634:
-#line 2836 "parse.y"
+case 635:
+#line 2862 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 635:
-#line 2843 "parse.y"
+case 636:
+#line 2869 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
{
@@ -6826,32 +6864,32 @@ case 635:
got_scope = yyval.ttype = TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype));
;
break;}
-case 636:
-#line 2857 "parse.y"
+case 637:
+#line 2883 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
;
break;}
-case 637:
-#line 2863 "parse.y"
+case 638:
+#line 2889 "parse.y"
{
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype;
;
break;}
-case 638:
-#line 2869 "parse.y"
+case 639:
+#line 2895 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
break;}
-case 640:
-#line 2885 "parse.y"
+case 641:
+#line 2911 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 641:
-#line 2890 "parse.y"
+case 642:
+#line 2916 "parse.y"
{
if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
@@ -6865,27 +6903,27 @@ case 641:
}
;
break;}
-case 642:
-#line 2903 "parse.y"
+case 643:
+#line 2929 "parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
break;}
-case 643:
-#line 2905 "parse.y"
+case 644:
+#line 2931 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 644:
-#line 2907 "parse.y"
+case 645:
+#line 2933 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
-case 645:
-#line 2912 "parse.y"
+case 646:
+#line 2938 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
;
break;}
-case 646:
-#line 2917 "parse.y"
+case 647:
+#line 2943 "parse.y"
{
if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
@@ -6899,16 +6937,16 @@ case 646:
}
;
break;}
-case 647:
-#line 2930 "parse.y"
+case 648:
+#line 2956 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
-case 648:
-#line 2932 "parse.y"
+case 649:
+#line 2958 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 649:
-#line 2937 "parse.y"
+case 650:
+#line 2963 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
yyvsp[-1].ttype = lastiddecl;
@@ -6921,32 +6959,32 @@ case 649:
cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
;
break;}
-case 650:
-#line 2949 "parse.y"
+case 651:
+#line 2975 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
;
break;}
-case 651:
-#line 2955 "parse.y"
+case 652:
+#line 2981 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
break;}
-case 654:
-#line 2959 "parse.y"
+case 655:
+#line 2985 "parse.y"
{
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype;
;
break;}
-case 655:
-#line 2968 "parse.y"
+case 656:
+#line 2994 "parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 656:
-#line 2973 "parse.y"
+case 657:
+#line 2999 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
@@ -6955,149 +6993,149 @@ case 656:
got_scope = NULL_TREE;
;
break;}
-case 658:
-#line 2982 "parse.y"
+case 659:
+#line 3008 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 659:
-#line 2987 "parse.y"
+case 660:
+#line 3013 "parse.y"
{ got_scope = NULL_TREE; ;
break;}
-case 660:
-#line 2989 "parse.y"
+case 661:
+#line 3015 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
break;}
-case 661:
-#line 2996 "parse.y"
+case 662:
+#line 3022 "parse.y"
{ got_scope = void_type_node; ;
break;}
-case 662:
-#line 3002 "parse.y"
+case 663:
+#line 3028 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 663:
-#line 3004 "parse.y"
+case 664:
+#line 3030 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
-case 664:
-#line 3006 "parse.y"
+case 665:
+#line 3032 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 665:
-#line 3008 "parse.y"
+case 666:
+#line 3034 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
-case 666:
-#line 3010 "parse.y"
+case 667:
+#line 3036 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
;
break;}
-case 667:
-#line 3014 "parse.y"
+case 668:
+#line 3040 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 669:
-#line 3023 "parse.y"
+case 670:
+#line 3049 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;}
-case 670:
-#line 3025 "parse.y"
+case 671:
+#line 3051 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 671:
-#line 3031 "parse.y"
+case 672:
+#line 3057 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 672:
-#line 3033 "parse.y"
+case 673:
+#line 3059 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 673:
-#line 3035 "parse.y"
+case 674:
+#line 3061 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
break;}
-case 674:
-#line 3037 "parse.y"
+case 675:
+#line 3063 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
break;}
-case 675:
-#line 3039 "parse.y"
+case 676:
+#line 3065 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 676:
-#line 3041 "parse.y"
+case 677:
+#line 3067 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 677:
-#line 3043 "parse.y"
+case 678:
+#line 3069 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
break;}
-case 678:
-#line 3045 "parse.y"
+case 679:
+#line 3071 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
break;}
-case 679:
-#line 3047 "parse.y"
+case 680:
+#line 3073 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
;
break;}
-case 680:
-#line 3051 "parse.y"
+case 681:
+#line 3077 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 682:
-#line 3060 "parse.y"
+case 683:
+#line 3086 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 684:
-#line 3064 "parse.y"
-{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
- break;}
case 685:
-#line 3066 "parse.y"
-{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 3090 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 686:
-#line 3068 "parse.y"
-{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
+#line 3092 "parse.y"
+{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 687:
-#line 3070 "parse.y"
-{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
+#line 3094 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
case 688:
-#line 3072 "parse.y"
-{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 3096 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;}
case 689:
-#line 3074 "parse.y"
-{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 3098 "parse.y"
+{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 690:
-#line 3076 "parse.y"
+#line 3100 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 691:
-#line 3078 "parse.y"
-{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+#line 3102 "parse.y"
+{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 692:
-#line 3080 "parse.y"
+#line 3104 "parse.y"
+{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
+ break;}
+case 693:
+#line 3106 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
break;}
-case 699:
-#line 3103 "parse.y"
+case 700:
+#line 3129 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids label declarations"); ;
break;}
-case 702:
-#line 3114 "parse.y"
+case 703:
+#line 3140 "parse.y"
{ tree link;
for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
{
@@ -7107,226 +7145,226 @@ case 702:
}
;
break;}
-case 703:
-#line 3128 "parse.y"
+case 704:
+#line 3154 "parse.y"
{;
break;}
-case 705:
-#line 3134 "parse.y"
+case 706:
+#line 3160 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
break;}
-case 706:
-#line 3136 "parse.y"
+case 707:
+#line 3162 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
break;}
-case 707:
-#line 3141 "parse.y"
+case 708:
+#line 3167 "parse.y"
{
yyval.ttype = begin_if_stmt ();
cond_stmt_keyword = "if";
;
break;}
-case 708:
-#line 3146 "parse.y"
+case 709:
+#line 3172 "parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
-case 709:
-#line 3148 "parse.y"
+case 710:
+#line 3174 "parse.y"
{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
break;}
-case 711:
-#line 3153 "parse.y"
+case 712:
+#line 3179 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
break;}
-case 712:
-#line 3155 "parse.y"
+case 713:
+#line 3181 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
break;}
-case 713:
-#line 3160 "parse.y"
+case 714:
+#line 3186 "parse.y"
{;
break;}
-case 715:
-#line 3166 "parse.y"
+case 716:
+#line 3192 "parse.y"
{ finish_stmt (); ;
break;}
-case 716:
-#line 3168 "parse.y"
+case 717:
+#line 3194 "parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
break;}
-case 717:
-#line 3170 "parse.y"
+case 718:
+#line 3196 "parse.y"
{ begin_else_clause (); ;
break;}
-case 718:
-#line 3172 "parse.y"
+case 719:
+#line 3198 "parse.y"
{
finish_else_clause (yyvsp[-3].ttype);
finish_if_stmt ();
;
break;}
-case 719:
-#line 3177 "parse.y"
+case 720:
+#line 3203 "parse.y"
{ finish_if_stmt (); ;
break;}
-case 720:
-#line 3179 "parse.y"
+case 721:
+#line 3205 "parse.y"
{
yyval.ttype = begin_while_stmt ();
cond_stmt_keyword = "while";
;
break;}
-case 721:
-#line 3184 "parse.y"
+case 722:
+#line 3210 "parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
-case 722:
-#line 3186 "parse.y"
+case 723:
+#line 3212 "parse.y"
{ finish_while_stmt (yyvsp[-3].ttype); ;
break;}
-case 723:
-#line 3188 "parse.y"
+case 724:
+#line 3214 "parse.y"
{ yyval.ttype = begin_do_stmt (); ;
break;}
-case 724:
-#line 3190 "parse.y"
+case 725:
+#line 3216 "parse.y"
{
finish_do_body (yyvsp[-2].ttype);
cond_stmt_keyword = "do";
;
break;}
-case 725:
-#line 3195 "parse.y"
+case 726:
+#line 3221 "parse.y"
{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
break;}
-case 726:
-#line 3197 "parse.y"
+case 727:
+#line 3223 "parse.y"
{ yyval.ttype = begin_for_stmt (); ;
break;}
-case 727:
-#line 3199 "parse.y"
+case 728:
+#line 3225 "parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
break;}
-case 728:
-#line 3201 "parse.y"
+case 729:
+#line 3227 "parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
break;}
-case 729:
-#line 3203 "parse.y"
+case 730:
+#line 3229 "parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
break;}
-case 730:
-#line 3205 "parse.y"
+case 731:
+#line 3231 "parse.y"
{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
break;}
-case 731:
-#line 3207 "parse.y"
+case 732:
+#line 3233 "parse.y"
{ begin_switch_stmt (); ;
break;}
-case 732:
-#line 3209 "parse.y"
+case 733:
+#line 3235 "parse.y"
{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
break;}
-case 733:
-#line 3211 "parse.y"
+case 734:
+#line 3237 "parse.y"
{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 734:
-#line 3213 "parse.y"
+case 735:
+#line 3239 "parse.y"
{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
break;}
-case 736:
-#line 3216 "parse.y"
+case 737:
+#line 3242 "parse.y"
{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 738:
-#line 3219 "parse.y"
+case 739:
+#line 3245 "parse.y"
{ finish_case_label (NULL_TREE, NULL_TREE); ;
break;}
-case 740:
-#line 3222 "parse.y"
+case 741:
+#line 3248 "parse.y"
{ finish_break_stmt (); ;
break;}
-case 741:
-#line 3224 "parse.y"
+case 742:
+#line 3250 "parse.y"
{ finish_continue_stmt (); ;
break;}
-case 742:
-#line 3226 "parse.y"
+case 743:
+#line 3252 "parse.y"
{ finish_return_stmt (NULL_TREE); ;
break;}
-case 743:
-#line 3228 "parse.y"
+case 744:
+#line 3254 "parse.y"
{ finish_return_stmt (yyvsp[-1].ttype); ;
break;}
-case 744:
-#line 3230 "parse.y"
+case 745:
+#line 3256 "parse.y"
{
finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
NULL_TREE);
;
break;}
-case 745:
-#line 3236 "parse.y"
+case 746:
+#line 3262 "parse.y"
{
finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
NULL_TREE);
;
break;}
-case 746:
-#line 3242 "parse.y"
+case 747:
+#line 3268 "parse.y"
{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
break;}
-case 747:
-#line 3246 "parse.y"
+case 748:
+#line 3272 "parse.y"
{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
break;}
-case 748:
-#line 3248 "parse.y"
+case 749:
+#line 3274 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids computed gotos");
finish_goto_stmt (yyvsp[-1].ttype);
;
break;}
-case 749:
-#line 3254 "parse.y"
+case 750:
+#line 3280 "parse.y"
{ finish_goto_stmt (yyvsp[-1].ttype); ;
break;}
-case 750:
-#line 3256 "parse.y"
+case 751:
+#line 3282 "parse.y"
{ finish_stmt (); ;
break;}
-case 751:
-#line 3258 "parse.y"
+case 752:
+#line 3284 "parse.y"
{ error ("label must be followed by statement");
yyungetc ('}', 0);
finish_stmt (); ;
break;}
-case 752:
-#line 3262 "parse.y"
+case 753:
+#line 3288 "parse.y"
{ finish_stmt (); ;
break;}
-case 755:
-#line 3266 "parse.y"
+case 756:
+#line 3292 "parse.y"
{ do_local_using_decl (yyvsp[0].ttype); ;
break;}
-case 757:
-#line 3272 "parse.y"
+case 758:
+#line 3298 "parse.y"
{
if (! current_function_parms_stored)
store_parm_decls ();
expand_start_early_try_stmts ();
;
break;}
-case 758:
-#line 3278 "parse.y"
+case 759:
+#line 3304 "parse.y"
{
expand_start_all_catch ();
;
break;}
-case 759:
-#line 3282 "parse.y"
+case 760:
+#line 3308 "parse.y"
{
int nested = (hack_decl_function_context
(current_function_decl) != NULL_TREE);
@@ -7334,42 +7372,42 @@ case 759:
finish_function (lineno, (int)yyvsp[-3].itype, nested);
;
break;}
-case 760:
-#line 3292 "parse.y"
+case 761:
+#line 3318 "parse.y"
{ yyval.ttype = begin_try_block (); ;
break;}
-case 761:
-#line 3294 "parse.y"
+case 762:
+#line 3320 "parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
break;}
-case 762:
-#line 3296 "parse.y"
+case 763:
+#line 3322 "parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
break;}
-case 765:
-#line 3306 "parse.y"
+case 766:
+#line 3332 "parse.y"
{ yyval.ttype = begin_handler(); ;
break;}
-case 766:
-#line 3308 "parse.y"
+case 767:
+#line 3334 "parse.y"
{ finish_handler_parms (yyvsp[-1].ttype); ;
break;}
-case 767:
-#line 3310 "parse.y"
+case 768:
+#line 3336 "parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
break;}
-case 770:
-#line 3320 "parse.y"
+case 771:
+#line 3346 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
break;}
-case 771:
-#line 3336 "parse.y"
+case 772:
+#line 3362 "parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
TREE_VALUE (yyvsp[-1].ftype.t)); ;
break;}
-case 772:
-#line 3343 "parse.y"
+case 773:
+#line 3369 "parse.y"
{ tree label;
do_label:
label = define_label (input_filename, lineno, yyvsp[-1].ttype);
@@ -7377,99 +7415,99 @@ case 772:
expand_label (label);
;
break;}
-case 773:
-#line 3350 "parse.y"
-{ goto do_label; ;
- break;}
case 774:
-#line 3352 "parse.y"
+#line 3376 "parse.y"
{ goto do_label; ;
break;}
case 775:
-#line 3354 "parse.y"
+#line 3378 "parse.y"
{ goto do_label; ;
break;}
case 776:
-#line 3359 "parse.y"
+#line 3380 "parse.y"
+{ goto do_label; ;
+ break;}
+case 777:
+#line 3385 "parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
break;}
-case 778:
-#line 3362 "parse.y"
+case 779:
+#line 3388 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids compound statements inside for initializations");
;
break;}
-case 779:
-#line 3371 "parse.y"
+case 780:
+#line 3397 "parse.y"
{ emit_line_note (input_filename, lineno);
yyval.ttype = NULL_TREE; ;
break;}
-case 780:
-#line 3374 "parse.y"
+case 781:
+#line 3400 "parse.y"
{ emit_line_note (input_filename, lineno); ;
break;}
-case 781:
-#line 3379 "parse.y"
+case 782:
+#line 3405 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 783:
-#line 3382 "parse.y"
+case 784:
+#line 3408 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 784:
-#line 3389 "parse.y"
+case 785:
+#line 3415 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 787:
-#line 3396 "parse.y"
+case 788:
+#line 3422 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
break;}
-case 788:
-#line 3401 "parse.y"
+case 789:
+#line 3427 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 789:
-#line 3406 "parse.y"
+case 790:
+#line 3432 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
break;}
-case 790:
-#line 3408 "parse.y"
+case 791:
+#line 3434 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;}
-case 791:
-#line 3419 "parse.y"
+case 792:
+#line 3445 "parse.y"
{
yyval.ttype = empty_parms();
;
break;}
-case 793:
-#line 3424 "parse.y"
+case 794:
+#line 3450 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
break;}
-case 794:
-#line 3432 "parse.y"
-{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
- break;}
case 795:
-#line 3434 "parse.y"
-{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
+#line 3458 "parse.y"
+{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
break;}
case 796:
-#line 3437 "parse.y"
+#line 3460 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
break;}
case 797:
-#line 3439 "parse.y"
+#line 3463 "parse.y"
+{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
+ break;}
+case 798:
+#line 3465 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
yyvsp[-1].ftype.t), 1); ;
break;}
-case 798:
-#line 3442 "parse.y"
+case 799:
+#line 3468 "parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
break;}
-case 799:
-#line 3444 "parse.y"
+case 800:
+#line 3470 "parse.y"
{
/* This helps us recover from really nasty
parse errors, for example, a missing right
@@ -7480,8 +7518,8 @@ case 799:
yychar = ')';
;
break;}
-case 800:
-#line 3454 "parse.y"
+case 801:
+#line 3480 "parse.y"
{
/* This helps us recover from really nasty
parse errors, for example, a missing right
@@ -7493,99 +7531,99 @@ case 800:
yychar = ')';
;
break;}
-case 801:
-#line 3469 "parse.y"
+case 802:
+#line 3495 "parse.y"
{ maybe_snarf_defarg (); ;
break;}
-case 802:
-#line 3471 "parse.y"
+case 803:
+#line 3497 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 805:
-#line 3482 "parse.y"
+case 806:
+#line 3508 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
break;}
-case 806:
-#line 3485 "parse.y"
+case 807:
+#line 3511 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
break;}
-case 807:
-#line 3488 "parse.y"
+case 808:
+#line 3514 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
break;}
-case 808:
-#line 3491 "parse.y"
+case 809:
+#line 3517 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
-case 809:
-#line 3493 "parse.y"
+case 810:
+#line 3519 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
break;}
-case 811:
-#line 3499 "parse.y"
+case 812:
+#line 3525 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
break;}
-case 812:
-#line 3509 "parse.y"
+case 813:
+#line 3535 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
break;}
-case 813:
-#line 3513 "parse.y"
+case 814:
+#line 3539 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 814:
-#line 3516 "parse.y"
+case 815:
+#line 3542 "parse.y"
{ yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 815:
-#line 3519 "parse.y"
+case 816:
+#line 3545 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 816:
-#line 3523 "parse.y"
+case 817:
+#line 3549 "parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t);
yyval.ftype.t = build_tree_list (specs, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
-case 817:
-#line 3527 "parse.y"
+case 818:
+#line 3553 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
yyval.ftype.new_type_flag = 0; ;
break;}
-case 818:
-#line 3534 "parse.y"
+case 819:
+#line 3560 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
-case 819:
-#line 3537 "parse.y"
+case 820:
+#line 3563 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 822:
-#line 3548 "parse.y"
+case 823:
+#line 3574 "parse.y"
{ see_typename (); ;
break;}
-case 823:
-#line 3553 "parse.y"
+case 824:
+#line 3579 "parse.y"
{
error ("type specifier omitted for parameter");
yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
;
break;}
-case 824:
-#line 3558 "parse.y"
+case 825:
+#line 3584 "parse.y"
{
error ("type specifier omitted for parameter");
if (TREE_CODE (yyval.ttype) == SCOPE_REF
@@ -7595,189 +7633,189 @@ case 824:
yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
;
break;}
-case 825:
-#line 3570 "parse.y"
+case 826:
+#line 3596 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 826:
-#line 3572 "parse.y"
+case 827:
+#line 3598 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 827:
-#line 3574 "parse.y"
+case 828:
+#line 3600 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
break;}
-case 828:
-#line 3579 "parse.y"
+case 829:
+#line 3605 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
break;}
-case 830:
-#line 3585 "parse.y"
+case 831:
+#line 3611 "parse.y"
{
TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
yyval.ttype = yyvsp[0].ttype;
;
break;}
-case 831:
-#line 3593 "parse.y"
+case 832:
+#line 3619 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 832:
-#line 3595 "parse.y"
+case 833:
+#line 3621 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 833:
-#line 3597 "parse.y"
+case 834:
+#line 3623 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 834:
-#line 3599 "parse.y"
+case 835:
+#line 3625 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 835:
-#line 3606 "parse.y"
-{ got_scope = NULL_TREE; ;
- break;}
case 836:
-#line 3611 "parse.y"
-{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
+#line 3632 "parse.y"
+{ got_scope = NULL_TREE; ;
break;}
case 837:
-#line 3613 "parse.y"
-{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
+#line 3637 "parse.y"
+{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
break;}
case 838:
-#line 3615 "parse.y"
-{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
+#line 3639 "parse.y"
+{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
break;}
case 839:
-#line 3617 "parse.y"
-{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
+#line 3641 "parse.y"
+{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
break;}
case 840:
-#line 3619 "parse.y"
-{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
+#line 3643 "parse.y"
+{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
break;}
case 841:
-#line 3621 "parse.y"
-{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
+#line 3645 "parse.y"
+{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
break;}
case 842:
-#line 3623 "parse.y"
-{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
+#line 3647 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
break;}
case 843:
-#line 3625 "parse.y"
-{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
+#line 3649 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
break;}
case 844:
-#line 3627 "parse.y"
-{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
+#line 3651 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
break;}
case 845:
-#line 3629 "parse.y"
-{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
+#line 3653 "parse.y"
+{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
break;}
case 846:
-#line 3631 "parse.y"
-{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+#line 3655 "parse.y"
+{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
break;}
case 847:
-#line 3633 "parse.y"
-{ yyval.ttype = ansi_opname[LT_EXPR]; ;
+#line 3657 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
case 848:
-#line 3635 "parse.y"
-{ yyval.ttype = ansi_opname[GT_EXPR]; ;
+#line 3659 "parse.y"
+{ yyval.ttype = ansi_opname[LT_EXPR]; ;
break;}
case 849:
-#line 3637 "parse.y"
-{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+#line 3661 "parse.y"
+{ yyval.ttype = ansi_opname[GT_EXPR]; ;
break;}
case 850:
-#line 3639 "parse.y"
-{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
+#line 3663 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
case 851:
-#line 3641 "parse.y"
-{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
+#line 3665 "parse.y"
+{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
break;}
case 852:
-#line 3643 "parse.y"
-{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+#line 3667 "parse.y"
+{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
break;}
case 853:
-#line 3645 "parse.y"
+#line 3669 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
case 854:
-#line 3647 "parse.y"
-{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
+#line 3671 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
case 855:
-#line 3649 "parse.y"
-{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
+#line 3673 "parse.y"
+{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
break;}
case 856:
-#line 3651 "parse.y"
-{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
+#line 3675 "parse.y"
+{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
break;}
case 857:
-#line 3653 "parse.y"
-{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
+#line 3677 "parse.y"
+{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
break;}
case 858:
-#line 3655 "parse.y"
-{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
+#line 3679 "parse.y"
+{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
break;}
case 859:
-#line 3657 "parse.y"
-{ yyval.ttype = ansi_opname[COND_EXPR]; ;
+#line 3681 "parse.y"
+{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
break;}
case 860:
-#line 3659 "parse.y"
-{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
+#line 3683 "parse.y"
+{ yyval.ttype = ansi_opname[COND_EXPR]; ;
break;}
case 861:
-#line 3661 "parse.y"
-{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
+#line 3685 "parse.y"
+{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
case 862:
-#line 3663 "parse.y"
-{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
+#line 3687 "parse.y"
+{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
break;}
case 863:
-#line 3665 "parse.y"
-{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
+#line 3689 "parse.y"
+{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
break;}
case 864:
-#line 3667 "parse.y"
-{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
+#line 3691 "parse.y"
+{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
break;}
case 865:
-#line 3669 "parse.y"
-{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
+#line 3693 "parse.y"
+{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
break;}
case 866:
-#line 3671 "parse.y"
-{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
+#line 3695 "parse.y"
+{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
break;}
case 867:
-#line 3673 "parse.y"
-{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
+#line 3697 "parse.y"
+{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
break;}
case 868:
-#line 3675 "parse.y"
-{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
+#line 3699 "parse.y"
+{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
break;}
case 869:
-#line 3678 "parse.y"
-{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+#line 3701 "parse.y"
+{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
break;}
case 870:
-#line 3680 "parse.y"
+#line 3704 "parse.y"
+{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
+ break;}
+case 871:
+#line 3706 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
break;}
}
@@ -7978,7 +8016,7 @@ yyerrhandle:
yystate = yyn;
goto yynewstate;
}
-#line 3683 "parse.y"
+#line 3709 "parse.y"
#ifdef SPEW_DEBUG
diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y
index 64a75e823a9..42af7829516 100644
--- a/gcc/cp/parse.y
+++ b/gcc/cp/parse.y
@@ -204,10 +204,9 @@ empty_parms ()
%type <ttype> declarator notype_declarator after_type_declarator
%type <ttype> direct_notype_declarator direct_after_type_declarator
-
-%type <ttype> opt.component_decl_list component_decl_list
-%type <ttype> component_decl component_decl_1 components notype_components
-%type <ttype> component_declarator component_declarator0 self_reference
+%type <itype> components notype_components
+%type <ttype> component_decl component_decl_1
+%type <ttype> component_declarator component_declarator0
%type <ttype> notype_component_declarator notype_component_declarator0
%type <ttype> after_type_component_declarator after_type_component_declarator0
%type <ttype> enumlist enumerator
@@ -1844,16 +1843,19 @@ typespecqual_reserved:
initdecls:
initdcl0
| initdecls ',' initdcl
+ { check_multiple_declarators (); }
;
notype_initdecls:
notype_initdcl0
| notype_initdecls ',' initdcl
+ { check_multiple_declarators (); }
;
nomods_initdecls:
nomods_initdcl0
| nomods_initdecls ',' initdcl
+ { check_multiple_declarators (); }
;
maybeasm:
@@ -2112,7 +2114,7 @@ structsp:
yychar = YYLEX;
semi = yychar == ';';
- $<ttype>$ = finish_class_definition ($1, $3, $5, semi);
+ $<ttype>$ = finish_class_definition ($1, $5, semi);
}
pending_defargs
{ finish_default_args (); }
@@ -2168,7 +2170,10 @@ aggr:
named_class_head_sans_basetype:
aggr identifier
- { current_aggr = $$; $$ = $2; }
+ {
+ current_aggr = $1;
+ $$ = $2;
+ }
;
named_class_head_sans_basetype_defn:
@@ -2202,15 +2207,11 @@ named_complex_class_head_sans_basetype:
{ current_aggr = $$; $$ = $3; }
;
-do_xref_defn:
- /* empty */ %prec EMPTY
- { $<ttype>$ = xref_tag (current_aggr, $<ttype>0, 0); }
- ;
-
named_class_head:
named_class_head_sans_basetype %prec EMPTY
{ $$ = xref_tag (current_aggr, $1, 1); }
- | named_class_head_sans_basetype_defn do_xref_defn
+ | named_class_head_sans_basetype_defn
+ { $<ttype>$ = xref_tag (current_aggr, $1, 0); }
maybe_base_class_list %prec EMPTY
{
$$ = $<ttype>2;
@@ -2358,64 +2359,45 @@ left_curly:
self_reference:
/* empty */
{
- $$ = build_self_reference ();
+ finish_member_declaration (build_self_reference ());
}
;
opt.component_decl_list:
self_reference
- { if ($$) $$ = build_tree_list (access_public_node, $$); }
| self_reference component_decl_list
- {
- if (current_aggr == signature_type_node)
- $$ = build_tree_list (access_public_node, $2);
- else
- $$ = build_tree_list (access_default_node, $2);
- if ($1) $$ = tree_cons (access_public_node, $1, $$);
- }
- | opt.component_decl_list VISSPEC ':' component_decl_list
- {
- tree visspec = $2;
+ | opt.component_decl_list access_specifier component_decl_list
+ | opt.component_decl_list access_specifier
+ ;
+access_specifier:
+ VISSPEC ':'
+ {
if (current_aggr == signature_type_node)
{
error ("access specifier not allowed in signature");
- visspec = access_public_node;
+ $1 = access_public_node;
}
- $$ = chainon ($$, build_tree_list (visspec, $4));
- }
- | opt.component_decl_list VISSPEC ':'
- {
- if (current_aggr == signature_type_node)
- error ("access specifier not allowed in signature");
- }
+
+ current_access_specifier = $1;
+ }
;
/* Note: we no longer warn about the semicolon after a component_decl_list.
ARM $9.2 says that the semicolon is optional, and therefore allowed. */
component_decl_list:
component_decl
- { if ($$ == void_type_node) $$ = NULL_TREE;
+ {
+ finish_member_declaration ($1);
}
| component_decl_list component_decl
- { /* In pushdecl, we created a reverse list of names
- in this binding level. Make sure that the chain
- of what we're trying to add isn't the item itself
- (which can happen with what pushdecl's doing). */
- if ($2 != NULL_TREE && $2 != void_type_node
- && $2 != error_mark_node)
- {
- if (TREE_CHAIN ($2) != $$)
- $$ = chainon ($$, $2);
- else
- $$ = $2;
- }
+ {
+ finish_member_declaration ($2);
}
;
component_decl:
component_decl_1 ';'
- { }
| component_decl_1 '}'
{ error ("missing ';' before right brace");
yyungetc ('}', 0); }
@@ -2435,9 +2417,20 @@ component_decl:
{ $$ = $2;
pedantic = $<itype>1; }
| template_header component_decl
- { $$ = finish_member_template_decl ($1, $2); }
+ {
+ if ($2)
+ $$ = finish_member_template_decl ($2);
+ else
+ /* The component was already processed. */
+ $$ = NULL_TREE;
+
+ finish_template_decl ($1);
+ }
| template_header typed_declspecs ';'
- { $$ = finish_member_class_template ($1, $2.t); }
+ {
+ $$ = finish_member_class_template ($2.t);
+ finish_template_decl ($1);
+ }
;
component_decl_1:
@@ -2445,9 +2438,32 @@ component_decl_1:
speed; we need to call grok_x_components for enums, so the
speedup would be insignificant. */
typed_declspecs components
- { $$ = grok_x_components ($1.t, $2); }
+ {
+ /* Most of the productions for component_decl only
+ allow the creation of one new member, so we call
+ finish_member_declaration in component_decl_list.
+ For this rule and the next, however, there can be
+ more than one member, e.g.:
+
+ int i, j;
+
+ and we need the first member to be fully
+ registered before the second is processed.
+ Therefore, the rules for components take care of
+ this processing. To avoid registering the
+ components more than once, we send NULL_TREE up
+ here; that lets finish_member_declaration now
+ that there is nothing to do. */
+ if (!$2)
+ grok_x_components ($1.t);
+ $$ = NULL_TREE;
+ }
| declmods notype_components
- { $$ = grok_x_components ($1, $2); }
+ {
+ if (!$2)
+ grok_x_components ($1);
+ $$ = NULL_TREE;
+ }
| notype_declarator maybeasm maybe_attribute maybe_init
{ $$ = grokfield ($$, NULL_TREE, $4, $2,
build_tree_list ($3, NULL_TREE)); }
@@ -2482,31 +2498,41 @@ component_decl_1:
/* ??? Huh? ^^^ */
components:
/* empty: possibly anonymous */
- { $$ = NULL_TREE; }
+ { $$ = 0; }
| component_declarator0
+ {
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ $1 = finish_member_template_decl ($1);
+ finish_member_declaration ($1);
+ $$ = 1;
+ }
| components ',' component_declarator
- {
- /* In this context, void_type_node encodes
- friends. They have been recorded elsewhere. */
- if ($$ == void_type_node)
- $$ = $3;
- else
- $$ = chainon ($$, $3);
+ {
+ check_multiple_declarators ();
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ $3 = finish_member_template_decl ($3);
+ finish_member_declaration ($3);
+ $$ = 2;
}
;
notype_components:
/* empty: possibly anonymous */
- { $$ = NULL_TREE; }
+ { $$ = 0; }
| notype_component_declarator0
+ {
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ $1 = finish_member_template_decl ($1);
+ finish_member_declaration ($1);
+ $$ = 1;
+ }
| notype_components ',' notype_component_declarator
- {
- /* In this context, void_type_node encodes
- friends. They have been recorded elsewhere. */
- if ($$ == void_type_node)
- $$ = $3;
- else
- $$ = chainon ($$, $3);
+ {
+ check_multiple_declarators ();
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ())
+ $3 = finish_member_template_decl ($3);
+ finish_member_declaration ($3);
+ $$ = 2;
}
;
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 10161f822ab..c493bea4f5f 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -129,6 +129,7 @@ static tree tsubst_decl PROTO((tree, tree, tree, tree));
static tree tsubst_arg_types PROTO((tree, tree, tree));
static void check_specialization_scope PROTO((void));
static tree process_partial_specialization PROTO((tree));
+static void set_current_access_from_decl PROTO((tree));
/* We use TREE_VECs to hold template arguments. If there is only one
level of template arguments, then the TREE_VEC contains the
@@ -196,12 +197,9 @@ static tree process_partial_specialization PROTO((tree));
it is a specialization, in which case the DECL itself is returned. */
tree
-finish_member_template_decl (template_parameters, decl)
- tree template_parameters;
+finish_member_template_decl (decl)
tree decl;
{
- finish_template_decl (template_parameters);
-
if (decl == NULL_TREE || decl == void_type_node)
return NULL_TREE;
else if (decl == error_mark_node)
@@ -3066,9 +3064,11 @@ comp_template_args (oldargs, newargs)
if (nt == ot)
continue;
- if (TREE_CODE (nt) != TREE_CODE (ot))
+ else if (!nt || !ot)
+ return 0;
+ else if (TREE_CODE (nt) != TREE_CODE (ot))
return 0;
- if (TREE_CODE (nt) == TREE_VEC)
+ else if (TREE_CODE (nt) == TREE_VEC)
{
/* For member templates */
if (comp_template_args (ot, nt))
@@ -3382,14 +3382,12 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope)
}
else
{
- extern tree current_local_enum;
tree template_type = TREE_TYPE (template);
tree type_decl;
tree found = NULL_TREE;
int arg_depth;
int parm_depth;
int is_partial_instantiation;
- tree prev_local_enum = NULL_TREE;
template = most_general_template (template);
parmlist = DECL_TEMPLATE_PARMS (template);
@@ -3549,10 +3547,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope)
if (TREE_CODE (template_type) == ENUMERAL_TYPE)
{
if (!is_partial_instantiation)
- {
- prev_local_enum = current_local_enum;
- t = start_enum (TYPE_IDENTIFIER (template_type));
- }
+ t = start_enum (TYPE_IDENTIFIER (template_type));
else
/* We don't want to call start_enum for this type, since
the values for the enumeration constants may involve
@@ -3570,7 +3565,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope)
TYPE_FOR_JAVA (t) = TYPE_FOR_JAVA (template_type);
}
- /* If we called tsubst_enum above, this information will already
+ /* If we called start_enum above, this information will already
be set up. */
if (!TYPE_NAME (t))
{
@@ -3599,17 +3594,14 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope)
if (TREE_CODE (t) == ENUMERAL_TYPE
&& !is_partial_instantiation)
- {
- /* Now that the type has been registered on the
- instantiations list, we set up the enumerators. Because
- the enumeration constants may involve the enumeration
- type itself, we make sure to register the type first, and
- then create the constants. That way, doing tsubst_expr
- for the enumeration constants won't result in recursive
- calls here; we'll find the instantiation and exit above. */
- tsubst_enum (template_type, t, arglist);
- current_local_enum = prev_local_enum;
- }
+ /* Now that the type has been registered on the instantiations
+ list, we set up the enumerators. Because the enumeration
+ constants may involve the enumeration type itself, we make
+ sure to register the type first, and then create the
+ constants. That way, doing tsubst_expr for the enumeration
+ constants won't result in recursive calls here; we'll find
+ the instantiation and exit above. */
+ tsubst_enum (template_type, t, arglist);
/* We're done with the permanent obstack, now. */
pop_obstacks ();
@@ -3814,6 +3806,9 @@ for_each_template_parm (t, fn, data)
case TYPENAME_TYPE:
return 1;
+ case PTRMEM_CST:
+ return for_each_template_parm (TREE_TYPE (t), fn, data);
+
case SCOPE_REF:
return for_each_template_parm (TREE_OPERAND (t, 0), fn, data);
@@ -4256,7 +4251,7 @@ tree
instantiate_class_template (type)
tree type;
{
- tree template, args, pattern, t, *field_chain;
+ tree template, args, pattern, t;
tree typedecl;
if (type == error_mark_node)
@@ -4323,11 +4318,16 @@ instantiate_class_template (type)
}
if (pedantic && uses_template_parms (args))
- /* If there are still template parameters amongst the args, then
- we can't instantiate the type; there's no telling whether or not one
- of the template parameters might eventually be instantiated to some
- value that results in a specialization being used. */
- return type;
+ {
+ /* If there are still template parameters amongst the args, then
+ we can't instantiate the type; there's no telling whether or not one
+ of the template parameters might eventually be instantiated to some
+ value that results in a specialization being used. We do the
+ type as complete so that, for example, declaring one of its
+ members to be a friend will not be rejected. */
+ TYPE_SIZE (type) = integer_zero_node;
+ return type;
+ }
TYPE_BEING_DEFINED (type) = 1;
@@ -4394,8 +4394,6 @@ instantiate_class_template (type)
TYPE_ALIGN (type) = TYPE_ALIGN (pattern);
TYPE_FOR_JAVA (type) = TYPE_FOR_JAVA (pattern); /* For libjava's JArray<T> */
- CLASSTYPE_LOCAL_TYPEDECLS (type) = CLASSTYPE_LOCAL_TYPEDECLS (pattern);
-
/* If this is a partial instantiation, don't tsubst anything. We will
only use this type for implicit typename, so the actual contents don't
matter. All that matters is whether a particular name is a type. */
@@ -4449,8 +4447,6 @@ instantiate_class_template (type)
}
TYPE_GETS_NEW (type) |= TYPE_GETS_NEW (basetype);
TYPE_GETS_DELETE (type) |= TYPE_GETS_DELETE (basetype);
- CLASSTYPE_LOCAL_TYPEDECLS (type)
- |= CLASSTYPE_LOCAL_TYPEDECLS (basetype);
}
/* Don't initialize this until the vector is filled out, or
lookups will crash. */
@@ -4458,8 +4454,6 @@ instantiate_class_template (type)
}
}
- field_chain = &TYPE_FIELDS (type);
-
for (t = CLASSTYPE_TAGS (pattern); t; t = TREE_CHAIN (t))
{
tree tag = TREE_VALUE (t);
@@ -4467,35 +4461,7 @@ instantiate_class_template (type)
tree newtag;
newtag = tsubst (tag, args, NULL_TREE);
- if (TREE_CODE (newtag) == ENUMERAL_TYPE)
- {
- extern tree current_local_enum;
- tree prev_local_enum = current_local_enum;
-
- if (TYPE_VALUES (newtag))
- {
- tree v;
-
- /* We must set things up so that CURRENT_LOCAL_ENUM is the
- CONST_DECL for the last enumeration constant, since the
- CONST_DECLs are chained backwards. */
- for (v = TYPE_VALUES (newtag); TREE_CHAIN (v);
- v = TREE_CHAIN (v))
- ;
-
- current_local_enum
- = IDENTIFIER_CLASS_VALUE (TREE_PURPOSE (v));
- *field_chain = grok_enum_decls (NULL_TREE);
- current_local_enum = prev_local_enum;
-
- while (*field_chain)
- {
- DECL_FIELD_CONTEXT (*field_chain) = type;
- field_chain = &TREE_CHAIN (*field_chain);
- }
- }
- }
- else
+ if (TREE_CODE (newtag) != ENUMERAL_TYPE)
{
/* Now, we call pushtag to put this NEWTAG into the scope of
TYPE. We first set up the IDENTIFIER_TYPE_VALUE to avoid
@@ -4530,12 +4496,27 @@ instantiate_class_template (type)
DECL_EXTERNAL (r) = 1;
cp_finish_decl (r, DECL_INITIAL (r), NULL_TREE, 0, 0);
}
-
- *field_chain = r;
- field_chain = &TREE_CHAIN (r);
+
+ /* R will have a TREE_CHAIN if and only if it has already been
+ processed by finish_member_declaration. This can happen
+ if, for example, it is a TYPE_DECL for a class-scoped
+ ENUMERAL_TYPE; such a thing will already have been added to
+ the field list by tsubst_enum above. */
+ if (!TREE_CHAIN (r))
+ {
+ set_current_access_from_decl (r);
+ finish_member_declaration (r);
+ }
}
- TYPE_METHODS (type) = tsubst_chain (TYPE_METHODS (pattern), args);
+ /* Set up the list (TYPE_METHODS) and vector (CLASSTYPE_METHOD_VEC)
+ for this instantiation. */
+ for (t = TYPE_METHODS (pattern); t; t = TREE_CHAIN (t))
+ {
+ tree r = tsubst (t, args, NULL_TREE);
+ set_current_access_from_decl (r);
+ finish_member_declaration (r);
+ }
/* Construct the DECL_FRIENDLIST for the new class type. */
typedecl = TYPE_MAIN_DECL (type);
@@ -4627,6 +4608,14 @@ instantiate_class_template (type)
require_complete_type (t);
}
+ /* Set the file and line number information to whatever is given for
+ the class itself. This puts error messages involving generated
+ implicit functions at a predictable point, and the same point
+ that would be used for non-template classes. */
+ lineno = DECL_SOURCE_LINE (typedecl);
+ input_filename = DECL_SOURCE_FILE (typedecl);
+
+ unreverse_member_declarations (type);
type = finish_struct_1 (type, 0);
CLASSTYPE_GOT_SEMICOLON (type) = 1;
@@ -6787,6 +6776,7 @@ type_unification_real (tparms, targs, parms, args, subr,
{
tree targs;
tree arg_type;
+ int r;
/* Have to back unify here */
arg = OVL_FUNCTION (arg);
@@ -6795,10 +6785,14 @@ type_unification_real (tparms, targs, parms, args, subr,
maybe_adjust_types_for_deduction (strict, &parm, &arg_type);
parm = expr_tree_cons (NULL_TREE, parm, NULL_TREE);
arg_type = scratch_tree_cons (NULL_TREE, arg_type, NULL_TREE);
- return
- type_unification (DECL_INNERMOST_TEMPLATE_PARMS (arg),
- targs, arg_type, parm, NULL_TREE,
- DEDUCE_EXACT, allow_incomplete);
+ r = type_unification (DECL_INNERMOST_TEMPLATE_PARMS (arg),
+ targs, arg_type, parm, NULL_TREE,
+ DEDUCE_EXACT, allow_incomplete);
+ if (r)
+ /* If the back-unification failed, just bail out. */
+ return r;
+ else
+ continue;
}
arg = TREE_TYPE (arg);
}
@@ -7952,16 +7946,22 @@ regenerate_decl_from_template (decl, tmpl)
register_specialization for it. */
my_friendly_assert (unregistered, 0);
+ if (TREE_CODE (decl) == VAR_DECL)
+ /* Make sure that we can see identifiers, and compute access
+ correctly, for the class members used in the declaration of
+ this static variable. */
+ pushclass (DECL_CONTEXT (decl), 2);
+
/* Do the substitution to get the new declaration. */
new_decl = tsubst (code_pattern, args, NULL_TREE);
if (TREE_CODE (decl) == VAR_DECL)
{
/* Set up DECL_INITIAL, since tsubst doesn't. */
- pushclass (DECL_CONTEXT (decl), 2);
DECL_INITIAL (new_decl) =
tsubst_expr (DECL_INITIAL (code_pattern), args,
DECL_TI_TEMPLATE (decl));
+ /* Pop the class context we pushed above. */
popclass (1);
}
@@ -8228,27 +8228,6 @@ out:
return d;
}
-tree
-tsubst_chain (t, argvec)
- tree t, argvec;
-{
- if (t)
- {
- tree first = tsubst (t, argvec, NULL_TREE);
- tree last = first;
-
- for (t = TREE_CHAIN (t); t; t = TREE_CHAIN (t))
- {
- tree x = tsubst (t, argvec, NULL_TREE);
- TREE_CHAIN (last) = x;
- last = x;
- }
-
- return first;
- }
- return NULL_TREE;
-}
-
static tree
tsubst_expr_values (t, argvec)
tree t, argvec;
@@ -8321,6 +8300,20 @@ add_maybe_template (d, fns)
DECL_MAYBE_TEMPLATE (d) = 1;
}
+/* Set CURRENT_ACCESS_SPECIFIER based on the protection of DECL. */
+
+static void
+set_current_access_from_decl (decl)
+ tree decl;
+{
+ if (TREE_PRIVATE (decl))
+ current_access_specifier = access_private_node;
+ else if (TREE_PROTECTED (decl))
+ current_access_specifier = access_protected_node;
+ else
+ current_access_specifier = access_public_node;
+}
+
/* Instantiate an enumerated type. TAG is the template type, NEWTAG
is the instantiation (which should have been created with
start_enum) and ARGS are the template arguments to use. */
@@ -8335,15 +8328,20 @@ tsubst_enum (tag, newtag, args)
for (e = TYPE_VALUES (tag); e; e = TREE_CHAIN (e))
{
- tree elt
- = build_enumerator (TREE_PURPOSE (e),
- /* Note that in a template enum, the
- TREE_VALUE is the CONST_DECL, not the
- corresponding INTEGER_CST. */
- tsubst_expr (DECL_INITIAL (TREE_VALUE (e)),
+ tree value;
+ tree elt;
+
+ /* Note that in a template enum, the TREE_VALUE is the
+ CONST_DECL, not the corresponding INTEGER_CST. */
+ value = tsubst_expr (DECL_INITIAL (TREE_VALUE (e)),
args,
- NULL_TREE),
- newtag);
+ NULL_TREE);
+
+ /* Give this enumeration constant the correct access. */
+ set_current_access_from_decl (TREE_VALUE (e));
+
+ /* Actually build the enumerator itself. */
+ elt = build_enumerator (TREE_PURPOSE (e), value, newtag);
/* We save the enumerators we have built so far in the
TYPE_VALUES so that if the enumeration constants for
@@ -8420,7 +8418,7 @@ set_mangled_name_for_template_decl (decl)
with the innermost level omitted. */
fn_type = TREE_TYPE (tmpl);
if (DECL_STATIC_FUNCTION_P (decl))
- context = DECL_CLASS_CONTEXT (decl);
+ context = DECL_CLASS_CONTEXT (decl);
if (parm_depth == 1)
/* No substitution is necessary. */
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 75c3d198a1d..5f157029eca 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -1289,7 +1289,7 @@ lookup_fnfields_1 (type, name)
if (*++methods && name == dtor_identifier)
return 1;
- while (++methods != end)
+ while (++methods != end && *methods)
{
#ifdef GATHER_STATISTICS
n_outer_fields_searched++;
@@ -1301,20 +1301,28 @@ lookup_fnfields_1 (type, name)
/* If we didn't find it, it might have been a template
conversion operator. (Note that we don't look for this case
above so that we will always find specializations first.) */
- if (methods == end
+ if ((methods == end || !*methods)
&& IDENTIFIER_TYPENAME_P (name))
{
methods = &TREE_VEC_ELT (method_vec, 0) + 1;
- while (++methods != end)
+ while (++methods != end && *methods)
{
- if (TREE_CODE (OVL_CURRENT (*methods)) == TEMPLATE_DECL
- && IDENTIFIER_TYPENAME_P (DECL_NAME (OVL_CURRENT (*methods))))
+ tree method_name = DECL_NAME (OVL_CURRENT (*methods));
+
+ if (!IDENTIFIER_TYPENAME_P (method_name))
+ {
+ /* Since all conversion operators come first, we know
+ there is no such operator. */
+ methods = end;
+ break;
+ }
+ else if (TREE_CODE (OVL_CURRENT (*methods)) == TEMPLATE_DECL)
break;
}
}
- if (methods != end)
+ if (methods != end && *methods)
return methods - &TREE_VEC_ELT (method_vec, 0);
}
@@ -2962,7 +2970,7 @@ dfs_pushdecls (binfo)
tree binfo;
{
tree type = BINFO_TYPE (binfo);
- tree fields, *methods, *end;
+ tree fields;
tree method_vec;
int dummy = 0;
@@ -3015,16 +3023,24 @@ dfs_pushdecls (binfo)
method_vec = CLASSTYPE_METHOD_VEC (type);
if (method_vec && ! dummy)
{
+ tree *methods;
+ tree *end;
+
/* Farm out constructors and destructors. */
- methods = &TREE_VEC_ELT (method_vec, 2);
end = TREE_VEC_END (method_vec);
- while (methods != end)
+ for (methods = &TREE_VEC_ELT (method_vec, 2);
+ *methods && methods != end;
+ methods++)
{
/* This will cause lookup_name to return a pointer
to the tree_list of possible methods of this name. */
- tree name = DECL_NAME (OVL_CURRENT (*methods));
- tree class_value = IDENTIFIER_CLASS_VALUE (name);
+ tree name;
+ tree class_value;
+
+
+ name = DECL_NAME (OVL_CURRENT (*methods));
+ class_value = IDENTIFIER_CLASS_VALUE (name);
/* If the class value is not an envelope of the kind described in
the comment above, we create a new envelope. */
@@ -3049,8 +3065,6 @@ dfs_pushdecls (binfo)
envelope_add_decl (type, OVL_CURRENT (*methods),
&TREE_PURPOSE (class_value));
pop_obstacks ();
-
- methods++;
}
}
@@ -3074,10 +3088,11 @@ dfs_compress_decls (binfo)
else if (method_vec != 0)
{
/* Farm out constructors and destructors. */
- tree *methods = &TREE_VEC_ELT (method_vec, 2);
+ tree *methods;
tree *end = TREE_VEC_END (method_vec);
- for (; methods != end; methods++)
+ for (methods = &TREE_VEC_ELT (method_vec, 2);
+ methods != end && *methods; methods++)
{
/* This is known to be an envelope of the kind described before
dfs_pushdecls. */
@@ -3269,7 +3284,9 @@ add_conversions (binfo)
for (i = 2; i < TREE_VEC_LENGTH (method_vec); ++i)
{
tree tmp = TREE_VEC_ELT (method_vec, i);
- if (! IDENTIFIER_TYPENAME_P (DECL_NAME (OVL_CURRENT (tmp))))
+
+ if (!tmp
+ || !IDENTIFIER_TYPENAME_P (DECL_NAME (OVL_CURRENT (tmp))))
break;
conversions = scratch_tree_cons (binfo, tmp, conversions);
}
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 6f69d64594b..9579d44d96b 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1268,14 +1268,99 @@ begin_class_definition (t)
return t;
}
-/* Finish a class definition T, with the indicated COMPONENTS, and
- with the indicate ATTRIBUTES. If SEMI, the definition is
- immediately followed by a semicolon. Returns the type. */
+/* Finish the member declaration given by DECL. */
+
+void
+finish_member_declaration (decl)
+ tree decl;
+{
+ if (decl == error_mark_node || decl == NULL_TREE)
+ return;
+
+ if (decl == void_type_node)
+ /* The COMPONENT was a friend, not a member, and so there's
+ nothing for us to do. */
+ return;
+
+ /* We should see only one DECL at a time. */
+ my_friendly_assert (TREE_CHAIN (decl) == NULL_TREE, 0);
+
+ /* Set up access control for DECL. */
+ TREE_PRIVATE (decl)
+ = (current_access_specifier == access_private_node);
+ TREE_PROTECTED (decl)
+ = (current_access_specifier == access_protected_node);
+ if (TREE_CODE (decl) == TEMPLATE_DECL)
+ {
+ TREE_PRIVATE (DECL_RESULT (decl)) = TREE_PRIVATE (decl);
+ TREE_PROTECTED (DECL_RESULT (decl)) = TREE_PROTECTED (decl);
+ }
+
+ /* Mark the DECL as a member of the current class. */
+ if (TREE_CODE (decl) == FUNCTION_DECL
+ || DECL_FUNCTION_TEMPLATE_P (decl))
+ /* Historically, DECL_CONTEXT was not set for a FUNCTION_DECL in
+ finish_struct. Presumably it is already set as the function is
+ parsed. Perhaps DECL_CLASS_CONTEXT is already set, too? */
+ DECL_CLASS_CONTEXT (decl) = current_class_type;
+ else if (TREE_CODE (decl) == TYPE_DECL)
+ /* Historically, DECL_CONTEXT was not set for a TYPE_DECL in
+ finish_struct, so we do not do it here either. Perhaps we
+ should, though. */
+ ;
+ else
+ DECL_CONTEXT (decl) = current_class_type;
+
+ /* Put functions on the TYPE_METHODS list and everything else on the
+ TYPE_FIELDS list. Note that these are built up in reverse order.
+ We reverse them (to obtain declaration order) in finish_struct. */
+ if (TREE_CODE (decl) == FUNCTION_DECL
+ || DECL_FUNCTION_TEMPLATE_P (decl))
+ {
+ /* We also need to add this function to the
+ CLASSTYPE_METHOD_VEC. */
+ add_method (current_class_type, 0, decl);
+
+ TREE_CHAIN (decl) = TYPE_METHODS (current_class_type);
+ TYPE_METHODS (current_class_type) = decl;
+ }
+ else
+ {
+ /* All TYPE_DECLs go at the end of TYPE_FIELDS. Ordinary fields
+ go at the beginning. The reason is that lookup_field_1
+ searches the list in order, and we want a field name to
+ override a type name so that the "struct stat hack" will
+ work. In particular:
+
+ struct S { enum E { }; int E } s;
+ s.E = 3;
+
+ is legal. In addition, the FIELD_DECLs must be maintained in
+ declaration order so that class layout works as expected.
+ However, we don't need that order until class layout, so we
+ save a little time by putting FIELD_DECLs on in reverse order
+ here, and then reversing them in finish_struct_1. (We could
+ also keep a pointer to the correct insertion points in the
+ list.) */
+
+ if (TREE_CODE (decl) == TYPE_DECL)
+ TYPE_FIELDS (current_class_type)
+ = chainon (TYPE_FIELDS (current_class_type), decl);
+ else
+ {
+ TREE_CHAIN (decl) = TYPE_FIELDS (current_class_type);
+ TYPE_FIELDS (current_class_type) = decl;
+ }
+ }
+}
+
+/* Finish a class definition T with the indicate ATTRIBUTES. If SEMI,
+ the definition is immediately followed by a semicolon. Returns the
+ type. */
tree
-finish_class_definition (t, components, attributes, semi)
+finish_class_definition (t, attributes, semi)
tree t;
- tree components;
tree attributes;
int semi;
{
@@ -1299,7 +1384,7 @@ finish_class_definition (t, components, attributes, semi)
;
else
{
- t = finish_struct (t, components, attributes, semi);
+ t = finish_struct (t, attributes, semi);
if (semi)
note_got_semicolon (t);
}
@@ -1342,8 +1427,7 @@ begin_inline_definitions ()
TYPES whose template parameters are given by PARMS. */
tree
-finish_member_class_template (parms, types)
- tree parms;
+finish_member_class_template (types)
tree types;
{
tree t;
@@ -1356,13 +1440,15 @@ finish_member_class_template (parms, types)
maybe_process_partial_specialization (TREE_VALUE (t));
note_list_got_semicolon (types);
- grok_x_components (types, NULL_TREE);
+ grok_x_components (types);
if (TYPE_CONTEXT (TREE_VALUE (types)) != current_class_type)
/* The component was in fact a friend declaration. We avoid
finish_member_template_decl performing certain checks by
unsetting TYPES. */
types = NULL_TREE;
- finish_member_template_decl (parms, types);
+
+ finish_member_template_decl (types);
+
/* As with other component type declarations, we do
not store the new DECL on the list of
component_decls. */
@@ -1480,3 +1566,31 @@ finish_base_specifier (access_specifier, base_class,
return result;
}
+
+/* Called when multiple declarators are processed. If that is not
+ premitted in this context, an error is issued. */
+
+void
+check_multiple_declarators ()
+{
+ /* [temp]
+
+ In a template-declaration, explicit specialization, or explicit
+ instantiation the init-declarator-list in the declaration shall
+ contain at most one declarator.
+
+ We don't just use PROCESSING_TEMPLATE_DECL for the first
+ condition since that would disallow the perfectly legal code,
+ like `template <class T> struct S { int i, j; };'. */
+ tree scope = current_scope ();
+
+ if (scope && TREE_CODE (scope) == FUNCTION_DECL)
+ /* It's OK to write `template <class T> void f() { int i, j;}'. */
+ return;
+
+ if (PROCESSING_REAL_TEMPLATE_DECL_P ()
+ || processing_explicit_instantiation
+ || processing_specialization)
+ cp_error ("multiple declarators in template declaration");
+}
+
diff --git a/gcc/cp/sig.c b/gcc/cp/sig.c
index 3580d4fc49a..6f8d14dd19d 100644
--- a/gcc/cp/sig.c
+++ b/gcc/cp/sig.c
@@ -343,49 +343,45 @@ build_member_function_pointer (member)
The new FIELD_DECLs are appended at the end of the last (and only)
sublist of `list_of_fieldlists.'
+ T is the signature type.
+
As a side effect, each member function in the signature gets the
`decl.ignored' bit turned on, so we don't output debug info for it. */
void
-append_signature_fields (list_of_fieldlists)
- tree list_of_fieldlists;
+append_signature_fields (t)
+ tree t;
{
- tree l, x;
- tree last_x = NULL_TREE;
+ tree x;
tree mfptr;
tree last_mfptr = NULL_TREE;
tree mfptr_list = NULL_TREE;
- /* For signatures it should actually be only a list with one element. */
- for (l = list_of_fieldlists; l; l = TREE_CHAIN (l))
+ for (x = TYPE_METHODS (t); x; x = TREE_CHAIN (x))
{
- for (x = TREE_VALUE (l); x; x = TREE_CHAIN (x))
+ if (TREE_CODE (x) == FUNCTION_DECL)
{
- if (TREE_CODE (x) == FUNCTION_DECL)
+ mfptr = build_member_function_pointer (x);
+ DECL_MEMFUNC_POINTER_TO (x) = mfptr;
+ DECL_MEMFUNC_POINTING_TO (mfptr) = x;
+ DECL_IGNORED_P (x) = 1;
+ DECL_IN_AGGR_P (mfptr) = 1;
+ if (! mfptr_list)
+ mfptr_list = last_mfptr = mfptr;
+ else
{
- mfptr = build_member_function_pointer (x);
- DECL_MEMFUNC_POINTER_TO (x) = mfptr;
- DECL_MEMFUNC_POINTING_TO (mfptr) = x;
- DECL_IGNORED_P (x) = 1;
- DECL_IN_AGGR_P (mfptr) = 1;
- if (! mfptr_list)
- mfptr_list = last_mfptr = mfptr;
- else
- {
- TREE_CHAIN (last_mfptr) = mfptr;
- last_mfptr = mfptr;
- }
+ TREE_CHAIN (last_mfptr) = mfptr;
+ last_mfptr = mfptr;
}
- last_x = x;
}
}
- /* Append the lists. */
- if (last_x && mfptr_list)
- {
- TREE_CHAIN (last_x) = mfptr_list;
- TREE_CHAIN (last_mfptr) = NULL_TREE;
- }
+ /* The member function pointers must come after the TYPE_DECLs, in
+ this case, because build_signature_table_constructor depends on
+ finding opaque TYPE_DECLS before the functions that make use of
+ them. */
+ if (last_mfptr)
+ TYPE_FIELDS (t) = chainon (TYPE_FIELDS (t), mfptr_list);
}
/* Compare the types of a signature member function and a class member
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 224c950c280..1f55e56b1d8 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1581,6 +1581,10 @@ search_tree (t, func)
case DEFAULT_ARG:
break;
+ case PTRMEM_CST:
+ TRY (TREE_TYPE (t));
+ break;
+
case COND_EXPR:
case TARGET_EXPR:
case AGGR_INIT_EXPR:
@@ -1845,6 +1849,12 @@ mapcar (t, func)
case STRING_CST:
return copy_node (t);
+ case PTRMEM_CST:
+ t = copy_node (t);
+ TREE_TYPE (t) = mapcar (TREE_TYPE (t), func);
+ PTRMEM_CST_MEMBER (t) = mapcar (PTRMEM_CST_MEMBER (t), func);
+ return t;
+
case COND_EXPR:
case TARGET_EXPR:
case AGGR_INIT_EXPR:
@@ -1908,7 +1918,7 @@ mapcar (t, func)
TREE_OPERAND (t, 1) = mapcar (TREE_OPERAND (t, 1), func);
/* tree.def says that operand two is RTL, but
- build_call_declarator puts trees in there. */
+ make_call_declarator puts trees in there. */
if (TREE_OPERAND (t, 2)
&& TREE_CODE (TREE_OPERAND (t, 2)) == TREE_LIST)
TREE_OPERAND (t, 2) = mapcar (TREE_OPERAND (t, 2), func);
@@ -2449,6 +2459,13 @@ cp_tree_equal (t1, t2)
return comptypes (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0), 1);
break;
+ case PTRMEM_CST:
+ /* Two pointer-to-members are the same if they point to the same
+ field or function in the same class. */
+ return (PTRMEM_CST_MEMBER (t1) == PTRMEM_CST_MEMBER (t2)
+ && comptypes (PTRMEM_CST_CLASS (t1), PTRMEM_CST_CLASS (t2),
+ 1));
+
default:
break;
}
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 9e2c1232743..02a8c84c06d 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -4884,7 +4884,6 @@ unary_complex_lvalue (code, arg)
else
{
tree type;
- tree offset;
if (TREE_OPERAND (arg, 0)
&& (TREE_CODE (TREE_OPERAND (arg, 0)) != NOP_EXPR
@@ -4896,21 +4895,13 @@ unary_complex_lvalue (code, arg)
return error_mark_node;
}
- /* Add in the offset to the field. */
- offset = convert (sizetype,
- size_binop (EASY_DIV_EXPR,
- DECL_FIELD_BITPOS (t),
- size_int (BITS_PER_UNIT)));
-
- /* We offset all pointer to data members by 1 so that we can
- distinguish between a null pointer to data member and the first
- data member of a structure. */
- offset = size_binop (PLUS_EXPR, offset, size_int (1));
-
type = build_offset_type (DECL_FIELD_CONTEXT (t), TREE_TYPE (t));
type = build_pointer_type (type);
- return cp_convert (type, offset);
+ t = make_node (PTRMEM_CST);
+ TREE_TYPE (t) = type;
+ PTRMEM_CST_MEMBER (t) = TREE_OPERAND (arg, 1);
+ return t;
}
}