1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Core Macros Multipass Datasets}
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\unprotect
44
45\registerctxluafile{coredat}{autosuffix}
46
47\installcorenamespace{dataset}
48
49\installcommandhandler \??dataset {dataset} \??dataset
50
51\permanent\tolerant\protected\def\setdataset[#1]#*[#S#2]#*[#S#3]
52 {\begingroup
53 \cdef\currentdataset{#1}
54 \ifparameters\or\or
55 \clf_setdataset
56 name {\currentdataset}
57 delay {\datasetparameter\c!delay}
58 data {#2}
59 \relax
60 \or
61 \cdef\currentdataset{#1}
62 \clf_setdataset
63 name {\currentdataset}
64 tag {#2}
65 delay {\datasetparameter\c!delay}
66 data {#3}
67 \relax
68 \fi
69 \endgroup}
70
71\permanent\tolerant\def\datasetvariable[#1]{\clf_datasetvariable{#1}}
72\permanent\tolerant\def\datasetsize [#1]{\clf_datasetsize {#1}}
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91\mutable\let\datasetindex\!!zerocount
92\mutable\let\datasetentry\gobbleoneargument
93
94\permanent\tolerant\protected\def\processdataset[#1]#*[#2]#*[#3]
95 {\ifparameters\or
96 \or\system_process_dataset {}{#1}{#2}
97 \or\system_process_dataset{#1}{#2}{#3}
98 \fi}
99
100\def\system_process_dataset#1#2#3
101 {\pushmacro\datasetindex
102 \pushmacro\datasetentry
103 \def\datasetentry{\clf_datasetvariable{#1}{#2}{\datasetindex}}
104 \dorecurse{\datasetsize[#1]{#2}}{\let\datasetindex\recurselevel\directsetup{#3}}
105 \popmacro\datasetentry
106 \popmacro\datasetindex}
107
108\protect
109 |