let node_of_blk_itm (doc_settings : t_doc_settings) (path : t_path) (auto_nr : int) (a : Doc_types.tr_blk_itm) : t_node = match a.fld_blk_itm_lbl with | Cu_lbl_auto Cs_lbl_auto -> ( let lvl : int = lvl_of_path path in let lbl : string = doc_settings.auto_numbering lvl auto_nr in match a.fld_blk_itm_tag_or_id with |None -> ITM_NODE (ITM_AUTO lbl) |Some tag_or_id -> ( match tag_or_id with |Cu_tag_or_id_tag (tag : ts_tag) -> ( match doc_settings.expand_tag tag with |None -> ( match tag with |Cs_tag "BIB" -> ITM_NODE (ITM_BIB_AUTO lbl) |_ -> ITM_NODE (ITM_AUTO lbl) ) |Some (_,tag) -> ITM_NODE (ITM_TAG_AUTO (tag, lbl)) ) |Cu_tag_or_id_id (id : tr_id) -> ( match doc_settings.expand_tag id.fld_id_tag with |None -> ( match id.fld_id_tag with |Cs_tag "BIB" -> ITM_NODE (ITM_BIB_AUTO lbl) |_ -> ITM_NODE (ITM_AUTO lbl) ) |Some (_,tag) -> ITM_NODE (ITM_TAG_AUTO (tag, lbl)) ) ) ) | Cu_lbl_custom (Cs_lbl_custom (s : string)) -> match a.fld_blk_itm_tag_or_id with |None -> ITM_NODE (ITM_CUSTOM s) |Some tag_or_id -> ( match tag_or_id with |Cu_tag_or_id_tag (tag : ts_tag) -> ( match doc_settings.expand_tag tag with |None -> ( match tag with |Cs_tag "BIB" -> ITM_NODE (ITM_BIB_CUSTOM s) |_ -> ITM_NODE (ITM_AUTO s) ) |Some (_,tag) -> ITM_NODE (ITM_TAG_AUTO (tag, s)) ) |Cu_tag_or_id_id (id : tr_id) -> ( match doc_settings.expand_tag id.fld_id_tag with |None -> ( match id.fld_id_tag with |Cs_tag "BIB" -> ITM_NODE (ITM_BIB_CUSTOM s) |_ -> ITM_NODE (ITM_CUSTOM s) ) |Some (_,tag) -> ITM_NODE (ITM_TAG_CUSTOM (tag, s)) ) )