w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

scanst.c
Go to the documentation of this file.
1 /*
2  *
3  * This file is part of
4  * MakeIndex - A formatter and format independent index processor
5  *
6  * Copyright (C) 1998-2011 by the TeX Live project.
7  * Copyright (C) 1989 by Chen & Harrison International Systems, Inc.
8  * Copyright (C) 1988 by Olivetti Research Center
9  * Copyright (C) 1987 by Regents of the University of California
10  *
11  * Author:
12  * Pehong Chen
13  * Chen & Harrison International Systems, Inc.
14  * Palo Alto, California
15  * USA
16  *
17  * Contributors:
18  * Please refer to the CONTRIB file that comes with this release
19  * for a list of people who have contributed to this and/or previous
20  * release(s) of MakeIndex.
21  *
22  * All rights reserved by the copyright holders. See the copyright
23  * notice distributed with this software for a complete description of
24  * the conditions under which it is made available.
25  *
26  */
27 
28 #include "mkind.h"
29 #include "scanst.h"
30 
31 static int sty_lc = 0; /* line count */
32 static int sty_tc = 0; /* total count */
33 static int sty_ec = 0; /* error count */
34 
45 
50 
54 
57 
63 
66 
69 
73 
77 
79 char delim_n[ARRAY_MAX] = DELIM_DEF; /* page number separator */
80 char delim_r[ARRAY_MAX] = DELIMR_DEF;/* page range designator */
81 char delim_t[ARRAY_MAX] = DELIMT_DEF;/* page list terminating delimiter */
82 
83 char suffix_2p[ARRAY_MAX] = ""; /* suffix for two page ranges */
84 char suffix_3p[ARRAY_MAX] = ""; /* suffix for three page ranges */
85 char suffix_mp[ARRAY_MAX] = ""; /* suffix for multiple page ranges */
86 
87 char encap_p[ARRAY_MAX] = ENCAP0_DEF;/* encapsulator prefix */
88 char encap_i[ARRAY_MAX] = ENCAP1_DEF;/* encapsulator infix */
89 char encap_s[ARRAY_MAX] = ENCAP2_DEF;/* encapsulator postfix */
90 
92 
95 
98 0,
103 };
105 
106 static int put_dot;
107 
108 static int count_lfd (char *str);
109 static int next_nonblank (void);
110 static int process_precedence (void);
111 static int scan_char (char *c);
112 static int scan_spec (char *spec);
113 static int scan_string (char *str);
114 
115 void
116 scan_sty(void)
117 {
118  char spec[STRING_MAX];
119  int tmp;
120 
121  MESSAGE1("Scanning style file %s", sty_fn);
122  while (scan_spec(spec)) {
123  sty_tc++;
124  put_dot = TRUE;
125 
126  /* output pre- and post-ambles */
127  if (STREQ(spec, PREAMBLE)) {
130  } else if (STREQ(spec, POSTAMBLE)) {
133  } else if (STREQ(spec, GROUP_SKIP)) {
136  } else if (STREQ(spec, HEADINGS_FLAG)) {
138  } else if (STREQ(spec, HEADING_PRE)) {
141  } else if (STREQ(spec, HEADING_SUF)) {
144  } else if (STREQ(spec, SYMHEAD_POS)) {
146  } else if (STREQ(spec, SYMHEAD_NEG)) {
148  } else if (STREQ(spec, NUMHEAD_POS)) {
150  } else if (STREQ(spec, NUMHEAD_NEG)) {
152  } else if (STREQ(spec, SETPAGEOPEN)) {
155  } else if (STREQ(spec, SETPAGECLOSE)) {
158  /* output index item commands */
159  } else if (STREQ(spec, ITEM_0)) {
160  (void) scan_string(item_r[0]);
161  ilen_r[0] = count_lfd(item_r[0]);
162  } else if (STREQ(spec, ITEM_1)) {
163  (void) scan_string(item_r[1]);
164  ilen_r[1] = count_lfd(item_r[1]);
165  } else if (STREQ(spec, ITEM_2)) {
166  (void) scan_string(item_r[2]);
167  ilen_r[2] = count_lfd(item_r[2]);
168  } else if (STREQ(spec, ITEM_01)) {
169  (void) scan_string(item_u[1]);
170  ilen_u[1] = count_lfd(item_u[1]);
171  } else if (STREQ(spec, ITEM_12)) {
172  (void) scan_string(item_u[2]);
173  ilen_u[2] = count_lfd(item_u[2]);
174  } else if (STREQ(spec, ITEM_x1)) {
175  (void) scan_string(item_x[1]);
176  ilen_x[1] = count_lfd(item_x[1]);
177  } else if (STREQ(spec, ITEM_x2)) {
178  (void) scan_string(item_x[2]);
179  ilen_x[2] = count_lfd(item_x[2]);
180  /* output encapsulators */
181  } else if (STREQ(spec, ENCAP_0))
183  else if (STREQ(spec, ENCAP_1))
184  (void) scan_string(encap_i);
185  else if (STREQ(spec, ENCAP_2))
187  /* output delimiters */
188  else if (STREQ(spec, DELIM_0))
189  (void) scan_string(delim_p[0]);
190  else if (STREQ(spec, DELIM_1))
191  (void) scan_string(delim_p[1]);
192  else if (STREQ(spec, DELIM_2))
193  (void) scan_string(delim_p[2]);
194  else if (STREQ(spec, DELIM_N))
196  else if (STREQ(spec, DELIM_R))
197  (void) scan_string(delim_r);
198  else if (STREQ(spec, DELIM_T))
200  else if (STREQ(spec, SUFFIX_2P))
201  (void) scan_string(suffix_2p);
202  else if (STREQ(spec, SUFFIX_3P))
204  else if (STREQ(spec, SUFFIX_MP))
205  (void) scan_string(suffix_mp);
206  /* output line width */
207  else if (STREQ(spec, LINEMAX)) {
208  SCAN_NO(&tmp);
209  if (tmp > 0)
210  linemax = tmp;
211  else
212  STY_ERROR2("%s must be positive (got %d)",
213  LINEMAX, tmp);
214  /* output line indentation length */
215  } else if (STREQ(spec, INDENT_LENGTH)) {
216  SCAN_NO(&tmp);
217  if (tmp >= 0)
218  indent_length = tmp;
219  else
220  STY_ERROR2("%s must be nonnegative (got %d)",
221  INDENT_LENGTH, tmp);
222  /* output line indentation */
223  } else if (STREQ(spec, INDENT_SPACE)) {
225  /* composite page delimiter */
226  } else if (STREQ(spec, COMPOSITOR)) {
228  /* page precedence */
229  } else if (STREQ(spec, PRECEDENCE)) {
232  /* index input format */
233  } else if (STREQ(spec, KEYWORD))
234  (void) scan_string(idx_keyword);
235  else if (STREQ(spec, AOPEN))
237  else if (STREQ(spec, ACLOSE))
238  (void) scan_char(&idx_aclose);
239  else if (STREQ(spec, LEVEL))
241  else if (STREQ(spec, ROPEN))
242  (void) scan_char(&idx_ropen);
243  else if (STREQ(spec, RCLOSE))
245  else if (STREQ(spec, QUOTE))
246  (void) scan_char(&idx_quote);
247  else if (STREQ(spec, ACTUAL))
249  else if (STREQ(spec, ENCAP))
250  (void) scan_char(&idx_encap);
251  else if (STREQ(spec, ESCAPE))
253  else {
254  (void) next_nonblank();
255  STY_SKIPLINE;
256  STY_ERROR1("Unknown specifier %s.\n", spec);
257  put_dot = FALSE;
258  }
259  if (put_dot) {
260  STY_DOT;
261  }
262  }
263 
264  /* check if quote and escape are distinct */
265  if (idx_quote == idx_escape) {
266  STY_ERROR1(
267  "Quote and escape symbols must be distinct (both `%c' now).\n",
268  idx_quote);
271  }
272  DONE(sty_tc - sty_ec, "attributes redefined", sty_ec, "ignored");
273  CLOSE(sty_fp);
274 }
275 
276 static int
277 scan_spec(char spec[])
278 {
279  int i = 0;
280  int c;
281 
282  while (TRUE)
283  if ((c = next_nonblank()) == -1)
284  return (FALSE);
285  else if (c == COMMENT) {
286  STY_SKIPLINE;
287  } else
288  break;
289 
290  spec[0] = TOLOWER(c);
291  while ((i++ < STRING_MAX) && ((c = GET_CHAR(sty_fp)) != SPC) &&
292  (c != TAB) && (c != LFD) && (c != EOF))
293  spec[i] = TOLOWER(c);
294  if (i < STRING_MAX) {
295  spec[i] = NUL;
296  if (c == EOF) {
297  STY_ERROR1(
298  "No attribute for specifier %s (premature EOF)\n",
299  spec);
300  return (-1);
301  }
302  if (c == LFD)
303  sty_lc++;
304  return (TRUE);
305  } else {
306  STY_ERROR2("Specifier %s too long (max %d).\n",
307  spec, STRING_MAX);
308  return (FALSE);
309  }
310 }
311 
312 
313 static int
315 {
316  int c;
317 
318  while (TRUE) {
319  switch (c = GET_CHAR(sty_fp)) {
320  case EOF:
321  return (-1);
322 
323  case LFD:
324  sty_lc++;
325  case SPC:
326  case TAB:
327  break;
328  default:
329  return (c);
330  }
331  }
332 }
333 
334 
335 static int
337 {
338  char clone[ARRAY_MAX];
339  int i = 0;
340  int c;
341 
342  switch (c = next_nonblank()) {
343  case STR_DELIM:
344  while (TRUE)
345  switch (c = GET_CHAR(sty_fp)) {
346  case EOF:
347  STY_ERROR1("No closing delimiter in %s.\n",
348  clone);
349  return (FALSE);
350  case STR_DELIM:
351  clone[i] = NUL;
352  strcpy(str, clone);
353  return (TRUE);
354  case BSH:
355  switch (c = GET_CHAR(sty_fp)) {
356  case 't':
357  clone[i++] = TAB;
358  break;
359  case 'n':
360  clone[i++] = LFD;
361  break;
362 
363  default:
364  clone[i++] = (char) c;
365  break;
366  }
367  break;
368  default:
369  if (c == LFD)
370  sty_lc++;
371  if (i < ARRAY_MAX)
372  clone[i++] = (char) c;
373  else {
374  STY_SKIPLINE;
375  STY_ERROR2(
376  "Attribute string %s too long (max %d).\n",
377  clone, ARRAY_MAX);
378  return (FALSE);
379  }
380  break;
381  }
382  break;
383  case COMMENT:
384  STY_SKIPLINE;
385  break;
386  default:
387  STY_SKIPLINE;
388  STY_ERROR("No opening delimiter.\n");
389  return (FALSE);
390  }
391  return (TRUE); /* function value no longer used */
392 }
393 
394 
395 static int
396 scan_char(char *c)
397 {
398  int clone;
399 
400  switch (clone = next_nonblank()) {
401  case CHR_DELIM:
402  switch (clone = GET_CHAR(sty_fp)) {
403  case CHR_DELIM:
404  STY_SKIPLINE;
405  STY_ERROR("Premature closing delimiter.\n");
406  return (FALSE);
407  case LFD:
408  sty_lc++;
409  case EOF:
410  STY_ERROR("No character (premature EOF).\n");
411  return (FALSE);
412  case BSH:
413  clone = GET_CHAR(sty_fp);
414  default:
415  if (GET_CHAR(sty_fp) == CHR_DELIM) {
416  *c = (char) clone;
417  return (TRUE);
418  } else {
419  STY_ERROR("No closing delimiter or too many letters.\n");
420  return (FALSE);
421  }
422  }
423  /* break; */ /* NOT REACHED */
424  case COMMENT:
425  STY_SKIPLINE;
426  break;
427  default:
428  STY_SKIPLINE;
429  STY_ERROR("No opening delimiter.\n");
430  return (FALSE);
431  }
432  return (TRUE); /* function value no longer used */
433 }
434 
435 
436 static int
438 {
439  int i = 0;
440  int n = 0;
441 
442  while (str[i] != NUL) {
443  if (str[i] == LFD)
444  n++;
445  i++;
446  }
447  return (n);
448 }
449 
450 
451 static int
453 {
454  int order[PAGETYPE_MAX];
455  int type[PAGETYPE_MAX];
456  int i = 0;
457  int last;
458  int roml = FALSE;
459  int romu = FALSE;
460  int arab = FALSE;
461  int alpl = FALSE;
462  int alpu = FALSE;
463 
464  /* check for llegal specifiers first */
465  while ((i < PAGETYPE_MAX) && (page_prec[i] != NUL)) {
466  switch (page_prec[i]) {
467  case ROMAN_LOWER:
468  if (roml) {
470  } else
471  roml = TRUE;
472  break;
473  case ROMAN_UPPER:
474  if (romu) {
476  } else
477  romu = TRUE;
478  break;
479  case ARABIC:
480  if (arab) {
481  MULTIPLE(ARABIC);
482  } else
483  arab = TRUE;
484  break;
485  case ALPHA_LOWER:
486  if (alpl) {
488  } else
489  alpl = TRUE;
490  break;
491  case ALPHA_UPPER:
492  if (alpu) {
494  } else
495  alpu = TRUE;
496  break;
497  default:
498  STY_SKIPLINE;
499  STY_ERROR1("Unknow type `%c' in page precedence specification.\n",
500  page_prec[i]);
501  return (FALSE);
502  }
503  i++;
504  }
505  if (page_prec[i] != NUL) {
506  STY_SKIPLINE;
507  STY_ERROR("Page precedence specification string too long.\n");
508  return (FALSE);
509  }
510  last = i;
511  switch (page_prec[0]) {
512  case ROMAN_LOWER:
513  order[0] = ROMAN_LOWER_OFFSET;
514  type[0] = ROML;
515  break;
516  case ROMAN_UPPER:
517  order[0] = ROMAN_UPPER_OFFSET;
518  type[0] = ROMU;
519  break;
520  case ARABIC:
521  order[0] = ARABIC_OFFSET;
522  type[0] = ARAB;
523  break;
524  case ALPHA_LOWER:
525  order[0] = ALPHA_LOWER_OFFSET;
526  type[0] = ALPL;
527  break;
528  case ALPHA_UPPER:
529  order[0] = ALPHA_LOWER_OFFSET;
530  type[0] = ALPU;
531  break;
532  }
533 
534  i = 1;
535  while (i < last) {
536  switch (page_prec[i]) {
537  case ROMAN_LOWER:
538  order[i] = order[i - 1] + ROMAN_LOWER_OFFSET;
539  type[i] = ROML;
540  break;
541  case ROMAN_UPPER:
542  order[i] = order[i - 1] + ROMAN_UPPER_OFFSET;
543  type[i] = ROMU;
544  break;
545  case ARABIC:
546  order[i] = order[i - 1] + ARABIC_OFFSET;
547  type[i] = ARAB;
548  break;
549  case ALPHA_LOWER:
550  order[i] = order[i - 1] + ALPHA_LOWER_OFFSET;
551  type[i] = ALPL;
552  break;
553  case ALPHA_UPPER:
554  order[i] = order[i - 1] + ALPHA_LOWER_OFFSET;
555  type[i] = ALPU;
556  break;
557  }
558  i++;
559  }
560 
561  for (i = 0; i < PAGETYPE_MAX; i++) {
562  page_offset[i] = -1;
563  }
564  page_offset[type[0]] = 0;
565  for (i = 1; i < last; i++) {
566  page_offset[type[i]] = order[i - 1];
567  }
568  for (i = 0; i < PAGETYPE_MAX; i++) {
569  if (page_offset[i] == -1) {
570  switch (type[last - 1]) {
571  case ROML:
572  order[last] = order[last - 1] + ROMAN_LOWER_OFFSET;
573  break;
574  case ROMU:
575  order[last] = order[last - 1] + ROMAN_UPPER_OFFSET;
576  break;
577  case ARAB:
578  order[last] = order[last - 1] + ARABIC_OFFSET;
579  break;
580  case ALPL:
581  order[last] = order[last - 1] + ALPHA_LOWER_OFFSET;
582  break;
583  case ALPU:
584  order[last] = order[last - 1] + ALPHA_UPPER_OFFSET;
585  break;
586  }
587  type[last] = i;
588  page_offset[i] = order[last];
589  last++;
590  }
591  }
592  return (TRUE); /* function value no longer used */
593 }
#define QUOTE
Definition: Resource.h:34
#define ESCAPE
Definition: Resource.h:35
#define type(a)
Definition: aptex-macros.h:171
#define n
Definition: t4ht.c:1290
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
#define PREAMBLE
Definition: dd.h:231
#define TOLOWER
Definition: dospecial.c:240
#define STREQ(s, t)
Definition: defs.h:149
char * strcpy()
static void
Definition: fpif.c:118
#define c(n)
Definition: gpos-common.c:150
small capitals from c petite p scientific i
Definition: afcover.h:80
#define DONE
Definition: inflate.c:9
#define EOF
Definition: afmparse.c:59
FILE * sty_fp
Definition: mkind.c:50
char sty_fn[999]
Definition: mkind.c:56
#define GET_CHAR
Definition: mkind.h:228
#define ROMU
Definition: mkind.h:376
#define ROML
Definition: mkind.h:375
#define SPC
Definition: mkind.h:201
#define STRING_MAX
Definition: mkind.h:341
#define LFD
Definition: mkind.h:200
#define ALPL
Definition: mkind.h:378
#define ALPU
Definition: mkind.h:379
#define FIELD_MAX
Definition: mkind.h:317
#define PAGETYPE_MAX
Definition: mkind.h:336
#define MESSAGE1(F, S)
Definition: mkind.h:253
#define LINE_MAX
Definition: mkind.h:326
#define BSH
Definition: mkind.h:204
#define ARRAY_MAX
Definition: mkind.h:314
#define ARAB
Definition: mkind.h:377
#define NUL
Definition: mkind.h:194
#define CLOSE
Definition: pdfspecial.c:1217
static int32_t last
Definition: ppagelist.c:29
static int count_lfd(char *str)
Definition: scanst.c:437
char preamble[1024]
Definition: scanst.c:46
char item_r[3][1024]
Definition: scanst.c:70
char symhead_pos[1024]
Definition: scanst.c:64
int indent_length
Definition: scanst.c:93
static int put_dot
Definition: scanst.c:106
char idx_quote
Definition: scanst.c:41
char idx_ropen
Definition: scanst.c:39
void scan_sty(void)
Definition: scanst.c:116
char symhead_neg[1024]
Definition: scanst.c:65
int ilen_u[3]
Definition: scanst.c:75
static int process_precedence(void)
Definition: scanst.c:452
char item_x[3][1024]
Definition: scanst.c:72
char indent_space[1024]
Definition: scanst.c:94
static int scan_string(char *str)
char delim_t[1024]
Definition: scanst.c:81
static int scan_char(char *c)
Definition: scanst.c:396
char group_skip[1024]
Definition: scanst.c:55
char delim_n[1024]
Definition: scanst.c:79
static char page_prec[1024]
Definition: scanst.c:104
char suffix_2p[1024]
Definition: scanst.c:83
char idx_aopen
Definition: scanst.c:36
int linemax
Definition: scanst.c:91
int headsuflen
Definition: scanst.c:62
char setpage_close[1024]
Definition: scanst.c:52
char heading_pre[1024]
Definition: scanst.c:59
char idx_escape
Definition: scanst.c:44
char idx_level
Definition: scanst.c:38
char idx_aclose
Definition: scanst.c:37
char numhead_neg[1024]
Definition: scanst.c:68
char encap_s[1024]
Definition: scanst.c:89
char postamble[1024]
Definition: scanst.c:47
char encap_p[1024]
Definition: scanst.c:87
char idx_encap
Definition: scanst.c:43
static int sty_ec
Definition: scanst.c:33
int setpagelen
Definition: scanst.c:53
int ilen_r[3]
Definition: scanst.c:74
char page_comp[1024]
Definition: scanst.c:96
static int scan_spec(char *spec)
static int sty_tc
Definition: scanst.c:32
int headings_flag
Definition: scanst.c:58
int skiplen
Definition: scanst.c:56
char setpage_open[1024]
Definition: scanst.c:51
int page_offset[5]
Definition: scanst.c:97
int headprelen
Definition: scanst.c:61
char delim_r[1024]
Definition: scanst.c:80
char delim_p[3][1024]
Definition: scanst.c:78
int ilen_x[3]
Definition: scanst.c:76
static int sty_lc
Definition: scanst.c:31
char encap_i[1024]
Definition: scanst.c:88
char suffix_mp[1024]
Definition: scanst.c:85
int postlen
Definition: scanst.c:49
char idx_keyword[1024]
Definition: scanst.c:35
char idx_rclose
Definition: scanst.c:40
static int next_nonblank(void)
Definition: scanst.c:314
char idx_actual
Definition: scanst.c:42
int prelen
Definition: scanst.c:48
char heading_suf[1024]
Definition: scanst.c:60
char numhead_pos[1024]
Definition: scanst.c:67
char item_u[3][1024]
Definition: scanst.c:71
char suffix_3p[1024]
Definition: scanst.c:84
#define IDX_LEVEL
Definition: scanst.h:49
#define SYMHEAD_NEG
Definition: scanst.h:99
#define LINEMAX
Definition: scanst.h:141
#define ROMAN_UPPER
Definition: scanst.h:60
#define HEADINGSFLAG_DEF
Definition: scanst.h:90
#define ITEM_2
Definition: scanst.h:108
#define HEADING_SUF
Definition: scanst.h:94
#define ITEM_01
Definition: scanst.h:109
#define GROUPSKIP_DEF
Definition: scanst.h:86
#define COMMENT
Definition: scanst.h:29
#define ROMAN_LOWER
Definition: scanst.h:59
#define STY_SKIPLINE
Definition: scanst.h:192
#define ITEM2_DEF
Definition: scanst.h:116
#define ENCAP_2
Definition: scanst.h:136
#define IDX_ACTUAL
Definition: scanst.h:51
#define CHR_DELIM
Definition: scanst.h:31
#define ITEM_LEN
Definition: scanst.h:118
#define SETPAGE_LEN
Definition: scanst.h:83
#define IDX_QUOTE
Definition: scanst.h:50
#define HEADINGS_FLAG
Definition: scanst.h:89
#define INDENTLEN_DEF
Definition: scanst.h:147
#define IDX_AOPEN
Definition: scanst.h:45
#define IDX_ENCAP
Definition: scanst.h:52
#define SYMHEADNEG_DEF
Definition: scanst.h:100
#define ITEM0_DEF
Definition: scanst.h:114
#define POSTAMBLE
Definition: scanst.h:73
#define AOPEN
Definition: scanst.h:34
#define DELIM_T
Definition: scanst.h:125
#define DELIM_1
Definition: scanst.h:121
#define ENCAP
Definition: scanst.h:41
#define STR_DELIM
Definition: scanst.h:30
#define ALPHA_LOWER
Definition: scanst.h:62
#define ALPHA_UPPER
Definition: scanst.h:63
#define SYMHEADPOS_DEF
Definition: scanst.h:98
#define ACTUAL
Definition: scanst.h:40
#define IDX_ESCAPE
Definition: scanst.h:53
#define ITEM1_DEF
Definition: scanst.h:115
#define COMPOSITOR
Definition: scanst.h:55
#define SETPAGECLOSE_DEF
Definition: scanst.h:82
#define ARABIC_OFFSET
Definition: scanst.h:66
#define ACLOSE
Definition: scanst.h:35
#define ROPEN
Definition: scanst.h:36
#define ENCAP_0
Definition: scanst.h:134
#define MULTIPLE(C)
Definition: scanst.h:202
#define NUMHEADPOS_DEF
Definition: scanst.h:102
#define SETPAGEOPEN_DEF
Definition: scanst.h:80
#define LEVEL
Definition: scanst.h:38
#define SETPAGECLOSE
Definition: scanst.h:78
#define INDENTSPC_DEF
Definition: scanst.h:145
#define SUFFIX_3P
Definition: scanst.h:131
#define ITEM_0
Definition: scanst.h:106
#define ENCAP0_DEF
Definition: scanst.h:137
#define IDX_KEYWORD
Definition: scanst.h:44
#define ENCAP1_DEF
Definition: scanst.h:138
#define PREAMBLE_LEN
Definition: scanst.h:72
#define ROMAN_LOWER_OFFSET
Definition: scanst.h:64
#define ENCAP2_DEF
Definition: scanst.h:139
#define DELIMT_DEF
Definition: scanst.h:128
#define DELIM_DEF
Definition: scanst.h:126
#define STY_ERROR1(F, D)
Definition: scanst.h:161
#define SUFFIX_2P
Definition: scanst.h:130
#define HEADINGSUF_DEF
Definition: scanst.h:95
#define GROUP_SKIP
Definition: scanst.h:85
#define SUFFIX_MP
Definition: scanst.h:132
#define PRECEDENCE_DEF
Definition: scanst.h:58
#define ITEM_12
Definition: scanst.h:111
#define HEADINGPRE_DEF
Definition: scanst.h:92
#define HEADINGPRE_LEN
Definition: scanst.h:93
#define STY_ERROR(F)
Definition: scanst.h:149
#define IDX_ROPEN
Definition: scanst.h:47
#define ALPHA_LOWER_OFFSET
Definition: scanst.h:67
#define DELIMR_DEF
Definition: scanst.h:127
#define ITEM_x1
Definition: scanst.h:110
#define HEADINGSUF_LEN
Definition: scanst.h:96
#define RCLOSE
Definition: scanst.h:37
#define SETPAGEOPEN
Definition: scanst.h:77
#define COMPOSITOR_DEF
Definition: scanst.h:56
#define ITEM_x2
Definition: scanst.h:112
#define STY_ERROR2(F, D1, D2)
Definition: scanst.h:173
#define HEADING_PRE
Definition: scanst.h:91
#define DELIM_0
Definition: scanst.h:120
#define STY_DOT
Definition: scanst.h:185
#define DELIM_R
Definition: scanst.h:124
#define IDX_RCLOSE
Definition: scanst.h:48
#define ROMAN_UPPER_OFFSET
Definition: scanst.h:65
#define DELIM_2
Definition: scanst.h:122
#define IDX_ACLOSE
Definition: scanst.h:46
#define NUMHEAD_NEG
Definition: scanst.h:103
#define SCAN_NO(N)
Definition: scanst.h:198
#define NUMHEADNEG_DEF
Definition: scanst.h:104
#define SYMHEAD_POS
Definition: scanst.h:97
#define POSTAMBLE_DEF
Definition: scanst.h:74
#define ARABIC
Definition: scanst.h:61
#define NUMHEAD_POS
Definition: scanst.h:101
#define DELIM_N
Definition: scanst.h:123
#define INDENT_LENGTH
Definition: scanst.h:143
#define GROUPSKIP_LEN
Definition: scanst.h:87
#define INDENT_SPACE
Definition: scanst.h:142
#define POSTAMBLE_LEN
Definition: scanst.h:75
#define ALPHA_UPPER_OFFSET
Definition: scanst.h:68
#define PRECEDENCE
Definition: scanst.h:57
#define PREAMBLE_DEF
Definition: scanst.h:71
#define ENCAP_1
Definition: scanst.h:135
#define ITEM_1
Definition: scanst.h:107
#define str(s)
Definition: sh6.c:399
@ TAB
Definition: uprops.h:350