Mxx_ru 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. data/COPYING +26 -0
  2. data/NEWS +52 -0
  3. data/README +21 -0
  4. data/Rakefile +32 -0
  5. data/examples/exe_and_lib/main.cpp +15 -0
  6. data/examples/exe_and_lib/prj.rb +11 -0
  7. data/examples/exe_and_lib/say.cpp +13 -0
  8. data/examples/exe_and_lib/say.hpp +11 -0
  9. data/examples/exe_and_lib/say.rb +7 -0
  10. data/examples/exe_dll_lib/inout.cpp +15 -0
  11. data/examples/exe_dll_lib/inout.hpp +26 -0
  12. data/examples/exe_dll_lib/inout.rb +18 -0
  13. data/examples/exe_dll_lib/main.cpp +23 -0
  14. data/examples/exe_dll_lib/prj.rb +11 -0
  15. data/examples/exe_dll_lib/say.cpp +13 -0
  16. data/examples/exe_dll_lib/say.hpp +12 -0
  17. data/examples/exe_dll_lib/say.rb +9 -0
  18. data/examples/exe_dll_lib_2/build.rb +7 -0
  19. data/examples/exe_dll_lib_2/inout/inout.cpp +15 -0
  20. data/examples/exe_dll_lib_2/inout/inout.hpp +26 -0
  21. data/examples/exe_dll_lib_2/inout/prj.rb +16 -0
  22. data/examples/exe_dll_lib_2/main/main.cpp +23 -0
  23. data/examples/exe_dll_lib_2/main/prj.rb +9 -0
  24. data/examples/exe_dll_lib_2/say/prj.rb +8 -0
  25. data/examples/exe_dll_lib_2/say/say.cpp +13 -0
  26. data/examples/exe_dll_lib_2/say/say.hpp +12 -0
  27. data/examples/simple_exe/main.cpp +26 -0
  28. data/examples/simple_exe/prj.rb +7 -0
  29. data/lib/mxx_ru/abstract_target.rb +283 -0
  30. data/lib/mxx_ru/binary_target.rb +89 -0
  31. data/lib/mxx_ru/binary_unittest.rb +130 -0
  32. data/lib/mxx_ru/cpp/analyzer.rb +230 -0
  33. data/lib/mxx_ru/cpp/composite.rb +106 -0
  34. data/lib/mxx_ru/cpp/detect_toolset.rb +122 -0
  35. data/lib/mxx_ru/cpp/mode.rb +85 -0
  36. data/lib/mxx_ru/cpp/obj_placement.rb +321 -0
  37. data/lib/mxx_ru/cpp/qt.rb +333 -0
  38. data/lib/mxx_ru/cpp/rucodegen.rb +114 -0
  39. data/lib/mxx_ru/cpp/source_file.rb +71 -0
  40. data/lib/mxx_ru/cpp/target.rb +1371 -0
  41. data/lib/mxx_ru/cpp/toolset.rb +1029 -0
  42. data/lib/mxx_ru/cpp/toolsets/bcc_win32_5.rb +52 -0
  43. data/lib/mxx_ru/cpp/toolsets/bcc_win32_family.rb +451 -0
  44. data/lib/mxx_ru/cpp/toolsets/c89_etk_nsk.rb +56 -0
  45. data/lib/mxx_ru/cpp/toolsets/c89_nsk.rb +56 -0
  46. data/lib/mxx_ru/cpp/toolsets/c89_nsk_family.rb +273 -0
  47. data/lib/mxx_ru/cpp/toolsets/gcc_cygwin.rb +54 -0
  48. data/lib/mxx_ru/cpp/toolsets/gcc_family.rb +382 -0
  49. data/lib/mxx_ru/cpp/toolsets/gcc_linux.rb +60 -0
  50. data/lib/mxx_ru/cpp/toolsets/gcc_mingw.rb +144 -0
  51. data/lib/mxx_ru/cpp/toolsets/gcc_sparc_solaris.rb +87 -0
  52. data/lib/mxx_ru/cpp/toolsets/vc7.rb +62 -0
  53. data/lib/mxx_ru/cpp/toolsets/vc8.rb +452 -0
  54. data/lib/mxx_ru/cpp/toolsets/vc_family.rb +428 -0
  55. data/lib/mxx_ru/cpp.rb +36 -0
  56. data/lib/mxx_ru/ex.rb +134 -0
  57. data/lib/mxx_ru/makestyle_generator.rb +138 -0
  58. data/lib/mxx_ru/textfile_unittest.rb +284 -0
  59. data/lib/mxx_ru/util.rb +258 -0
  60. data/tests/c/pcre/chartables.c +183 -0
  61. data/tests/c/pcre/config.h +99 -0
  62. data/tests/c/pcre/dftables.c +167 -0
  63. data/tests/c/pcre/get.c +349 -0
  64. data/tests/c/pcre/internal.h +677 -0
  65. data/tests/c/pcre/maketables.c +140 -0
  66. data/tests/c/pcre/pcre.c +8304 -0
  67. data/tests/c/pcre/pcre.h +193 -0
  68. data/tests/c/pcre/pcre.rb +14 -0
  69. data/tests/c/pcre/pcredemo.c +316 -0
  70. data/tests/c/pcre/pcregrep.c +642 -0
  71. data/tests/c/pcre/pcreposix.c +305 -0
  72. data/tests/c/pcre/pcreposix.h +88 -0
  73. data/tests/c/pcre/pcretest.c +1483 -0
  74. data/tests/c/pcre/perltest +211 -0
  75. data/tests/c/pcre/printint.c +360 -0
  76. data/tests/c/pcre/study.c +472 -0
  77. data/tests/cpp/mswin_res_dll/build.rb +14 -0
  78. data/tests/cpp/mswin_res_dll/dll.cpp +17 -0
  79. data/tests/cpp/mswin_res_dll/dll.rb +30 -0
  80. data/tests/cpp/mswin_res_dll/dll.rc +48 -0
  81. data/tests/cpp/mswin_res_dll/h/dll.hpp +8 -0
  82. data/tests/cpp/mswin_res_dll/h/res.h +3 -0
  83. data/tests/cpp/mswin_res_dll/main.cpp +13 -0
  84. data/tests/cpp/mswin_res_dll/main.rb +20 -0
  85. data/tests/cpp/mswin_res_dll/res/tree_fol.bmp +0 -0
  86. data/tests/cpp/mswin_res_dll/res/tree_state_1.bmp +0 -0
  87. data/tests/cpp/mswin_res_dll/res/tree_state_2.bmp +0 -0
  88. data/tests/cpp/mswin_res_exe/build.rb +23 -0
  89. data/tests/cpp/mswin_res_exe/h/res.h +3 -0
  90. data/tests/cpp/mswin_res_exe/main.cpp +17 -0
  91. data/tests/cpp/mswin_res_exe/main.rc +48 -0
  92. data/tests/cpp/mswin_res_exe/res/tree_fol.bmp +0 -0
  93. data/tests/cpp/mswin_res_exe/res/tree_state_1.bmp +0 -0
  94. data/tests/cpp/mswin_res_exe/res/tree_state_2.bmp +0 -0
  95. data/tests/cpp/rucodegen/host_config.cpp +20 -0
  96. data/tests/cpp/rucodegen/host_config.rb +14 -0
  97. data/tests/cpp/rucodegen/impl/conn_params.cpp +7 -0
  98. data/tests/cpp/rucodegen/impl/conn_params.rb +14 -0
  99. data/tests/cpp/rucodegen/impl/h/conn_params.hpp +10 -0
  100. data/tests/cpp/rucodegen/prj.rb +17 -0
  101. data/tests/cpp/textfile_unittest/build.rb +8 -0
  102. data/tests/cpp/textfile_unittest/etalons/out_0.txt +0 -0
  103. data/tests/cpp/textfile_unittest/etalons/out_1.txt +1 -0
  104. data/tests/cpp/textfile_unittest/etalons/out_128.txt +128 -0
  105. data/tests/cpp/textfile_unittest/main.cpp +89 -0
  106. data/tests/cpp/textfile_unittest/prj.rb +8 -0
  107. data/tests/cpp/textfile_unittest/prj.ut.rb +18 -0
  108. data/tests/cpp/toolset_name.rb +6 -0
  109. data/tests/cpp/vc_cleanup/cout.log +72 -0
  110. data/tests/cpp/vc_cleanup/dll_hi.cpp +5 -0
  111. data/tests/cpp/vc_cleanup/exe_hi.cpp +10 -0
  112. data/tests/cpp/vc_cleanup/lib_hi.cpp +5 -0
  113. data/tests/cpp/vc_cleanup/prj_dll_no_implib.rb +10 -0
  114. data/tests/cpp/vc_cleanup/prj_dll_no_implib_simple_target_root.rb +11 -0
  115. data/tests/cpp/vc_cleanup/prj_dll_with_implib.rb +11 -0
  116. data/tests/cpp/vc_cleanup/prj_dll_with_implib_simple_target_root.rb +14 -0
  117. data/tests/cpp/vc_cleanup/prj_exe_no_implib.rb +10 -0
  118. data/tests/cpp/vc_cleanup/prj_exe_no_implib_simple_target_root.rb +11 -0
  119. data/tests/cpp/vc_cleanup/prj_lib.rb +10 -0
  120. data/tests/cpp/vc_cleanup/prj_lib_with_simple_target_root.rb +11 -0
  121. data/tests/cpp/vc_cleanup/tc_vc_cleanup.rb +60 -0
  122. data/tests/mxx_ru/change_default_value/ignoring_by_build_root/build.rb +8 -0
  123. data/tests/mxx_ru/change_default_value/ignoring_by_build_root/child_1.rb +5 -0
  124. data/tests/mxx_ru/change_default_value/ignoring_by_child_1/build.rb +7 -0
  125. data/tests/mxx_ru/change_default_value/ignoring_by_child_1/child_1.rb +5 -0
  126. data/tests/mxx_ru/change_default_value/ignoring_by_child_1/child_2.rb +5 -0
  127. data/tests/mxx_ru/change_default_value/ok/build.rb +8 -0
  128. data/tests/mxx_ru/change_default_value/ok/child_1.rb +8 -0
  129. data/tests/mxx_ru/tc_makestyle_generator.rb +117 -0
  130. data/tests/mxx_ru/vc8/tc_actual_manifest.rb +230 -0
  131. data/tests/mxx_ru/vc8/tc_append_mt_commands.rb +104 -0
  132. data/tests/mxx_ru/vc8/tc_default_manifest.rb +17 -0
  133. data/tests/mxx_ru/vc8/tc_define_manifest.rb +173 -0
  134. data/tests/mxx_ru/vc8/tc_drop_default_manifest.rb +16 -0
  135. data/tests/mxx_ru/vc8/tc_invalid_params.rb +81 -0
  136. data/tests/mxx_ru/vc8/ts_vc8.rb +10 -0
  137. data/tests/qt/aclock/aclock.cpp +148 -0
  138. data/tests/qt/aclock/aclock.h +45 -0
  139. data/tests/qt/aclock/main.cpp +28 -0
  140. data/tests/qt/aclock/prj.rb +21 -0
  141. data/tests/qt/iconview/main.cpp +76 -0
  142. data/tests/qt/iconview/prj.rb +21 -0
  143. data/tests/qt/toplevel/main.cpp +9 -0
  144. data/tests/qt/toplevel/options.ui +587 -0
  145. data/tests/qt/toplevel/options.ui.h +98 -0
  146. data/tests/qt/toplevel/prj.rb +21 -0
  147. metadata +241 -0
@@ -0,0 +1,183 @@
1
+ /*************************************************
2
+ * Perl-Compatible Regular Expressions *
3
+ *************************************************/
4
+
5
+ /* This file is automatically written by the dftables auxiliary
6
+ program. If you edit it by hand, you might like to edit the Makefile to
7
+ prevent its ever being regenerated.
8
+
9
+ This file is #included in the compilation of pcre.c to build the default
10
+ character tables which are used when no tables are passed to the compile
11
+ function. */
12
+
13
+ static unsigned char pcre_default_tables[] = {
14
+
15
+ /* This table is a lower casing table. */
16
+
17
+ 0, 1, 2, 3, 4, 5, 6, 7,
18
+ 8, 9, 10, 11, 12, 13, 14, 15,
19
+ 16, 17, 18, 19, 20, 21, 22, 23,
20
+ 24, 25, 26, 27, 28, 29, 30, 31,
21
+ 32, 33, 34, 35, 36, 37, 38, 39,
22
+ 40, 41, 42, 43, 44, 45, 46, 47,
23
+ 48, 49, 50, 51, 52, 53, 54, 55,
24
+ 56, 57, 58, 59, 60, 61, 62, 63,
25
+ 64, 97, 98, 99,100,101,102,103,
26
+ 104,105,106,107,108,109,110,111,
27
+ 112,113,114,115,116,117,118,119,
28
+ 120,121,122, 91, 92, 93, 94, 95,
29
+ 96, 97, 98, 99,100,101,102,103,
30
+ 104,105,106,107,108,109,110,111,
31
+ 112,113,114,115,116,117,118,119,
32
+ 120,121,122,123,124,125,126,127,
33
+ 128,129,130,131,132,133,134,135,
34
+ 136,137,138,139,140,141,142,143,
35
+ 144,145,146,147,148,149,150,151,
36
+ 152,153,154,155,156,157,158,159,
37
+ 160,161,162,163,164,165,166,167,
38
+ 168,169,170,171,172,173,174,175,
39
+ 176,177,178,179,180,181,182,183,
40
+ 184,185,186,187,188,189,190,191,
41
+ 192,193,194,195,196,197,198,199,
42
+ 200,201,202,203,204,205,206,207,
43
+ 208,209,210,211,212,213,214,215,
44
+ 216,217,218,219,220,221,222,223,
45
+ 224,225,226,227,228,229,230,231,
46
+ 232,233,234,235,236,237,238,239,
47
+ 240,241,242,243,244,245,246,247,
48
+ 248,249,250,251,252,253,254,255,
49
+
50
+ /* This table is a case flipping table. */
51
+
52
+ 0, 1, 2, 3, 4, 5, 6, 7,
53
+ 8, 9, 10, 11, 12, 13, 14, 15,
54
+ 16, 17, 18, 19, 20, 21, 22, 23,
55
+ 24, 25, 26, 27, 28, 29, 30, 31,
56
+ 32, 33, 34, 35, 36, 37, 38, 39,
57
+ 40, 41, 42, 43, 44, 45, 46, 47,
58
+ 48, 49, 50, 51, 52, 53, 54, 55,
59
+ 56, 57, 58, 59, 60, 61, 62, 63,
60
+ 64, 97, 98, 99,100,101,102,103,
61
+ 104,105,106,107,108,109,110,111,
62
+ 112,113,114,115,116,117,118,119,
63
+ 120,121,122, 91, 92, 93, 94, 95,
64
+ 96, 65, 66, 67, 68, 69, 70, 71,
65
+ 72, 73, 74, 75, 76, 77, 78, 79,
66
+ 80, 81, 82, 83, 84, 85, 86, 87,
67
+ 88, 89, 90,123,124,125,126,127,
68
+ 128,129,130,131,132,133,134,135,
69
+ 136,137,138,139,140,141,142,143,
70
+ 144,145,146,147,148,149,150,151,
71
+ 152,153,154,155,156,157,158,159,
72
+ 160,161,162,163,164,165,166,167,
73
+ 168,169,170,171,172,173,174,175,
74
+ 176,177,178,179,180,181,182,183,
75
+ 184,185,186,187,188,189,190,191,
76
+ 192,193,194,195,196,197,198,199,
77
+ 200,201,202,203,204,205,206,207,
78
+ 208,209,210,211,212,213,214,215,
79
+ 216,217,218,219,220,221,222,223,
80
+ 224,225,226,227,228,229,230,231,
81
+ 232,233,234,235,236,237,238,239,
82
+ 240,241,242,243,244,245,246,247,
83
+ 248,249,250,251,252,253,254,255,
84
+
85
+ /* This table contains bit maps for various character classes.
86
+ Each map is 32 bytes long and the bits run from the least
87
+ significant end of each byte. The classes that have their own
88
+ maps are: space, xdigit, digit, upper, lower, word, graph
89
+ print, punct, and cntrl. Other classes are built from combinations. */
90
+
91
+ 0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00,
92
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
93
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
94
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
95
+
96
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
97
+ 0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
98
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
99
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
100
+
101
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
102
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
103
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
104
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
105
+
106
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
107
+ 0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
108
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
109
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
110
+
111
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
112
+ 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07,
113
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
114
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
115
+
116
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
117
+ 0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07,
118
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
119
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
120
+
121
+ 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
122
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
123
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
124
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
125
+
126
+ 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
127
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
128
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
129
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
130
+
131
+ 0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc,
132
+ 0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78,
133
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
134
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
135
+
136
+ 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
137
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
138
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
139
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
140
+
141
+ /* This table identifies various classes of character by individual bits:
142
+ 0x01 white space character
143
+ 0x02 letter
144
+ 0x04 decimal digit
145
+ 0x08 hexadecimal digit
146
+ 0x10 alphanumeric or '_'
147
+ 0x80 regular expression metacharacter or binary zero
148
+ */
149
+
150
+ 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */
151
+ 0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /* 8- 15 */
152
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */
153
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */
154
+ 0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* - ' */
155
+ 0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /* ( - / */
156
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */
157
+ 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /* 8 - ? */
158
+ 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* @ - G */
159
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* H - O */
160
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* P - W */
161
+ 0x12,0x12,0x12,0x80,0x00,0x00,0x80,0x10, /* X - _ */
162
+ 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* ` - g */
163
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* h - o */
164
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* p - w */
165
+ 0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /* x -127 */
166
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */
167
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */
168
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */
169
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */
170
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */
171
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */
172
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */
173
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */
174
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */
175
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */
176
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */
177
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */
178
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */
179
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */
180
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */
181
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */
182
+
183
+ /* End of chartables.c */
@@ -0,0 +1,99 @@
1
+
2
+ /* On Unix systems config.in is converted by configure into config.h. PCRE is
3
+ written in Standard C, but there are a few non-standard things it can cope
4
+ with, allowing it to run on SunOS4 and other "close to standard" systems.
5
+
6
+ On a non-Unix system you should just copy this file into config.h, and set up
7
+ the macros the way you need them. You should normally change the definitions of
8
+ HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way autoconf
9
+ works, these cannot be made the defaults. If your system has bcopy() and not
10
+ memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE. If your
11
+ system has neither bcopy() nor memmove(), leave them both as 0; an emulation
12
+ function will be used. */
13
+
14
+ /* If you are compiling for a system that uses EBCDIC instead of ASCII
15
+ character codes, define this macro as 1. On systems that can use "configure",
16
+ this can be done via --enable-ebcdic. */
17
+
18
+ #ifndef EBCDIC
19
+ #define EBCDIC 0
20
+ #endif
21
+
22
+ /* If you are compiling for a system that needs some magic to be inserted
23
+ before the definition of an exported function, define this macro to contain the
24
+ relevant magic. It apears at the start of every exported function. */
25
+
26
+ #define EXPORT
27
+
28
+ /* The following two definitions are mainly for the benefit of SunOS4, which
29
+ doesn't have the strerror() or memmove() functions that should be present in
30
+ all Standard C libraries. The macros HAVE_STRERROR and HAVE_MEMMOVE should
31
+ normally be defined with the value 1 for other systems, but unfortunately we
32
+ can't make this the default because "configure" files generated by autoconf
33
+ will only change 0 to 1; they won't change 1 to 0 if the functions are not
34
+ found. */
35
+
36
+ #define HAVE_STRERROR 1
37
+ #define HAVE_MEMMOVE 1
38
+
39
+ /* There are some non-Unix systems that don't even have bcopy(). If this macro
40
+ is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of
41
+ HAVE_BCOPY is not relevant. */
42
+
43
+ #define HAVE_BCOPY 0
44
+
45
+ /* The value of NEWLINE determines the newline character. The default is to
46
+ leave it up to the compiler, but some sites want to force a particular value.
47
+ On Unix systems, "configure" can be used to override this default. */
48
+
49
+ #ifndef NEWLINE
50
+ #define NEWLINE '\n'
51
+ #endif
52
+
53
+ /* The value of LINK_SIZE determines the number of bytes used to store
54
+ links as offsets within the compiled regex. The default is 2, which allows for
55
+ compiled patterns up to 64K long. This covers the vast majority of cases.
56
+ However, PCRE can also be compiled to use 3 or 4 bytes instead. This allows for
57
+ longer patterns in extreme cases. On Unix systems, "configure" can be used to
58
+ override this default. */
59
+
60
+ #ifndef LINK_SIZE
61
+ #define LINK_SIZE 2
62
+ #endif
63
+
64
+ /* The value of MATCH_LIMIT determines the default number of times the match()
65
+ function can be called during a single execution of pcre_exec(). (There is a
66
+ runtime method of setting a different limit.) The limit exists in order to
67
+ catch runaway regular expressions that take for ever to determine that they do
68
+ not match. The default is set very large so that it does not accidentally catch
69
+ legitimate cases. On Unix systems, "configure" can be used to override this
70
+ default default. */
71
+
72
+ #ifndef MATCH_LIMIT
73
+ #define MATCH_LIMIT 10000000
74
+ #endif
75
+
76
+ /* When calling PCRE via the POSIX interface, additional working storage is
77
+ required for holding the pointers to capturing substrings because PCRE requires
78
+ three integers per substring, whereas the POSIX interface provides only two. If
79
+ the number of expected substrings is small, the wrapper function uses space on
80
+ the stack, because this is faster than using malloc() for each call. The
81
+ threshold above which the stack is no longer use is defined by POSIX_MALLOC_
82
+ THRESHOLD. On Unix systems, "configure" can be used to override this default.
83
+ */
84
+
85
+ #ifndef POSIX_MALLOC_THRESHOLD
86
+ #define POSIX_MALLOC_THRESHOLD 10
87
+ #endif
88
+
89
+ /* PCRE uses recursive function calls to handle backtracking while matching.
90
+ This can sometimes be a problem on systems that have stacks of limited size.
91
+ Define NO_RECURSE to get a version that doesn't use recursion in the match()
92
+ function; instead it creates its own stack by steam using pcre_recurse_malloc
93
+ to get memory. For more detail, see comments and other stuff just above the
94
+ match() function. On Unix systems, "configure" can be used to set this in the
95
+ Makefile (use --disable-recursion). */
96
+
97
+ /* #define NO_RECURSE */
98
+
99
+ /* End */
@@ -0,0 +1,167 @@
1
+ /*************************************************
2
+ * Perl-Compatible Regular Expressions *
3
+ *************************************************/
4
+
5
+ /*
6
+ PCRE is a library of functions to support regular expressions whose syntax
7
+ and semantics are as close as possible to those of the Perl 5 language.
8
+
9
+ Written by: Philip Hazel <ph10@cam.ac.uk>
10
+
11
+ Copyright (c) 1997-2003 University of Cambridge
12
+
13
+ -----------------------------------------------------------------------------
14
+ Permission is granted to anyone to use this software for any purpose on any
15
+ computer system, and to redistribute it freely, subject to the following
16
+ restrictions:
17
+
18
+ 1. This software is distributed in the hope that it will be useful,
19
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21
+
22
+ 2. The origin of this software must not be misrepresented, either by
23
+ explicit claim or by omission.
24
+
25
+ 3. Altered versions must be plainly marked as such, and must not be
26
+ misrepresented as being the original software.
27
+
28
+ 4. If PCRE is embedded in any software that is released under the GNU
29
+ General Purpose Licence (GPL), then the terms of that licence shall
30
+ supersede any condition above with which it is incompatible.
31
+ -----------------------------------------------------------------------------
32
+
33
+ See the file Tech.Notes for some information on the internals.
34
+ */
35
+
36
+
37
+ /* This is a support program to generate the file chartables.c, containing
38
+ character tables of various kinds. They are built according to the default C
39
+ locale and used as the default tables by PCRE. Now that pcre_maketables is
40
+ a function visible to the outside world, we make use of its code from here in
41
+ order to be consistent. */
42
+
43
+ #include <ctype.h>
44
+ #include <stdio.h>
45
+ #include <string.h>
46
+
47
+ #include "internal.h"
48
+
49
+ #define DFTABLES /* maketables.c notices this */
50
+ #include "maketables.c"
51
+
52
+
53
+ int main(int argc, char **argv)
54
+ {
55
+ int i;
56
+ FILE *f;
57
+ const unsigned char *tables = pcre_maketables();
58
+
59
+ if (argc != 2)
60
+ {
61
+ fprintf(stderr, "dftables: one filename argument is required\n");
62
+ return 1;
63
+ }
64
+
65
+ f = fopen(argv[1], "w");
66
+ if (f == NULL)
67
+ {
68
+ fprintf(stderr, "dftables: failed to open %s for writing\n", argv[1]);
69
+ return 1;
70
+ }
71
+
72
+ /* There are two fprintf() calls here, because gcc in pedantic mode complains
73
+ about the very long string otherwise. */
74
+
75
+ fprintf(f,
76
+ "/*************************************************\n"
77
+ "* Perl-Compatible Regular Expressions *\n"
78
+ "*************************************************/\n\n"
79
+ "/* This file is automatically written by the dftables auxiliary \n"
80
+ "program. If you edit it by hand, you might like to edit the Makefile to \n"
81
+ "prevent its ever being regenerated.\n\n");
82
+ fprintf(f,
83
+ "This file is #included in the compilation of pcre.c to build the default\n"
84
+ "character tables which are used when no tables are passed to the compile\n"
85
+ "function. */\n\n"
86
+ "static unsigned char pcre_default_tables[] = {\n\n"
87
+ "/* This table is a lower casing table. */\n\n");
88
+
89
+ fprintf(f, " ");
90
+ for (i = 0; i < 256; i++)
91
+ {
92
+ if ((i & 7) == 0 && i != 0) fprintf(f, "\n ");
93
+ fprintf(f, "%3d", *tables++);
94
+ if (i != 255) fprintf(f, ",");
95
+ }
96
+ fprintf(f, ",\n\n");
97
+
98
+ fprintf(f, "/* This table is a case flipping table. */\n\n");
99
+
100
+ fprintf(f, " ");
101
+ for (i = 0; i < 256; i++)
102
+ {
103
+ if ((i & 7) == 0 && i != 0) fprintf(f, "\n ");
104
+ fprintf(f, "%3d", *tables++);
105
+ if (i != 255) fprintf(f, ",");
106
+ }
107
+ fprintf(f, ",\n\n");
108
+
109
+ fprintf(f,
110
+ "/* This table contains bit maps for various character classes.\n"
111
+ "Each map is 32 bytes long and the bits run from the least\n"
112
+ "significant end of each byte. The classes that have their own\n"
113
+ "maps are: space, xdigit, digit, upper, lower, word, graph\n"
114
+ "print, punct, and cntrl. Other classes are built from combinations. */\n\n");
115
+
116
+ fprintf(f, " ");
117
+ for (i = 0; i < cbit_length; i++)
118
+ {
119
+ if ((i & 7) == 0 && i != 0)
120
+ {
121
+ if ((i & 31) == 0) fprintf(f, "\n");
122
+ fprintf(f, "\n ");
123
+ }
124
+ fprintf(f, "0x%02x", *tables++);
125
+ if (i != cbit_length - 1) fprintf(f, ",");
126
+ }
127
+ fprintf(f, ",\n\n");
128
+
129
+ fprintf(f,
130
+ "/* This table identifies various classes of character by individual bits:\n"
131
+ " 0x%02x white space character\n"
132
+ " 0x%02x letter\n"
133
+ " 0x%02x decimal digit\n"
134
+ " 0x%02x hexadecimal digit\n"
135
+ " 0x%02x alphanumeric or '_'\n"
136
+ " 0x%02x regular expression metacharacter or binary zero\n*/\n\n",
137
+ ctype_space, ctype_letter, ctype_digit, ctype_xdigit, ctype_word,
138
+ ctype_meta);
139
+
140
+ fprintf(f, " ");
141
+ for (i = 0; i < 256; i++)
142
+ {
143
+ if ((i & 7) == 0 && i != 0)
144
+ {
145
+ fprintf(f, " /* ");
146
+ if (isprint(i-8)) fprintf(f, " %c -", i-8);
147
+ else fprintf(f, "%3d-", i-8);
148
+ if (isprint(i-1)) fprintf(f, " %c ", i-1);
149
+ else fprintf(f, "%3d", i-1);
150
+ fprintf(f, " */\n ");
151
+ }
152
+ fprintf(f, "0x%02x", *tables++);
153
+ if (i != 255) fprintf(f, ",");
154
+ }
155
+
156
+ fprintf(f, "};/* ");
157
+ if (isprint(i-8)) fprintf(f, " %c -", i-8);
158
+ else fprintf(f, "%3d-", i-8);
159
+ if (isprint(i-1)) fprintf(f, " %c ", i-1);
160
+ else fprintf(f, "%3d", i-1);
161
+ fprintf(f, " */\n\n/* End of chartables.c */\n");
162
+
163
+ fclose(f);
164
+ return 0;
165
+ }
166
+
167
+ /* End of dftables.c */