summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3chk.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3chk.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3chk.dtx387
1 files changed, 0 insertions, 387 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3chk.dtx b/Master/texmf-dist/source/latex/expl3/l3chk.dtx
deleted file mode 100644
index 9153433d4a5..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3chk.dtx
+++ /dev/null
@@ -1,387 +0,0 @@
-% \iffalse
-%% File: l3chk.dtx Copyright (C) 1990-2006,2009 LaTeX3 project
-%%
-%% 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
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the ``expl3 bundle'' (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-%<*driver|package>
-\RequirePackage{l3names}
-%</driver|package>
-%\fi
-\GetIdInfo$Id: l3chk.dtx 2223 2011-04-09 12:57:14Z will $
- {L3 Experimental check module}
-%\iffalse
-%<*driver>
-%\fi
-\ProvidesFile{\filename.\filenameext}
- [\filedate\space v\fileversion\space\filedescription]
-%\iffalse
-\documentclass[full]{l3doc}
-\begin{document}
-\DocInput{\filename.\filenameext}
-\end{document}
-%</driver>
-% \fi
-%
-% \title{The \textsf{l3chk} package\thanks{This file
-% has version number \fileversion, last
-% revised \filedate.}\\
-% Checking things\ldots}
-% \author{\Team}
-% \date{\filedate}
-% \maketitle
-%
-% \begin{documentation}
-%
-% To ensure that functions and variables are properly used certain
-% checking functions are implemented that may or may not be compiled
-% into the final format.
-%
-% \section{Tracing}
-%
-% \begin{function}{\tracingall |
-% \absolutelytracingall |
-% \donotcheck |
-% \tracingoff |
-% \traceon |
-% \traceoff }
-% Commands to control the level of verbosity in the tracing output.
-% \end{function}
-%
-% \section{Functions}
-%
-% \begin{function}{%
-% \chk_var_or_const:N |
-% }
-% \begin{syntax}
-% "\chk_var_or_const:N" <cs>
-% \end{syntax}
-% Checks that <cs> is a proper variable or constant which means that its
-% name starts out with "\L", "\l", "\G", "\g", "\R", "\C", "\c", or "\q".
-% \end{function}
-%
-% \begin{function}{%
-% \chk_local:N |
-% \chk_global:N |
-% }
-% \begin{syntax}
-% "\chk_local:N" <cs>
-% \end{syntax}
-% Checks that <cs> is a proper local or global variable. This means that
-% its name starts out with "\L", "\l", or "\G", "\g" respectively.
-% \end{function}
-%
-% \begin{function}{%
-% \chk_local_or_pref_global:N |
-% \pref_global_chk: |
-% }
-% To allow implementations where we precede some function with
-% "\pref_global:D" without loosing the possibility to check for the
-% correct variable type the following helper functions can be used:
-% "\chk_local_or_pref_global:N" <cs> is the variable check which is
-% usually let to "\chk_local:N", i.e.\ it will check that its argument
-% is a local variable. This behavior will be changed by
-% "\pref_global_chk:". This function first changes
-% "\chk_local_or_pref_global:N" to check for global variables then it
-% issues a "\pref_global:D". After use "\chk_local_or_pref_global:N"
-% will restore itself to "\chk_local:N". So, if we use
-% "\chk_local_or_pref_global:N" inside some function "\foo_bar:n" we can
-% implement a global version "\foo_gbar:n" by defining
-% \begin{quote}
-% "\cs_new_nopar:Npn \foo_gbar:n {\pref_global_chk: \foo_bar:n }"
-% \end{quote}
-% provided that "\foo_bar:n" is built in a way that prefixing it with
-% "\pref_global:D" turns its operation into a global one. See
-% implementation for details.
-% \end{function}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3chk} implementation}
-%
-% We start by ensuring that the required packages are loaded.
-% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage
- {\filename}{\filedate}{\fileversion}{\filedescription}
-\package_check_loaded_expl:
-%</package>
-%<*initex|package>
-% \end{macrocode}
-%
-% The |\chk| module contains those functions that are used primarily
-% during the development of \LaTeX3 for checking that things are not mixed up
-% too badly. All these functions are of type `{\tt e}' since they
-% issue error messages if certain conditions are violated.
-%
-% \subsection{Checking variable assignments}
-%
-% \begin{macro}{\chk_local:N}
-% \begin{macro}[aux]{\chk_local_aux:w}
-% This function checks that its argument is a proper local
-% variable, i.e.\ its name starts with |\l| or |\L|.
-% It is not allowed that the name starts with |\g| or |\G|,
-% which means that we do not allow to update global
-% variables locally. But see |\pref_global_chk:| below for
-% the encoding of functions that might accept global variables
-% in certain situations. Not checked is the case that the
-% argument isn't a variable at all, i.e.\ it doesn't have
-% a |_| as second letter. Maybe we should add this for safety
-% during the implementation since it will find certain errors
-% involving wrong expansion in earlier stage.
-% \begin{macrocode}
-\cs_new_nopar:Npn \chk_local:N #1{
- \exp_after:wN \chk_local_aux:w \token_to_str:N#1\q_stop}
-
-\cs_new_nopar:Npn \chk_local_aux:w #1#2#3\q_stop{
- \if_num:w\tex_uccode:D`#2=`G\scan_stop:
- \msg_kernel_bug:x {Local~mismatch:~local~function~called~with~
- global~variable:^^J\text_put_four_sp: #1#2#3~
- on~line~\tex_the:D\tex_inputlineno:D}
- \else:
- \if_num:w\tex_uccode:D`#2=`L\scan_stop:
- \else:
- \msg_kernel_bug:x {Variable~mismatch:~function~not~called~with~
- proper~variable:^^J\text_put_four_sp: #1#2#3~
- on~line~\tex_the:D\tex_inputlineno:D}\fi:
- \fi:}
-% \end{macrocode}
-% We set the |\l_iow_new_line_code| at this point, just in case we
-% run into errors.
-% \begin{macrocode}
-\tex_newlinechar:D=`\^^J
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\chk_global:N}
-% \begin{macro}[aux]{\chk_global_aux:w}
-% |\chk_global:N| is similar to |\chk_local:N| but looks only
-% for global variables.
-% \begin{macrocode}
-\cs_new_nopar:Npn \chk_global:N #1{\exp_after:wN
- \chk_global_aux:w \token_to_str:N#1\q_stop}
-\cs_new_nopar:Npn \chk_global_aux:w #1#2#3\q_stop{
- \if_num:w\tex_uccode:D`#2=`L\scan_stop:
- \msg_kernel_bug:x {Global~mismatch:~global~function~called~with~
- local~variable:~#1#2#3~
- on~line~\tex_the:D\tex_inputlineno:D}
- \else:
- \if_num:w\tex_uccode:D`#2=`G\scan_stop:
- \else:
- \msg_kernel_bug:x {Variable~mismatch:~function~not~called~with~
- proper~variable:~#1#2#3~
- on~line~\tex_the:D\tex_inputlineno:D}\fi:\fi:}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\pref_global_chk:}
-% \begin{macro}{\chk_local_or_pref_global:N}
-% To allow implementations where we precede some function with
-% |\pref_global:D| without loosing the possibility to check for the
-% correct type of a variable, the following helper functions can be
-% used: |\chk_local_or_pref_global:N| \m{variable} is the variable
-% check which is usually |\cs_set_eq:NN| to |\chk_local:N|, i.e.\ it will
-% check for local variables. This behavior will be changed by
-% |\pref_global_chk:|. This function first changes
-% |\chk_local_or_pref_global:N| to check for global variables, then
-% issues a |\pref_global:D|. After being used,
-% |\chk_local_or_pref_global:N| will restore itself to
-% |\chk_local:N|. So, if we use |\chk_local_or_pref_global:N|
-% inside some function |\foo_bar:n| we can implement a global
-% version |\foo_gbar:n| by defining
-% \begin{verbatim}
-% \cs_new_nopar:Npn \foo_gbar:n {\pref_global_chk: \foo_bar:n }
-%\end{verbatim}
-% provided of course, that |\foo_bar:n| is defined in a way that a
-% |\pref_global:D| does work. Such a scheme has to be used
-% carefully, but its advantage is that the checking version has the
-% same structure as a streamlined version, we only have to change
-% |\pref_global_chk:| into |\pref_global:D| and omit the
-% |\chk_local_or_pref_global:N| function in the body.
-% \begin{macrocode}
-\cs_new_nopar:Npn \pref_global_chk: {
- \cs_gset_nopar:Npn \chk_local_or_pref_global:N ##1{
- \chk_global:N ##1
- \cs_gset_eq:NN \chk_local_or_pref_global:N \chk_local:N}
- \pref_global:D}
-\cs_new_eq:NN \chk_local_or_pref_global:N \chk_local:N
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\chk_var_or_const:N}
-% \begin{macro}[aux]{\chk_var_or_const_aux:w}
-% |\chk_var_or_const:N| is used in situations where we want to check
-% that we have a variable (or a constant) but do not care whether
-% or not it is global (for example, in allocation routines).
-% \begin{macrocode}
-\cs_new_nopar:Npn \chk_var_or_const:N #1{\exp_after:wN
- \chk_var_or_const_aux:w \token_to_str:N#1\q_stop }
-\cs_new_nopar:Npn \chk_var_or_const_aux:w #1#2#3\q_stop {
- \if_num:w\tex_uccode:D`#2=`L\scan_stop:
- \else:
- \if_num:w\tex_uccode:D`#2=`G\scan_stop:
- \else:
- \if_num:w\tex_uccode:D`#2=`C\scan_stop:
- \else:
-% \end{macrocode}
-% We also allow the beast to be a quark, i.e.\ to start with |\q|.
-% \begin{macrocode}
- \if_charcode:w#2q\scan_stop:
- \else:
-% \end{macrocode}
-% We might also want to allow that it is a user definable
-% variable which means that its name consists of letters only. We
-% could check this by testing that there is no |_|, but this is not
-% implemented so far.
-% \begin{macrocode}
- \msg_kernel_bug:x {Variable~mismatch:~function~not~called~with~
- proper~variable:^^J\text_put_four_sp: #1#2#3~
- on~line~\tex_the:D\tex_inputlineno:D}\fi:\fi:\fi:
- \fi:}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% \subsection{Doing some tracing}
-%
-% \begin{macro}{\tracingall}
-% \begin{macro}{\absolutelytracingall}
-% \begin{macro}{\donotcheck}
-% During |\tracingall| we don't want to see all this code coming
-% from the checking functions since something more substantial is
-% probably wrong. Therefore this definition of it turns the
-% functions of as far as possible.
-% \begin{macrocode}
-\cs_new_nopar:Npn\donotcheck{
- \cs_set_eq:NN \chk_global:N \use_none:n
- \cs_set_eq:NN \chk_local:N \use_none:n
- \cs_set_eq:NN \chk_local_or_pref_global:N \use_none:n
- \cs_set_eq:NN \pref_global_chk: \pref_global:D
- \cs_set_eq:NN \chk_if_free_cs:N \use_none:n
- \cs_set_eq:NN \chk_exist_cs:N \use_none:n
- \cs_set_eq:NN \chk_var_or_const:N \use_none:n
- \cs_set_eq:NN \cs_record_name:N \use_none:n
- \cs_set_eq:NN \cs_record_name:c \use_none:n
- \cs_set_eq:NN \cs_record_meaning:N \use_none:n
- \cs_set_eq:NN \register_record_name:N \use_none:n
-}
-\cs_new_nopar:Npn\absolutelytracingall{
-% \end{macrocode}
-% \end{macro}
-%
-% We do the settings by hand to avoid uninteresting lines in the
-% log file as much as possible.
-% \begin{macrocode}
- \pref_global:D\g_trace_commands_status\c_two
- \pref_global:D\g_trace_statistics_status\c_two
- \pref_global:D\g_trace_pages_status\c_one
- \pref_global:D\g_trace_output_status\c_one
- \pref_global:D\g_trace_chars_status\c_one
- \pref_global:D\g_trace_macros_status\c_two
- \pref_global:D\g_trace_paragraphs_status\c_one
- \pref_global:D\g_trace_restores_status\c_one
- \pref_global:D\g_trace_box_breadth_int\c_ten_thousand
- \pref_global:D\g_trace_box_depth_int\c_ten_thousand
- \pref_global:D\g_trace_online_status\c_one
- \tex_errorstopmode:D}
-%
-% Use LaTeX2e definition for now.
-%\cs_new_nopar:Npn\tracingall{
-% \donotcheck
-% \absolutelytracingall
-%}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\tracingoff}
-% This macro turns off all tracing.
-% \begin{macrocode}
-\cs_new_nopar:Npn\tracingoff{
-% \end{macrocode}
-% First we turn off |\g_trace_online_status| so that we get minimal
-% rubbish on the terminal. Of course, in the log file all
-% assignments are shown.
-% \begin{macrocode}
- \pref_global:D\g_trace_online_status\c_zero
- \pref_global:D\g_trace_commands_status\c_zero
- \pref_global:D\g_trace_statistics_status\c_zero
- \pref_global:D\g_trace_pages_status\c_zero
- \pref_global:D\g_trace_output_status\c_zero
- \pref_global:D\g_trace_chars_status\c_zero
- \pref_global:D\g_trace_macros_status\c_zero
- \pref_global:D\g_trace_paragraphs_status\c_zero
- \pref_global:D\g_trace_restores_status\c_zero
- \pref_global:D\g_trace_box_breadth_int\c_zero
- \pref_global:D\g_trace_box_depth_int\c_zero
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Tracing modules}
-%
-% \begin{macro}{\traceon}
-% \begin{macro}{\traceoff}
-% Turning the tracing of modules on or off. (primitive version).
-% \begin{macrocode}
-%<*trace>
-\cs_new_nopar:Npn\traceon#1{
- \clist_map_inline:nn {#1}{
- \cs_if_free:cF{g_trace_ ##1 _status}
- {\int_gincr:c{g_trace_ ##1 _status}}
- }
-}
-\cs_new_nopar:Npn\traceoff#1{
- \clist_map_inline:nn {#1}{
- \cs_if_free:cF{g_trace_ ##1 _status}
- {\int_gdecr:c{g_trace_ ##1 _status}}
- }
-}
-%</trace>
-%<-trace>\cs_new_eq:NN\traceon\use_none:n
-%<-trace>\cs_new_eq:NN\traceoff\use_none:n
-%</initex|package>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-% \end{implementation}
-% \PrintIndex
-%
-% \endinput