ctags.rb 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. data/Gemfile +2 -0
  2. data/Rakefile +23 -0
  3. data/ctags.rb.gemspec +23 -0
  4. data/ext/.gitignore +3 -0
  5. data/ext/extconf.rb +15 -0
  6. data/ext/vendor/exuberant-ctags/.gitignore +6 -0
  7. data/ext/vendor/exuberant-ctags/.indent.pro +31 -0
  8. data/ext/vendor/exuberant-ctags/COPYING +340 -0
  9. data/ext/vendor/exuberant-ctags/EXTENDING.html +386 -0
  10. data/ext/vendor/exuberant-ctags/FAQ +371 -0
  11. data/ext/vendor/exuberant-ctags/INSTALL +215 -0
  12. data/ext/vendor/exuberant-ctags/INSTALL.oth +73 -0
  13. data/ext/vendor/exuberant-ctags/MAINTAINERS +88 -0
  14. data/ext/vendor/exuberant-ctags/Makefile.in +222 -0
  15. data/ext/vendor/exuberant-ctags/NEWS +871 -0
  16. data/ext/vendor/exuberant-ctags/README +73 -0
  17. data/ext/vendor/exuberant-ctags/ant.c +42 -0
  18. data/ext/vendor/exuberant-ctags/argproc.c +505 -0
  19. data/ext/vendor/exuberant-ctags/args.c +274 -0
  20. data/ext/vendor/exuberant-ctags/args.h +63 -0
  21. data/ext/vendor/exuberant-ctags/asm.c +387 -0
  22. data/ext/vendor/exuberant-ctags/asp.c +328 -0
  23. data/ext/vendor/exuberant-ctags/awk.c +81 -0
  24. data/ext/vendor/exuberant-ctags/basic.c +203 -0
  25. data/ext/vendor/exuberant-ctags/beta.c +321 -0
  26. data/ext/vendor/exuberant-ctags/c.c +2932 -0
  27. data/ext/vendor/exuberant-ctags/cobol.c +50 -0
  28. data/ext/vendor/exuberant-ctags/config.h.in +277 -0
  29. data/ext/vendor/exuberant-ctags/configure +7704 -0
  30. data/ext/vendor/exuberant-ctags/configure.ac +532 -0
  31. data/ext/vendor/exuberant-ctags/ctags.1 +1186 -0
  32. data/ext/vendor/exuberant-ctags/ctags.h +28 -0
  33. data/ext/vendor/exuberant-ctags/ctags.html +2087 -0
  34. data/ext/vendor/exuberant-ctags/ctags.spec +40 -0
  35. data/ext/vendor/exuberant-ctags/debug.c +113 -0
  36. data/ext/vendor/exuberant-ctags/debug.h +70 -0
  37. data/ext/vendor/exuberant-ctags/descrip.mms +68 -0
  38. data/ext/vendor/exuberant-ctags/dosbatch.c +42 -0
  39. data/ext/vendor/exuberant-ctags/e_amiga.h +24 -0
  40. data/ext/vendor/exuberant-ctags/e_djgpp.h +47 -0
  41. data/ext/vendor/exuberant-ctags/e_mac.h +143 -0
  42. data/ext/vendor/exuberant-ctags/e_msoft.h +76 -0
  43. data/ext/vendor/exuberant-ctags/e_os2.h +37 -0
  44. data/ext/vendor/exuberant-ctags/e_qdos.h +34 -0
  45. data/ext/vendor/exuberant-ctags/e_riscos.h +58 -0
  46. data/ext/vendor/exuberant-ctags/e_vms.h +31 -0
  47. data/ext/vendor/exuberant-ctags/eiffel.c +1352 -0
  48. data/ext/vendor/exuberant-ctags/entry.c +847 -0
  49. data/ext/vendor/exuberant-ctags/entry.h +103 -0
  50. data/ext/vendor/exuberant-ctags/erlang.c +189 -0
  51. data/ext/vendor/exuberant-ctags/flex.c +2243 -0
  52. data/ext/vendor/exuberant-ctags/fortran.c +2197 -0
  53. data/ext/vendor/exuberant-ctags/general.h +127 -0
  54. data/ext/vendor/exuberant-ctags/get.c +669 -0
  55. data/ext/vendor/exuberant-ctags/get.h +50 -0
  56. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops +47 -0
  57. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/entries +112 -0
  58. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base +5 -0
  59. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base +3818 -0
  60. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base +74 -0
  61. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base +575 -0
  62. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base +1713 -0
  63. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base +773 -0
  64. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base +4338 -0
  65. data/ext/vendor/exuberant-ctags/gnu_regex/README.txt +5 -0
  66. data/ext/vendor/exuberant-ctags/gnu_regex/regcomp.c +3818 -0
  67. data/ext/vendor/exuberant-ctags/gnu_regex/regex.c +74 -0
  68. data/ext/vendor/exuberant-ctags/gnu_regex/regex.h +575 -0
  69. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c +1713 -0
  70. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.h +773 -0
  71. data/ext/vendor/exuberant-ctags/gnu_regex/regexec.c +4338 -0
  72. data/ext/vendor/exuberant-ctags/html.c +49 -0
  73. data/ext/vendor/exuberant-ctags/jscript.c +1572 -0
  74. data/ext/vendor/exuberant-ctags/keyword.c +258 -0
  75. data/ext/vendor/exuberant-ctags/keyword.h +34 -0
  76. data/ext/vendor/exuberant-ctags/lisp.c +139 -0
  77. data/ext/vendor/exuberant-ctags/lregex.c +704 -0
  78. data/ext/vendor/exuberant-ctags/lua.c +133 -0
  79. data/ext/vendor/exuberant-ctags/mac.c +273 -0
  80. data/ext/vendor/exuberant-ctags/magic.diff +21 -0
  81. data/ext/vendor/exuberant-ctags/main.c +584 -0
  82. data/ext/vendor/exuberant-ctags/main.h +32 -0
  83. data/ext/vendor/exuberant-ctags/maintainer.mak +476 -0
  84. data/ext/vendor/exuberant-ctags/make.c +217 -0
  85. data/ext/vendor/exuberant-ctags/matlab.c +44 -0
  86. data/ext/vendor/exuberant-ctags/mk_bc3.mak +46 -0
  87. data/ext/vendor/exuberant-ctags/mk_bc5.mak +49 -0
  88. data/ext/vendor/exuberant-ctags/mk_djg.mak +18 -0
  89. data/ext/vendor/exuberant-ctags/mk_manx.mak +65 -0
  90. data/ext/vendor/exuberant-ctags/mk_mingw.mak +31 -0
  91. data/ext/vendor/exuberant-ctags/mk_mpw.mak +130 -0
  92. data/ext/vendor/exuberant-ctags/mk_mvc.mak +40 -0
  93. data/ext/vendor/exuberant-ctags/mk_os2.mak +104 -0
  94. data/ext/vendor/exuberant-ctags/mk_qdos.mak +100 -0
  95. data/ext/vendor/exuberant-ctags/mk_sas.mak +63 -0
  96. data/ext/vendor/exuberant-ctags/mkinstalldirs +40 -0
  97. data/ext/vendor/exuberant-ctags/ocaml.c +1842 -0
  98. data/ext/vendor/exuberant-ctags/options.c +1842 -0
  99. data/ext/vendor/exuberant-ctags/options.h +155 -0
  100. data/ext/vendor/exuberant-ctags/parse.c +677 -0
  101. data/ext/vendor/exuberant-ctags/parse.h +129 -0
  102. data/ext/vendor/exuberant-ctags/parsers.h +63 -0
  103. data/ext/vendor/exuberant-ctags/pascal.c +267 -0
  104. data/ext/vendor/exuberant-ctags/perl.c +382 -0
  105. data/ext/vendor/exuberant-ctags/php.c +237 -0
  106. data/ext/vendor/exuberant-ctags/python.c +771 -0
  107. data/ext/vendor/exuberant-ctags/qdos.c +106 -0
  108. data/ext/vendor/exuberant-ctags/read.c +569 -0
  109. data/ext/vendor/exuberant-ctags/read.h +116 -0
  110. data/ext/vendor/exuberant-ctags/readtags.c +959 -0
  111. data/ext/vendor/exuberant-ctags/readtags.h +252 -0
  112. data/ext/vendor/exuberant-ctags/rexx.c +39 -0
  113. data/ext/vendor/exuberant-ctags/routines.c +891 -0
  114. data/ext/vendor/exuberant-ctags/routines.h +134 -0
  115. data/ext/vendor/exuberant-ctags/ruby.c +408 -0
  116. data/ext/vendor/exuberant-ctags/scheme.c +111 -0
  117. data/ext/vendor/exuberant-ctags/sh.c +115 -0
  118. data/ext/vendor/exuberant-ctags/slang.c +41 -0
  119. data/ext/vendor/exuberant-ctags/sml.c +212 -0
  120. data/ext/vendor/exuberant-ctags/sort.c +230 -0
  121. data/ext/vendor/exuberant-ctags/sort.h +32 -0
  122. data/ext/vendor/exuberant-ctags/source.mak +122 -0
  123. data/ext/vendor/exuberant-ctags/sql.c +2112 -0
  124. data/ext/vendor/exuberant-ctags/strlist.c +281 -0
  125. data/ext/vendor/exuberant-ctags/strlist.h +54 -0
  126. data/ext/vendor/exuberant-ctags/tcl.c +116 -0
  127. data/ext/vendor/exuberant-ctags/tex.c +524 -0
  128. data/ext/vendor/exuberant-ctags/verilog.c +340 -0
  129. data/ext/vendor/exuberant-ctags/vhdl.c +835 -0
  130. data/ext/vendor/exuberant-ctags/vim.c +636 -0
  131. data/ext/vendor/exuberant-ctags/vstring.c +232 -0
  132. data/ext/vendor/exuberant-ctags/vstring.h +85 -0
  133. data/ext/vendor/exuberant-ctags/yacc.c +40 -0
  134. data/lib/ctags/exuberant.rb +45 -0
  135. data/lib/ctags/version.rb +3 -0
  136. data/lib/ctags.rb +6 -0
  137. data/test/test_ctags.rb +24 -0
  138. metadata +233 -0
@@ -0,0 +1,50 @@
1
+ /*
2
+ * $Id: cobol.c 443 2006-05-30 04:37:13Z darren $
3
+ *
4
+ * Copyright (c) 2000-2003, Darren Hiebert
5
+ *
6
+ * This source code is released for free distribution under the terms of the
7
+ * GNU General Public License.
8
+ *
9
+ * This module contains functions for generating tags for COBOL language
10
+ * files.
11
+ */
12
+
13
+ /*
14
+ * INCLUDE FILES
15
+ */
16
+ #include "general.h" /* must always come first */
17
+ #include "parse.h"
18
+
19
+ /*
20
+ * FUNCTION DEFINITIONS
21
+ */
22
+
23
+ static void installCobolRegex (const langType language)
24
+ {
25
+ addTagRegex (language, "^[ \t]*[0-9]+[ \t]+([A-Z0-9][A-Z0-9-]*)[ \t]+(BLANK|OCCURS|IS|JUST|PIC|REDEFINES|RENAMES|SIGN|SYNC|USAGE|VALUE)",
26
+ "\\1", "d,data,data items", "i");
27
+ addTagRegex (language, "^[ \t]*[FSR]D[ \t]+([A-Z0-9][A-Z0-9-]*)\\.",
28
+ "\\1", "f,file,file descriptions (FD, SD, RD)", "i");
29
+ addTagRegex (language, "^[ \t]*[0-9]+[ \t]+([A-Z0-9][A-Z0-9-]*)\\.",
30
+ "\\1", "g,group,group items", "i");
31
+ addTagRegex (language, "^[ \t]*([A-Z0-9][A-Z0-9-]*)\\.",
32
+ "\\1", "p,paragraph,paragraphs", "i");
33
+ addTagRegex (language, "^[ \t]*PROGRAM-ID\\.[ \t]+([A-Z0-9][A-Z0-9-]*)\\.",
34
+ "\\1", "P,program,program ids", "i");
35
+ addTagRegex (language, "^[ \t]*([A-Z0-9][A-Z0-9-]*)[ \t]+SECTION\\.",
36
+ "\\1", "s,section,sections", "i");
37
+ }
38
+
39
+ extern parserDefinition* CobolParser ()
40
+ {
41
+ static const char *const extensions [] = {
42
+ "cbl", "cob", "CBL", "COB", NULL };
43
+ parserDefinition* def = parserNew ("Cobol");
44
+ def->extensions = extensions;
45
+ def->initialize = installCobolRegex;
46
+ def->regex = TRUE;
47
+ return def;
48
+ }
49
+
50
+ /* vi:set tabstop=4 shiftwidth=4: */
@@ -0,0 +1,277 @@
1
+ /* config.h.in. Generated from configure.ac by autoheader. */
2
+
3
+ /* Define this label if your system uses case-insensitive file names */
4
+ #undef CASE_INSENSITIVE_FILENAMES
5
+
6
+ /* Define this label if you wish to check the regcomp() function at run time
7
+ for correct behavior. This function is currently broken on Cygwin. */
8
+ #undef CHECK_REGCOMP
9
+
10
+ /* You can define this label to be a string containing the name of a
11
+ site-specific configuration file containing site-wide default options. The
12
+ files /etc/ctags.conf and /usr/local/etc/ctags.conf are already checked, so
13
+ only define one here if you need a file somewhere else. */
14
+ #undef CUSTOM_CONFIGURATION_FILE
15
+
16
+
17
+ /* Define this as desired.
18
+ * 1: Original ctags format
19
+ * 2: Extended ctags format with extension flags in EX-style comment.
20
+ */
21
+ #define DEFAULT_FILE_FORMAT 2
22
+
23
+
24
+
25
+ /* Define this label to use the system sort utility (which is probably more
26
+ * efficient) over the internal sorting algorithm.
27
+ */
28
+ #ifndef INTERNAL_SORT
29
+ # undef EXTERNAL_SORT
30
+ #endif
31
+
32
+
33
+ /* Define to 1 if you have the `chmod' function. */
34
+ #undef HAVE_CHMOD
35
+
36
+ /* Define to 1 if you have the `chsize' function. */
37
+ #undef HAVE_CHSIZE
38
+
39
+ /* Define to 1 if you have the `clock' function. */
40
+ #undef HAVE_CLOCK
41
+
42
+ /* Define to 1 if you have the <dirent.h> header file. */
43
+ #undef HAVE_DIRENT_H
44
+
45
+ /* Define to 1 if you have the <fcntl.h> header file. */
46
+ #undef HAVE_FCNTL_H
47
+
48
+ /* Define to 1 if you have the `fgetpos' function. */
49
+ #undef HAVE_FGETPOS
50
+
51
+ /* Define to 1 if you have the `findfirst' function. */
52
+ #undef HAVE_FINDFIRST
53
+
54
+ /* Define to 1 if you have the `fnmatch' function. */
55
+ #undef HAVE_FNMATCH
56
+
57
+ /* Define to 1 if you have the <fnmatch.h> header file. */
58
+ #undef HAVE_FNMATCH_H
59
+
60
+ /* Define to 1 if you have the `ftruncate' function. */
61
+ #undef HAVE_FTRUNCATE
62
+
63
+ /* Define to 1 if you have the <inttypes.h> header file. */
64
+ #undef HAVE_INTTYPES_H
65
+
66
+ /* Define to 1 if you have the <memory.h> header file. */
67
+ #undef HAVE_MEMORY_H
68
+
69
+ /* Define to 1 if you have the `mkstemp' function. */
70
+ #undef HAVE_MKSTEMP
71
+
72
+ /* Define to 1 if you have the `opendir' function. */
73
+ #undef HAVE_OPENDIR
74
+
75
+ /* Define to 1 if you have the `putenv' function. */
76
+ #undef HAVE_PUTENV
77
+
78
+ /* Define to 1 if you have the `regcomp' function. */
79
+ #undef HAVE_REGCOMP
80
+
81
+ /* Define to 1 if you have the `remove' function. */
82
+ #undef HAVE_REMOVE
83
+
84
+ /* Define to 1 if you have the `setenv' function. */
85
+ #undef HAVE_SETENV
86
+
87
+ /* Define to 1 if you have the <stat.h> header file. */
88
+ #undef HAVE_STAT_H
89
+
90
+ /* Define this macro if the field "st_ino" exists in struct stat in
91
+ <sys/stat.h>. */
92
+ #undef HAVE_STAT_ST_INO
93
+
94
+ /* Define to 1 if you have the <stdint.h> header file. */
95
+ #undef HAVE_STDINT_H
96
+
97
+ /* Define to 1 if you have the <stdlib.h> header file. */
98
+ #undef HAVE_STDLIB_H
99
+
100
+ /* Define to 1 if you have the `strcasecmp' function. */
101
+ #undef HAVE_STRCASECMP
102
+
103
+ /* Define to 1 if you have the `strerror' function. */
104
+ #undef HAVE_STRERROR
105
+
106
+ /* Define to 1 if you have the `stricmp' function. */
107
+ #undef HAVE_STRICMP
108
+
109
+ /* Define to 1 if you have the <strings.h> header file. */
110
+ #undef HAVE_STRINGS_H
111
+
112
+ /* Define to 1 if you have the <string.h> header file. */
113
+ #undef HAVE_STRING_H
114
+
115
+ /* Define to 1 if you have the `strncasecmp' function. */
116
+ #undef HAVE_STRNCASECMP
117
+
118
+ /* Define to 1 if you have the `strnicmp' function. */
119
+ #undef HAVE_STRNICMP
120
+
121
+ /* Define to 1 if you have the `strstr' function. */
122
+ #undef HAVE_STRSTR
123
+
124
+ /* Define to 1 if you have the <sys/dir.h> header file. */
125
+ #undef HAVE_SYS_DIR_H
126
+
127
+ /* Define to 1 if you have the <sys/stat.h> header file. */
128
+ #undef HAVE_SYS_STAT_H
129
+
130
+ /* Define to 1 if you have the <sys/times.h> header file. */
131
+ #undef HAVE_SYS_TIMES_H
132
+
133
+ /* Define to 1 if you have the <sys/types.h> header file. */
134
+ #undef HAVE_SYS_TYPES_H
135
+
136
+ /* Define to 1 if you have the `tempnam' function. */
137
+ #undef HAVE_TEMPNAM
138
+
139
+ /* Define to 1 if you have the `times' function. */
140
+ #undef HAVE_TIMES
141
+
142
+ /* Define to 1 if you have the <time.h> header file. */
143
+ #undef HAVE_TIME_H
144
+
145
+ /* Define to 1 if you have the `truncate' function. */
146
+ #undef HAVE_TRUNCATE
147
+
148
+ /* Define to 1 if you have the <types.h> header file. */
149
+ #undef HAVE_TYPES_H
150
+
151
+ /* Define to 1 if you have the <unistd.h> header file. */
152
+ #undef HAVE_UNISTD_H
153
+
154
+ /* Define to 1 if you have the `_findfirst' function. */
155
+ #undef HAVE__FINDFIRST
156
+
157
+ /* Define as the maximum integer on your system if not defined <limits.h>. */
158
+ #undef INT_MAX
159
+
160
+ /* Define to the appropriate size for tmpnam() if <stdio.h> does not define
161
+ this. */
162
+ #undef L_tmpnam
163
+
164
+ /* Define this label if you want macro tags (defined lables) to use patterns
165
+ in the EX command by default (original ctags behavior is to use line
166
+ numbers). */
167
+ #undef MACROS_USE_PATTERNS
168
+
169
+ /* If you receive error or warning messages indicating that you are missing a
170
+ prototype for, or a type mismatch using, the following function, define
171
+ this label and remake. */
172
+ #undef NEED_PROTO_FGETPOS
173
+
174
+ /* If you receive error or warning messages indicating that you are missing a
175
+ prototype for, or a type mismatch using, the following function, define
176
+ this label and remake. */
177
+ #undef NEED_PROTO_FTRUNCATE
178
+
179
+ /* If you receive error or warning messages indicating that you are missing a
180
+ prototype for, or a type mismatch using, the following function, define
181
+ this label and remake. */
182
+ #undef NEED_PROTO_GETENV
183
+
184
+ /* If you receive error or warning messages indicating that you are missing a
185
+ prototype for, or a type mismatch using, the following function, define
186
+ this label and remake. */
187
+ #undef NEED_PROTO_LSTAT
188
+
189
+ /* If you receive error or warning messages indicating that you are missing a
190
+ prototype for, or a type mismatch using, the following function, define
191
+ this label and remake. */
192
+ #undef NEED_PROTO_MALLOC
193
+
194
+ /* If you receive error or warning messages indicating that you are missing a
195
+ prototype for, or a type mismatch using, the following function, define
196
+ this label and remake. */
197
+ #undef NEED_PROTO_REMOVE
198
+
199
+ /* If you receive error or warning messages indicating that you are missing a
200
+ prototype for, or a type mismatch using, the following function, define
201
+ this label and remake. */
202
+ #undef NEED_PROTO_STAT
203
+
204
+ /* If you receive error or warning messages indicating that you are missing a
205
+ prototype for, or a type mismatch using, the following function, define
206
+ this label and remake. */
207
+ #undef NEED_PROTO_TRUNCATE
208
+
209
+ /* If you receive error or warning messages indicating that you are missing a
210
+ prototype for, or a type mismatch using, the following function, define
211
+ this label and remake. */
212
+ #undef NEED_PROTO_UNLINK
213
+
214
+ /* Define this is you have a prototype for putenv() in <stdlib.h>, but doesn't
215
+ declare its argument as "const char *". */
216
+ #undef NON_CONST_PUTENV_PROTOTYPE
217
+
218
+ /* Package name. */
219
+ #undef PACKAGE
220
+
221
+ /* Define to the address where bug reports for this package should be sent. */
222
+ #undef PACKAGE_BUGREPORT
223
+
224
+ /* Define to the full name of this package. */
225
+ #undef PACKAGE_NAME
226
+
227
+ /* Define to the full name and version of this package. */
228
+ #undef PACKAGE_STRING
229
+
230
+ /* Define to the one symbol short name of this package. */
231
+ #undef PACKAGE_TARNAME
232
+
233
+ /* Define to the version of this package. */
234
+ #undef PACKAGE_VERSION
235
+
236
+ /* Define this label if regcomp() is broken. */
237
+ #undef REGCOMP_BROKEN
238
+
239
+ /* Define this value used by fseek() appropriately if <stdio.h> (or <unistd.h>
240
+ on SunOS 4.1.x) does not define them. */
241
+ #undef SEEK_SET
242
+
243
+ /* Define to 1 if you have the ANSI C header files. */
244
+ #undef STDC_HEADERS
245
+
246
+ /* Define this label if your system supports starting scripts with a line of
247
+ the form "#! /bin/sh" to select the interpreter to use for the script. */
248
+ #undef SYS_INTERPRETER
249
+
250
+ /* If you wish to change the directory in which temporary files are stored,
251
+ define this label to the directory desired. */
252
+ #undef TMPDIR
253
+
254
+ /* Package version. */
255
+ #undef VERSION
256
+
257
+ /* This corrects the problem of missing prototypes for certain functions in
258
+ some GNU installations (e.g. SunOS 4.1.x). */
259
+ #undef __USE_FIXED_PROTOTYPES__
260
+
261
+ /* Define to the appropriate type if <time.h> does not define this. */
262
+ #undef clock_t
263
+
264
+ /* Define to empty if `const' does not conform to ANSI C. */
265
+ #undef const
266
+
267
+ /* Define to long if <stdio.h> does not define this. */
268
+ #undef fpos_t
269
+
270
+ /* Define to `long int' if <sys/types.h> does not define. */
271
+ #undef off_t
272
+
273
+ /* Define remove to unlink if you have unlink(), but not remove(). */
274
+ #undef remove
275
+
276
+ /* Define to `unsigned int' if <sys/types.h> does not define. */
277
+ #undef size_t