%%
%% This is file `tagpdf-base.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% tagpdf.dtx  (with options: `base')
%% tagpdf-mc-generic.dtx  (with options: `base')
%% tagpdf-mc-shared.dtx  (with options: `base')
%% tagpdf-struct.dtx  (with options: `base')
%% tagpdf-checks.dtx  (with options: `base')
%% tagpdf-user.dtx  (with options: `base')
%% tagpdf-roles.dtx  (with options: `base')
%% 
%% Copyright (C) 2019-2024 Ulrike Fischer
%% 
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
%% this license or (at your option) any later version.  The latest
%% version of this license is in the file:
%% 
%%    https://www.latex-project.org/lppl.txt
%% 
%% This file is part of the "tagpdf bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%% 
%% File: tagpdf.dtx
\ProvidesExplPackage {tagpdf-base} {2024-08-02} {0.99d}
  {part of tagpdf - provide base, no-op versions of the user commands }
\cs_new_protected:Npn \__tag_whatsits: {}
\AddToHook{begindocument}
 {
  \str_case:VnF \c_sys_backend_str
   {
    { luatex  } { \cs_set_protected:Npn \__tag_whatsits: {} }
    { dvisvgm } { \cs_set_protected:Npn \__tag_whatsits: {} }
   }
   {
     \cs_set_protected:Npn \__tag_whatsits: {\tex_special:D {} }
   }
 }
\cs_if_free:NT \pdf_object_new_indexed:nn
 {
   \cs_generate_variant:Nn \pdf_object_new:n {e}
   \cs_generate_variant:Nn \pdf_object_write:nnn {enn}
   \cs_new_protected:Npn \pdf_object_new_indexed:nn #1 #2
     {
       \pdf_object_new:e {#1/\int_eval:n{#2}}
     }
   \cs_new_protected:Npn \pdf_object_write_indexed:nnnn #1 #2 #3 #4
     {
       \pdf_object_write:enn {#1/\int_eval:n{#2}}{#3}{#4}
     }
   \cs_generate_variant:Nn \pdf_object_write_indexed:nnnn {nnne}
   \cs_new:Npn\pdf_object_ref_indexed:nn #1 #2
     {
       \pdf_object_ref:e {#1/\int_eval:n{#2}}
     }
   \cs_new:Npn \__kernel_pdf_object_id_indexed:nn #1 #2
     {
       \int_use:c
         { c__pdf_object_ #1/\int_eval:n{#2} _int }
     }
 }

\cs_new_protected:Npn \tag_stop:{}
\cs_new_protected:Npn \tag_start:{}
\cs_new_protected:Npn \tagstop{}
\cs_new_protected:Npn \tagstart{}
\cs_new_protected:Npn \tag_stop:n  #1 {}
\cs_new_protected:Npn \tag_start:n #1 {}
%% File: tagpdf-mc-generic.dtx
\cs_new_protected:Npn \tag_mc_begin:n #1 { \__tag_whatsits: \int_gincr:N \c@g__tag_MCID_abs_int }
\cs_new_protected:Nn \tag_mc_end:{ \__tag_whatsits: }

%% File: tagpdf-mc-shared.dtx

\newcounter { g__tag_MCID_abs_int }
\cs_new:Npn \__tag_get_data_mc_counter:
  {
    \int_use:N \c@g__tag_MCID_abs_int
  }
\cs_new_protected:Npn \tag_mc_use:n #1 { \__tag_whatsits: }
\cs_new_protected:Npn \tag_mc_artifact_group_begin:n #1 {}
\cs_new_protected:Npn \tag_mc_artifact_group_end:{}
\cs_new_protected:Npn \tag_mc_reset_box:N #1 {}
\cs_new_protected:Npn \tag_mc_end_push: {}
\cs_new_protected:Npn \tag_mc_begin_pop:n #1 {}
%% File: tagpdf-struct.dtx
\newcounter  { g__tag_struct_abs_int }
\int_gset:Nn \c@g__tag_struct_abs_int { 1 }
\tl_new:N  \g__tag_struct_stack_current_tl
\tl_gset:Nn \g__tag_struct_stack_current_tl {\int_use:N\c@g__tag_struct_abs_int}
\prop_new_linked:N \g__tag_struct_dest_num_prop

\cs_new:Npn \__tag_get_data_struct_num:
  {
    \g__tag_struct_stack_current_tl
  }
\cs_new:Npn \__tag_get_data_struct_counter:
  {
    \int_use:N \c@g__tag_struct_abs_int
  }
\cs_new_protected:Npn \tag_struct_begin:n #1 {\int_gincr:N \c@g__tag_struct_abs_int}
\cs_new_protected:Npn \tag_struct_end:{}
\cs_new_protected:Npn \tag_struct_end:n{}
\cs_new_protected:Npn \tag_struct_use:n #1 {}
\cs_new_protected:Npn \tag_struct_use_num:n #1 {}

%% File: tagpdf-checks.dtx

\cs_new:Npn \tag_get:n #1   { \use:c {__tag_get_data_#1: } }
\prg_new_conditional:Npnn \tag_if_active: { p , T , TF, F }
  { \prg_return_false: }
\prg_new_conditional:Npnn \tag_if_box_tagged:N #1 {p,T,F,TF}
    {
      \tl_if_exist:cTF {l_tag_box_\int_use:N #1_tl}
       {
         \int_compare:nNnTF {0\tl_use:c{l_tag_box_\int_use:N #1_tl}}>{0}
          { \prg_return_true:  }
          { \prg_return_false: }
       }
       {
         \prg_return_false:
         % warning??
       }
    }
%% File: tagpdf-user.dtx




\NewDocumentCommand \tagpdfsetup { m }{}
\cs_new_protected:Npn\tag_tool:n #1 {}
\cs_set_eq:NN\tagtool\tag_tool:n

\NewDocumentCommand \tagmcbegin { m }
  {
    \tag_mc_begin:n {#1}
  }

\NewDocumentCommand \tagmcend {  }
  {
    \tag_mc_end:
  }

\NewDocumentCommand \tagmcuse { m }
  {
    \tag_mc_use:n {#1}
  }

\NewDocumentCommand \tagstructbegin { m }
  {
    \tag_struct_begin:n {#1}
  }

\NewDocumentCommand \tagstructend {  }
  {
   \tag_struct_end:
  }

\NewDocumentCommand \tagstructuse { m }
  {
    \tag_struct_use:n {#1}
  }
\providecommand\tag_socket_use:n[1]{}
\providecommand\tag_socket_use:nn[2]{}
\providecommand\UseTaggingSocket[1]{}
\bool_new:N \l__tag_para_flattened_bool
\bool_new:N \l__tag_para_bool
\newcommand\tagpdfparaOn {}
\newcommand\tagpdfparaOff{}
%% File: tagpdf-roles.dtx
\prg_new_protected_conditional:Npnn \tag_check_child:nn #1 #2 {T,F,TF}{\prg_return_true:}
%% 
%%
%% End of file `tagpdf-base.sty'.
