scantab.c 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /* Copyright (C) 1994, 1995, 1997 Aladdin Enterprises. All rights reserved.
  2. This software is provided AS-IS with no warranty, either express or
  3. implied.
  4. This software is distributed under license and may not be copied,
  5. modified or distributed except as expressly authorized under the terms
  6. of the license contained in the file LICENSE in this distribution.
  7. For more information about licensing, please refer to
  8. http://www.ghostscript.com/licensing/. For information on
  9. commercial licensing, go to http://www.artifex.com/licensing/ or
  10. contact Artifex Software, Inc., 101 Lucas Valley Road #110,
  11. San Rafael, CA 94903, U.S.A., +1(415)492-9861.
  12. */
  13. /* $Id: scantab.c,v 1.5 2004/09/06 07:26:41 ray Exp $ */
  14. /* Scanner table for PostScript/PDF tokens */
  15. #include "stdpre.h"
  16. #include "scommon.h"
  17. #include "scanchar.h" /* defines interface */
  18. /* Define the character scanning table (see scanchar.h). */
  19. const byte scan_char_array[max_stream_exception + 256] =
  20. {stream_exception_repeat(ctype_exception),
  21. /* Control characters 0-31. */
  22. ctype_space, /* NULL - standard only in Level 2 */
  23. ctype_name, ctype_name, ctype_name,
  24. ctype_other, /* EOT == ctrl-d <04> */
  25. ctype_name, ctype_name, ctype_name, ctype_name,
  26. ctype_space, /* TAB (\t) */
  27. ctype_space, /* LF (\n) */
  28. ctype_name,
  29. ctype_space, /* FF (\f) */
  30. ctype_space, /* CR (\r) */
  31. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  32. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  33. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  34. ctype_name, ctype_name, ctype_name,
  35. /* Printable characters 32-63 */
  36. ctype_space, /* space (\s) */
  37. ctype_name, ctype_name, ctype_name, ctype_name,
  38. ctype_other, /* % */
  39. ctype_name, ctype_name,
  40. ctype_other, /* ( */
  41. ctype_other, /* ) */
  42. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  43. ctype_other, /* / */
  44. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* digits 0-9 */
  45. ctype_name, ctype_name,
  46. ctype_other, /* < */
  47. ctype_name,
  48. ctype_other, /* > */
  49. ctype_name,
  50. /* Printable characters 64-95 */
  51. ctype_name,
  52. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  53. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  54. 30, 31, 32, 33, 34, 35,
  55. ctype_other, /* [ */
  56. ctype_name,
  57. ctype_other, /* ] */
  58. ctype_name, ctype_name,
  59. /* Printable characters 96-126 and DEL */
  60. ctype_name,
  61. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  62. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  63. 30, 31, 32, 33, 34, 35,
  64. ctype_other, /* { */
  65. ctype_name,
  66. ctype_other, /* } */
  67. ctype_name, ctype_name,
  68. /* Characters 128-159, binary tokens */
  69. ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
  70. ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
  71. ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
  72. ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
  73. ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
  74. ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
  75. ctype_btoken, ctype_btoken,
  76. /* Characters 160-191, not defined */
  77. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  78. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  79. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  80. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  81. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  82. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  83. ctype_name, ctype_name,
  84. /* Characters 192-223, not defined */
  85. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  86. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  87. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  88. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  89. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  90. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  91. ctype_name, ctype_name,
  92. /* Characters 224-255, not defined */
  93. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  94. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  95. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  96. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  97. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  98. ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
  99. ctype_name, ctype_name
  100. };