Subversion Repositories tendra.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
                 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 FROM TDF 4.1
    BY make_tdf (VERSION 2.0), DO NOT EDIT
*/

#define TDF_major                               4
#define TDF_minor                               1

#define LINK_al_tagdef_props                    "aldef"
#define LINK_dg_comp_props                      "dgcompunit"
#define LINK_diag_type_unit                     "diagtype"
#define LINK_diag_unit                          "diagdef"
#define LINK_linkinfo_props                     "linkinfo"
#define LINK_tagdec_props                       "tagdec"
#define LINK_tagdef_props                       "tagdef"
#define LINK_tokdec_props                       "tokdec"
#define LINK_tokdef_props                       "tokdef"
#define LINK_version_props                      "versions"
#define LINK_tld_props                          "tld"

#define LINK_al_tag                             "alignment"
#define LINK_dg_tag                             "dgtag"
#define LINK_diag_tag                           "diagtag"
#define LINK_tag                                "tag"
#define LINK_token                              "token"
#define LINK_label                              "label"

#define LINK_dg                                 "DG"
#define LINK_dg_dim                             "DG_DIM"
#define LINK_dg_filename                        "DG_FILENAME"
#define LINK_dg_idname                          "DG_IDNAME"
#define LINK_dg_name                            "DG_NAME"
#define LINK_dg_type                            "DG_TYPE"
#define LINK_diag_type                          "diag_type"
#define LINK_filename                           "~diag_file"

#define ENS_access( A, B )                      ENC_BITS ( A, 4, B )
#define ENX_access( A, B )                      ENC_EXTN ( A, 4, B )
#define ENC_access_apply_token( A )             ENS_access ( A, 1 )
#define ENC_access_cond( A )                    ENS_access ( A, 2 )
#define ENC_add_accesses( A )                   ENS_access ( A, 3 )
#define ENC_constant( A )                       ENS_access ( A, 4 )
#define ENC_long_jump_access( A )               ENS_access ( A, 5 )
#define ENC_no_other_read( A )                  ENS_access ( A, 6 )
#define ENC_no_other_write( A )                 ENS_access ( A, 7 )
#define ENC_out_par( A )                        ENS_access ( A, 8 )
#define ENC_preserve( A )                       ENS_access ( A, 9 )
#define ENC_register( A )                       ENS_access ( A, 10 )
#define ENC_standard_access( A )                ENS_access ( A, 11 )
#define ENC_used_as_volatile( A )               ENS_access ( A, 12 )
#define ENC_visible( A )                        ENS_access ( A, 13 )

#define ENS_al_tag( A, B )                      ENC_BITS ( A, 1, B )
#define ENX_al_tag( A, B )                      ENC_EXTN ( A, 1, B )
#define ENC_al_tag_apply_token( A )             ENX_al_tag ( A, 2 )
#define ENC_make_al_tag( A, B )                 { ENS_al_tag ( A, 1 ) ; ENC_INT ( A, B ) ; }

#define ENS_al_tagdef( A, B )                   ENC_BITS ( A, 1, B )
#define ENX_al_tagdef( A, B )                   ENC_EXTN ( A, 1, B )
#define ENC_make_al_tagdef( A )                 ENS_al_tagdef ( A, 1 )

#define ENS_alignment( A, B )                   ENC_BITS ( A, 4, B )
#define ENX_alignment( A, B )                   ENC_EXTN ( A, 4, B )
#define ENC_alignment_apply_token( A )          ENS_alignment ( A, 1 )
#define ENC_alignment_cond( A )                 ENS_alignment ( A, 2 )
#define ENC_alignment( A )                      ENS_alignment ( A, 3 )
#define ENC_alloca_alignment( A )               ENS_alignment ( A, 4 )
#define ENC_callees_alignment( A )              ENS_alignment ( A, 5 )
#define ENC_callers_alignment( A )              ENS_alignment ( A, 6 )
#define ENC_code_alignment( A )                 ENS_alignment ( A, 7 )
#define ENC_locals_alignment( A )               ENS_alignment ( A, 8 )
#define ENC_obtain_al_tag( A )                  ENS_alignment ( A, 9 )
#define ENC_parameter_alignment( A )            ENS_alignment ( A, 10 )
#define ENC_unite_alignments( A )               ENS_alignment ( A, 11 )
#define ENC_var_param_alignment( A )            ENS_alignment ( A, 12 )

#define ENS_bitfield_variety( A, B )            ENC_BITS ( A, 2, B )
#define ENX_bitfield_variety( A, B )            ENC_EXTN ( A, 2, B )
#define ENC_bfvar_apply_token( A )              ENS_bitfield_variety ( A, 1 )
#define ENC_bfvar_cond( A )                     ENS_bitfield_variety ( A, 2 )
#define ENC_bfvar_bits( A )                     ENS_bitfield_variety ( A, 3 )

#define ENS_bool( A, B )                        ENC_BITS ( A, 3, B )
#define ENX_bool( A, B )                        ENC_EXTN ( A, 3, B )
#define ENC_bool_apply_token( A )               ENS_bool ( A, 1 )
#define ENC_bool_cond( A )                      ENS_bool ( A, 2 )
#define ENC_false( A )                          ENS_bool ( A, 3 )
#define ENC_true( A )                           ENS_bool ( A, 4 )

#define ENS_callees( A, B )                     ENC_BITS ( A, 2, B )
#define ENX_callees( A, B )                     ENC_EXTN ( A, 2, B )
#define ENC_make_callee_list( A )               ENS_callees ( A, 1 )
#define ENC_make_dynamic_callees( A )           ENS_callees ( A, 2 )
#define ENC_same_callees( A )                   ENS_callees ( A, 3 )

#define ENS_dg( A, B )                          ENC_BITS ( A, 6, B )
#define ENX_dg( A, B )                          ENC_EXTN ( A, 6, B )
#define ENC_dg_apply_token( A )                 ENS_dg ( A, 1 )
#define ENC_make_tag_dg( A )                    ENS_dg ( A, 2 )
#define ENC_abortable_part_dg( A )              ENS_dg ( A, 3 )
#define ENC_accept_dg( A )                      ENS_dg ( A, 4 )
#define ENC_barrier_dg( A )                     ENS_dg ( A, 5 )
#define ENC_branch_dg( A )                      ENS_dg ( A, 6 )
#define ENC_call_dg( A )                        ENS_dg ( A, 7 )
#define ENC_compilation_dg( A )                 ENS_dg ( A, 8 )
#define ENC_destructor_dg( A )                  ENS_dg ( A, 9 )
#define ENC_exception_handler_dg( A )           ENS_dg ( A, 10 )
#define ENC_exception_scope_dg( A )             ENS_dg ( A, 11 )
#define ENC_inline_call_dg( A )                 ENS_dg ( A, 12 )
#define ENC_inline_result_dg( A )               ENS_dg ( A, 13 )
#define ENC_inlined_dg( A )                     ENS_dg ( A, 14 )
#define ENC_jump_dg( A )                        ENS_dg ( A, 15 )
#define ENC_label_dg( A )                       ENS_dg ( A, 16 )
#define ENC_lexical_block_dg( A )               ENS_dg ( A, 17 )
#define ENC_list_dg( A )                        ENS_dg ( A, 18 )
#define ENC_long_jump_dg( A )                   ENS_dg ( A, 19 )
#define ENC_name_decl_dg( A )                   ENS_dg ( A, 20 )
#define ENC_params_dg( A )                      ENS_dg ( A, 21 )
#define ENC_raise_dg( A )                       ENS_dg ( A, 22 )
#define ENC_requeue_dg( A )                     ENS_dg ( A, 23 )
#define ENC_rts_call_dg( A )                    ENS_dg ( A, 24 )
#define ENC_select_dg( A )                      ENS_dg ( A, 25 )
#define ENC_select_alternative_dg( A )          ENS_dg ( A, 26 )
#define ENC_select_guard_dg( A )                ENS_dg ( A, 27 )
#define ENC_singlestep_dg( A )                  ENS_dg ( A, 28 )
#define ENC_source_language_dg( A )             ENS_dg ( A, 29 )
#define ENC_sourcepos_dg( A )                   ENS_dg ( A, 30 )
#define ENC_statement_part_dg( A )              ENS_dg ( A, 31 )
#define ENC_test_dg( A )                        ENS_dg ( A, 32 )
#define ENC_triggering_alternative_dg( A )      ENS_dg ( A, 33 )
#define ENC_with_dg( A )                        ENS_dg ( A, 34 )

#define ENS_dg_accessibility( A, B )            ENC_BITS ( A, 2, B )
#define ENX_dg_accessibility( A, B )            ENC_EXTN ( A, 2, B )
#define ENC_dg_local_accessibility( A )         ENS_dg_accessibility ( A, 1 )
#define ENC_dg_private_accessibility( A )       ENS_dg_accessibility ( A, 2 )
#define ENC_dg_protected_accessibility( A )     ENS_dg_accessibility ( A, 3 )
#define ENC_dg_public_accessibility( A )        ENX_dg_accessibility ( A, 4 )

#define ENS_dg_append( A, B )                   ENC_BITS ( A, 1, B )
#define ENX_dg_append( A, B )                   ENC_EXTN ( A, 1, B )
#define ENC_dg_name_append( A )                 ENS_dg_append ( A, 1 )

#define ENS_dg_bound( A, B )                    ENC_BITS ( A, 2, B )
#define ENX_dg_bound( A, B )                    ENC_EXTN ( A, 2, B )
#define ENC_dg_dynamic_bound( A )               ENS_dg_bound ( A, 1 )
#define ENC_dg_static_bound( A )                ENS_dg_bound ( A, 2 )
#define ENC_dg_unknown_bound( A )               ENS_dg_bound ( A, 3 )

#define ENS_dg_class_base( A, B )               ENC_BITS ( A, 1, B )
#define ENX_dg_class_base( A, B )               ENC_EXTN ( A, 1, B )
#define ENC_make_dg_class_base( A )             ENS_dg_class_base ( A, 1 )

#define ENS_dg_classmem( A, B )                 ENC_BITS ( A, 3, B )
#define ENX_dg_classmem( A, B )                 ENC_EXTN ( A, 3, B )
#define ENC_dg_tag_classmem( A )                ENS_dg_classmem ( A, 1 )
#define ENC_dg_field_classmem( A )              ENS_dg_classmem ( A, 2 )
#define ENC_dg_function_classmem( A )           ENS_dg_classmem ( A, 3 )
#define ENC_dg_indirect_classmem( A )           ENS_dg_classmem ( A, 4 )
#define ENC_dg_name_classmem( A )               ENS_dg_classmem ( A, 5 )

#define ENS_dg_compilation( A, B )              ENC_BITS ( A, 2, B )
#define ENX_dg_compilation( A, B )              ENC_EXTN ( A, 2, B )
#define ENC_dg_tag_compilation( A )             ENS_dg_compilation ( A, 1 )
#define ENC_make_dg_compilation( A )            ENS_dg_compilation ( A, 2 )

#define ENS_dg_constraint( A, B )               ENC_BITS ( A, 2, B )
#define ENX_dg_constraint( A, B )               ENC_EXTN ( A, 2, B )
#define ENC_dg_type_constraint( A )             ENS_dg_constraint ( A, 1 )
#define ENC_dg_value_constraint( A )            ENS_dg_constraint ( A, 2 )

#define ENS_dg_default( A, B )                  ENC_BITS ( A, 1, B )
#define ENX_dg_default( A, B )                  ENC_EXTN ( A, 1, B )
#define ENC_make_dg_default( A )                ENS_dg_default ( A, 1 )

#define ENS_dg_dim( A, B )                      ENC_BITS ( A, 3, B )
#define ENX_dg_dim( A, B )                      ENC_EXTN ( A, 3, B )
#define ENC_dg_dim_apply_token( A )             ENS_dg_dim ( A, 1 )
#define ENC_dg_tag_dim( A )                     ENS_dg_dim ( A, 2 )
#define ENC_dg_bounds_dim( A )                  ENS_dg_dim ( A, 3 )
#define ENC_dg_count_dim( A )                   ENS_dg_dim ( A, 4 )
#define ENC_dg_type_dim( A )                    ENS_dg_dim ( A, 5 )
#define ENC_dg_unspecified_dim( A )             ENS_dg_dim ( A, 6 )

#define ENS_dg_discrim( A, B )                  ENC_BITS ( A, 1, B )
#define ENX_dg_discrim( A, B )                  ENC_EXTN ( A, 1, B )
#define ENC_make_dg_discrim( A )                ENS_dg_discrim ( A, 1 )

#define ENS_dg_enum( A, B )                     ENC_BITS ( A, 2, B )
#define ENX_dg_enum( A, B )                     ENC_EXTN ( A, 2, B )
#define ENC_dg_tag_enum( A )                    ENS_dg_enum ( A, 1 )
#define ENC_make_dg_enum( A )                   ENS_dg_enum ( A, 2 )
#define ENC_dg_char_enum( A )                   ENS_dg_enum ( A, 3 )

#define ENS_dg_filename( A, B )                 ENC_BITS ( A, 2, B )
#define ENX_dg_filename( A, B )                 ENC_EXTN ( A, 2, B )
#define ENC_dg_filename_apply_token( A )        ENS_dg_filename ( A, 1 )
#define ENC_make_dg_filename( A )               ENS_dg_filename ( A, 2 )

#define ENS_dg_idname( A, B )                   ENC_BITS ( A, 3, B )
#define ENX_dg_idname( A, B )                   ENC_EXTN ( A, 3, B )
#define ENC_dg_idname_apply_token( A )          ENS_dg_idname ( A, 1 )
#define ENC_dg_anonymous_idname( A )            ENS_dg_idname ( A, 2 )
#define ENC_dg_artificial_idname( A )           ENS_dg_idname ( A, 3 )
#define ENC_dg_external_idname( A )             ENS_dg_idname ( A, 4 )
#define ENC_dg_instance_idname( A )             ENS_dg_idname ( A, 5 )
#define ENC_dg_sourcestring_idname( A )         ENS_dg_idname ( A, 6 )

#define ENS_dg_macro( A, B )                    ENC_BITS ( A, 2, B )
#define ENX_dg_macro( A, B )                    ENC_EXTN ( A, 2, B )
#define ENC_dg_function_macro( A )              ENS_dg_macro ( A, 1 )
#define ENC_dg_include_macro( A )               ENS_dg_macro ( A, 2 )
#define ENC_dg_object_macro( A )                ENS_dg_macro ( A, 3 )
#define ENC_dg_undef_macro( A )                 ENX_dg_macro ( A, 4 )

#define ENS_dg_name( A, B )                     ENC_BITS ( A, 5, B )
#define ENX_dg_name( A, B )                     ENC_EXTN ( A, 5, B )
#define ENC_dg_name_apply_token( A )            ENS_dg_name ( A, 1 )
#define ENC_dg_tag_name( A )                    ENS_dg_name ( A, 2 )
#define ENC_dg_constant_name( A )               ENS_dg_name ( A, 3 )
#define ENC_dg_entry_family_name( A )           ENS_dg_name ( A, 4 )
#define ENC_dg_entry_name( A )                  ENS_dg_name ( A, 5 )
#define ENC_dg_inlined_name( A )                ENS_dg_name ( A, 6 )
#define ENC_dg_is_spec_name( A )                ENS_dg_name ( A, 7 )
#define ENC_dg_module_name( A )                 ENS_dg_name ( A, 8 )
#define ENC_dg_namespace_name( A )              ENS_dg_name ( A, 9 )
#define ENC_dg_object_name( A )                 ENS_dg_name ( A, 10 )
#define ENC_dg_proc_name( A )                   ENS_dg_name ( A, 11 )
#define ENC_dg_program_name( A )                ENS_dg_name ( A, 12 )
#define ENC_dg_rep_clause_name( A )             ENS_dg_name ( A, 13 )
#define ENC_dg_spec_ref_name( A )               ENS_dg_name ( A, 14 )
#define ENC_dg_subunit_name( A )                ENS_dg_name ( A, 15 )
#define ENC_dg_type_name( A )                   ENS_dg_name ( A, 16 )
#define ENC_dg_visibility_name( A )             ENS_dg_name ( A, 17 )

#define ENS_dg_namelist( A, B )                 ENC_BITS ( A, 2, B )
#define ENX_dg_namelist( A, B )                 ENC_EXTN ( A, 2, B )
#define ENC_dg_tag_namelist( A )                ENS_dg_namelist ( A, 1 )
#define ENC_make_dg_namelist( A )               ENS_dg_namelist ( A, 2 )

#define ENS_dg_param( A, B )                    ENC_BITS ( A, 2, B )
#define ENX_dg_param( A, B )                    ENC_EXTN ( A, 2, B )
#define ENC_dg_object_param( A )                ENS_dg_param ( A, 1 )
#define ENC_dg_type_param( A )                  ENS_dg_param ( A, 2 )

#define ENS_dg_param_mode( A, B )               ENC_BITS ( A, 2, B )
#define ENX_dg_param_mode( A, B )               ENC_EXTN ( A, 2, B )
#define ENC_dg_in_mode( A )                     ENS_dg_param_mode ( A, 1 )
#define ENC_dg_inout_mode( A )                  ENS_dg_param_mode ( A, 2 )
#define ENC_dg_out_mode( A )                    ENS_dg_param_mode ( A, 3 )

#define ENS_dg_qualifier( A, B )                ENC_BITS ( A, 3, B )
#define ENX_dg_qualifier( A, B )                ENC_EXTN ( A, 3, B )
#define ENC_dg_aliased_qualifier( A )           ENS_dg_qualifier ( A, 1 )
#define ENC_dg_class_wide_qualifier( A )        ENS_dg_qualifier ( A, 2 )
#define ENC_dg_const_qualifier( A )             ENS_dg_qualifier ( A, 3 )
#define ENC_dg_limited_qualifier( A )           ENS_dg_qualifier ( A, 4 )
#define ENC_dg_volatile_qualifier( A )          ENS_dg_qualifier ( A, 5 )

#define ENS_dg_sourcepos( A, B )                ENC_BITS ( A, 3, B )
#define ENX_dg_sourcepos( A, B )                ENC_EXTN ( A, 3, B )
#define ENC_dg_file_sourcepos( A )              ENS_dg_sourcepos ( A, 1 )
#define ENC_dg_global_sourcepos( A )            ENS_dg_sourcepos ( A, 2 )
#define ENC_dg_mark_sourcepos( A )              ENS_dg_sourcepos ( A, 3 )
#define ENC_dg_null_sourcepos( A )              ENS_dg_sourcepos ( A, 4 )
#define ENC_dg_span_sourcepos( A )              ENS_dg_sourcepos ( A, 5 )

#define ENS_dg_tag( A, B )                      ENC_BITS ( A, 1, B )
#define ENX_dg_tag( A, B )                      ENC_EXTN ( A, 1, B )
#define ENC_make_dg_tag( A, B )                 { ENS_dg_tag ( A, 1 ) ; ENC_INT ( A, B ) ; }

#define ENS_dg_type( A, B )                     ENC_BITS ( A, 6, B )
#define ENX_dg_type( A, B )                     ENC_EXTN ( A, 6, B )
#define ENC_dg_type_apply_token( A )            ENS_dg_type ( A, 1 )
#define ENC_dg_tag_type( A )                    ENS_dg_type ( A, 2 )
#define ENC_dg_address_type( A )                ENS_dg_type ( A, 3 )
#define ENC_dg_array_type( A )                  ENS_dg_type ( A, 4 )
#define ENC_dg_bitfield_type( A )               ENS_dg_type ( A, 5 )
#define ENC_dg_boolean_type( A )                ENS_dg_type ( A, 6 )
#define ENC_dg_char_type( A )                   ENS_dg_type ( A, 7 )
#define ENC_dg_class_type( A )                  ENS_dg_type ( A, 8 )
#define ENC_dg_complex_float_type( A )          ENS_dg_type ( A, 9 )
#define ENC_dg_enum_type( A )                   ENS_dg_type ( A, 10 )
#define ENC_dg_file_type( A )                   ENS_dg_type ( A, 11 )
#define ENC_dg_fixed_point_type( A )            ENS_dg_type ( A, 12 )
#define ENC_dg_float_type( A )                  ENS_dg_type ( A, 13 )
#define ENC_dg_floating_digits_type( A )        ENS_dg_type ( A, 14 )
#define ENC_dg_inlined_type( A )                ENS_dg_type ( A, 15 )
#define ENC_dg_integer_type( A )                ENS_dg_type ( A, 16 )
#define ENC_dg_is_spec_type( A )                ENS_dg_type ( A, 17 )
#define ENC_dg_modular_type( A )                ENS_dg_type ( A, 18 )
#define ENC_dg_named_type( A )                  ENS_dg_type ( A, 19 )
#define ENC_dg_packed_type( A )                 ENS_dg_type ( A, 20 )
#define ENC_dg_pointer_type( A )                ENS_dg_type ( A, 21 )
#define ENC_dg_proc_type( A )                   ENS_dg_type ( A, 22 )
#define ENC_dg_ptr_memdata_type( A )            ENS_dg_type ( A, 23 )
#define ENC_dg_ptr_memfn_type( A )              ENS_dg_type ( A, 24 )
#define ENC_dg_qualified_type( A )              ENS_dg_type ( A, 25 )
#define ENC_dg_reference_type( A )              ENS_dg_type ( A, 26 )
#define ENC_dg_set_type( A )                    ENS_dg_type ( A, 27 )
#define ENC_dg_spec_ref_type( A )               ENS_dg_type ( A, 28 )
#define ENC_dg_string_type( A )                 ENS_dg_type ( A, 29 )
#define ENC_dg_struct_type( A )                 ENS_dg_type ( A, 30 )
#define ENC_dg_subrange_type( A )               ENS_dg_type ( A, 31 )
#define ENC_dg_synchronous_type( A )            ENS_dg_type ( A, 32 )
#define ENC_dg_task_type( A )                   ENS_dg_type ( A, 33 )
#define ENC_dg_unknown_type( A )                ENS_dg_type ( A, 34 )
#define ENC_dg_void_type( A )                   ENS_dg_type ( A, 35 )

#define ENS_dg_variant( A, B )                  ENC_BITS ( A, 1, B )
#define ENX_dg_variant( A, B )                  ENC_EXTN ( A, 1, B )
#define ENC_make_dg_variant( A )                ENS_dg_variant ( A, 1 )

#define ENS_dg_varpart( A, B )                  ENC_BITS ( A, 2, B )
#define ENX_dg_varpart( A, B )                  ENC_EXTN ( A, 2, B )
#define ENC_dg_discrim_varpart( A )             ENS_dg_varpart ( A, 1 )
#define ENC_dg_sibl_discrim_varpart( A )        ENS_dg_varpart ( A, 2 )
#define ENC_dg_undiscrim_varpart( A )           ENS_dg_varpart ( A, 3 )

#define ENS_dg_virtuality( A, B )               ENC_BITS ( A, 2, B )
#define ENX_dg_virtuality( A, B )               ENC_EXTN ( A, 2, B )
#define ENC_dg_abstract_virtuality( A )         ENS_dg_virtuality ( A, 1 )
#define ENC_dg_virtual_virtuality( A )          ENS_dg_virtuality ( A, 2 )

#define ENS_diag_descriptor( A, B )             ENC_BITS ( A, 2, B )
#define ENX_diag_descriptor( A, B )             ENC_EXTN ( A, 2, B )
#define ENC_diag_desc_id( A )                   ENS_diag_descriptor ( A, 1 )
#define ENC_diag_desc_struct( A )               ENS_diag_descriptor ( A, 2 )
#define ENC_diag_desc_typedef( A )              ENS_diag_descriptor ( A, 3 )

#define ENS_diag_tag( A, B )                    ENC_BITS ( A, 1, B )
#define ENX_diag_tag( A, B )                    ENC_EXTN ( A, 1, B )
#define ENC_make_diag_tag( A, B )               { ENS_diag_tag ( A, 1 ) ; ENC_INT ( A, B ) ; }

#define ENS_diag_tagdef( A, B )                 ENC_BITS ( A, 1, B )
#define ENX_diag_tagdef( A, B )                 ENC_EXTN ( A, 1, B )
#define ENC_make_diag_tagdef( A )               ENS_diag_tagdef ( A, 1 )

#define ENS_diag_tq( A, B )                     ENC_BITS ( A, 2, B )
#define ENX_diag_tq( A, B )                     ENC_EXTN ( A, 2, B )
#define ENC_add_diag_const( A )                 ENS_diag_tq ( A, 1 )
#define ENC_add_diag_volatile( A )              ENS_diag_tq ( A, 2 )
#define ENC_diag_tq_null( A )                   ENS_diag_tq ( A, 3 )

#define ENS_diag_type( A, B )                   ENC_BITS ( A, 4, B )
#define ENX_diag_type( A, B )                   ENC_EXTN ( A, 4, B )
#define ENC_diag_type_apply_token( A )          ENS_diag_type ( A, 1 )
#define ENC_diag_array( A )                     ENS_diag_type ( A, 2 )
#define ENC_diag_bitfield( A )                  ENS_diag_type ( A, 3 )
#define ENC_diag_enum( A )                      ENS_diag_type ( A, 4 )
#define ENC_diag_floating_variety( A )          ENS_diag_type ( A, 5 )
#define ENC_diag_loc( A )                       ENS_diag_type ( A, 6 )
#define ENC_diag_proc( A )                      ENS_diag_type ( A, 7 )
#define ENC_diag_ptr( A )                       ENS_diag_type ( A, 8 )
#define ENC_diag_struct( A )                    ENS_diag_type ( A, 9 )
#define ENC_diag_type_null( A )                 ENS_diag_type ( A, 10 )
#define ENC_diag_union( A )                     ENS_diag_type ( A, 11 )
#define ENC_diag_variety( A )                   ENS_diag_type ( A, 12 )
#define ENC_use_diag_tag( A )                   ENS_diag_type ( A, 13 )

#define ENS_error_code( A, B )                  ENC_BITS ( A, 2, B )
#define ENX_error_code( A, B )                  ENC_EXTN ( A, 2, B )
#define ENC_nil_access( A )                     ENS_error_code ( A, 1 )
#define ENC_overflow( A )                       ENS_error_code ( A, 2 )
#define ENC_stack_overflow( A )                 ENS_error_code ( A, 3 )

#define ENS_error_treatment( A, B )             ENC_BITS ( A, 3, B )
#define ENX_error_treatment( A, B )             ENC_EXTN ( A, 3, B )
#define ENC_errt_apply_token( A )               ENS_error_treatment ( A, 1 )
#define ENC_errt_cond( A )                      ENS_error_treatment ( A, 2 )
#define ENC_continue( A )                       ENS_error_treatment ( A, 3 )
#define ENC_error_jump( A )                     ENS_error_treatment ( A, 4 )
#define ENC_trap( A )                           ENS_error_treatment ( A, 5 )
#define ENC_wrap( A )                           ENS_error_treatment ( A, 6 )
#define ENC_impossible( A )                     ENS_error_treatment ( A, 7 )

#define ENS_exp( A, B )                         ENC_BITS ( A, 7, B )
#define ENX_exp( A, B )                         ENC_EXTN ( A, 7, B )
#define ENC_exp_apply_token( A )                ENS_exp ( A, 1 )
#define ENC_exp_cond( A )                       ENS_exp ( A, 2 )
#define ENC_abs( A )                            ENS_exp ( A, 3 )
#define ENC_add_to_ptr( A )                     ENS_exp ( A, 4 )
#define ENC_and( A )                            ENS_exp ( A, 5 )
#define ENC_apply_proc( A )                     ENS_exp ( A, 6 )
#define ENC_apply_general_proc( A )             ENS_exp ( A, 7 )
#define ENC_assign( A )                         ENS_exp ( A, 8 )
#define ENC_assign_with_mode( A )               ENS_exp ( A, 9 )
#define ENC_bitfield_assign( A )                ENS_exp ( A, 10 )
#define ENC_bitfield_assign_with_mode( A )      ENS_exp ( A, 11 )
#define ENC_bitfield_contents( A )              ENS_exp ( A, 12 )
#define ENC_bitfield_contents_with_mode( A )    ENS_exp ( A, 13 )
#define ENC_case( A )                           ENS_exp ( A, 14 )
#define ENC_change_bitfield_to_int( A )         ENS_exp ( A, 15 )
#define ENC_change_floating_variety( A )        ENS_exp ( A, 16 )
#define ENC_change_variety( A )                 ENS_exp ( A, 17 )
#define ENC_change_int_to_bitfield( A )         ENS_exp ( A, 18 )
#define ENC_complex_conjugate( A )              ENS_exp ( A, 19 )
#define ENC_component( A )                      ENS_exp ( A, 20 )
#define ENC_concat_nof( A )                     ENS_exp ( A, 21 )
#define ENC_conditional( A )                    ENS_exp ( A, 22 )
#define ENC_contents( A )                       ENS_exp ( A, 23 )
#define ENC_contents_with_mode( A )             ENS_exp ( A, 24 )
#define ENC_current_env( A )                    ENS_exp ( A, 25 )
#define ENC_div0( A )                           ENS_exp ( A, 26 )
#define ENC_div1( A )                           ENS_exp ( A, 27 )
#define ENC_div2( A )                           ENS_exp ( A, 28 )
#define ENC_env_offset( A )                     ENS_exp ( A, 29 )
#define ENC_env_size( A )                       ENS_exp ( A, 30 )
#define ENC_fail_installer( A )                 ENS_exp ( A, 31 )
#define ENC_float_int( A )                      ENS_exp ( A, 32 )
#define ENC_floating_abs( A )                   ENS_exp ( A, 33 )
#define ENC_floating_div( A )                   ENS_exp ( A, 34 )
#define ENC_floating_minus( A )                 ENS_exp ( A, 35 )
#define ENC_floating_maximum( A )               ENS_exp ( A, 36 )
#define ENC_floating_minimum( A )               ENS_exp ( A, 37 )
#define ENC_floating_mult( A )                  ENS_exp ( A, 38 )
#define ENC_floating_negate( A )                ENS_exp ( A, 39 )
#define ENC_floating_plus( A )                  ENS_exp ( A, 40 )
#define ENC_floating_power( A )                 ENS_exp ( A, 41 )
#define ENC_floating_test( A )                  ENS_exp ( A, 42 )
#define ENC_goto( A )                           ENS_exp ( A, 43 )
#define ENC_goto_local_lv( A )                  ENS_exp ( A, 44 )
#define ENC_identify( A )                       ENS_exp ( A, 45 )
#define ENC_ignorable( A )                      ENS_exp ( A, 46 )
#define ENC_imaginary_part( A )                 ENS_exp ( A, 47 )
#define ENC_initial_value( A )                  ENS_exp ( A, 48 )
#define ENC_integer_test( A )                   ENS_exp ( A, 49 )
#define ENC_labelled( A )                       ENS_exp ( A, 50 )
#define ENC_last_local( A )                     ENS_exp ( A, 51 )
#define ENC_local_alloc( A )                    ENS_exp ( A, 52 )
#define ENC_local_alloc_check( A )              ENS_exp ( A, 53 )
#define ENC_local_free( A )                     ENS_exp ( A, 54 )
#define ENC_local_free_all( A )                 ENS_exp ( A, 55 )
#define ENC_long_jump( A )                      ENS_exp ( A, 56 )
#define ENC_make_complex( A )                   ENS_exp ( A, 57 )
#define ENC_make_compound( A )                  ENS_exp ( A, 58 )
#define ENC_make_floating( A )                  ENS_exp ( A, 59 )
#define ENC_make_general_proc( A )              ENS_exp ( A, 60 )
#define ENC_make_int( A )                       ENS_exp ( A, 61 )
#define ENC_make_local_lv( A )                  ENS_exp ( A, 62 )
#define ENC_make_nof( A )                       ENS_exp ( A, 63 )
#define ENC_make_nof_int( A )                   ENS_exp ( A, 64 )
#define ENC_make_null_local_lv( A )             ENS_exp ( A, 65 )
#define ENC_make_null_proc( A )                 ENS_exp ( A, 66 )
#define ENC_make_null_ptr( A )                  ENS_exp ( A, 67 )
#define ENC_make_proc( A )                      ENS_exp ( A, 68 )
#define ENC_make_stack_limit( A )               ENS_exp ( A, 116 )
#define ENC_make_top( A )                       ENS_exp ( A, 69 )
#define ENC_make_value( A )                     ENS_exp ( A, 70 )
#define ENC_maximum( A )                        ENS_exp ( A, 71 )
#define ENC_minimum( A )                        ENS_exp ( A, 72 )
#define ENC_minus( A )                          ENS_exp ( A, 73 )
#define ENC_move_some( A )                      ENS_exp ( A, 74 )
#define ENC_mult( A )                           ENS_exp ( A, 75 )
#define ENC_n_copies( A )                       ENS_exp ( A, 76 )
#define ENC_negate( A )                         ENS_exp ( A, 77 )
#define ENC_not( A )                            ENS_exp ( A, 78 )
#define ENC_obtain_tag( A )                     ENS_exp ( A, 79 )
#define ENC_offset_add( A )                     ENS_exp ( A, 80 )
#define ENC_offset_div( A )                     ENS_exp ( A, 81 )
#define ENC_offset_div_by_int( A )              ENS_exp ( A, 82 )
#define ENC_offset_max( A )                     ENS_exp ( A, 83 )
#define ENC_offset_mult( A )                    ENS_exp ( A, 84 )
#define ENC_offset_negate( A )                  ENS_exp ( A, 85 )
#define ENC_offset_pad( A )                     ENS_exp ( A, 86 )
#define ENC_offset_subtract( A )                ENS_exp ( A, 87 )
#define ENC_offset_test( A )                    ENS_exp ( A, 88 )
#define ENC_offset_zero( A )                    ENS_exp ( A, 89 )
#define ENC_or( A )                             ENS_exp ( A, 90 )
#define ENC_plus( A )                           ENS_exp ( A, 91 )
#define ENC_pointer_test( A )                   ENS_exp ( A, 92 )
#define ENC_power( A )                          ENS_exp ( A, 93 )
#define ENC_proc_test( A )                      ENS_exp ( A, 94 )
#define ENC_profile( A )                        ENS_exp ( A, 95 )
#define ENC_real_part( A )                      ENS_exp ( A, 96 )
#define ENC_rem0( A )                           ENS_exp ( A, 97 )
#define ENC_rem1( A )                           ENS_exp ( A, 98 )
#define ENC_rem2( A )                           ENS_exp ( A, 99 )
#define ENC_repeat( A )                         ENS_exp ( A, 100 )
#define ENC_return( A )                         ENS_exp ( A, 101 )
#define ENC_return_to_label( A )                ENS_exp ( A, 102 )
#define ENC_round_with_mode( A )                ENS_exp ( A, 103 )
#define ENC_rotate_left( A )                    ENS_exp ( A, 104 )
#define ENC_rotate_right( A )                   ENS_exp ( A, 105 )
#define ENC_sequence( A )                       ENS_exp ( A, 106 )
#define ENC_set_stack_limit( A )                ENS_exp ( A, 107 )
#define ENC_shape_offset( A )                   ENS_exp ( A, 108 )
#define ENC_shift_left( A )                     ENS_exp ( A, 109 )
#define ENC_shift_right( A )                    ENS_exp ( A, 110 )
#define ENC_subtract_ptrs( A )                  ENS_exp ( A, 111 )
#define ENC_tail_call( A )                      ENS_exp ( A, 112 )
#define ENC_untidy_return( A )                  ENS_exp ( A, 113 )
#define ENC_variable( A )                       ENS_exp ( A, 114 )
#define ENC_xor( A )                            ENS_exp ( A, 115 )

#define ENS_external( A, B )                    ENC_BITS ( A, 2, B )
#define ENX_external( A, B )                    ENC_EXTN ( A, 2, B )
#define ENC_string_extern( A )                  ENS_external ( A, 1 )
#define ENC_unique_extern( A )                  ENS_external ( A, 2 )
#define ENC_chain_extern( A )                   ENS_external ( A, 3 )

#define ENS_filename( A, B )                    ENC_BITS ( A, 2, B )
#define ENX_filename( A, B )                    ENC_EXTN ( A, 2, B )
#define ENC_filename_apply_token( A )           ENS_filename ( A, 1 )
#define ENC_make_filename( A )                  ENS_filename ( A, 2 )

#define ENS_floating_variety( A, B )            ENC_BITS ( A, 3, B )
#define ENX_floating_variety( A, B )            ENC_EXTN ( A, 3, B )
#define ENC_flvar_apply_token( A )              ENS_floating_variety ( A, 1 )
#define ENC_flvar_cond( A )                     ENS_floating_variety ( A, 2 )
#define ENC_flvar_parms( A )                    ENS_floating_variety ( A, 3 )
#define ENC_complex_parms( A )                  ENS_floating_variety ( A, 4 )
#define ENC_float_of_complex( A )               ENS_floating_variety ( A, 5 )
#define ENC_complex_of_float( A )               ENS_floating_variety ( A, 6 )

#define ENS_label( A, B )                       ENC_BITS ( A, 1, B )
#define ENX_label( A, B )                       ENC_EXTN ( A, 1, B )
#define ENC_label_apply_token( A )              ENX_label ( A, 2 )
#define ENC_make_label( A, B )                  { ENS_label ( A, 1 ) ; ENC_INT ( A, B ) ; }

#define ENS_linkinfo( A, B )                    ENC_BITS ( A, 2, B )
#define ENX_linkinfo( A, B )                    ENC_EXTN ( A, 2, B )
#define ENC_static_name_def( A )                ENS_linkinfo ( A, 1 )
#define ENC_make_comment( A )                   ENS_linkinfo ( A, 2 )
#define ENC_make_weak_defn( A )                 ENS_linkinfo ( A, 3 )
#define ENC_make_weak_symbol( A )               ENX_linkinfo ( A, 4 )

#define ENS_nat( A, B )                         ENC_BITS ( A, 3, B )
#define ENX_nat( A, B )                         ENC_EXTN ( A, 3, B )
#define ENC_nat_apply_token( A )                ENS_nat ( A, 1 )
#define ENC_nat_cond( A )                       ENS_nat ( A, 2 )
#define ENC_computed_nat( A )                   ENS_nat ( A, 3 )
#define ENC_error_val( A )                      ENS_nat ( A, 4 )
#define ENC_make_nat( A )                       ENS_nat ( A, 5 )

#define ENS_ntest( A, B )                       ENC_BITS ( A, 4, B )
#define ENX_ntest( A, B )                       ENC_EXTN ( A, 4, B )
#define ENC_ntest_apply_token( A )              ENS_ntest ( A, 1 )
#define ENC_ntest_cond( A )                     ENS_ntest ( A, 2 )
#define ENC_equal( A )                          ENS_ntest ( A, 3 )
#define ENC_greater_than( A )                   ENS_ntest ( A, 4 )
#define ENC_greater_than_or_equal( A )          ENS_ntest ( A, 5 )
#define ENC_less_than( A )                      ENS_ntest ( A, 6 )
#define ENC_less_than_or_equal( A )             ENS_ntest ( A, 7 )
#define ENC_not_equal( A )                      ENS_ntest ( A, 8 )
#define ENC_not_greater_than( A )               ENS_ntest ( A, 9 )
#define ENC_not_greater_than_or_equal( A )      ENS_ntest ( A, 10 )
#define ENC_not_less_than( A )                  ENS_ntest ( A, 11 )
#define ENC_not_less_than_or_equal( A )         ENS_ntest ( A, 12 )
#define ENC_less_than_or_greater_than( A )      ENS_ntest ( A, 13 )
#define ENC_not_less_than_and_not_great( A )    ENS_ntest ( A, 14 )
#define ENC_comparable( A )                     ENS_ntest ( A, 15 )
#define ENC_not_comparable( A )                 ENX_ntest ( A, 16 )

#define ENS_procprops( A, B )                   ENC_BITS ( A, 4, B )
#define ENX_procprops( A, B )                   ENC_EXTN ( A, 4, B )
#define ENC_procprops_apply_token( A )          ENS_procprops ( A, 1 )
#define ENC_procprops_cond( A )                 ENS_procprops ( A, 2 )
#define ENC_add_procprops( A )                  ENS_procprops ( A, 3 )
#define ENC_check_stack( A )                    ENS_procprops ( A, 4 )
#define ENC_inline( A )                         ENS_procprops ( A, 5 )
#define ENC_no_long_jump_dest( A )              ENS_procprops ( A, 6 )
#define ENC_untidy( A )                         ENS_procprops ( A, 7 )
#define ENC_var_callees( A )                    ENS_procprops ( A, 8 )
#define ENC_var_callers( A )                    ENS_procprops ( A, 9 )

#define ENS_rounding_mode( A, B )               ENC_BITS ( A, 3, B )
#define ENX_rounding_mode( A, B )               ENC_EXTN ( A, 3, B )
#define ENC_rounding_mode_apply_token( A )      ENS_rounding_mode ( A, 1 )
#define ENC_rounding_mode_cond( A )             ENS_rounding_mode ( A, 2 )
#define ENC_round_as_state( A )                 ENS_rounding_mode ( A, 3 )
#define ENC_to_nearest( A )                     ENS_rounding_mode ( A, 4 )
#define ENC_toward_larger( A )                  ENS_rounding_mode ( A, 5 )
#define ENC_toward_smaller( A )                 ENS_rounding_mode ( A, 6 )
#define ENC_toward_zero( A )                    ENS_rounding_mode ( A, 7 )

#define ENS_shape( A, B )                       ENC_BITS ( A, 4, B )
#define ENX_shape( A, B )                       ENC_EXTN ( A, 4, B )
#define ENC_shape_apply_token( A )              ENS_shape ( A, 1 )
#define ENC_shape_cond( A )                     ENS_shape ( A, 2 )
#define ENC_bitfield( A )                       ENS_shape ( A, 3 )
#define ENC_bottom( A )                         ENS_shape ( A, 4 )
#define ENC_compound( A )                       ENS_shape ( A, 5 )
#define ENC_floating( A )                       ENS_shape ( A, 6 )
#define ENC_integer( A )                        ENS_shape ( A, 7 )
#define ENC_nof( A )                            ENS_shape ( A, 8 )
#define ENC_offset( A )                         ENS_shape ( A, 9 )
#define ENC_pointer( A )                        ENS_shape ( A, 10 )
#define ENC_proc( A )                           ENS_shape ( A, 11 )
#define ENC_top( A )                            ENS_shape ( A, 12 )

#define ENS_signed_nat( A, B )                  ENC_BITS ( A, 3, B )
#define ENX_signed_nat( A, B )                  ENC_EXTN ( A, 3, B )
#define ENC_signed_nat_apply_token( A )         ENS_signed_nat ( A, 1 )
#define ENC_signed_nat_cond( A )                ENS_signed_nat ( A, 2 )
#define ENC_computed_signed_nat( A )            ENS_signed_nat ( A, 3 )
#define ENC_make_signed_nat( A )                ENS_signed_nat ( A, 4 )
#define ENC_snat_from_nat( A )                  ENS_signed_nat ( A, 5 )

#define ENS_sortname( A, B )                    ENC_BITS ( A, 5, B )
#define ENX_sortname( A, B )                    ENC_EXTN ( A, 5, B )
#define ENC_access( A )                         ENS_sortname ( A, 1 )
#define ENC_al_tag( A )                         ENS_sortname ( A, 2 )
#define ENC_alignment_sort( A )                 ENS_sortname ( A, 3 )
#define ENC_bitfield_variety( A )               ENS_sortname ( A, 4 )
#define ENC_bool( A )                           ENS_sortname ( A, 5 )
#define ENC_error_treatment( A )                ENS_sortname ( A, 6 )
#define ENC_exp( A )                            ENS_sortname ( A, 7 )
#define ENC_floating_variety( A )               ENS_sortname ( A, 8 )
#define ENC_foreign_sort( A )                   ENS_sortname ( A, 9 )
#define ENC_label( A )                          ENS_sortname ( A, 10 )
#define ENC_nat( A )                            ENS_sortname ( A, 11 )
#define ENC_ntest( A )                          ENS_sortname ( A, 12 )
#define ENC_procprops( A )                      ENS_sortname ( A, 13 )
#define ENC_rounding_mode( A )                  ENS_sortname ( A, 14 )
#define ENC_shape( A )                          ENS_sortname ( A, 15 )
#define ENC_signed_nat( A )                     ENS_sortname ( A, 16 )
#define ENC_string( A )                         ENS_sortname ( A, 17 )
#define ENC_tag( A )                            ENS_sortname ( A, 18 )
#define ENC_transfer_mode( A )                  ENS_sortname ( A, 19 )
#define ENC_token( A )                          ENS_sortname ( A, 20 )
#define ENC_variety( A )                        ENS_sortname ( A, 21 )

#define ENS_sourcemark( A, B )                  ENC_BITS ( A, 1, B )
#define ENX_sourcemark( A, B )                  ENC_EXTN ( A, 1, B )
#define ENC_make_sourcemark( A )                ENS_sourcemark ( A, 1 )

#define ENS_string( A, B )                      ENC_BITS ( A, 3, B )
#define ENX_string( A, B )                      ENC_EXTN ( A, 3, B )
#define ENC_string_apply_token( A )             ENS_string ( A, 1 )
#define ENC_string_cond( A )                    ENS_string ( A, 2 )
#define ENC_concat_string( A )                  ENS_string ( A, 3 )
#define ENC_make_string( A )                    ENS_string ( A, 4 )

#define ENS_tag( A, B )                         ENC_BITS ( A, 1, B )
#define ENX_tag( A, B )                         ENC_EXTN ( A, 1, B )
#define ENC_tag_apply_token( A )                ENX_tag ( A, 2 )
#define ENC_make_tag( A, B )                    { ENS_tag ( A, 1 ) ; ENC_INT ( A, B ) ; }

#define ENS_tagdec( A, B )                      ENC_BITS ( A, 2, B )
#define ENX_tagdec( A, B )                      ENC_EXTN ( A, 2, B )
#define ENC_make_id_tagdec( A )                 ENS_tagdec ( A, 1 )
#define ENC_make_var_tagdec( A )                ENS_tagdec ( A, 2 )
#define ENC_common_tagdec( A )                  ENS_tagdec ( A, 3 )

#define ENS_tagdef( A, B )                      ENC_BITS ( A, 2, B )
#define ENX_tagdef( A, B )                      ENC_EXTN ( A, 2, B )
#define ENC_make_id_tagdef( A )                 ENS_tagdef ( A, 1 )
#define ENC_make_var_tagdef( A )                ENS_tagdef ( A, 2 )
#define ENC_common_tagdef( A )                  ENS_tagdef ( A, 3 )

#define ENS_tokdec( A, B )                      ENC_BITS ( A, 1, B )
#define ENX_tokdec( A, B )                      ENC_EXTN ( A, 1, B )
#define ENC_make_tokdec( A )                    ENS_tokdec ( A, 1 )

#define ENS_tokdef( A, B )                      ENC_BITS ( A, 1, B )
#define ENX_tokdef( A, B )                      ENC_EXTN ( A, 1, B )
#define ENC_make_tokdef( A )                    ENS_tokdef ( A, 1 )

#define ENS_token( A, B )                       ENC_BITS ( A, 2, B )
#define ENX_token( A, B )                       ENC_EXTN ( A, 2, B )
#define ENC_token_apply_token( A )              ENS_token ( A, 1 )
#define ENC_make_tok( A, B )                    { ENS_token ( A, 2 ) ; ENC_INT ( A, B ) ; }
#define ENC_use_tokdef( A )                     ENS_token ( A, 3 )

#define ENS_token_defn( A, B )                  ENC_BITS ( A, 1, B )
#define ENX_token_defn( A, B )                  ENC_EXTN ( A, 1, B )
#define ENC_token_definition( A )               ENS_token_defn ( A, 1 )

#define ENS_transfer_mode( A, B )               ENC_BITS ( A, 3, B )
#define ENX_transfer_mode( A, B )               ENC_EXTN ( A, 3, B )
#define ENC_transfer_mode_apply_token( A )      ENS_transfer_mode ( A, 1 )
#define ENC_transfer_mode_cond( A )             ENS_transfer_mode ( A, 2 )
#define ENC_add_modes( A )                      ENS_transfer_mode ( A, 3 )
#define ENC_overlap( A )                        ENS_transfer_mode ( A, 4 )
#define ENC_standard_transfer_mode( A )         ENS_transfer_mode ( A, 5 )
#define ENC_trap_on_nil( A )                    ENS_transfer_mode ( A, 6 )
#define ENC_volatile( A )                       ENS_transfer_mode ( A, 7 )
#define ENC_complete( A )                       ENX_transfer_mode ( A, 8 )

#define ENS_variety( A, B )                     ENC_BITS ( A, 2, B )
#define ENX_variety( A, B )                     ENC_EXTN ( A, 2, B )
#define ENC_var_apply_token( A )                ENS_variety ( A, 1 )
#define ENC_var_cond( A )                       ENS_variety ( A, 2 )
#define ENC_var_limits( A )                     ENS_variety ( A, 3 )
#define ENC_var_width( A )                      ENX_variety ( A, 4 )

#define ENS_version( A, B )                     ENC_BITS ( A, 1, B )
#define ENX_version( A, B )                     ENC_EXTN ( A, 1, B )
#define ENC_make_version( A )                   ENS_version ( A, 1 )
#define ENC_user_info( A )                      ENX_version ( A, 2 )