Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*
* Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.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,
* 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.
* 3. Neither the name of The TenDRA Project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific, prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``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 COPYRIGHT HOLDERS OR
* CONTRIBUTORS 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.
*
* $Id$
*/
/*
Crown Copyright (c) 1997
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.
*/
/* AUTOMATICALLY GENERATED BY make_tdf VERSION 2.0 FROM TDF 4.1 */
#ifndef EXTERNS_INCLUDED
#define EXTERNS_INCLUDED
/* CONSTRUCTS FOR ACCESS */
extern access f_access_apply_token(token, bitstream);
extern access f_access_cond(exp, bitstream, bitstream);
extern access f_add_accesses(access, access);
extern access f_constant;
extern access f_long_jump_access;
extern access f_no_other_read;
extern access f_no_other_write;
extern access f_out_par;
extern access f_preserve;
extern access f_register;
extern access f_standard_access;
extern access f_used_as_volatile;
extern access f_visible;
extern access f_dummy_access;
extern void init_access(void);
/* CONSTRUCTS FOR ACCESS_OPTION */
extern access_option yes_access_option(access);
extern access_option no_access_option;
extern void init_access_option(void);
/* CONSTRUCTS FOR AL_TAG */
extern al_tag f_al_tag_apply_token(token, bitstream);
extern al_tag f_make_al_tag(tdfint);
extern al_tag f_dummy_al_tag;
extern void init_al_tag(void);
/* CONSTRUCTS FOR AL_TAGDEF */
extern al_tagdef f_make_al_tagdef(tdfint, alignment);
extern al_tagdef f_dummy_al_tagdef;
extern void init_al_tagdef(void);
/* CONSTRUCTS FOR AL_TAGDEF_LIST */
extern al_tagdef_list new_al_tagdef_list(int);
extern al_tagdef_list add_al_tagdef_list(al_tagdef_list, al_tagdef, int);
extern void init_al_tagdef_list(void);
/* CONSTRUCTS FOR AL_TAGDEF_PROPS */
extern al_tagdef_props f_make_al_tagdefs(tdfint, al_tagdef_list);
extern al_tagdef_props f_dummy_al_tagdef_props;
extern void init_al_tagdef_props(void);
/* CONSTRUCTS FOR ALIGNMENT */
extern alignment f_alignment_apply_token(token, bitstream);
extern alignment f_alignment_cond(exp, bitstream, bitstream);
extern alignment f_alignment(shape);
extern alignment f_alloca_alignment;
extern alignment f_callees_alignment(bool);
extern alignment f_callers_alignment(bool);
extern alignment f_code_alignment;
extern alignment f_locals_alignment;
extern alignment f_obtain_al_tag(al_tag);
extern alignment f_parameter_alignment(shape);
extern alignment f_unite_alignments(alignment, alignment);
extern alignment f_var_param_alignment;
extern alignment f_dummy_alignment;
extern void init_alignment(void);
/* CONSTRUCTS FOR BITFIELD_VARIETY */
extern bitfield_variety f_bfvar_apply_token(token, bitstream);
extern bitfield_variety f_bfvar_cond(exp, bitstream, bitstream);
extern bitfield_variety f_bfvar_bits(bool, nat);
extern bitfield_variety f_dummy_bitfield_variety;
extern void init_bitfield_variety(void);
/* CONSTRUCTS FOR BOOL */
extern bool f_bool_apply_token(token, bitstream);
extern bool f_bool_cond(exp, bitstream, bitstream);
extern bool f_false;
extern bool f_true;
extern bool f_dummy_bool;
extern void init_bool(void);
/* CONSTRUCTS FOR BOOL_OPTION */
extern bool_option yes_bool_option(bool);
extern bool_option no_bool_option;
extern void init_bool_option(void);
/* CONSTRUCTS FOR CALLEES */
extern callees f_make_callee_list(exp_list);
extern callees f_make_dynamic_callees(exp, exp);
extern callees f_same_callees;
extern callees f_dummy_callees;
extern void init_callees(void);
/* CONSTRUCTS FOR CAPSULE */
extern void start_make_capsule(tdfident_list, capsule_link_list);
extern capsule f_make_capsule(tdfident_list, capsule_link_list,
extern_link_list, group_list);
extern capsule f_dummy_capsule;
extern void init_capsule(void);
/* CONSTRUCTS FOR CAPSULE_LINK */
extern capsule_link f_make_capsule_link(tdfident, tdfint);
extern capsule_link f_dummy_capsule_link;
extern void init_capsule_link(void);
/* CONSTRUCTS FOR CAPSULE_LINK_LIST */
extern capsule_link_list new_capsule_link_list(int);
extern capsule_link_list add_capsule_link_list(capsule_link_list,
capsule_link, int);
extern void init_capsule_link_list(void);
/* CONSTRUCTS FOR CASELIM */
extern caselim f_make_caselim(label, signed_nat, signed_nat);
extern caselim f_dummy_caselim;
extern void init_caselim(void);
/* CONSTRUCTS FOR CASELIM_LIST */
extern caselim_list new_caselim_list(int);
extern caselim_list add_caselim_list(caselim_list, caselim, int);
extern void init_caselim_list(void);
/* CONSTRUCTS FOR DG */
extern dg f_dg_apply_token(token, bitstream);
extern dg f_make_tag_dg(dg_tag, dg);
extern dg f_abortable_part_dg(dg_sourcepos, bool);
extern dg f_accept_dg(dg_sourcepos, dg_tag, dg_name_list, bool, dg_tag_option);
extern dg f_barrier_dg(dg_sourcepos, dg_tag);
extern dg f_branch_dg(dg_sourcepos);
extern dg f_call_dg(dg_idname_option, dg_sourcepos, nat_option, dg_tag_option,
dg_tag_option);
extern dg f_compilation_dg(dg_tag);
extern dg f_destructor_dg(dg_sourcepos, exp_option);
extern dg f_exception_handler_dg(dg_name_option);
extern dg f_exception_scope_dg(dg_tag_list);
extern dg f_inline_call_dg(dg_tag, dg_name_list, nat_option);
extern dg f_inline_result_dg(dg_tag);
extern dg f_inlined_dg(dg, dg_tag);
extern dg f_jump_dg(dg_sourcepos);
extern dg f_label_dg(dg_idname, dg_sourcepos);
extern dg f_lexical_block_dg(dg_idname_option, dg_sourcepos);
extern dg f_list_dg(dg_list);
extern dg f_long_jump_dg(dg_sourcepos);
extern dg f_name_decl_dg(dg_name);
extern dg f_params_dg(dg_name_list, exp_option);
extern dg f_raise_dg(dg_sourcepos, dg_type_option, exp_option);
extern dg f_requeue_dg(dg_sourcepos, dg_tag, bool);
extern dg f_rts_call_dg(dg_sourcepos, nat, dg_tag_option, dg_tag_option);
extern dg f_select_dg(dg_sourcepos, bool);
extern dg f_select_alternative_dg(dg_sourcepos, nat, bool, exp);
extern dg f_select_guard_dg(dg_sourcepos, dg_tag);
extern dg f_singlestep_dg(dg_sourcepos);
extern dg f_source_language_dg(nat);
extern dg f_sourcepos_dg(dg_sourcepos);
extern dg f_statement_part_dg(dg_tag);
extern dg f_test_dg(dg_sourcepos, bool);
extern dg f_triggering_alternative_dg(dg_sourcepos, nat, bool);
extern dg f_with_dg(dg_type, exp);
extern dg f_dummy_dg;
extern void init_dg(void);
/* CONSTRUCTS FOR DG_ACCESSIBILITY */
extern dg_accessibility f_dg_local_accessibility;
extern dg_accessibility f_dg_private_accessibility;
extern dg_accessibility f_dg_protected_accessibility;
extern dg_accessibility f_dg_public_accessibility;
extern dg_accessibility f_dummy_dg_accessibility;
extern void init_dg_accessibility(void);
/* CONSTRUCTS FOR DG_ACCESSIBILITY_OPTION */
extern dg_accessibility_option yes_dg_accessibility_option(dg_accessibility);
extern dg_accessibility_option no_dg_accessibility_option;
extern void init_dg_accessibility_option(void);
/* CONSTRUCTS FOR DG_APPEND */
extern dg_append f_dg_name_append(dg_tag, dg_name);
extern dg_append f_dummy_dg_append;
extern void init_dg_append(void);
/* CONSTRUCTS FOR DG_APPEND_LIST */
extern dg_append_list new_dg_append_list(int);
extern dg_append_list add_dg_append_list(dg_append_list, dg_append, int);
extern void init_dg_append_list(void);
/* CONSTRUCTS FOR DG_BOUND */
extern dg_bound f_dg_dynamic_bound(dg_tag, shape);
extern dg_bound f_dg_static_bound(exp);
extern dg_bound f_dg_unknown_bound(shape);
extern dg_bound f_dummy_dg_bound;
extern void init_dg_bound(void);
/* CONSTRUCTS FOR DG_CLASS_BASE */
extern dg_class_base f_make_dg_class_base(dg_tag, dg_sourcepos_option,
token_option, dg_accessibility_option,
dg_virtuality_option);
extern dg_class_base f_dummy_dg_class_base;
extern void init_dg_class_base(void);
/* CONSTRUCTS FOR DG_CLASS_BASE_LIST */
extern dg_class_base_list new_dg_class_base_list(int);
extern dg_class_base_list add_dg_class_base_list(dg_class_base_list,
dg_class_base, int);
extern void init_dg_class_base_list(void);
/* CONSTRUCTS FOR DG_CLASSMEM */
extern dg_classmem f_dg_tag_classmem(dg_tag, dg_classmem);
extern dg_classmem f_dg_field_classmem(dg_idname, dg_sourcepos, exp, dg_type,
dg_accessibility_option, bool_option,
dg_default_option);
extern dg_classmem f_dg_function_classmem(dg_name, exp_option);
extern dg_classmem f_dg_indirect_classmem(dg_idname, dg_sourcepos, token,
dg_type);
extern dg_classmem f_dg_name_classmem(dg_name);
extern dg_classmem f_dummy_dg_classmem;
extern void init_dg_classmem(void);
/* CONSTRUCTS FOR DG_CLASSMEM_LIST */
extern dg_classmem_list new_dg_classmem_list(int);
extern dg_classmem_list add_dg_classmem_list(dg_classmem_list, dg_classmem,
int);
extern void init_dg_classmem_list(void);
/* CONSTRUCTS FOR DG_COMP_PROPS */
extern dg_comp_props f_make_dg_compunit(tdfint, dg_compilation, dg_append_list);
extern dg_comp_props f_dummy_dg_comp_props;
extern void init_dg_comp_props(void);
/* CONSTRUCTS FOR DG_COMPILATION */
extern dg_compilation f_dg_tag_compilation(dg_tag, dg_compilation);
extern dg_compilation f_make_dg_compilation(dg_filename, string_list,
dg_macro_list, dg_filename, nat,
nat, nat, string, string_list,
dg_namelist);
extern dg_compilation f_dummy_dg_compilation;
extern void init_dg_compilation(void);
/* CONSTRUCTS FOR DG_CONSTRAINT */
extern dg_constraint f_dg_type_constraint(dg_tag_option, dg_type);
extern dg_constraint f_dg_value_constraint(dg_tag_option, exp);
extern dg_constraint f_dummy_dg_constraint;
extern void init_dg_constraint(void);
/* CONSTRUCTS FOR DG_CONSTRAINT_LIST */
extern dg_constraint_list new_dg_constraint_list(int);
extern dg_constraint_list add_dg_constraint_list(dg_constraint_list,
dg_constraint, int);
extern void init_dg_constraint_list(void);
/* CONSTRUCTS FOR DG_CONSTRAINT_LIST_OPTION */
extern dg_constraint_list_option yes_dg_constraint_list_option(dg_constraint_list);
extern dg_constraint_list_option no_dg_constraint_list_option;
extern void init_dg_constraint_list_option(void);
/* CONSTRUCTS FOR DG_DEFAULT */
extern dg_default f_make_dg_default(exp_option, dg_sourcepos_option);
extern dg_default f_dummy_dg_default;
extern void init_dg_default(void);
/* CONSTRUCTS FOR DG_DEFAULT_OPTION */
extern dg_default_option yes_dg_default_option(dg_default);
extern dg_default_option no_dg_default_option;
extern void init_dg_default_option(void);
/* CONSTRUCTS FOR DG_DIM */
extern dg_dim f_dg_dim_apply_token(token, bitstream);
extern dg_dim f_dg_tag_dim(dg_tag, dg_dim);
extern dg_dim f_dg_bounds_dim(dg_bound, dg_bound, dg_type);
extern dg_dim f_dg_count_dim(dg_bound, dg_bound, dg_type);
extern dg_dim f_dg_type_dim(dg_type, nat_option);
extern dg_dim f_dg_unspecified_dim;
extern dg_dim f_dummy_dg_dim;
extern void init_dg_dim(void);
/* CONSTRUCTS FOR DG_DIM_LIST */
extern dg_dim_list new_dg_dim_list(int);
extern dg_dim_list add_dg_dim_list(dg_dim_list, dg_dim, int);
extern void init_dg_dim_list(void);
/* CONSTRUCTS FOR DG_DIM_OPTION */
extern dg_dim_option yes_dg_dim_option(dg_dim);
extern dg_dim_option no_dg_dim_option;
extern void init_dg_dim_option(void);
/* CONSTRUCTS FOR DG_DISCRIM */
extern dg_discrim f_make_dg_discrim(exp, exp);
extern dg_discrim f_dummy_dg_discrim;
extern void init_dg_discrim(void);
/* CONSTRUCTS FOR DG_DISCRIM_LIST */
extern dg_discrim_list new_dg_discrim_list(int);
extern dg_discrim_list add_dg_discrim_list(dg_discrim_list, dg_discrim, int);
extern void init_dg_discrim_list(void);
/* CONSTRUCTS FOR DG_ENUM */
extern dg_enum f_dg_tag_enum(dg_tag, dg_enum);
extern dg_enum f_make_dg_enum(exp, dg_idname, dg_sourcepos);
extern dg_enum f_dg_char_enum(exp, nat, dg_sourcepos);
extern dg_enum f_dummy_dg_enum;
extern void init_dg_enum(void);
/* CONSTRUCTS FOR DG_ENUM_LIST */
extern dg_enum_list new_dg_enum_list(int);
extern dg_enum_list add_dg_enum_list(dg_enum_list, dg_enum, int);
extern void init_dg_enum_list(void);
/* CONSTRUCTS FOR DG_FILENAME */
extern dg_filename f_dg_filename_apply_token(token, bitstream);
extern dg_filename f_make_dg_filename(nat, string, string, string);
extern dg_filename f_dummy_dg_filename;
extern void init_dg_filename(void);
/* CONSTRUCTS FOR DG_FILENAME_OPTION */
extern dg_filename_option yes_dg_filename_option(dg_filename);
extern dg_filename_option no_dg_filename_option;
extern void init_dg_filename_option(void);
/* CONSTRUCTS FOR DG_IDNAME */
extern dg_idname f_dg_idname_apply_token(token, bitstream);
extern dg_idname f_dg_anonymous_idname(string_option);
extern dg_idname f_dg_artificial_idname(string_option);
extern dg_idname f_dg_external_idname(string);
extern dg_idname f_dg_instance_idname(dg_idname_option, dg_idname, dg_sourcepos,
dg_name_list);
extern dg_idname f_dg_sourcestring_idname(string);
extern dg_idname f_dummy_dg_idname;
extern void init_dg_idname(void);
/* CONSTRUCTS FOR DG_IDNAME_LIST */
extern dg_idname_list new_dg_idname_list(int);
extern dg_idname_list add_dg_idname_list(dg_idname_list, dg_idname, int);
extern void init_dg_idname_list(void);
/* CONSTRUCTS FOR DG_IDNAME_OPTION */
extern dg_idname_option yes_dg_idname_option(dg_idname);
extern dg_idname_option no_dg_idname_option;
extern void init_dg_idname_option(void);
/* CONSTRUCTS FOR DG_LIST */
extern dg_list new_dg_list(int);
extern dg_list add_dg_list(dg_list, dg, int);
extern void init_dg_list(void);
/* CONSTRUCTS FOR DG_MACRO */
extern dg_macro f_dg_function_macro(dg_sourcepos, dg_idname, dg_idname_list,
string);
extern dg_macro f_dg_include_macro(dg_sourcepos, dg_filename, dg_macro_list);
extern dg_macro f_dg_object_macro(dg_sourcepos, dg_idname, string);
extern dg_macro f_dg_undef_macro(dg_sourcepos, dg_idname);
extern dg_macro f_dummy_dg_macro;
extern void init_dg_macro(void);
/* CONSTRUCTS FOR DG_MACRO_LIST */
extern dg_macro_list new_dg_macro_list(int);
extern dg_macro_list add_dg_macro_list(dg_macro_list, dg_macro, int);
extern void init_dg_macro_list(void);
/* CONSTRUCTS FOR DG_NAME */
extern dg_name f_dg_name_apply_token(token, bitstream);
extern dg_name f_dg_tag_name(dg_tag, dg_name);
extern dg_name f_dg_constant_name(dg_name);
extern dg_name f_dg_entry_family_name(dg_name, dg_dim);
extern dg_name f_dg_entry_name(dg_idname, dg_sourcepos, dg_type,
dg_accessibility_option, dg_dim_option);
extern dg_name f_dg_inlined_name(dg_name, dg_tag);
extern dg_name f_dg_is_spec_name(dg_name, bool_option);
extern dg_name f_dg_module_name(dg_idname, dg_sourcepos, dg_namelist,
exp_option, dg_tag_option);
extern dg_name f_dg_namespace_name(dg_idname, dg_sourcepos, dg_namelist);
extern dg_name f_dg_object_name(dg_idname, dg_sourcepos, dg_type, exp_option,
dg_accessibility_option);
extern dg_name f_dg_proc_name(dg_idname, dg_sourcepos, dg_type, exp_option,
dg_accessibility_option, dg_virtuality_option,
bool, dg_type_list_option, dg_tag_option);
extern dg_name f_dg_program_name(dg_idname, dg_sourcepos, exp);
extern dg_name f_dg_rep_clause_name(dg_name, exp);
extern dg_name f_dg_spec_ref_name(dg_tag, dg_name);
extern dg_name f_dg_subunit_name(dg_tag, dg_name, nat, dg_accessibility_option);
extern dg_name f_dg_type_name(dg_idname_option, dg_sourcepos,
dg_accessibility_option, dg_type_option, bool,
bool_option, dg_constraint_list_option);
extern dg_name f_dg_visibility_name(dg_tag, nat, dg_idname_option,
dg_sourcepos_option,
dg_accessibility_option, dg_type_option);
extern dg_name f_dummy_dg_name;
extern void init_dg_name(void);
/* CONSTRUCTS FOR DG_NAME_LIST */
extern dg_name_list new_dg_name_list(int);
extern dg_name_list add_dg_name_list(dg_name_list, dg_name, int);
extern void init_dg_name_list(void);
/* CONSTRUCTS FOR DG_NAME_OPTION */
extern dg_name_option yes_dg_name_option(dg_name);
extern dg_name_option no_dg_name_option;
extern void init_dg_name_option(void);
/* CONSTRUCTS FOR DG_NAMELIST */
extern dg_namelist f_dg_tag_namelist(dg_tag, dg_namelist);
extern dg_namelist f_make_dg_namelist(dg_name_list);
extern dg_namelist f_dummy_dg_namelist;
extern void init_dg_namelist(void);
/* CONSTRUCTS FOR DG_PARAM */
extern dg_param f_dg_object_param(dg_idname_option, dg_sourcepos_option,
dg_param_mode_option, dg_type,
dg_default_option);
extern dg_param f_dg_type_param(dg_idname_option, dg_sourcepos_option,
dg_param_list);
extern dg_param f_dummy_dg_param;
extern void init_dg_param(void);
/* CONSTRUCTS FOR DG_PARAM_LIST */
extern dg_param_list new_dg_param_list(int);
extern dg_param_list add_dg_param_list(dg_param_list, dg_param, int);
extern void init_dg_param_list(void);
/* CONSTRUCTS FOR DG_PARAM_MODE */
extern dg_param_mode f_dg_in_mode;
extern dg_param_mode f_dg_inout_mode;
extern dg_param_mode f_dg_out_mode;
extern dg_param_mode f_dummy_dg_param_mode;
extern void init_dg_param_mode(void);
/* CONSTRUCTS FOR DG_PARAM_MODE_OPTION */
extern dg_param_mode_option yes_dg_param_mode_option(dg_param_mode);
extern dg_param_mode_option no_dg_param_mode_option;
extern void init_dg_param_mode_option(void);
/* CONSTRUCTS FOR DG_QUALIFIER */
extern dg_qualifier f_dg_aliased_qualifier;
extern dg_qualifier f_dg_class_wide_qualifier;
extern dg_qualifier f_dg_const_qualifier;
extern dg_qualifier f_dg_limited_qualifier;
extern dg_qualifier f_dg_volatile_qualifier;
extern dg_qualifier f_dummy_dg_qualifier;
extern void init_dg_qualifier(void);
/* CONSTRUCTS FOR DG_SOURCEPOS */
extern dg_sourcepos f_dg_file_sourcepos(dg_filename);
extern dg_sourcepos f_dg_global_sourcepos;
extern dg_sourcepos f_dg_mark_sourcepos(dg_filename, nat, nat);
extern dg_sourcepos f_dg_null_sourcepos;
extern dg_sourcepos f_dg_span_sourcepos(dg_filename, nat, nat,
dg_filename_option, nat, nat);
extern dg_sourcepos f_dummy_dg_sourcepos;
extern void init_dg_sourcepos(void);
/* CONSTRUCTS FOR DG_SOURCEPOS_OPTION */
extern dg_sourcepos_option yes_dg_sourcepos_option(dg_sourcepos);
extern dg_sourcepos_option no_dg_sourcepos_option;
extern void init_dg_sourcepos_option(void);
/* CONSTRUCTS FOR DG_TAG */
extern dg_tag f_make_dg_tag(tdfint);
extern dg_tag f_dummy_dg_tag;
extern void init_dg_tag(void);
/* CONSTRUCTS FOR DG_TAG_LIST */
extern dg_tag_list new_dg_tag_list(int);
extern dg_tag_list add_dg_tag_list(dg_tag_list, dg_tag, int);
extern void init_dg_tag_list(void);
/* CONSTRUCTS FOR DG_TAG_OPTION */
extern dg_tag_option yes_dg_tag_option(dg_tag);
extern dg_tag_option no_dg_tag_option;
extern void init_dg_tag_option(void);
/* CONSTRUCTS FOR DG_TYPE */
extern dg_type f_dg_type_apply_token(token, bitstream);
extern dg_type f_dg_tag_type(dg_tag, dg_type);
extern dg_type f_dg_address_type(dg_idname, shape);
extern dg_type f_dg_array_type(dg_type, exp, bool_option, dg_dim_list);
extern dg_type f_dg_bitfield_type(dg_type, bitfield_variety, shape);
extern dg_type f_dg_boolean_type(dg_idname, variety);
extern dg_type f_dg_char_type(dg_idname, variety);
extern dg_type f_dg_class_type(dg_class_base_list, dg_classmem_list,
dg_varpart_option, dg_tag_list, shape_option,
dg_tag_option, dg_tag_option, dg_idname_option,
dg_sourcepos_option, bool, dg_tag_option,
dg_tag_option, bool, bool_option);
extern dg_type f_dg_complex_float_type(dg_idname, floating_variety);
extern dg_type f_dg_enum_type(dg_enum_list, dg_idname_option,
dg_sourcepos_option, shape, bool);
extern dg_type f_dg_file_type(dg_type, shape);
extern dg_type f_dg_fixed_point_type(dg_type, exp, exp_option, exp_option);
extern dg_type f_dg_float_type(dg_idname, floating_variety);
extern dg_type f_dg_floating_digits_type(dg_type, exp);
extern dg_type f_dg_inlined_type(dg_type, dg_tag);
extern dg_type f_dg_integer_type(dg_idname, variety);
extern dg_type f_dg_is_spec_type(dg_type);
extern dg_type f_dg_modular_type(dg_type, exp);
extern dg_type f_dg_named_type(dg_tag);
extern dg_type f_dg_packed_type(dg_type, shape);
extern dg_type f_dg_pointer_type(dg_type, bool_option);
extern dg_type f_dg_proc_type(dg_param_list, dg_type, bool_option, nat_option,
nat_option, procprops_option);
extern dg_type f_dg_ptr_memdata_type(dg_tag, dg_type, shape, dg_tag_option);
extern dg_type f_dg_ptr_memfn_type(dg_tag, dg_type, shape, dg_tag_option);
extern dg_type f_dg_qualified_type(dg_qualifier, dg_type);
extern dg_type f_dg_reference_type(dg_type);
extern dg_type f_dg_set_type(dg_type, shape);
extern dg_type f_dg_spec_ref_type(dg_tag, dg_type);
extern dg_type f_dg_string_type(dg_tag, exp, exp);
extern dg_type f_dg_struct_type(dg_classmem_list, shape_option,
dg_idname_option, dg_sourcepos_option,
dg_varpart_option, bool, bool);
extern dg_type f_dg_subrange_type(dg_type, dg_bound, dg_bound);
extern dg_type f_dg_synchronous_type(dg_idname, dg_sourcepos, dg_name_list,
dg_tag, dg_classmem_list,
dg_varpart_option, shape_option, bool,
dg_tag_option);
extern dg_type f_dg_task_type(dg_idname, dg_sourcepos, dg_name_list, dg_tag,
dg_tag, dg_classmem_list, dg_varpart_option,
shape_option, bool, dg_tag_option);
extern dg_type f_dg_unknown_type(shape);
extern dg_type f_dg_void_type;
extern dg_type f_dummy_dg_type;
extern void init_dg_type(void);
/* CONSTRUCTS FOR DG_TYPE_LIST */
extern dg_type_list new_dg_type_list(int);
extern dg_type_list add_dg_type_list(dg_type_list, dg_type, int);
extern void init_dg_type_list(void);
/* CONSTRUCTS FOR DG_TYPE_LIST_OPTION */
extern dg_type_list_option yes_dg_type_list_option(dg_type_list);
extern dg_type_list_option no_dg_type_list_option;
extern void init_dg_type_list_option(void);
/* CONSTRUCTS FOR DG_TYPE_OPTION */
extern dg_type_option yes_dg_type_option(dg_type);
extern dg_type_option no_dg_type_option;
extern void init_dg_type_option(void);
/* CONSTRUCTS FOR DG_VARIANT */
extern dg_variant f_make_dg_variant(dg_discrim_list, dg_classmem_list);
extern dg_variant f_dummy_dg_variant;
extern void init_dg_variant(void);
/* CONSTRUCTS FOR DG_VARIANT_LIST */
extern dg_variant_list new_dg_variant_list(int);
extern dg_variant_list add_dg_variant_list(dg_variant_list, dg_variant, int);
extern void init_dg_variant_list(void);
/* CONSTRUCTS FOR DG_VARPART */
extern dg_varpart f_dg_discrim_varpart(dg_classmem, dg_variant_list);
extern dg_varpart f_dg_sibl_discrim_varpart(dg_tag, dg_variant_list);
extern dg_varpart f_dg_undiscrim_varpart(dg_type, dg_variant_list);
extern dg_varpart f_dummy_dg_varpart;
extern void init_dg_varpart(void);
/* CONSTRUCTS FOR DG_VARPART_OPTION */
extern dg_varpart_option yes_dg_varpart_option(dg_varpart);
extern dg_varpart_option no_dg_varpart_option;
extern void init_dg_varpart_option(void);
/* CONSTRUCTS FOR DG_VIRTUALITY */
extern dg_virtuality f_dg_abstract_virtuality;
extern dg_virtuality f_dg_virtual_virtuality;
extern dg_virtuality f_dummy_dg_virtuality;
extern void init_dg_virtuality(void);
/* CONSTRUCTS FOR DG_VIRTUALITY_OPTION */
extern dg_virtuality_option yes_dg_virtuality_option(dg_virtuality);
extern dg_virtuality_option no_dg_virtuality_option;
extern void init_dg_virtuality_option(void);
/* CONSTRUCTS FOR DIAG_DESCRIPTOR */
extern diag_descriptor f_diag_desc_id(tdfstring, sourcemark, exp, diag_type);
extern diag_descriptor f_diag_desc_struct(tdfstring, sourcemark, diag_type);
extern diag_descriptor f_diag_desc_typedef(tdfstring, sourcemark, diag_type);
extern diag_descriptor f_dummy_diag_descriptor;
extern void init_diag_descriptor(void);
/* CONSTRUCTS FOR DIAG_DESCRIPTOR_LIST */
extern diag_descriptor_list new_diag_descriptor_list(int);
extern diag_descriptor_list add_diag_descriptor_list(diag_descriptor_list,
diag_descriptor, int);
extern void init_diag_descriptor_list(void);
/* CONSTRUCTS FOR DIAG_FIELD */
extern diag_field f_make_diag_field(tdfstring, exp, diag_type);
extern diag_field f_dummy_diag_field;
extern void init_diag_field(void);
/* CONSTRUCTS FOR DIAG_FIELD_LIST */
extern diag_field_list new_diag_field_list(int);
extern diag_field_list add_diag_field_list(diag_field_list, diag_field, int);
extern void init_diag_field_list(void);
/* CONSTRUCTS FOR DIAG_TAG */
extern diag_tag f_make_diag_tag(tdfint);
extern diag_tag f_dummy_diag_tag;
extern void init_diag_tag(void);
/* CONSTRUCTS FOR DIAG_TAGDEF */
extern diag_tagdef f_make_diag_tagdef(tdfint, diag_type);
extern diag_tagdef f_dummy_diag_tagdef;
extern void init_diag_tagdef(void);
/* CONSTRUCTS FOR DIAG_TAGDEF_LIST */
extern diag_tagdef_list new_diag_tagdef_list(int);
extern diag_tagdef_list add_diag_tagdef_list(diag_tagdef_list, diag_tagdef,
int);
extern void init_diag_tagdef_list(void);
/* CONSTRUCTS FOR DIAG_TQ */
extern diag_tq f_add_diag_const(diag_tq);
extern diag_tq f_add_diag_volatile(diag_tq);
extern diag_tq f_diag_tq_null;
extern diag_tq f_dummy_diag_tq;
extern void init_diag_tq(void);
/* CONSTRUCTS FOR DIAG_TYPE */
extern diag_type f_diag_type_apply_token(token, bitstream);
extern diag_type f_diag_array(diag_type, exp, exp, exp, diag_type);
extern diag_type f_diag_bitfield(diag_type, nat);
extern diag_type f_diag_enum(diag_type, tdfstring, enum_values_list);
extern diag_type f_diag_floating_variety(floating_variety);
extern diag_type f_diag_loc(diag_type, diag_tq);
extern diag_type f_diag_proc(diag_type_list, bool, diag_type);
extern diag_type f_diag_ptr(diag_type, diag_tq);
extern diag_type f_diag_struct(shape, tdfstring, diag_field_list);
extern diag_type f_diag_type_null;
extern diag_type f_diag_union(shape, tdfstring, diag_field_list);
extern diag_type f_diag_variety(variety);
extern diag_type f_use_diag_tag(diag_tag);
extern diag_type f_dummy_diag_type;
extern void init_diag_type(void);
/* CONSTRUCTS FOR DIAG_TYPE_LIST */
extern diag_type_list new_diag_type_list(int);
extern diag_type_list add_diag_type_list(diag_type_list, diag_type, int);
extern void init_diag_type_list(void);
/* CONSTRUCTS FOR DIAG_TYPE_UNIT */
extern diag_type_unit f_build_diagtype_unit(tdfint, diag_tagdef_list);
extern diag_type_unit f_dummy_diag_type_unit;
extern void init_diag_type_unit(void);
/* CONSTRUCTS FOR DIAG_UNIT */
extern diag_unit f_build_diag_unit(tdfint, diag_descriptor_list);
extern diag_unit f_dummy_diag_unit;
extern void init_diag_unit(void);
/* CONSTRUCTS FOR ENUM_VALUES */
extern enum_values f_make_enum_values(exp, tdfstring);
extern enum_values f_dummy_enum_values;
extern void init_enum_values(void);
/* CONSTRUCTS FOR ENUM_VALUES_LIST */
extern enum_values_list new_enum_values_list(int);
extern enum_values_list add_enum_values_list(enum_values_list, enum_values,
int);
extern void init_enum_values_list(void);
/* CONSTRUCTS FOR ERROR_CODE */
extern error_code f_nil_access;
extern error_code f_overflow;
extern error_code f_stack_overflow;
extern error_code f_dummy_error_code;
extern void init_error_code(void);
/* CONSTRUCTS FOR ERROR_CODE_LIST */
extern error_code_list new_error_code_list(int);
extern error_code_list add_error_code_list(error_code_list, error_code, int);
extern void init_error_code_list(void);
/* CONSTRUCTS FOR ERROR_TREATMENT */
extern error_treatment f_errt_apply_token(token, bitstream);
extern error_treatment f_errt_cond(exp, bitstream, bitstream);
extern error_treatment f_continue;
extern error_treatment f_error_jump(label);
extern error_treatment f_trap(error_code_list);
extern error_treatment f_wrap;
extern error_treatment f_impossible;
extern error_treatment f_dummy_error_treatment;
extern void init_error_treatment(void);
/* CONSTRUCTS FOR EXP */
extern exp f_exp_apply_token(token, bitstream);
extern exp f_exp_cond(exp, bitstream, bitstream);
extern exp f_abs(error_treatment, exp);
extern exp f_add_to_ptr(exp, exp);
extern exp f_and(exp, exp);
extern exp f_apply_proc(shape, exp, exp_list, exp_option);
extern void start_apply_general_proc(shape, procprops_option, exp, otagexp_list,
callees);
extern exp f_apply_general_proc(shape, procprops_option, exp, otagexp_list,
callees, exp);
extern exp f_assign(exp, exp);
extern exp f_assign_with_mode(transfer_mode, exp, exp);
extern exp f_bitfield_assign(exp, exp, exp);
extern exp f_bitfield_assign_with_mode(transfer_mode, exp, exp, exp);
extern exp f_bitfield_contents(bitfield_variety, exp, exp);
extern exp f_bitfield_contents_with_mode(transfer_mode, bitfield_variety, exp,
exp);
extern exp f_case(bool, exp, caselim_list);
extern exp f_change_bitfield_to_int(variety, exp);
extern exp f_change_floating_variety(error_treatment, floating_variety, exp);
extern exp f_change_variety(error_treatment, variety, exp);
extern exp f_change_int_to_bitfield(bitfield_variety, exp);
extern exp f_complex_conjugate(exp);
extern exp f_component(shape, exp, exp);
extern exp f_concat_nof(exp, exp);
extern void start_conditional(label);
extern exp f_conditional(label, exp, exp);
extern exp f_contents(shape, exp);
extern exp f_contents_with_mode(transfer_mode, shape, exp);
extern exp f_current_env(void);
extern exp f_div0(error_treatment, error_treatment, exp, exp);
extern exp f_div1(error_treatment, error_treatment, exp, exp);
extern exp f_div2(error_treatment, error_treatment, exp, exp);
extern exp f_env_offset(alignment, alignment, tag);
extern exp f_env_size(tag);
extern exp f_fail_installer(string);
extern exp f_float_int(error_treatment, floating_variety, exp);
extern exp f_floating_abs(error_treatment, exp);
extern exp f_floating_div(error_treatment, exp, exp);
extern exp f_floating_minus(error_treatment, exp, exp);
extern exp f_floating_maximum(error_treatment, exp, exp);
extern exp f_floating_minimum(error_treatment, exp, exp);
extern exp f_floating_mult(error_treatment, exp_list);
extern exp f_floating_negate(error_treatment, exp);
extern exp f_floating_plus(error_treatment, exp_list);
extern exp f_floating_power(error_treatment, exp, exp);
extern exp f_floating_test(nat_option, error_treatment, ntest, label, exp, exp);
extern exp f_goto(label);
extern exp f_goto_local_lv(exp);
extern void start_identify(access_option, tag, exp);
extern exp f_identify(access_option, tag, exp, exp);
extern exp f_ignorable(exp);
extern exp f_imaginary_part(exp);
extern void start_initial_value(void);
extern exp f_initial_value(exp);
extern exp f_integer_test(nat_option, ntest, label, exp, exp);
extern void start_labelled(label_list);
extern exp f_labelled(label_list, exp, exp_list);
extern exp f_last_local(exp);
extern exp f_local_alloc(exp);
extern exp f_local_alloc_check(exp);
extern exp f_local_free(exp, exp);
extern exp f_local_free_all(void);
extern exp f_long_jump(exp, exp);
extern exp f_make_complex(floating_variety, exp, exp);
extern exp f_make_compound(exp, exp_list);
extern exp f_make_floating(floating_variety, rounding_mode, bool, string, nat,
signed_nat);
extern void start_make_general_proc(shape, procprops_option, tagshacc_list,
tagshacc_list);
extern exp f_make_general_proc(shape, procprops_option, tagshacc_list,
tagshacc_list, exp);
extern exp f_make_int(variety, signed_nat);
extern exp f_make_local_lv(label);
extern exp f_make_nof(exp_list);
extern exp f_make_nof_int(variety, string);
extern exp f_make_null_local_lv(void);
extern exp f_make_null_proc(void);
extern exp f_make_null_ptr(alignment);
extern void start_make_proc(shape, tagshacc_list, tagacc_option);
extern exp f_make_proc(shape, tagshacc_list, tagacc_option, exp);
extern exp f_make_stack_limit(exp, exp, exp);
extern exp f_make_top(void);
extern exp f_make_value(shape);
extern exp f_maximum(exp, exp);
extern exp f_minimum(exp, exp);
extern exp f_minus(error_treatment, exp, exp);
extern exp f_move_some(transfer_mode, exp, exp, exp);
extern exp f_mult(error_treatment, exp, exp);
extern exp f_n_copies(nat, exp);
extern exp f_negate(error_treatment, exp);
extern exp f_not(exp);
extern exp f_obtain_tag(tag);
extern exp f_offset_add(exp, exp);
extern exp f_offset_div(variety, exp, exp);
extern exp f_offset_div_by_int(exp, exp);
extern exp f_offset_max(exp, exp);
extern exp f_offset_mult(exp, exp);
extern exp f_offset_negate(exp);
extern exp f_offset_pad(alignment, exp);
extern exp f_offset_subtract(exp, exp);
extern exp f_offset_test(nat_option, ntest, label, exp, exp);
extern exp f_offset_zero(alignment);
extern exp f_or(exp, exp);
extern exp f_plus(error_treatment, exp, exp);
extern exp f_pointer_test(nat_option, ntest, label, exp, exp);
extern exp f_power(error_treatment, exp, exp);
extern exp f_proc_test(nat_option, ntest, label, exp, exp);
extern exp f_profile(nat);
extern exp f_real_part(exp);
extern exp f_rem0(error_treatment, error_treatment, exp, exp);
extern exp f_rem1(error_treatment, error_treatment, exp, exp);
extern exp f_rem2(error_treatment, error_treatment, exp, exp);
extern void start_repeat(label);
extern exp f_repeat(label, exp, exp);
extern exp f_return(exp);
extern exp f_return_to_label(exp);
extern exp f_round_with_mode(error_treatment, rounding_mode, variety, exp);
extern exp f_rotate_left(exp, exp);
extern exp f_rotate_right(exp, exp);
extern exp f_sequence(exp_list, exp);
extern exp f_set_stack_limit(exp);
extern exp f_shape_offset(shape);
extern exp f_shift_left(error_treatment, exp, exp);
extern exp f_shift_right(exp, exp);
extern exp f_subtract_ptrs(exp, exp);
extern exp f_tail_call(procprops_option, exp, callees);
extern exp f_untidy_return(exp);
extern void start_variable(access_option, tag, exp);
extern exp f_variable(access_option, tag, exp, exp);
extern exp f_xor(exp, exp);
extern exp f_dummy_exp;
extern void init_exp(void);
/* CONSTRUCTS FOR EXP_LIST */
extern exp_list new_exp_list(int);
extern exp_list add_exp_list(exp_list, exp, int);
extern void init_exp_list(void);
/* CONSTRUCTS FOR EXP_OPTION */
extern exp_option yes_exp_option(exp);
extern exp_option no_exp_option;
extern void init_exp_option(void);
/* CONSTRUCTS FOR EXTERN_LINK */
extern extern_link f_make_extern_link(linkextern_list);
extern extern_link f_dummy_extern_link;
extern void init_extern_link(void);
/* CONSTRUCTS FOR EXTERN_LINK_LIST */
extern extern_link_list new_extern_link_list(int);
extern extern_link_list add_extern_link_list(extern_link_list, extern_link,
int);
extern void init_extern_link_list(void);
/* CONSTRUCTS FOR EXTERNAL */
extern external f_string_extern(tdfident);
extern external f_unique_extern(unique);
extern external f_chain_extern(tdfident, tdfint);
extern external f_dummy_external;
extern void init_external(void);
/* CONSTRUCTS FOR FILENAME */
extern filename f_filename_apply_token(token, bitstream);
extern filename f_make_filename(nat, tdfstring, tdfstring);
extern filename f_dummy_filename;
extern void init_filename(void);
/* CONSTRUCTS FOR FLOATING_VARIETY */
extern floating_variety f_flvar_apply_token(token, bitstream);
extern floating_variety f_flvar_cond(exp, bitstream, bitstream);
extern floating_variety f_flvar_parms(nat, nat, nat, nat);
extern floating_variety f_complex_parms(nat, nat, nat, nat);
extern floating_variety f_float_of_complex(shape);
extern floating_variety f_complex_of_float(shape);
extern floating_variety f_dummy_floating_variety;
extern void init_floating_variety(void);
/* CONSTRUCTS FOR GROUP */
extern group f_make_group(unit_list);
extern group f_dummy_group;
extern void init_group(void);
/* CONSTRUCTS FOR GROUP_LIST */
extern group_list new_group_list(int);
extern group_list add_group_list(group_list, group, int);
extern void init_group_list(void);
/* CONSTRUCTS FOR LABEL */
extern label f_label_apply_token(token, bitstream);
extern label f_make_label(tdfint);
extern label f_dummy_label;
extern void init_label(void);
/* CONSTRUCTS FOR LABEL_LIST */
extern label_list new_label_list(int);
extern label_list add_label_list(label_list, label, int);
extern void init_label_list(void);
/* CONSTRUCTS FOR LINK */
extern link f_make_link(tdfint, tdfint);
extern link f_dummy_link;
extern void init_link(void);
/* CONSTRUCTS FOR LINK_LIST */
extern link_list new_link_list(int);
extern link_list add_link_list(link_list, link, int);
extern void init_link_list(void);
/* CONSTRUCTS FOR LINKEXTERN */
extern linkextern f_make_linkextern(tdfint, external);
extern linkextern f_dummy_linkextern;
extern void init_linkextern(void);
/* CONSTRUCTS FOR LINKEXTERN_LIST */
extern linkextern_list new_linkextern_list(int);
extern linkextern_list add_linkextern_list(linkextern_list, linkextern, int);
extern void init_linkextern_list(void);
/* CONSTRUCTS FOR LINKINFO */
extern linkinfo f_static_name_def(exp, tdfstring);
extern linkinfo f_make_comment(tdfstring);
extern linkinfo f_make_weak_defn(exp, exp);
extern linkinfo f_make_weak_symbol(tdfstring, exp);
extern linkinfo f_dummy_linkinfo;
extern void init_linkinfo(void);
/* CONSTRUCTS FOR LINKINFO_LIST */
extern linkinfo_list new_linkinfo_list(int);
extern linkinfo_list add_linkinfo_list(linkinfo_list, linkinfo, int);
extern void init_linkinfo_list(void);
/* CONSTRUCTS FOR LINKINFO_PROPS */
extern linkinfo_props f_make_linkinfos(tdfint, linkinfo_list);
extern linkinfo_props f_dummy_linkinfo_props;
extern void init_linkinfo_props(void);
/* CONSTRUCTS FOR LINKS */
extern links f_make_links(link_list);
extern links f_dummy_links;
extern void init_links(void);
/* CONSTRUCTS FOR LINKS_LIST */
extern links_list new_links_list(int);
extern links_list add_links_list(links_list, links, int);
extern void init_links_list(void);
/* CONSTRUCTS FOR NAT */
extern nat f_nat_apply_token(token, bitstream);
extern nat f_nat_cond(exp, bitstream, bitstream);
extern nat f_computed_nat(exp);
extern nat f_error_val(error_code);
extern nat f_make_nat(tdfint);
extern nat f_dummy_nat;
extern void init_nat(void);
/* CONSTRUCTS FOR NAT_OPTION */
extern nat_option yes_nat_option(nat);
extern nat_option no_nat_option;
extern void init_nat_option(void);
/* CONSTRUCTS FOR NTEST */
extern ntest f_ntest_apply_token(token, bitstream);
extern ntest f_ntest_cond(exp, bitstream, bitstream);
extern ntest f_equal;
extern ntest f_greater_than;
extern ntest f_greater_than_or_equal;
extern ntest f_less_than;
extern ntest f_less_than_or_equal;
extern ntest f_not_equal;
extern ntest f_not_greater_than;
extern ntest f_not_greater_than_or_equal;
extern ntest f_not_less_than;
extern ntest f_not_less_than_or_equal;
extern ntest f_less_than_or_greater_than;
extern ntest f_not_less_than_and_not_greater_than;
extern ntest f_comparable;
extern ntest f_not_comparable;
extern ntest f_dummy_ntest;
extern void init_ntest(void);
/* CONSTRUCTS FOR OTAGEXP */
extern otagexp f_make_otagexp(tag_option, exp);
extern otagexp f_dummy_otagexp;
extern void init_otagexp(void);
/* CONSTRUCTS FOR OTAGEXP_LIST */
extern otagexp_list new_otagexp_list(int);
extern otagexp_list add_otagexp_list(otagexp_list, otagexp, int);
extern void init_otagexp_list(void);
/* CONSTRUCTS FOR PROCPROPS */
extern procprops f_procprops_apply_token(token, bitstream);
extern procprops f_procprops_cond(exp, bitstream, bitstream);
extern procprops f_add_procprops(procprops, procprops);
extern procprops f_check_stack;
extern procprops f_inline;
extern procprops f_no_long_jump_dest;
extern procprops f_untidy;
extern procprops f_var_callees;
extern procprops f_var_callers;
extern procprops f_dummy_procprops;
extern void init_procprops(void);
/* CONSTRUCTS FOR PROCPROPS_OPTION */
extern procprops_option yes_procprops_option(procprops);
extern procprops_option no_procprops_option;
extern void init_procprops_option(void);
/* CONSTRUCTS FOR ROUNDING_MODE */
extern rounding_mode f_rounding_mode_apply_token(token, bitstream);
extern rounding_mode f_rounding_mode_cond(exp, bitstream, bitstream);
extern rounding_mode f_round_as_state;
extern rounding_mode f_to_nearest;
extern rounding_mode f_toward_larger;
extern rounding_mode f_toward_smaller;
extern rounding_mode f_toward_zero;
extern rounding_mode f_dummy_rounding_mode;
extern void init_rounding_mode(void);
/* CONSTRUCTS FOR SHAPE */
extern shape f_shape_apply_token(token, bitstream);
extern shape f_shape_cond(exp, bitstream, bitstream);
extern shape f_bitfield(bitfield_variety);
extern shape f_bottom;
extern shape f_compound(exp);
extern shape f_floating(floating_variety);
extern shape f_integer(variety);
extern shape f_nof(nat, shape);
extern shape f_offset(alignment, alignment);
extern shape f_pointer(alignment);
extern shape f_proc;
extern shape f_top;
extern shape f_dummy_shape;
extern void init_shape(void);
/* CONSTRUCTS FOR SHAPE_OPTION */
extern shape_option yes_shape_option(shape);
extern shape_option no_shape_option;
extern void init_shape_option(void);
/* CONSTRUCTS FOR SIGNED_NAT */
extern signed_nat f_signed_nat_apply_token(token, bitstream);
extern signed_nat f_signed_nat_cond(exp, bitstream, bitstream);
extern signed_nat f_computed_signed_nat(exp);
extern signed_nat f_make_signed_nat(tdfbool, tdfint);
extern signed_nat f_snat_from_nat(bool, nat);
extern signed_nat f_dummy_signed_nat;
extern void init_signed_nat(void);
/* CONSTRUCTS FOR SORTNAME */
extern sortname f_access;
extern sortname f_al_tag;
extern sortname f_alignment_sort;
extern sortname f_bitfield_variety;
extern sortname f_bool;
extern sortname f_error_treatment;
extern sortname f_exp;
extern sortname f_floating_variety;
extern sortname f_foreign_sort(string);
extern sortname f_label;
extern sortname f_nat;
extern sortname f_ntest;
extern sortname f_procprops;
extern sortname f_rounding_mode;
extern sortname f_shape;
extern sortname f_signed_nat;
extern sortname f_string;
extern sortname f_tag;
extern sortname f_transfer_mode;
extern sortname f_token(sortname, sortname_list);
extern sortname f_variety;
extern sortname f_dummy_sortname;
extern void init_sortname(void);
/* CONSTRUCTS FOR SORTNAME_LIST */
extern sortname_list new_sortname_list(int);
extern sortname_list add_sortname_list(sortname_list, sortname, int);
extern void init_sortname_list(void);
/* CONSTRUCTS FOR SOURCEMARK */
extern sourcemark f_make_sourcemark(filename, nat, nat);
extern sourcemark f_dummy_sourcemark;
extern void init_sourcemark(void);
/* CONSTRUCTS FOR STRING */
extern string f_string_apply_token(token, bitstream);
extern string f_string_cond(exp, bitstream, bitstream);
extern string f_concat_string(string, string);
extern string f_make_string(tdfstring);
extern string f_dummy_string;
extern void init_string(void);
/* CONSTRUCTS FOR STRING_LIST */
extern string_list new_string_list(int);
extern string_list add_string_list(string_list, string, int);
extern void init_string_list(void);
/* CONSTRUCTS FOR STRING_OPTION */
extern string_option yes_string_option(string);
extern string_option no_string_option;
extern void init_string_option(void);
/* CONSTRUCTS FOR TAG */
extern tag f_tag_apply_token(token, bitstream);
extern tag f_make_tag(tdfint);
extern tag f_dummy_tag;
extern void init_tag(void);
/* CONSTRUCTS FOR TAG_OPTION */
extern tag_option yes_tag_option(tag);
extern tag_option no_tag_option;
extern void init_tag_option(void);
/* CONSTRUCTS FOR TAGACC */
extern tagacc f_make_tagacc(tag, access_option);
extern tagacc f_dummy_tagacc;
extern void init_tagacc(void);
/* CONSTRUCTS FOR TAGACC_OPTION */
extern tagacc_option yes_tagacc_option(tagacc);
extern tagacc_option no_tagacc_option;
extern void init_tagacc_option(void);
/* CONSTRUCTS FOR TAGDEC */
extern tagdec f_make_id_tagdec(tdfint, access_option, string_option, shape);
extern tagdec f_make_var_tagdec(tdfint, access_option, string_option, shape);
extern tagdec f_common_tagdec(tdfint, access_option, string_option, shape);
extern tagdec f_dummy_tagdec;
extern void init_tagdec(void);
/* CONSTRUCTS FOR TAGDEC_LIST */
extern tagdec_list new_tagdec_list(int);
extern tagdec_list add_tagdec_list(tagdec_list, tagdec, int);
extern void init_tagdec_list(void);
/* CONSTRUCTS FOR TAGDEC_PROPS */
extern tagdec_props f_make_tagdecs(tdfint, tagdec_list);
extern tagdec_props f_dummy_tagdec_props;
extern void init_tagdec_props(void);
/* CONSTRUCTS FOR TAGDEF */
extern void start_make_id_tagdef(tdfint);
extern tagdef f_make_id_tagdef(tdfint, string_option, exp);
extern void start_make_var_tagdef(tdfint);
extern tagdef f_make_var_tagdef(tdfint, access_option, string_option, exp);
extern void start_common_tagdef(tdfint);
extern tagdef f_common_tagdef(tdfint, access_option, string_option, exp);
extern tagdef f_dummy_tagdef;
extern void init_tagdef(void);
/* CONSTRUCTS FOR TAGDEF_LIST */
extern tagdef_list new_tagdef_list(int);
extern tagdef_list add_tagdef_list(tagdef_list, tagdef, int);
extern void init_tagdef_list(void);
/* CONSTRUCTS FOR TAGDEF_PROPS */
extern tagdef_props f_make_tagdefs(tdfint, tagdef_list);
extern tagdef_props f_dummy_tagdef_props;
extern void init_tagdef_props(void);
/* CONSTRUCTS FOR TAGSHACC */
extern tagshacc f_make_tagshacc(shape, access_option, tag);
extern tagshacc f_dummy_tagshacc;
extern void init_tagshacc(void);
/* CONSTRUCTS FOR TAGSHACC_LIST */
extern tagshacc_list new_tagshacc_list(int);
extern tagshacc_list add_tagshacc_list(tagshacc_list, tagshacc, int);
extern void init_tagshacc_list(void);
/* CONSTRUCTS FOR TDFIDENT_LIST */
extern tdfident_list new_tdfident_list(int);
extern tdfident_list add_tdfident_list(tdfident_list, tdfident, int);
extern void init_tdfident_list(void);
/* CONSTRUCTS FOR TDFINT_LIST */
extern tdfint_list new_tdfint_list(int);
extern tdfint_list add_tdfint_list(tdfint_list, tdfint, int);
extern void init_tdfint_list(void);
/* CONSTRUCTS FOR TOKDEC */
extern tokdec f_make_tokdec(tdfint, string_option, sortname);
extern tokdec f_dummy_tokdec;
extern void init_tokdec(void);
/* CONSTRUCTS FOR TOKDEC_LIST */
extern tokdec_list new_tokdec_list(int);
extern tokdec_list add_tokdec_list(tokdec_list, tokdec, int);
extern void init_tokdec_list(void);
/* CONSTRUCTS FOR TOKDEC_PROPS */
extern tokdec_props f_make_tokdecs(tokdec_list);
extern tokdec_props f_dummy_tokdec_props;
extern void init_tokdec_props(void);
/* CONSTRUCTS FOR TOKDEF */
extern tokdef f_make_tokdef(tdfint, string_option, bitstream);
extern tokdef f_dummy_tokdef;
extern void init_tokdef(void);
/* CONSTRUCTS FOR TOKDEF_LIST */
extern tokdef_list new_tokdef_list(int);
extern tokdef_list add_tokdef_list(tokdef_list, tokdef, int);
extern void init_tokdef_list(void);
/* CONSTRUCTS FOR TOKDEF_PROPS */
extern tokdef_props f_make_tokdefs(tdfint, tokdef_list);
extern tokdef_props f_dummy_tokdef_props;
extern void init_tokdef_props(void);
/* CONSTRUCTS FOR TOKEN */
extern token f_token_apply_token(token, bitstream);
extern token f_make_tok(tdfint);
extern token f_use_tokdef(bitstream);
extern token f_dummy_token;
extern void init_token(void);
/* CONSTRUCTS FOR TOKEN_DEFN */
extern token_defn f_token_definition(sortname, tokformals_list);
extern token_defn f_dummy_token_defn;
extern void init_token_defn(void);
/* CONSTRUCTS FOR TOKEN_OPTION */
extern token_option yes_token_option(token);
extern token_option no_token_option;
extern void init_token_option(void);
/* CONSTRUCTS FOR TOKFORMALS */
extern tokformals f_make_tokformals(sortname, tdfint);
extern tokformals f_dummy_tokformals;
extern void init_tokformals(void);
/* CONSTRUCTS FOR TOKFORMALS_LIST */
extern tokformals_list new_tokformals_list(int);
extern tokformals_list add_tokformals_list(tokformals_list, tokformals, int);
extern void init_tokformals_list(void);
/* CONSTRUCTS FOR TRANSFER_MODE */
extern transfer_mode f_transfer_mode_apply_token(token, bitstream);
extern transfer_mode f_transfer_mode_cond(exp, bitstream, bitstream);
extern transfer_mode f_add_modes(transfer_mode, transfer_mode);
extern transfer_mode f_overlap;
extern transfer_mode f_standard_transfer_mode;
extern transfer_mode f_trap_on_nil;
extern transfer_mode f_volatile;
extern transfer_mode f_complete;
extern transfer_mode f_dummy_transfer_mode;
extern void init_transfer_mode(void);
/* CONSTRUCTS FOR UNIQUE */
extern unique f_make_unique(tdfident_list);
extern unique f_dummy_unique;
extern void init_unique(void);
/* CONSTRUCTS FOR UNIT */
extern void start_make_unit(tdfint_list);
extern unit f_make_unit(tdfint_list, links_list, bytestream);
extern unit f_dummy_unit;
extern void init_unit(void);
/* CONSTRUCTS FOR UNIT_LIST */
extern unit_list new_unit_list(int);
extern unit_list add_unit_list(unit_list, unit, int);
extern void init_unit_list(void);
/* CONSTRUCTS FOR VARIETY */
extern variety f_var_apply_token(token, bitstream);
extern variety f_var_cond(exp, bitstream, bitstream);
extern variety f_var_limits(signed_nat, signed_nat);
extern variety f_var_width(bool, nat);
extern variety f_dummy_variety;
extern void init_variety(void);
/* CONSTRUCTS FOR VERSION */
extern version f_make_version(tdfint, tdfint);
extern version f_user_info(string);
extern version f_dummy_version;
extern void init_version(void);
/* CONSTRUCTS FOR VERSION_LIST */
extern version_list new_version_list(int);
extern version_list add_version_list(version_list, version, int);
extern void init_version_list(void);
/* CONSTRUCTS FOR VERSION_PROPS */
extern version_props f_make_versions(version_list);
extern version_props f_dummy_version_props;
extern void init_version_props(void);
#endif