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'.
|