summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3/l3precom.sty
blob: f1ccdd9086d62efc7cd25dba3fddce2b55e95b65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
%%
%% This is file `l3precom.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% l3precom.dtx  (with options: `package,precompile,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: l3precom.dtx Copyright (C) 1990-1998 LaTeX3 project
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{l3precom}
          [1998/04/20 v1.0b L3 Experimental precompilation module]
\RequirePackage{l3int}
\RequirePackage{l3io}
\RequirePackage{l3seq}
\iow_new:N\c_cs_dump_stream
\tlp_new:Nn\g_cs_dump_name_tlp{}
\seq_new:N\g_cs_dump_seq
\def_new:Npn\cs_record_name:N#1{
      \seq_gput_left:Nn
          \g_cs_trace_seq#1
      \seq_gput_left:Nn
          \g_cs_dump_seq#1}
\def_new:Npn\cs_record_name:c{\exp_args:Nc\cs_record_name:N}
\def_new:Npn\cs_dump:{
  \iow_expanded_term:n{Precompiling~style~into~(\g_cs_dump_name_tlp)}
  \iow_open:Nn\c_cs_dump_stream{\g_cs_dump_name_tlp}
  \iow_expanded:Nn\c_cs_dump_stream
    {\group_begin:
     \tex_catcode:D`\token_to_string:N\*=11\scan_stop:
     \token_to_string:N\CodeStart
    }
  \seq_map_inline:Nn
       \g_cs_dump_seq
       {\tex_message:D{.}
        \iow_expanded:Nn\c_cs_dump_stream
             {\token_to_string:N\gdef:Npn
                 \token_to_string:N##1
                 {\tlp_to_str:N##1}}
       }
  \iow_expanded:Nn
     \c_cs_dump_stream
     {\token_to_string:N\fint_gset:Nn
                        \g_gen_sym_fint
                        {\fint_use:N\g_gen_sym_fint}^^J
      \token_to_string:N\fint_gset:Nn
                        \g_ggen_sym_fint
                        {\fint_use:N\g_ggen_sym_fint}}
  \iow_expanded:Nn
     \c_cs_dump_stream
     {\group_end:}
  \iow_close:N\c_cs_dump_stream
  \tex_message:D{~finished}
}
\def_new:Npn\cs_load_dump:n#1{
  \file_not_found:nTF{#1.cmp}
      {\tlp_gset:Nn\g_cs_dump_name_tlp{#1.cmp}}
      {\input{#1.cmp}
       \let:NN\cs_dump:\fi:
       \if_false:}}
\fint_new:N\g_gen_sym_fint
\fint_gset:Nn\g_gen_sym_fint{0}
\fint_new:N\g_ggen_sym_fint
\fint_gset:Nn\g_ggen_sym_fint{0}
\def_new:Npn\cs_gen_sym:N#1{
  \fint_gincr:N\g_gen_sym_fint
  \tlp_set:Nc#1{l*\tex_romannumeral:D\fint_use:N\g_gen_sym_fint}
  \exp_after:NN\cs_record_name:N#1
  \exp_after:NN\tlp_clear_new:N#1}
\def_new:Npn\cs_ggen_sym:N#1{
  \fint_gincr:N\g_ggen_sym_fint
  \tlp_set:Nc#1{g*\tex_romannumeral:D\fint_use:N\g_ggen_sym_fint}
  \exp_after:NN\cs_record_name:N#1
  \exp_after:NN\tlp_clear_new:N#1}
\seq_new:N\g_cs_trace_seq
\seq_new:N\g_register_trace_seq
\def:Npn\cs_record_meaning:N#1{
      \seq_gput_left:Nn
          \g_cs_trace_seq#1}
\def:Npn\register_record_name:N#1{
      \seq_gput_left:Nn
          \g_register_trace_seq#1}
\def_new:Npn\dumpLaTeXstate#1{
  \iow_expanded_term:n{Dumping~commands~into~(#1.dmp)}
  \iow_open:Nn\c_cs_dump_stream{#1.dmp}
  \seq_map_inline:Nn
       \g_cs_trace_seq
       {\tex_message:D{.}
        \iow_expanded:Nn\c_cs_dump_stream
             {\token_to_string:N##1~
              \token_to_meaning:N##1}
       }
  \tex_message:D{~registers}
  \seq_map_inline:Nn
       \g_register_trace_seq
       {\tex_message:D{.}
        \iow_expanded:Nn\c_cs_dump_stream
             {\token_to_string:N##1
              \the_internal:D##1}
       }
  \tex_message:D{~finished}
}

%% 
%%
%% End of file `l3precom.sty'.