summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3/l3basics.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:55:26 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:55:26 +0000
commitc46a8cff75c54bb399a1879724c1ae8a37b13d66 (patch)
tree87a7949b16876363f6f43316b0443598fe5d4708 /Master/texmf-dist/tex/latex/expl3/l3basics.sty
parentc13c9fba05d6822e236462817e8c1f95f220988b (diff)
expl3
git-svn-id: svn://tug.org/texlive/trunk@897 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3/l3basics.sty')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3basics.sty216
1 files changed, 216 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3basics.sty b/Master/texmf-dist/tex/latex/expl3/l3basics.sty
new file mode 100644
index 00000000000..fb4f3de9da0
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/expl3/l3basics.sty
@@ -0,0 +1,216 @@
+%%
+%% This is file `l3basics.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3basics.dtx (with options: `package,trace')
+%%
+%%
+%% EXPERIMENTAL CODE
+%%
+%% Do not distribute this file without also distributing the
+%% source files specified above.
+%%
+%% Do not distribute a modified version of this file.
+%%
+%%
+%% File: l3basics.dtx Copyright (C) 1990-1998 LaTeX3 project
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{l3basics}
+ [1998/05/04 v1.0i L3 Experimental basic definitions]
+\RequirePackage{l3names}\par
+\tex_let:D \let:NwN \tex_let:D
+\let:NwN \def:Npn \tex_def:D
+\let:NwN \gdef:Npn \tex_gdef:D
+\let:NwN \def:Npx \tex_edef:D
+\let:NwN \gdef:Npx \tex_xdef:D
+\let:NwN \if:w \tex_if:D
+\let:NwN \if_num:w \tex_ifnum:D
+\let:NwN \if_meaning:NN \tex_ifx:D
+\let:NwN \if_false: \tex_iffalse:D
+\let:NwN \else: \tex_else:D
+\let:NwN \fi: \tex_fi:D
+\let:NwN \io_put_deferred:Nx \tex_write:D
+\let:NwN \token_to_meaning:N \tex_meaning:D
+\let:NwN \token_to_string:N \tex_string:D
+\let:NwN \cs:w \tex_csname:D
+\let:NwN \cs_end: \tex_endcsname:D
+\let:NwN \exp_after:NN \tex_expandafter:D
+\let:NwN \scan_stop: \tex_relax:D
+\let:NwN \exp_not:N \tex_noexpand:D
+\let:NwN \group_begin: \tex_begingroup:D
+\let:NwN \group_end: \tex_endgroup:D
+\let:NwN \the_internal:D \tex_the:D
+\let:NwN \pref_global:D \tex_global:D
+\let:NwN\c_minus_one\m@ne
+\tex_chardef:D \c_one = 1\scan_stop:
+\tex_chardef:D \c_sixteen = 16\scan_stop:
+\tex_mathchardef:D \c_two_hundred_fifty_six = 256\scan_stop:
+\def:Npn \io_put_log:x{
+ \tex_immediate:D\io_put_deferred:Nx \c_minus_one }
+\def:Npn \io_put_term:x{
+ \tex_immediate:D\io_put_deferred:Nx \c_sixteen }
+\def:Npn\err_latex_bug:n#1{
+ \io_put_term:x{This~is~a~LaTeX~bug!~Check~coding!}\tex_errmessage:D{#1}}
+\def:Npn \cs_record_meaning:N#1{}
+\def:Npn \chk_new_cs:N #1{
+ \if_meaning:NN #1\c_undefined
+ \else:
+ \if_meaning:NN #1\scan_stop:
+ \else:
+ \err_latex_bug:n {Command~name~`\token_to_string:N #1'~
+ already~defined!~
+ Current~meaning:~\token_to_meaning:N #1
+ }
+ \fi:
+ \fi:
+ \cs_record_meaning:N#1
+ \io_put_log:x{Defining~\token_to_string:N #1~on~
+ line~\tex_the:D \tex_inputlineno:D}
+ }
+\def:Npn \cs_exist_p:N #1{
+ \if:w \cs_free_p:N #1
+ \c_false
+ \else:
+ \c_true \fi:}
+\def:Npn \chk_exist_cs:N #1 {
+ \if:w \cs_exist_p:N #1
+ \else:
+ \err_latex_bug:n{Command~ `\token_to_string:N #1'~
+ not~ yet~ defined!}
+ \fi:}
+\def:Npn \cs_free_p:N #1{
+ \if_meaning:NN#1\c_undefined
+ \if:w\cs_eq_p:NN #1\c_undefined \c_false
+ \else: \c_true \fi:
+ \else:
+ \if_meaning:NN#1\scan_stop:
+ \if:w\cs_eq_p:NN #1\scan_stop: \c_false
+ \else: \c_true \fi:
+ \else:
+ \c_false \fi:\fi:}
+\tex_long:D\def:Npn \let:NN #1{
+ \let:NwN #1=~}
+\def:Npn\let:cN #1 {\exp_after:NN\let:NwN\cs:w#1\cs_end:=~}
+\def:Npn\let:Nc{\exp_args:NNc\let:NN}
+\def:Npn\let:cc{\exp_args:Ncc\let:NN}
+\def:Npn \def_new:Npn #1{\chk_new_cs:N #1
+ \def:Npn #1}
+\def:Npn \def_new:Npx #1{\chk_new_cs:N #1
+ \def:Npx #1}
+\def_new:Npn \let_new:NN #1{\chk_new_cs:N #1
+ \let:NN #1}
+\def_new:Npn \def:cpn #1{\exp_after:NN
+ \def:Npn
+ \cs:w #1\cs_end:}
+\def_new:Npn \def:cpx #1{\exp_after:NN
+ \def:Npx
+ \cs:w #1\cs_end:}
+\def_new:Npn \def_new:cpn #1{\exp_after:NN
+ \def_new:Npn
+ \cs:w #1\cs_end:}
+\def_new:Npn \def_new:cpx #1{\exp_after:NN
+ \def_new:Npx
+ \cs:w #1\cs_end:}
+\def_new:Npn \def:No{\exp_args:NNo\def:Npn}
+\def_new:Npn \def_long:Npn {\tex_long:D\def:Npn}
+\def_new:Npn \def_long_new:Npn #1{\chk_new_cs:N #1
+ \def_long:Npn #1}
+\def_new:Npn \def_long:cpn #1{\exp_after:NN
+ \def_long:Npn
+ \cs:w #1\cs_end:}
+\def_new:Npn \def_long:Npx {\tex_long:D\def:Npx}
+\def_new:Npn \glet:NN {\tex_global:D \let:NN}
+\def_new:Npn \glet_new:NN #1{\chk_new_cs:N #1
+ \tex_global:D\let:NN #1}
+\def_new:Npn \gdef_new:Npn #1{\chk_new_cs:N #1
+ \gdef:Npn #1}
+\def_new:Npn \gdef:cpn {\tex_global:D \def:cpn}
+\def_new:Npn \gdef:cpx {\tex_global:D \def:cpx}
+\def_new:Npn \gdef:No {\exp_args:NNo\gdef:Npn}
+
+\def_new:Npn \gdef_long:Npn {\tex_long:D\gdef:Npn}
+\def_new:Npn \gdef_long:Npx {\tex_long:D\gdef:Npx}
+\def_new:Npn \gfuturelet:NNN{\tex_global:D \let_peek_after:NNN}
+\def_long_new:Npn \cs_free:NTF #1{\if:w\cs_free_p:N #1
+ \exp_after:NN \use_choice_i:nn \else:
+ \exp_after:NN \use_choice_ii:nn \fi:}
+\def_long_new:Npn \cs_free:NT #1{\if:w\cs_free_p:N #1
+ \exp_after:NN \use:n \else:
+ \exp_after:NN \use_none:n \fi:}
+\def_long_new:Npn \cs_free:NF #1{\if:w\cs_free_p:N #1
+ \exp_after:NN \use_none:n \else:
+ \exp_after:NN \use:n \fi:}
+\def_long_new:Npn \cs_free:cTF #1{
+ \exp_after:NN
+ \if_meaning:NN
+ \cs:w#1\cs_end:
+ \scan_stop:
+ \exp_after:NN \use_choice_i:nn
+ \else:
+ \exp_after:NN \use_choice_ii:nn
+ \fi:}
+\def_long_new:Npn \cs_free:cF #1{\exp_after:NN
+ \if_meaning:NN \cs:w#1\cs_end: \scan_stop:
+ \exp_after:NN \use_none:nn \fi: \use:n}
+\def_long_new:Npn \cs_free:cT #1{\exp_after:NN
+ \if_meaning:NN \cs:w#1\cs_end: \scan_stop:
+ \else:
+ \exp_after:NN \use_none:nn \fi: \use:n}
+\def_new:Npn \gundefine:N #1{\glet:NN #1\c_undefined}
+\def_long_new:Npn \use_none:n #1{}
+\def_long_new:Npn \use_none:nn #1#2{}
+\def_long_new:Npn \use_none:nnn #1{\use_none:nn}
+\def_long_new:Npn \use_none:nnnn
+ {\exp_after:NN\use_none:nn \use_none:nn}
+\def_long_new:Npn \use:n #1{#1}
+\def_new:Npn \use:c #1{\cs:w #1\cs_end:}
+
+\def_new:Npn \use:cc #1#2
+ {\cs:w #1\exp_after:NN\cs_end:\cs:w #2\cs_end:}
+\def_long_new:Npn \use_choice_i:nn #1#2{#1}
+\def_long_new:Npn \use_choice_ii:nn #1#2{#2}
+\def_long_new:Npn\use_choice_i:nnn#1#2#3{#1}
+\def_long_new:Npn\use_choice_ii:nnn#1#2#3{#2}
+\def_long_new:Npn\use_choice_iii:nnn#1#2#3{#3}
+\def_new:Npn \gtmp:w {}
+\def_new:Npn \tmp:w {}
+\def_new:Npn \use_noop: {}
+\def_new:Npn \cs_to_str:N {\exp_after:NN\use_none:n \token_to_string:N}
+\def_new:Npn \tlist_eq:nnTF #1#2{
+ \tlp_gset:Nn \g_testa_tlp {#1}
+ \tlp_gset:Nn \g_testb_tlp {#2}
+ \if_meaning:NN\g_testa_tlp \g_testb_tlp
+ \exp_after:NN\use_choice_i:nn \else:
+ \exp_after:NN\use_choice_ii:nn \fi:}
+\def_new:Npn \tlist_eq:onTF {\exp_args:No \tlist_eq:nnTF}
+\def_new:Npn \tlist_empty:nTF #1{\tlp_gset:Nn \g_testa_tlp {#1}
+ \if_meaning:NN\g_testa_tlp \c_empty_tlp
+ \exp_after:NN \use_choice_i:nn \else:
+ \exp_after:NN \use_choice_ii:nn \fi:}
+\def_new:Npn \tlist_empty:nF #1{\tlp_gset:Nn \g_testa_tlp {#1}
+ \if_meaning:NN\g_testa_tlp \c_empty_tlp
+ \exp_after:NN \use_none:nn \fi: \use:n}
+\def_new:Npn \str_eq_p:nn #1#2{\str_eq_p_aux:w #1\scan_stop:\\#2\scan_stop:\\}
+\def_new:Npn \str_eq_p_aux:w #1#2\\#3#4\\{
+ \if_meaning:NN#1#3
+ \if_meaning:NN#1\scan_stop:\c_true \else:
+ \if_meaning:NN#3\scan_stop:\c_false \else:
+ \str_eq_p_aux:w #2\\#4\\\fi:\fi:
+ \else:\c_false \fi:}
+\def:Npn \cs_eq_p:NN #1#2{
+ \exp_after:NN\exp_after:NN
+ \exp_after:NN\str_eq_p_aux:w
+ \exp_after:NN\token_to_string:N
+ \exp_after:NN#1
+ \exp_after:NN\scan_stop:
+ \exp_after:NN\\
+ \token_to_string:N#2\scan_stop:\\}
+\def_new:Npn\file_not_found:nTF #1#2#3{\IfFileExists{#1}{#3}{#2}}
+\def_new:Npn \c_true {TT}
+\def_new:Npn \c_false {TF}
+
+%%
+%%
+%% End of file `l3basics.sty'.