blob: b441856e9a8dd7bbd02b467c634335830473ba78 (
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
|
%D \module
%D [ file=catc-sym,
%D version=1997.01.03, % moved code
%D title=\CONTEXT\ Catcode Macros,
%D subtitle=Some Handy Constants,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
%D The following definitions can be used for mapping special characters onto
%D letters, although we cheat a bit: they actually are of category other but
%D for users that distinction doesn't matter here. The definitions in \MKII\
%D and \MKIV\ look more impressive but here we use a \LUAMETATEX\ feature
%D that permits a more direct definition (that also looks nice with the
%D \CONTEXT\ syntax highlighting):
\immutable\edef\letterleftbrace {\expandtoken \othercatcode \leftbraceasciicode}
\immutable\edef\letterrightbrace {\expandtoken \othercatcode \rightbraceasciicode}
\immutable\edef\letterampersand {\expandtoken \othercatcode \ampersandasciicode}
\immutable\edef\letterless {\expandtoken \othercatcode \lessthanasciicode}
\immutable\edef\lettermore {\expandtoken \othercatcode \morethanasciicode}
\immutable\edef\letterhash {\expandtoken \othercatcode \hashasciicode}
\immutable\edef\letterdoublequote {\expandtoken \othercatcode \doublequoteasciicode}
\immutable\edef\lettersinglequote {\expandtoken \othercatcode \singlequoteasciicode}
\immutable\edef\letterdollar {\expandtoken \othercatcode \dollarasciicode}
\immutable\edef\letterpercent {\expandtoken \othercatcode \percentasciicode}
\immutable\edef\letterhat {\expandtoken \othercatcode \circumflexasciicode}
\immutable\edef\letterunderscore {\expandtoken \othercatcode \underscoreasciicode}
\immutable\edef\letterbar {\expandtoken \othercatcode \barasciicode}
\immutable\edef\lettertilde {\expandtoken \othercatcode \tildeasciicode}
\immutable\edef\letterbackslash {\expandtoken \othercatcode \backslashasciicode}
\immutable\edef\letterslash {\expandtoken \othercatcode \forwardslashasciicode}
\immutable\edef\letterquestionmark {\expandtoken \othercatcode \questionmarkasciicode}
\immutable\edef\letterexclamationmark {\expandtoken \othercatcode \exclamationmarkasciicode}
\immutable\edef\letterat {\expandtoken \othercatcode \atsignasciicode}
\immutable\edef\lettercolon {\expandtoken \othercatcode \colonasciicode}
\immutable\edef\letterhyphen {\expandtoken \othercatcode \hyphenasciicode}
\immutable\edef\letterleftparenthesis {\expandtoken \othercatcode \leftparentasciicode}
\immutable\edef\letterrightparenthesis {\expandtoken \othercatcode \rightparentasciicode}
\immutable\edef\letterleftbracket {\expandtoken \othercatcode \leftbracketasciicode}
\immutable\edef\letterrightbracket {\expandtoken \othercatcode \rightbracketasciicode}
\aliased\let\letterescape \letterbackslash
\aliased\let\letterbgroup \letterleftbrace
\aliased\let\letteregroup \letterrightbrace
\aliased\let\letteropenbrace \letterleftbrace
\aliased\let\letterclosebrace\letterrightbrace
\unprotect
%immutable\edef\s!n_u_l_token{\expandtoken \othercatcode \zerocount} % nul(l)
%immutable\edef\s!s_o_h_token{\expandtoken \othercatcode \plusone } % start of header ^^^^0001
%immutable\edef\s!s_t_x_token{\expandtoken \othercatcode \plustwo } % start of text ^^^^0002
%immutable\edef\s!e_t_x_token{\expandtoken \othercatcode \plusthree} % end of text ^^^^0003
\immutable\edef\s!e_o_t_token{\expandtoken \othercatcode \plusfour } % end of transmission ^^^^0004
%immutable\edef\s!e_n_q_token{\expandtoken \othercatcode \plusfive } % enquiry
%immutable\edef\s!a_c_k_token{\expandtoken \othercatcode \plussix } % aknowledgement
\protect
%D \macros
%D {setnormalcatcodes,uncatcodespacetokens}
%D
%D The following macros are more or less replaced by switching to a catcode table
%D (which we simulate in \MKII) but we keep them for convenience and compatibility.
%D Some old engine code has been removed. A few ar still used a few times so I need
%D to clean that up.
\permanent\protected\def\setnormalcatcodes
{\setcatcodetable\ctxcatcodes} % maybe \texcatcodes
\permanent\protected\def\uncatcodespacetokens
{\catcode\spaceasciicode \spacecatcode
\catcode\tabasciicode \spacecatcode
\catcode\formfeedasciicode \endoflinecatcode
\catcode\endoflineasciicode\endoflinecatcode
\catcode\delasciicode \ignorecatcode}
%D These two are probably no longer needed, but we keep them for a while. Some more
%D explanation can be foun din the mkiv variant of this module, where we also
%D discuss side effects. It's time to move on, so these might go away some day.
\aliased \let\rescan \scantextokens
\permanent\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantextokens{#2}\endgroup}
\endinput
|