File: ref.zmm

package info (click to toggle)
zoem 08-248-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 2,752 kB
  • ctags: 2,074
  • sloc: ansic: 17,928; sh: 789; makefile: 228
file content (78 lines) | stat: -rw-r--r-- 1,921 bytes parent folder | download | duplicates (2)
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

\:    refload#2         load key-value attributes for a label, check defined
\:    refloadx#2        load key-value attributes for a label without checking
\:    ref#2             put value corresponding to key for label
\:       refcaption#1   put caption for label
\:       refnumber#1    put number for label
\:       reflevel#1     put level for label
\:    reference#2       put citation type reference in place.
\:    refer#1           refer to citation type reference.

\'if{\'defined{data}{pud::load::refload}}{
   \'done
}{
   \'def{%{pud::load::refload}}{1}
}

\import{ctr.zmm}

\'def{refcaption#1}{\ref{\1}{cap}}
\'def{refnumber#1}{\ref{\1}{num}}
\'def{reflevel#1}{\ref{\1}{level}}


\'def{refload#2}{
   \'if{\'defined{data}{{pud::ref::tab}{\1}}}{
      \'write{stderr}{device}{___ label <\1> already defined\@{\N}}
   }{
      \'setx{%{pud::ref::tab}{\1}}{1}
      \'setx{%{pud::ref::entry::\1}}{\2}
   }
}

\'def{refloadx#2}{
   \'setx{%{pud::ref::tab}{\1}}{1}
   \'setx{%{pud::ref::entry::\1}}{\2}
}

\'formatted{
\'def{ref#2}{
   \'if{\'defined{data}{{pud::ref::entry::\1}{\2}}}{\%{pud::ref::entry::\1}{\2}}{
    \`{<}\'write{stderr}{txt}{___ [REF] label/key <\1><\2> not found\|}\`{>}
   \ctrinc{pud::ref::misses}
   }
}
}

\'formatted{
\'register{END}{
   \'if{\ctrput{pud::ref::misses}}{
    \`{<}\'write{stderr}{txt}{>>> [REF] \ctrput{pud::ref::misses} missing references\|}\`{>}
   }{}
}
}

\'formatted{
\'def{reference#1}{
   \ctrinc{pud::reference}
   \'write{\__fnbase__.zmr}{copy}{
      \!refload{\1}{
         {level}{1}
         {type}{Ref}
         {num}{\ctrput{pud::reference}}
         {cap}{[\ctrput{pud::reference}]}
         \`{n}
      }
   }
   \'${html}{\_anch{\1}{[\ctrput{pud::reference}]}}
   \'${roff}{[\ctrput{pud::reference}]}
}
\'def{refer#1}{
   \'switch{\__device__}{
      {html}{\iref{\1}{[\ref{\1}{num}]}}
      {roff}{[\ref{\1}{num}]}
      {[\ref{\1}{num}]}
   }
}
}