]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | % Reference Card for Boost.Spirit 2.5.2 |
2 | % Copyright (c) 2014 Richard Thomson. May be freely distributed. | |
3 | % Created Friday, October 31, 2014 | |
4 | % Thanks to Joseph H. Silverman for his TeX reference card on which | |
5 | % this reference card is based. | |
6 | % Thanks to Stephen Gildea for the multicolumn macro package | |
7 | % which Joseph Silverman modified from his GNU emacs reference card | |
8 | % TeX is a trademark of the American Mathematical Society | |
9 | ||
10 | %**start of header | |
11 | \newcount\columnsperpage | |
12 | ||
13 | % This file can be printed with 1, 2, or 3 columns per page (see below). | |
14 | % [For 2 or 3 columns, you'll need 6 and 8 point fonts.] | |
15 | % Specify how many you want here. Nothing else needs to be changed. | |
16 | ||
17 | \columnsperpage=3 | |
18 | ||
19 | % Smaller (97%) pdf file with horizontal offset 1.5in | |
20 | % dvipdfm -l -m 0.97 -x 1.5in -o spirit-reference.pdf spirit-reference.dvi | |
21 | ||
22 | % There are a couple extra sections included at the end of the document | |
23 | % (after the \bye) that didn't fit into six columns. | |
24 | % It would be nice to have additional sections covering: | |
25 | % \hrules and \vrules, Registers | |
26 | % \input and \output files (including \read, \write, \message) | |
27 | ||
28 | % This reference card is distributed in the hope that it will be useful, | |
29 | % but WITHOUT ANY WARRANTY; without even the implied warranty of | |
30 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
31 | ||
32 | % This file is intended to be processed by plain TeX (TeX82). | |
33 | % | |
34 | % The final reference card has six columns, three on each side. | |
35 | % This file can be used to produce it in any of three ways: | |
36 | % 1 column per page | |
37 | % produces six separate pages, each of which needs to be reduced to 80%. | |
38 | % This gives the best resolution. | |
39 | % 2 columns per page | |
40 | % produces three already-reduced pages. | |
41 | % You will still need to cut and paste. | |
42 | % 3 columns per page | |
43 | % produces two pages which must be printed sideways to make a | |
44 | % ready-to-use 8.5 x 11 inch reference card. | |
45 | % For this you need a dvi device driver that can print sideways. | |
46 | % Which mode to use is controlled by setting \columnsperpage above. | |
47 | % | |
48 | % Author: | |
49 | % Richard Thomson | |
50 | % Internet: legalize@xmission.com | |
51 | % (based on a reference card by Joseph H. Silverman) | |
52 | % (reference card macros due to Stephen Gildea) | |
53 | ||
54 | % History: | |
55 | % Version 1.0 - October 2014 | |
56 | ||
57 | \def\versionnumber{1.0} % Version of this reference card | |
58 | \def\year{2014} | |
59 | \def\month{October} | |
60 | \def\version{\month\ \year\ v\versionnumber} | |
61 | ||
62 | ||
63 | \def\shortcopyrightnotice{ | |
64 | \vskip 0pt plus 2 fill\begingroup\parskip=0pt\small | |
65 | \centerline{\copyright\ \number\year\ Richard Thomson, | |
66 | Permissions on back. v\versionnumber} | |
67 | ||
68 | Send comments and corrections to Richard Thomson, | |
69 | $\langle$legalize@xmission.com$\rangle$ | |
70 | ||
71 | \endgroup} | |
72 | ||
73 | \def\copyrightnotice{ | |
74 | \vskip 1ex plus 2 fill\begingroup\parskip=0pt\small | |
75 | \centerline{Copyright \copyright\ \year\ Richard Thomson, \version} | |
76 | ||
77 | Permission is granted to make and distribute copies of | |
78 | this card provided the copyright notice and this permission notice | |
79 | are preserved on all copies. | |
80 | ||
81 | \endgroup} | |
82 | ||
83 | % make \bye not \outer so that the \def\bye in the \else clause below | |
84 | % can be scanned without complaint. | |
85 | \def\bye{\par\vfill\supereject\end} | |
86 | ||
87 | \newdimen\intercolumnskip | |
88 | \newbox\columna | |
89 | \newbox\columnb | |
90 | ||
91 | \def\ncolumns{\the\columnsperpage} | |
92 | ||
93 | \message{[\ncolumns\space | |
94 | column\if 1\ncolumns\else s\fi\space per page]} | |
95 | ||
96 | \def\scaledmag#1{ scaled \magstep #1} | |
97 | ||
98 | % This multi-way format was designed by Stephen Gildea | |
99 | % October 1986. | |
100 | \if 1\ncolumns | |
101 | \hsize 4in | |
102 | \vsize 10in | |
103 | \voffset -.7in | |
104 | \font\titlefont=\fontname\tenbf \scaledmag3 | |
105 | \font\headingfont=\fontname\tenbf \scaledmag2 | |
106 | \font\smallfont=\fontname\sevenrm | |
107 | \font\smallsy=\fontname\sevensy | |
108 | ||
109 | \footline{\hss\folio} | |
110 | \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} | |
111 | \else | |
112 | \hsize 3.2in | |
113 | \vsize 7.95in | |
114 | \hoffset -.75in | |
115 | \voffset -.745in | |
116 | \font\titlefont=cmbx10 \scaledmag2 | |
117 | \font\headingfont=cmbx10 \scaledmag1 | |
118 | \font\smallfont=cmr6 | |
119 | \font\smallsy=cmsy6 | |
120 | \font\eightrm=cmr8 | |
121 | \font\eighti=cmmi8 | |
122 | \font\eightsy=cmsy8 | |
123 | \font\eightbf=cmbx8 | |
124 | \font\eighttt=cmtt8 | |
125 | \font\eightit=cmti8 | |
126 | \font\eightsl=cmsl8 | |
127 | \textfont0=\eightrm | |
128 | \textfont1=\eighti | |
129 | \textfont2=\eightsy | |
130 | \def\rm{\eightrm} | |
131 | \def\bf{\eightbf} | |
132 | \def\tt{\eighttt} | |
133 | \def\it{\eightit} | |
134 | \def\sl{\eightsl} | |
135 | \normalbaselineskip=.8\normalbaselineskip | |
136 | \normallineskip=.8\normallineskip | |
137 | \normallineskiplimit=.8\normallineskiplimit | |
138 | \normalbaselines\rm %make definitions take effect | |
139 | ||
140 | \if 2\ncolumns | |
141 | \let\maxcolumn=b | |
142 | \footline{\hss\rm\folio\hss} | |
143 | \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}} | |
144 | \else \if 3\ncolumns | |
145 | \let\maxcolumn=c | |
146 | \nopagenumbers | |
147 | \else | |
148 | \errhelp{You must set \columnsperpage equal to 1, 2, or 3.} | |
149 | \errmessage{Illegal number of columns per page} | |
150 | \fi\fi | |
151 | ||
152 | \intercolumnskip=.46in | |
153 | \def\abc{a} | |
154 | \output={% | |
155 | % This next line is useful when designing the layout. | |
156 | %\immediate\write16{Column \folio\abc\space starts with \firstmark} | |
157 | \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} | |
158 | \else\if a\abc | |
159 | \global\setbox\columna\columnbox \global\def\abc{b} | |
160 | %% in case we never use \columnb (two-column mode) | |
161 | \global\setbox\columnb\hbox to -\intercolumnskip{} | |
162 | \else | |
163 | \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} | |
164 | \def\multicolumnformat{\shipout\vbox{\makeheadline | |
165 | \hbox{\box\columna\hskip\intercolumnskip | |
166 | \box\columnb\hskip\intercolumnskip\columnbox} | |
167 | \makefootline}\advancepageno} | |
168 | \def\columnbox{\leftline{\pagebody}} | |
169 | ||
170 | \def\bye{\par\vfill\supereject | |
171 | \if a\abc \else\null\vfill\eject\fi | |
172 | \if a\abc \else\null\vfill\eject\fi | |
173 | \end} | |
174 | \fi | |
175 | ||
176 | % ***** Verbatim typesetting ***** | |
177 | ||
178 | % Verbatim typesetting is done by | |
179 | % \verbatim"stuff to verbatim typeset" | |
180 | % Any character can be used in place of ". | |
181 | % E.g. \verbatim?stuff? or \verbatim|stuff|. Cf. TeXbook pp.380-382 | |
182 | ||
183 | \def\uncatcodespecials{\def\do##1{\catcode`##1=12}\dospecials} | |
184 | \def\setupverbatim{\tt% | |
185 | \def\par{\leavevmode\endgraf}\catcode`\`=\active% | |
186 | \obeylines\uncatcodespecials\obeyspaces} | |
187 | \def\verbatim{\begingroup\setupverbatim\doverbatim} | |
188 | \def\doverbatim#1{\def\next##1#1{##1\endgroup}\next} | |
189 | ||
190 | \def\\{\verbatim} | |
191 | \def\ds{\displaystyle} | |
192 | \def\SPC{\quad} % space between symbol and command | |
193 | ||
194 | \parindent 0pt | |
195 | \parskip 1ex plus .5ex minus .5ex | |
196 | ||
197 | \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} | |
198 | ||
199 | \outer\def\newcolumn{\vfill\eject} | |
200 | ||
201 | \outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex minus.5ex} | |
202 | ||
203 | %\outer\def\section#1{\par\filbreak | |
204 | % \vskip 1ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% | |
205 | % \vskip 1ex plus 1ex minus .5ex} | |
206 | \outer\def\section#1{\par\filbreak | |
207 | \vskip .75ex plus 1ex minus 2ex {\headingfont #1}\mark{#1}% | |
208 | \vskip .5ex plus .5ex minus .5ex} | |
209 | ||
210 | ||
211 | \def\paralign{\vskip\parskip\halign} | |
212 | ||
213 | \def\<#1>{$\langle${\rm #1}$\rangle$} | |
214 | ||
215 | \def\begintext{\par\leavevmode\begingroup\parskip0pt\rm} | |
216 | \def\endtext{\endgroup} | |
217 | ||
218 | \def\unused{$unused$} | |
219 | ||
220 | % ************ TEXT STARTS HERE ************************** | |
221 | ||
222 | \title{Boost.Spirit 2.5.2 Reference Card} | |
223 | ||
224 | \section{Primitive Parsers} | |
225 | ||
226 | % ***** Three Column Format ***** | |
227 | \paralign to\hsize{% | |
228 | #\hfil\SPC\tabskip=0pt | |
229 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
230 | &#\hfil\cr | |
231 | %----------- 3 Column Data ------------------- | |
232 | \\|attr(a)|&Attribute&\\|A|\cr | |
233 | \\|eoi|&End of Input&\unused\cr | |
234 | \\|eol|&End of Line&\unused\cr | |
235 | \\|eps|&Epsilon&\unused\cr | |
236 | \\|eps(p)|&&\unused\cr | |
237 | \\|symbols<Ch,T,Lookup>|&Symbol Table&\\|T|\cr | |
238 | } | |
239 | ||
240 | \section{Unary Parsers} | |
241 | ||
242 | % ***** Three Column Format ***** | |
243 | \paralign to\hsize{% | |
244 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
245 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
246 | &#\hfil\cr | |
247 | %----------- 3 Column Data ------------------- | |
248 | \\|&a|&And Predicate&\unused\cr | |
249 | \\|!a|&Not Predicate&\unused\cr | |
250 | \\|*a|&Zero or More&\\|vector<A>|\cr | |
251 | \\|*u|&&\unused\cr | |
252 | \\|-a|&Optional&\\|optional<A>|\cr | |
253 | \\|-u|&&\unused\cr | |
254 | \\|+a|&One or More&\\|vector<A>|\cr | |
255 | \\|+u|&&\unused\cr | |
256 | \\|attr_cast<T>(p)|&Attribute Cast&\\|T|\cr | |
257 | } | |
258 | ||
259 | \section{Binary Parsers} | |
260 | ||
261 | % ***** Three Column Format ***** | |
262 | \paralign to\hsize{% | |
263 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
264 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
265 | &#\hfil\cr | |
266 | %----------- 3 Column Data ------------------- | |
267 | \\|a - b|&Difference&\\|A|\cr | |
268 | \\|u - b|&&\unused\cr | |
269 | \\|a % b|&Separated List&\\|vector<A>|\cr | |
270 | \\|u % b|&&\unused\cr | |
271 | } | |
272 | ||
273 | \section{N-ary Parsers} | |
274 | ||
275 | % ***** Three Column Format ***** | |
276 | \paralign to\hsize{% | |
277 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
278 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
279 | &#\hfil\cr | |
280 | %----------- 3 Column Data ------------------- | |
281 | \\/a | b/&Alternative&\\|variant<A, B>|\cr | |
282 | \\/a | u/& &\\|optional<A>|\cr | |
283 | \\/a | b | u/& &\\|optional<variant<A,B>>|\cr | |
284 | \\/u | b/& &\\|optional<B>|\cr | |
285 | \\/u | u/& &\unused\cr | |
286 | \\/a | a/& &\\|A|\cr | |
287 | \\|a > b|&Expect&\\|tuple<A,B>|\cr | |
288 | \\|a > u|& &\\|A|\cr | |
289 | \\|u > b|& &\\|B|\cr | |
290 | \\|u > u|& &\unused\cr | |
291 | \\|a > vA|& &\\|vector<A>|\cr | |
292 | \\|vA > a|& &\\|vector<A>|\cr | |
293 | \\|vA > vA|& &\\|vector<A>|\cr | |
294 | \\|a ^ b|&Permute&\\|tuple<optional<A>,optional<B>>|\cr | |
295 | \\|a ^ u|& &\\|optional<A>|\cr | |
296 | \\|u ^ b|& &\\|optional<B>|\cr | |
297 | \\|u ^ u|& &\unused\cr | |
298 | \\|a >> b|&Sequence&\\|tuple<A,B>|\cr | |
299 | \\|a >> u|& &\\|A|\cr | |
300 | \\|u >> b|& &\\|B|\cr | |
301 | \\|u >> u|& &\unused\cr | |
302 | \\|a >> a|& &\\|vector<A>|\cr | |
303 | \\|a >> vA|& &\\|vector<A>|\cr | |
304 | \\|vA >> a|& &\\|vector<A>|\cr | |
305 | \\|vA >> vA|& &\\|vector<A>|\cr | |
306 | \\/a || b/&Sequence Or&\\|tuple<optional<A>,optional<B>>|\cr | |
307 | \\/a || u/& &\\|optional<A>|\cr | |
308 | \\/u || a/& &\\|optional<A>|\cr | |
309 | \\/u || u/& &\unused\cr | |
310 | \\/a || a/& &\\|vector<optional<A>>|\cr | |
311 | } | |
312 | ||
313 | \section{Nonterminal Parsers} | |
314 | ||
315 | \paralign to\hsize{ | |
316 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
317 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
318 | &#\hfil\cr | |
319 | \\|rule<It,RT(A1,...,An),Skip,Loc>|&Rule&\\|RT|\cr | |
320 | \\|rule<It>|& &\unused\cr | |
321 | \\|rule<It,Skip>|& &\unused\cr | |
322 | \\|rule<It,Loc>|& &\unused\cr | |
323 | \\|rule<It,Skip,Loc>|& &\unused\cr | |
324 | \\|grammar<It,RT(A1,...,An),Skip,Loc>|&Grammar&\\|RT|\cr | |
325 | \\|grammar<It>|& &\unused\cr | |
326 | \\|grammar<It,Skip>|& &\unused\cr | |
327 | \\|grammar<It,Loc>|& &\unused\cr | |
328 | \\|grammar<It,Skip,Loc>|& &\unused\cr | |
329 | } | |
330 | ||
331 | \section{Parser Directives} | |
332 | ||
333 | \paralign to\hsize{% | |
334 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
335 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
336 | &#\hfil\cr | |
337 | \\|as<T>()[a]|&Atomic Assignment&\\|T|\cr | |
338 | \\|hold[a]|&Hold Attribute&\\|A|\cr | |
339 | \\|hold[u]|&&\unused\cr | |
340 | \\|lexeme[a]|&Lexeme&\\|A|\cr | |
341 | \\|lexeme[u]|&&\unused\cr | |
342 | \\|matches[a]|&Matches&\\|bool|\cr | |
343 | \\|no_case[a]|&Case Insensitive&\\|A|\cr | |
344 | \\|no_case[u]|&&\unused\cr | |
345 | \\|no_skip[a]|&No Skipping&\\|A|\cr | |
346 | \\|no_skip[u]|&&\unused\cr | |
347 | \\|omit[a]|&Omit Attribute&\unused\cr | |
348 | \\|raw[a]|&Raw Iterators&\\|iterator_range<It>|\cr | |
349 | \\|raw[u]|&&\unused\cr | |
350 | \\|repeat[a]|&Repeat&\\|vector<A>|\cr | |
351 | \\|repeat[u]|&&\unused\cr | |
352 | \\|repeat(n)[a]|&&\\|vector<A>|\cr | |
353 | \\|repeat(n)[u]|&&\unused\cr | |
354 | \\|repeat(min,max)[a]|&&\\|vector<A>|\cr | |
355 | \\|repeat(min,max)[u]|&&\unused\cr | |
356 | \\|repeat(min,inf)[a]|&&\\|vector<A>|\cr | |
357 | \\|repeat(min,inf)[u]|&&\unused\cr | |
358 | \\|skip[a]|&Skip Whitespace&\\|A|\cr | |
359 | \\|skip[u]|&&\unused\cr | |
360 | \\|skip(p)[a]|&&\\|A|\cr | |
361 | \\|skip(p)[u]|&&\unused\cr | |
362 | } | |
363 | ||
364 | \section{Semantic Actions} | |
365 | ||
366 | \paralign to\hsize{% | |
367 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
368 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
369 | &#\hfil\cr | |
370 | \\|p[fa]|&Apply Semantic Action&\\|A|\cr | |
371 | \\|p[|$phoenix$ $lambda$\\|]|&&\\|A|\cr | |
372 | } | |
373 | ||
374 | \paralign to\hsize{% | |
375 | #\hfil\cr | |
376 | \\|template<typename Attrib>|\cr | |
377 | \\|void fa(Attrib& attr);|\cr | |
378 | \cr | |
379 | \\|template<typename Attrib, typename Context>|\cr | |
380 | \\|void fa(Attrib& attr, Context& context);|\cr | |
381 | \cr | |
382 | \\|template<typename Attrib, typename Context>|\cr | |
383 | \\|void fa(Attrib& attr, Context& context, bool& pass);|\cr | |
384 | } | |
385 | ||
386 | \section{Phoenix Placeholders} | |
387 | ||
388 | \paralign to\hsize{% | |
389 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
390 | &#\hfil\cr | |
391 | \\|_1|, \\|_2|, $\dots$, \\|_N|&Nth Attribute of \\|p|\cr | |
392 | \\|_val|&Enclosing rule's synthesized attribute\cr | |
393 | \\|_r1|, \\|_r2|, $\dots$, \\|_rN|&Enclosing rule's Nth inherited | |
394 | attribute.\cr | |
395 | \\|_a|, \\|_b|, $\dots$, \\|_j|&Enclosing rule's local variables.\cr | |
396 | \\|_pass|&Assign \\|false| to \\|_pass| to force failure.\cr | |
397 | } | |
398 | ||
399 | \section{Iterator Parser API} | |
400 | ||
401 | \paralign to \hsize{#\cr | |
402 | \\|bool parse<It, Exp>(|\cr | |
403 | \\| It& first, It last, Exp const& expr);|\cr | |
404 | \\|bool parse<It, Exp, A1, ..., An>(|\cr | |
405 | \\| It& first, It last, Exp const& expr,|\cr | |
406 | \\| A1& a1, ..., An& an);|\cr | |
407 | \\|bool phrase_parse<It, Exp, Skipper>(|\cr | |
408 | \\| It& first, It last, Exp const& expr,|\cr | |
409 | \\| Skipper const& skipper,|\cr | |
410 | \\| skip_flag post_skip = postskip);|\cr | |
411 | \\|bool phrase_parse<It, Exp, Skipper, A1, ..., An>(|\cr | |
412 | \\| It& first, It last, Exp const& expr,|\cr | |
413 | \\| Skipper const& skipper,|\cr | |
414 | \\| A1& a1, ..., An& an);|\cr | |
415 | \\|bool phrase_parse<It, Exp, Skipper, A1, ..., An>(|\cr | |
416 | \\| It& first, It last, Exp const& expr,|\cr | |
417 | \\| Skipper const& skipper,|\cr | |
418 | \\| skip_flag post_skip,|\cr | |
419 | \\| A1& a1, ..., An& an);|\cr | |
420 | } | |
421 | ||
422 | \section{Stream Parser API} | |
423 | ||
424 | \paralign to\hsize{#\cr | |
425 | $unspecified$\\| match<Exp>(Exp const& expr);|\cr | |
426 | $unspecified$\\| match<Exp, A1, ..., An>(|\cr | |
427 | \\| Exp const& expr,|\cr | |
428 | \\| A1& a1, ..., An& an);|\cr | |
429 | $unspecified$\\| phrase_match<Exp, Skipper>(|\cr | |
430 | \\| Exp const& expr,|\cr | |
431 | \\| Skipper const& skipper,|\cr | |
432 | \\| skip_flag post_skip = postskip);|\cr | |
433 | $unspecified$\\| phrase_match<Exp, Skipper, A1, ..., An>(|\cr | |
434 | \\| Exp const& expr,|\cr | |
435 | \\| Skipper const& skipper,|\cr | |
436 | \\| skip_flag post_skip,|\cr | |
437 | \\| A1& a1, ..., An& an);|\cr | |
438 | } | |
439 | ||
440 | \section{Binary Value Parsers} | |
441 | ||
442 | % ***** Three Column Format ***** | |
443 | \paralign to\hsize{% | |
444 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
445 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
446 | &#\hfil\cr | |
447 | \\|byte_|&Native Byte&\\|uint_least8_t|\cr | |
448 | \\|byte_(b)|&&\unused\cr | |
449 | \\|word|&Native Word&\\|uint_least16_t|\cr | |
450 | \\|word(w)|&&\unused\cr | |
451 | \\|dword|&Native Double Word&\\|uint_least32_t|\cr | |
452 | \\|dword(dw)|&&\unused\cr | |
453 | \\|qword|&Native Quad Word&\\|uint_least64_t|\cr | |
454 | \\|qword(qw)|&&\unused\cr | |
455 | \\|bin_float|&Native Float&\\|float|\cr | |
456 | \\|bin_float(f)|&&\unused\cr | |
457 | \\|bin_double|&Native Double&\\|double|\cr | |
458 | \\|bin_double(d)|&&\unused\cr | |
459 | \\|little_|$item$&Little Endian $item$&as above\cr | |
460 | \\|little_|$item$\\|(w)|&&\unused\cr | |
461 | \\|big_|$item$&Big Endian $item$&as above\cr | |
462 | \\|big_|$item$\\|(w)|&&\unused\cr | |
463 | } | |
464 | ||
465 | \shortcopyrightnotice | |
466 | ||
467 | \section{Character Encodings} | |
468 | ||
469 | \paralign to\hsize{% | |
470 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
471 | &#\hfil\cr | |
472 | \\|ascii|&7-bit ASCII\cr | |
473 | \\|iso8859_1|&ISO 8859-1\cr | |
474 | \\|standard|&Using \\|<cctype>|\cr | |
475 | \\|standard_wide|&Using \\|<cwctype>|\cr | |
476 | } | |
477 | ||
478 | \section{Character Parsers} | |
479 | ||
480 | \paralign to\hsize{% | |
481 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
482 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
483 | &#\hfil\cr | |
484 | \\|c|&Character Literal&\unused\cr | |
485 | \\|lit(c)|&&\unused\cr | |
486 | \\|ns::char_|&Any Character&\\|ns::char_type|\cr | |
487 | \\|ns::char_(c)|&Character Value&\\|ns::char_type|\cr | |
488 | \\|ns::char_(f,l)|&Character Range&\\|ns::char_type|\cr | |
489 | \\|ns::char_(str)|&Any Character in String&\\|ns::char_type|\cr | |
490 | \\|~cp|&Characters not in \\|cp|&Attribute of \\|cp|\cr | |
491 | } | |
492 | ||
493 | \section{Character Class Parsers} | |
494 | ||
495 | \paralign to\hsize{% | |
496 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
497 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
498 | &#\hfil\cr | |
499 | \\|ns::alnum|&Letters or Digits&\\|ns::char_type|\cr | |
500 | \\|ns::alpha|&Alphabetic&\\|ns::char_type|\cr | |
501 | \\|ns::blank|&Spaces or Tabs&\\|ns::char_type|\cr | |
502 | \\|ns::cntrl|&Control Characters&\\|ns::char_type|\cr | |
503 | \\|ns::digit|&Numeric Digits&\\|ns::char_type|\cr | |
504 | \\|ns::graph|&Non-space Printing Characters&\\|ns::char_type|\cr | |
505 | \\|ns::lower|&Lower Case Letters&\\|ns::char_type|\cr | |
506 | \\|ns::print|&Printing Characters&\\|ns::char_type|\cr | |
507 | \\|ns::punct|&Punctuation&\\|ns::char_type|\cr | |
508 | \\|ns::space|&White Space&\\|ns::char_type|\cr | |
509 | \\|ns::upper|&Upper Case Letters&\\|ns::char_type|\cr | |
510 | \\|ns::xdigit|&Hexadecimal Digits&\\|ns::char_type|\cr | |
511 | } | |
512 | ||
513 | \section{String Parsers} | |
514 | ||
515 | \paralign to\hsize{% | |
516 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
517 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
518 | &#\hfil\cr | |
519 | \\|str|&String Literal&\unused\cr | |
520 | \\|lit(str)|&&\unused\cr | |
521 | \\|ns::string("str")|&String&\\|basic_string<char>|\cr | |
522 | \\|ns::string(L"str")|&&\\|basic_string<wchar_t>|\cr | |
523 | } | |
524 | ||
525 | \section{Unsigned Integer Parsers} | |
526 | ||
527 | \paralign to\hsize{% | |
528 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
529 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
530 | &#\hfil\cr | |
531 | \\|lit(num)|&Integer Literal&\unused\cr | |
532 | \\|ushort_|&Short&\\|unsigned short|\cr | |
533 | \\|ushort_(num)|&Short Value&\\|unsigned short|\cr | |
534 | \\|uint_|&Integer&\\|unsigned int|\cr | |
535 | \\|uint_(num)|&Integer Value&\\|unsigned int|\cr | |
536 | \\|ulong_|&Long&\\|unsigned long|\cr | |
537 | \\|ulong_(num)|&Long Value&\\|unsigned long|\cr | |
538 | \\|ulong_long|&Long Long&\\|unsigned long long|\cr | |
539 | \\|ulong_long(num)|&Long Long Value&\\|unsigned long long|\cr | |
540 | \\|bin|&Binary Integer&\\|unsigned int|\cr | |
541 | \\|bin(num)|&Binary Integer Value&\\|unsigned int|\cr | |
542 | \\|oct|&Octal Integer&\\|unsigned int|\cr | |
543 | \\|oct(num)|&Octal Integer Value&\\|unsigned int|\cr | |
544 | \\|hex|&Hexadecimal Integer&\\|unsigned int|\cr | |
545 | \\|hex(num)|&Hex Integer Value&\\|unsigned int|\cr | |
546 | } | |
547 | ||
548 | \section{Generalized Unsigned Integer Parser} | |
549 | ||
550 | \paralign to\hsize{% | |
551 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
552 | &#\hfil\cr | |
553 | \\|uint_parser<T,Radix,MinDigits,MaxDigits>|&\\|T|\cr | |
554 | \\|uint_parser<T,Radix,MinDigits,MaxDigits>(num)|&\\|T|\cr | |
555 | } | |
556 | ||
557 | \section{Signed Integer Parsers} | |
558 | ||
559 | \paralign to\hsize{% | |
560 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
561 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
562 | &#\hfil\cr | |
563 | \\|lit(num)|&Integer Literal&\unused\cr | |
564 | \\|short_|&Short&\\|short|\cr | |
565 | \\|short_(num)|&Short Value&\\|short|\cr | |
566 | \\|int_|&Integer&\\|int|\cr | |
567 | \\|int_(num)|&Integer Value&\\|int|\cr | |
568 | \\|long_|&Long&\\|long|\cr | |
569 | \\|long_(num)|&Long Value&\\|long|\cr | |
570 | \\|long_long|&Long Long&\\|long long|\cr | |
571 | \\|long_long(num)|&Long Long Value&\\|long long|\cr | |
572 | } | |
573 | ||
574 | \section{Generalized Signed Integer Parser} | |
575 | ||
576 | \paralign to\hsize{% | |
577 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
578 | &#\hfil\cr | |
579 | \\|int_parser<T,Radix,MinDigits,MaxDigits>|&\\|T|\cr | |
580 | \\|int_parser<T,Radix,MinDigits,MaxDigits>(num)|&\\|T|\cr | |
581 | } | |
582 | ||
583 | \section{Real Number Parsers} | |
584 | ||
585 | \paralign to\hsize{% | |
586 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
587 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
588 | &#\hfil\cr | |
589 | \\|lit(num)|&Real Number Literal&\unused\cr | |
590 | \\|float_|&Float&\\|float|\cr | |
591 | \\|float_(num)|&Float Value&\\|float|\cr | |
592 | \\|double_|&Double&\\|double|\cr | |
593 | \\|double_(num)|&Double Value&\\|double|\cr | |
594 | \\|long_double|&Long Double&\\|long double|\cr | |
595 | \\|long_double(num)|&Long Double Value&\\|long double|\cr | |
596 | } | |
597 | ||
598 | \section{Generalized Real Number Parser} | |
599 | ||
600 | \paralign to\hsize{% | |
601 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
602 | &#\hfil\cr | |
603 | \\|real_parser<T,RealPolicies>|&\\|T|\cr | |
604 | \\|real_parser<T,RealPolicies>(num)|&\\|T|\cr | |
605 | } | |
606 | ||
607 | \section{Boolean Parsers} | |
608 | ||
609 | \paralign to\hsize{% | |
610 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
611 | &#\hfil\SPC\tabskip=0pt plus 1 fil | |
612 | &#\hfil\cr | |
613 | \\|lit(boolean)|&Boolean Literal&\unused\cr | |
614 | \\|false_|&Match ``\\|false|''&\\|bool|\cr | |
615 | \\|true_|&Match ``\\|true|''&\\|bool|\cr | |
616 | \\|bool_|&Boolean&\\|bool|\cr | |
617 | \\|bool_(boolean)|&Boolean Value&\\|bool|\cr | |
618 | } | |
619 | ||
620 | \section{Generalized Boolean Parser} | |
621 | ||
622 | \paralign to\hsize{% | |
623 | #\hfil\SPC\tabskip=0pt plus 1 fil | |
624 | &#\hfil\cr | |
625 | \\|bool_parser<T,BoolPolicies>|&\\|T|\cr | |
626 | \\|bool_parser<T,BoolPolicies>(boolean)|&\\|T|\cr | |
627 | } | |
628 | ||
629 | ||
630 | \copyrightnotice | |
631 | ||
632 | \bye |