/[3dldf]/3dldf/Group/ANIMATNS/parser.web
ViewVC logotype

Contents of /3dldf/Group/ANIMATNS/parser.web

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (show annotations) (download)
Wed Dec 29 13:32:06 2010 UTC (13 years, 8 months ago) by lfinsto1
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +2 -1 lines
Added "2011" to copyright notice.

1 @q parser.web @>
2 @q Created by Laurence Finston Do Mai 12 12:34:17 CEST 2005 @>
3
4 @q * (1) Copyright and License.@>
5
6 @q This file is part of GNU 3DLDF, a package for three-dimensional drawing. @>
7 @q Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, @>
8 @q 2011 The Free Software Foundation @>
9
10 @q GNU 3DLDF is free software; you can redistribute it and/or modify @>
11 @q it under the terms of the GNU General Public License as published by @>
12 @q the Free Software Foundation; either version 3 of the License, or @>
13 @q (at your option) any later version. @>
14
15 @q GNU 3DLDF is distributed in the hope that it will be useful, @>
16 @q but WITHOUT ANY WARRANTY; without even the implied warranty of @>
17 @q MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @>
18 @q GNU General Public License for more details. @>
19
20 @q You should have received a copy of the GNU General Public License @>
21 @q along with GNU 3DLDF; if not, write to the Free Software @>
22 @q Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA@>
23
24 @q GNU 3DLDF is a GNU package. @>
25 @q It is part of the GNU Project of the @>
26 @q Free Software Foundation @>
27 @q and is published under the GNU General Public License. @>
28 @q See the website http://www.gnu.org @>
29 @q for more information. @>
30 @q GNU 3DLDF is available for downloading from @>
31 @q http://www.gnu.org/software/3dldf/LDF.html.@>
32
33 @q ("@@" stands for a single at-sign in the following paragraph.) @>
34
35 @q Please send bug reports to Laurence.Finston@@gmx.de@>
36 @q The mailing list help-3dldf@@gnu.org is available for people to @>
37 @q ask other users for help. @>
38 @q The mailing list info-3dldf@@gnu.org is for sending @>
39 @q announcements to users. To subscribe to these mailing lists, send an @>
40 @q email with ``subscribe <email-address>'' as the subject. @>
41
42 @q The author can be contacted at: @>
43
44 @q Laurence D. Finston @>
45 @q c/o Free Software Foundation, Inc. @>
46 @q 51 Franklin St, Fifth Floor @>
47 @q Boston, MA 02110-1301 @>
48 @q USA @>
49
50 @q Laurence.Finston@@gmx.de (@@ stands for a single "at" sign.)@>
51
52
53
54 @q $Id: parser.web,v 1.6 2008/01/05 17:57:20 lfinsto1 Exp $ @>
55
56 @q * (0) Parsing. @>
57 @** Parsing\quad ({\tt parser\PERIOD web}).\hfil
58
59 \LOG
60 \initials{LDF 2005.05.12.}
61 Created this file. I've copied code from
62 \filename{\char\~/3DLDF/CWEB/parser.w},
63 \filename{\char\~/3DLDF/CWEB/pbsndecl.w},
64 and
65 \filename{\char\~/3DLDF/CWEB/pfuncfin.w} to it.
66 These files are used for the GNU 3DLDF parser.
67 This code must be adapted for use with \.{animctrl}, the Animation
68 Controller.
69 \ENDLOG
70
71
72 @q * (1) Declarations. @>
73
74 @q * (1) Include files. @>
75 @* Include files.
76 \initials{LDF 2005.05.12.}
77
78 @<Include files@>=
79
80 #include "loader.h"
81
82 #include "thrdutls.h"
83
84 @q * (1) Using declarations. @>
85 @* Using declarations.
86 \initials{LDF 2005.05.12.}
87
88 @<Using declarations@>=
89
90 using namespace std;
91 using namespace Scan_Parse;@/
92
93
94 @q * (1) Location type.@>
95 @* Location type.
96 \initials{LDF 2005.05.12.}
97
98 @<Declare location type@>=
99
100 struct
101 LDF_LOCATION_TYPE
102 {
103 unsigned int first_line;
104 unsigned int first_column;
105 unsigned int last_line;
106 unsigned int last_column;
107 unsigned int position;
108 @<Declare |LDF_LOCATION_TYPE| functions@>@;
109 };
110
111 @q ** (2) |LDF_LOCATION_TYPE| functions. @>
112 @*1 {\bf LDF\_LOCATION\_TYPE} functions.
113 \initials{LDF 2005.05.12.}
114
115
116 @q *** (3) Constructor.@>
117 @2 Constructor.
118 \initials{LDF 2005.05.12.}
119
120 @<Declare |LDF_LOCATION_TYPE| functions@>=
121
122 LDF_LOCATION_TYPE(void);
123
124 @
125 @<Define |LDF_LOCATION_TYPE| functions@>=
126 LDF_LOCATION_TYPE::LDF_LOCATION_TYPE(void)
127 {
128 first_line = last_line = position = 1;
129 first_column = last_column = 0;
130 return;
131 }
132
133 @q * (1) Preprocessor macros not only for the parser. @>
134 @* Preprocessor macros not only for the parser.
135 \initials{LDF 2005.05.12.}
136
137 @<Preprocessor macros not only for the parser@>=
138
139 #define YYPARSE_PARAM parameter
140 #define YYLEX_PARAM parameter
141 #define YYLTYPE LDF_LOCATION_TYPE
142 #define YYLOC_DEFAULT(Current, Rhs, N) /* Do nothing. */
143
144 @q * (1) Preprocessor macros for the parser only. @>
145 @* Preprocessor macros for the parser only.
146 @<Preprocessor macros for the parser only@>=
147
148 #define YYERROR_VERBOSE
149
150
151 @q * (1) Bison declarations. @>
152 @* Bison declarations.
153 \initials{LDF 2005.05.12.}
154
155 \LOG
156 \initials{LDF 2005.05.12.}
157 Added this section.
158 \ENDLOG
159
160 @<Bison declarations@>=
161 @=%defines@>@/
162 @=%debug@>@/
163 @q =%expect 1@>@/
164 @=%locations@>@/
165 @=%pure_parser@>@/
166 @=/* %token_table */@>@/
167 @=%verbose@>
168
169 @q * (1) Type declarations. @>
170 @* Type declarations.
171
172 @q ** (2) Union declaration. This is the type of |YYSTYPE|. @>
173 @*1 Union declaration for |YYSTYPE|.
174
175 @<Union declaration for |YYSTYPE|@>=
176
177 @=%union@>
178 {
179 char string_value[64];
180 double real_value;
181 signed int int_value;
182 void* pointer_value;
183 };
184
185
186 @q * (1) Token and precedence declarations. @>
187 @* Token and precedence declarations.
188
189 I don't believe it's necessary to specify the precedence of operators, because
190 this is implicit in the structure of the rules, with ``the four-fold
191 `primary, secondary, tertiary, expression' hierarchy $[\ldots]$''%
192 %
193 \fnote{Knuth, {\it The METAFONTbook}, p.~209.}.
194 %
195 However, it may be necessary to specify their associativity, and the ordering of
196 the |@=%left@>|, |@=%right@>|, and |@=%nonassoc@>| declarations automatically
197 specify their precedence.
198 \initials{LDF 2005.05.12.}
199
200 \TODO
201 @q { @>
202 @:TO DO}{{\bf TO DO}@>
203 @q } @>
204 @q !! TO DO:@>
205 Add formatting commands.
206 \initials{LDF 2005.05.12.}
207
208 \initials{LDF 2005.05.12.}
209 Make sure these declarations work properly.
210 \ENDTODO
211
212
213 @f terminal_symbol int
214 @f non_terminal_symbol terminal_symbol
215
216 @q ** (2) Basic types. @>
217 @*1 Basic types.
218
219 \LOG
220 \initials{LDF 2005.05.12.}
221 Added token declarations for
222 |AMPERSAND|, |CYCLE|, |PERIOD_PAIR|, |PERIOD_TRIPLE|, |HYPHEN_PAIR|, and
223 |HYPHEN_TRIPLE|,
224
225 \initials{LDF 2005.05.12.}
226 Added token declarations for |REVERSE|, |SUBPATH|, and |OF|.
227
228 \initials{LDF 2005.05.12.}
229 Changed |DASH_PATTERN| to |DASH_PATTERN_DECLARATOR|
230 in token declaration.
231
232 \initials{LDF 2005.05.12.}
233 Added token declaration for |COLON|.
234
235 \initials{LDF 2005.05.12.}
236 Replaced token declaration for |CURLY_BRACES| with
237 ones for |LEFT_BRACE| and |RIGHT_BRACE|.
238 \ENDLOG
239
240 @f END terminal_symbol
241 @f numeric_token non_terminal_symbol
242
243 @<Token and precedence declarations@>=
244
245
246 @=%token <int_value> NULL_VALUE@>@/
247 @=%token <int_value> TERMINATE@>@/
248 @=%token <int_value> INVALID_CATCODE@>@/
249 @=%token <int_value> INVALID_CHAR@>@/
250
251 @=%token <string_value> SPACE@>@/
252
253 @=%token <string_value> AMPERSAND@>@/
254 @=%token <string_value> PERIOD@>@/
255 @=%token <string_value> PERIOD_PAIR@>@/
256 @=%token <string_value> PERIOD_TRIPLE@>@/
257 @=%token <string_value> HYPHEN@>@/
258 @=%token <string_value> HYPHEN_PAIR@>@/
259 @=%token <string_value> HYPHEN_TRIPLE@>@/
260
261 @=%token <int_value> CYCLE@>@/
262 @=%token <int_value> REVERSE@>@/
263 @=%token <int_value> SUBPATH@>@/
264 @=%token <int_value> OF@>@/
265
266 @=%token <string_value> COMMA@>@/
267 @=%token <string_value> COLON@>@/
268 @=%token <string_value> SEMI_COLON@>@/
269 @=%token <string_value> LEFT_PARENTHESIS@>@/
270 @=%token <string_value> RIGHT_PARENTHESIS@>@/
271 @=%token <string_value> DOUBLE_QUOTE@>@/
272 @=%token <string_value> LEFT_BRACKET@>@/
273 @=%token <string_value> RIGHT_BRACKET@>@/
274 @=%token <string_value> LEFT_BRACE@>@/
275 @=%token <string_value> RIGHT_BRACE@>@/
276 @=%token <string_value> DIGIT@>@/
277 @=%token <int_value> INTEGER@>@/
278 @=%token <real_value> REAL@>@/
279 @=%token <string_value> PERCENT@>@/
280 @=%token <string_value> SYMBOL_0@>@/
281 @=%token <string_value> SYMBOL_1@>@/
282 @=%token <string_value> SYMBOL_2@>@/
283 @=%token <string_value> SYMBOL_3@>@/
284 @=%token <string_value> SYMBOL_4@>@/
285 @=%token <string_value> SYMBOL_5@>@/
286 @=%token <string_value> SYMBOL_6@>@/
287 @=%token <string_value> SYMBOL_7@>@/
288
289 @q ** (2) Object types defined in 3DLDF and |UNDECLARED|.@>
290
291 @*1 Object types defined in 3DLDF and |UNDECLARED|.
292 I plan to use the latter in
293 {\bf save} commands.
294 \initials{LDF 2005.05.12.}
295
296 \LOG
297 \initials{LDF 2005.05.12.}
298 Added this section.
299
300 \initials{LDF 2005.05.12.}
301 Added |UNKNOWN_TYPE|.
302
303 \initials{LDF 2005.05.12.}
304 Changed |UNKNOWN_TYPE| to |UNDECLARED| and
305 values of the types in this section from |string_value| to |pointer_value|.
306 |NUMERIC| was already a |pointer_value|.
307
308 \initials{LDF 2005.05.12.}
309 Added token declaration for |BOOLEAN|.
310
311 \initials{LDF 2005.05.12.}
312 Added token declarations for |PEN|, |COLOR|,
313 |FOCUS|, and |PICTURE|.
314
315 \initials{LDF 2005.05.12.}
316 Added token declaration for |SYNONYM|.
317
318 \initials{LDF 2005.05.12.}
319 Added token declaration for |COLOR_VECTOR|.
320
321 \initials{LDF 2005.05.12.}
322 Added token declaration for |POINT_VECTOR|.
323
324 \initials{LDF 2005.05.12.}
325 Added token declarations for |BOOL_POINT| and |BOOL_POINT_VECTOR|.
326
327 \initials{LDF 2005.05.12.}
328 Added token declarations for |PATH_VECTOR|,
329 |TRIANGLE_VECTOR|, |REG_POLYGON_VECTOR|,
330 |RECTANGLE_VECTOR|, |SQUARE_VECTOR|,
331 |ELLIPSE_VECTOR|, |CIRCLE_VECTOR|, |CUBOID_VECTOR|,
332 |TETRAHEDRON_VECTOR|, |OCTAHEDRON_VECTOR|, |DODECAHEDRON_VECTOR|,
333 |ICOSAHEDRON_VECTOR|, and |TRUNC_OCTAHEDRON_VECTOR|.
334
335 \initials{LDF 2005.05.12.}
336 Added token declarations for
337 |BOOLEAN_VECTOR|,
338 |STRING_VECTOR|,
339 |NUMERIC_VECTOR|,
340 |PEN_VECTOR|,
341 |DASH_PATTERN_VECTOR|,
342 |PICTURE_VECTOR|,
343 |TRANSFORM_VECTOR|, and
344 |FOCUS_VECTOR|.
345
346 \initials{LDF 2005.05.12.}
347 Added token declarations for |NURB| and |NURB_VECTOR|.
348
349 \initials{LDF 2005.05.12.}
350 Added token declarations for |ORIGAMI_FIGURE| and
351 |ORIGAMI_FIGURE_VECTOR|.
352
353 \initials{LDF 2005.05.12.}
354 Added token declarations for |POLYGON| and
355 |POLYGON_VECTOR|.
356
357 \initials{LDF 2005.05.12.}
358 Added token declarations for
359 |ELLIPSE_SLICE|, |CIRCLE_SLICE|, |POLYHEDRON_SLICE|,
360 |ELLIPSE_SLICE_VECTOR|, |CIRCLE_SLICE_VECTOR|, and
361 |POLYHEDRON_SLICE_VECTOR|.
362 \ENDLOG
363
364 @q ** (2) Code.@>
365
366 @<Token and precedence declarations@>=
367
368 @=%token <pointer_value> SYNONYM@>@/
369 @=%token <pointer_value> UNDECLARED@>@/
370
371 @=%token <pointer_value> BOOLEAN@>@/
372 @=%token <pointer_value> STRING@>@/
373 @=%token <pointer_value> NUMERIC@>@/
374 @=%token <pointer_value> PEN@>@/
375 @=%token <pointer_value> DASH_PATTERN@>@/
376 @=%token <pointer_value> COLOR@>@/
377 @=%token <pointer_value> PICTURE@>@/
378 @=%token <pointer_value> TRANSFORM@>@/
379 @=%token <pointer_value> FOCUS@>@/
380
381 @=%token <pointer_value> POINT@>@/
382 @=%token <pointer_value> BOOL_POINT@>@/
383 @=%token <pointer_value> NURB@>@/
384 @=%token <pointer_value> PATH@>@/
385 @=%token <pointer_value> TRIANGLE@>@/
386 @=%token <pointer_value> POLYGON@>@/
387 @=%token <pointer_value> REG_POLYGON@>@/
388 @=%token <pointer_value> RECTANGLE@>@/
389 @=%token <pointer_value> SQUARE@>@/
390 @=%token <pointer_value> ELLIPSE@>@/
391 @=%token <pointer_value> CIRCLE@>@/
392 @=%token <pointer_value> CUBOID@>@/
393 @=%token <pointer_value> TETRAHEDRON@>@/
394 @=%token <pointer_value> OCTAHEDRON@>@/
395 @=%token <pointer_value> DODECAHEDRON@>@/
396 @=%token <pointer_value> ICOSAHEDRON@>@/
397 @=%token <pointer_value> TRUNC_OCTAHEDRON@>@/
398
399 @=%token <pointer_value> ELLIPSE_SLICE@>@/
400 @=%token <pointer_value> CIRCLE_SLICE@>@/
401 @=%token <pointer_value> POLYHEDRON_SLICE@>@/
402
403 @=%token <pointer_value> ELLIPSE_SLICE_VECTOR@>@/
404 @=%token <pointer_value> CIRCLE_SLICE_VECTOR@>@/
405 @=%token <pointer_value> POLYHEDRON_SLICE_VECTOR@>@/
406
407 @=%token <pointer_value> BOOLEAN_VECTOR@>@/
408 @=%token <pointer_value> STRING_VECTOR@>@/
409 @=%token <pointer_value> NUMERIC_VECTOR@>@/
410 @=%token <pointer_value> COLOR_VECTOR@>@/
411 @=%token <pointer_value> PEN_VECTOR@>@/
412 @=%token <pointer_value> DASH_PATTERN_VECTOR@>@/
413 @=%token <pointer_value> PICTURE_VECTOR@>@/
414 @=%token <pointer_value> TRANSFORM_VECTOR@>@/
415 @=%token <pointer_value> FOCUS_VECTOR@>@/
416
417
418 @=%token <pointer_value> POINT_VECTOR@>@/
419 @=%token <pointer_value> BOOL_POINT_VECTOR@>@/
420 @=%token <pointer_value> NURB_VECTOR@>@/
421 @=%token <pointer_value> PATH_VECTOR@>@/
422 @=%token <pointer_value> TRIANGLE_VECTOR@>@/
423 @=%token <pointer_value> POLYGON_VECTOR@>@/
424 @=%token <pointer_value> REG_POLYGON_VECTOR@>@/
425 @=%token <pointer_value> RECTANGLE_VECTOR@>@/
426 @=%token <pointer_value> SQUARE_VECTOR@>@/
427 @=%token <pointer_value> ELLIPSE_VECTOR@>@/
428 @=%token <pointer_value> CIRCLE_VECTOR@>@/
429 @=%token <pointer_value> CUBOID_VECTOR@>@/
430 @=%token <pointer_value> TETRAHEDRON_VECTOR@>@/
431 @=%token <pointer_value> OCTAHEDRON_VECTOR@>@/
432 @=%token <pointer_value> DODECAHEDRON_VECTOR@>@/
433 @=%token <pointer_value> ICOSAHEDRON_VECTOR@>@/
434 @=%token <pointer_value> TRUNC_OCTAHEDRON_VECTOR@>@/
435
436 @=%token <pointer_value> ORIGAMI_FIGURE@>@/
437 @=%token <pointer_value> ORIGAMI_FIGURE_VECTOR@>@/
438
439
440
441 @q ** (2) Declarators for object types defined in 3DLDF.@>
442 @*1 Declarators for object types defined in 3DLDF.
443
444 \LOG
445 \initials{LDF 2005.05.12.}
446 Added this section.
447
448 \initials{LDF 2005.05.12.}
449 Added token declaration for |BOOLEAN_DECLARATOR|.
450
451 \initials{LDF 2005.05.12.}
452 Added token declaration for |STRING_DECLARATOR|.
453
454 \initials{LDF 2005.05.12.}
455 Added token declarations for |COLOR_DECLARATOR|,
456 |PEN_DECLARATOR|, |FOCUS_DECLARATOR|, and |PICTURE_DECLARATOR|.
457
458 \initials{LDF 2005.05.12.}
459 Added token declaration for |COLOR_VECTOR_DECLARATOR|.
460
461 \initials{LDF 2005.05.12.}
462 Added token declaration for |POINT_VECTOR_DECLARATOR|.
463
464 \initials{LDF 2005.05.12.}
465 Added token declarations for |BOOL_POINT_DECLARATOR|
466 and |BOOL_POINT_VECTOR_DECLARATOR|.
467
468 \initials{LDF 2005.05.12.}
469 Added token declarations for |PATH_VECTOR_DECLARATOR|,
470 |TRIANGLE_VECTOR_DECLARATOR|, |REG_POLYGON_VECTOR_DECLARATOR|,
471 |RECTANGLE_VECTOR_DECLARATOR|, |SQUARE_VECTOR_DECLARATOR|,
472 |ELLIPSE_VECTOR_DECLARATOR|, |CIRCLE_VECTOR_DECLARATOR|,
473 |CUBOID_VECTOR_DECLARATOR|, |TETRAHEDRON_VECTOR_DECLARATOR|,
474 |OCTAHEDRON_VECTOR_DECLARATOR|, |DODECAHEDRON_VECTOR_DECLARATOR|,
475 |ICOSAHEDRON_VECTOR_DECLARATOR|, and
476 |TRUNC_OCTAHEDRON_VECTOR_DECLARATOR|.
477
478 \initials{LDF 2005.05.12.}
479 Moved tokens declarations for vector-type declarators to their
480 own section, below.
481
482 \initials{LDF 2005.05.12.}
483 Added token declaration for |NURB_DECLARATOR|.
484
485 \initials{LDF 2005.05.12.}
486 Added token declaration for |ORIGAMI_FIGURE_DECLARATOR|.
487
488 \initials{LDF 2005.05.12.}
489 Added token declaration for |POLYGON__DECLARATOR|.
490
491 \initials{LDF 2005.05.12.}
492 Added token declarations for |ELLIPSE_SLICE_DECLARATOR|,
493 |CIRCLE_SLICE_DECLARATOR|, |POLYHEDRON_SLICE_DECLARATOR|,
494 |ELLIPSE_SLICE_VECTOR_DECLARATOR|,
495 |CIRCLE_SLICE_VECTOR_DECLARATOR|, |POLYHEDRON_SLICE_VECTOR_DECLARATOR|.
496 \ENDLOG
497
498 @q *** (3) Code.@>
499
500 @<Token and precedence declarations@>=
501
502 @=%token <string_value> BOOLEAN_DECLARATOR@>@/
503 @=%token <string_value> STRING_DECLARATOR@>@/
504 @=%token <string_value> NUMERIC_DECLARATOR@>@/
505 @=%token <string_value> TRANSFORM_DECLARATOR@>@/
506 @=%token <string_value> COLOR_DECLARATOR@>@/
507 @=%token <string_value> PEN_DECLARATOR@>@/
508 @=%token <string_value> DASH_PATTERN_DECLARATOR@>@/
509 @=%token <string_value> FOCUS_DECLARATOR@>@/
510 @=%token <string_value> PICTURE_DECLARATOR@>@/
511 @=%token <string_value> POINT_DECLARATOR@>@/
512 @=%token <string_value> BOOL_POINT_DECLARATOR@>@/
513 @=%token <string_value> NURB_DECLARATOR@>@/
514 @=%token <string_value> PATH_DECLARATOR@>@/
515 @=%token <string_value> TRIANGLE_DECLARATOR@>@/
516 @=%token <string_value> POLYGON_DECLARATOR@>@/
517 @=%token <string_value> REG_POLYGON_DECLARATOR@>@/
518 @=%token <string_value> RECTANGLE_DECLARATOR@>@/
519 @=%token <string_value> SQUARE_DECLARATOR@>@/
520 @=%token <string_value> ELLIPSE_DECLARATOR@>@/
521 @=%token <string_value> CIRCLE_DECLARATOR@>@/
522 @=%token <string_value> CUBOID_DECLARATOR@>@/
523 @=%token <string_value> TETRAHEDRON_DECLARATOR@>@/
524 @=%token <string_value> OCTAHEDRON_DECLARATOR@>@/
525 @=%token <string_value> DODECAHEDRON_DECLARATOR@>@/
526 @=%token <string_value> ICOSAHEDRON_DECLARATOR@>@/
527 @=%token <string_value> TRUNC_OCTAHEDRON_DECLARATOR@>@/
528
529 @=%token <string_value> ORIGAMI_FIGURE_DECLARATOR@>@/
530
531 @=%token <string_value> ELLIPSE_SLICE_DECLARATOR@>@/
532 @=%token <string_value> CIRCLE_SLICE_DECLARATOR@>@/
533 @=%token <string_value> POLYHEDRON_SLICE_DECLARATOR@>@/
534
535 @=%token <string_value> ELLIPSE_SLICE_VECTOR_DECLARATOR@>@/
536 @=%token <string_value> CIRCLE_SLICE_VECTOR_DECLARATOR@>@/
537 @=%token <string_value> POLYHEDRON_SLICE_VECTOR_DECLARATOR@>@/
538
539
540 @q ** (2) Declarators for object types defined in 3DLDF.@>
541 @*1 Declarators for object types defined in 3DLDF.
542
543 \LOG
544 \initials{LDF 2005.05.12.}
545 Added this section. Moved tokens declarations for vector-type
546 declarators here.
547
548 \initials{LDF 2005.05.12.}
549 Added token declarations for
550 |BOOLEAN_VECTOR_DECLARATOR|,
551 |STRING_VECTOR_DECLARATOR|,
552 |NUMERIC_VECTOR_DECLARATOR|,
553 |TRANSFORM_VECTOR_DECLARATOR|,
554 |PEN_VECTOR_DECLARATOR|,
555 |DASH_PATTERN_VECTOR_DECLARATOR|,
556 |FOCUS_VECTOR_DECLARATOR|, and
557 |PICTURE_VECTOR_DECLARATOR|.
558
559 \initials{LDF 2005.05.12.}
560 Added token declaration for |NURB_VECTOR_DECLARATOR|.
561
562 \initials{LDF 2005.05.12.}
563 Added token declaration for |ORIGAMI_FIGURE_VECTOR_DECLARATOR|.
564
565 \initials{LDF 2005.05.12.}
566 Added token declaration for |POLYGON_VECTOR_DECLARATOR|.
567 \ENDLOG
568
569 @q *** (3).@>
570
571 @<Token and precedence declarations@>=
572
573 @=%token <string_value> BOOLEAN_VECTOR_DECLARATOR@>@/
574 @=%token <string_value> STRING_VECTOR_DECLARATOR@>@/
575 @=%token <string_value> NUMERIC_VECTOR_DECLARATOR@>@/
576 @=%token <string_value> TRANSFORM_VECTOR_DECLARATOR@>@/
577 @=%token <string_value> COLOR_VECTOR_DECLARATOR@>@/
578 @=%token <string_value> PEN_VECTOR_DECLARATOR@>@/
579 @=%token <string_value> DASH_PATTERN_VECTOR_DECLARATOR@>@/
580 @=%token <string_value> FOCUS_VECTOR_DECLARATOR@>@/
581 @=%token <string_value> PICTURE_VECTOR_DECLARATOR@>@/
582 @=%token <string_value> POINT_VECTOR_DECLARATOR@>@/
583 @=%token <string_value> BOOL_POINT_VECTOR_DECLARATOR@>@/
584 @=%token <string_value> NURB_VECTOR_DECLARATOR@>@/
585 @=%token <string_value> PATH_VECTOR_DECLARATOR@>@/
586 @=%token <string_value> TRIANGLE_VECTOR_DECLARATOR@>@/
587 @=%token <string_value> POLYGON_VECTOR_DECLARATOR@>@/
588 @=%token <string_value> REG_POLYGON_VECTOR_DECLARATOR@>@/
589 @=%token <string_value> RECTANGLE_VECTOR_DECLARATOR@>@/
590 @=%token <string_value> SQUARE_VECTOR_DECLARATOR@>@/
591 @=%token <string_value> ELLIPSE_VECTOR_DECLARATOR@>@/
592 @=%token <string_value> CIRCLE_VECTOR_DECLARATOR@>@/
593 @=%token <string_value> CUBOID_VECTOR_DECLARATOR@>@/
594 @=%token <string_value> TETRAHEDRON_VECTOR_DECLARATOR@>@/
595 @=%token <string_value> OCTAHEDRON_VECTOR_DECLARATOR@>@/
596 @=%token <string_value> DODECAHEDRON_VECTOR_DECLARATOR@>@/
597 @=%token <string_value> ICOSAHEDRON_VECTOR_DECLARATOR@>@/
598 @=%token <string_value> TRUNC_OCTAHEDRON_VECTOR_DECLARATOR@>@/
599
600 @=%token <string_value> ORIGAMI_FIGURE_VECTOR_DECLARATOR@>@/
601
602 @q *** (3) General-Purpose Words and ``Syntactic Sugar''.@>
603 @*2 General-Purpose Words and ``Syntactic Sugar''.
604 \initials{LDF 2005.05.12.}
605
606 \LOG
607 \initials{LDF 2005.05.12.}
608 Added this section with token declarations for
609 |IN|, |BY|, and |AROUND|.
610
611 \initials{LDF 2005.05.12.}
612 Added token declaration for |OFF|.
613 \ENDLOG
614
615 @<Token and precedence declarations@>=
616
617 @=%token <int_value> IN@>@/
618 @=%token <int_value> OFF@>@/
619 @=%token <int_value> BY@>@/
620 @=%token <int_value> AROUND@>@/
621
622
623 @q *** (3) System information.@>
624 @*2 System information.
625 \initials{LDF 2005.05.12.}
626
627 \LOG
628 \initials{LDF 2005.05.12.}
629 Added this section with token declarations for
630 |IS_BIG_ENDIAN| and |IS_LITTLE_ENDIAN|.
631 \ENDLOG
632
633 @<Token and precedence declarations@>=
634
635 @=%token <int_value> IS_BIG_ENDIAN@>@/
636 @=%token <int_value> IS_LITTLE_ENDIAN@>@/
637
638
639 @q *** (3) Transformers and Transform Commands. @>
640 @*2 Transformers and Transform Commands.
641
642 \LOG
643 \initials{LDF 2005.05.12.}
644 Added this section.
645
646 \initials{LDF 2005.05.12.}
647 Added token declarations for the transform commands.
648
649 \initials{LDF 2005.05.12.}
650 Changed |REFLECTED_IN| to |REFLECTED|.
651
652 \initials{LDF 2005.05.12.}
653 Added token declaration for |ROTATE_AROUND|. This was necessary,
654 because using the token |ROTATE| for both rotation about the main axes
655 and rotation around an arbitrary axis didn't work. The parser rule for the
656 first kind of rotation was never reduced.
657
658 \initials{LDF 2005.05.12.}
659 Replaced |REFLECTED| with |REFLECTED_IN| and |REFLECTED_OFF|.
660 \ENDLOG
661
662
663 @<Token and precedence declarations@>=
664
665 @=%token <pointer_value> REFLECTED_IN@>@/
666 @=%token <pointer_value> REFLECTED_OFF@>@/
667 @=%token <pointer_value> ROTATED@>@/
668 @=%token <pointer_value> ROTATED_AROUND@>@/
669 @=%token <pointer_value> SCALED@>@/
670 @=%token <pointer_value> SHEARED@>@/
671 @=%token <pointer_value> SHIFTED@>@/
672 @=%token <pointer_value> TRANSFORMED@>@/
673 @=%token <pointer_value> XSCALED@>@/
674 @=%token <pointer_value> YSCALED@>@/
675 @=%token <pointer_value> ZSCALED@>@/
676
677 @=%token <int_value> REFLECT@>@/
678 @=%token <int_value> ROTATE@>@/
679 @=%token <int_value> ROTATE_AROUND@>@/
680 @=%token <int_value> SCALE@>@/
681 @=%token <int_value> SHEAR@>@/
682 @=%token <int_value> SHIFT@>@/
683 @=%token <int_value> TRANSFORM_BY@>@/
684 @=%token <int_value> XSCALE@>@/
685 @=%token <int_value> YSCALE@>@/
686 @=%token <int_value> ZSCALE@>@/
687
688
689 @q *** (3) Operators. @>
690 @*2 Operators.
691
692 Please note that in each declaration where multiple tokens are declared, the
693 tokens that appear earlier in the declaration are assigned {\it higher\/} values
694 than the tokens that appear later. However, the values assigned to the tokens
695 ascend from declaration to declaration. For example, |MINUS < PLUS < TIMES|.
696 \initials{LDF 2005.05.12.}
697
698 \LOG
699 \initials{LDF 2005.05.12.}
700 Added declaration for |EQUALS|.
701
702 \initials{LDF 2005.05.12.}
703 Raised the priority of |LENGTH| and
704 |UNARY_PLUS_OR_MINUS|. Added |%left|
705 declarations for |XPART|, |YPART|, |ZPART|, and |WPART|.
706
707 \initials{LDF 2005.05.12.}
708 Changed the order of the declarations of
709 |XPART|, |YPART|, |ZPART|, and |WPART|. They are now in reverse alphabetical
710 order, so that |ZPART == YPART + 1 == XPART + 2 == WPART + 3|.
711 The rule ``\§numeric primary> $\longrightarrow$ \§point part> \§point primary>'' in
712 \filename{pnumexpr.w} depends on this.
713
714 \initials{LDF 2005.05.12.}
715 Added declaration of |MAGNITUDE|.
716
717 \initials{LDF 2005.05.12.}
718 Added declaration of |ANGLE|.
719
720 \initials{LDF 2005.05.12.}
721 Added declarations for
722 |OR|, |AND|, |EQUAL|, |NOT_EQUAL|, |LESS|,
723 |LESS_OR_EQUAL|, |GREATER|, |GREATER_OR_EQUAL|,
724 |NOT|, and |EQUATE|. Removed the declaration for |EQUALS|.
725
726 \initials{LDF 2005.05.12.}
727 Added |%right| declaration of |PLUS_ASSIGN|, |MINUS_ASSIGN|,
728 |TIMES_ASSIGN|, and |DIVIDE_ASSIGN|.
729
730 \initials{LDF 2005.05.12.}
731 Added |%left| declarations of |DOT_PRODUCT| and |CROSS_PRODUCT|.
732
733
734 \initials{LDF 2005.05.12.}
735 Added |%left| declarations of |NORMAL| and |UNIT_VECTOR|.
736
737 \initials{LDF 2005.05.12.}
738 Added |%left| declarations for |XXPART|, |XYPART|, |XZPART|,
739 |YXPART|, |YYPART|, |YZPART|, |ZXPART|, |ZYPART|,
740 |ZZPART|, and |WXPART|, |WYPART|, |WZPART|.
741
742 \initials{LDF 2005.05.12.}
743 @:BUG FIX@> BUG FIX:
744 Added |WXPART|, |WYPART|, and |WZPART|.
745 I'd forgotten to before.
746
747 \initials{LDF 2005.05.12.}
748 Added |left| declaration of |SIZE|.
749
750 \initials{LDF 2005.05.12.}
751 Added |%left| declarations for |RED_PART|,
752 |GREEN_PART|, |BLUE_PART|, |YELLOW_PART|, |MAGENTA_PART|,
753 |CYAN_PART|, |BLACK_PART|, |WHITE_PART|, |BLUE_VIOLET_PART|, and
754 |RED_ORANGE_PART|.
755 \ENDLOG
756
757
758 @q **** (4) Declarations.@>
759
760 @<Token and precedence declarations@>=
761
762 @=%right <int_value> ASSIGN EQUATE PLUS_ASSIGN MINUS_ASSIGN @>
763 @=TIMES_ASSIGN DIVIDE_ASSIGN@>
764 @=%left <int_value> OR@>
765 @=%left <int_value> AND@>
766 @=%left <int_value> EQUAL NOT_EQUAL@>
767 @=%left <int_value> LESS LESS_OR_EQUAL GREATER GREATER_OR_EQUAL@>
768 @=%left <int_value> PLUS MINUS PYTHAGOREAN_PLUS PYTHAGOREAN_MINUS@>
769 @=%left <int_value> TIMES OVER ANGLE DOT_PRODUCT CROSS_PRODUCT @>@/
770 @=NORMAL UNIT_VECTOR@>
771 @=%left <int_value> LENGTH MAGNITUDE SIZE SQRT SIND COSD MLOG MEXP @>
772 @=UNIFORMDEVIATE FLOOR ZPART YPART XPART WPART @>
773 @=XXPART XYPART XZPART YXPART YYPART YZPART ZXPART ZYPART ZZPART @>
774 @=WXPART WYPART WZPART @>
775 @=RED_PART GREEN_PART BLUE_PART YELLOW_PART @>
776 @=MAGENTA_PART CYAN_PART BLACK_PART WHITE_PART @>
777 @=BLUE_VIOLET_PART RED_ORANGE_PART @>
778 @=%right <int_value> UNARY_PLUS_OR_MINUS NOT@>
779
780 @q *** (3) Boolean values and predicates. @>
781 @*2 Boolean values and predicates.
782
783 \LOG
784 \initials{LDF 2005.05.12.}
785 Added this section with
786 token declarations for |TRUE|, |FALSE|,
787 |IS_ODD|, |IS_EVEN|, |IS_CYCLE|, |IS_KNOWN|, |IS_UNKNOWN|,
788 and |CHAREXISTS|.
789
790 \initials{LDF 2005.05.12.}
791 Added token declarations for the following type predicates:\hfil\break
792 |IS_SYNONYM|, |IS_UNDECLARED|,
793 |IS_BOOLEAN|, |IS_BOOL_POINT|, |IS_BOOL_POINT_VECTOR|, |IS_STRING|,
794 |IS_NUMERIC|, |IS_PEN|, |IS_DASH_PATTERN|, |IS_COLOR|, |IS_COLOR_VECTOR|,
795 |IS_PICTURE|, |IS_TRANSFORM|, |IS_POINT|, |IS_POINT_VECTOR|, |IS_FOCUS|,
796 |IS_PATH|, |IS_TRIANGLE|, |IS_REG_POLYGON|, |IS_RECTANGLE|, |IS_SQUARE|,
797 |IS_ELLIPSE|, |IS_CIRCLE|, |IS_CUBOID|, |IS_TETRAHEDRON|, |IS_OCTAHEDRON|,
798 |IS_DODECAHEDRON|, |IS_ICOSAHEDRON|, and |IS_TRUNC_OCTAHEDRON|.
799
800
801 \initials{LDF 2005.05.12.}
802 Added token declarations for
803 |IS_ELLIPTICAL|,
804 |IS_CIRCULAR|,
805 |IS_REG_POLYGONAL|,
806 |IS_TRIANGULAR|,
807 |IS_QUADRATICAL|,
808 |IS_PENTAGONAL|,
809 |IS_HEXAGONAL|,
810 |IS_HEPTAGONAL|,
811 |IS_OCTAGONAL|,
812 |IS_NONAGONAL|,
813 |IS_DECAGONAL|,
814 |IS_ONDECAGONAL|,
815 |IS_DODECAGONAL|,
816 |IS_RECTANGULAR|,
817 |IS_CONVEX|,
818 |IS_CONICAL|,
819 |IS_PARABOLIC|,
820 |IS_HYPERBOLIC|,
821 |IS_TRAPEZOIDAL|,
822 |IS_PRISMOIDAL|,
823 |IS_CUBOIDAL|,
824 |IS_ELLIPSOIDAL|,
825 |IS_SPHEROIDAL|, and
826 |IS_SPHERICAL|.
827
828 \initials{LDF 2005.05.12.}
829 Added token declarations for |IS_ON_SEGMENT|, |IS_ON_LINE|,
830 |IS_IN_TRIANGLE|, |IS_IN_RECTANGLE|, and |LOCATION|.
831
832 \initials{LDF 2005.05.12.}
833 Added token declarations for
834 |IS_PARALLEL|,
835 |IS_COPLANAR|,
836 |IS_SKEW|.
837
838
839 \initials{LDF 2005.05.12.}
840 Added token declaration for |DISTANCE|.
841
842 \initials{LDF 2005.05.12.}
843 Changed |DISTANCE| to |DISTANCE_TO_PLANE|.
844
845 \initials{LDF 2005.05.12.}
846 Added token declarations for |IS_PLANAR| and |DISTANCE_ALONG_LINE|.
847
848 \initials{LDF 2005.05.12.}
849 Added token declaration for |IS_LINEAR|.
850
851 \initials{LDF 2005.05.12.}
852 Removed the token declarations for |IS_NON_PARALLEL|,
853 |IS_NON_COPLANAR|, and |IS_NON_SKEW|.
854
855 \initials{LDF 2005.05.12.}
856 Added token declaration for |IS_COLINEAR|.
857
858 \initials{LDF 2005.05.12.}
859 Added token declarations for |IS_PATH_VECTOR|,
860 |IS_TRIANGLE_VECTOR|, |IS_REG_POLYGON_VECTOR|,
861 |IS_RECTANGLE_VECTOR|, |IS_SQUARE_VECTOR|,
862 |IS_ELLIPSE_VECTOR|, |IS_CIRCLE_VECTOR|, |IS_CUBOID_VECTOR|,
863 |IS_TETRAHEDRON_VECTOR|, |IS_OCTAHEDRON_VECTOR|, |IS_DODECAHEDRON_VECTOR|,
864 |IS_ICOSAHEDRON_VECTOR|, and |IS_TRUNC_OCTAHEDRON_VECTOR|.
865
866
867 \initials{LDF 2005.05.12.}
868 Added token declarations for
869 |IS_BOOLEAN_VECTOR|,
870 |IS_STRING_VECTOR|,
871 |IS_NUMERIC_VECTOR|,
872 |IS_TRANSFORM_VECTOR|,
873 |IS_PEN_VECTOR|,
874 |IS_DASH_PATTERN_VECTOR|,
875 |IS_FOCUS_VECTOR|, and
876 |IS_PICTURE_VECTOR|.
877
878 \initials{LDF 2005.05.12.}
879 Added token declaration for |IS_QUADRILATERAL|.
880
881 \initials{LDF 2005.05.12.}
882 Added token declarations for |IS_NURB| and |IS_NURB_VECTOR|.
883
884 \initials{LDF 2005.05.12.}
885 Added token declarations for |IS_ORIGAMI_FIGURE| and
886 |IS_ORIGAMI_FIGURE_VECTOR|.
887
888 \initials{LDF 2005.05.12.}
889 Added token declaration for |IS_CONVEX_POLYGONAL|.
890
891 \initials{LDF 2005.05.12.}
892 Added token declarations for |IS_POLYGON|,
893 |IS_POLYGON_VECTOR|, and |IS_POLYGONAL|.
894
895 \initials{LDF 2005.05.12.}
896 Added token declarations for |IS_ELLIPSE_SLICE|,
897 |IS_CIRCLE_SLICE|, |IS_POLYHEDRON_SLICE|,
898 |IS_ELLIPSE_SLICE_VECTOR|,
899 |IS_CIRCLE_SLICE_VECTOR|, and |IS_POLYHEDRON_SLICE_VECTOR|.
900 \ENDLOG
901
902 @q **** (4) Code.@>
903
904 @<Token and precedence declarations@>=
905
906 @=%token <int_value> TRUE@>@/
907 @=%token <int_value> FALSE@>@/
908 @=%token <int_value> IS_ODD@>@/
909 @=%token <int_value> IS_EVEN@>@/
910 @=%token <int_value> IS_CYCLE@>@/
911 @=%token <int_value> IS_KNOWN@>@/
912 @=%token <int_value> IS_UNKNOWN@>@/
913 @=%token <int_value> CHAREXISTS@>@/
914
915 @=%token <int_value> IS_SYNONYM@>@/
916 @=%token <int_value> IS_UNDECLARED@>@/
917 @=%token <int_value> IS_BOOLEAN@>@/
918 @=%token <int_value> IS_BOOL_POINT@>@/
919 @=%token <int_value> IS_BOOL_POINT_VECTOR@>@/
920 @=%token <int_value> IS_STRING@>@/
921 @=%token <int_value> IS_NUMERIC@>@/
922 @=%token <int_value> IS_PEN@>@/
923 @=%token <int_value> IS_DASH_PATTERN@>@/
924 @=%token <int_value> IS_COLOR@>@/
925 @=%token <int_value> IS_COLOR_VECTOR@>@/
926 @=%token <int_value> IS_PICTURE@>@/
927 @=%token <int_value> IS_TRANSFORM@>@/
928 @=%token <int_value> IS_POINT@>@/
929 @=%token <int_value> IS_POINT_VECTOR@>@/
930 @=%token <int_value> IS_FOCUS@>@/
931 @=%token <int_value> IS_NURB@>@/
932 @=%token <int_value> IS_PATH@>@/
933 @=%token <int_value> IS_TRIANGLE@>@/
934 @=%token <int_value> IS_POLYGON@>@/
935 @=%token <int_value> IS_REG_POLYGON@>@/
936 @=%token <int_value> IS_RECTANGLE@>@/
937 @=%token <int_value> IS_ELLIPSE@>@/
938 @=%token <int_value> IS_CIRCLE@>@/
939 @=%token <int_value> IS_CUBOID@>@/
940 @=%token <int_value> IS_TETRAHEDRON@>@/
941 @=%token <int_value> IS_OCTAHEDRON@>@/
942 @=%token <int_value> IS_DODECAHEDRON@>@/
943 @=%token <int_value> IS_ICOSAHEDRON@>@/
944 @=%token <int_value> IS_TRUNC_OCTAHEDRON@>@/
945
946 @=%token <int_value> IS_ELLIPSE_SLICE@>@/
947 @=%token <int_value> IS_CIRCLE_SLICE@>@/
948 @=%token <int_value> IS_POLYHEDRON_SLICE@>@/
949
950 @=%token <int_value> IS_ELLIPSE_SLICE_VECTOR@>@/
951 @=%token <int_value> IS_CIRCLE_SLICE_VECTOR@>@/
952 @=%token <int_value> IS_POLYHEDRON_SLICE_VECTOR@>@/
953
954
955 @=%token <int_value> IS_ORIGAMI_FIGURE@>@/
956
957 @=%token <int_value> IS_LINEAR@>@/
958 @=%token <int_value> IS_PLANAR@>@/
959 @=%token <int_value> IS_SQUARE@>@/
960 @=%token <int_value> IS_ELLIPTICAL@>@/
961 @=%token <int_value> IS_CIRCULAR@>@/
962 @=%token <int_value> IS_POLYGONAL@>@/
963 @=%token <int_value> IS_REG_POLYGONAL@>@/
964 @=%token <int_value> IS_TRIANGULAR@>@/
965 @=%token <int_value> IS_QUADRATICAL@>@/
966 @=%token <int_value> IS_PENTAGONAL@>@/
967 @=%token <int_value> IS_HEXAGONAL@>@/
968 @=%token <int_value> IS_HEPTAGONAL@>@/
969 @=%token <int_value> IS_OCTAGONAL@>@/
970 @=%token <int_value> IS_NONAGONAL@>@/
971 @=%token <int_value> IS_DECAGONAL@>@/
972 @=%token <int_value> IS_ONDECAGONAL@>@/
973 @=%token <int_value> IS_DODECAGONAL@>@/
974 @=%token <int_value> IS_RECTANGULAR@>@/
975 @=%token <int_value> IS_QUADRILATERAL@>@/
976 @=%token <int_value> IS_CONVEX@>@/
977 @=%token <int_value> IS_CONVEX_POLYGONAL@>@/
978 @=%token <int_value> IS_CONICAL@>@/
979 @=%token <int_value> IS_PARABOLIC@>@/
980 @=%token <int_value> IS_HYPERBOLIC@>@/
981 @=%token <int_value> IS_TRAPEZOIDAL@>@/
982 @=%token <int_value> IS_PRISMOIDAL@>@/
983 @=%token <int_value> IS_CUBOIDAL@>@/
984 @=%token <int_value> IS_ELLIPSOIDAL@>@/
985 @=%token <int_value> IS_SPHEROIDAL@>@/
986 @=%token <int_value> IS_SPHERICAL@>@/
987
988 @=%token <int_value> IS_ON_SEGMENT@>@/
989 @=%token <int_value> IS_ON_LINE@>@/
990 @=%token <int_value> IS_IN_TRIANGLE@>@/
991 @=%token <int_value> IS_IN_RECTANGLE@>@/
992 @=%token <int_value> LOCATION@>@/
993
994 @=%token <int_value> IS_PARALLEL@>@/
995 @=%token <int_value> IS_COLINEAR@>@/
996 @=%token <int_value> IS_COPLANAR@>@/
997 @=%token <int_value> IS_SKEW@>@/
998
999 @=%token <int_value> DISTANCE_TO_PLANE@>@/
1000 @=%token <int_value> DISTANCE_ALONG_LINE@>@/
1001
1002 @=%token <int_value> IS_NURB_VECTOR@>@/
1003 @=%token <int_value> IS_PATH_VECTOR@>@/
1004 @=%token <int_value> IS_TRIANGLE_VECTOR@>@/
1005 @=%token <int_value> IS_POLYGON_VECTOR@>@/
1006 @=%token <int_value> IS_REG_POLYGON_VECTOR@>@/
1007 @=%token <int_value> IS_RECTANGLE_VECTOR@>@/
1008 @=%token <int_value> IS_SQUARE_VECTOR@>@/
1009 @=%token <int_value> IS_ELLIPSE_VECTOR@>@/
1010 @=%token <int_value> IS_CIRCLE_VECTOR@>@/
1011 @=%token <int_value> IS_CUBOID_VECTOR@>@/
1012 @=%token <int_value> IS_TETRAHEDRON_VECTOR@>@/
1013 @=%token <int_value> IS_OCTAHEDRON_VECTOR@>@/
1014 @=%token <int_value> IS_DODECAHEDRON_VECTOR@>@/
1015 @=%token <int_value> IS_ICOSAHEDRON_VECTOR@>@/
1016 @=%token <int_value> IS_TRUNC_OCTAHEDRON_VECTOR@>@/
1017
1018 @=%token <int_value> IS_ORIGAMI_FIGURE_VECTOR@>@/
1019
1020 @=%token <int_value> IS_BOOLEAN_VECTOR@>@/
1021 @=%token <int_value> IS_STRING_VECTOR@>@/
1022 @=%token <int_value> IS_NUMERIC_VECTOR@>@/
1023 @=%token <int_value> IS_TRANSFORM_VECTOR@>@/
1024 @=%token <int_value> IS_PEN_VECTOR@>@/
1025 @=%token <int_value> IS_DASH_PATTERN_VECTOR@>@/
1026 @=%token <int_value> IS_FOCUS_VECTOR@>@/
1027 @=%token <int_value> IS_PICTURE_VECTOR@>@/
1028
1029 @q *** (3) Types for drawing. @>
1030 @*2 Types for drawing.
1031
1032 \LOG
1033 \initials{LDF 2005.05.12.}
1034 Added this section.
1035
1036 \initials{LDF 2005.05.12.}
1037 Removed the token declaration for |WITH_DOTS|.
1038 |with_dots| is now a predefined variable defined in |Scanner_Type::create()| in
1039 \filename{scan.web}.
1040
1041 \initials{LDF 2005.05.12.}
1042 Changed the name of the token |DASH_PATTERN| to
1043 |DASH_PATTERN_DECLARATOR| and moved the token declaration to where
1044 the types are declared, since |dash_pattern| is now a type.
1045
1046 \initials{LDF 2005.05.12.}
1047 Added token declarations for
1048 |WITH_COLOR_VECTOR|, |WITH_DRAW_COLOR_VECTOR|, and
1049 |WITH_FILL_COLOR_VECTOR|.
1050
1051 \initials{LDF 2005.05.12.}
1052 Added token declarations for |DRAWDOT_IF|, |DRAWDOT_UNLESS|,
1053 |UNDRAWDOT_IF|, and |UNDRAWDOT_UNLESS|.
1054
1055 \initials{LDF 2005.05.12.}
1056 Added token declarations for |DRAWDBLARROW| and |UNDRAWDBLARROW|.
1057
1058 \initials{LDF 2005.05.12.}
1059 Added token declarations for
1060 |PICKUP|, |DROP_COLOR|, |DROP_DASH_PATTERN|, and
1061 |DROP_PEN|.
1062
1063 \initials{LDF 2005.05.12.}
1064 Added token declarations for |PICKUP_DRAW_COLOR|,
1065 |PICKUP_FILL_COLOR|, |DROP_DRAW_COLOR|, and |DROP_FILL_COLOR|.
1066
1067 \initials{LDF 2005.05.12.}
1068 Added token declaration for |DROP_ALL|.
1069
1070 \initials{LDF 2005.05.12.}
1071 Added token declarations for
1072 |WITH_TEXT_COLOR| and |WITH_DOT_COLOR|.
1073
1074 \initials{LDF 2005.05.12.}
1075 Added token declarations for
1076 |WITH_PEN_VECTOR| and |WITH_DASH_PATTERN_VECTOR|.
1077
1078 \initials{LDF 2005.05.12.}
1079 Added token declarations for |CMY|, |CMYK|, and |RGB|.
1080 \ENDLOG
1081
1082 @q **** (4) Declarations. @>
1083
1084 @<Token and precedence declarations@>=
1085
1086 @=%token <int_value> DRAWDOT@>@/
1087 @=%token <int_value> DRAWDOT_IF@>@/
1088 @=%token <int_value> DRAWDOT_UNLESS@>@/
1089 @=%token <int_value> DRAW@>@/
1090 @=%token <int_value> FILL@>@/
1091 @=%token <int_value> FILLDRAW@>@/
1092 @=%token <int_value> DRAWARROW@>@/
1093 @=%token <int_value> DRAWDBLARROW@>@/
1094 @=%token <int_value> UNDRAWDOT@>@/
1095 @=%token <int_value> UNDRAWDOT_IF@>@/
1096 @=%token <int_value> UNDRAWDOT_UNLESS@>@/
1097 @=%token <int_value> UNDRAW@>@/
1098 @=%token <int_value> UNFILL@>@/
1099 @=%token <int_value> UNFILLDRAW@>@/
1100 @=%token <int_value> UNDRAWARROW@>@/
1101 @=%token <int_value> UNDRAWDBLARROW@>@/
1102 @=%token <int_value> WITH_PEN@>@/
1103 @=%token <int_value> WITH_PEN_VECTOR@>@/
1104 @=%token <int_value> PENCIRCLE@>@/
1105 @=%token <int_value> PENRAZOR@>@/
1106 @=%token <int_value> PENSPECK@>@/
1107 @=%token <int_value> PENSQUARE@>@/
1108 @=%token <int_value> WITH_COLOR@>@/
1109 @=%token <int_value> WITH_DRAW_COLOR@>@/
1110 @=%token <int_value> WITH_FILL_COLOR@>@/
1111 @=%token <int_value> WITH_TEXT_COLOR@>@/
1112 @=%token <int_value> WITH_DOT_COLOR@>@/
1113 @=%token <int_value> WITH_COLOR_VECTOR@>@/
1114 @=%token <int_value> WITH_DRAW_COLOR_VECTOR@>@/
1115 @=%token <int_value> WITH_FILL_COLOR_VECTOR@>@/
1116 @=%token <int_value> WITH_WEIGHT@>@/
1117 @=%token <int_value> DASHED@>@/
1118 @=%token <int_value> WITH_DASH_PATTERN_VECTOR@>@/
1119 @=%token <int_value> ON_PICTURE@>@/
1120
1121 @=%token <int_value> PICKUP@>@/
1122 @=%token <int_value> DROP_COLOR@>@/
1123 @=%token <int_value> DROP_DASH_PATTERN@>@/
1124 @=%token <int_value> DROP_PEN@>@/
1125
1126 @=%token <int_value> PICKUP_DRAW_COLOR@>@/
1127 @=%token <int_value> PICKUP_FILL_COLOR@>@/
1128 @=%token <int_value> DROP_DRAW_COLOR@>@/
1129 @=%token <int_value> DROP_FILL_COLOR@>@/
1130
1131 @=%token <int_value> CMY@>@/
1132 @=%token <int_value> CMYK@>@/
1133 @=%token <int_value> RGB@>@/
1134
1135
1136
1137 @=%token <int_value> DROP_ALL@>@/
1138
1139
1140
1141
1142
1143 @q *** (3) Types for |Focuses|. @>
1144 @*2 Types for |Focuses|.
1145
1146 \LOG
1147 \initials{LDF 2005.05.12.}
1148 Added this section, with token declarations for
1149 |WITH_POSITION|, |WITH_DIRECTION|, |WITH_DISTANCE|, |WITH_ANGLE|,
1150 |WITH_AXIS|, |X_AXIS|, |Y_AXIS|, and |Z_AXIS|.
1151
1152 \initials{LDF 2005.05.12.}
1153 Added token declarations for |PERSPECTIVE|
1154 |PARALLEL_X_Y|, |PARALLEL_X_Z|, |PARALLEL_Z_Y|, |AXONOMETRIC|,
1155 |ISOMETRIC|, and |SUPPRESS|.
1156 \ENDLOG
1157
1158 @q **** (4) Declarations. @>
1159
1160 @<Token and precedence declarations@>=
1161
1162 @=%token <int_value> WITH_POSITION@>@/
1163 @=%token <int_value> WITH_DIRECTION@>@/
1164 @=%token <int_value> WITH_DISTANCE@>@/
1165 @=%token <int_value> WITH_ANGLE@>@/
1166 @=%token <int_value> WITH_AXIS@>@/
1167 @=%token <int_value> X_AXIS@>@/
1168 @=%token <int_value> Y_AXIS@>@/
1169 @=%token <int_value> Z_AXIS@>@/
1170
1171 @=%token <int_value> PERSPECTIVE@>@/
1172 @=%token <int_value> PARALLEL_X_Y@>@/
1173 @=%token <int_value> PARALLEL_X_Z@>@/
1174 @=%token <int_value> PARALLEL_Z_Y@>@/
1175 @=%token <int_value> AXONOMETRIC@>@/
1176 @=%token <int_value> ISOMETRIC@>@/
1177 @=%token <int_value> SUPPRESS@>@/
1178
1179
1180 @q *** (4) Types for outputting |Pictures|. @>
1181 @*3 Types for outputting |Pictures|.
1182
1183 \LOG
1184 \initials{LDF 2005.05.12.}
1185 Added this section.
1186
1187 \initials{LDF 2005.05.12.}
1188 Added token declaration for |WITH_PROJECTION|.
1189
1190 \initials{LDF 2005.05.12.}
1191 Added token declaration for |WITH_FACTOR|.
1192
1193 \initials{LDF 2005.05.12.}
1194 Added token declarations for
1195 |NO_SORT|, |MAX_Z_SORT|, |MIN_Z_SORT|, |MEAN_Z_SORT|,
1196 |WITH_MIN_X_PROJ|, |WITH_MAX_X_PROJ|,
1197 |WITH_MIN_Y_PROJ|, |WITH_MAX_Y_PROJ|,
1198 |WITH_MIN_Z_PROJ|, and |WITH_MAX_Z_PROJ|.
1199
1200
1201 \initials{LDF 2005.05.12.}
1202 Changed |WITH_MIN_X_PROJ| to |MIN_Y_PROJ|. Did the same for
1203 |MAX_X_PROJ|, |MIN_Y_PROJ|, etc.
1204 \ENDLOG
1205
1206 @q **** (4) Declarations. @>
1207
1208 @<Token and precedence declarations@>=
1209
1210 @=%token <int_value> WITH_FOCUS@>@/
1211 @=%token <int_value> WITH_PROJECTION@>@/
1212 @=%token <real_value> WITH_FACTOR@>@/
1213 @=%token <int_value> NO_SORT@>@/
1214
1215 @=%token <int_value> MAX_Z_SORT@>@/
1216 @=%token <int_value> MIN_Z_SORT@>@/
1217 @=%token <int_value> MEAN_Z_SORT@>@/
1218
1219 @=%token <int_value> MIN_X_PROJ@>@/
1220 @=%token <int_value> MAX_X_PROJ@>@/
1221 @=%token <int_value> MIN_Y_PROJ@>@/
1222 @=%token <int_value> MAX_Y_PROJ@>@/
1223 @=%token <int_value> MIN_Z_PROJ@>@/
1224 @=%token <int_value> MAX_Z_PROJ@>@/
1225
1226 @q *** (3) Types for projections.@>
1227 @*2 Types for projections.
1228 LDF 2005.04.15.
1229
1230 \LOG
1231 \initials{LDF 2005.05.12.}
1232 Added this section with the token declaration for |PROJECT|.
1233
1234 \initials{LDF 2005.05.12.}
1235 Added the token declaration for |PROJECTED|.
1236
1237 \initials{LDF 2005.05.12.}
1238 Added the token declaration for |WITH_Z|.
1239 \ENDLOG
1240
1241 @<Token and precedence declarations@>=
1242
1243 @=%token <int_value> PROJECT@>@/
1244 @=%token <int_value> PROJECTED@>@/
1245 @=%token <int_value> WITH_Z@>@/
1246
1247 @q *** (3) Commands. @>
1248 @*2 Commands.
1249
1250 \LOG
1251 \initials{LDF 2005.05.12.}
1252 Added token declaration for |SET|.
1253
1254 \initials{LDF 2005.05.12.}
1255 Added token declarations for |LABEL|,
1256 |RT|, |LFT|, |TOP|, |BOT|, |URT|, |ULFT|, |LRT|, and |LLFT|.
1257
1258 \initials{LDF 2005.05.12.}
1259 Added token declaration for |DOTLABEL|.
1260
1261 \initials{LDF 2005.05.12.}
1262 Added token declarations for |MESSAGE| and |ERRMESSAGE|.
1263
1264 \initials{LDF 2005.05.12.}
1265 Added token declaration for |PAUSE|.
1266
1267 \initials{LDF 2005.05.12.}
1268 Added token declaration for |END_INPUT|.
1269 Changed value type of |INPUT| and |END| from |string_value|
1270 to |int_value|.
1271
1272
1273 \initials{LDF 2005.05.12.}
1274 Added token declaration for |MEDIATE|.
1275
1276 \initials{LDF 2005.05.12.}
1277 Added token declarations for |SUPPRESS_LABELS| and
1278 |UNSUPPRESS_LABELS|.
1279
1280 \initials{LDF 2005.05.12.}
1281 Added token declaration for |KILL_LABELS|.
1282
1283 \initials{LDF 2005.05.12.}
1284 Added token declarations for |LABEL_IF|, |LABEL_UNLESS|,
1285 |DOTLABEL_IF|, and |DOTLABEL_UNLESS|.
1286
1287 \initials{LDF 2005.05.12.}
1288 Added token declaration for |LABELS|,
1289 |DOTLABELS|, |LABELS_IF|, |DOTLABELS_IF|, |LABELS_UNLESS|, and
1290 |DOTLABELS_UNLESS|.
1291
1292 \initials{LDF 2005.05.12.}
1293 Added token declaration for |SCANTOKENS|.
1294
1295 \initials{LDF 2005.05.12.}
1296 Added token declaration for |VERBATIM_METAPOST|.
1297 \ENDLOG
1298
1299 @q **** (4) Declarations.@>
1300
1301 \LOG
1302 \initials{LDF 2005.05.12.}
1303 Added token declaration for |LET|.
1304 \ENDLOG
1305
1306 @<Token and precedence declarations@>=
1307
1308 @=%token <int_value> INPUT@>@/
1309 @=%token <int_value> END@>@/
1310 @=%token <int_value> END_INPUT@>@/
1311 @=%token <int_value> SET@>@/
1312 @=%token <int_value> LABEL@>@/
1313 @=%token <int_value> DOTLABEL@>@/
1314 @=%token <int_value> RT@>@/
1315 @=%token <int_value> LFT@>@/
1316 @=%token <int_value> TOP@>@/
1317 @=%token <int_value> BOT@>@/
1318 @=%token <int_value> URT@>@/
1319 @=%token <int_value> ULFT@>@/
1320 @=%token <int_value> LRT@>@/
1321 @=%token <int_value> LLFT@>@/
1322 @=%token <int_value> MESSAGE@>@/
1323 @=%token <int_value> ERRMESSAGE@>@/
1324 @=%token <int_value> PAUSE@>@/
1325 @=%token <int_value> MEDIATE@>@/
1326 @=%token <int_value> SUPPRESS_LABELS@>@/
1327 @=%token <int_value> UNSUPPRESS_LABELS@>@/
1328 @=%token <int_value> KILL_LABELS@>@/
1329
1330 @=%token <int_value> LABEL_IF@>@/
1331 @=%token <int_value> LABEL_UNLESS@>@/
1332 @=%token <int_value> DOTLABEL_IF@>@/
1333 @=%token <int_value> DOTLABEL_UNLESS@>@/
1334
1335
1336 @=%token <int_value> LABELS@>@/
1337 @=%token <int_value> LABELS_IF@>@/
1338 @=%token <int_value> LABELS_UNLESS@>@/
1339 @=%token <int_value> DOTLABELS@>@/
1340 @=%token <int_value> DOTLABELS_IF@>@/
1341 @=%token <int_value> DOTLABELS_UNLESS@>@/
1342
1343 @=%token <int_value> SCANTOKENS@>@/
1344
1345 @=%token <int_value> VERBATIM_METAPOST@>@/
1346
1347 @=%token <int_value> LET@>@/
1348
1349 @q *** (3) Types for setting |Shapes|.@>
1350 @ Types for setting |Shapes|.
1351
1352 \LOG
1353 \initials{LDF 2005.05.12.}
1354 Added this section with token declarations
1355 for |WITH_CENTER|, |WITH_POINT_COUNT|, and |WITH_NORMAL|.
1356
1357 \initials{LDF 2005.05.12.}
1358 Added token declarations for
1359 |WITH_AXIS_H|, |WITH_AXIS_V|, and |WITH_DIAMETER|.
1360
1361 \initials{LDF 2005.05.12.}
1362 Added token declaration for |WITH_SIDES|.
1363 \ENDLOG
1364
1365 @<Token and precedence declarations@>=
1366
1367 @=%token <int_value> WITH_CENTER@>@/
1368 @=%token <int_value> WITH_POINT_COUNT@>@/
1369 @=%token <int_value> WITH_NORMAL@>@/
1370 @=%token <int_value> WITH_AXIS_H@>@/
1371 @=%token <int_value> WITH_AXIS_V@>@/
1372 @=%token <int_value> WITH_DIAMETER@>@/
1373 @=%token <int_value> WITH_SIDES@>@/
1374
1375 @q *** (3) Types for modifying |Shapes|.@>
1376 @ Types for modifying |Shapes|.
1377
1378 \LOG
1379 \initials{LDF 2005.05.12.}
1380 Added this section with a token declaration
1381 for |CLEAR_CONNECTORS|.
1382 \ENDLOG
1383
1384 @<Token and precedence declarations@>=
1385
1386 @=%token <int_value> CLEAR_CONNECTORS@>@/
1387
1388
1389 @q *** (3) Types for outputting |Pictures|. @>
1390 @*2 Types for outputting |Pictures|.
1391
1392 \LOG
1393 \initials{LDF 2005.05.12.}
1394 Added token declaration for |OUTPUT|.
1395
1396 \initials{LDF 2005.05.12.}
1397 Added token declaration for |SHOW|.
1398
1399 \initials{LDF 2005.05.12.}
1400 Added token declarations for |BEGINFIG| and
1401 |ENDFIG|.
1402
1403 \initials{LDF 2005.05.12.}
1404 Added token declaration for |CLEAR|.
1405
1406 \initials{LDF 2005.05.12.}
1407 Added token declarations for |WITH_SURFACE_HIDING|
1408 and |WITHOUT_SURFACE_HIDING|.
1409 \ENDLOG
1410
1411 @<Token and precedence declarations@>=
1412
1413 @=%token <int_value> OUTPUT@>@/
1414 @=%token <int_value> CLEAR@>@/
1415 @=%token <int_value> BEGINFIG@>@/
1416 @=%token <int_value> ENDFIG@>@/
1417 @=%token <int_value> SHOW@>@/
1418
1419 @=%token <int_value> WITH_SURFACE_HIDING@>@/
1420 @=%token <int_value> WITHOUT_SURFACE_HIDING@>@/
1421
1422
1423 @q *** (3) Types for intersections. @>
1424 @*2 Types for intersections.
1425
1426 \LOG
1427 \initials{LDF 2005.05.12.}
1428 Added this section with token declarations for
1429 |INTERSECTION_POINT| and |INTERSECTION_POINTS|.
1430 \ENDLOG
1431
1432 @<Token and precedence declarations@>=
1433
1434 @=%token <int_value> INTERSECTION_POINT@>@/
1435 @=%token <int_value> INTERSECTION_POINTS@>@/
1436
1437 @q *** (3) Types for conditionals. @>
1438 @ Types for conditionals.
1439
1440 \LOG
1441 \initials{LDF 2005.05.12.}
1442 Added this section with token declarations for
1443 |IF|, |ELSE|, |ELSEIF|, and |FI|.
1444 \ENDLOG
1445
1446 @<Token and precedence declarations@>=
1447
1448 @=%token <int_value> IF@>@/
1449 @=%token <int_value> ELSE@>@/
1450 @=%token <int_value> ELSEIF@>@/
1451 @=%token <int_value> FI@>@/
1452
1453 @q *** (3) Types for loops. @>
1454 @ Types for loops.
1455
1456 \LOG
1457 \initials{LDF 2005.05.12.}
1458 Added this section with token declarations for
1459 |FOR|, |FORSUFFIXES|, |FOREVER|, |EXITIF|, |STEP|, |UNTIL|,
1460 and |ENDFOR|.
1461
1462 \initials{LDF 2005.05.12.}
1463 Added token declaration for |END_LOOP_PREFIX|.
1464
1465 \initials{LDF 2005.05.12.}
1466 Removed token declaration for |END_LOOP_PREFIX|.
1467
1468 \initials{LDF 2005.05.12.}
1469 Changed |EXITIF| to |EXIT_IF| and added |EXIT_UNLESS|.
1470
1471 \initials{LDF 2005.05.12.}
1472 Changed |FORSUFFIXES| to |FOR_SUFFIXES| and |ENDFOR| to |END_FOR|.
1473
1474 \initials{LDF 2005.05.12.}
1475 Added token declarations for |UPTO|, |DOWNTO|,
1476 and |FOR_SUFFIXES_INTERNAL|.
1477
1478 \initials{LDF 2005.05.12.}
1479 Added token declaration for |FOR_SUFFIXES_INTERNAL_START|.
1480 \ENDLOG
1481
1482 @<Token and precedence declarations@>=
1483
1484 @=%token <int_value> FOR@>@/
1485 @=%token <int_value> FOR_SUFFIXES@>@/
1486 @=%token <int_value> FOR_SUFFIXES_INTERNAL@>@/
1487 @=%token <int_value> FOR_SUFFIXES_INTERNAL_START@>@/
1488 @=%token <int_value> FOREVER@>@/
1489 @=%token <int_value> EXIT_IF@>@/
1490 @=%token <int_value> EXIT_UNLESS@>@/
1491 @=%token <int_value> STEP@>@/
1492 @=%token <int_value> UNTIL@>@/
1493 @=%token <int_value> END_FOR@>@/
1494 @=%token <int_value> UPTO@>@/
1495 @=%token <int_value> DOWNTO@>@/
1496
1497 @q *** (3) Types for groups. @>
1498 @ Types for groups.
1499
1500 \LOG
1501 \initials{LDF 2005.05.12.}
1502 Added this section with token declarations for
1503 |BEGIN_GROUP|, |END_GROUP|, and |SAVE|.
1504
1505 \ENDLOG
1506
1507 @<Token and precedence declarations@>=
1508
1509 @=%token <int_value> BEGIN_GROUP@>@/
1510 @=%token <int_value> END_GROUP@>@/
1511 @=%token <int_value> SAVE@>@/
1512
1513 @q *** (3) Types for transformations.@>
1514 @*2 Types for transformations.
1515 \initials{LDF 2005.05.12.}
1516
1517 \LOG
1518 \initials{LDF 2005.05.12.}
1519 Added this section with the token declarations for |INVERSE|
1520 and |INVERT|.
1521 \ENDLOG
1522
1523 @<Token and precedence declarations@>=
1524
1525 @=%token <int_value> INVERSE@>@/
1526 @=%token <int_value> INVERT@>@/
1527
1528
1529 @q *** (3) Types for extracting sub-objects.@>
1530 @*2 Types for extracting sub-objects.
1531 \initials{LDF 2005.05.12.}
1532
1533 \LOG
1534 \initials{LDF 2005.05.12.}
1535 Added this section with token declarations for
1536 |GET_TRANSFORM|,
1537 |GET_POINT|,
1538 |GET_POINTS|,
1539 |GET_CONNECTOR|,
1540 |GET_CONNECTORS|,
1541 |GET_PEN|,
1542 |GET_DASH_PATTERN|,
1543 |GET_DRAWDOT_COLOR|,
1544 |GET_DRAW_COLOR|,
1545 |GET_FILL_COLOR|,
1546 |GET_COLORS|,
1547 |GET_CIRCLE|,
1548 |GET_ELLIPSE|,
1549 |GET_PATH|,
1550 |GET_RECTANGLE|, and
1551 |GET_REG_POLYGON|.
1552
1553 \initials{LDF 2005.05.12.}
1554 Added token declaration for |GET_CENTER|.
1555
1556 \initials{LDF 2005.05.12.}
1557 Added token declarations for |HALF|, |QUARTER|,
1558 and |SEGMENT|.
1559
1560 \initials{LDF 2005.05.12.}
1561 Added token declarations for |WITH_START|, |WITH_END|, |WITH_SIZE|,
1562 and |WITH_FRACTION|.
1563
1564 \initials{LDF 2005.05.12.}
1565 Added token declarations for |WITH_CLOSED|.
1566
1567 \initials{LDF 2005.05.12.}
1568 Removed the token declaration for |GET_DRAWDOT_COLOR|.
1569 \ENDLOG
1570
1571 @<Token and precedence declarations@>=
1572
1573 @=%token <int_value> GET_TRANSFORM@>@/
1574 @=%token <int_value> GET_POINT@>@/
1575 @=%token <int_value> GET_POINTS@>@/
1576 @=%token <int_value> GET_CONNECTOR@>@/
1577 @=%token <int_value> GET_CONNECTORS@>@/
1578 @=%token <int_value> GET_PEN@>@/
1579 @=%token <int_value> GET_DASH_PATTERN@>@/
1580 @=%token <int_value> GET_DRAW_COLOR@>@/
1581 @=%token <int_value> GET_FILL_COLOR@>@/
1582 @=%token <int_value> GET_COLORS@>@/
1583 @=%token <int_value> GET_CENTER@>@/
1584 @=%token <int_value> GET_CIRCLE@>@/
1585 @=%token <int_value> GET_ELLIPSE@>@/
1586 @=%token <int_value> GET_PATH@>@/
1587 @=%token <int_value> GET_RECTANGLE@>@/
1588 @=%token <int_value> GET_REG_POLYGON@>@/
1589
1590 @=%token <int_value> HALF@>@/
1591 @=%token <int_value> QUARTER@>@/
1592 @=%token <int_value> SEGMENT@>@/
1593
1594 @=%token <int_value> WITH_START@>@/
1595 @=%token <int_value> WITH_END@>@/
1596 @=%token <int_value> WITH_SIZE@>@/
1597 @=%token <int_value> WITH_FRACTION@>@/
1598 @=%token <int_value> WITH_CLOSED@>@/
1599
1600 @q *** (3) Types for enclosed and enclosing figures.@>
1601 @*2 Types for enclosed and enclosing figures.
1602 \initials{LDF 2005.05.12.}
1603
1604 \LOG
1605 \initials{LDF 2005.05.12.}
1606 Added this section with token declarations for
1607 |IN_CIRCLE|,
1608 |OUT_CIRCLE|,
1609 |IN_ELLIPSE|,
1610 |OUT_ELLIPSE|,
1611 |IN_RECTANGLE|,
1612 |OUT_RECTANGLE|,
1613 |IN_SPHERE|,
1614 |OUT_SPHERE|,
1615 |IN_ELLIPSOID|,
1616 |OUT_ELLIPSOID|,
1617 |IN_CUBOID|, and
1618 |OUT_CUBOID|.
1619 \ENDLOG
1620
1621 @q **** (4) Code.@>
1622
1623 @<Token and precedence declarations@>=
1624
1625 @=%token <int_value> IN_CIRCLE@>@/
1626 @=%token <int_value> OUT_CIRCLE@>@/
1627
1628 @=%token <int_value> IN_ELLIPSE@>@/
1629 @=%token <int_value> OUT_ELLIPSE@>@/
1630
1631 @=%token <int_value> IN_RECTANGLE@>@/
1632 @=%token <int_value> OUT_RECTANGLE@>@/
1633
1634 @=%token <int_value> IN_SPHERE@>@/
1635 @=%token <int_value> OUT_SPHERE@>@/
1636
1637 @=%token <int_value> IN_ELLIPSOID@>@/
1638 @=%token <int_value> OUT_ELLIPSOID@>@/
1639
1640 @=%token <int_value> IN_CUBOID@>@/
1641 @=%token <int_value> OUT_CUBOID@>@/
1642
1643 @q *** (3) Types for macros.@>
1644 @*2 Types for macros.
1645
1646 \LOG
1647 \initials{LDF 2005.05.12.}
1648 Added this section with token declarations for
1649 |MACRO_TYPE|,
1650 |VARDEF_TYPE|,
1651 |PRIMARYDEF_TYPE|,
1652 |SECONDARYDEF_TYPE|,
1653 |TERTIARYDEF_TYPE|,
1654 |DEFMACRO|,
1655 |VARDEF|,
1656 |PRIMARYDEF|,
1657 |SECONDARYDEF|,
1658 |TERTIARYDEF|,
1659 |ENDDEF|,
1660 |SUFFIX|,
1661 |TEXT|, and
1662 |EXPR|.
1663
1664 \initials{LDF 2005.05.12.}
1665 Changed |DEFMACRO| to |DEF|.
1666
1667 \initials{LDF 2005.05.12.}
1668 Added token declaration for |DEFUN|.
1669
1670 \initials{LDF 2005.05.12.}
1671 Changed the type of |DEFUN| from |int_value| to |pointer_value|.
1672
1673 \initials{LDF 2005.05.12.}
1674 Removed the declarations for
1675 |MACRO_TYPE|,
1676 |VARDEF_TYPE|,
1677 |PRIMARYDEF_TYPE|,
1678 |SECONDARYDEF_TYPE|,
1679 |TERTIARYDEF_TYPE|,
1680 |DEF|,
1681 |VARDEF|,
1682 |SUFFIX|,
1683 |TEXT|, and
1684 |EXPR|.
1685 %
1686 Changed the type of
1687 |PRIMARYDEF|, |SECONDARYDEF|, and |TERTIARYDEF|
1688 from |int_value| to |pointer_value|.
1689 %
1690 Added declarations for
1691 ||MACRO|,
1692 |MACRO_DECLARATOR|,
1693 |PRIMARYDEF_DECLARATOR|,
1694 |SECONDARYDEF_DECLARATOR|, and
1695 |TERTIARYDEF_DECLARATOR|.
1696
1697 \initials{LDF 2005.05.12.}
1698 Added declarations for
1699 |MACRO_VECTOR|,
1700 |PRIMARYDEF_VECTOR|,
1701 |SECONDARYDEF_VECTOR|,
1702 |TERTIARYDEF_VECTOR|,
1703 |MACRO_VECTOR_DECLARATOR|,
1704 |PRIMARYDEF_VECTOR_DECLARATOR|,
1705 |SECONDARYDEF_VECTOR_DECLARATOR|,
1706 and
1707 |TERTIARYDEF_VECTOR_DECLARATOR|.
1708
1709 \initials{LDF 2005.05.12.}
1710 Added token declaration for |DEF| again.
1711 \ENDLOG
1712
1713 @q **** (4) Code.@>
1714
1715 @<Token and precedence declarations@>=
1716
1717 @=%token <pointer_value> MACRO@>@/
1718 @=%token <pointer_value> PRIMARYDEF@>@/
1719 @=%token <pointer_value> SECONDARYDEF@>@/
1720 @=%token <pointer_value> TERTIARYDEF@>@/
1721
1722 @=%token <string_value> MACRO_DECLARATOR@>@/
1723 @=%token <string_value> PRIMARYDEF_DECLARATOR@>@/
1724 @=%token <string_value> SECONDARYDEF_DECLARATOR@>@/
1725 @=%token <string_value> TERTIARYDEF_DECLARATOR@>@/
1726
1727 @=%token <pointer_value> MACRO_VECTOR@>@/
1728 @=%token <pointer_value> PRIMARYDEF_VECTOR@>@/
1729 @=%token <pointer_value> SECONDARYDEF_VECTOR@>@/
1730 @=%token <pointer_value> TERTIARYDEF_VECTOR@>@/
1731
1732 @=%token <string_value> MACRO_VECTOR_DECLARATOR@>@/
1733 @=%token <string_value> PRIMARYDEF_VECTOR_DECLARATOR@>@/
1734 @=%token <string_value> SECONDARYDEF_VECTOR_DECLARATOR@>@/
1735 @=%token <string_value> TERTIARYDEF_VECTOR_DECLARATOR@>@/
1736
1737 @=%token <int_value> DEF@>@/
1738 @=%token <int_value> ENDDEF@>@/
1739
1740 @=%token <pointer_value> DEFUN@>@/
1741
1742 @q *** (3) Types for vector-type objects.@>
1743 @*2 Types for vector-type objects.
1744 \initials{LDF 2005.05.12.}
1745
1746 \LOG
1747 \initials{LDF 2005.05.12.}
1748 Added this section with token declarations for
1749 |PUSH_BACK| and |POP_BACK|.
1750
1751 \initials{LDF 2005.05.12.}
1752 Added token declaration for |LAST|.
1753 \ENDLOG
1754
1755 @q **** (4) Code.@>
1756
1757 @<Token and precedence declarations@>=
1758
1759 @=%token <int_value> PUSH_BACK@>@/
1760 @=%token <int_value> POP_BACK@>@/
1761 @=%token <int_value> LAST@>@/
1762
1763
1764 @q *** (3) Types for |triangles|.@>
1765 @*2 Types for |triangles|.
1766 \initials{LDF 2005.05.12.}
1767
1768 \LOG
1769 \initials{LDF 2005.05.12.}
1770 Added this section with token declarations for
1771 |WITH_SSS|, |WITH_SAS|, |WITH_SAA|, |WITH_ASA|,
1772 |WITH_SSA_B|, |WITH_SSA_L|, and |WITH_SSA_S|.
1773
1774 \initials{LDF 2005.05.12.}
1775 Added token declaration for |WITH_SSA_A|.
1776 I'd forgotten it before.
1777
1778 \initials{LDF 2005.05.12.}
1779 Removed the token declarations for |WITH_SSA_A| and
1780 |WITH_SSA_B|.
1781
1782 \initials{LDF 2005.05.12.}
1783 Added token declaration for |WITH_POINTS|.
1784 \ENDLOG
1785
1786 @q **** (4) Code.@>
1787
1788 @<Token and precedence declarations@>=
1789
1790 @=%token <int_value> WITH_SSS@>@/
1791 @=%token <int_value> WITH_SAS@>@/
1792 @=%token <int_value> WITH_SAA@>@/
1793 @=%token <int_value> WITH_ASA@>@/
1794 @=%token <int_value> WITH_SSA_L@>@/
1795 @=%token <int_value> WITH_SSA_S@>@/
1796
1797 @=%token <int_value> WITH_POINTS@>@/
1798
1799
1800 @q *** (3) Types for surface hiding.@>
1801 @*2 Types for surface hiding.
1802 \initials{LDF 2005.05.12.}
1803
1804
1805 \LOG
1806 \initials{LDF 2005.05.12.}
1807 Added this section with token declarations
1808 for |DECOMPOSE| and |WITH_LEVEL|.
1809
1810 \initials{LDF 2005.05.12.}
1811 Added the token declaration for |WITH_RECTANGLES|.
1812 \ENDLOG
1813
1814 @q **** (4) Declarations. @>
1815
1816 @<Token and precedence declarations@>=
1817
1818 @=%token <int_value> DECOMPOSE@>@/
1819 @=%token <int_value> WITH_LEVEL@>@/
1820 @=%token <int_value> WITH_RECTANGLES@>@/
1821
1822 @q *** (3) Types for |nurbs|.@>
1823 @*2 Types for |nurbs|.
1824 \initials{LDF 2005.05.12.}
1825
1826 \LOG
1827 \initials{LDF 2005.05.12.}
1828 Added this section with token declarations for
1829 |KNOT|, |WEIGHT|, |WITH_KNOTS|, and |WITH_WEIGHTS|.
1830
1831 \initials{LDF 2005.05.12.}
1832 Added token declarations for |WITH_TIME_PARAMETER|,
1833 |WITH_ORDER|, and |GENERATE|.
1834
1835 \initials{LDF 2005.05.12.}
1836 Changed |WITH_ORDER| to |WITH_POWER|.
1837 \ENDLOG
1838
1839 @q **** (4) Code.@>
1840
1841 @<Token and precedence declarations@>=
1842
1843 @=%token <int_value> KNOT@>@/
1844 @=%token <int_value> WEIGHT@>@/
1845 @=%token <int_value> WITH_KNOTS@>@/
1846 @=%token <int_value> WITH_WEIGHTS@>@/
1847 @=%token <int_value> WITH_TIME_PARAMETER@>@/
1848 @=%token <int_value> WITH_POWER@>@/
1849
1850 @=%token <int_value> GENERATE@>@/
1851
1852
1853 @q *** (3) Types for |origami_figures|.@>
1854 @*2 Types for |nurbs|.
1855 \initials{LDF 2005.05.12.}
1856
1857 \LOG
1858 \initials{LDF 2005.05.12.}
1859 Added this section. It's currently empty.
1860 \ENDLOG
1861
1862 @q **** (4) Code.@>
1863
1864 @<Token and precedence declarations@>=
1865
1866
1867 @q ** (2) Constants in |namespace Scan_Parse|. @>
1868 @*1 Constants in {\bf namespace Scan\_Parse}.
1869 It is safe to assume that |TRANSFORM == MIN_SHAPE - 1|. This can be useful
1870 for testing whether a particular operation can be performed on objects in an
1871 expression. Some operations can be performed on {\bf numerics}, |Transforms|,
1872 and/or |Shapes|.
1873 \initials{LDF 2005.05.12.}
1874
1875 \LOG
1876 \initials{LDF 2005.05.12.}
1877
1878 \initials{LDF 2005.05.12.}
1879 Added |MIN_INTERNAL_QUANTITY| and |MAX_INTERNAL_QUANTITY|.
1880
1881 \initials{LDF 2005.05.12.}
1882 Removed |MIN_INTERNAL_QUANTITY| and |MAX_INTERNAL_QUANTITY|.
1883 \ENDLOG
1884
1885 @<Constants in |namespace Scan_Parse|@>=
1886 namespace
1887 Scan_Parse
1888 {
1889 extern const unsigned int MIN_SHAPE = POINT;
1890 extern const unsigned int MAX_SHAPE = TRUNC_OCTAHEDRON;
1891
1892 };
1893
1894 @
1895 @<|extern| declarations in |namespace Scan_Parse|@>=
1896 namespace
1897 Scan_Parse
1898 {
1899 extern const unsigned int MIN_SHAPE;
1900 extern const unsigned int MAX_SHAPE;
1901 };
1902
1903
1904 @q ** (2) |name_map| and |type_name_map|. @>
1905 @*1 {\bf name\_map} and {\bf type\_name\_map}.
1906 \initials{LDF 2005.05.12.}
1907
1908 \LOG
1909 \initials{LDF 2005.05.12.}
1910 Changed |int| to |const int|. Changing
1911 |string| to |const string| causes errors.
1912
1913 \initials{LDF 2005.05.12.}
1914 Added declaration of |type_name_map|.
1915 \ENDLOG
1916
1917 @q *** (3) Declaration .@>
1918
1919 @<Declare |name_map| and |type_name_map|@>=
1920 map <const int, string> name_map;
1921 map <const int, string> type_name_map;
1922
1923 @q *** (3) |extern| declaration.@>
1924
1925 @
1926 @<|extern| declaration of |name_map| and |type_name_map|@>=
1927 extern
1928 map <const int, string> name_map;
1929
1930 extern
1931 map <const int, string> type_name_map;
1932
1933 @q *** (3) Initialize |name_map| and |type_name_map|. @>
1934 @*2 Initialize {\bf name\_map} and {\bf type\_name\_map}.
1935
1936 \LOG
1937 \initials{LDF 2005.05.12.}
1938 Added entry for |EQUALS|.
1939
1940 \initials{LDF 2005.05.12.}
1941 Added entries for |BOOLEAN|,
1942 |BOOLEAN_DECLARATOR|, |OR|, |AND|, |EQUAL|, |NOT_EQUAL|, |LESS|,
1943 |LESS_OR_EQUAL|, |GREATER|, |GREATER_OR_EQUAL|,
1944 |NOT|, |TRUE|, |FALSE|, |IS_ODD|, |IS_EVEN|, |IS_CYCLE|, |IS_KNOWN|,
1945 |IS_UNKNOWN|, and |CHAREXISTS|.
1946 Removed the entry for |EQUALS|.
1947
1948 \initials{LDF 2005.05.12.}
1949 Added entry for |BOOLEAN_DECLARATOR|.
1950
1951 \initials{LDF 2005.05.12.}
1952 Removed entries for the internal quantities.
1953 \ENDLOG
1954
1955 @q **** (4) Declaration. @>
1956
1957 @<Declare functions@>=
1958 int
1959 initialize_name_map(void);
1960
1961 @q **** (4) Definition. @>
1962
1963 @
1964 @<Define functions@>=
1965 int
1966 initialize_name_map(void)
1967 {
1968
1969 name_map[NULL_VALUE] = "NULL_VALUE";
1970
1971 @q **** (4) Predefined sparks. @>
1972 @ Predefined sparks.
1973
1974 \LOG
1975 \initials{LDF 2005.05.12.}
1976 Now adding entries in |name_map| for
1977 |AMPERSAND|, |CYCLE|, |PERIOD_PAIR|, |PERIOD_TRIPLE|, |HYPHEN|, |HYPHEN_PAIR|,
1978 and |HYPHEN_TRIPLE|.
1979
1980 \initials{LDF 2005.05.12.}
1981 Now adding entries in |name_map| for
1982 |REVERSE|, |SUBPATH|, and |OF|.
1983
1984 \initials{LDF 2005.05.12.}
1985 Added |name_map| entry for |COLON|.
1986
1987 \initials{LDF 2005.05.12.}
1988 Added |name_map| entry for |END_INPUT|.
1989
1990 \initials{LDF 2005.05.12.}
1991 Replaced the entry for |CURLY_BRACES| with ones for |LEFT_BRACE| and
1992 |RIGHT_BRACE|.
1993 \ENDLOG
1994
1995 @<Define functions@>=
1996 name_map[END] = "END";
1997 name_map[INPUT] = "INPUT";
1998 name_map[END_INPUT] = "END_INPUT";
1999 name_map[TERMINATE] = "TERMINATE";
2000 name_map[INVALID_CATCODE] = "INVALID_CATCODE";
2001 name_map[INVALID_CHAR] = "INVALID_CHAR";
2002 name_map[SPACE] = "SPACE";
2003
2004 name_map[AMPERSAND] = "AMPERSAND";
2005
2006 name_map[CYCLE] = "CYCLE";
2007
2008 name_map[REVERSE] = "REVERSE";
2009
2010 name_map[SUBPATH] = "SUBPATH";
2011
2012 name_map[OF] = "OF";
2013
2014 name_map[PERIOD] = "PERIOD";
2015 name_map[PERIOD_PAIR] = "PERIOD_PAIR";
2016 name_map[PERIOD_TRIPLE] = "PERIOD_TRIPLE";
2017
2018 name_map[HYPHEN] = "HYPHEN";
2019 name_map[HYPHEN_PAIR] = "HYPHEN_PAIR";
2020 name_map[HYPHEN_TRIPLE] = "HYPHEN_TRIPLE";
2021
2022 name_map[COMMA] = "COMMA";
2023 name_map[COLON] = "COLON";
2024 name_map[SEMI_COLON] = "SEMI_COLON";
2025 name_map[LEFT_PARENTHESIS] = "LEFT_PARENTHESIS";
2026 name_map[RIGHT_PARENTHESIS] = "RIGHT_PARENTHESIS";
2027 name_map[DOUBLE_QUOTE] = "DOUBLE_QUOTE";
2028 name_map[LEFT_BRACKET] = "LEFT_BRACKET";
2029 name_map[RIGHT_BRACKET] = "RIGHT_BRACKET";
2030 name_map[LEFT_BRACE] = "LEFT_BRACE";
2031 name_map[RIGHT_BRACE] = "RIGHT_BRACE";
2032 name_map[DIGIT] = "DIGIT";
2033 name_map[INTEGER] = "INTEGER";
2034 name_map[REAL] = "REAL";
2035 name_map[PERCENT] = "PERCENT";
2036
2037 @q **** (4) Basic symbolic tokens. @>
2038 @ Basic symbolic tokens.
2039 @<Define functions@>=
2040
2041 name_map[SYMBOL_0] = "SYMBOL_0";
2042 name_map[SYMBOL_1] = "SYMBOL_1";
2043 name_map[SYMBOL_2] = "SYMBOL_2";
2044 name_map[SYMBOL_3] = "SYMBOL_3";
2045 name_map[SYMBOL_4] = "SYMBOL_4";
2046 name_map[SYMBOL_5] = "SYMBOL_5";
2047 name_map[SYMBOL_6] = "SYMBOL_6";
2048 name_map[SYMBOL_7] = "SYMBOL_7";
2049
2050
2051 @q *** (3) General-Purpose Words and ``Syntactic Sugar''.@>
2052 @*2 General-Purpose Words and ``Syntactic Sugar''.
2053 \initials{LDF 2005.05.12.}
2054
2055 \LOG
2056 \initials{LDF 2005.05.12.}
2057 Added this section with |name_map| entries for
2058 |IN|, |BY|, and |AROUND|.
2059
2060 \initials{LDF 2005.05.12.}
2061 Added |name_map| entry for |OFF|.
2062 \ENDLOG
2063
2064 @<Define functions@>=
2065
2066 name_map[IN] = "IN";
2067 name_map[OFF] = "OFF";
2068 name_map[BY] = "BY";
2069 name_map[AROUND] = "AROUND";
2070
2071 @q **** (4) Object types defined in 3DLDF (and |UNDECLARED|). @>
2072 @*3 Object types defined in 3DLDF (and |UNDECLARED|).
2073
2074 \LOG
2075 \initials{LDF 2005.05.12.}
2076
2077 \initials{LDF 2005.05.12.}
2078 Added entry for |SYNONYM|.
2079
2080 \initials{LDF 2005.05.12.}
2081 Added entry for |COLOR_VECTOR|.
2082
2083 \initials{LDF 2005.05.12.}
2084 Added entry for |POINT_VECTOR|.
2085
2086 \initials{LDF 2005.05.12.}
2087 Added entries for |BOOL_POINT| and |BOOL_POINT_VECTOR|.
2088
2089 \initials{LDF 2005.05.12.}
2090 Added entries for |PATH_VECTOR|,
2091 |TRIANGLE_VECTOR|, |REG_POLYGON_VECTOR|,
2092 |RECTANGLE_VECTOR|, |SQUARE_VECTOR|,
2093 |ELLIPSE_VECTOR|, |CIRCLE_VECTOR|, |CUBOID_VECTOR|,
2094 |TETRAHEDRON_VECTOR|, |OCTAHEDRON_VECTOR|, |DODECAHEDRON_VECTOR|,
2095 |ICOSAHEDRON_VECTOR|, and |TRUNC_OCTAHEDRON_VECTOR|.
2096
2097 \initials{LDF 2005.05.12.}
2098 Added entries for
2099 |BOOLEAN_VECTOR_DECLARATOR|,
2100 |STRING_VECTOR_DECLARATOR|,
2101 |NUMERIC_VECTOR_DECLARATOR|,
2102 |TRANSFORM_VECTOR_DECLARATOR|,
2103 |PEN_VECTOR_DECLARATOR|,
2104 |DASH_PATTERN_VECTOR_DECLARATOR|,
2105 |FOCUS_VECTOR_DECLARATOR|, and
2106 |PICTURE_VECTOR_DECLARATOR|.
2107
2108 \initials{LDF 2005.05.12.}
2109 Added entries for
2110 |BOOLEAN_VECTOR|,
2111 |STRING_VECTOR|,
2112 |NUMERIC_VECTOR|,
2113 |PEN_VECTOR|,
2114 |DASH_PATTERN_VECTOR|,
2115 |PICTURE_VECTOR|,
2116 |TRANSFORM_VECTOR|, and
2117 |FOCUS_VECTOR|.
2118
2119 \initials{LDF 2005.05.12.}
2120 Added |type_name_map| entries for
2121 |BOOLEAN_VECTOR_DECLARATOR|,
2122 |STRING_VECTOR_DECLARATOR|,
2123 |NUMERIC_VECTOR_DECLARATOR|,
2124 |TRANSFORM_VECTOR_DECLARATOR|,
2125 |PEN_VECTOR_DECLARATOR|,
2126 |DASH_PATTERN_VECTOR_DECLARATOR|,
2127 |FOCUS_VECTOR_DECLARATOR|,
2128 and
2129 |PICTURE_VECTOR_DECLARATOR|.
2130
2131 \initials{LDF 2005.05.12.}
2132 Added entries for |NURB| and |NURB_VECTOR|.
2133
2134 \initials{LDF 2005.05.12.}
2135 Added entries for |ORIGAMI_FIGURE| and |ORIGAMI_FIGURE_VECTOR|.
2136
2137 \initials{LDF 2005.05.12.}
2138 Added entries for |POLYGON| and |POLYGON_VECTOR|.
2139 \ENDLOG
2140
2141 @q ***** (5) Code.@>
2142
2143 @<Define functions@>=
2144
2145 name_map[SYNONYM] = "SYNONYM";
2146 name_map[UNDECLARED] = "UNDECLARED";
2147 name_map[BOOLEAN] = "BOOLEAN";
2148 name_map[BOOL_POINT] = "BOOL_POINT";
2149 name_map[NUMERIC] = "NUMERIC";
2150 name_map[STRING] = "STRING";
2151 name_map[PEN] = "PEN";
2152 name_map[DASH_PATTERN] = "DASH_PATTERN";
2153 name_map[COLOR] = "COLOR";
2154 name_map[PICTURE] = "PICTURE";
2155 name_map[TRANSFORM] = "TRANSFORM";
2156 name_map[POINT] = "POINT";
2157 name_map[FOCUS] = "FOCUS";
2158 name_map[NURB] = "NURB";
2159 name_map[PATH] = "PATH";
2160 name_map[TRIANGLE] = "TRIANGLE";
2161 name_map[POLYGON] = "POLYGON";
2162 name_map[REG_POLYGON] = "REG_POLYGON";
2163 name_map[RECTANGLE] = "RECTANGLE";
2164 name_map[SQUARE] = "SQUARE";
2165 name_map[ELLIPSE] = "ELLIPSE";
2166 name_map[CIRCLE] = "CIRCLE";
2167 name_map[CUBOID] = "CUBOID";
2168 name_map[TETRAHEDRON] = "TETRAHEDRON";
2169 name_map[OCTAHEDRON] = "OCTAHEDRON";
2170 name_map[DODECAHEDRON]
2171 = "DODECAHEDRON";
2172 name_map[ICOSAHEDRON]
2173 = "ICOSAHEDRON";
2174 name_map[TRUNC_OCTAHEDRON]
2175 = "TRUNC_OCTAHEDRON";
2176
2177 name_map[ORIGAMI_FIGURE]
2178 = "ORIGAMI_FIGURE";
2179
2180
2181 name_map[ELLIPSE_SLICE] = "ELLIPSE_SLICE";
2182 name_map[CIRCLE_SLICE] = "CIRCLE_SLICE";
2183 name_map[POLYHEDRON_SLICE] = "POLYHEDRON_SLICE";
2184
2185 name_map[ELLIPSE_SLICE_VECTOR] = "ELLIPSE_SLICE_VECTOR";
2186 name_map[CIRCLE_SLICE_VECTOR] = "CIRCLE_SLICE_VECTOR";
2187 name_map[POLYHEDRON_SLICE_VECTOR] = "POLYHEDRON_SLICE_VECTOR";
2188
2189
2190 name_map[BOOLEAN_VECTOR] = "BOOLEAN_VECTOR";
2191 name_map[STRING_VECTOR] = "STRING_VECTOR";
2192 name_map[NUMERIC_VECTOR] = "NUMERIC_VECTOR";
2193 name_map[COLOR_VECTOR] = "COLOR_VECTOR";
2194 name_map[PEN_VECTOR] = "PEN_VECTOR";
2195 name_map[DASH_PATTERN_VECTOR] = "DASH_PATTERN_VECTOR";
2196 name_map[PICTURE_VECTOR] = "PICTURE_VECTOR";
2197 name_map[TRANSFORM_VECTOR] = "TRANSFORM_VECTOR";
2198 name_map[FOCUS_VECTOR] = "FOCUS_VECTOR";
2199
2200 name_map[POINT_VECTOR] = "POINT_VECTOR";
2201 name_map[BOOL_POINT_VECTOR] = "BOOL_POINT_VECTOR";
2202 name_map[NURB_VECTOR] = "NURB_VECTOR";
2203 name_map[PATH_VECTOR] = "PATH_VECTOR";
2204 name_map[TRIANGLE_VECTOR] = "TRIANGLE_VECTOR";
2205 name_map[POLYGON_VECTOR] = "POLYGON_VECTOR";
2206 name_map[REG_POLYGON_VECTOR] = "REG_POLYGON_VECTOR";
2207 name_map[RECTANGLE_VECTOR] = "RECTANGLE_VECTOR";
2208 name_map[SQUARE_VECTOR] = "SQUARE_VECTOR";
2209 name_map[ELLIPSE_VECTOR] = "ELLIPSE_VECTOR";
2210 name_map[CIRCLE_VECTOR] = "CIRCLE_VECTOR";
2211 name_map[CUBOID_VECTOR] = "CUBOID_VECTOR";
2212 name_map[TETRAHEDRON_VECTOR] = "TETRAHEDRON_VECTOR";
2213 name_map[OCTAHEDRON_VECTOR] = "OCTAHEDRON_VECTOR";
2214 name_map[DODECAHEDRON_VECTOR] = "DODECAHEDRON_VECTOR";
2215 name_map[ICOSAHEDRON_VECTOR] = "ICOSAHEDRON_VECTOR";
2216 name_map[TRUNC_OCTAHEDRON_VECTOR] = "TRUNC_OCTAHEDRON_VECTOR";
2217
2218 name_map[ORIGAMI_FIGURE_VECTOR] = "ORIGAMI_FIGURE_VECTOR";
2219
2220 name_map[BOOLEAN_VECTOR_DECLARATOR] = "BOOLEAN_VECTOR_DECLARATOR";
2221 name_map[STRING_VECTOR_DECLARATOR] = "STRING_VECTOR_DECLARATOR";
2222 name_map[NUMERIC_VECTOR_DECLARATOR] = "NUMERIC_VECTOR_DECLARATOR";
2223 name_map[TRANSFORM_VECTOR_DECLARATOR] = "TRANSFORM_VECTOR_DECLARATOR";
2224 name_map[PEN_VECTOR_DECLARATOR] = "PEN_VECTOR_DECLARATOR";
2225 name_map[DASH_PATTERN_VECTOR_DECLARATOR] = "DASH_PATTERN_VECTOR_DECLARATOR";
2226 name_map[FOCUS_VECTOR_DECLARATOR] = "FOCUS_VECTOR_DECLARATOR";
2227 name_map[PICTURE_VECTOR_DECLARATOR] = "PICTURE_VECTOR_DECLARATOR";
2228
2229 type_name_map[BOOLEAN_VECTOR_DECLARATOR] = "boolean_vector";
2230 type_name_map[STRING_VECTOR_DECLARATOR] = "string_vector";
2231 type_name_map[NUMERIC_VECTOR_DECLARATOR] = "numeric_vector";
2232 type_name_map[TRANSFORM_VECTOR_DECLARATOR] = "transform_vector";
2233 type_name_map[PEN_VECTOR_DECLARATOR] = "pen_vector";
2234 type_name_map[DASH_PATTERN_VECTOR_DECLARATOR] = "dash_pattern_vector";
2235 type_name_map[FOCUS_VECTOR_DECLARATOR] = "focus_vector";
2236 type_name_map[PICTURE_VECTOR_DECLARATOR] = "picture_vector";
2237
2238
2239
2240 @q **** (4) Declarators for object types defined in 3DLDF. @>
2241 @*3 Declarators for object types defined in 3DLDF.
2242
2243 \LOG
2244 \initials{LDF 2005.05.12.}
2245 Added entries for |COLOR_DECLARATOR| (which was missing)
2246 and |COLOR_VECTOR_DECLARATOR|.
2247
2248 \initials{LDF 2005.05.12.}
2249 Added entry for |POINT_VECTOR_DECLARATOR|.
2250
2251 \initials{LDF 2005.05.12.}
2252 Added entries for |BOOL_POINT_DECLARATOR| and
2253 |BOOL_POINT_VECTOR_DECLARATOR|.
2254
2255 \initials{LDF 2005.05.12.}
2256 Added entries for |PATH_VECTOR_DECLARATOR|,
2257 |TRIANGLE_VECTOR_DECLARATOR|, |REG_POLYGON_VECTOR_DECLARATOR|,
2258 |RECTANGLE_VECTOR_DECLARATOR|, |SQUARE_VECTOR_DECLARATOR|,
2259 |ELLIPSE_VECTOR_DECLARATOR|, |CIRCLE_VECTOR_DECLARATOR|,
2260 |CUBOID_VECTOR_DECLARATOR|, |TETRAHEDRON_VECTOR_DECLARATOR|,
2261 |OCTAHEDRON_VECTOR_DECLARATOR|, |DODECAHEDRON_VECTOR_DECLARATOR|,
2262 |ICOSAHEDRON_VECTOR_DECLARATOR|,
2263 and |TRUNC_OCTAHEDRON_VECTOR_DECLARATOR|.
2264
2265 \initials{LDF 2005.05.12.}
2266 Added entries in |name_map| and |type_name_map|
2267 for |NURB_DECLARATOR| and |NURB_VECTOR_DECLARATOR|.
2268
2269 \initials{LDF 2005.05.12.}
2270 Added entries in |name_map| and |type_name_map|
2271 for |ORIGAMI_FIGURE_DECLARATOR| and |ORIGAMI_FIGURE_VECTOR_DECLARATOR|.
2272
2273 \initials{LDF 2005.05.12.}
2274 Added entries in |name_map| and |type_name_map|
2275 for |POLYGON_DECLARATOR| and |POLYGON_VECTOR_DECLARATOR|.
2276 \ENDLOG
2277
2278 @q ***** (5) Code.@>
2279
2280 @<Define functions@>=
2281
2282 name_map[BOOLEAN_DECLARATOR] = "BOOLEAN_DECLARATOR";
2283
2284 name_map[STRING_DECLARATOR] = "STRING_DECLARATOR";
2285 name_map[COLOR_DECLARATOR] = "COLOR_DECLARATOR";
2286 name_map[NUMERIC_DECLARATOR] = "NUMERIC_DECLARATOR";
2287 name_map[TRANSFORM_DECLARATOR] = "TRANSFORM_DECLARATOR";
2288 name_map[POINT_DECLARATOR] = "POINT_DECLARATOR";
2289 name_map[BOOL_POINT_DECLARATOR] = "BOOL_POINT_DECLARATOR";
2290 name_map[FOCUS_DECLARATOR] = "FOCUS_DECLARATOR";
2291 name_map[NURB_DECLARATOR] = "NURB_DECLARATOR";
2292 name_map[PATH_DECLARATOR] = "PATH_DECLARATOR";
2293 name_map[TRIANGLE_DECLARATOR] = "TRIANGLE_DECLARATOR";
2294 name_map[POLYGON_DECLARATOR] = "POLYGON_DECLARATOR";
2295 name_map[REG_POLYGON_DECLARATOR] = "REG_POLYGON_DECLARATOR";
2296 name_map[RECTANGLE_DECLARATOR] = "RECTANGLE_DECLARATOR";
2297 name_map[SQUARE_DECLARATOR] = "SQUARE_DECLARATOR";
2298 name_map[ELLIPSE_DECLARATOR] = "ELLIPSE_DECLARATOR";
2299 name_map[CIRCLE_DECLARATOR] = "CIRCLE_DECLARATOR";
2300 name_map[CUBOID_DECLARATOR] = "CUBOID_DECLARATOR";
2301 name_map[TETRAHEDRON_DECLARATOR] = "TETRAHEDRON_DECLARATOR";
2302 name_map[OCTAHEDRON_DECLARATOR] = "OCTAHEDRON_DECLARATOR";
2303 name_map[DODECAHEDRON_DECLARATOR]
2304 = "DODECAHEDRON_DECLARATOR";
2305 name_map[ICOSAHEDRON_DECLARATOR]
2306 = "ICOSAHEDRON_DECLARATOR";
2307 name_map[TRUNC_OCTAHEDRON_DECLARATOR]
2308 = "TRUNC_OCTAHEDRON_DECLARATOR";
2309
2310 name_map[ELLIPSE_SLICE_DECLARATOR] = "ELLIPSE_SLICE_DECLARATOR";
2311 name_map[CIRCLE_SLICE_DECLARATOR] = "CIRCLE_SLICE_DECLARATOR";
2312 name_map[POLYHEDRON_SLICE_DECLARATOR] = "POLYHEDRON_SLICE_DECLARATOR";
2313
2314 name_map[ELLIPSE_SLICE_VECTOR_DECLARATOR]
2315 = "ELLIPSE_SLICE_VECTOR_DECLARATOR";
2316
2317 name_map[CIRCLE_SLICE_VECTOR_DECLARATOR]
2318 = "CIRCLE_SLICE_VECTOR_DECLARATOR";
2319
2320 name_map[POLYHEDRON_SLICE_VECTOR_DECLARATOR]
2321 = "POLYHEDRON_SLICE_VECTOR_DECLARATOR";
2322
2323 name_map[ORIGAMI_FIGURE_DECLARATOR]
2324 = "ORIGAMI_FIGURE_DECLARATOR";
2325
2326
2327 name_map[COLOR_VECTOR_DECLARATOR] = "COLOR_VECTOR_DECLARATOR";
2328 name_map[POINT_VECTOR_DECLARATOR] = "POINT_VECTOR_DECLARATOR";
2329 name_map[BOOL_POINT_VECTOR_DECLARATOR] = "BOOL_POINT_VECTOR_DECLARATOR";
2330 name_map[NURB_VECTOR_DECLARATOR] = "NURB_VECTOR_DECLARATOR";
2331 name_map[PATH_VECTOR_DECLARATOR] = "PATH_VECTOR_DECLARATOR";
2332 name_map[TRIANGLE_VECTOR_DECLARATOR] = "TRIANGLE_VECTOR_DECLARATOR";
2333 name_map[POLYGON_VECTOR_DECLARATOR] = "POLYGON_VECTOR_DECLARATOR";
2334 name_map[REG_POLYGON_VECTOR_DECLARATOR] = "REG_POLYGON_VECTOR_DECLARATOR";
2335 name_map[RECTANGLE_VECTOR_DECLARATOR] = "RECTANGLE_VECTOR_DECLARATOR";
2336 name_map[SQUARE_VECTOR_DECLARATOR] = "SQUARE_VECTOR_DECLARATOR";
2337 name_map[ELLIPSE_VECTOR_DECLARATOR] = "ELLIPSE_VECTOR_DECLARATOR";
2338 name_map[CIRCLE_VECTOR_DECLARATOR] = "CIRCLE_VECTOR_DECLARATOR";
2339 name_map[CUBOID_VECTOR_DECLARATOR] = "CUBOID_VECTOR_DECLARATOR";
2340 name_map[TETRAHEDRON_VECTOR_DECLARATOR] = "TETRAHEDRON_VECTOR_DECLARATOR";
2341 name_map[OCTAHEDRON_VECTOR_DECLARATOR] = "OCTAHEDRON_VECTOR_DECLARATOR";
2342 name_map[DODECAHEDRON_VECTOR_DECLARATOR] = "DODECAHEDRON_VECTOR_DECLARATOR";
2343 name_map[ICOSAHEDRON_VECTOR_DECLARATOR] = "ICOSAHEDRON_VECTOR_DECLARATOR";
2344 name_map[TRUNC_OCTAHEDRON_VECTOR_DECLARATOR]
2345 = "TRUNC_OCTAHEDRON_VECTOR_DECLARATOR";
2346
2347 name_map[ORIGAMI_FIGURE_VECTOR_DECLARATOR]
2348 = "ORIGAMI_FIGURE_VECTOR_DECLARATOR";
2349
2350 type_name_map[BOOLEAN_DECLARATOR] = "boolean";
2351
2352 type_name_map[STRING_DECLARATOR] = "string";
2353 type_name_map[COLOR_DECLARATOR] = "color";
2354 type_name_map[NUMERIC_DECLARATOR] = "numeric";
2355 type_name_map[TRANSFORM_DECLARATOR] = "transform";
2356 type_name_map[POINT_DECLARATOR] = "point";
2357 type_name_map[BOOL_POINT_DECLARATOR] = "bool_point";
2358 type_name_map[FOCUS_DECLARATOR] = "focus";
2359 type_name_map[NURB_DECLARATOR] = "nurb";
2360 type_name_map[PATH_DECLARATOR] = "path";
2361 type_name_map[TRIANGLE_DECLARATOR] = "triangle";
2362 type_name_map[POLYGON_DECLARATOR] = "polygon";
2363 type_name_map[REG_POLYGON_DECLARATOR] = "reg_polygon";
2364 type_name_map[RECTANGLE_DECLARATOR] = "rectangle";
2365 type_name_map[SQUARE_DECLARATOR] = "square";
2366 type_name_map[ELLIPSE_DECLARATOR] = "ellipse";
2367 type_name_map[CIRCLE_DECLARATOR] = "circle";
2368 type_name_map[CUBOID_DECLARATOR] = "cuboid";
2369 type_name_map[TETRAHEDRON_DECLARATOR] = "tetrahedron";
2370 type_name_map[OCTAHEDRON_DECLARATOR] = "octahedron";
2371 type_name_map[DODECAHEDRON_DECLARATOR]
2372 = "dodecahedron";
2373 type_name_map[ICOSAHEDRON_DECLARATOR]
2374 = "icosahedron";
2375 type_name_map[TRUNC_OCTAHEDRON_DECLARATOR]
2376 = "trunc_octahedron";
2377
2378
2379 type_name_map[ELLIPSE_SLICE_DECLARATOR] = "ellipse_slice";
2380 type_name_map[CIRCLE_SLICE_DECLARATOR] = "circle_slice";
2381 type_name_map[POLYHEDRON_SLICE_DECLARATOR] = "polyhedron_slice";
2382
2383 type_name_map[ELLIPSE_SLICE_VECTOR_DECLARATOR]
2384 = "ellipse_slice_vector";
2385
2386 type_name_map[CIRCLE_SLICE_VECTOR_DECLARATOR]
2387 = "circle_slice_vector";
2388
2389 type_name_map[POLYHEDRON_SLICE_VECTOR_DECLARATOR]
2390 = "polyhedron_slice_vector";
2391
2392 type_name_map[ORIGAMI_FIGURE_DECLARATOR] = "origami_figure";
2393
2394
2395 type_name_map[COLOR_VECTOR_DECLARATOR] = "color_vector";
2396 type_name_map[POINT_VECTOR_DECLARATOR] = "point_vector";
2397 type_name_map[BOOL_POINT_VECTOR_DECLARATOR] = "bool_point_vector";
2398 type_name_map[NURB_VECTOR_DECLARATOR] = "nurb_vector";
2399 type_name_map[PATH_VECTOR_DECLARATOR] = "path_vector";
2400 type_name_map[TRIANGLE_VECTOR_DECLARATOR] = "triangle_vector";
2401 type_name_map[POLYGON_VECTOR_DECLARATOR] = "polygon_vector";
2402 type_name_map[REG_POLYGON_VECTOR_DECLARATOR] = "reg_polygon_vector";
2403 type_name_map[RECTANGLE_VECTOR_DECLARATOR] = "rectangle_vector";
2404 type_name_map[SQUARE_VECTOR_DECLARATOR] = "square_vector";
2405 type_name_map[ELLIPSE_VECTOR_DECLARATOR] = "ellipse_vector";
2406 type_name_map[CIRCLE_VECTOR_DECLARATOR] = "circle_vector";
2407 type_name_map[CUBOID_VECTOR_DECLARATOR] = "cuboid_vector";
2408 type_name_map[TETRAHEDRON_VECTOR_DECLARATOR] = "tetrahedron_vector";
2409 type_name_map[OCTAHEDRON_VECTOR_DECLARATOR] = "octahedron_vector";
2410 type_name_map[DODECAHEDRON_VECTOR_DECLARATOR] = "dodecahedron_vector";
2411 type_name_map[ICOSAHEDRON_VECTOR_DECLARATOR] = "icosahedron_vector";
2412 type_name_map[TRUNC_OCTAHEDRON_VECTOR_DECLARATOR]
2413 = "trunc_octahedron_vector";
2414
2415 type_name_map[ORIGAMI_FIGURE_VECTOR_DECLARATOR] = "origami_figure_vector";
2416
2417 @q **** (4) System information.@>
2418 @*3 System information.
2419 \initials{LDF 2005.05.12.}
2420
2421 \LOG
2422 \initials{LDF 2005.05.12.}
2423 Added this section with |name_map| entries for
2424 |IS_BIG_ENDIAN| and |IS_LITTLE_ENDIAN|.
2425 \ENDLOG
2426
2427 @<Define functions@>=
2428
2429
2430 name_map[IS_BIG_ENDIAN] = "IS_BIG_ENDIAN";
2431 name_map[IS_LITTLE_ENDIAN] = "IS_LITTLE_ENDIAN";
2432
2433
2434 @q **** (4) Transformers and Transform Commands. @>
2435 @*3 Transformers and Transform Commands.
2436
2437 \LOG
2438 \initials{LDF 2005.05.12.}
2439 Added this section.
2440
2441 \initials{LDF 2005.05.12.}
2442 Added |name_map| entries for the transform commands.
2443
2444 \initials{LDF 2005.05.12.}
2445 Changed |REFLECTED_IN| to |REFLECTED|.
2446
2447 \initials{LDF 2005.05.12.}
2448 Added |name_map| entry for |ROTATE_AROUND|.
2449
2450 \initials{LDF 2005.05.12.}
2451 Replaced |REFLECTED| with |REFLECTED_IN| and |REFLECTED_OFF|.
2452 \ENDLOG
2453
2454 @q ***** (5) Code.@>
2455
2456 @<Define functions@>=
2457
2458 name_map[REFLECTED_IN] = "REFLECTED_IN";
2459 name_map[REFLECTED_OFF] = "REFLECTED_OFF";
2460 name_map[ROTATED] = "ROTATED";
2461 name_map[ROTATED_AROUND] = "ROTATED_AROUND";
2462 name_map[SCALED] = "SCALED";
2463 name_map[SHEARED] = "SHEARED";
2464 name_map[SHIFTED] = "SHIFTED";
2465 name_map[TRANSFORMED] = "TRANSFORMED";
2466 name_map[XSCALED] = "XSCALED";
2467 name_map[YSCALED] = "YSCALED";
2468 name_map[ZSCALED] = "ZSCALED";
2469
2470 name_map[REFLECT] = "REFLECT";
2471 name_map[ROTATE] = "ROTATE";
2472 name_map[ROTATE_AROUND] = "ROTATE_AROUND";
2473 name_map[SCALE] = "SCALE";
2474 name_map[SHEAR] = "SHEAR";
2475 name_map[SHIFT] = "SHIFT";
2476 name_map[TRANSFORM_BY] = "TRANSFORM_BY";
2477 name_map[XSCALE] = "XSCALE";
2478 name_map[YSCALE] = "YSCALE";
2479 name_map[ZSCALE] = "ZSCALE";
2480
2481
2482 @q **** (4) Operators. @>
2483 @ Operators.
2484
2485 \LOG
2486 \initials{LDF 2005.05.12.}
2487 Added |name_map| entries for |XPART|, |YPART|,
2488 |ZPART|, and |WPART|.
2489
2490 \initials{LDF 2005.05.12.}
2491 Added |name_map| entry for |MAGNITUDE|.
2492
2493 \initials{LDF 2005.05.12.}
2494 Added |name_map| entry for |ANGLE|.
2495
2496 \initials{LDF 2005.05.12.}
2497 Added |name_map| entries for |OR|, |AND|, |EQUAL|,
2498 |NOT_EQUAL|, |LESS|, |LESS_OR_EQUAL|, |GREATER|, |GREATER_OR_EQUAL|,
2499 |NOT|, and |EQUATE|. Removed the entry for |EQUALS|.
2500
2501 \initials{LDF 2005.05.12.}
2502 Added |name_map| entries for
2503 |TRUE|, |FALSE|, |IS_ODD|, |IS_EVEN|, |IS_CYCLE|, |IS_KNOWN|,
2504 |IS_UNKNOWN|, and |CHAREXISTS|.
2505
2506
2507 \initials{LDF 2005.05.12.}
2508 Removed the entry in |name_map| for |WITH_DOTS|.
2509 |with_dots| is now a predefined variable defined in |Scanner_Type::create()| in
2510 \filename{scan.web}.
2511
2512 \initials{LDF 2005.05.12.}
2513 Added |name_map| entries for |PLUS_ASSIGN|, |MINUS_ASSIGN|, |TIMES_ASSIGN|,
2514 and |DIVIDE_ASSIGN|.
2515
2516 \initials{LDF 2005.05.12.}
2517 Added entries for the following type predicates:\hfil\break
2518 |IS_SYNONYM|, |IS_UNDECLARED|,
2519 |IS_BOOLEAN|, |IS_BOOL_POINT|, |IS_BOOL_POINT_VECTOR|, |IS_STRING|,
2520 |IS_NUMERIC|, |IS_PEN|, |IS_DASH_PATTERN|, |IS_COLOR|, |IS_COLOR_VECTOR|,
2521 |IS_PICTURE|, |IS_TRANSFORM|, |IS_POINT|, |IS_POINT_VECTOR|, |IS_FOCUS|,
2522 |IS_PATH|, |IS_TRIANGLE|, |IS_REG_POLYGON|, |IS_RECTANGLE|, |IS_SQUARE|,
2523 |IS_ELLIPSE|, |IS_CIRCLE|, |IS_CUBOID|, |IS_TETRAHEDRON|, |IS_OCTAHEDRON|,
2524 |IS_DODECAHEDRON|, |IS_ICOSAHEDRON|, and |IS_TRUNC_OCTAHEDRON|.
2525
2526 \initials{LDF 2005.05.12.}
2527 Added |name_map| entries for |DOT_PRODUCT| and |CROSS_PRODUCT|.
2528
2529 \initials{LDF 2005.05.12.}
2530 Added |name_map| entries for |NORMAL| and |UNIT_VECTOR|.
2531
2532 \initials{LDF 2005.05.12.}
2533 Added |name_map| entries for |XXPART|, |XYPART|, |XZPART|,
2534 |YXPART|, |YYPART|, |YZPART|, and |ZXPART|, |ZYPART|,
2535 and |ZZPART|.
2536
2537 \initials{LDF 2005.05.12.}
2538 @:BUG FIX@> BUG FIX:
2539 Added |name_map| entries for |WXPART|, |WYPART|, and |WZPART|.
2540
2541 \initials{LDF 2005.05.12.}
2542 Added |name_map| entries for
2543 |IS_ELLIPTICAL|,
2544 |IS_CIRCULAR|,
2545 |IS_REG_POLYGONAL|,
2546 |IS_TRIANGULAR|,
2547 |IS_QUADRATICAL|,
2548 |IS_PENTAGONAL|,
2549 |IS_HEXAGONAL|,
2550 |IS_HEPTAGONAL|,
2551 |IS_OCTAGONAL|,
2552 |IS_NONAGONAL|,
2553 |IS_DECAGONAL|,
2554 |IS_ONDECAGONAL|,
2555 |IS_DODECAGONAL|,
2556 |IS_RECTANGULAR|,
2557 |IS_CONVEX|,
2558 |IS_CONICAL|,
2559 |IS_PARABOLIC|,
2560 |IS_HYPERBOLIC|,
2561 |IS_TRAPEZOIDAL|,
2562 |IS_PRISMOIDAL|,
2563 |IS_CUBOIDAL|,
2564 |IS_ELLIPSOIDAL|,
2565 |IS_SPHEROIDAL|, and
2566 |IS_SPHERICAL|.
2567
2568 \initials{LDF 2005.05.12.}
2569 Added |name_map| entries for
2570 |IS_ON_SEGMENT|, |IS_ON_LINE|,
2571 |IS_IN_TRIANGLE|, |IS_IN_RECTANGLE|, and |LOCATION|.
2572
2573 \initials{LDF 2005.05.12.}
2574 Added |name_map| entries for
2575 |IS_PARALLEL|,
2576 |IS_COPLANAR|,
2577 |IS_SKEW|,
2578 |IS_NON_PARALLEL|,
2579 |IS_NON_COPLANAR|, and
2580 |IS_NON_SKEW|.
2581
2582 \initials{LDF 2005.05.12.}
2583 Added |name_map| entry for |DISTANCE|.
2584
2585 \initials{LDF 2005.05.12.}
2586 Changed |DISTANCE| to |DISTANCE_TO_PLANE|.
2587
2588 \initials{LDF 2005.05.12.}
2589 Added |name_map| entries for |IS_PLANAR| and |DISTANCE_ALONG_LINE|.
2590
2591 \initials{LDF 2005.05.12.}
2592 Added |name_map| entry for |IS_LINEAR|.
2593
2594 \initials{LDF 2005.05.12.}
2595 Removed the |name_map| entries for |IS_NON_PARALLEL|,
2596 |IS_NON_COPLANAR|, and |IS_NON_SKEW|.
2597
2598 \initials{LDF 2005.05.12.}
2599 Added |name_map| entry for |IS_COLINEAR|.
2600
2601 \initials{LDF 2005.05.12.}
2602 Added entries for |IS_PATH_VECTOR|,
2603 |IS_TRIANGLE_VECTOR|, |IS_REG_POLYGON_VECTOR|,
2604 |IS_RECTANGLE_VECTOR|, |IS_SQUARE_VECTOR|,
2605 |IS_ELLIPSE_VECTOR|, |IS_CIRCLE_VECTOR|, |IS_CUBOID_VECTOR|,
2606 |IS_TETRAHEDRON_VECTOR|, |IS_OCTAHEDRON_VECTOR|, |IS_DODECAHEDRON_VECTOR|,
2607 |IS_ICOSAHEDRON_VECTOR|, and |IS_TRUNC_OCTAHEDRON_VECTOR|.
2608
2609 \initials{LDF 2005.05.12.}
2610 Added entries for
2611 |IS_BOOLEAN_VECTOR|,
2612 |IS_STRING_VECTOR|,
2613 |IS_NUMERIC_VECTOR|,
2614 |IS_TRANSFORM_VECTOR|,
2615 |IS_PEN_VECTOR|,
2616 |IS_DASH_PATTERN_VECTOR|,
2617 |IS_FOCUS_VECTOR|, and
2618 |IS_PICTURE_VECTOR|.
2619
2620 \initials{LDF 2005.05.12.}
2621 Added |name_map| entries for |RED_PART|,
2622 |GREEN_PART|, |BLUE_PART|, |YELLOW_PART|, |MAGENTA_PART|,
2623 |CYAN_PART|, |BLACK_PART|, |WHITE_PART|, |BLUE_VIOLET_PART|, and
2624 |RED_ORANGE_PART|.
2625
2626 \initials{LDF 2005.05.12.}
2627 Added |name_map| entry for |IS_QUADRILATERAL|.
2628
2629 \initials{LDF 2005.05.12.}
2630 Added |name_map| entries for |IS_NURB| and |IS_NURB_VECTOR|.
2631
2632 \initials{LDF 2005.05.12.}
2633 Added |name_map| entries for |IS_ORIGAMI_FIGURE| and
2634 |IS_ORIGAMI_FIGURE_VECTOR|.
2635
2636 \initials{LDF 2005.05.12.}
2637 Added |name_map| entry for |IS_CONVEX_POLYGONAL|.
2638
2639 \initials{LDF 2005.05.12.}
2640 Added |name_map| entries for |IS_POLYGON|,
2641 |IS_POLYGON_VECTOR|, and |IS_POLYGONAL|.
2642 \ENDLOG
2643
2644 @q ***** (5) Definition.@>
2645
2646 @<Define functions@>=
2647
2648 name_map[TIMES] = "TIMES";
2649 name_map[OVER] = "OVER";
2650 name_map[ANGLE] = "ANGLE";
2651
2652 name_map[DOT_PRODUCT] = "DOT_PRODUCT";
2653 name_map[CROSS_PRODUCT] = "CROSS_PRODUCT";
2654
2655 name_map[NORMAL] = "NORMAL";
2656 name_map[UNIT_VECTOR] = "UNIT_VECTOR";
2657
2658
2659 name_map[PLUS] = "PLUS";
2660 name_map[MINUS] = "MINUS";
2661
2662 name_map[SQRT] = "SQRT";
2663 name_map[SIND] = "SIND";
2664 name_map[COSD] = "COSD";
2665 name_map[MLOG] = "MLOG";
2666 name_map[MEXP] = "MEXP";
2667 name_map[FLOOR] = "FLOOR";
2668 name_map[UNIFORMDEVIATE] = "UNIFORMDEVIATE";
2669
2670 name_map[PYTHAGOREAN_PLUS] = "PYTHAGOREAN_PLUS";
2671 name_map[PYTHAGOREAN_MINUS] = "PYTHAGOREAN_MINUS";
2672
2673 name_map[OR] = "OR";
2674 name_map[AND] = "AND";
2675 name_map[EQUAL] = "EQUAL";
2676 name_map[NOT_EQUAL] = "NOT_EQUAL";
2677 name_map[LESS] = "LESS";
2678 name_map[LESS_OR_EQUAL] = "LESS_OR_EQUAL";
2679 name_map[GREATER] = "GREATER";
2680 name_map[GREATER_OR_EQUAL] = "GREATER_OR_EQUAL";
2681 name_map[NOT] = "NOT";
2682
2683 name_map[ASSIGN] = "ASSIGN";
2684 name_map[EQUATE] = "EQUATE";
2685
2686 name_map[PLUS_ASSIGN] = "PLUS_ASSIGN";
2687 name_map[MINUS_ASSIGN] = "MINUS_ASSIGN";
2688 name_map[TIMES_ASSIGN] = "TIMES_ASSIGN";
2689 name_map[DIVIDE_ASSIGN] = "DIVIDE_ASSIGN";
2690
2691
2692 name_map[TRUE] = "TRUE";
2693 name_map[FALSE] = "FALSE";
2694 name_map[IS_ODD] = "IS_ODD";
2695 name_map[IS_EVEN] = "IS_EVEN";
2696 name_map[IS_CYCLE] = "IS_CYCLE";
2697 name_map[IS_KNOWN] = "IS_KNOWN";
2698 name_map[IS_UNKNOWN] = "IS_UNKNOWN";
2699 name_map[CHAREXISTS] = "CHAREXISTS";
2700
2701 name_map[IS_SYNONYM] = "IS_SYNONYM";
2702 name_map[IS_UNDECLARED] = "IS_UNDECLARED";
2703 name_map[IS_BOOLEAN] = "IS_BOOLEAN";
2704 name_map[IS_BOOL_POINT] = "IS_BOOL_POINT";
2705 name_map[IS_BOOL_POINT_VECTOR] = "IS_BOOL_POINT_VECTOR";
2706 name_map[IS_STRING] = "IS_STRING";
2707 name_map[IS_NUMERIC] = "IS_NUMERIC";
2708 name_map[IS_PEN] = "IS_PEN";
2709 name_map[IS_DASH_PATTERN] = "IS_DASH_PATTERN";
2710 name_map[IS_COLOR] = "IS_COLOR";
2711 name_map[IS_COLOR_VECTOR] = "IS_COLOR_VECTOR";
2712 name_map[IS_PICTURE] = "IS_PICTURE";
2713 name_map[IS_TRANSFORM] = "IS_TRANSFORM";
2714 name_map[IS_POINT] = "IS_POINT";
2715 name_map[IS_POINT_VECTOR] = "IS_POINT_VECTOR";
2716 name_map[IS_FOCUS] = "IS_FOCUS";
2717 name_map[IS_NURB] = "IS_NURB";
2718 name_map[IS_PATH] = "IS_PATH";
2719 name_map[IS_TRIANGLE] = "IS_TRIANGLE";
2720 name_map[REG_POLYGON] = "IS_POLYGON";
2721 name_map[IS_REG_POLYGON] = "IS_REG_POLYGON";
2722 name_map[IS_RECTANGLE] = "IS_RECTANGLE";
2723 name_map[IS_ELLIPSE] = "IS_ELLIPSE";
2724 name_map[IS_CIRCLE] = "IS_CIRCLE";
2725 name_map[IS_CUBOID] = "IS_CUBOID";
2726 name_map[IS_TETRAHEDRON] = "IS_TETRAHEDRON";
2727 name_map[IS_OCTAHEDRON] = "IS_OCTAHEDRON";
2728 name_map[IS_DODECAHEDRON] = "IS_DODECAHEDRON";
2729 name_map[IS_ICOSAHEDRON] = "IS_ICOSAHEDRON";
2730 name_map[IS_TRUNC_OCTAHEDRON] = "IS_TRUNC_OCTAHEDRON";
2731
2732
2733 name_map[IS_ELLIPSE_SLICE] = "IS_ELLIPSE_SLICE";
2734 name_map[IS_CIRCLE_SLICE] = "IS_CIRCLE_SLICE";
2735 name_map[IS_POLYHEDRON_SLICE] = "IS_POLYHEDRON_SLICE";
2736
2737 name_map[IS_ELLIPSE_SLICE_VECTOR] = "IS_ELLIPSE_SLICE_VECTOR";
2738 name_map[IS_CIRCLE_SLICE_VECTOR] = "IS_CIRCLE_SLICE_VECTOR";
2739 name_map[IS_POLYHEDRON_SLICE_VECTOR] = "IS_POLYHEDRON_SLICE_VECTOR";
2740
2741 name_map[IS_ORIGAMI_FIGURE] = "IS_ORIGAMI_FIGURE";
2742
2743 name_map[IS_LINEAR] = "IS_LINEAR";
2744 name_map[IS_PLANAR] = "IS_PLANAR";
2745
2746 name_map[IS_ELLIPTICAL] = "IS_ELLIPTICAL";
2747 name_map[IS_CIRCULAR] = "IS_CIRCULAR";
2748
2749 name_map[IS_POLYGONAL] = "IS_POLYGONAL";
2750 name_map[IS_REG_POLYGONAL] = "IS_REG_POLYGONAL";
2751
2752 name_map[IS_TRIANGULAR] = "IS_TRIANGULAR";
2753 name_map[IS_QUADRATICAL] = "IS_QUADRATICAL";
2754 name_map[IS_PENTAGONAL] = "IS_PENTAGONAL";
2755 name_map[IS_HEXAGONAL] = "IS_HEXAGONAL";
2756 name_map[IS_HEPTAGONAL] = "IS_HEPTAGONAL";
2757 name_map[IS_OCTAGONAL] = "IS_OCTAGONAL";
2758 name_map[IS_NONAGONAL] = "IS_NONAGONAL";
2759 name_map[IS_DECAGONAL] = "IS_DECAGONAL";
2760 name_map[IS_ONDECAGONAL] = "IS_ONDECAGONAL";
2761 name_map[IS_DODECAGONAL] = "IS_DODECAGONAL";
2762
2763 name_map[IS_RECTANGULAR] = "IS_RECTANGULAR";
2764 name_map[IS_QUADRILATERAL] = "IS_QUADRILATERAL";
2765 name_map[IS_CONVEX_POLYGONAL] = "IS_CONVEX_POLYGONAL";
2766 name_map[IS_SQUARE] = "IS_SQUARE";
2767 name_map[IS_CONVEX] = "IS_CONVEX";
2768 name_map[IS_CONICAL] = "IS_CONICAL";
2769 name_map[IS_PARABOLIC] = "IS_PARABOLIC";
2770 name_map[IS_HYPERBOLIC] = "IS_HYPERBOLIC";
2771 name_map[IS_TRAPEZOIDAL] = "IS_TRAPEZOIDAL";
2772 name_map[IS_PRISMOIDAL] = "IS_PRISMOIDAL";
2773
2774 name_map[IS_CUBOIDAL] = "IS_CUBOIDAL";
2775 name_map[IS_ELLIPSOIDAL] = "IS_ELLIPSOIDAL";
2776 name_map[IS_SPHEROIDAL] = "IS_SPHEROIDAL";
2777 name_map[IS_SPHERICAL] = "IS_SPHERICAL";
2778
2779
2780
2781 name_map[IS_ON_SEGMENT] = "IS_ON_SEGMENT";
2782 name_map[IS_ON_LINE] = "IS_ON_LINE ";
2783 name_map[IS_IN_TRIANGLE] = "IS_IN_TRIANGLE";
2784 name_map[IS_IN_RECTANGLE] = "IS_IN_RECTANGLE";
2785 name_map[LOCATION] = "LOCATION";
2786
2787 name_map[DISTANCE_TO_PLANE] = "DISTANCE_TO_PLANE";
2788
2789 name_map[DISTANCE_ALONG_LINE] = "DISTANCE_ALONG_LINE";
2790
2791 name_map[IS_PARALLEL] = "IS_PARALLEL";
2792 name_map[IS_COLINEAR] = "IS_COLINEAR";
2793 name_map[IS_COPLANAR] = "IS_COPLANAR";
2794 name_map[IS_SKEW] = "IS_SKEW";
2795
2796 name_map[LENGTH] = "LENGTH";
2797 name_map[MAGNITUDE] = "MAGNITUDE";
2798
2799 name_map[SIZE] = "SIZE";
2800
2801 name_map[XPART] = "XPART";
2802 name_map[YPART] = "YPART";
2803 name_map[ZPART] = "ZPART";
2804 name_map[WPART] = "WPART";
2805
2806 name_map[XXPART] = "XXPART";
2807 name_map[XYPART] = "XYPART";
2808 name_map[XZPART] = "XZPART";
2809
2810 name_map[YXPART] = "YXPART";
2811 name_map[YYPART] = "YYPART";
2812 name_map[YZPART] = "YZPART";
2813
2814 name_map[ZXPART] = "ZXPART";
2815 name_map[ZYPART] = "ZYPART";
2816 name_map[ZZPART] = "ZZPART";
2817
2818 name_map[WXPART] = "WXPART";
2819 name_map[WYPART] = "WYPART";
2820 name_map[WZPART] = "WZPART";
2821
2822 name_map[RED_PART] = "RED_PART";
2823 name_map[GREEN_PART] = "GREEN_PART";
2824 name_map[BLUE_PART] = "BLUE_PART";
2825 name_map[YELLOW_PART] = "YELLOW_PART";
2826 name_map[MAGENTA_PART] = "MAGENTA_PART";
2827 name_map[CYAN_PART] = "CYAN_PART";
2828 name_map[BLACK_PART] = "BLACK_PART";
2829 name_map[WHITE_PART] = "WHITE_PART";
2830 name_map[BLUE_VIOLET_PART] = "BLUE_VIOLET_PART";
2831 name_map[RED_ORANGE_PART] = "RED_ORANGE_PART";
2832
2833 name_map[IS_NURB_VECTOR] = "IS_NURB_VECTOR";
2834 name_map[IS_PATH_VECTOR] = "IS_PATH_VECTOR";
2835 name_map[IS_TRIANGLE_VECTOR] = "IS_TRIANGLE_VECTOR";
2836 name_map[IS_POLYGON_VECTOR] = "IS_POLYGON_VECTOR";
2837 name_map[IS_REG_POLYGON_VECTOR] = "IS_REG_POLYGON_VECTOR";
2838 name_map[IS_RECTANGLE_VECTOR] = "IS_RECTANGLE_VECTOR";
2839 name_map[IS_SQUARE_VECTOR] = "IS_SQUARE_VECTOR";
2840 name_map[IS_ELLIPSE_VECTOR] = "IS_ELLIPSE_VECTOR";
2841 name_map[IS_CIRCLE_VECTOR] = "IS_CIRCLE_VECTOR";
2842 name_map[IS_CUBOID_VECTOR] = "IS_CUBOID_VECTOR";
2843 name_map[IS_TETRAHEDRON_VECTOR] = "IS_TETRAHEDRON_VECTOR";
2844 name_map[IS_OCTAHEDRON_VECTOR] = "IS_OCTAHEDRON_VECTOR";
2845 name_map[IS_DODECAHEDRON_VECTOR] = "IS_DODECAHEDRON_VECTOR";
2846 name_map[IS_ICOSAHEDRON_VECTOR] = "IS_ICOSAHEDRON_VECTOR";
2847 name_map[IS_TRUNC_OCTAHEDRON_VECTOR]
2848 = "IS_TRUNC_OCTAHEDRON_VECTOR";
2849
2850 name_map[IS_ORIGAMI_FIGURE_VECTOR] = "IS_ORIGAMI_FIGURE_VECTOR";
2851
2852 name_map[IS_BOOLEAN_VECTOR] = "IS_BOOLEAN_VECTOR";
2853 name_map[IS_STRING_VECTOR] = "IS_STRING_VECTOR";
2854 name_map[IS_NUMERIC_VECTOR] = "IS_NUMERIC_VECTOR";
2855 name_map[IS_TRANSFORM_VECTOR] = "IS_TRANSFORM_VECTOR";
2856 name_map[IS_PEN_VECTOR] = "IS_PEN_VECTOR";
2857 name_map[IS_DASH_PATTERN_VECTOR] = "IS_DASH_PATTERN_VECTOR";
2858 name_map[IS_FOCUS_VECTOR] = "IS_FOCUS_VECTOR";
2859 name_map[IS_PICTURE_VECTOR] = "IS_PICTURE_VECTOR";
2860
2861 @q **** (4) Types for drawing.@>
2862 @*3 Types for drawing.
2863
2864 \LOG
2865 \initials{LDF 2005.05.12.}
2866 Added entries for |WITH_COLOR_VECTOR|, |WITH_DRAW_COLOR_VECTOR|,
2867 and |WITH_FILL_COLOR_VECTOR|.
2868
2869 \initials{LDF 2005.05.12.}
2870 Added entries for |DRAWDOT_IF|, |DRAWDOT_UNLESS|,
2871 |UNDRAWDOT_IF|, and |UNDRAWDOT_UNLESS|.
2872
2873 \initials{LDF 2005.05.12.}
2874 Added entries for |DRAWDBLARROW| and |UNDRAWDBLARROW|.
2875
2876 \initials{LDF 2005.05.12.}
2877 Added entries for |PICKUP|, |DROP_COLOR|, |DROP_DASH_PATTERN|, and
2878 |DROP_PEN|.
2879
2880 \initials{LDF 2005.05.12.}
2881 Added entries for |PICKUP_DRAW_COLOR|,
2882 |PICKUP_FILL_COLOR|, |DROP_DRAW_COLOR|, and
2883 |DROP_FILL_COLOR|.
2884
2885 \initials{LDF 2005.05.12.}
2886 Added entry for |DROP_ALL|.
2887
2888 \initials{LDF 2005.05.12.}
2889 Added entries for |WITH_PEN_VECTOR| and
2890 |WITH_DASH_PATTERN_VECTOR|.
2891
2892 \initials{LDF 2005.05.12.}
2893 Added entries for |CMY|, |CMYK|, and |RGB|.
2894 \ENDLOG
2895
2896 @<Define functions@>=
2897
2898 name_map[PENCIRCLE] = "PENCIRCLE";
2899 name_map[PENRAZOR] = "PENRAZOR";
2900 name_map[PENSPECK] = "PENSPECK";
2901 name_map[PENSQUARE] = "PENSQUARE";
2902
2903 name_map[WITH_PEN] = "WITH_PEN";
2904
2905 name_map[WITH_PEN_VECTOR] = "WITH_PEN_VECTOR";
2906
2907 name_map[DASHED] = "DASHED";
2908
2909 name_map[WITH_DASH_PATTERN_VECTOR] = "WITH_DASH_PATTERN_VECTOR";
2910
2911
2912 name_map[WITH_WEIGHT] = "WITH_WEIGHT";
2913 name_map[WITH_COLOR] = "WITH_COLOR";
2914 name_map[WITH_DRAW_COLOR] = "WITH_DRAW_COLOR";
2915 name_map[WITH_FILL_COLOR] = "WITH_FILL_COLOR";
2916
2917 name_map[WITH_COLOR_VECTOR] = "WITH_COLOR_VECTOR";
2918 name_map[WITH_DRAW_COLOR_VECTOR] = "WITH_DRAW_COLOR_VECTOR";
2919 name_map[WITH_FILL_COLOR_VECTOR] = "WITH_FILL_COLOR_VECTOR";
2920
2921
2922 name_map[ON_PICTURE] = "ON_PICTURE";
2923 name_map[DRAWDOT] = "DRAWDOT";
2924
2925 name_map[DRAWDOT_IF] = "DRAWDOT_IF";
2926 name_map[DRAWDOT_UNLESS] = "DRAWDOT_UNLESS";
2927 name_map[UNDRAWDOT_IF] = "UNDRAWDOT_IF";
2928 name_map[UNDRAWDOT_UNLESS] = "UNDRAWDOT_UNLESS";
2929
2930 name_map[DRAW] = "DRAW";
2931 name_map[FILL] = "FILL";
2932 name_map[FILLDRAW] = "FILLDRAW";
2933 name_map[DRAWARROW] = "DRAWARROW";
2934 name_map[DRAWDBLARROW] = "DRAWDBLARROW";
2935
2936 name_map[UNDRAWDOT] = "UNDRAWDOT";
2937 name_map[UNDRAW] = "UNDRAW";
2938 name_map[UNFILL] = "UNFILL";
2939 name_map[UNFILLDRAW] = "UNFILLDRAW";
2940 name_map[UNDRAWARROW] = "UNDRAWARROW";
2941 name_map[UNDRAWDBLARROW] = "UNDRAWDBLARROW";
2942
2943 name_map[PICKUP] = "PICKUP";
2944 name_map[DROP_COLOR] = "DROP_COLOR";
2945 name_map[DROP_DASH_PATTERN] = "DROP_DASH_PATTERN";
2946 name_map[DROP_PEN] = "DROP_PEN";
2947
2948 name_map[PICKUP_DRAW_COLOR] = "PICKUP_DRAW_COLOR";
2949 name_map[PICKUP_FILL_COLOR] = "PICKUP_FILL_COLOR";
2950 name_map[DROP_DRAW_COLOR] = "DROP_DRAW_COLOR";
2951 name_map[DROP_FILL_COLOR] = "DROP_FILL_COLOR";
2952
2953 name_map[CMY] = "CMY";
2954 name_map[CMYK] = "CMYK";
2955 name_map[RGB] = "RGB";
2956
2957 name_map[DROP_ALL] = "DROP_ALL";
2958
2959 @q **** (4) Types for setting. @>
2960 @*3 Types for setting.
2961
2962 \LOG
2963 \initials{LDF 2005.05.12.}
2964 Added this section, with a |name_map| entry for |SET|.
2965
2966 \initials{LDF 2005.05.12.}
2967 Added |name_map| entries for |WITH_CENTER|, |WITH_POINT_COUNT|,
2968 and |WITH_NORMAL|.
2969
2970 \initials{LDF 2005.05.12.}
2971 Added |name_map| entries for
2972 |WITH_AXIS_H|, |WITH_AXIS_V|, and |WITH_DIAMETER|.
2973
2974 \initials{LDF 2005.05.12.}
2975 Added |name_map| entry for |WITH_SIDES|.
2976 \ENDLOG
2977
2978 @<Define functions@>=
2979
2980
2981 name_map[SET] = "SET";
2982
2983 name_map[WITH_CENTER] = "WITH_CENTER";
2984 name_map[WITH_POINT_COUNT] = "WITH_POINT_COUNT";
2985 name_map[WITH_NORMAL] = "WITH_NORMAL";
2986
2987 name_map[WITH_AXIS_H] = "WITH_AXIS_H";
2988 name_map[WITH_AXIS_V] = "WITH_AXIS_V";
2989 name_map[WITH_DIAMETER] = "WITH_DIAMETER";
2990
2991 name_map[WITH_SIDES] = "WITH_SIDES";
2992
2993 @q **** (4) Types for labels. @>
2994 @ Types for labels.
2995
2996 \LOG
2997 \initials{LDF 2005.05.12.}
2998 Added this section, with |name_map| entries for
2999 |LABEL|, |RT|, |LFT|, |TOP|, |BOT|, |URT|, |ULFT|, |LRT|, and |LLFT|.
3000
3001 \initials{LDF 2005.05.12.}
3002 Added |name_map| entry for |DOTLABEL|.
3003
3004 \initials{LDF 2005.05.12.}
3005 Added |name_map| entries for |SUPPRESS_LABELS| and
3006 |UNSUPPRESS_LABELS|.
3007
3008 \initials{LDF 2005.05.12.}
3009 Added |name_map| entry for |KILL_LABELS|.
3010
3011 \initials{LDF 2005.05.12.}
3012 Added |name_map| entries for
3013 |LABEL_IF|, |LABEL_UNLESS|, |DOTLABEL_IF|, and |DOTLABEL_UNLESS|.
3014
3015 \initials{LDF 2005.05.12.}
3016 Added |name_map| entries for
3017 |LABELS_IF|, |LABELS_UNLESS|, |DOTLABELS_IF|, and |DOTLABELS_UNLESS|.
3018
3019 \initials{LDF 2005.05.12.}
3020 Added |name_map| entry for |SCANTOKENS|.
3021
3022 \initials{LDF 2005.05.12.}
3023 Added |name_map| entry for |VERBATIM_METAPOST|.
3024
3025 \LOG
3026 \initials{LDF 2005.05.12.}
3027 Added |name_map| entry for |LET|.
3028 \ENDLOG
3029
3030 \ENDLOG
3031
3032 @q ***** (5) Code.@>
3033
3034 @<Define functions@>=
3035
3036 name_map[LABEL] = "LABEL";
3037 name_map[DOTLABEL] = "DOTLABEL";
3038 name_map[RT] = "RT";
3039 name_map[LFT] = "LFT";
3040 name_map[TOP] = "TOP";
3041 name_map[BOT] = "BOT";
3042 name_map[URT] = "URT";
3043 name_map[ULFT] = "ULFT";
3044 name_map[LRT] = "LRT";
3045 name_map[LLFT] = "LLFT";
3046
3047 name_map[SUPPRESS_LABELS] = "SUPPRESS_LABELS";
3048 name_map[UNSUPPRESS_LABELS] = "UNSUPPRESS_LABELS";
3049
3050
3051 name_map[LABEL_IF] = "LABEL_IF";
3052 name_map[LABEL_UNLESS] = "LABEL_UNLESS";
3053 name_map[DOTLABEL_IF] = "DOTLABEL_IF";
3054 name_map[DOTLABEL_UNLESS] = "DOTLABEL_UNLESS";
3055
3056
3057 name_map[LABELS] = "LABELS";
3058 name_map[LABELS_IF] = "LABELS_IF";
3059 name_map[LABELS_UNLESS] = "LABELS_UNLESS";
3060 name_map[DOTLABELS] = "DOTLABELS";
3061 name_map[DOTLABELS_IF] = "DOTLABELS_IF";
3062 name_map[DOTLABELS_UNLESS] = "DOTLABELS_UNLESS";
3063
3064 name_map[SCANTOKENS] = "SCANTOKENS";
3065
3066 name_map[VERBATIM_METAPOST] = "VERBATIM_METAPOST";
3067
3068 name_map[LET] = "LET";
3069
3070 @q **** (4) Types for messages. @>
3071 @ Types for messages.
3072
3073 \LOG
3074 \initials{LDF 2005.05.12.}
3075 Added this section, with |name_map| entries for |MESSAGE| and |ERRMESSAGE|.
3076
3077 \initials{LDF 2005.05.12.}
3078 Added |name_map| entry for |MEDIATE|.
3079 \ENDLOG
3080
3081 @<Define functions@>=
3082
3083 name_map[MESSAGE] = "MESSAGE";
3084 name_map[ERRMESSAGE] = "ERRMESSAGE";
3085 name_map[PAUSE] = "PAUSE";
3086 name_map[MEDIATE] = "MEDIATE";
3087
3088
3089
3090 @q **** (4) Types for |Focuses|. @>
3091 @ Types for |Focuses|.
3092
3093 \LOG
3094 \initials{LDF 2005.05.12.}
3095 |WITH_POSITION|, |WITH_DIRECTION|, |WITH_DISTANCE|, |WITH_ANGLE|,
3096 |WITH_AXIS|, |X_AXIS|, |Y_AXIS|, and |Z_AXIS|.
3097
3098 \initials{LDF 2005.05.12.}
3099 |PARALLEL_X_Y|, |PARALLEL_X_Z|, |PARALLEL_Z_Y|, |AXONOMETRIC|,
3100 |ISOMETRIC|, and |SUPPRESS|.
3101 \ENDLOG
3102
3103
3104 \ENDLOG
3105
3106 @<Define functions@>=
3107 name_map[WITH_POSITION] = "WITH_POSITION";
3108 name_map[WITH_DIRECTION] = "WITH_DIRECTION";
3109 name_map[WITH_DISTANCE] = "WITH_DISTANCE";
3110 name_map[WITH_ANGLE] = "WITH_ANGLE";
3111 name_map[WITH_AXIS] = "WITH_AXIS";
3112 name_map[X_AXIS] = "X_AXIS";
3113 name_map[Y_AXIS] = "Y_AXIS";
3114 name_map[Z_AXIS] = "Z_AXIS";
3115
3116
3117 @q **** (4) Types for modifying |Shapes|.@>
3118 @ Types for modifying |Shapes|.
3119 \initials{LDF 2005.05.12.}
3120
3121 \LOG
3122 \initials{LDF 2005.05.12.}
3123 Added this section with a
3124 |name_map| entry for |CLEAR_CONNECTORS|.
3125 \ENDLOG
3126
3127 @<Define functions@>=
3128
3129 name_map[CLEAR_CONNECTORS] = "CLEAR_CONNECTORS";
3130
3131 @q **** (4) Types for figures. @>
3132 @ Types for figures.
3133
3134 \LOG
3135 \initials{LDF 2005.05.12.}
3136 Added this section, with |name_map| entries for |BEGINFIG|
3137 and |ENDFIG|.
3138 \ENDLOG
3139
3140 @<Define functions@>=
3141
3142 name_map[BEGINFIG] = "BEGINFIG";
3143 name_map[ENDFIG] = "ENDFIG";
3144
3145 @q **** (4) Types for outputting |Pictures|. @>
3146 @*3 Types for outputting |Pictures|.
3147
3148 \LOG
3149 \initials{LDF 2005.05.12.}
3150
3151 \initials{LDF 2005.05.12.}
3152 |NO_SORT|, |MAX_Z_SORT|, |MIN_Z_SORT|, |MEAN_Z_SORT|,
3153 |WITH_MIN_X_PROJ|, |WITH_MAX_X_PROJ|,
3154 |WITH_MIN_Y_PROJ|, |WITH_MAX_Y_PROJ|,
3155 |WITH_MIN_Z_PROJ|, and |WITH_MAX_Z_PROJ|.
3156
3157 \initials{LDF 2005.05.12.}
3158 Changed |WITH_MIN_X_PROJ| to |MIN_Y_PROJ|. Did the same for
3159 |MAX_X_PROJ|, |MIN_Y_PROJ|, etc.
3160
3161 \initials{LDF 2005.05.12.}
3162 Added |name_map| entry for |CLEAR|.
3163
3164 \initials{LDF 2005.05.12.}
3165 Added |name_map| entries for |WITH_SURFACE_HIDING|
3166 and |WITHOUT_SURFACE_HIDING|.
3167 \ENDLOG
3168
3169
3170 @<Define functions@>=
3171
3172 name_map[OUTPUT] = "OUTPUT";
3173 name_map[CLEAR] = "CLEAR";
3174
3175 name_map[WITH_FOCUS] = "WITH_FOCUS";
3176 name_map[WITH_PROJECTION] = "WITH_PROJECTION";
3177 name_map[WITH_FACTOR] = "WITH_FACTOR";
3178
3179 name_map[PERSPECTIVE] = "PERSPECTIVE";
3180 name_map[PARALLEL_X_Y] = "PARALLEL_X_Y";
3181 name_map[PARALLEL_X_Z] = "PARALLEL_X_Z";
3182 name_map[PARALLEL_Z_Y] = "PARALLEL_Z_Y";
3183 name_map[AXONOMETRIC] = "AXONOMETRIC";
3184 name_map[ISOMETRIC] = "ISOMETRIC";
3185 name_map[SUPPRESS] = "SUPPRESS";
3186
3187
3188 name_map[NO_SORT] = "NO_SORT";
3189 name_map[MAX_Z_SORT] = "MAX_Z_SORT";
3190 name_map[MIN_Z_SORT] = "MIN_Z_SORT";
3191 name_map[MEAN_Z_SORT] = "MEAN_Z_SORT";
3192 name_map[MIN_X_PROJ] = "MIN_X_PROJ";
3193 name_map[MAX_X_PROJ] = "MAX_X_PROJ";
3194 name_map[MIN_Y_PROJ] = "MIN_Y_PROJ";
3195 name_map[MAX_Y_PROJ] = "MAX_Y_PROJ";
3196 name_map[MIN_Z_PROJ] = "MIN_Z_PROJ";
3197 name_map[MAX_Z_PROJ] = "MAX_Z_PROJ";
3198
3199 name_map[WITH_SURFACE_HIDING] = "WITH_SURFACE_HIDING";
3200
3201 name_map[WITHOUT_SURFACE_HIDING] = "WITHOUT_SURFACE_HIDING";
3202
3203 @q **** (4) Types for projections.@>
3204 @*3 Types for projections.
3205 \initials{LDF 2005.05.12.}
3206
3207 \LOG
3208 \initials{LDF 2005.05.12.}
3209 Added this section with the entry for |PROJECT|.
3210
3211 \initials{LDF 2005.05.12.}
3212 Added the entry for |PROJECTED|.
3213
3214 \initials{LDF 2005.05.12.}
3215 Added the entry for |WITH_Z|.
3216 \ENDLOG
3217
3218 @<Define functions@>=
3219
3220 name_map[PROJECT] = "PROJECT";
3221 name_map[PROJECTED] = "PROJECTED";
3222 name_map[WITH_Z] = "WITH_Z";
3223
3224 @q **** (4) Types for showing objects referenced by variables. @>
3225 @ Types for showing objects referenced by variables.
3226
3227 \LOG
3228 \initials{LDF 2005.05.12.}
3229 Added this section with |name_map| entry for |SHOW|.
3230
3231
3232 \ENDLOG
3233
3234 @<Define functions@>=
3235
3236 name_map[SHOW] = "SHOW";
3237
3238
3239
3240 @q **** (4) Types for intersections. @>
3241 @ Types for intersections.
3242
3243 \LOG
3244 \initials{LDF 2005.05.12.}
3245 Added this section. Creating |name_map| entries for
3246 |INTERSECTION_POINT| and |INTERSECTION_POINTS|.
3247 \ENDLOG
3248
3249
3250 @<Define functions@>=
3251
3252 name_map[INTERSECTION_POINT] = "INTERSECTION_POINT";
3253 name_map[INTERSECTION_POINTS] = "INTERSECTION_POINTS";
3254
3255 @q **** (4) Types for conditionals. @>
3256 @ Types for conditionals.
3257
3258 \LOG
3259 \initials{LDF 2005.05.12.}
3260 Added this section with |name_map| entries for
3261 |IF|, |ELSE|, |ELSEIF|, and |FI|.
3262 \ENDLOG
3263
3264 @<Define functions@>=
3265
3266 name_map[IF] = "IF";
3267 name_map[ELSE] = "ELSE";
3268 name_map[ELSEIF] = "ELSEIF";
3269 name_map[FI] = "FI";
3270
3271
3272 @q **** (4) Types for loops. @>
3273 @ Types for loops.
3274
3275 \LOG
3276 \initials{LDF 2005.05.12.}
3277 Added this section with |name_map| entries for
3278 |FOR|, |FORSUFFIXES|, |FOREVER|, |EXITIF|, |STEP|, |UNTIL|,
3279 and |ENDFOR|.
3280
3281 \initials{LDF 2005.05.12.}
3282 Added |name_map| entry for |END_LOOP_PREFIX|.
3283
3284 \initials{LDF 2005.05.12.}
3285 Removed |name_map| entry for |END_LOOP_PREFIX|.
3286
3287 \initials{LDF 2005.05.12.}
3288 Changed |EXITIF| to |EXIT_IF| and added |EXIT_UNLESS|.
3289
3290 \initials{LDF 2005.05.12.}
3291 Changed |FORSUFFIXES| to |FOR_SUFFIXES| and |ENDFOR| to |END_FOR|.
3292
3293 \initials{LDF 2005.05.12.}
3294 Added |name_map| entries for |UPTO|, |DOWNTO|,
3295 and |FOR_SUFFIXES_INTERNAL|.
3296
3297 \initials{LDF 2005.05.12.}
3298 Added |name_map| entry for |FOR_SUFFIXES_INTERNAL_START|.
3299 \ENDLOG
3300
3301 @<Define functions@>=
3302
3303 name_map[FOR] = "FOR";
3304 name_map[FOR_SUFFIXES] = "FOR_SUFFIXES";
3305 name_map[FOR_SUFFIXES_INTERNAL] = "FOR_SUFFIXES_INTERNAL";
3306 name_map[FOREVER] = "FOREVER";
3307 name_map[EXIT_IF] = "EXIT_IF";
3308 name_map[EXIT_UNLESS] = "EXIT_UNLESS";
3309 name_map[STEP] = "STEP";
3310 name_map[UNTIL] = "UNTIL";
3311 name_map[END_FOR] = "END_FOR";
3312 name_map[UPTO] = "UPTO";
3313 name_map[DOWNTO] = "DOWNTO";
3314
3315
3316 @q **** (4) Types for groups. @>
3317 @*3 Types for groups.
3318
3319 \LOG
3320 \initials{LDF 2005.05.12.}
3321 Added this section with |name_map| entries for
3322 |BEGIN_GROUP|, |END_GROUP|, and |SAVE|.
3323 \ENDLOG
3324
3325 @<Define functions@>=
3326
3327 name_map[BEGIN_GROUP] = "BEGIN_GROUP";
3328 name_map[END_GROUP] = "END_GROUP";
3329 name_map[SAVE] = "SAVE";
3330
3331 @q **** (4) Types for transformations.@>
3332 @*3 Types for transformations.
3333 \initials{LDF 2005.05.12.}
3334
3335 \LOG
3336 \initials{LDF 2005.05.12.}
3337 Added this section with |name_map| entries for |INVERSE|
3338 and |INVERT|.
3339 \ENDLOG
3340
3341 @<Define functions@>=
3342
3343 name_map[INVERSE] = "INVERSE";
3344 name_map[INVERT] = "INVERT";
3345
3346 @q **** (4) Types for extracting sub-objects.@>
3347 @*3 Types for extracting sub-objects.
3348 \initials{LDF 2005.05.12.}
3349
3350 \LOG
3351 \initials{LDF 2005.05.12.}
3352 Added this section with |name_map| entries for
3353 |GET_TRANSFORM|,
3354 |GET_POINT|,
3355 |GET_POINTS|,
3356 |GET_CONNECTOR|,
3357 |GET_CONNECTORS|,
3358 |GET_PEN|,
3359 |GET_DASH_PATTERN|,
3360 |GET_DASH_PATTERN|,
3361 |GET_DRAWDOT_COLOR|,
3362 |GET_DRAW_COLOR|,
3363 |GET_FILL_COLOR|,
3364 |GET_COLORS|,
3365 |GET_CIRCLE|,
3366 |GET_ELLIPSE|,
3367 |GET_PATH|,
3368 |GET_RECTANGLE|, and
3369 |GET_REG_POLYGON|.
3370
3371 \initials{LDF 2005.05.12.}
3372 Added |name_map| entry for |GET_CENTER|.
3373
3374 \initials{LDF 2005.05.12.}
3375 Added |name_map| entries for |HALF|, |QUARTER|, and |SEGMENT|.
3376
3377 \initials{LDF 2005.05.12.}
3378 Added |name_map| entries for |WITH_START|, |WITH_END|, |WITH_SIZE|,
3379 and |WITH_FRACTION|.
3380
3381 \initials{LDF 2005.05.12.}
3382 Added |name_map| entry for |WITH_CLOSED|.
3383
3384 \initials{LDF 2005.05.12.}
3385 Removed the |name_map| entry for |GET_DRAWDOT_COLOR|.
3386 \ENDLOG
3387
3388 @q ***** (5) Code.@>
3389
3390 @<Define functions@>=
3391
3392 name_map[GET_TRANSFORM] = "GET_TRANSFORM";
3393 name_map[GET_POINT] = "GET_POINT";
3394 name_map[GET_POINTS] = "GET_POINTS";
3395 name_map[GET_CONNECTOR] = "GET_CONNECTOR";
3396 name_map[GET_CONNECTORS] = "GET_CONNECTORS";
3397 name_map[GET_PEN] = "GET_PEN";
3398 name_map[GET_DASH_PATTERN] = "GET_DASH_PATTERN";
3399 name_map[GET_DASH_PATTERN] = "GET_DASH_PATTERN";
3400 name_map[GET_DRAW_COLOR] = "GET_DRAW_COLOR";
3401 name_map[GET_FILL_COLOR] = "GET_FILL_COLOR";
3402 name_map[GET_COLORS] = "GET_COLORS";
3403 name_map[GET_CENTER] = "GET_CENTER";
3404 name_map[GET_CIRCLE] = "GET_CIRCLE";
3405 name_map[GET_ELLIPSE] = "GET_ELLIPSE";
3406 name_map[GET_PATH] = "GET_PATH";
3407 name_map[GET_RECTANGLE] = "GET_RECTANGLE";
3408 name_map[GET_REG_POLYGON] = "GET_REG_POLYGON";
3409
3410 name_map[HALF] = "HALF";
3411 name_map[QUARTER] = "QUARTER";
3412 name_map[SEGMENT] = "SEGMENT";
3413
3414 name_map[WITH_START] = "WITH_START";
3415 name_map[WITH_END] = "WITH_END";
3416 name_map[WITH_SIZE] = "WITH_SIZE";
3417 name_map[WITH_FRACTION] = "WITH_FRACTION";
3418 name_map[WITH_CLOSED] = "WITH_CLOSED";
3419
3420
3421 @q **** (4) Types for macros.@>
3422 @*3 Types for macros.
3423 \initials{LDF 2005.05.12.}
3424
3425 \LOG
3426 \initials{LDF 2005.05.12.}
3427 Added this section with entries for
3428 |MACRO_TYPE|,
3429 |VARDEF_TYPE|,
3430 |PRIMARYDEF_TYPE|,
3431 |SECONDARYDEF_TYPE|,
3432 |TERTIARYDEF_TYPE|,
3433 |DEFMACRO|,
3434 |VARDEF|,
3435 |PRIMARYDEF|,
3436 |SECONDARYDEF|,
3437 |TERTIARYDEF|,
3438 |ENDDEF|,
3439 |SUFFIX|,
3440 |TEXT|, and
3441 |EXPR|.
3442
3443 \initials{LDF 2005.05.12.}
3444 Changed |DEFMACRO| to |DEF|.
3445
3446 \initials{LDF 2005.05.12.}
3447 Added entry for |DEFUN|.
3448
3449 \initials{LDF 2005.05.12.}
3450 Added entries for
3451 |MACRO_VECTOR|,
3452 |PRIMARYDEF_VECTOR|,
3453 |SECONDARYDEF_VECTOR|,
3454 |TERTIARYDEF_VECTOR|,
3455 |MACRO_DECLARATOR|,
3456 |PRIMARYDEF_DECLARATOR|,
3457 |SECONDARYDEF_DECLARATOR|,
3458 |TERTIARYDEF_DECLARATOR|,
3459 |MACRO_VECTOR_DECLARATOR|,
3460 |PRIMARYDEF_VECTOR_DECLARATOR|,
3461 |SECONDARYDEF_VECTOR_DECLARATOR|,
3462 and
3463 |TERTIARYDEF_VECTOR_DECLARATOR|.
3464
3465 \initials{LDF 2005.05.12.}
3466 Added entry for |DEF| again.
3467 \ENDLOG
3468
3469 @q ***** (5) Code.@>
3470
3471 @<Define functions@>=
3472
3473 name_map[MACRO] = "MACRO";
3474 name_map[PRIMARYDEF] = "PRIMARYDEF";
3475 name_map[SECONDARYDEF] = "SECONDARYDEF";
3476 name_map[TERTIARYDEF] = "TERTIARYDEF";
3477
3478
3479 name_map[MACRO_VECTOR] = "MACRO_VECTOR";
3480 name_map[PRIMARYDEF_VECTOR] = "PRIMARYDEF_VECTOR";
3481 name_map[SECONDARYDEF_VECTOR] = "SECONDARYDEF_VECTOR";
3482 name_map[TERTIARYDEF_VECTOR] = "TERTIARYDEF_VECTOR";
3483
3484
3485 name_map[MACRO_DECLARATOR] = "MACRO_DECLARATOR";
3486 name_map[PRIMARYDEF_DECLARATOR] = "PRIMARYDEF_DECLARATOR";
3487 name_map[SECONDARYDEF_DECLARATOR] = "SECONDARYDEF_DECLARATOR";
3488 name_map[TERTIARYDEF_DECLARATOR] = "TERTIARYDEF_DECLARATOR";
3489
3490
3491 name_map[MACRO_VECTOR_DECLARATOR] = "MACRO_VECTOR_DECLARATOR";
3492 name_map[PRIMARYDEF_VECTOR_DECLARATOR] = "PRIMARYDEF_VECTOR_DECLARATOR";
3493 name_map[SECONDARYDEF_VECTOR_DECLARATOR] = "SECONDARYDEF_VECTOR_DECLARATOR";
3494 name_map[TERTIARYDEF_VECTOR_DECLARATOR] = "TERTIARYDEF_VECTOR_DECLARATOR";
3495
3496
3497
3498 name_map[DEF] = "DEF";
3499 name_map[ENDDEF] = "ENDDEF";
3500
3501 name_map[DEFUN] = "DEFUN";
3502
3503 @q **** (4) Types for enclosed and enclosing figures.@>
3504 @*3 Types for enclosed and enclosing figures.
3505 \initials{LDF 2005.05.12.}
3506
3507 \LOG
3508 \initials{LDF 2005.05.12.}
3509 Added this section with entries for
3510 |IN_CIRCLE|,
3511 |OUT_CIRCLE|,
3512 |IN_ELLIPSE|,
3513 |OUT_ELLIPSE|,
3514 |IN_RECTANGLE|,
3515 |OUT_RECTANGLE|,
3516 |IN_SPHERE|,
3517 |OUT_SPHERE|,
3518 |IN_ELLIPSOID|,
3519 |OUT_ELLIPSOID|,
3520 |IN_CUBOID|, and
3521 |OUT_CUBOID|.
3522 \ENDLOG
3523
3524 @<Define functions@>=
3525
3526 name_map[IN_CIRCLE] = "IN_CIRCLE";
3527 name_map[OUT_CIRCLE] = "OUT_CIRCLE";
3528 name_map[IN_ELLIPSE] = "IN_ELLIPSE";
3529 name_map[OUT_ELLIPSE] = "OUT_ELLIPSE";
3530 name_map[IN_RECTANGLE] = "IN_RECTANGLE";
3531 name_map[OUT_RECTANGLE] = "OUT_RECTANGLE";
3532 name_map[IN_SPHERE] = "IN_SPHERE";
3533 name_map[OUT_SPHERE] = "OUT_SPHERE";
3534 name_map[IN_ELLIPSOID] = "IN_ELLIPSOID";
3535 name_map[OUT_ELLIPSOID] = "OUT_ELLIPSOID";
3536 name_map[IN_CUBOID] = "IN_CUBOID";
3537 name_map[OUT_CUBOID] = "OUT_CUBOID";
3538
3539
3540 @q **** (4) Types for vector-type objects.@>
3541 @*3 Types for vector-type objects.
3542 \initials{LDF 2005.05.12.}
3543
3544 \LOG
3545 \initials{LDF 2005.05.12.}
3546 Added this section with entries for
3547 |PUSH_BACK| and |POP_BACK|.
3548
3549 \initials{LDF 2005.05.12.}
3550 Added entry for |LAST|.
3551 \ENDLOG
3552
3553 @<Define functions@>=
3554
3555
3556 name_map[PUSH_BACK] = "PUSH_BACK";
3557 name_map[POP_BACK] = "POP_BACK";
3558
3559 name_map[LAST] = "LAST";
3560
3561 @q **** (4) Types for |triangles|.@>
3562 @*3 Types for {\bf triangles}.
3563 \initials{LDF 2005.05.12.}
3564
3565 \LOG
3566 \initials{LDF 2005.05.12.}
3567 Added this section with entries for
3568 |WITH_SSS|, |WITH_SAS|, |WITH_SAA|, |WITH_ASA|,
3569 |WITH_SSA_B|, |WITH_SSA_L|, and |WITH_SSA_S|.
3570
3571 \initials{LDF 2005.05.12.}
3572 Added entry for |WITH_SSA_A|.
3573 I'd forgotten it before.
3574
3575 \initials{LDF 2005.05.12.}
3576 Removed the entries for |WITH_SSA_A| and |WITH_SSA_B|.
3577
3578 \initials{LDF 2005.05.12.}
3579 Added entry for |WITH_POINTS|.
3580 \ENDLOG
3581
3582 @<Define functions@>=
3583
3584 name_map[WITH_SSS] = "WITH_SSS";
3585 name_map[WITH_SAS] = "WITH_SAS";
3586 name_map[WITH_SAA] = "WITH_SAA";
3587 name_map[WITH_ASA] = "WITH_ASA";
3588 name_map[WITH_SSA_L] = "WITH_SSA_L";
3589 name_map[WITH_SSA_S] = "WITH_SSA_S";
3590
3591 name_map[WITH_POINTS] = "WITH_POINTS";
3592
3593 @q **** (4) Types for surface hiding.@>
3594 @*3 Types for surface hiding.
3595 \initials{LDF 2005.05.12.}
3596
3597 \LOG
3598 \initials{LDF 2005.05.12.}
3599 Added this section with entries for |DECOMPOSE|
3600 and |WITH_LEVEL|.
3601
3602 \initials{LDF 2005.05.12.}
3603 Added the entry for |WITH_RECTANGLES|.
3604 \ENDLOG
3605
3606 @q **** (4).@>
3607
3608 @<Define functions@>=
3609
3610 name_map[DECOMPOSE] = "DECOMPOSE";
3611 name_map[WITH_LEVEL] = "WITH_LEVEL";
3612 name_map[WITH_RECTANGLES] = "WITH_RECTANGLES";
3613
3614
3615 @q **** (4) Types for |nurbs|.@>
3616 @*3 Types for |nurbs|.
3617 \initials{LDF 2005.05.12.}
3618
3619 \LOG
3620 \initials{LDF 2005.05.12.}
3621 Added this section with entries for
3622 |KNOT|, |WEIGHT|, |WITH_KNOTS|, and |WITH_WEIGHTS|.
3623
3624 \initials{LDF 2005.05.12.}
3625 Added entries for |WITH_TIME_PARAMETER|,
3626 |WITH_ORDER|, and |GENERATE|.
3627
3628 \initials{LDF 2005.05.12.}
3629 Changed |WITH_ORDER| to |WITH_POWER|.
3630 \ENDLOG
3631
3632 @q **** (4) Code.@>
3633
3634 @<Define functions@>=
3635
3636 name_map[KNOT] = "KNOT";
3637 name_map[WEIGHT] = "WEIGHT";
3638 name_map[WITH_KNOTS] = "WITH_KNOTS";
3639 name_map[WITH_WEIGHTS] = "WITH_WEIGHTS";
3640
3641 name_map[WITH_TIME_PARAMETER] = "WITH_TIME_PARAMETER";
3642 name_map[WITH_POWER] = "WITH_POWER";
3643
3644 name_map[GENERATE] = "GENERATE";
3645
3646 @q **** (4) Types for |origami_figures|.@>
3647 @*3 Types for |origami_figures|.
3648 \initials{LDF 2005.05.12.}
3649
3650 \LOG
3651 \initials{LDF 2005.05.12.}
3652 Added this section. It's currently empty.
3653 \ENDLOG
3654
3655 @q **** (4) Code.@>
3656
3657 @<Define functions@>=
3658
3659
3660 @q **** (4).@>
3661 @
3662 @<Define functions@>=
3663
3664
3665 return 0;
3666
3667 } /* End of |initialize_name_map()| definition. */
3668
3669
3670
3671
3672
3673 @q * (1) Additional C++ code. @>
3674 @* Additional \CPLUSPLUS/ code.
3675
3676 @q ** (2) yylex() declaration.@>
3677 @*1 {\it yylex\/}() declaration.
3678 \initials{LDF 2005.05.12.}
3679
3680 This function is a layer between the low-level
3681 scanning performed by |sub_yylex()| and |yyparse()|.
3682 It's defined in \filename{scan.web}.
3683 \initials{LDF 2005.05.12.}
3684
3685 \LOG
3686 Added this function.
3687 \initials{LDF 2005.05.12.}
3688 \ENDLOG
3689
3690 @q *** Declaration. @>
3691
3692 @<Declare functions@>=
3693 int
3694 yylex(YYSTYPE* value,
3695 YYLTYPE* location,
3696 void* parameter);
3697
3698
3699 @q ** yyerror() @>
3700 @ {\it yyerror\/}().
3701 @<Declare functions@>=
3702 int
3703 yyerror(char* message);@/
3704
3705 @
3706 @<Define functions@>=
3707 int
3708 yyerror(char* message)
3709 {
3710 cerr << "ERROR! In yyparse(): " << message << endl << flush;
3711 return 0;
3712 }
3713
3714 @q ** Set |yydebug|. @>
3715 @ Set {\bf yydebug}.
3716
3717 \LOG
3718 \initials{LDF 2005.05.12.}
3719 \ENDLOG
3720
3721 @<Declare functions@>=
3722 void
3723 set_yydebug(int i = 1);
3724
3725 @
3726 @<Define functions@>=
3727 void
3728 set_yydebug(int i)
3729 {
3730 yydebug = i;
3731 return;
3732 }
3733
3734
3735 @q ** Unset |yydebug|. @>
3736 @ Unset {\bf yydebug}.
3737
3738 \LOG
3739 \initials{LDF 2005.05.12.}
3740 \ENDLOG
3741
3742 @<Declare functions@>=
3743 inline
3744 void
3745 unset_yydebug(void)
3746 {
3747 return set_yydebug(0);
3748 }
3749
3750
3751 @q ** Garbage. @>
3752 @ Garbage. Just in case it's not used anywhere else.
3753 \initials{LDF 2005.05.12.}
3754
3755 @<Garbage@>=
3756
3757
3758 @q * (1) Putting the parser together.@>
3759 @* Putting the parser together.
3760
3761 @q ** (2) This is what's compiled.@>
3762
3763 @ This is what's compiled.
3764 \initials{LDF 2005.05.12.}
3765
3766 @c
3767 @=%{@>
3768 @<Include files@>@;
3769 @<Using declarations@>@;
3770 @<Declare location type@>@;
3771 @<Preprocessor macros not only for the parser@>@;
3772 @<Preprocessor macros for the parser only@>@;
3773 @<Declare |name_map| and |type_name_map|@>@;
3774 @=%}@>
3775 @<Bison declarations@>@;
3776 @<Union declaration for |YYSTYPE|@>@;
3777 @<Token and precedence declarations@>@;
3778 @<Type declarations for non-terminal symbols@>@;
3779
3780 @=%{@>
3781 @<Constants in |namespace Scan_Parse|@>@;
3782 @<Declare functions@>@;
3783 @=%}@>
3784
3785 \initials{LDF 2005.05.12.}
3786 @<Define rules@>@;
3787 @=%%@> /* Introduces ``Additional C++ code'' section.
3788 \initials{LDF 2005.05.12.}
3789 @<Define |LDF_LOCATION_TYPE| functions@>@;
3790 @<Define functions@>@;
3791
3792 #if 0
3793 @<Garbage@>@;
3794 #endif
3795
3796 @q ** (2) This is what's written to `parser.h'.@>
3797 @ This is what's written to \filename{parser.h}.
3798 update_list
3799
3800 It's necessary to write the declaration of |LDF_LOCATION_TYPE| to
3801 \filename{parser.h}, because Bison does not write it to
3802 \filename{parser.h++}.
3803 \initials{LDF 2005.05.12.}
3804
3805 @(parser.h@>=
3806
3807 #undef YYLTYPE
3808 @<Declare location type@>@;
3809 @<Preprocessor macros not only for the parser@>@;
3810 @<|extern| declarations in |namespace Scan_Parse|@>@;
3811 @<|extern| declaration of |name_map| and |type_name_map|@>@;
3812 @<Declare functions@>@;
3813
3814
3815 @q * Emacs-Lisp code for use in indirect buffers when using the @>
3816 @q GNU Emacs editor. The local variable list is not evaluated when an @>
3817 @q indirect buffer is visited, so it's necessary to evaluate the @>
3818 @q following s-expression in order to use the facilities normally @>
3819 @q accessed via the local variables list. @>
3820 @q \initials{LDF 2004.02.12}. @>
3821 @q (progn (cweb-mode) (outline-minor-mode t) (setq fill-column 80)) @>
3822
3823
3824
3825 @q Local Variables: @>
3826 @q mode:CWEB @>
3827 @q eval:(outline-minor-mode t) @>
3828 @q abbrev-file-name:"~/.abbrev_defs" @>
3829 @q eval:(read-abbrev-file) @>
3830 @q fill-column:80 @>
3831 @q run-cweave-on-file:"3DLDFprg.web" @>
3832 @q End: @>

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26