blob: 60a943d2ac7803bdd644e0ac147b67fe01309a32 (
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
|
\long\def\TYPE#1{%
\begingroup
\long\def\TYPE##1{(##1)}%
\immediate\write128{TEST INPUT BEGIN}%
\immediate\write128{#1}%
\immediate\write128{TEST INPUT END}%
\endgroup}%
\def\GOBBLE#1{}%
% Table parsing
\newcount\ROWCOUNTER
\newcount\COLCOUNTER
\def\DOROW#1{%
\COLCOUNTER=1%
\DOCOL#1
\advance\ROWCOUNTER by 1\relax
\ifnum\ROWCOUNTER>\ROWTOTAL\relax
\TYPE{END table}%
\expandafter\GOBBLE
\fi\DOROW}%
\def\DOCOL#1{%
\ifnum\ROWCOUNTER=0
\TYPE{- alignment of column \the\COLCOUNTER: #1}%
\else
\TYPE{- row \the\ROWCOUNTER, column \the\COLCOUNTER: #1}%
\fi
\advance\COLCOUNTER by 1\relax
\ifnum\COLCOUNTER>\COLTOTAL\relax
\expandafter\GOBBLE
\fi\DOCOL}%
\def\TABLE#1#2#3{%
\ROWCOUNTER=0%
\def\ROWTOTAL{#2}%
\def\COLTOTAL{#3}%
\TYPE{BEGIN table (#2 rows, #3 columns)}%
\TYPE{- caption: #1}%
\DOROW}%
% Citations parsing
\newcount\CITATIONSCOUNTER
%% Regular citations
\def\DOCITATIONS#1#2#3#4{%
\advance\CITATIONSCOUNTER by 1\relax
\CITE{#1}{#2}{#3}{#4}%
\ifnum\CITATIONSCOUNTER>\CITATIONSTOTAL\relax
\expandafter\GOBBLE
\fi\DOCITATIONS}%
\def\CITE#1#2#3#4{%
\TYPE{BEGIN cite}%
\TYPE{- suppressAuthor: \if#1+false\else true\fi}%
\TYPE{- prenote: #2}%
\TYPE{- postnote: #3}%
\TYPE{- name: #4}%
\TYPE{END cite}}%
\def\CITATIONS#1{%
\CITATIONSCOUNTER=1%
\def\CITATIONSTOTAL{#1}%
\DOCITATIONS}%
%% Text citations
\def\DOTEXTCITATIONS#1#2#3#4{%
\advance\CITATIONSCOUNTER by 1\relax
\TEXTCITE{#1}{#2}{#3}{#4}%
\ifnum\CITATIONSCOUNTER>\CITATIONSTOTAL\relax
\expandafter\GOBBLE
\fi\DOTEXTCITATIONS}%
\def\TEXTCITE#1#2#3#4{%
\TYPE{BEGIN textCite}%
\TYPE{- suppressAuthor: \if#1+false\else true\fi}%
\TYPE{- prenote: #2}%
\TYPE{- postnote: #3}%
\TYPE{- name: #4}%
\TYPE{END textCite}}%
\def\TEXTCITATIONS#1{%
\CITATIONSCOUNTER=1%
\def\CITATIONSTOTAL{#1}%
\DOTEXTCITATIONS}%
|