s-syntax.mkiv /size: 4983 b    last modification: 2021-10-28 13:51
1%D \module
2%D   [      file=s-syntax, % was: s-syn-01,
3%D        version=0000.00.00,
4%D          title=\CONTEXT\ Style File,
5%D       subtitle=Preliminary Syntax Stuff,
6%D         author=Hans Hagen,
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is
11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12%C details.
13
14%D This is needed for the \METAFUN\ manual: quite old code that I would do
15%D differently nowadays.
16
17\unprotect
18
19\unexpanded\def\module_syntax_Indent          #1{\ifvmode\noindent\hbox to 2em{\hss#1}\else#1\fi}
20\unexpanded\def\module_syntax_Sugar           #1{\removeunwantedspaces\kern.25em{#1}\kern.25em\ignorespaces}
21\unexpanded\def\module_syntax_Something       #1{\Sugar{\mathematics{\langle\hbox{#1}\rangle}}}
22\unexpanded\def\module_syntax_Lbrace            {\Sugar{\tttf\leftargument}}
23\unexpanded\def\module_syntax_Rbrace            {\Sugar{\tttf\rightargument}}
24\unexpanded\def\module_syntax_Lparent           {\Sugar{\tttf(}}
25\unexpanded\def\module_syntax_Rparent           {\Sugar{\tttf)}}
26\unexpanded\def\module_syntax_Lbracket          {\Sugar{\tttf[}}
27\unexpanded\def\module_syntax_Rbracket          {\Sugar{\tttf]}}
28\unexpanded\def\module_syntax_Or                {\Sugar{\mathematics{\vert}}}
29\unexpanded\def\module_syntax_Optional        #1{\Sugar{\mathematics{[\hbox{#1}]}}}
30\unexpanded\def\module_syntax_Means             {\Sugar{\mathematics{\rightarrow}}}
31\unexpanded\def\module_syntax_Tex             #1{\Sugar{\type{#1}}}
32\unexpanded\def\module_syntax_Literal         #1{\Sugar{\type{#1}}}
33\unexpanded\def\module_syntax_Syntax          #1{\strut\kern-.25em{#1}\kern-.25em}
34\unexpanded\def\module_syntax_Next              {\par\strut\kern4em} % {\crlf\hbox to 2em{}\nobreak}
35\unexpanded\def\module_syntax_Whatever        #1{\Sugar{\mathematics{(\hbox{#1})}}}
36\unexpanded\def\module_syntax_Quote           #1{\Sugar{\quote{#1}}}
37\unexpanded\def\module_syntax_Or                {\Sugar{\module_syntax_Indent{\mathematics{\vert}}}}
38\unexpanded\def\module_syntax_Means             {\Sugar{\module_syntax_Indent{\mathematics{\rightarrow}}}}
39\unexpanded\def\module_syntax_FlaggedLiteral  #1{\color[darkred]{\module_syntax_Literal{#1}}}
40\unexpanded\def\module_syntax_FlaggedSomething#1{\module_syntax_Something{\color[darkred]{#1}}}
41
42\unexpanded\def\StartSyntax
43  {\startlines
44   % formatters
45   \enforced\let\Indent          \module_syntax_Indent
46   \enforced\let\Sugar           \module_syntax_Sugar
47   \enforced\let\Something       \module_syntax_Something
48   \enforced\let\Lbrace          \module_syntax_Lbrace
49   \enforced\let\Rbrace          \module_syntax_Rbrace
50   \enforced\let\Lparent         \module_syntax_Lparent
51   \enforced\let\Rparent         \module_syntax_Rparent
52   \enforced\let\Lbracket        \module_syntax_Lbracket
53   \enforced\let\Rbracket        \module_syntax_Rbracket
54   \enforced\let\Or              \module_syntax_Or
55   \enforced\let\Optional        \module_syntax_Optional
56   \enforced\let\Means           \module_syntax_Means
57   \enforced\let\Tex             \module_syntax_Tex
58   \enforced\let\Literal         \module_syntax_Literal
59   \enforced\let\Syntax          \module_syntax_Syntax
60   \enforced\let\Next            \module_syntax_Next
61   \enforced\let\Whatever        \module_syntax_Whatever
62   \enforced\let\Quote           \module_syntax_Quote
63   \enforced\let\Or              \module_syntax_Or
64   \enforced\let\Means           \module_syntax_Means
65   \enforced\let\FlaggedLiteral  \module_syntax_FlaggedLiteral
66   \enforced\let\FlaggedSomething\module_syntax_FlaggedSomething
67   % shortcuts
68   \enforced\let\FL              \module_syntax_FlaggedLiteral
69   \enforced\let\FS              \module_syntax_FlaggedSomething
70   \enforced\let\L               \module_syntax_Literal
71   \enforced\let\S               \module_syntax_Something
72   \enforced\let\M               \module_syntax_Means
73   \enforced\let\N               \module_syntax_Next
74   \enforced\let\O               \module_syntax_Or
75   \enforced\let\Q               \module_syntax_Quote
76   \enforced\let\LB              \module_syntax_Lbrace
77   \enforced\let\RB              \module_syntax_Rbrace
78   \enforced\let\LP              \module_syntax_Lparent
79   \enforced\let\RP              \module_syntax_Rparent
80   \enforced\let\LS              \module_syntax_Lbracket
81   \enforced\let\RS              \module_syntax_Rbracket
82   \enforced\let\{               \module_syntax_Lbrace
83   \enforced\let\}               \module_syntax_Rbrace
84   \enforced\let\(               \module_syntax_Lparent
85   \enforced\let\)               \module_syntax_Rparent
86   \enforced\let\[               \module_syntax_Lbracket
87   \enforced\let\]               \module_syntax_Rbracket
88   % precaution
89   \catcode`\#\othercatcode}
90
91\unexpanded\def\StopSyntax
92  {\stoplines}
93
94\unexpanded\def\SyntaxCommand#1%
95  {\csname module_syntax_#1\endcsname}
96
97\protect \endinput
98