/*
 * Copyright (c) 2003, The Tendra Project <http://www.ten15.org/>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice unmodified, this list of conditions, and the following
 *    disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 *  		 Crown Copyright (c) 1997, 1998
 *
 *  This TenDRA(r) Computer Program is subject to Copyright
 *  owned by the United Kingdom Secretary of State for Defence
 *  acting through the Defence Evaluation and Research Agency
 *  (DERA).  It is made available to Recipients with a
 *  royalty-free licence for its use, reproduction, transfer
 *  to other parties and amendment for any purpose not excluding
 *  product development provided that any such use et cetera
 *  shall be deemed to be acceptance of the following conditions:-
 *
 *      (1) Its Recipients shall ensure that this Notice is
 *      reproduced upon any copies or amended versions of it;
 *
 *      (2) Any amended version of it shall be clearly marked to
 *      show both the nature of and the organisation responsible
 *      for the relevant amendment or amendments;
 *
 *      (3) Its onward transfer from a recipient to another
 *      party shall be deemed to be that party's acceptance of
 *      these conditions;
 *
 *      (4) DERA gives no warranty or assurance as to its
 *      quality or suitability for any purpose and DERA accepts
 *      no liability whatsoever in relation to any use to which
 *      it may be put.
 *
 * $TenDRA: tendra/src/producers/common/c_class.alg,v 1.18 2005/11/07 18:42:37 stefanf Exp $
 */

/*
 *    AUTOMATICALLY GENERATED FROM ALGEBRA c_class (VERSION 1.1)
 *    BY calculus (VERSION 1.3)
 */

#ifndef ID_OPS_H_INCLUDED
#define	ID_OPS_H_INCLUDED

/* Operations for union IDENTIFIER */

#define	TAG_id(P)				(CHECK_NULL (P)->ag_tag)


/* Operations for component name of union IDENTIFIER */

#define	id_name(P)				(CHECK_NULL (P) + 1)


/* Operations for component storage of union IDENTIFIER */

#define	id_storage(P)				(CHECK_NULL (P) + 2)


/* Operations for component parent of union IDENTIFIER */

#define	id_parent(P)				(CHECK_NULL (P) + 3)


/* Operations for component loc of union IDENTIFIER */

#define	id_loc(P)				(CHECK_NULL (P) + 4)


/* Operations for component alias of union IDENTIFIER */

#define	id_alias(P)				(CHECK_NULL (P) + 7)


/* Operations for component no of union IDENTIFIER */

#define	id_no(P)				(CHECK_NULL (P) + 8)


/* Operations for component dump of union IDENTIFIER */

#define	id_dump(P)				(CHECK_NULL (P) + 9)


/* Operations for field dummy of union IDENTIFIER */

#define	id_dummy_tag				0u
#define	IS_id_dummy(P)				(CHECK_NULL (P)->ag_tag == 0)


#define MAKE_id_dummy(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x317_ = GEN_c_class ( 10, TYPEID_id );\
		x317_->ag_tag = 0;\
		COPY_hashid (x317_ + 1, (name_));\
		COPY_dspec (x317_ + 2, (storage_));\
		COPY_nspace (x317_ + 3, (parent_));\
		COPY_ulong (x317_ + 4, (loc_).line);\
		COPY_ulong (x317_ + 5, (loc_).column);\
		COPY_ptr (x317_ + 6, (loc_).posn);\
		COPY_id (x317_ + 7, x317_);\
		COPY_ulong (x317_ + 8, LINK_NONE);\
		COPY_ulong (x317_ + 9, LINK_NONE);\
		(c_class_id) = x317_;\
	}

#define	DECONS_id_dummy(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x318_ = CHECK_TAG ((c_class_id), 0);\
		(name_) = DEREF_hashid (x318_ + 1);\
		(storage_) = DEREF_dspec (x318_ + 2);\
		(parent_) = DEREF_nspace (x318_ + 3);\
		(loc_).line = DEREF_ulong (x318_ + 4);\
		(loc_).column = DEREF_ulong (x318_ + 5);\
		(loc_).posn = DEREF_ptr (x318_ + 6);\
		(alias_) = DEREF_id (x318_ + 7);\
		(no_) = DEREF_ulong (x318_ + 8);\
		(dump_) = DEREF_ulong (x318_ + 9);\
	}

#define	DESTROY_id_dummy(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x319_ = CHECK_TAG ((c_class_id), 0);\
		(name_) = DEREF_hashid (x319_ + 1);\
		(storage_) = DEREF_dspec (x319_ + 2);\
		(parent_) = DEREF_nspace (x319_ + 3);\
		(loc_).line = DEREF_ulong (x319_ + 4);\
		(loc_).column = DEREF_ulong (x319_ + 5);\
		(loc_).posn = DEREF_ptr (x319_ + 6);\
		(alias_) = DEREF_id (x319_ + 7);\
		(no_) = DEREF_ulong (x319_ + 8);\
		(dump_) = DEREF_ulong (x319_ + 9);\
		(destroyer_) (x319_, 10u);\
	}


/* Operations for field set keyword_etc of union IDENTIFIER */

#define	id_keyword_etc_tag			5u
#define	IS_id_keyword_etc(P)			((unsigned) (CHECK_NULL (P)->ag_tag - 1) < 4u)


#define MAKE_id_keyword_etc(tag, name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x320_ = GEN_c_class ( 10, TYPEID_id );\
		x320_->ag_tag = (tag);\
		COPY_hashid (x320_ + 1, (name_));\
		COPY_dspec (x320_ + 2, (storage_));\
		COPY_nspace (x320_ + 3, (parent_));\
		COPY_ulong (x320_ + 4, (loc_).line);\
		COPY_ulong (x320_ + 5, (loc_).column);\
		COPY_ptr (x320_ + 6, (loc_).posn);\
		COPY_id (x320_ + 7, x320_);\
		COPY_ulong (x320_ + 8, LINK_NONE);\
		COPY_ulong (x320_ + 9, LINK_NONE);\
		(c_class_id) = CHECK_TAG_ETC (x320_, 1, 5);\
	}

#define	MODIFY_id_keyword_etc(tag, c_class_id)\
	{\
		c_class *x321_ = CHECK_TAG_ETC ((c_class_id), 1, 5);\
		x321_->ag_tag = (tag);\
		(void) CHECK_TAG_ETC (x321_, 1, 5);\
	}

#define	DECONS_id_keyword_etc(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x322_ = CHECK_TAG_ETC ((c_class_id), 1, 5);\
		(name_) = DEREF_hashid (x322_ + 1);\
		(storage_) = DEREF_dspec (x322_ + 2);\
		(parent_) = DEREF_nspace (x322_ + 3);\
		(loc_).line = DEREF_ulong (x322_ + 4);\
		(loc_).column = DEREF_ulong (x322_ + 5);\
		(loc_).posn = DEREF_ptr (x322_ + 6);\
		(alias_) = DEREF_id (x322_ + 7);\
		(no_) = DEREF_ulong (x322_ + 8);\
		(dump_) = DEREF_ulong (x322_ + 9);\
	}

#define	DESTROY_id_keyword_etc(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x323_ = CHECK_TAG_ETC ((c_class_id), 1, 5);\
		(name_) = DEREF_hashid (x323_ + 1);\
		(storage_) = DEREF_dspec (x323_ + 2);\
		(parent_) = DEREF_nspace (x323_ + 3);\
		(loc_).line = DEREF_ulong (x323_ + 4);\
		(loc_).column = DEREF_ulong (x323_ + 5);\
		(loc_).posn = DEREF_ptr (x323_ + 6);\
		(alias_) = DEREF_id (x323_ + 7);\
		(no_) = DEREF_ulong (x323_ + 8);\
		(dump_) = DEREF_ulong (x323_ + 9);\
		(destroyer_) (x323_, 10u);\
	}


/* Operations for field keyword of union IDENTIFIER */

#define	id_keyword_tag				1u
#define	IS_id_keyword(P)				(CHECK_NULL (P)->ag_tag == 1)


#define MAKE_id_keyword(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x324_ = GEN_c_class ( 10, TYPEID_id );\
		x324_->ag_tag = 1;\
		COPY_hashid (x324_ + 1, (name_));\
		COPY_dspec (x324_ + 2, (storage_));\
		COPY_nspace (x324_ + 3, (parent_));\
		COPY_ulong (x324_ + 4, (loc_).line);\
		COPY_ulong (x324_ + 5, (loc_).column);\
		COPY_ptr (x324_ + 6, (loc_).posn);\
		COPY_id (x324_ + 7, x324_);\
		COPY_ulong (x324_ + 8, LINK_NONE);\
		COPY_ulong (x324_ + 9, LINK_NONE);\
		(c_class_id) = x324_;\
	}

#define	DECONS_id_keyword(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x325_ = CHECK_TAG ((c_class_id), 1);\
		(name_) = DEREF_hashid (x325_ + 1);\
		(storage_) = DEREF_dspec (x325_ + 2);\
		(parent_) = DEREF_nspace (x325_ + 3);\
		(loc_).line = DEREF_ulong (x325_ + 4);\
		(loc_).column = DEREF_ulong (x325_ + 5);\
		(loc_).posn = DEREF_ptr (x325_ + 6);\
		(alias_) = DEREF_id (x325_ + 7);\
		(no_) = DEREF_ulong (x325_ + 8);\
		(dump_) = DEREF_ulong (x325_ + 9);\
	}

#define	DESTROY_id_keyword(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x326_ = CHECK_TAG ((c_class_id), 1);\
		(name_) = DEREF_hashid (x326_ + 1);\
		(storage_) = DEREF_dspec (x326_ + 2);\
		(parent_) = DEREF_nspace (x326_ + 3);\
		(loc_).line = DEREF_ulong (x326_ + 4);\
		(loc_).column = DEREF_ulong (x326_ + 5);\
		(loc_).posn = DEREF_ptr (x326_ + 6);\
		(alias_) = DEREF_id (x326_ + 7);\
		(no_) = DEREF_ulong (x326_ + 8);\
		(dump_) = DEREF_ulong (x326_ + 9);\
		(destroyer_) (x326_, 10u);\
	}


/* Operations for field c99_keyword of union IDENTIFIER */

#define	id_c99_keyword_tag				2u
#define	IS_id_c99_keyword(P)				(CHECK_NULL (P)->ag_tag == 2)


#define MAKE_id_c99_keyword(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x327_ = GEN_c_class ( 10, TYPEID_id );\
		x327_->ag_tag = 2;\
		COPY_hashid (x327_ + 1, (name_));\
		COPY_dspec (x327_ + 2, (storage_));\
		COPY_nspace (x327_ + 3, (parent_));\
		COPY_ulong (x327_ + 4, (loc_).line);\
		COPY_ulong (x327_ + 5, (loc_).column);\
		COPY_ptr (x327_ + 6, (loc_).posn);\
		COPY_id (x327_ + 7, x327_);\
		COPY_ulong (x327_ + 8, LINK_NONE);\
		COPY_ulong (x327_ + 9, LINK_NONE);\
		(c_class_id) = x327_;\
	}

#define	DECONS_id_c99_keyword(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x328_ = CHECK_TAG ((c_class_id), 2);\
		(name_) = DEREF_hashid (x328_ + 1);\
		(storage_) = DEREF_dspec (x328_ + 2);\
		(parent_) = DEREF_nspace (x328_ + 3);\
		(loc_).line = DEREF_ulong (x328_ + 4);\
		(loc_).column = DEREF_ulong (x328_ + 5);\
		(loc_).posn = DEREF_ptr (x328_ + 6);\
		(alias_) = DEREF_id (x328_ + 7);\
		(no_) = DEREF_ulong (x328_ + 8);\
		(dump_) = DEREF_ulong (x328_ + 9);\
	}

#define	DESTROY_id_c99_keyword(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x329_ = CHECK_TAG ((c_class_id), 2);\
		(name_) = DEREF_hashid (x329_ + 1);\
		(storage_) = DEREF_dspec (x329_ + 2);\
		(parent_) = DEREF_nspace (x329_ + 3);\
		(loc_).line = DEREF_ulong (x329_ + 4);\
		(loc_).column = DEREF_ulong (x329_ + 5);\
		(loc_).posn = DEREF_ptr (x329_ + 6);\
		(alias_) = DEREF_id (x329_ + 7);\
		(no_) = DEREF_ulong (x329_ + 8);\
		(dump_) = DEREF_ulong (x329_ + 9);\
		(destroyer_) (x329_, 10u);\
	}


/* Operations for field iso_keyword of union IDENTIFIER */

#define	id_iso_keyword_tag				3u
#define	IS_id_iso_keyword(P)				(CHECK_NULL (P)->ag_tag == 3)


#define MAKE_id_iso_keyword(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x330_ = GEN_c_class ( 10, TYPEID_id );\
		x330_->ag_tag = 3;\
		COPY_hashid (x330_ + 1, (name_));\
		COPY_dspec (x330_ + 2, (storage_));\
		COPY_nspace (x330_ + 3, (parent_));\
		COPY_ulong (x330_ + 4, (loc_).line);\
		COPY_ulong (x330_ + 5, (loc_).column);\
		COPY_ptr (x330_ + 6, (loc_).posn);\
		COPY_id (x330_ + 7, x330_);\
		COPY_ulong (x330_ + 8, LINK_NONE);\
		COPY_ulong (x330_ + 9, LINK_NONE);\
		(c_class_id) = x330_;\
	}

#define	DECONS_id_iso_keyword(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x331_ = CHECK_TAG ((c_class_id), 3);\
		(name_) = DEREF_hashid (x331_ + 1);\
		(storage_) = DEREF_dspec (x331_ + 2);\
		(parent_) = DEREF_nspace (x331_ + 3);\
		(loc_).line = DEREF_ulong (x331_ + 4);\
		(loc_).column = DEREF_ulong (x331_ + 5);\
		(loc_).posn = DEREF_ptr (x331_ + 6);\
		(alias_) = DEREF_id (x331_ + 7);\
		(no_) = DEREF_ulong (x331_ + 8);\
		(dump_) = DEREF_ulong (x331_ + 9);\
	}

#define	DESTROY_id_iso_keyword(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x332_ = CHECK_TAG ((c_class_id), 3);\
		(name_) = DEREF_hashid (x332_ + 1);\
		(storage_) = DEREF_dspec (x332_ + 2);\
		(parent_) = DEREF_nspace (x332_ + 3);\
		(loc_).line = DEREF_ulong (x332_ + 4);\
		(loc_).column = DEREF_ulong (x332_ + 5);\
		(loc_).posn = DEREF_ptr (x332_ + 6);\
		(alias_) = DEREF_id (x332_ + 7);\
		(no_) = DEREF_ulong (x332_ + 8);\
		(dump_) = DEREF_ulong (x332_ + 9);\
		(destroyer_) (x332_, 10u);\
	}


/* Operations for field reserved of union IDENTIFIER */

#define	id_reserved_tag				4u
#define	IS_id_reserved(P)				(CHECK_NULL (P)->ag_tag == 4)


#define MAKE_id_reserved(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x333_ = GEN_c_class ( 10, TYPEID_id );\
		x333_->ag_tag = 4;\
		COPY_hashid (x333_ + 1, (name_));\
		COPY_dspec (x333_ + 2, (storage_));\
		COPY_nspace (x333_ + 3, (parent_));\
		COPY_ulong (x333_ + 4, (loc_).line);\
		COPY_ulong (x333_ + 5, (loc_).column);\
		COPY_ptr (x333_ + 6, (loc_).posn);\
		COPY_id (x333_ + 7, x333_);\
		COPY_ulong (x333_ + 8, LINK_NONE);\
		COPY_ulong (x333_ + 9, LINK_NONE);\
		(c_class_id) = x333_;\
	}

#define	DECONS_id_reserved(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x334_ = CHECK_TAG ((c_class_id), 4);\
		(name_) = DEREF_hashid (x334_ + 1);\
		(storage_) = DEREF_dspec (x334_ + 2);\
		(parent_) = DEREF_nspace (x334_ + 3);\
		(loc_).line = DEREF_ulong (x334_ + 4);\
		(loc_).column = DEREF_ulong (x334_ + 5);\
		(loc_).posn = DEREF_ptr (x334_ + 6);\
		(alias_) = DEREF_id (x334_ + 7);\
		(no_) = DEREF_ulong (x334_ + 8);\
		(dump_) = DEREF_ulong (x334_ + 9);\
	}

#define	DESTROY_id_reserved(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x335_ = CHECK_TAG ((c_class_id), 4);\
		(name_) = DEREF_hashid (x335_ + 1);\
		(storage_) = DEREF_dspec (x335_ + 2);\
		(parent_) = DEREF_nspace (x335_ + 3);\
		(loc_).line = DEREF_ulong (x335_ + 4);\
		(loc_).column = DEREF_ulong (x335_ + 5);\
		(loc_).posn = DEREF_ptr (x335_ + 6);\
		(alias_) = DEREF_id (x335_ + 7);\
		(no_) = DEREF_ulong (x335_ + 8);\
		(dump_) = DEREF_ulong (x335_ + 9);\
		(destroyer_) (x335_, 10u);\
	}


/* Operations for field builtin of union IDENTIFIER */

#define	id_builtin_tag				5u
#define	IS_id_builtin(P)				(CHECK_NULL (P)->ag_tag == 5)

#define	id_builtin_ret(P)				(CHECK_TAG ((P), 5) + 10)
#define	id_builtin_ptypes(P)				(CHECK_TAG ((P), 5) + 11)

#define MAKE_id_builtin(name_, storage_, parent_, loc_, ret_, ptypes_, c_class_id)\
	{\
		c_class *x336_ = GEN_c_class ( 12, TYPEID_id );\
		x336_->ag_tag = 5;\
		COPY_hashid (x336_ + 1, (name_));\
		COPY_dspec (x336_ + 2, (storage_));\
		COPY_nspace (x336_ + 3, (parent_));\
		COPY_ulong (x336_ + 4, (loc_).line);\
		COPY_ulong (x336_ + 5, (loc_).column);\
		COPY_ptr (x336_ + 6, (loc_).posn);\
		COPY_id (x336_ + 7, x336_);\
		COPY_ulong (x336_ + 8, LINK_NONE);\
		COPY_ulong (x336_ + 9, LINK_NONE);\
		COPY_type (x336_ + 10, (ret_));\
		COPY_list (x336_ + 11, (ptypes_));\
		(c_class_id) = x336_;\
	}

#define	DECONS_id_builtin(name_, storage_, parent_, loc_, alias_, no_, dump_, ret_, ptypes_, c_class_id)\
	{\
		c_class *x337_ = CHECK_TAG ((c_class_id), 5);\
		(name_) = DEREF_hashid (x337_ + 1);\
		(storage_) = DEREF_dspec (x337_ + 2);\
		(parent_) = DEREF_nspace (x337_ + 3);\
		(loc_).line = DEREF_ulong (x337_ + 4);\
		(loc_).column = DEREF_ulong (x337_ + 5);\
		(loc_).posn = DEREF_ptr (x337_ + 6);\
		(alias_) = DEREF_id (x337_ + 7);\
		(no_) = DEREF_ulong (x337_ + 8);\
		(dump_) = DEREF_ulong (x337_ + 9);\
		(ret_) = DEREF_type (x337_ + 10);\
		(ptypes_) = DEREF_list (x337_ + 11);\
	}

#define	DESTROY_id_builtin(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, ret_, ptypes_, c_class_id)\
	{\
		c_class *x338_ = CHECK_TAG ((c_class_id), 5);\
		(name_) = DEREF_hashid (x338_ + 1);\
		(storage_) = DEREF_dspec (x338_ + 2);\
		(parent_) = DEREF_nspace (x338_ + 3);\
		(loc_).line = DEREF_ulong (x338_ + 4);\
		(loc_).column = DEREF_ulong (x338_ + 5);\
		(loc_).posn = DEREF_ptr (x338_ + 6);\
		(alias_) = DEREF_id (x338_ + 7);\
		(no_) = DEREF_ulong (x338_ + 8);\
		(dump_) = DEREF_ulong (x338_ + 9);\
		(ret_) = DEREF_type (x338_ + 10);\
		(ptypes_) = DEREF_list (x338_ + 11);\
		(destroyer_) (x338_, 12u);\
	}


/* Operations for field obj_macro of union IDENTIFIER */

#define	id_obj_macro_tag				6u
#define	IS_id_obj_macro(P)				(CHECK_NULL (P)->ag_tag == 6)

#define	id_obj_macro_defn(P)				(CHECK_TAG ((P), 6) + 10)

#define MAKE_id_obj_macro(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x339_ = GEN_c_class ( 11, TYPEID_id );\
		x339_->ag_tag = 6;\
		COPY_hashid (x339_ + 1, (name_));\
		COPY_dspec (x339_ + 2, (storage_));\
		COPY_nspace (x339_ + 3, (parent_));\
		COPY_ulong (x339_ + 4, (loc_).line);\
		COPY_ulong (x339_ + 5, (loc_).column);\
		COPY_ptr (x339_ + 6, (loc_).posn);\
		COPY_id (x339_ + 7, x339_);\
		COPY_ulong (x339_ + 8, LINK_NONE);\
		COPY_ulong (x339_ + 9, LINK_NONE);\
		COPY_pptok (x339_ + 10, (defn_));\
		(c_class_id) = x339_;\
	}

#define	DECONS_id_obj_macro(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x340_ = CHECK_TAG ((c_class_id), 6);\
		(name_) = DEREF_hashid (x340_ + 1);\
		(storage_) = DEREF_dspec (x340_ + 2);\
		(parent_) = DEREF_nspace (x340_ + 3);\
		(loc_).line = DEREF_ulong (x340_ + 4);\
		(loc_).column = DEREF_ulong (x340_ + 5);\
		(loc_).posn = DEREF_ptr (x340_ + 6);\
		(alias_) = DEREF_id (x340_ + 7);\
		(no_) = DEREF_ulong (x340_ + 8);\
		(dump_) = DEREF_ulong (x340_ + 9);\
		(defn_) = DEREF_pptok (x340_ + 10);\
	}

#define	DESTROY_id_obj_macro(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x341_ = CHECK_TAG ((c_class_id), 6);\
		(name_) = DEREF_hashid (x341_ + 1);\
		(storage_) = DEREF_dspec (x341_ + 2);\
		(parent_) = DEREF_nspace (x341_ + 3);\
		(loc_).line = DEREF_ulong (x341_ + 4);\
		(loc_).column = DEREF_ulong (x341_ + 5);\
		(loc_).posn = DEREF_ptr (x341_ + 6);\
		(alias_) = DEREF_id (x341_ + 7);\
		(no_) = DEREF_ulong (x341_ + 8);\
		(dump_) = DEREF_ulong (x341_ + 9);\
		(defn_) = DEREF_pptok (x341_ + 10);\
		(destroyer_) (x341_, 11u);\
	}


/* Operations for field func_macro of union IDENTIFIER */

#define	id_func_macro_tag				7u
#define	IS_id_func_macro(P)				(CHECK_NULL (P)->ag_tag == 7)

#define	id_func_macro_defn(P)				(CHECK_TAG ((P), 7) + 10)
#define	id_func_macro_params(P)				(CHECK_TAG ((P), 7) + 11)
#define	id_func_macro_no_params(P)				(CHECK_TAG ((P), 7) + 12)
#define	id_func_macro_va_macro(P)				(CHECK_TAG ((P), 7) + 13)

#define MAKE_id_func_macro(name_, storage_, parent_, loc_, defn_, params_, no_params_, va_macro_, c_class_id)\
	{\
		c_class *x342_ = GEN_c_class ( 14, TYPEID_id );\
		x342_->ag_tag = 7;\
		COPY_hashid (x342_ + 1, (name_));\
		COPY_dspec (x342_ + 2, (storage_));\
		COPY_nspace (x342_ + 3, (parent_));\
		COPY_ulong (x342_ + 4, (loc_).line);\
		COPY_ulong (x342_ + 5, (loc_).column);\
		COPY_ptr (x342_ + 6, (loc_).posn);\
		COPY_id (x342_ + 7, x342_);\
		COPY_ulong (x342_ + 8, LINK_NONE);\
		COPY_ulong (x342_ + 9, LINK_NONE);\
		COPY_pptok (x342_ + 10, (defn_));\
		COPY_list (x342_ + 11, (params_));\
		COPY_unsigned (x342_ + 12, (no_params_));\
		COPY_int (x342_ + 13, (va_macro_));\
		(c_class_id) = x342_;\
	}

#define	DECONS_id_func_macro(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, params_, no_params_, va_macro_, c_class_id)\
	{\
		c_class *x343_ = CHECK_TAG ((c_class_id), 7);\
		(name_) = DEREF_hashid (x343_ + 1);\
		(storage_) = DEREF_dspec (x343_ + 2);\
		(parent_) = DEREF_nspace (x343_ + 3);\
		(loc_).line = DEREF_ulong (x343_ + 4);\
		(loc_).column = DEREF_ulong (x343_ + 5);\
		(loc_).posn = DEREF_ptr (x343_ + 6);\
		(alias_) = DEREF_id (x343_ + 7);\
		(no_) = DEREF_ulong (x343_ + 8);\
		(dump_) = DEREF_ulong (x343_ + 9);\
		(defn_) = DEREF_pptok (x343_ + 10);\
		(params_) = DEREF_list (x343_ + 11);\
		(no_params_) = DEREF_unsigned (x343_ + 12);\
		(va_macro_) = DEREF_int (x343_ + 13);\
	}

#define	DESTROY_id_func_macro(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, params_, no_params_, va_macro_, c_class_id)\
	{\
		c_class *x344_ = CHECK_TAG ((c_class_id), 7);\
		(name_) = DEREF_hashid (x344_ + 1);\
		(storage_) = DEREF_dspec (x344_ + 2);\
		(parent_) = DEREF_nspace (x344_ + 3);\
		(loc_).line = DEREF_ulong (x344_ + 4);\
		(loc_).column = DEREF_ulong (x344_ + 5);\
		(loc_).posn = DEREF_ptr (x344_ + 6);\
		(alias_) = DEREF_id (x344_ + 7);\
		(no_) = DEREF_ulong (x344_ + 8);\
		(dump_) = DEREF_ulong (x344_ + 9);\
		(defn_) = DEREF_pptok (x344_ + 10);\
		(params_) = DEREF_list (x344_ + 11);\
		(no_params_) = DEREF_unsigned (x344_ + 12);\
		(va_macro_) = DEREF_int (x344_ + 13);\
		(destroyer_) (x344_, 14u);\
	}


/* Operations for field predicate of union IDENTIFIER */

#define	id_predicate_tag				8u
#define	IS_id_predicate(P)				(CHECK_NULL (P)->ag_tag == 8)

#define	id_predicate_values(P)				(CHECK_TAG ((P), 8) + 10)

#define MAKE_id_predicate(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x345_ = GEN_c_class ( 11, TYPEID_id );\
		x345_->ag_tag = 8;\
		COPY_hashid (x345_ + 1, (name_));\
		COPY_dspec (x345_ + 2, (storage_));\
		COPY_nspace (x345_ + 3, (parent_));\
		COPY_ulong (x345_ + 4, (loc_).line);\
		COPY_ulong (x345_ + 5, (loc_).column);\
		COPY_ptr (x345_ + 6, (loc_).posn);\
		COPY_id (x345_ + 7, x345_);\
		COPY_ulong (x345_ + 8, LINK_NONE);\
		COPY_ulong (x345_ + 9, LINK_NONE);\
		COPY_list (x345_ + 10, NULL_list ( PPTOKEN_P ));\
		(c_class_id) = x345_;\
	}

#define	DECONS_id_predicate(name_, storage_, parent_, loc_, alias_, no_, dump_, values_, c_class_id)\
	{\
		c_class *x346_ = CHECK_TAG ((c_class_id), 8);\
		(name_) = DEREF_hashid (x346_ + 1);\
		(storage_) = DEREF_dspec (x346_ + 2);\
		(parent_) = DEREF_nspace (x346_ + 3);\
		(loc_).line = DEREF_ulong (x346_ + 4);\
		(loc_).column = DEREF_ulong (x346_ + 5);\
		(loc_).posn = DEREF_ptr (x346_ + 6);\
		(alias_) = DEREF_id (x346_ + 7);\
		(no_) = DEREF_ulong (x346_ + 8);\
		(dump_) = DEREF_ulong (x346_ + 9);\
		(values_) = DEREF_list (x346_ + 10);\
	}

#define	DESTROY_id_predicate(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, values_, c_class_id)\
	{\
		c_class *x347_ = CHECK_TAG ((c_class_id), 8);\
		(name_) = DEREF_hashid (x347_ + 1);\
		(storage_) = DEREF_dspec (x347_ + 2);\
		(parent_) = DEREF_nspace (x347_ + 3);\
		(loc_).line = DEREF_ulong (x347_ + 4);\
		(loc_).column = DEREF_ulong (x347_ + 5);\
		(loc_).posn = DEREF_ptr (x347_ + 6);\
		(alias_) = DEREF_id (x347_ + 7);\
		(no_) = DEREF_ulong (x347_ + 8);\
		(dump_) = DEREF_ulong (x347_ + 9);\
		(values_) = DEREF_list (x347_ + 10);\
		(destroyer_) (x347_, 11u);\
	}


/* Operations for field set class_name_etc of union IDENTIFIER */

#define	id_class_name_etc_tag			14u
#define	IS_id_class_name_etc(P)			((unsigned) (CHECK_NULL (P)->ag_tag - 9) < 5u)

#define	id_class_name_etc_defn(P)			(CHECK_TAG_ETC ((P), 9, 14) + 10)
#define	id_class_name_etc_rep(P)			(CHECK_TAG_ETC ((P), 9, 14) + 11)

#define MAKE_id_class_name_etc(tag, name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x348_ = GEN_c_class ( 12, TYPEID_id );\
		x348_->ag_tag = (tag);\
		COPY_hashid (x348_ + 1, (name_));\
		COPY_dspec (x348_ + 2, (storage_));\
		COPY_nspace (x348_ + 3, (parent_));\
		COPY_ulong (x348_ + 4, (loc_).line);\
		COPY_ulong (x348_ + 5, (loc_).column);\
		COPY_ptr (x348_ + 6, (loc_).posn);\
		COPY_id (x348_ + 7, x348_);\
		COPY_ulong (x348_ + 8, LINK_NONE);\
		COPY_ulong (x348_ + 9, LINK_NONE);\
		COPY_type (x348_ + 10, (defn_));\
		COPY_btype (x348_ + 11, btype_none);\
		(c_class_id) = CHECK_TAG_ETC (x348_, 9, 14);\
	}

#define	MODIFY_id_class_name_etc(tag, c_class_id)\
	{\
		c_class *x349_ = CHECK_TAG_ETC ((c_class_id), 9, 14);\
		x349_->ag_tag = (tag);\
		(void) CHECK_TAG_ETC (x349_, 9, 14);\
	}

#define	DECONS_id_class_name_etc(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x350_ = CHECK_TAG_ETC ((c_class_id), 9, 14);\
		(name_) = DEREF_hashid (x350_ + 1);\
		(storage_) = DEREF_dspec (x350_ + 2);\
		(parent_) = DEREF_nspace (x350_ + 3);\
		(loc_).line = DEREF_ulong (x350_ + 4);\
		(loc_).column = DEREF_ulong (x350_ + 5);\
		(loc_).posn = DEREF_ptr (x350_ + 6);\
		(alias_) = DEREF_id (x350_ + 7);\
		(no_) = DEREF_ulong (x350_ + 8);\
		(dump_) = DEREF_ulong (x350_ + 9);\
		(defn_) = DEREF_type (x350_ + 10);\
		(rep_) = DEREF_btype (x350_ + 11);\
	}

#define	DESTROY_id_class_name_etc(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x351_ = CHECK_TAG_ETC ((c_class_id), 9, 14);\
		(name_) = DEREF_hashid (x351_ + 1);\
		(storage_) = DEREF_dspec (x351_ + 2);\
		(parent_) = DEREF_nspace (x351_ + 3);\
		(loc_).line = DEREF_ulong (x351_ + 4);\
		(loc_).column = DEREF_ulong (x351_ + 5);\
		(loc_).posn = DEREF_ptr (x351_ + 6);\
		(alias_) = DEREF_id (x351_ + 7);\
		(no_) = DEREF_ulong (x351_ + 8);\
		(dump_) = DEREF_ulong (x351_ + 9);\
		(defn_) = DEREF_type (x351_ + 10);\
		(rep_) = DEREF_btype (x351_ + 11);\
		(destroyer_) (x351_, 12u);\
	}


/* Operations for field class_name of union IDENTIFIER */

#define	id_class_name_tag				9u
#define	IS_id_class_name(P)				(CHECK_NULL (P)->ag_tag == 9)

#define	id_class_name_defn(P)				(CHECK_TAG ((P), 9) + 10)
#define	id_class_name_rep(P)				(CHECK_TAG ((P), 9) + 11)

#define MAKE_id_class_name(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x352_ = GEN_c_class ( 12, TYPEID_id );\
		x352_->ag_tag = 9;\
		COPY_hashid (x352_ + 1, (name_));\
		COPY_dspec (x352_ + 2, (storage_));\
		COPY_nspace (x352_ + 3, (parent_));\
		COPY_ulong (x352_ + 4, (loc_).line);\
		COPY_ulong (x352_ + 5, (loc_).column);\
		COPY_ptr (x352_ + 6, (loc_).posn);\
		COPY_id (x352_ + 7, x352_);\
		COPY_ulong (x352_ + 8, LINK_NONE);\
		COPY_ulong (x352_ + 9, LINK_NONE);\
		COPY_type (x352_ + 10, (defn_));\
		COPY_btype (x352_ + 11, btype_none);\
		(c_class_id) = x352_;\
	}

#define	DECONS_id_class_name(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x353_ = CHECK_TAG ((c_class_id), 9);\
		(name_) = DEREF_hashid (x353_ + 1);\
		(storage_) = DEREF_dspec (x353_ + 2);\
		(parent_) = DEREF_nspace (x353_ + 3);\
		(loc_).line = DEREF_ulong (x353_ + 4);\
		(loc_).column = DEREF_ulong (x353_ + 5);\
		(loc_).posn = DEREF_ptr (x353_ + 6);\
		(alias_) = DEREF_id (x353_ + 7);\
		(no_) = DEREF_ulong (x353_ + 8);\
		(dump_) = DEREF_ulong (x353_ + 9);\
		(defn_) = DEREF_type (x353_ + 10);\
		(rep_) = DEREF_btype (x353_ + 11);\
	}

#define	DESTROY_id_class_name(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x354_ = CHECK_TAG ((c_class_id), 9);\
		(name_) = DEREF_hashid (x354_ + 1);\
		(storage_) = DEREF_dspec (x354_ + 2);\
		(parent_) = DEREF_nspace (x354_ + 3);\
		(loc_).line = DEREF_ulong (x354_ + 4);\
		(loc_).column = DEREF_ulong (x354_ + 5);\
		(loc_).posn = DEREF_ptr (x354_ + 6);\
		(alias_) = DEREF_id (x354_ + 7);\
		(no_) = DEREF_ulong (x354_ + 8);\
		(dump_) = DEREF_ulong (x354_ + 9);\
		(defn_) = DEREF_type (x354_ + 10);\
		(rep_) = DEREF_btype (x354_ + 11);\
		(destroyer_) (x354_, 12u);\
	}


/* Operations for field enum_name of union IDENTIFIER */

#define	id_enum_name_tag				10u
#define	IS_id_enum_name(P)				(CHECK_NULL (P)->ag_tag == 10)

#define	id_enum_name_defn(P)				(CHECK_TAG ((P), 10) + 10)
#define	id_enum_name_rep(P)				(CHECK_TAG ((P), 10) + 11)

#define MAKE_id_enum_name(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x355_ = GEN_c_class ( 12, TYPEID_id );\
		x355_->ag_tag = 10;\
		COPY_hashid (x355_ + 1, (name_));\
		COPY_dspec (x355_ + 2, (storage_));\
		COPY_nspace (x355_ + 3, (parent_));\
		COPY_ulong (x355_ + 4, (loc_).line);\
		COPY_ulong (x355_ + 5, (loc_).column);\
		COPY_ptr (x355_ + 6, (loc_).posn);\
		COPY_id (x355_ + 7, x355_);\
		COPY_ulong (x355_ + 8, LINK_NONE);\
		COPY_ulong (x355_ + 9, LINK_NONE);\
		COPY_type (x355_ + 10, (defn_));\
		COPY_btype (x355_ + 11, btype_none);\
		(c_class_id) = x355_;\
	}

#define	DECONS_id_enum_name(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x356_ = CHECK_TAG ((c_class_id), 10);\
		(name_) = DEREF_hashid (x356_ + 1);\
		(storage_) = DEREF_dspec (x356_ + 2);\
		(parent_) = DEREF_nspace (x356_ + 3);\
		(loc_).line = DEREF_ulong (x356_ + 4);\
		(loc_).column = DEREF_ulong (x356_ + 5);\
		(loc_).posn = DEREF_ptr (x356_ + 6);\
		(alias_) = DEREF_id (x356_ + 7);\
		(no_) = DEREF_ulong (x356_ + 8);\
		(dump_) = DEREF_ulong (x356_ + 9);\
		(defn_) = DEREF_type (x356_ + 10);\
		(rep_) = DEREF_btype (x356_ + 11);\
	}

#define	DESTROY_id_enum_name(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x357_ = CHECK_TAG ((c_class_id), 10);\
		(name_) = DEREF_hashid (x357_ + 1);\
		(storage_) = DEREF_dspec (x357_ + 2);\
		(parent_) = DEREF_nspace (x357_ + 3);\
		(loc_).line = DEREF_ulong (x357_ + 4);\
		(loc_).column = DEREF_ulong (x357_ + 5);\
		(loc_).posn = DEREF_ptr (x357_ + 6);\
		(alias_) = DEREF_id (x357_ + 7);\
		(no_) = DEREF_ulong (x357_ + 8);\
		(dump_) = DEREF_ulong (x357_ + 9);\
		(defn_) = DEREF_type (x357_ + 10);\
		(rep_) = DEREF_btype (x357_ + 11);\
		(destroyer_) (x357_, 12u);\
	}


/* Operations for field class_alias of union IDENTIFIER */

#define	id_class_alias_tag				11u
#define	IS_id_class_alias(P)				(CHECK_NULL (P)->ag_tag == 11)

#define	id_class_alias_defn(P)				(CHECK_TAG ((P), 11) + 10)
#define	id_class_alias_rep(P)				(CHECK_TAG ((P), 11) + 11)

#define MAKE_id_class_alias(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x358_ = GEN_c_class ( 12, TYPEID_id );\
		x358_->ag_tag = 11;\
		COPY_hashid (x358_ + 1, (name_));\
		COPY_dspec (x358_ + 2, (storage_));\
		COPY_nspace (x358_ + 3, (parent_));\
		COPY_ulong (x358_ + 4, (loc_).line);\
		COPY_ulong (x358_ + 5, (loc_).column);\
		COPY_ptr (x358_ + 6, (loc_).posn);\
		COPY_id (x358_ + 7, x358_);\
		COPY_ulong (x358_ + 8, LINK_NONE);\
		COPY_ulong (x358_ + 9, LINK_NONE);\
		COPY_type (x358_ + 10, (defn_));\
		COPY_btype (x358_ + 11, btype_none);\
		(c_class_id) = x358_;\
	}

#define	DECONS_id_class_alias(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x359_ = CHECK_TAG ((c_class_id), 11);\
		(name_) = DEREF_hashid (x359_ + 1);\
		(storage_) = DEREF_dspec (x359_ + 2);\
		(parent_) = DEREF_nspace (x359_ + 3);\
		(loc_).line = DEREF_ulong (x359_ + 4);\
		(loc_).column = DEREF_ulong (x359_ + 5);\
		(loc_).posn = DEREF_ptr (x359_ + 6);\
		(alias_) = DEREF_id (x359_ + 7);\
		(no_) = DEREF_ulong (x359_ + 8);\
		(dump_) = DEREF_ulong (x359_ + 9);\
		(defn_) = DEREF_type (x359_ + 10);\
		(rep_) = DEREF_btype (x359_ + 11);\
	}

#define	DESTROY_id_class_alias(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x360_ = CHECK_TAG ((c_class_id), 11);\
		(name_) = DEREF_hashid (x360_ + 1);\
		(storage_) = DEREF_dspec (x360_ + 2);\
		(parent_) = DEREF_nspace (x360_ + 3);\
		(loc_).line = DEREF_ulong (x360_ + 4);\
		(loc_).column = DEREF_ulong (x360_ + 5);\
		(loc_).posn = DEREF_ptr (x360_ + 6);\
		(alias_) = DEREF_id (x360_ + 7);\
		(no_) = DEREF_ulong (x360_ + 8);\
		(dump_) = DEREF_ulong (x360_ + 9);\
		(defn_) = DEREF_type (x360_ + 10);\
		(rep_) = DEREF_btype (x360_ + 11);\
		(destroyer_) (x360_, 12u);\
	}


/* Operations for field enum_alias of union IDENTIFIER */

#define	id_enum_alias_tag				12u
#define	IS_id_enum_alias(P)				(CHECK_NULL (P)->ag_tag == 12)

#define	id_enum_alias_defn(P)				(CHECK_TAG ((P), 12) + 10)
#define	id_enum_alias_rep(P)				(CHECK_TAG ((P), 12) + 11)

#define MAKE_id_enum_alias(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x361_ = GEN_c_class ( 12, TYPEID_id );\
		x361_->ag_tag = 12;\
		COPY_hashid (x361_ + 1, (name_));\
		COPY_dspec (x361_ + 2, (storage_));\
		COPY_nspace (x361_ + 3, (parent_));\
		COPY_ulong (x361_ + 4, (loc_).line);\
		COPY_ulong (x361_ + 5, (loc_).column);\
		COPY_ptr (x361_ + 6, (loc_).posn);\
		COPY_id (x361_ + 7, x361_);\
		COPY_ulong (x361_ + 8, LINK_NONE);\
		COPY_ulong (x361_ + 9, LINK_NONE);\
		COPY_type (x361_ + 10, (defn_));\
		COPY_btype (x361_ + 11, btype_none);\
		(c_class_id) = x361_;\
	}

#define	DECONS_id_enum_alias(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x362_ = CHECK_TAG ((c_class_id), 12);\
		(name_) = DEREF_hashid (x362_ + 1);\
		(storage_) = DEREF_dspec (x362_ + 2);\
		(parent_) = DEREF_nspace (x362_ + 3);\
		(loc_).line = DEREF_ulong (x362_ + 4);\
		(loc_).column = DEREF_ulong (x362_ + 5);\
		(loc_).posn = DEREF_ptr (x362_ + 6);\
		(alias_) = DEREF_id (x362_ + 7);\
		(no_) = DEREF_ulong (x362_ + 8);\
		(dump_) = DEREF_ulong (x362_ + 9);\
		(defn_) = DEREF_type (x362_ + 10);\
		(rep_) = DEREF_btype (x362_ + 11);\
	}

#define	DESTROY_id_enum_alias(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x363_ = CHECK_TAG ((c_class_id), 12);\
		(name_) = DEREF_hashid (x363_ + 1);\
		(storage_) = DEREF_dspec (x363_ + 2);\
		(parent_) = DEREF_nspace (x363_ + 3);\
		(loc_).line = DEREF_ulong (x363_ + 4);\
		(loc_).column = DEREF_ulong (x363_ + 5);\
		(loc_).posn = DEREF_ptr (x363_ + 6);\
		(alias_) = DEREF_id (x363_ + 7);\
		(no_) = DEREF_ulong (x363_ + 8);\
		(dump_) = DEREF_ulong (x363_ + 9);\
		(defn_) = DEREF_type (x363_ + 10);\
		(rep_) = DEREF_btype (x363_ + 11);\
		(destroyer_) (x363_, 12u);\
	}


/* Operations for field type_alias of union IDENTIFIER */

#define	id_type_alias_tag				13u
#define	IS_id_type_alias(P)				(CHECK_NULL (P)->ag_tag == 13)

#define	id_type_alias_defn(P)				(CHECK_TAG ((P), 13) + 10)
#define	id_type_alias_rep(P)				(CHECK_TAG ((P), 13) + 11)

#define MAKE_id_type_alias(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x364_ = GEN_c_class ( 12, TYPEID_id );\
		x364_->ag_tag = 13;\
		COPY_hashid (x364_ + 1, (name_));\
		COPY_dspec (x364_ + 2, (storage_));\
		COPY_nspace (x364_ + 3, (parent_));\
		COPY_ulong (x364_ + 4, (loc_).line);\
		COPY_ulong (x364_ + 5, (loc_).column);\
		COPY_ptr (x364_ + 6, (loc_).posn);\
		COPY_id (x364_ + 7, x364_);\
		COPY_ulong (x364_ + 8, LINK_NONE);\
		COPY_ulong (x364_ + 9, LINK_NONE);\
		COPY_type (x364_ + 10, (defn_));\
		COPY_btype (x364_ + 11, btype_none);\
		(c_class_id) = x364_;\
	}

#define	DECONS_id_type_alias(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x365_ = CHECK_TAG ((c_class_id), 13);\
		(name_) = DEREF_hashid (x365_ + 1);\
		(storage_) = DEREF_dspec (x365_ + 2);\
		(parent_) = DEREF_nspace (x365_ + 3);\
		(loc_).line = DEREF_ulong (x365_ + 4);\
		(loc_).column = DEREF_ulong (x365_ + 5);\
		(loc_).posn = DEREF_ptr (x365_ + 6);\
		(alias_) = DEREF_id (x365_ + 7);\
		(no_) = DEREF_ulong (x365_ + 8);\
		(dump_) = DEREF_ulong (x365_ + 9);\
		(defn_) = DEREF_type (x365_ + 10);\
		(rep_) = DEREF_btype (x365_ + 11);\
	}

#define	DESTROY_id_type_alias(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id)\
	{\
		c_class *x366_ = CHECK_TAG ((c_class_id), 13);\
		(name_) = DEREF_hashid (x366_ + 1);\
		(storage_) = DEREF_dspec (x366_ + 2);\
		(parent_) = DEREF_nspace (x366_ + 3);\
		(loc_).line = DEREF_ulong (x366_ + 4);\
		(loc_).column = DEREF_ulong (x366_ + 5);\
		(loc_).posn = DEREF_ptr (x366_ + 6);\
		(alias_) = DEREF_id (x366_ + 7);\
		(no_) = DEREF_ulong (x366_ + 8);\
		(dump_) = DEREF_ulong (x366_ + 9);\
		(defn_) = DEREF_type (x366_ + 10);\
		(rep_) = DEREF_btype (x366_ + 11);\
		(destroyer_) (x366_, 12u);\
	}


/* Operations for field set nspace_name_etc of union IDENTIFIER */

#define	id_nspace_name_etc_tag			16u
#define	IS_id_nspace_name_etc(P)			((unsigned) (CHECK_NULL (P)->ag_tag - 14) < 2u)

#define	id_nspace_name_etc_defn(P)			(CHECK_TAG_ETC ((P), 14, 16) + 10)

#define MAKE_id_nspace_name_etc(tag, name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x367_ = GEN_c_class ( 11, TYPEID_id );\
		x367_->ag_tag = (tag);\
		COPY_hashid (x367_ + 1, (name_));\
		COPY_dspec (x367_ + 2, (storage_));\
		COPY_nspace (x367_ + 3, (parent_));\
		COPY_ulong (x367_ + 4, (loc_).line);\
		COPY_ulong (x367_ + 5, (loc_).column);\
		COPY_ptr (x367_ + 6, (loc_).posn);\
		COPY_id (x367_ + 7, x367_);\
		COPY_ulong (x367_ + 8, LINK_NONE);\
		COPY_ulong (x367_ + 9, LINK_NONE);\
		COPY_nspace (x367_ + 10, (defn_));\
		(c_class_id) = CHECK_TAG_ETC (x367_, 14, 16);\
	}

#define	MODIFY_id_nspace_name_etc(tag, c_class_id)\
	{\
		c_class *x368_ = CHECK_TAG_ETC ((c_class_id), 14, 16);\
		x368_->ag_tag = (tag);\
		(void) CHECK_TAG_ETC (x368_, 14, 16);\
	}

#define	DECONS_id_nspace_name_etc(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x369_ = CHECK_TAG_ETC ((c_class_id), 14, 16);\
		(name_) = DEREF_hashid (x369_ + 1);\
		(storage_) = DEREF_dspec (x369_ + 2);\
		(parent_) = DEREF_nspace (x369_ + 3);\
		(loc_).line = DEREF_ulong (x369_ + 4);\
		(loc_).column = DEREF_ulong (x369_ + 5);\
		(loc_).posn = DEREF_ptr (x369_ + 6);\
		(alias_) = DEREF_id (x369_ + 7);\
		(no_) = DEREF_ulong (x369_ + 8);\
		(dump_) = DEREF_ulong (x369_ + 9);\
		(defn_) = DEREF_nspace (x369_ + 10);\
	}

#define	DESTROY_id_nspace_name_etc(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x370_ = CHECK_TAG_ETC ((c_class_id), 14, 16);\
		(name_) = DEREF_hashid (x370_ + 1);\
		(storage_) = DEREF_dspec (x370_ + 2);\
		(parent_) = DEREF_nspace (x370_ + 3);\
		(loc_).line = DEREF_ulong (x370_ + 4);\
		(loc_).column = DEREF_ulong (x370_ + 5);\
		(loc_).posn = DEREF_ptr (x370_ + 6);\
		(alias_) = DEREF_id (x370_ + 7);\
		(no_) = DEREF_ulong (x370_ + 8);\
		(dump_) = DEREF_ulong (x370_ + 9);\
		(defn_) = DEREF_nspace (x370_ + 10);\
		(destroyer_) (x370_, 11u);\
	}


/* Operations for field nspace_name of union IDENTIFIER */

#define	id_nspace_name_tag				14u
#define	IS_id_nspace_name(P)				(CHECK_NULL (P)->ag_tag == 14)

#define	id_nspace_name_defn(P)				(CHECK_TAG ((P), 14) + 10)

#define MAKE_id_nspace_name(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x371_ = GEN_c_class ( 11, TYPEID_id );\
		x371_->ag_tag = 14;\
		COPY_hashid (x371_ + 1, (name_));\
		COPY_dspec (x371_ + 2, (storage_));\
		COPY_nspace (x371_ + 3, (parent_));\
		COPY_ulong (x371_ + 4, (loc_).line);\
		COPY_ulong (x371_ + 5, (loc_).column);\
		COPY_ptr (x371_ + 6, (loc_).posn);\
		COPY_id (x371_ + 7, x371_);\
		COPY_ulong (x371_ + 8, LINK_NONE);\
		COPY_ulong (x371_ + 9, LINK_NONE);\
		COPY_nspace (x371_ + 10, (defn_));\
		(c_class_id) = x371_;\
	}

#define	DECONS_id_nspace_name(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x372_ = CHECK_TAG ((c_class_id), 14);\
		(name_) = DEREF_hashid (x372_ + 1);\
		(storage_) = DEREF_dspec (x372_ + 2);\
		(parent_) = DEREF_nspace (x372_ + 3);\
		(loc_).line = DEREF_ulong (x372_ + 4);\
		(loc_).column = DEREF_ulong (x372_ + 5);\
		(loc_).posn = DEREF_ptr (x372_ + 6);\
		(alias_) = DEREF_id (x372_ + 7);\
		(no_) = DEREF_ulong (x372_ + 8);\
		(dump_) = DEREF_ulong (x372_ + 9);\
		(defn_) = DEREF_nspace (x372_ + 10);\
	}

#define	DESTROY_id_nspace_name(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x373_ = CHECK_TAG ((c_class_id), 14);\
		(name_) = DEREF_hashid (x373_ + 1);\
		(storage_) = DEREF_dspec (x373_ + 2);\
		(parent_) = DEREF_nspace (x373_ + 3);\
		(loc_).line = DEREF_ulong (x373_ + 4);\
		(loc_).column = DEREF_ulong (x373_ + 5);\
		(loc_).posn = DEREF_ptr (x373_ + 6);\
		(alias_) = DEREF_id (x373_ + 7);\
		(no_) = DEREF_ulong (x373_ + 8);\
		(dump_) = DEREF_ulong (x373_ + 9);\
		(defn_) = DEREF_nspace (x373_ + 10);\
		(destroyer_) (x373_, 11u);\
	}


/* Operations for field nspace_alias of union IDENTIFIER */

#define	id_nspace_alias_tag				15u
#define	IS_id_nspace_alias(P)				(CHECK_NULL (P)->ag_tag == 15)

#define	id_nspace_alias_defn(P)				(CHECK_TAG ((P), 15) + 10)

#define MAKE_id_nspace_alias(name_, storage_, parent_, loc_, defn_, c_class_id)\
	{\
		c_class *x374_ = GEN_c_class ( 11, TYPEID_id );\
		x374_->ag_tag = 15;\
		COPY_hashid (x374_ + 1, (name_));\
		COPY_dspec (x374_ + 2, (storage_));\
		COPY_nspace (x374_ + 3, (parent_));\
		COPY_ulong (x374_ + 4, (loc_).line);\
		COPY_ulong (x374_ + 5, (loc_).column);\
		COPY_ptr (x374_ + 6, (loc_).posn);\
		COPY_id (x374_ + 7, x374_);\
		COPY_ulong (x374_ + 8, LINK_NONE);\
		COPY_ulong (x374_ + 9, LINK_NONE);\
		COPY_nspace (x374_ + 10, (defn_));\
		(c_class_id) = x374_;\
	}

#define	DECONS_id_nspace_alias(name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x375_ = CHECK_TAG ((c_class_id), 15);\
		(name_) = DEREF_hashid (x375_ + 1);\
		(storage_) = DEREF_dspec (x375_ + 2);\
		(parent_) = DEREF_nspace (x375_ + 3);\
		(loc_).line = DEREF_ulong (x375_ + 4);\
		(loc_).column = DEREF_ulong (x375_ + 5);\
		(loc_).posn = DEREF_ptr (x375_ + 6);\
		(alias_) = DEREF_id (x375_ + 7);\
		(no_) = DEREF_ulong (x375_ + 8);\
		(dump_) = DEREF_ulong (x375_ + 9);\
		(defn_) = DEREF_nspace (x375_ + 10);\
	}

#define	DESTROY_id_nspace_alias(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id)\
	{\
		c_class *x376_ = CHECK_TAG ((c_class_id), 15);\
		(name_) = DEREF_hashid (x376_ + 1);\
		(storage_) = DEREF_dspec (x376_ + 2);\
		(parent_) = DEREF_nspace (x376_ + 3);\
		(loc_).line = DEREF_ulong (x376_ + 4);\
		(loc_).column = DEREF_ulong (x376_ + 5);\
		(loc_).posn = DEREF_ptr (x376_ + 6);\
		(alias_) = DEREF_id (x376_ + 7);\
		(no_) = DEREF_ulong (x376_ + 8);\
		(dump_) = DEREF_ulong (x376_ + 9);\
		(defn_) = DEREF_nspace (x376_ + 10);\
		(destroyer_) (x376_, 11u);\
	}


/* Operations for field set variable_etc of union IDENTIFIER */

#define	id_variable_etc_tag			19u
#define	IS_id_variable_etc(P)			((unsigned) (CHECK_NULL (P)->ag_tag - 16) < 3u)

#define	id_variable_etc_type(P)			(CHECK_TAG_ETC ((P), 16, 19) + 10)
#define	id_variable_etc_init(P)			(CHECK_TAG_ETC ((P), 16, 19) + 11)
#define	id_variable_etc_term(P)			(CHECK_TAG_ETC ((P), 16, 19) + 12)

#define MAKE_id_variable_etc(tag, name_, storage_, parent_, loc_, type_, c_class_id)\
	{\
		c_class *x377_ = GEN_c_class ( 13, TYPEID_id );\
		x377_->ag_tag = (tag);\
		COPY_hashid (x377_ + 1, (name_));\
		COPY_dspec (x377_ + 2, (storage_));\
		COPY_nspace (x377_ + 3, (parent_));\
		COPY_ulong (x377_ + 4, (loc_).line);\
		COPY_ulong (x377_ + 5, (loc_).column);\
		COPY_ptr (x377_ + 6, (loc_).posn);\
		COPY_id (x377_ + 7, x377_);\
		COPY_ulong (x377_ + 8, LINK_NONE);\
		COPY_ulong (x377_ + 9, LINK_NONE);\
		COPY_type (x377_ + 10, (type_));\
		COPY_exp (x377_ + 11, NULL_exp);\
		COPY_exp (x377_ + 12, NULL_exp);\
		(c_class_id) = CHECK_TAG_ETC (x377_, 16, 19);\
	}

#define	MODIFY_id_variable_etc(tag, c_class_id)\
	{\
		c_class *x378_ = CHECK_TAG_ETC ((c_class_id), 16, 19);\
		x378_->ag_tag = (tag);\
		(void) CHECK_TAG_ETC (x378_, 16, 19);\
	}

#define	DECONS_id_variable_etc(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x379_ = CHECK_TAG_ETC ((c_class_id), 16, 19);\
		(name_) = DEREF_hashid (x379_ + 1);\
		(storage_) = DEREF_dspec (x379_ + 2);\
		(parent_) = DEREF_nspace (x379_ + 3);\
		(loc_).line = DEREF_ulong (x379_ + 4);\
		(loc_).column = DEREF_ulong (x379_ + 5);\
		(loc_).posn = DEREF_ptr (x379_ + 6);\
		(alias_) = DEREF_id (x379_ + 7);\
		(no_) = DEREF_ulong (x379_ + 8);\
		(dump_) = DEREF_ulong (x379_ + 9);\
		(type_) = DEREF_type (x379_ + 10);\
		(init_) = DEREF_exp (x379_ + 11);\
		(term_) = DEREF_exp (x379_ + 12);\
	}

#define	DESTROY_id_variable_etc(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x380_ = CHECK_TAG_ETC ((c_class_id), 16, 19);\
		(name_) = DEREF_hashid (x380_ + 1);\
		(storage_) = DEREF_dspec (x380_ + 2);\
		(parent_) = DEREF_nspace (x380_ + 3);\
		(loc_).line = DEREF_ulong (x380_ + 4);\
		(loc_).column = DEREF_ulong (x380_ + 5);\
		(loc_).posn = DEREF_ptr (x380_ + 6);\
		(alias_) = DEREF_id (x380_ + 7);\
		(no_) = DEREF_ulong (x380_ + 8);\
		(dump_) = DEREF_ulong (x380_ + 9);\
		(type_) = DEREF_type (x380_ + 10);\
		(init_) = DEREF_exp (x380_ + 11);\
		(term_) = DEREF_exp (x380_ + 12);\
		(destroyer_) (x380_, 13u);\
	}


/* Operations for field variable of union IDENTIFIER */

#define	id_variable_tag				16u
#define	IS_id_variable(P)				(CHECK_NULL (P)->ag_tag == 16)

#define	id_variable_type(P)				(CHECK_TAG ((P), 16) + 10)
#define	id_variable_init(P)				(CHECK_TAG ((P), 16) + 11)
#define	id_variable_term(P)				(CHECK_TAG ((P), 16) + 12)

#define MAKE_id_variable(name_, storage_, parent_, loc_, type_, c_class_id)\
	{\
		c_class *x381_ = GEN_c_class ( 13, TYPEID_id );\
		x381_->ag_tag = 16;\
		COPY_hashid (x381_ + 1, (name_));\
		COPY_dspec (x381_ + 2, (storage_));\
		COPY_nspace (x381_ + 3, (parent_));\
		COPY_ulong (x381_ + 4, (loc_).line);\
		COPY_ulong (x381_ + 5, (loc_).column);\
		COPY_ptr (x381_ + 6, (loc_).posn);\
		COPY_id (x381_ + 7, x381_);\
		COPY_ulong (x381_ + 8, LINK_NONE);\
		COPY_ulong (x381_ + 9, LINK_NONE);\
		COPY_type (x381_ + 10, (type_));\
		COPY_exp (x381_ + 11, NULL_exp);\
		COPY_exp (x381_ + 12, NULL_exp);\
		(c_class_id) = x381_;\
	}

#define	DECONS_id_variable(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x382_ = CHECK_TAG ((c_class_id), 16);\
		(name_) = DEREF_hashid (x382_ + 1);\
		(storage_) = DEREF_dspec (x382_ + 2);\
		(parent_) = DEREF_nspace (x382_ + 3);\
		(loc_).line = DEREF_ulong (x382_ + 4);\
		(loc_).column = DEREF_ulong (x382_ + 5);\
		(loc_).posn = DEREF_ptr (x382_ + 6);\
		(alias_) = DEREF_id (x382_ + 7);\
		(no_) = DEREF_ulong (x382_ + 8);\
		(dump_) = DEREF_ulong (x382_ + 9);\
		(type_) = DEREF_type (x382_ + 10);\
		(init_) = DEREF_exp (x382_ + 11);\
		(term_) = DEREF_exp (x382_ + 12);\
	}

#define	DESTROY_id_variable(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x383_ = CHECK_TAG ((c_class_id), 16);\
		(name_) = DEREF_hashid (x383_ + 1);\
		(storage_) = DEREF_dspec (x383_ + 2);\
		(parent_) = DEREF_nspace (x383_ + 3);\
		(loc_).line = DEREF_ulong (x383_ + 4);\
		(loc_).column = DEREF_ulong (x383_ + 5);\
		(loc_).posn = DEREF_ptr (x383_ + 6);\
		(alias_) = DEREF_id (x383_ + 7);\
		(no_) = DEREF_ulong (x383_ + 8);\
		(dump_) = DEREF_ulong (x383_ + 9);\
		(type_) = DEREF_type (x383_ + 10);\
		(init_) = DEREF_exp (x383_ + 11);\
		(term_) = DEREF_exp (x383_ + 12);\
		(destroyer_) (x383_, 13u);\
	}


/* Operations for field parameter of union IDENTIFIER */

#define	id_parameter_tag				17u
#define	IS_id_parameter(P)				(CHECK_NULL (P)->ag_tag == 17)

#define	id_parameter_type(P)				(CHECK_TAG ((P), 17) + 10)
#define	id_parameter_init(P)				(CHECK_TAG ((P), 17) + 11)
#define	id_parameter_term(P)				(CHECK_TAG ((P), 17) + 12)

#define MAKE_id_parameter(name_, storage_, parent_, loc_, type_, c_class_id)\
	{\
		c_class *x384_ = GEN_c_class ( 13, TYPEID_id );\
		x384_->ag_tag = 17;\
		COPY_hashid (x384_ + 1, (name_));\
		COPY_dspec (x384_ + 2, (storage_));\
		COPY_nspace (x384_ + 3, (parent_));\
		COPY_ulong (x384_ + 4, (loc_).line);\
		COPY_ulong (x384_ + 5, (loc_).column);\
		COPY_ptr (x384_ + 6, (loc_).posn);\
		COPY_id (x384_ + 7, x384_);\
		COPY_ulong (x384_ + 8, LINK_NONE);\
		COPY_ulong (x384_ + 9, LINK_NONE);\
		COPY_type (x384_ + 10, (type_));\
		COPY_exp (x384_ + 11, NULL_exp);\
		COPY_exp (x384_ + 12, NULL_exp);\
		(c_class_id) = x384_;\
	}

#define	DECONS_id_parameter(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x385_ = CHECK_TAG ((c_class_id), 17);\
		(name_) = DEREF_hashid (x385_ + 1);\
		(storage_) = DEREF_dspec (x385_ + 2);\
		(parent_) = DEREF_nspace (x385_ + 3);\
		(loc_).line = DEREF_ulong (x385_ + 4);\
		(loc_).column = DEREF_ulong (x385_ + 5);\
		(loc_).posn = DEREF_ptr (x385_ + 6);\
		(alias_) = DEREF_id (x385_ + 7);\
		(no_) = DEREF_ulong (x385_ + 8);\
		(dump_) = DEREF_ulong (x385_ + 9);\
		(type_) = DEREF_type (x385_ + 10);\
		(init_) = DEREF_exp (x385_ + 11);\
		(term_) = DEREF_exp (x385_ + 12);\
	}

#define	DESTROY_id_parameter(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x386_ = CHECK_TAG ((c_class_id), 17);\
		(name_) = DEREF_hashid (x386_ + 1);\
		(storage_) = DEREF_dspec (x386_ + 2);\
		(parent_) = DEREF_nspace (x386_ + 3);\
		(loc_).line = DEREF_ulong (x386_ + 4);\
		(loc_).column = DEREF_ulong (x386_ + 5);\
		(loc_).posn = DEREF_ptr (x386_ + 6);\
		(alias_) = DEREF_id (x386_ + 7);\
		(no_) = DEREF_ulong (x386_ + 8);\
		(dump_) = DEREF_ulong (x386_ + 9);\
		(type_) = DEREF_type (x386_ + 10);\
		(init_) = DEREF_exp (x386_ + 11);\
		(term_) = DEREF_exp (x386_ + 12);\
		(destroyer_) (x386_, 13u);\
	}


/* Operations for field stat_member of union IDENTIFIER */

#define	id_stat_member_tag				18u
#define	IS_id_stat_member(P)				(CHECK_NULL (P)->ag_tag == 18)

#define	id_stat_member_type(P)				(CHECK_TAG ((P), 18) + 10)
#define	id_stat_member_init(P)				(CHECK_TAG ((P), 18) + 11)
#define	id_stat_member_term(P)				(CHECK_TAG ((P), 18) + 12)

#define MAKE_id_stat_member(name_, storage_, parent_, loc_, type_, c_class_id)\
	{\
		c_class *x387_ = GEN_c_class ( 13, TYPEID_id );\
		x387_->ag_tag = 18;\
		COPY_hashid (x387_ + 1, (name_));\
		COPY_dspec (x387_ + 2, (storage_));\
		COPY_nspace (x387_ + 3, (parent_));\
		COPY_ulong (x387_ + 4, (loc_).line);\
		COPY_ulong (x387_ + 5, (loc_).column);\
		COPY_ptr (x387_ + 6, (loc_).posn);\
		COPY_id (x387_ + 7, x387_);\
		COPY_ulong (x387_ + 8, LINK_NONE);\
		COPY_ulong (x387_ + 9, LINK_NONE);\
		COPY_type (x387_ + 10, (type_));\
		COPY_exp (x387_ + 11, NULL_exp);\
		COPY_exp (x387_ + 12, NULL_exp);\
		(c_class_id) = x387_;\
	}

#define	DECONS_id_stat_member(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x388_ = CHECK_TAG ((c_class_id), 18);\
		(name_) = DEREF_hashid (x388_ + 1);\
		(storage_) = DEREF_dspec (x388_ + 2);\
		(parent_) = DEREF_nspace (x388_ + 3);\
		(loc_).line = DEREF_ulong (x388_ + 4);\
		(loc_).column = DEREF_ulong (x388_ + 5);\
		(loc_).posn = DEREF_ptr (x388_ + 6);\
		(alias_) = DEREF_id (x388_ + 7);\
		(no_) = DEREF_ulong (x388_ + 8);\
		(dump_) = DEREF_ulong (x388_ + 9);\
		(type_) = DEREF_type (x388_ + 10);\
		(init_) = DEREF_exp (x388_ + 11);\
		(term_) = DEREF_exp (x388_ + 12);\
	}

#define	DESTROY_id_stat_member(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id)\
	{\
		c_class *x389_ = CHECK_TAG ((c_class_id), 18);\
		(name_) = DEREF_hashid (x389_ + 1);\
		(storage_) = DEREF_dspec (x389_ + 2);\
		(parent_) = DEREF_nspace (x389_ + 3);\
		(loc_).line = DEREF_ulong (x389_ + 4);\
		(loc_).column = DEREF_ulong (x389_ + 5);\
		(loc_).posn = DEREF_ptr (x389_ + 6);\
		(alias_) = DEREF_id (x389_ + 7);\
		(no_) = DEREF_ulong (x389_ + 8);\
		(dump_) = DEREF_ulong (x389_ + 9);\
		(type_) = DEREF_type (x389_ + 10);\
		(init_) = DEREF_exp (x389_ + 11);\
		(term_) = DEREF_exp (x389_ + 12);\
		(destroyer_) (x389_, 13u);\
	}


/* Operations for field weak_param of union IDENTIFIER */

#define	id_weak_param_tag				19u
#define	IS_id_weak_param(P)				(CHECK_NULL (P)->ag_tag == 19)


#define MAKE_id_weak_param(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x390_ = GEN_c_class ( 10, TYPEID_id );\
		x390_->ag_tag = 19;\
		COPY_hashid (x390_ + 1, (name_));\
		COPY_dspec (x390_ + 2, (storage_));\
		COPY_nspace (x390_ + 3, (parent_));\
		COPY_ulong (x390_ + 4, (loc_).line);\
		COPY_ulong (x390_ + 5, (loc_).column);\
		COPY_ptr (x390_ + 6, (loc_).posn);\
		COPY_id (x390_ + 7, x390_);\
		COPY_ulong (x390_ + 8, LINK_NONE);\
		COPY_ulong (x390_ + 9, LINK_NONE);\
		(c_class_id) = x390_;\
	}

#define	DECONS_id_weak_param(name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x391_ = CHECK_TAG ((c_class_id), 19);\
		(name_) = DEREF_hashid (x391_ + 1);\
		(storage_) = DEREF_dspec (x391_ + 2);\
		(parent_) = DEREF_nspace (x391_ + 3);\
		(loc_).line = DEREF_ulong (x391_ + 4);\
		(loc_).column = DEREF_ulong (x391_ + 5);\
		(loc_).posn = DEREF_ptr (x391_ + 6);\
		(alias_) = DEREF_id (x391_ + 7);\
		(no_) = DEREF_ulong (x391_ + 8);\
		(dump_) = DEREF_ulong (x391_ + 9);\
	}

#define	DESTROY_id_weak_param(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id)\
	{\
		c_class *x392_ = CHECK_TAG ((c_class_id), 19);\
		(name_) = DEREF_hashid (x392_ + 1);\
		(storage_) = DEREF_dspec (x392_ + 2);\
		(parent_) = DEREF_nspace (x392_ + 3);\
		(loc_).line = DEREF_ulong (x392_ + 4);\
		(loc_).column = DEREF_ulong (x392_ + 5);\
		(loc_).posn = DEREF_ptr (x392_ + 6);\
		(alias_) = DEREF_id (x392_ + 7);\
		(no_) = DEREF_ulong (x392_ + 8);\
		(dump_) = DEREF_ulong (x392_ + 9);\
		(destroyer_) (x392_, 10u);\
	}


/* Operations for field set function_etc of union IDENTIFIER */

#define	id_function_etc_tag			23u
#define	IS_id_function_etc(P)			((unsigned) (CHECK_NULL (P)->ag_tag - 20) < 3u)

#define	id_function_etc_type(P)			(CHECK_TAG_ETC ((P), 20, 23) + 10)
#define	id_function_etc_over(P)			(CHECK_TAG_ETC ((P), 20, 23) + 11)
#define	id_function_etc_form(P)			(CHECK_TAG_ETC ((P), 20, 23) + 12)
#define	id_function_etc_chums(P)			(CHECK_TAG_ETC ((P), 20, 23) + 13)
#define	id_function_etc_inline_def(P)			(CHECK_TAG_ETC ((P), 20, 23) + 14)
#define	id_function_etc_static_def(P)			(CHECK_TAG_ETC ((P), 20, 23) + 15)
#define	id_function_etc_static_ref(P)			(CHECK_TAG_ETC ((P), 20, 23) + 16)
#define	id_function_etc_defn(P)			(CHECK_TAG_ETC ((P), 20, 23) + 17)

#define MAKE_id_function_etc(tag, name_, storage_, parent_, loc_, type_, over_, c_class_id)\
	{\
		c_class *x393_ = GEN_c_class ( 18, TYPEID_id );\
		x393_->ag_tag = (tag);\
		COPY_hashid (x393_ + 1, (name_));\
		COPY_dspec (x393_ + 2, (storage_));\
		COPY_nspace (x393_ + 3, (parent_));\
		COPY_ulong (x393_ + 4, (loc_).line);\
		COPY_ulong (x393_ + 5, (loc_).column);\
		COPY_ptr (x393_ + 6, (loc_).posn);\
		COPY_id (x393_ + 7, x393_);\
		COPY_ulong (x393_ + 8, LINK_NONE);\
		COPY_ulong (x393_ + 9, LINK_NONE);\
		COPY_type (x393_ + 10, (type_));\
		COPY_id (x393_ + 11, (over_));\
		COPY_type (x393_ + 12, NULL_type);\
		COPY_list (x393_ + 13, NULL_list ( CLASS_TYPE ));\
		COPY_int (x393_ + 14, 0);\
		COPY_id (x393_ + 15, NULL_id);\
		COPY_id (x393_ + 16, NULL_id);\
		COPY_exp (x393_ + 17, NULL_exp);\
		(c_class_id) = CHECK_TAG_ETC (x393_, 20, 23);\
	}

#define	MODIFY_id_function_etc(tag, c_class_id)\
	{\
		c_class *x394_ = CHECK_TAG_ETC ((c_class_id), 20, 23);\
		x394_->ag_tag = (tag);\
		(void) CHECK_TAG_ETC (x394_, 20, 23);\
	}

#define	DECONS_id_function_etc(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x395_ = CHECK_TAG_ETC ((c_class_id), 20, 23);\
		(name_) = DEREF_hashid (x395_ + 1);\
		(storage_) = DEREF_dspec (x395_ + 2);\
		(parent_) = DEREF_nspace (x395_ + 3);\
		(loc_).line = DEREF_ulong (x395_ + 4);\
		(loc_).column = DEREF_ulong (x395_ + 5);\
		(loc_).posn = DEREF_ptr (x395_ + 6);\
		(alias_) = DEREF_id (x395_ + 7);\
		(no_) = DEREF_ulong (x395_ + 8);\
		(dump_) = DEREF_ulong (x395_ + 9);\
		(type_) = DEREF_type (x395_ + 10);\
		(over_) = DEREF_id (x395_ + 11);\
		(form_) = DEREF_type (x395_ + 12);\
		(chums_) = DEREF_list (x395_ + 13);\
		(inline_def_) = DEREF_int (x395_ + 14);\
		(static_def_) = DEREF_id (x395_ + 15);\
		(static_ref_) = DEREF_id (x395_ + 16);\
		(defn_) = DEREF_exp (x395_ + 17);\
	}

#define	DESTROY_id_function_etc(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x396_ = CHECK_TAG_ETC ((c_class_id), 20, 23);\
		(name_) = DEREF_hashid (x396_ + 1);\
		(storage_) = DEREF_dspec (x396_ + 2);\
		(parent_) = DEREF_nspace (x396_ + 3);\
		(loc_).line = DEREF_ulong (x396_ + 4);\
		(loc_).column = DEREF_ulong (x396_ + 5);\
		(loc_).posn = DEREF_ptr (x396_ + 6);\
		(alias_) = DEREF_id (x396_ + 7);\
		(no_) = DEREF_ulong (x396_ + 8);\
		(dump_) = DEREF_ulong (x396_ + 9);\
		(type_) = DEREF_type (x396_ + 10);\
		(over_) = DEREF_id (x396_ + 11);\
		(form_) = DEREF_type (x396_ + 12);\
		(chums_) = DEREF_list (x396_ + 13);\
		(inline_def_) = DEREF_int (x396_ + 14);\
		(static_def_) = DEREF_id (x396_ + 15);\
		(static_ref_) = DEREF_id (x396_ + 16);\
		(defn_) = DEREF_exp (x396_ + 17);\
		(destroyer_) (x396_, 18u);\
	}


/* Operations for field function of union IDENTIFIER */

#define	id_function_tag				20u
#define	IS_id_function(P)				(CHECK_NULL (P)->ag_tag == 20)

#define	id_function_type(P)				(CHECK_TAG ((P), 20) + 10)
#define	id_function_over(P)				(CHECK_TAG ((P), 20) + 11)
#define	id_function_form(P)				(CHECK_TAG ((P), 20) + 12)
#define	id_function_chums(P)				(CHECK_TAG ((P), 20) + 13)
#define	id_function_inline_def(P)				(CHECK_TAG ((P), 20) + 14)
#define	id_function_static_def(P)				(CHECK_TAG ((P), 20) + 15)
#define	id_function_static_ref(P)				(CHECK_TAG ((P), 20) + 16)
#define	id_function_defn(P)				(CHECK_TAG ((P), 20) + 17)

#define MAKE_id_function(name_, storage_, parent_, loc_, type_, over_, c_class_id)\
	{\
		c_class *x397_ = GEN_c_class ( 18, TYPEID_id );\
		x397_->ag_tag = 20;\
		COPY_hashid (x397_ + 1, (name_));\
		COPY_dspec (x397_ + 2, (storage_));\
		COPY_nspace (x397_ + 3, (parent_));\
		COPY_ulong (x397_ + 4, (loc_).line);\
		COPY_ulong (x397_ + 5, (loc_).column);\
		COPY_ptr (x397_ + 6, (loc_).posn);\
		COPY_id (x397_ + 7, x397_);\
		COPY_ulong (x397_ + 8, LINK_NONE);\
		COPY_ulong (x397_ + 9, LINK_NONE);\
		COPY_type (x397_ + 10, (type_));\
		COPY_id (x397_ + 11, (over_));\
		COPY_type (x397_ + 12, NULL_type);\
		COPY_list (x397_ + 13, NULL_list ( CLASS_TYPE ));\
		COPY_int (x397_ + 14, 0);\
		COPY_id (x397_ + 15, NULL_id);\
		COPY_id (x397_ + 16, NULL_id);\
		COPY_exp (x397_ + 17, NULL_exp);\
		(c_class_id) = x397_;\
	}

#define	DECONS_id_function(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x398_ = CHECK_TAG ((c_class_id), 20);\
		(name_) = DEREF_hashid (x398_ + 1);\
		(storage_) = DEREF_dspec (x398_ + 2);\
		(parent_) = DEREF_nspace (x398_ + 3);\
		(loc_).line = DEREF_ulong (x398_ + 4);\
		(loc_).column = DEREF_ulong (x398_ + 5);\
		(loc_).posn = DEREF_ptr (x398_ + 6);\
		(alias_) = DEREF_id (x398_ + 7);\
		(no_) = DEREF_ulong (x398_ + 8);\
		(dump_) = DEREF_ulong (x398_ + 9);\
		(type_) = DEREF_type (x398_ + 10);\
		(over_) = DEREF_id (x398_ + 11);\
		(form_) = DEREF_type (x398_ + 12);\
		(chums_) = DEREF_list (x398_ + 13);\
		(inline_def_) = DEREF_int (x398_ + 14);\
		(static_def_) = DEREF_id (x398_ + 15);\
		(static_ref_) = DEREF_id (x398_ + 16);\
		(defn_) = DEREF_exp (x398_ + 17);\
	}

#define	DESTROY_id_function(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x399_ = CHECK_TAG ((c_class_id), 20);\
		(name_) = DEREF_hashid (x399_ + 1);\
		(storage_) = DEREF_dspec (x399_ + 2);\
		(parent_) = DEREF_nspace (x399_ + 3);\
		(loc_).line = DEREF_ulong (x399_ + 4);\
		(loc_).column = DEREF_ulong (x399_ + 5);\
		(loc_).posn = DEREF_ptr (x399_ + 6);\
		(alias_) = DEREF_id (x399_ + 7);\
		(no_) = DEREF_ulong (x399_ + 8);\
		(dump_) = DEREF_ulong (x399_ + 9);\
		(type_) = DEREF_type (x399_ + 10);\
		(over_) = DEREF_id (x399_ + 11);\
		(form_) = DEREF_type (x399_ + 12);\
		(chums_) = DEREF_list (x399_ + 13);\
		(inline_def_) = DEREF_int (x399_ + 14);\
		(static_def_) = DEREF_id (x399_ + 15);\
		(static_ref_) = DEREF_id (x399_ + 16);\
		(defn_) = DEREF_exp (x399_ + 17);\
		(destroyer_) (x399_, 18u);\
	}


/* Operations for field mem_func of union IDENTIFIER */

#define	id_mem_func_tag				21u
#define	IS_id_mem_func(P)				(CHECK_NULL (P)->ag_tag == 21)

#define	id_mem_func_type(P)				(CHECK_TAG ((P), 21) + 10)
#define	id_mem_func_over(P)				(CHECK_TAG ((P), 21) + 11)
#define	id_mem_func_form(P)				(CHECK_TAG ((P), 21) + 12)
#define	id_mem_func_chums(P)				(CHECK_TAG ((P), 21) + 13)
#define	id_mem_func_inline_def(P)				(CHECK_TAG ((P), 21) + 14)
#define	id_mem_func_static_def(P)				(CHECK_TAG ((P), 21) + 15)
#define	id_mem_func_static_ref(P)				(CHECK_TAG ((P), 21) + 16)
#define	id_mem_func_defn(P)				(CHECK_TAG ((P), 21) + 17)

#define MAKE_id_mem_func(name_, storage_, parent_, loc_, type_, over_, c_class_id)\
	{\
		c_class *x400_ = GEN_c_class ( 18, TYPEID_id );\
		x400_->ag_tag = 21;\
		COPY_hashid (x400_ + 1, (name_));\
		COPY_dspec (x400_ + 2, (storage_));\
		COPY_nspace (x400_ + 3, (parent_));\
		COPY_ulong (x400_ + 4, (loc_).line);\
		COPY_ulong (x400_ + 5, (loc_).column);\
		COPY_ptr (x400_ + 6, (loc_).posn);\
		COPY_id (x400_ + 7, x400_);\
		COPY_ulong (x400_ + 8, LINK_NONE);\
		COPY_ulong (x400_ + 9, LINK_NONE);\
		COPY_type (x400_ + 10, (type_));\
		COPY_id (x400_ + 11, (over_));\
		COPY_type (x400_ + 12, NULL_type);\
		COPY_list (x400_ + 13, NULL_list ( CLASS_TYPE ));\
		COPY_int (x400_ + 14, 0);\
		COPY_id (x400_ + 15, NULL_id);\
		COPY_id (x400_ + 16, NULL_id);\
		COPY_exp (x400_ + 17, NULL_exp);\
		(c_class_id) = x400_;\
	}

#define	DECONS_id_mem_func(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x401_ = CHECK_TAG ((c_class_id), 21);\
		(name_) = DEREF_hashid (x401_ + 1);\
		(storage_) = DEREF_dspec (x401_ + 2);\
		(parent_) = DEREF_nspace (x401_ + 3);\
		(loc_).line = DEREF_ulong (x401_ + 4);\
		(loc_).column = DEREF_ulong (x401_ + 5);\
		(loc_).posn = DEREF_ptr (x401_ + 6);\
		(alias_) = DEREF_id (x401_ + 7);\
		(no_) = DEREF_ulong (x401_ + 8);\
		(dump_) = DEREF_ulong (x401_ + 9);\
		(type_) = DEREF_type (x401_ + 10);\
		(over_) = DEREF_id (x401_ + 11);\
		(form_) = DEREF_type (x401_ + 12);\
		(chums_) = DEREF_list (x401_ + 13);\
		(inline_def_) = DEREF_int (x401_ + 14);\
		(static_def_) = DEREF_id (x401_ + 15);\
		(static_ref_) = DEREF_id (x401_ + 16);\
		(defn_) = DEREF_exp (x401_ + 17);\
	}

#define	DESTROY_id_mem_func(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x402_ = CHECK_TAG ((c_class_id), 21);\
		(name_) = DEREF_hashid (x402_ + 1);\
		(storage_) = DEREF_dspec (x402_ + 2);\
		(parent_) = DEREF_nspace (x402_ + 3);\
		(loc_).line = DEREF_ulong (x402_ + 4);\
		(loc_).column = DEREF_ulong (x402_ + 5);\
		(loc_).posn = DEREF_ptr (x402_ + 6);\
		(alias_) = DEREF_id (x402_ + 7);\
		(no_) = DEREF_ulong (x402_ + 8);\
		(dump_) = DEREF_ulong (x402_ + 9);\
		(type_) = DEREF_type (x402_ + 10);\
		(over_) = DEREF_id (x402_ + 11);\
		(form_) = DEREF_type (x402_ + 12);\
		(chums_) = DEREF_list (x402_ + 13);\
		(inline_def_) = DEREF_int (x402_ + 14);\
		(static_def_) = DEREF_id (x402_ + 15);\
		(static_ref_) = DEREF_id (x402_ + 16);\
		(defn_) = DEREF_exp (x402_ + 17);\
		(destroyer_) (x402_, 18u);\
	}


/* Operations for field stat_mem_func of union IDENTIFIER */

#define	id_stat_mem_func_tag				22u
#define	IS_id_stat_mem_func(P)				(CHECK_NULL (P)->ag_tag == 22)

#define	id_stat_mem_func_type(P)				(CHECK_TAG ((P), 22) + 10)
#define	id_stat_mem_func_over(P)				(CHECK_TAG ((P), 22) + 11)
#define	id_stat_mem_func_form(P)				(CHECK_TAG ((P), 22) + 12)
#define	id_stat_mem_func_chums(P)				(CHECK_TAG ((P), 22) + 13)
#define	id_stat_mem_func_inline_def(P)				(CHECK_TAG ((P), 22) + 14)
#define	id_stat_mem_func_static_def(P)				(CHECK_TAG ((P), 22) + 15)
#define	id_stat_mem_func_static_ref(P)				(CHECK_TAG ((P), 22) + 16)
#define	id_stat_mem_func_defn(P)				(CHECK_TAG ((P), 22) + 17)

#define MAKE_id_stat_mem_func(name_, storage_, parent_, loc_, type_, over_, c_class_id)\
	{\
		c_class *x403_ = GEN_c_class ( 18, TYPEID_id );\
		x403_->ag_tag = 22;\
		COPY_hashid (x403_ + 1, (name_));\
		COPY_dspec (x403_ + 2, (storage_));\
		COPY_nspace (x403_ + 3, (parent_));\
		COPY_ulong (x403_ + 4, (loc_).line);\
		COPY_ulong (x403_ + 5, (loc_).column);\
		COPY_ptr (x403_ + 6, (loc_).posn);\
		COPY_id (x403_ + 7, x403_);\
		COPY_ulong (x403_ + 8, LINK_NONE);\
		COPY_ulong (x403_ + 9, LINK_NONE);\
		COPY_type (x403_ + 10, (type_));\
		COPY_id (x403_ + 11, (over_));\
		COPY_type (x403_ + 12, NULL_type);\
		COPY_list (x403_ + 13, NULL_list ( CLASS_TYPE ));\
		COPY_int (x403_ + 14, 0);\
		COPY_id (x403_ + 15, NULL_id);\
		COPY_id (x403_ + 16, NULL_id);\
		COPY_exp (x403_ + 17, NULL_exp);\
		(c_class_id) = x403_;\
	}

#define	DECONS_id_stat_mem_func(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x404_ = CHECK_TAG ((c_class_id), 22);\
		(name_) = DEREF_hashid (x404_ + 1);\
		(storage_) = DEREF_dspec (x404_ + 2);\
		(parent_) = DEREF_nspace (x404_ + 3);\
		(loc_).line = DEREF_ulong (x404_ + 4);\
		(loc_).column = DEREF_ulong (x404_ + 5);\
		(loc_).posn = DEREF_ptr (x404_ + 6);\
		(alias_) = DEREF_id (x404_ + 7);\
		(no_) = DEREF_ulong (x404_ + 8);\
		(dump_) = DEREF_ulong (x404_ + 9);\
		(type_) = DEREF_type (x404_ + 10);\
		(over_) = DEREF_id (x404_ + 11);\
		(form_) = DEREF_type (x404_ + 12);\
		(chums_) = DEREF_list (x404_ + 13);\
		(inline_def_) = DEREF_int (x404_ + 14);\
		(static_def_) = DEREF_id (x404_ + 15);\
		(static_ref_) = DEREF_id (x404_ + 16);\
		(defn_) = DEREF_exp (x404_ + 17);\
	}

#define	DESTROY_id_stat_mem_func(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, inline_def_, static_def_, static_ref_, defn_, c_class_id)\
	{\
		c_class *x405_ = CHECK_TAG ((c_class_id), 22);\
		(name_) = DEREF_hashid (x405_ + 1);\
		(storage_) = DEREF_dspec (x405_ + 2);\
		(parent_) = DEREF_nspace (x405_ + 3);\
		(loc_).line = DEREF_ulong (x405_ + 4);\
		(loc_).column = DEREF_ulong (x405_ + 5);\
		(loc_).posn = DEREF_ptr (x405_ + 6);\
		(alias_) = DEREF_id (x405_ + 7);\
		(no_) = DEREF_ulong (x405_ + 8);\
		(dump_) = DEREF_ulong (x405_ + 9);\
		(type_) = DEREF_type (x405_ + 10);\
		(over_) = DEREF_id (x405_ + 11);\
		(form_) = DEREF_type (x405_ + 12);\
		(chums_) = DEREF_list (x405_ + 13);\
		(inline_def_) = DEREF_int (x405_ + 14);\
		(static_def_) = DEREF_id (x405_ + 15);\
		(static_ref_) = DEREF_id (x405_ + 16);\
		(defn_) = DEREF_exp (x405_ + 17);\
		(destroyer_) (x405_, 18u);\
	}


/* Operations for field member of union IDENTIFIER */

#define	id_member_tag				23u
#define	IS_id_member(P)				(CHECK_NULL (P)->ag_tag == 23)

#define	id_member_type(P)				(CHECK_TAG ((P), 23) + 10)
#define	id_member_off(P)				(CHECK_TAG ((P), 23) + 11)
#define	id_member_base(P)				(CHECK_TAG ((P), 23) + 12)

#define MAKE_id_member(name_, storage_, parent_, loc_, type_, c_class_id)\
	{\
		c_class *x406_ = GEN_c_class ( 13, TYPEID_id );\
		x406_->ag_tag = 23;\
		COPY_hashid (x406_ + 1, (name_));\
		COPY_dspec (x406_ + 2, (storage_));\
		COPY_nspace (x406_ + 3, (parent_));\
		COPY_ulong (x406_ + 4, (loc_).line);\
		COPY_ulong (x406_ + 5, (loc_).column);\
		COPY_ptr (x406_ + 6, (loc_).posn);\
		COPY_id (x406_ + 7, x406_);\
		COPY_ulong (x406_ + 8, LINK_NONE);\
		COPY_ulong (x406_ + 9, LINK_NONE);\
		COPY_type (x406_ + 10, (type_));\
		COPY_off (x406_ + 11, NULL_off);\
		COPY_graph (x406_ + 12, NULL_graph);\
		(c_class_id) = x406_;\
	}

#define	DECONS_id_member(name_, storage_, parent_, loc_, alias_, no_, dump_, type_, off_, base_, c_class_id)\
	{\
		c_class *x407_ = CHECK_TAG ((c_class_id), 23);\
		(name_) = DEREF_hashid (x407_ + 1);\
		(storage_) = DEREF_dspec (x407_ + 2);\
		(parent_) = DEREF_nspace (x407_ + 3);\
		(loc_).line = DEREF_ulong (x407_ + 4);\
		(loc_).column = DEREF_ulong (x407_ + 5);\
		(loc_).posn = DEREF_ptr (x407_ + 6);\
		(alias_) = DEREF_id (x407_ + 7);\
		(no_) = DEREF_ulong (x407_ + 8);\
		(dump_) = DEREF_ulong (x407_ + 9);\
		(type_) = DEREF_type (x407_ + 10);\
		(off_) = DEREF_off (x407_ + 11);\
		(base_) = DEREF_graph (x407_ + 12);\
	}

#define	DESTROY_id_member(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, off_, base_, c_class_id)\
	{\
		c_class *x408_ = CHECK_TAG ((c_class_id), 23);\
		(name_) = DEREF_hashid (x408_ + 1);\
		(storage_) = DEREF_dspec (x408_ + 2);\
		(parent_) = DEREF_nspace (x408_ + 3);\
		(loc_).line = DEREF_ulong (x408_ + 4);\
		(loc_).column = DEREF_ulong (x408_ + 5);\
		(loc_).posn = DEREF_ptr (x408_ + 6);\
		(alias_) = DEREF_id (x408_ + 7);\
		(no_) = DEREF_ulong (x408_ + 8);\
		(dump_) = DEREF_ulong (x408_ + 9);\
		(type_) = DEREF_type (x408_ + 10);\
		(off_) = DEREF_off (x408_ + 11);\
		(base_) = DEREF_graph (x408_ + 12);\
		(destroyer_) (x408_, 13u);\
	}


/* Operations for field enumerator of union IDENTIFIER */

#define	id_enumerator_tag				24u
#define	IS_id_enumerator(P)				(CHECK_NULL (P)->ag_tag == 24)

#define	id_enumerator_etype(P)				(CHECK_TAG ((P), 24) + 10)
#define	id_enumerator_value(P)				(CHECK_TAG ((P), 24) + 11)

#define MAKE_id_enumerator(name_, storage_, parent_, loc_, etype_, value_, c_class_id)\
	{\
		c_class *x409_ = GEN_c_class ( 12, TYPEID_id );\
		x409_->ag_tag = 24;\
		COPY_hashid (x409_ + 1, (name_));\
		COPY_dspec (x409_ + 2, (storage_));\
		COPY_nspace (x409_ + 3, (parent_));\
		COPY_ulong (x409_ + 4, (loc_).line);\
		COPY_ulong (x409_ + 5, (loc_).column);\
		COPY_ptr (x409_ + 6, (loc_).posn);\
		COPY_id (x409_ + 7, x409_);\
		COPY_ulong (x409_ + 8, LINK_NONE);\
		COPY_ulong (x409_ + 9, LINK_NONE);\
		COPY_type (x409_ + 10, (etype_));\
		COPY_exp (x409_ + 11, (value_));\
		(c_class_id) = x409_;\
	}

#define	DECONS_id_enumerator(name_, storage_, parent_, loc_, alias_, no_, dump_, etype_, value_, c_class_id)\
	{\
		c_class *x410_ = CHECK_TAG ((c_class_id), 24);\
		(name_) = DEREF_hashid (x410_ + 1);\
		(storage_) = DEREF_dspec (x410_ + 2);\
		(parent_) = DEREF_nspace (x410_ + 3);\
		(loc_).line = DEREF_ulong (x410_ + 4);\
		(loc_).column = DEREF_ulong (x410_ + 5);\
		(loc_).posn = DEREF_ptr (x410_ + 6);\
		(alias_) = DEREF_id (x410_ + 7);\
		(no_) = DEREF_ulong (x410_ + 8);\
		(dump_) = DEREF_ulong (x410_ + 9);\
		(etype_) = DEREF_type (x410_ + 10);\
		(value_) = DEREF_exp (x410_ + 11);\
	}

#define	DESTROY_id_enumerator(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, etype_, value_, c_class_id)\
	{\
		c_class *x411_ = CHECK_TAG ((c_class_id), 24);\
		(name_) = DEREF_hashid (x411_ + 1);\
		(storage_) = DEREF_dspec (x411_ + 2);\
		(parent_) = DEREF_nspace (x411_ + 3);\
		(loc_).line = DEREF_ulong (x411_ + 4);\
		(loc_).column = DEREF_ulong (x411_ + 5);\
		(loc_).posn = DEREF_ptr (x411_ + 6);\
		(alias_) = DEREF_id (x411_ + 7);\
		(no_) = DEREF_ulong (x411_ + 8);\
		(dump_) = DEREF_ulong (x411_ + 9);\
		(etype_) = DEREF_type (x411_ + 10);\
		(value_) = DEREF_exp (x411_ + 11);\
		(destroyer_) (x411_, 12u);\
	}


/* Operations for field label of union IDENTIFIER */

#define	id_label_tag				25u
#define	IS_id_label(P)				(CHECK_NULL (P)->ag_tag == 25)

#define	id_label_op(P)				(CHECK_TAG ((P), 25) + 10)
#define	id_label_stmt(P)				(CHECK_TAG ((P), 25) + 11)
#define	id_label_gotos(P)				(CHECK_TAG ((P), 25) + 12)
#define	id_label_vars(P)				(CHECK_TAG ((P), 25) + 13)

#define MAKE_id_label(name_, storage_, parent_, loc_, op_, c_class_id)\
	{\
		c_class *x412_ = GEN_c_class ( 14, TYPEID_id );\
		x412_->ag_tag = 25;\
		COPY_hashid (x412_ + 1, (name_));\
		COPY_dspec (x412_ + 2, (storage_));\
		COPY_nspace (x412_ + 3, (parent_));\
		COPY_ulong (x412_ + 4, (loc_).line);\
		COPY_ulong (x412_ + 5, (loc_).column);\
		COPY_ptr (x412_ + 6, (loc_).posn);\
		COPY_id (x412_ + 7, x412_);\
		COPY_ulong (x412_ + 8, LINK_NONE);\
		COPY_ulong (x412_ + 9, LINK_NONE);\
		COPY_int (x412_ + 10, (op_));\
		COPY_exp (x412_ + 11, NULL_exp);\
		COPY_exp (x412_ + 12, NULL_exp);\
		COPY_list (x412_ + 13, NULL_list ( VARIABLE ));\
		(c_class_id) = x412_;\
	}

#define	DECONS_id_label(name_, storage_, parent_, loc_, alias_, no_, dump_, op_, stmt_, gotos_, vars_, c_class_id)\
	{\
		c_class *x413_ = CHECK_TAG ((c_class_id), 25);\
		(name_) = DEREF_hashid (x413_ + 1);\
		(storage_) = DEREF_dspec (x413_ + 2);\
		(parent_) = DEREF_nspace (x413_ + 3);\
		(loc_).line = DEREF_ulong (x413_ + 4);\
		(loc_).column = DEREF_ulong (x413_ + 5);\
		(loc_).posn = DEREF_ptr (x413_ + 6);\
		(alias_) = DEREF_id (x413_ + 7);\
		(no_) = DEREF_ulong (x413_ + 8);\
		(dump_) = DEREF_ulong (x413_ + 9);\
		(op_) = DEREF_int (x413_ + 10);\
		(stmt_) = DEREF_exp (x413_ + 11);\
		(gotos_) = DEREF_exp (x413_ + 12);\
		(vars_) = DEREF_list (x413_ + 13);\
	}

#define	DESTROY_id_label(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, op_, stmt_, gotos_, vars_, c_class_id)\
	{\
		c_class *x414_ = CHECK_TAG ((c_class_id), 25);\
		(name_) = DEREF_hashid (x414_ + 1);\
		(storage_) = DEREF_dspec (x414_ + 2);\
		(parent_) = DEREF_nspace (x414_ + 3);\
		(loc_).line = DEREF_ulong (x414_ + 4);\
		(loc_).column = DEREF_ulong (x414_ + 5);\
		(loc_).posn = DEREF_ptr (x414_ + 6);\
		(alias_) = DEREF_id (x414_ + 7);\
		(no_) = DEREF_ulong (x414_ + 8);\
		(dump_) = DEREF_ulong (x414_ + 9);\
		(op_) = DEREF_int (x414_ + 10);\
		(stmt_) = DEREF_exp (x414_ + 11);\
		(gotos_) = DEREF_exp (x414_ + 12);\
		(vars_) = DEREF_list (x414_ + 13);\
		(destroyer_) (x414_, 14u);\
	}


/* Operations for field token of union IDENTIFIER */

#define	id_token_tag				26u
#define	IS_id_token(P)				(CHECK_NULL (P)->ag_tag == 26)

#define	id_token_sort(P)				(CHECK_TAG ((P), 26) + 10)
#define	id_token_alt(P)				(CHECK_TAG ((P), 26) + 11)

#define MAKE_id_token(name_, storage_, parent_, loc_, sort_, alt_, c_class_id)\
	{\
		c_class *x415_ = GEN_c_class ( 12, TYPEID_id );\
		x415_->ag_tag = 26;\
		COPY_hashid (x415_ + 1, (name_));\
		COPY_dspec (x415_ + 2, (storage_));\
		COPY_nspace (x415_ + 3, (parent_));\
		COPY_ulong (x415_ + 4, (loc_).line);\
		COPY_ulong (x415_ + 5, (loc_).column);\
		COPY_ptr (x415_ + 6, (loc_).posn);\
		COPY_id (x415_ + 7, x415_);\
		COPY_ulong (x415_ + 8, LINK_NONE);\
		COPY_ulong (x415_ + 9, LINK_NONE);\
		COPY_tok (x415_ + 10, (sort_));\
		COPY_id (x415_ + 11, (alt_));\
		(c_class_id) = x415_;\
	}

#define	DECONS_id_token(name_, storage_, parent_, loc_, alias_, no_, dump_, sort_, alt_, c_class_id)\
	{\
		c_class *x416_ = CHECK_TAG ((c_class_id), 26);\
		(name_) = DEREF_hashid (x416_ + 1);\
		(storage_) = DEREF_dspec (x416_ + 2);\
		(parent_) = DEREF_nspace (x416_ + 3);\
		(loc_).line = DEREF_ulong (x416_ + 4);\
		(loc_).column = DEREF_ulong (x416_ + 5);\
		(loc_).posn = DEREF_ptr (x416_ + 6);\
		(alias_) = DEREF_id (x416_ + 7);\
		(no_) = DEREF_ulong (x416_ + 8);\
		(dump_) = DEREF_ulong (x416_ + 9);\
		(sort_) = DEREF_tok (x416_ + 10);\
		(alt_) = DEREF_id (x416_ + 11);\
	}

#define	DESTROY_id_token(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, sort_, alt_, c_class_id)\
	{\
		c_class *x417_ = CHECK_TAG ((c_class_id), 26);\
		(name_) = DEREF_hashid (x417_ + 1);\
		(storage_) = DEREF_dspec (x417_ + 2);\
		(parent_) = DEREF_nspace (x417_ + 3);\
		(loc_).line = DEREF_ulong (x417_ + 4);\
		(loc_).column = DEREF_ulong (x417_ + 5);\
		(loc_).posn = DEREF_ptr (x417_ + 6);\
		(alias_) = DEREF_id (x417_ + 7);\
		(no_) = DEREF_ulong (x417_ + 8);\
		(dump_) = DEREF_ulong (x417_ + 9);\
		(sort_) = DEREF_tok (x417_ + 10);\
		(alt_) = DEREF_id (x417_ + 11);\
		(destroyer_) (x417_, 12u);\
	}


/* Operations for field ambig of union IDENTIFIER */

#define	id_ambig_tag				27u
#define	IS_id_ambig(P)				(CHECK_NULL (P)->ag_tag == 27)

#define	id_ambig_ids(P)				(CHECK_TAG ((P), 27) + 10)
#define	id_ambig_over(P)				(CHECK_TAG ((P), 27) + 11)

#define MAKE_id_ambig(name_, storage_, parent_, loc_, ids_, over_, c_class_id)\
	{\
		c_class *x418_ = GEN_c_class ( 12, TYPEID_id );\
		x418_->ag_tag = 27;\
		COPY_hashid (x418_ + 1, (name_));\
		COPY_dspec (x418_ + 2, (storage_));\
		COPY_nspace (x418_ + 3, (parent_));\
		COPY_ulong (x418_ + 4, (loc_).line);\
		COPY_ulong (x418_ + 5, (loc_).column);\
		COPY_ptr (x418_ + 6, (loc_).posn);\
		COPY_id (x418_ + 7, x418_);\
		COPY_ulong (x418_ + 8, LINK_NONE);\
		COPY_ulong (x418_ + 9, LINK_NONE);\
		COPY_list (x418_ + 10, (ids_));\
		COPY_int (x418_ + 11, (over_));\
		(c_class_id) = x418_;\
	}

#define	DECONS_id_ambig(name_, storage_, parent_, loc_, alias_, no_, dump_, ids_, over_, c_class_id)\
	{\
		c_class *x419_ = CHECK_TAG ((c_class_id), 27);\
		(name_) = DEREF_hashid (x419_ + 1);\
		(storage_) = DEREF_dspec (x419_ + 2);\
		(parent_) = DEREF_nspace (x419_ + 3);\
		(loc_).line = DEREF_ulong (x419_ + 4);\
		(loc_).column = DEREF_ulong (x419_ + 5);\
		(loc_).posn = DEREF_ptr (x419_ + 6);\
		(alias_) = DEREF_id (x419_ + 7);\
		(no_) = DEREF_ulong (x419_ + 8);\
		(dump_) = DEREF_ulong (x419_ + 9);\
		(ids_) = DEREF_list (x419_ + 10);\
		(over_) = DEREF_int (x419_ + 11);\
	}

#define	DESTROY_id_ambig(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, ids_, over_, c_class_id)\
	{\
		c_class *x420_ = CHECK_TAG ((c_class_id), 27);\
		(name_) = DEREF_hashid (x420_ + 1);\
		(storage_) = DEREF_dspec (x420_ + 2);\
		(parent_) = DEREF_nspace (x420_ + 3);\
		(loc_).line = DEREF_ulong (x420_ + 4);\
		(loc_).column = DEREF_ulong (x420_ + 5);\
		(loc_).posn = DEREF_ptr (x420_ + 6);\
		(alias_) = DEREF_id (x420_ + 7);\
		(no_) = DEREF_ulong (x420_ + 8);\
		(dump_) = DEREF_ulong (x420_ + 9);\
		(ids_) = DEREF_list (x420_ + 10);\
		(over_) = DEREF_int (x420_ + 11);\
		(destroyer_) (x420_, 12u);\
	}


/* Operations for field undef of union IDENTIFIER */

#define	id_undef_tag				28u
#define	IS_id_undef(P)				(CHECK_NULL (P)->ag_tag == 28)

#define	id_undef_form(P)				(CHECK_TAG ((P), 28) + 10)

#define MAKE_id_undef(name_, storage_, parent_, loc_, c_class_id)\
	{\
		c_class *x421_ = GEN_c_class ( 11, TYPEID_id );\
		x421_->ag_tag = 28;\
		COPY_hashid (x421_ + 1, (name_));\
		COPY_dspec (x421_ + 2, (storage_));\
		COPY_nspace (x421_ + 3, (parent_));\
		COPY_ulong (x421_ + 4, (loc_).line);\
		COPY_ulong (x421_ + 5, (loc_).column);\
		COPY_ptr (x421_ + 6, (loc_).posn);\
		COPY_id (x421_ + 7, x421_);\
		COPY_ulong (x421_ + 8, LINK_NONE);\
		COPY_ulong (x421_ + 9, LINK_NONE);\
		COPY_type (x421_ + 10, NULL_type);\
		(c_class_id) = x421_;\
	}

#define	DECONS_id_undef(name_, storage_, parent_, loc_, alias_, no_, dump_, form_, c_class_id)\
	{\
		c_class *x422_ = CHECK_TAG ((c_class_id), 28);\
		(name_) = DEREF_hashid (x422_ + 1);\
		(storage_) = DEREF_dspec (x422_ + 2);\
		(parent_) = DEREF_nspace (x422_ + 3);\
		(loc_).line = DEREF_ulong (x422_ + 4);\
		(loc_).column = DEREF_ulong (x422_ + 5);\
		(loc_).posn = DEREF_ptr (x422_ + 6);\
		(alias_) = DEREF_id (x422_ + 7);\
		(no_) = DEREF_ulong (x422_ + 8);\
		(dump_) = DEREF_ulong (x422_ + 9);\
		(form_) = DEREF_type (x422_ + 10);\
	}

#define	DESTROY_id_undef(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, form_, c_class_id)\
	{\
		c_class *x423_ = CHECK_TAG ((c_class_id), 28);\
		(name_) = DEREF_hashid (x423_ + 1);\
		(storage_) = DEREF_dspec (x423_ + 2);\
		(parent_) = DEREF_nspace (x423_ + 3);\
		(loc_).line = DEREF_ulong (x423_ + 4);\
		(loc_).column = DEREF_ulong (x423_ + 5);\
		(loc_).posn = DEREF_ptr (x423_ + 6);\
		(alias_) = DEREF_id (x423_ + 7);\
		(no_) = DEREF_ulong (x423_ + 8);\
		(dump_) = DEREF_ulong (x423_ + 9);\
		(form_) = DEREF_type (x423_ + 10);\
		(destroyer_) (x423_, 11u);\
	}


/* Operations for field pending of union IDENTIFIER */

#define	id_pending_tag				29u
#define	IS_id_pending(P)				(CHECK_NULL (P)->ag_tag == 29)

#define	id_pending_itag(P)				(CHECK_TAG ((P), 29) + 10)
#define	id_pending_type(P)				(CHECK_TAG ((P), 29) + 11)

#define MAKE_id_pending(name_, storage_, parent_, loc_, itag_, type_, c_class_id)\
	{\
		c_class *x424_ = GEN_c_class ( 12, TYPEID_id );\
		x424_->ag_tag = 29;\
		COPY_hashid (x424_ + 1, (name_));\
		COPY_dspec (x424_ + 2, (storage_));\
		COPY_nspace (x424_ + 3, (parent_));\
		COPY_ulong (x424_ + 4, (loc_).line);\
		COPY_ulong (x424_ + 5, (loc_).column);\
		COPY_ptr (x424_ + 6, (loc_).posn);\
		COPY_id (x424_ + 7, x424_);\
		COPY_ulong (x424_ + 8, LINK_NONE);\
		COPY_ulong (x424_ + 9, LINK_NONE);\
		COPY_unsigned (x424_ + 10, (itag_));\
		COPY_type (x424_ + 11, (type_));\
		(c_class_id) = x424_;\
	}

#define	DECONS_id_pending(name_, storage_, parent_, loc_, alias_, no_, dump_, itag_, type_, c_class_id)\
	{\
		c_class *x425_ = CHECK_TAG ((c_class_id), 29);\
		(name_) = DEREF_hashid (x425_ + 1);\
		(storage_) = DEREF_dspec (x425_ + 2);\
		(parent_) = DEREF_nspace (x425_ + 3);\
		(loc_).line = DEREF_ulong (x425_ + 4);\
		(loc_).column = DEREF_ulong (x425_ + 5);\
		(loc_).posn = DEREF_ptr (x425_ + 6);\
		(alias_) = DEREF_id (x425_ + 7);\
		(no_) = DEREF_ulong (x425_ + 8);\
		(dump_) = DEREF_ulong (x425_ + 9);\
		(itag_) = DEREF_unsigned (x425_ + 10);\
		(type_) = DEREF_type (x425_ + 11);\
	}

#define	DESTROY_id_pending(destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, itag_, type_, c_class_id)\
	{\
		c_class *x426_ = CHECK_TAG ((c_class_id), 29);\
		(name_) = DEREF_hashid (x426_ + 1);\
		(storage_) = DEREF_dspec (x426_ + 2);\
		(parent_) = DEREF_nspace (x426_ + 3);\
		(loc_).line = DEREF_ulong (x426_ + 4);\
		(loc_).column = DEREF_ulong (x426_ + 5);\
		(loc_).posn = DEREF_ptr (x426_ + 6);\
		(alias_) = DEREF_id (x426_ + 7);\
		(no_) = DEREF_ulong (x426_ + 8);\
		(dump_) = DEREF_ulong (x426_ + 9);\
		(itag_) = DEREF_unsigned (x426_ + 10);\
		(type_) = DEREF_type (x426_ + 11);\
		(destroyer_) (x426_, 12u);\
	}


#endif


syntax highlighted by Code2HTML, v. 0.9.1