ctags.rb 1.0.19 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2961) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +8 -3
  4. data/README.md +20 -39
  5. data/ext/extconf.rb +5 -9
  6. data/ext/vendor/ctags/.ctags +4 -0
  7. data/ext/vendor/ctags/.dir-locals.el +2 -0
  8. data/ext/vendor/ctags/.editorconfig +10 -0
  9. data/ext/vendor/ctags/.gdbinit +3 -0
  10. data/ext/vendor/ctags/.gitignore +69 -0
  11. data/ext/vendor/{exuberant-ctags → ctags}/.indent.pro +0 -0
  12. data/ext/vendor/ctags/.travis.yml +66 -0
  13. data/ext/vendor/ctags/.uncrustify.cfg +151 -0
  14. data/ext/vendor/{exuberant-ctags → ctags}/COPYING +0 -0
  15. data/ext/vendor/ctags/Makefile.am +114 -0
  16. data/ext/vendor/ctags/README.md +47 -0
  17. data/ext/vendor/ctags/Tmain/alias-for-unknown-language.d/exit-expected.txt +1 -0
  18. data/ext/vendor/ctags/Tmain/alias-for-unknown-language.d/run.sh +7 -0
  19. data/ext/vendor/ctags/Tmain/alias-for-unknown-language.d/stderr-expected.txt +1 -0
  20. data/ext/vendor/{jansson-2.5/test/suites/invalid/empty/input → ctags/Tmain/alias-for-unknown-language.d/stdout-expected.txt} +0 -0
  21. data/ext/vendor/ctags/Tmain/allow-null-tag.d/exit-expected.txt +1 -0
  22. data/ext/vendor/ctags/Tmain/allow-null-tag.d/input.json +1 -0
  23. data/ext/vendor/ctags/Tmain/allow-null-tag.d/run.sh +7 -0
  24. data/ext/vendor/ctags/Tmain/allow-null-tag.d/stderr-expected.txt +0 -0
  25. data/ext/vendor/ctags/Tmain/allow-null-tag.d/stdout-expected.txt +1 -0
  26. data/ext/vendor/ctags/Tmain/broken-tagname-quiet.d/exit-expected.txt +1 -0
  27. data/ext/vendor/ctags/Tmain/broken-tagname-quiet.d/input.cst +1 -0
  28. data/ext/vendor/ctags/Tmain/broken-tagname-quiet.d/run.sh +10 -0
  29. data/ext/vendor/ctags/Tmain/broken-tagname-quiet.d/stderr-expected.txt +0 -0
  30. data/ext/vendor/ctags/Tmain/broken-tagname-quiet.d/stdout-expected.txt +1 -0
  31. data/ext/vendor/ctags/Tmain/broken-tagname.d/exit-expected.txt +1 -0
  32. data/ext/vendor/ctags/Tmain/broken-tagname.d/input.cst +2 -0
  33. data/ext/vendor/ctags/Tmain/broken-tagname.d/run.sh +18 -0
  34. data/ext/vendor/ctags/Tmain/broken-tagname.d/stderr-expected.txt +9 -0
  35. data/ext/vendor/ctags/Tmain/broken-tagname.d/stdout-expected.txt +1 -0
  36. data/ext/vendor/ctags/Tmain/c-anon-counter.d/exit-expected.txt +1 -0
  37. data/ext/vendor/ctags/Tmain/c-anon-counter.d/input1.c +11 -0
  38. data/ext/vendor/ctags/Tmain/c-anon-counter.d/input2.c +11 -0
  39. data/ext/vendor/ctags/Tmain/c-anon-counter.d/run.sh +17 -0
  40. data/ext/vendor/ctags/Tmain/c-anon-counter.d/stderr-expected.txt +0 -0
  41. data/ext/vendor/ctags/Tmain/c-anon-counter.d/stdout-expected.txt +0 -0
  42. data/ext/vendor/ctags/Tmain/cxx-how-kinds-defs-are-shared-or-copyed.d/run.sh +36 -0
  43. data/ext/vendor/ctags/Tmain/cxx-how-kinds-defs-are-shared-or-copyed.d/stdout-expected.txt +8 -0
  44. data/ext/vendor/ctags/Tmain/define-own-file-kind.d/exit-expected.txt +1 -0
  45. data/ext/vendor/ctags/Tmain/define-own-file-kind.d/run.sh +6 -0
  46. data/ext/vendor/ctags/Tmain/define-own-file-kind.d/stderr-expected.txt +0 -0
  47. data/ext/vendor/ctags/Tmain/define-own-file-kind.d/stdout-expected.txt +1 -0
  48. data/ext/vendor/ctags/Tmain/disable-fixed-field.d/exit-expected.txt +1 -0
  49. data/ext/vendor/ctags/Tmain/disable-fixed-field.d/run.sh +11 -0
  50. data/ext/vendor/ctags/Tmain/disable-fixed-field.d/stderr-expected.txt +6 -0
  51. data/ext/vendor/ctags/Tmain/disable-fixed-field.d/stdout-expected.txt +0 -0
  52. data/ext/vendor/ctags/Tmain/disable-languages.d/input-matlab.m +1 -0
  53. data/ext/vendor/ctags/Tmain/disable-languages.d/input-objc.m +1 -0
  54. data/ext/vendor/ctags/Tmain/disable-languages.d/input.m +0 -0
  55. data/ext/vendor/ctags/Tmain/disable-languages.d/run.sh +51 -0
  56. data/ext/vendor/ctags/Tmain/disable-languages.d/stderr-expected.txt +0 -0
  57. data/ext/vendor/ctags/Tmain/disable-languages.d/stdout-expected.txt +18 -0
  58. data/ext/vendor/ctags/Tmain/dot-ctags-with-indentation.d/args.ctags +5 -0
  59. data/ext/vendor/ctags/Tmain/dot-ctags-with-indentation.d/exit-expected.txt +1 -0
  60. data/ext/vendor/ctags/Tmain/dot-ctags-with-indentation.d/run.sh +7 -0
  61. data/ext/vendor/ctags/Tmain/dot-ctags-with-indentation.d/stderr-expected.txt +5 -0
  62. data/ext/vendor/ctags/Tmain/dot-ctags-with-indentation.d/stdout-expected.txt +0 -0
  63. data/ext/vendor/ctags/Tmain/emacs-modeline-downcased-mode.d/exti-expected.txt +1 -0
  64. data/ext/vendor/ctags/Tmain/emacs-modeline-downcased-mode.d/functions +11 -0
  65. data/ext/vendor/ctags/Tmain/emacs-modeline-downcased-mode.d/run.sh +6 -0
  66. data/ext/vendor/ctags/Tmain/emacs-modeline-downcased-mode.d/stderr-expected.txt +1 -0
  67. data/ext/vendor/ctags/Tmain/emacs-modeline-downcased-mode.d/stdout-expected.txt +1 -0
  68. data/ext/vendor/ctags/Tmain/enable-kind-postfix-with-wildcard.d/run.sh +6 -0
  69. data/ext/vendor/ctags/Tmain/enable-kind-postfix-with-wildcard.d/stderr-expected.txt +0 -0
  70. data/ext/vendor/ctags/Tmain/enable-kind-postfix-with-wildcard.d/stdout-expected.txt +0 -0
  71. data/ext/vendor/ctags/Tmain/enable-kind-postfix.d/run.sh +8 -0
  72. data/ext/vendor/ctags/Tmain/enable-kind-postfix.d/stderr-expected.txt +0 -0
  73. data/ext/vendor/ctags/Tmain/enable-kind-postfix.d/stdout-expected.txt +2 -0
  74. data/ext/vendor/ctags/Tmain/enable-kind-prefix-with-wildcard.d/run.sh +6 -0
  75. data/ext/vendor/ctags/Tmain/enable-kind-prefix-with-wildcard.d/stderr-expected.txt +0 -0
  76. data/ext/vendor/ctags/Tmain/enable-kind-prefix-with-wildcard.d/stdout-expected.txt +0 -0
  77. data/ext/vendor/ctags/Tmain/enable-kind-prefix.d/run.sh +5 -0
  78. data/ext/vendor/ctags/Tmain/enable-kind-prefix.d/stderr-expected.txt +0 -0
  79. data/ext/vendor/ctags/Tmain/enable-kind-prefix.d/stdout-expected.txt +2 -0
  80. data/ext/vendor/ctags/Tmain/enable-non-existing-kind.d/run.sh +6 -0
  81. data/ext/vendor/ctags/Tmain/enable-non-existing-kind.d/stderr-expected.txt +1 -0
  82. data/ext/vendor/ctags/Tmain/extension-vs-pattern.d/exit-expected.txt +1 -0
  83. data/ext/vendor/ctags/Tmain/extension-vs-pattern.d/input.xxx +0 -0
  84. data/ext/vendor/ctags/Tmain/extension-vs-pattern.d/run.sh +19 -0
  85. data/ext/vendor/ctags/Tmain/extension-vs-pattern.d/stderr-expected.txt +0 -0
  86. data/ext/vendor/ctags/Tmain/extension-vs-pattern.d/stdout-expected.txt +2 -0
  87. data/ext/vendor/ctags/Tmain/extra-field.d/exit-expected.txt +1 -0
  88. data/ext/vendor/ctags/Tmain/extra-field.d/input.cpp +7 -0
  89. data/ext/vendor/ctags/Tmain/extra-field.d/run.sh +8 -0
  90. data/ext/vendor/ctags/Tmain/extra-field.d/stderr-expected.txt +0 -0
  91. data/ext/vendor/ctags/Tmain/extra-field.d/stdout-expected.txt +10 -0
  92. data/ext/vendor/ctags/Tmain/extra-long.d/run.sh +24 -0
  93. data/ext/vendor/ctags/Tmain/extra-long.d/stdout-expected.txt +35 -0
  94. data/ext/vendor/ctags/Tmain/input-encoding-option.d/exit-expected.txt +1 -0
  95. data/ext/vendor/ctags/Tmain/input-encoding-option.d/input.java +4 -0
  96. data/ext/vendor/ctags/Tmain/input-encoding-option.d/input.js +1 -0
  97. data/ext/vendor/ctags/Tmain/input-encoding-option.d/run.sh +22 -0
  98. data/ext/vendor/ctags/Tmain/input-encoding-option.d/stderr-expected.txt +0 -0
  99. data/ext/vendor/ctags/Tmain/input-encoding-option.d/stdout-expected.txt +0 -0
  100. data/ext/vendor/ctags/Tmain/input-encoding-option.d/tags-expected.txt +10 -0
  101. data/ext/vendor/ctags/Tmain/interactive-mode.d/run.sh +45 -0
  102. data/ext/vendor/ctags/Tmain/interactive-mode.d/stdout-expected.txt +46 -0
  103. data/ext/vendor/ctags/Tmain/interactive-mode.d/test.c +9 -0
  104. data/ext/vendor/ctags/Tmain/interactive-mode.d/test.rb +7 -0
  105. data/ext/vendor/ctags/Tmain/invalid-encoding-option.d/exit-expected.txt +1 -0
  106. data/ext/vendor/ctags/Tmain/invalid-encoding-option.d/input.java +4 -0
  107. data/ext/vendor/ctags/Tmain/invalid-encoding-option.d/input.js +1 -0
  108. data/ext/vendor/ctags/Tmain/invalid-encoding-option.d/run.sh +14 -0
  109. data/ext/vendor/ctags/Tmain/invalid-encoding-option.d/stderr-expected.txt +1 -0
  110. data/ext/vendor/ctags/Tmain/invalid-encoding-option.d/stdout-expected.txt +0 -0
  111. data/ext/vendor/ctags/Tmain/json-output-format.d/input.c +7 -0
  112. data/ext/vendor/ctags/Tmain/json-output-format.d/input.py +3 -0
  113. data/ext/vendor/ctags/Tmain/json-output-format.d/run.sh +14 -0
  114. data/ext/vendor/ctags/Tmain/json-output-format.d/stdout-expected.txt +22 -0
  115. data/ext/vendor/ctags/Tmain/kind-long-lregex.d/run.sh +22 -0
  116. data/ext/vendor/ctags/Tmain/kind-long-lregex.d/stdout-expected.txt +6 -0
  117. data/ext/vendor/ctags/Tmain/kind-long-lxcmd.d/foo.sh +8 -0
  118. data/ext/vendor/ctags/Tmain/kind-long-lxcmd.d/run.sh +30 -0
  119. data/ext/vendor/ctags/Tmain/kind-long-lxcmd.d/stdout-expected.txt +9 -0
  120. data/ext/vendor/ctags/Tmain/kind-long.d/run.sh +7 -0
  121. data/ext/vendor/ctags/Tmain/kind-long.d/stdout-expected.txt +2 -0
  122. data/ext/vendor/ctags/Tmain/langmap-option-including-patterns.d/exit-expected.txt +1 -0
  123. data/ext/vendor/ctags/Tmain/langmap-option-including-patterns.d/run.sh +18 -0
  124. data/ext/vendor/ctags/Tmain/langmap-option-including-patterns.d/stderr-expected.txt +0 -0
  125. data/ext/vendor/ctags/Tmain/langmap-option-including-patterns.d/stdout-expected.txt +12 -0
  126. data/ext/vendor/ctags/Tmain/langmap-option.d/exit-expected.txt +1 -0
  127. data/ext/vendor/ctags/Tmain/langmap-option.d/run.sh +16 -0
  128. data/ext/vendor/ctags/Tmain/langmap-option.d/stderr-expected.txt +0 -0
  129. data/ext/vendor/ctags/Tmain/langmap-option.d/stdout-expected.txt +6 -0
  130. data/ext/vendor/ctags/Tmain/languages-and-language-force-options.d/exit-expected.txt +1 -0
  131. data/ext/vendor/ctags/Tmain/languages-and-language-force-options.d/input.c +0 -0
  132. data/ext/vendor/ctags/Tmain/languages-and-language-force-options.d/run.sh +5 -0
  133. data/ext/vendor/ctags/Tmain/languages-and-language-force-options.d/stderr-expected.txt +1 -0
  134. data/ext/vendor/ctags/Tmain/list-extra.d/exit-expected.txt +1 -0
  135. data/ext/vendor/ctags/Tmain/list-extra.d/run.sh +7 -0
  136. data/ext/vendor/ctags/Tmain/list-extra.d/stderr-expected.txt +0 -0
  137. data/ext/vendor/ctags/Tmain/list-extra.d/stdout-expected.txt +14 -0
  138. data/ext/vendor/ctags/Tmain/list-fields-with-prefix.d/run.sh +12 -0
  139. data/ext/vendor/ctags/Tmain/list-fields-with-prefix.d/stdout-expected.txt +13 -0
  140. data/ext/vendor/ctags/Tmain/list-fields.d/exit-expected.txt +1 -0
  141. data/ext/vendor/ctags/Tmain/list-fields.d/input.c +15 -0
  142. data/ext/vendor/ctags/Tmain/list-fields.d/input.java +4 -0
  143. data/ext/vendor/ctags/Tmain/list-fields.d/input.sh +5 -0
  144. data/ext/vendor/ctags/Tmain/list-fields.d/run.sh +39 -0
  145. data/ext/vendor/ctags/Tmain/list-fields.d/stderr-expected.txt +0 -0
  146. data/ext/vendor/ctags/Tmain/list-fields.d/stdout-expected.txt +94 -0
  147. data/ext/vendor/ctags/Tmain/list-file-kind.d/exit-expected.txt +1 -0
  148. data/ext/vendor/ctags/Tmain/list-file-kind.d/run.sh +8 -0
  149. data/ext/vendor/ctags/Tmain/list-file-kind.d/stderr-expected.txt +0 -0
  150. data/ext/vendor/ctags/Tmain/list-file-kind.d/stdout-expected.txt +2 -0
  151. data/ext/vendor/ctags/Tmain/list-kinds-full.d/exit-expected.txt +1 -0
  152. data/ext/vendor/ctags/Tmain/list-kinds-full.d/run.sh +8 -0
  153. data/ext/vendor/ctags/Tmain/list-kinds-full.d/stderr-expected.txt +0 -0
  154. data/ext/vendor/ctags/Tmain/list-kinds-full.d/stdout-expected.txt +37 -0
  155. data/ext/vendor/ctags/Tmain/list-language-fields.d/run.sh +8 -0
  156. data/ext/vendor/ctags/Tmain/list-language-fields.d/stdout-expected.txt +2 -0
  157. data/ext/vendor/ctags/Tmain/list-params.d/run.sh +29 -0
  158. data/ext/vendor/ctags/Tmain/list-params.d/stderr-expected.txt +0 -0
  159. data/ext/vendor/ctags/Tmain/list-params.d/stdout-expected.txt +34 -0
  160. data/ext/vendor/ctags/Tmain/list-pseudo-tags.d/exit-expected.txt +1 -0
  161. data/ext/vendor/ctags/Tmain/list-pseudo-tags.d/run.sh +8 -0
  162. data/ext/vendor/ctags/Tmain/list-pseudo-tags.d/stderr-expected.txt +0 -0
  163. data/ext/vendor/ctags/Tmain/list-pseudo-tags.d/stdout-expected.txt +9 -0
  164. data/ext/vendor/ctags/Tmain/list-roles.d/exit-expected.txt +1 -0
  165. data/ext/vendor/ctags/Tmain/list-roles.d/run.sh +47 -0
  166. data/ext/vendor/ctags/Tmain/list-roles.d/stderr-expected.txt +0 -0
  167. data/ext/vendor/ctags/Tmain/list-roles.d/stdout-expected.txt +108 -0
  168. data/ext/vendor/ctags/Tmain/load-dot-ctags-twice.d/dot.ctags +1 -0
  169. data/ext/vendor/ctags/Tmain/load-dot-ctags-twice.d/exit-expected.txt +1 -0
  170. data/ext/vendor/ctags/Tmain/load-dot-ctags-twice.d/run.sh +8 -0
  171. data/ext/vendor/ctags/Tmain/load-dot-ctags-twice.d/stderr-expected.txt +2 -0
  172. data/ext/vendor/ctags/Tmain/load-dot-ctags-twice.d/stdout-expected.txt +0 -0
  173. data/ext/vendor/ctags/Tmain/lregex-accept-reserved-kind.d/exit-expected.txt +1 -0
  174. data/ext/vendor/ctags/Tmain/lregex-accept-reserved-kind.d/run.sh +6 -0
  175. data/ext/vendor/ctags/Tmain/lregex-accept-reserved-kind.d/stderr-expected.txt +0 -0
  176. data/ext/vendor/ctags/Tmain/lregex-accept-reserved-kind.d/stdout-expected.txt +0 -0
  177. data/ext/vendor/ctags/Tmain/lregex-list-kinds-full.d/exit-expected.txt +1 -0
  178. data/ext/vendor/ctags/Tmain/lregex-list-kinds-full.d/run.sh +15 -0
  179. data/ext/vendor/ctags/Tmain/lregex-list-kinds-full.d/stderr-expected.txt +0 -0
  180. data/ext/vendor/ctags/Tmain/lregex-list-kinds-full.d/stdout-expected.txt +5 -0
  181. data/ext/vendor/ctags/Tmain/lregex-list-kinds-uniquely.d/run.sh +10 -0
  182. data/ext/vendor/ctags/Tmain/lregex-list-kinds-uniquely.d/stdout-expected.txt +1 -0
  183. data/ext/vendor/ctags/Tmain/lregex-list-kinds.d/exit-expected.txt +1 -0
  184. data/ext/vendor/ctags/Tmain/lregex-list-kinds.d/run.sh +13 -0
  185. data/ext/vendor/ctags/Tmain/lregex-list-kinds.d/stderr-expected.txt +0 -0
  186. data/ext/vendor/ctags/Tmain/lregex-list-kinds.d/stdout-expected.txt +4 -0
  187. data/ext/vendor/ctags/Tmain/lregex-reject-reserved-kind.d/exit-expected.txt +1 -0
  188. data/ext/vendor/ctags/Tmain/lregex-reject-reserved-kind.d/run.sh +6 -0
  189. data/ext/vendor/ctags/Tmain/lregex-reject-reserved-kind.d/stderr-expected.txt +1 -0
  190. data/ext/vendor/ctags/Tmain/lregex-reject-reserved-kind.d/stdout-expected.txt +0 -0
  191. data/ext/vendor/ctags/Tmain/lxcmd-accept-reserved-kind.d/exit-expected.txt +1 -0
  192. data/ext/vendor/ctags/Tmain/lxcmd-accept-reserved-kind.d/foo.sh +9 -0
  193. data/ext/vendor/ctags/Tmain/lxcmd-accept-reserved-kind.d/run.sh +11 -0
  194. data/ext/vendor/ctags/Tmain/lxcmd-accept-reserved-kind.d/stderr-expected.txt +0 -0
  195. data/ext/vendor/ctags/Tmain/lxcmd-accept-reserved-kind.d/stdout-expected.txt +0 -0
  196. data/ext/vendor/ctags/Tmain/lxcmd-backend-not-found.d/exit-expected.txt +1 -0
  197. data/ext/vendor/ctags/Tmain/lxcmd-backend-not-found.d/foo.sh +5 -0
  198. data/ext/vendor/ctags/Tmain/lxcmd-backend-not-found.d/run.sh +10 -0
  199. data/ext/vendor/ctags/Tmain/lxcmd-backend-not-found.d/stderr-expected.txt +0 -0
  200. data/ext/vendor/ctags/Tmain/lxcmd-backend-not-found.d/stdout-expected.txt +0 -0
  201. data/ext/vendor/ctags/Tmain/lxcmd-backend-premature-death.d/README +3 -0
  202. data/ext/vendor/ctags/Tmain/lxcmd-backend-premature-death.d/exit-expected.txt +1 -0
  203. data/ext/vendor/ctags/Tmain/lxcmd-backend-premature-death.d/foo.sh +5 -0
  204. data/ext/vendor/ctags/Tmain/lxcmd-backend-premature-death.d/run.sh +10 -0
  205. data/ext/vendor/ctags/Tmain/lxcmd-backend-premature-death.d/stderr-expected.txt +1 -0
  206. data/ext/vendor/ctags/Tmain/lxcmd-backend-premature-death.d/stdout-expected.txt +0 -0
  207. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo0.sh +6 -0
  208. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo1.sh +6 -0
  209. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo2.sh +6 -0
  210. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo3.sh +6 -0
  211. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo4.sh +6 -0
  212. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo5.sh +6 -0
  213. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo6.sh +6 -0
  214. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo7.sh +6 -0
  215. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/foo8.sh +6 -0
  216. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/run.sh +12 -0
  217. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/stderr-expected.txt +9 -0
  218. data/ext/vendor/ctags/Tmain/lxcmd-broken-kind.d/stdout-expected.txt +0 -0
  219. data/ext/vendor/ctags/Tmain/lxcmd-disabled-kind.d/exit-expected.txt +1 -0
  220. data/ext/vendor/ctags/Tmain/lxcmd-disabled-kind.d/foo.sh +24 -0
  221. data/ext/vendor/ctags/Tmain/lxcmd-disabled-kind.d/run.sh +10 -0
  222. data/ext/vendor/ctags/Tmain/lxcmd-disabled-kind.d/stderr-expected.txt +0 -0
  223. data/ext/vendor/ctags/Tmain/lxcmd-disabled-kind.d/stdout-expected.txt +8 -0
  224. data/ext/vendor/ctags/Tmain/lxcmd-exit-status-override.d/exit-expected.txt +1 -0
  225. data/ext/vendor/ctags/Tmain/lxcmd-exit-status-override.d/foo.sh +5 -0
  226. data/ext/vendor/ctags/Tmain/lxcmd-exit-status-override.d/run.sh +10 -0
  227. data/ext/vendor/ctags/Tmain/lxcmd-exit-status-override.d/stderr-expected.txt +0 -0
  228. data/ext/vendor/ctags/Tmain/lxcmd-exit-status-override.d/stdout-expected.txt +1 -0
  229. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds-full.d/exit-expected.txt +1 -0
  230. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds-full.d/foo.sh +8 -0
  231. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds-full.d/run.sh +28 -0
  232. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds-full.d/stderr-expected.txt +0 -0
  233. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds-full.d/stdout-expected.txt +10 -0
  234. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds.d/exit-expected.txt +1 -0
  235. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds.d/foo.sh +6 -0
  236. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds.d/run.sh +15 -0
  237. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds.d/stderr-expected.txt +0 -0
  238. data/ext/vendor/ctags/Tmain/lxcmd-list-kinds.d/stdout-expected.txt +2 -0
  239. data/ext/vendor/ctags/Tmain/lxcmd-ptag-kind-desc.d/exit-expected.txt +1 -0
  240. data/ext/vendor/ctags/Tmain/lxcmd-ptag-kind-desc.d/foo.sh +6 -0
  241. data/ext/vendor/ctags/Tmain/lxcmd-ptag-kind-desc.d/input.foo +0 -0
  242. data/ext/vendor/ctags/Tmain/lxcmd-ptag-kind-desc.d/run.sh +18 -0
  243. data/ext/vendor/ctags/Tmain/lxcmd-ptag-kind-desc.d/stderr-expected.txt +0 -0
  244. data/ext/vendor/ctags/Tmain/lxcmd-ptag-kind-desc.d/stdout-expected.txt +2 -0
  245. data/ext/vendor/ctags/Tmain/lxcmd-reject-invalid-notAvailableStatus.d/exit-expected.txt +1 -0
  246. data/ext/vendor/ctags/Tmain/lxcmd-reject-invalid-notAvailableStatus.d/run.sh +9 -0
  247. data/ext/vendor/ctags/Tmain/lxcmd-reject-invalid-notAvailableStatus.d/stderr-expected.txt +1 -0
  248. data/ext/vendor/ctags/Tmain/lxcmd-reject-invalid-notAvailableStatus.d/stdout-expected.txt +0 -0
  249. data/ext/vendor/ctags/Tmain/lxcmd-reject-reserved-kind.d/exit-expected.txt +1 -0
  250. data/ext/vendor/ctags/Tmain/lxcmd-reject-reserved-kind.d/foo.sh +8 -0
  251. data/ext/vendor/ctags/Tmain/lxcmd-reject-reserved-kind.d/run.sh +10 -0
  252. data/ext/vendor/ctags/Tmain/lxcmd-reject-reserved-kind.d/stderr-expected.txt +1 -0
  253. data/ext/vendor/ctags/Tmain/lxcmd-reject-reserved-kind.d/stdout-expected.txt +0 -0
  254. data/ext/vendor/ctags/Tmain/lxcmd-reject-specifying-in-dot-ctags.d/.ctags +3 -0
  255. data/ext/vendor/ctags/Tmain/lxcmd-reject-specifying-in-dot-ctags.d/exit-expected.txt +1 -0
  256. data/ext/vendor/ctags/Tmain/lxcmd-reject-specifying-in-dot-ctags.d/run.sh +5 -0
  257. data/ext/vendor/ctags/Tmain/lxcmd-reject-specifying-in-dot-ctags.d/stderr-expected.txt +1 -0
  258. data/ext/vendor/ctags/Tmain/lxcmd-reject-specifying-in-dot-ctags.d/stdout-expected.txt +0 -0
  259. data/ext/vendor/ctags/Tmain/map-for-unknown-language.d/exit-expected.txt +1 -0
  260. data/ext/vendor/ctags/Tmain/map-for-unknown-language.d/run.sh +7 -0
  261. data/ext/vendor/ctags/Tmain/map-for-unknown-language.d/stderr-expected.txt +1 -0
  262. data/ext/vendor/ctags/Tmain/map-for-unknown-language.d/stdout-expected.txt +0 -0
  263. data/ext/vendor/ctags/Tmain/map-lang-option.d/exit-expected.txt +1 -0
  264. data/ext/vendor/ctags/Tmain/map-lang-option.d/run.sh +17 -0
  265. data/ext/vendor/ctags/Tmain/map-lang-option.d/stderr-expected.txt +0 -0
  266. data/ext/vendor/ctags/Tmain/map-lang-option.d/stdout-expected.txt +5 -0
  267. data/ext/vendor/ctags/Tmain/map-removing.d/ada.m +2 -0
  268. data/ext/vendor/ctags/Tmain/map-removing.d/exit-expected.txt +1 -0
  269. data/ext/vendor/ctags/Tmain/map-removing.d/matlab.m +1 -0
  270. data/ext/vendor/ctags/Tmain/map-removing.d/objc.m +1 -0
  271. data/ext/vendor/ctags/Tmain/map-removing.d/run.sh +45 -0
  272. data/ext/vendor/ctags/Tmain/map-removing.d/stderr-expected.txt +0 -0
  273. data/ext/vendor/ctags/Tmain/map-removing.d/stdout-expected.txt +32 -0
  274. data/ext/vendor/ctags/Tmain/maxdepth.d/run.sh +15 -0
  275. data/ext/vendor/ctags/Tmain/maxdepth.d/src/a.c +4 -0
  276. data/ext/vendor/ctags/Tmain/maxdepth.d/src/subdir/b.c +5 -0
  277. data/ext/vendor/ctags/Tmain/maxdepth.d/stdout-expected.txt +5 -0
  278. data/ext/vendor/ctags/Tmain/nameless-long-option.d/exit-expected.txt +1 -0
  279. data/ext/vendor/ctags/Tmain/nameless-long-option.d/run.sh +7 -0
  280. data/ext/vendor/ctags/Tmain/nameless-long-option.d/stderr-expected.txt +2 -0
  281. data/ext/vendor/ctags/Tmain/nameless-long-option.d/stdout-expected.txt +0 -0
  282. data/ext/vendor/ctags/Tmain/no-input-encoding-option.d/exit-expected.txt +1 -0
  283. data/ext/vendor/ctags/Tmain/no-input-encoding-option.d/input.java +4 -0
  284. data/ext/vendor/ctags/Tmain/no-input-encoding-option.d/input.js +1 -0
  285. data/ext/vendor/ctags/Tmain/no-input-encoding-option.d/run.sh +13 -0
  286. data/ext/vendor/ctags/Tmain/no-input-encoding-option.d/stderr-expected.txt +1 -0
  287. data/ext/vendor/ctags/Tmain/no-input-encoding-option.d/stdout-expected.txt +0 -0
  288. data/ext/vendor/ctags/Tmain/null-description-in-pseudo-tag.d/exit-expected.txt +1 -0
  289. data/ext/vendor/ctags/Tmain/null-description-in-pseudo-tag.d/run.sh +9 -0
  290. data/ext/vendor/ctags/Tmain/null-description-in-pseudo-tag.d/stdout-expected.txt +1 -0
  291. data/ext/vendor/ctags/Tmain/omit-long-patterns.d/gen.sh +39 -0
  292. data/ext/vendor/ctags/Tmain/omit-long-patterns.d/input.sh +16 -0
  293. data/ext/vendor/ctags/Tmain/omit-long-patterns.d/run.sh +5 -0
  294. data/ext/vendor/ctags/Tmain/omit-long-patterns.d/stdout-expected.txt +3 -0
  295. data/ext/vendor/ctags/Tmain/option-echo-and-force-quit.d/exit-expected.txt +1 -0
  296. data/ext/vendor/ctags/Tmain/option-echo-and-force-quit.d/run.sh +8 -0
  297. data/ext/vendor/ctags/Tmain/option-echo-and-force-quit.d/stderr-expected.txt +3 -0
  298. data/ext/vendor/ctags/Tmain/option-echo-and-force-quit.d/stdout-expected.txt +0 -0
  299. data/ext/vendor/ctags/Tmain/output-encoding-option.d/exit-expected.txt +1 -0
  300. data/ext/vendor/ctags/Tmain/output-encoding-option.d/input.java +4 -0
  301. data/ext/vendor/ctags/Tmain/output-encoding-option.d/input.js +1 -0
  302. data/ext/vendor/ctags/Tmain/output-encoding-option.d/run.sh +21 -0
  303. data/ext/vendor/ctags/Tmain/output-encoding-option.d/stderr-expected.txt +0 -0
  304. data/ext/vendor/ctags/Tmain/output-encoding-option.d/stdout-expected.txt +0 -0
  305. data/ext/vendor/ctags/Tmain/output-encoding-option.d/tags-expected.txt +10 -0
  306. data/ext/vendor/ctags/Tmain/output-format-option.d/input.c +5 -0
  307. data/ext/vendor/ctags/Tmain/output-format-option.d/run.sh +10 -0
  308. data/ext/vendor/ctags/Tmain/output-format-option.d/stdout-expected.txt +8 -0
  309. data/ext/vendor/ctags/Tmain/pattern-length-limit.d/input.java +3 -0
  310. data/ext/vendor/ctags/Tmain/pattern-length-limit.d/run.sh +17 -0
  311. data/ext/vendor/ctags/Tmain/pattern-length-limit.d/stdout-expected.txt +6 -0
  312. data/ext/vendor/ctags/Tmain/ptag-kind-desc.d/input.foo +1 -0
  313. data/ext/vendor/ctags/Tmain/ptag-kind-desc.d/input.sh +0 -0
  314. data/ext/vendor/ctags/Tmain/ptag-kind-desc.d/run.sh +17 -0
  315. data/ext/vendor/ctags/Tmain/ptag-kind-desc.d/stdout-expected.txt +16 -0
  316. data/ext/vendor/ctags/Tmain/readtags-qualifier-end-field.d/exit-expected.txt +1 -0
  317. data/ext/vendor/ctags/Tmain/readtags-qualifier-end-field.d/output.tags +10 -0
  318. data/ext/vendor/ctags/Tmain/readtags-qualifier-end-field.d/run.sh +23 -0
  319. data/ext/vendor/ctags/Tmain/readtags-qualifier-end-field.d/stderr-expected.txt +0 -0
  320. data/ext/vendor/ctags/Tmain/readtags-qualifier-end-field.d/stdout-expected.txt +3 -0
  321. data/ext/vendor/ctags/Tmain/readtags-qualifier.d/base.py +28 -0
  322. data/ext/vendor/ctags/Tmain/readtags-qualifier.d/exit-expected.txt +1 -0
  323. data/ext/vendor/ctags/Tmain/readtags-qualifier.d/output.tags +27 -0
  324. data/ext/vendor/ctags/Tmain/readtags-qualifier.d/run.sh +33 -0
  325. data/ext/vendor/ctags/Tmain/readtags-qualifier.d/stderr-expected.txt +0 -0
  326. data/ext/vendor/ctags/Tmain/readtags-qualifier.d/stdout-expected.txt +53 -0
  327. data/ext/vendor/ctags/Tmain/regex-for-unknown-language.d/exit-expected.txt +1 -0
  328. data/ext/vendor/ctags/Tmain/regex-for-unknown-language.d/run.sh +7 -0
  329. data/ext/vendor/ctags/Tmain/regex-for-unknown-language.d/stderr-expected.txt +1 -0
  330. data/ext/vendor/ctags/Tmain/regex-for-unknown-language.d/stdout-expected.txt +0 -0
  331. data/ext/vendor/ctags/Tmain/selector-dont-select-disabled-lang.d/exit-expected.txt +1 -0
  332. data/ext/vendor/ctags/Tmain/selector-dont-select-disabled-lang.d/input.h +6 -0
  333. data/ext/vendor/ctags/Tmain/selector-dont-select-disabled-lang.d/run.sh +7 -0
  334. data/ext/vendor/ctags/Tmain/selector-dont-select-disabled-lang.d/stderr-expected.txt +0 -0
  335. data/ext/vendor/ctags/Tmain/selector-dont-select-disabled-lang.d/stdout-expected.txt +1 -0
  336. data/ext/vendor/ctags/Tmain/sorted-help-message.d/exit-expected.txt +1 -0
  337. data/ext/vendor/ctags/Tmain/sorted-help-message.d/run.sh +53 -0
  338. data/ext/vendor/ctags/Tmain/sorted-help-message.d/stderr-expected.txt +0 -0
  339. data/ext/vendor/ctags/Tmain/sorted-help-message.d/stdout-expected.txt +0 -0
  340. data/ext/vendor/ctags/Tmain/sorted-list-languages.d/exit-expected.txt +1 -0
  341. data/ext/vendor/ctags/Tmain/sorted-list-languages.d/run.sh +22 -0
  342. data/ext/vendor/ctags/Tmain/sorted-list-languages.d/stderr-expected.txt +0 -0
  343. data/ext/vendor/ctags/Tmain/sorted-list-languages.d/stdout-expected.txt +0 -0
  344. data/ext/vendor/ctags/Tmain/tags-pseudo-tags.d/exit-expected.txt +1 -0
  345. data/ext/vendor/ctags/Tmain/tags-pseudo-tags.d/input.php +1 -0
  346. data/ext/vendor/ctags/Tmain/tags-pseudo-tags.d/run.sh +15 -0
  347. data/ext/vendor/ctags/Tmain/tags-pseudo-tags.d/stderr-expected.txt +0 -0
  348. data/ext/vendor/ctags/Tmain/tags-pseudo-tags.d/stdout-expected.txt +24 -0
  349. data/ext/vendor/ctags/Tmain/tmain-example.d/exit-expected.txt +1 -0
  350. data/ext/vendor/ctags/Tmain/tmain-example.d/run.sh +8 -0
  351. data/ext/vendor/ctags/Tmain/tmain-example.d/stderr-expected.txt +0 -0
  352. data/ext/vendor/ctags/Tmain/tmain-example.d/stdout-expected.txt +4 -0
  353. data/ext/vendor/ctags/Tmain/tmain-example.d/tags-expected.txt +1 -0
  354. data/ext/vendor/ctags/Tmain/tmain-skip-example.d/run.sh +9 -0
  355. data/ext/vendor/ctags/Tmain/tmain-skip-example.d/stdout-expected.txt +1 -0
  356. data/ext/vendor/ctags/Tmain/two-inputs-requiring-scope-stack.d/a.dts +627 -0
  357. data/ext/vendor/ctags/Tmain/two-inputs-requiring-scope-stack.d/b.dts +3 -0
  358. data/ext/vendor/ctags/Tmain/utils.sh +31 -0
  359. data/ext/vendor/ctags/Tmain/warn-reusing-kind-letter.d/run.sh +13 -0
  360. data/ext/vendor/ctags/Tmain/warn-reusing-kind-letter.d/stdout-expected.txt +1 -0
  361. data/ext/vendor/ctags/Tmain/wildcard-in-lang-of-fields-option.d/run.sh +7 -0
  362. data/ext/vendor/ctags/Tmain/wildcard-in-lang-of-fields-option.d/stdout-expected.txt +2 -0
  363. data/ext/vendor/ctags/Tmain/wrong-parser-name-in-field.d/exit-expected.txt +1 -0
  364. data/ext/vendor/ctags/Tmain/wrong-parser-name-in-field.d/run.sh +7 -0
  365. data/ext/vendor/ctags/Tmain/wrong-parser-name-in-field.d/stderr-expected.txt +2 -0
  366. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setgid-executable.d/exit-expected.txt +1 -0
  367. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setgid-executable.d/run.sh +25 -0
  368. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setgid-executable.d/stderr-expected.txt +1 -0
  369. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setgid-executable.d/stdout-expected.txt +1 -0
  370. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setuid-executable.d/exit-expected.txt +1 -0
  371. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setuid-executable.d/run.sh +26 -0
  372. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setuid-executable.d/stderr-expected.txt +1 -0
  373. data/ext/vendor/ctags/Tmain/xcmd-dont-run-setuid-executable.d/stdout-expected.txt +1 -0
  374. data/ext/vendor/ctags/Tmain/xcmd-for-unknown-language.d/exit-expected.txt +1 -0
  375. data/ext/vendor/ctags/Tmain/xcmd-for-unknown-language.d/run.sh +7 -0
  376. data/ext/vendor/ctags/Tmain/xcmd-for-unknown-language.d/stderr-expected.txt +1 -0
  377. data/ext/vendor/ctags/Tmain/xcmd-for-unknown-language.d/stdout-expected.txt +0 -0
  378. data/ext/vendor/ctags/Tmain/xcmd-tag-relative-option.d/input.dog +2 -0
  379. data/ext/vendor/ctags/Tmain/xcmd-tag-relative-option.d/run.sh +28 -0
  380. data/ext/vendor/ctags/Tmain/xcmd-tag-relative-option.d/stderr-expected.txt +0 -0
  381. data/ext/vendor/ctags/Tmain/xcmd-tag-relative-option.d/stdout-expected.txt +6 -0
  382. data/ext/vendor/ctags/Tmain/xcmd-tag-relative-option.d/xcmd-dog +17 -0
  383. data/ext/vendor/ctags/Tmain/xformat-and-parser-own-field.d/input.rst +5 -0
  384. data/ext/vendor/ctags/Tmain/xformat-and-parser-own-field.d/run.sh +63 -0
  385. data/ext/vendor/ctags/Tmain/xformat-and-parser-own-field.d/stderr-expected.txt +3 -0
  386. data/ext/vendor/ctags/Tmain/xformat-and-parser-own-field.d/stdout-expected.txt +28 -0
  387. data/ext/vendor/ctags/Tmain/xformat-common-fields.d/input.py +3 -0
  388. data/ext/vendor/ctags/Tmain/xformat-common-fields.d/run.sh +13 -0
  389. data/ext/vendor/ctags/Tmain/xformat-common-fields.d/stdout-expected.txt +118 -0
  390. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-528-sml.d/expected.tags +0 -0
  391. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-528-sml.d/input.sml +1 -0
  392. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-529-bas.d/input.bas +1 -0
  393. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-530-css.d/input.css +1 -0
  394. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-531-make.d/input.mk +1 -0
  395. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-532-vim.d/input.vim +1 -0
  396. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-536-flex.d/input.as +1 -0
  397. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-537-beta.d/input.bet +1 -0
  398. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-538-sql.d/input.sql +1 -0
  399. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-539-js.d/input.js +1 -0
  400. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-540-fortran.d/input.f +1 -0
  401. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-541-json.d/input.json +1 -0
  402. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-542-vhdl.d/input.vhdl +1 -0
  403. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-543-eiffel.d/input.e +1 -0
  404. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-625-r.d/input.r +1 -0
  405. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-627-perl.d/input.pl +2 -0
  406. data/ext/vendor/ctags/Units/afl-fuzz.r/github-issue-628-vera.d/input.vr +1 -0
  407. data/ext/vendor/ctags/Units/conflib-recursive.d/args.ctags +1 -0
  408. data/ext/vendor/ctags/Units/conflib-recursive.d/expected.tags +6 -0
  409. data/ext/vendor/ctags/Units/conflib-recursive.d/features +2 -0
  410. data/ext/vendor/ctags/Units/conflib-recursive.d/input.cof +17 -0
  411. data/ext/vendor/ctags/Units/conflib-recursive.d/optlib/lang.d/def.d/a.ctags +4 -0
  412. data/ext/vendor/ctags/Units/conflib-recursive.d/optlib/lang.d/map.d/b.ctags +4 -0
  413. data/ext/vendor/ctags/Units/conflib-recursive.d/optlib/lang.d/regex.d/c.ctags +4 -0
  414. data/ext/vendor/ctags/Units/conflib-recursive.d/optlib/lang.d/regex.d/d.ctags +4 -0
  415. data/ext/vendor/ctags/Units/conflib-recursive.d/optlib/lang.d/regex.d/e.ctags +4 -0
  416. data/ext/vendor/ctags/Units/conflib-simple.d/args.ctags +1 -0
  417. data/ext/vendor/ctags/Units/conflib-simple.d/expected.tags +6 -0
  418. data/ext/vendor/ctags/Units/conflib-simple.d/features +1 -0
  419. data/ext/vendor/ctags/Units/conflib-simple.d/input.coffee +17 -0
  420. data/ext/vendor/ctags/Units/conflib-simple.d/optlib/coffee.ctags +8 -0
  421. data/ext/vendor/ctags/Units/cork-etags.d/expected.tags-e +5 -0
  422. data/ext/vendor/ctags/Units/cork-etags.d/input.clj +9 -0
  423. data/ext/vendor/ctags/Units/cork-xref.d/expected.tags-x +3 -0
  424. data/ext/vendor/ctags/Units/cork-xref.d/input.clj +9 -0
  425. data/ext/vendor/ctags/Units/dotted-names.d/expected.tags +19 -0
  426. data/ext/vendor/ctags/Units/dotted-names.d/input.json +25 -0
  427. data/ext/vendor/ctags/Units/extension-with-template-suffix.d/expected.tags +1 -0
  428. data/ext/vendor/ctags/Units/extension-with-template-suffix.d/input.c.in +5 -0
  429. data/ext/vendor/ctags/Units/extra-file-scope-option.d/args.ctags +1 -0
  430. data/ext/vendor/ctags/Units/extra-file-scope-option.d/expected.tags +1 -0
  431. data/ext/vendor/ctags/Units/extra-file-scope-option.d/input.c +2 -0
  432. data/ext/vendor/ctags/Units/extra-total-lines.d/args.ctags +9 -0
  433. data/ext/vendor/ctags/Units/extra-total-lines.d/expected.tags +2 -0
  434. data/ext/vendor/ctags/Units/extra-total-lines.d/foo.h +27 -0
  435. data/ext/vendor/ctags/Units/extra-total-lines.d/input.c +6 -0
  436. data/ext/vendor/ctags/Units/file-kind-alt.d/args.ctags +1 -0
  437. data/ext/vendor/ctags/Units/file-kind-alt.d/expected.tags +1 -0
  438. data/ext/vendor/ctags/Units/file-kind-alt.d/input.rb +0 -0
  439. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/README +9 -0
  440. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/csharp-fha-0.d/expected.tags +0 -0
  441. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/csharp-fha-0.d/input.cs +1 -0
  442. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/d-fha-0.d/README +5 -0
  443. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/d-fha-0.d/expected.tags +1 -0
  444. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/d-fha-0.d/input.d +1 -0
  445. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/eiffel-fha-0.d/expected.tags +0 -0
  446. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/eiffel-fha-0.d/input.e +1 -0
  447. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/java-fha-0.d/expected.tags +0 -0
  448. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/java-fha-0.d/input.java +1 -0
  449. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/systemverilog-fha-0.d/expected.tags +0 -0
  450. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/systemverilog-fha-0.d/input.sv +1 -0
  451. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/vera-fha-0.d/expected.tags +1 -0
  452. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/vera-fha-0.d/input.vr +1 -0
  453. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/verilog-fha-0.d/expected.tags +0 -0
  454. data/ext/vendor/ctags/Units/fuzz-hitting-assertions.r/verilog-fha-0.d/input.v +1 -0
  455. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-after-shbang.d/args.ctags +1 -0
  456. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-after-shbang.d/expected.tags +1 -0
  457. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-after-shbang.d/input.nolang +4 -0
  458. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-eof.d/args.ctags +1 -0
  459. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-eof.d/expected.tags +1 -0
  460. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-eof.d/input.nolang +34 -0
  461. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-firstline0.d/args.ctags +1 -0
  462. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-firstline0.d/expected.tags +1 -0
  463. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-firstline0.d/input.nolang +3 -0
  464. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-firstline1.d/args.ctags +1 -0
  465. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-firstline1.d/expected.tags +1 -0
  466. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-emacs-firstline1.d/input.nolang +6 -0
  467. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim0.d/args.ctags +1 -0
  468. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim0.d/expected.tags +1 -0
  469. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim0.d/input.nolang +7 -0
  470. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim1.d/args.ctags +1 -0
  471. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim1.d/expected.tags +1 -0
  472. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim1.d/input.nolang +7 -0
  473. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim2.d/args.ctags +2 -0
  474. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim2.d/expected.tags +1 -0
  475. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-vim2.d/input.nolang +7 -0
  476. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-zsh-autoload.d/args.ctags +2 -0
  477. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-zsh-autoload.d/expected.tags +1 -0
  478. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-zsh-autoload.d/input.nolang +4 -0
  479. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-zsh-compdef.d/args.ctags +3 -0
  480. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-zsh-compdef.d/expected.tags +1 -0
  481. data/ext/vendor/ctags/Units/main-guessing.r/nolang-modeline-zsh-compdef.d/input.nolang +4 -0
  482. data/ext/vendor/ctags/Units/main-guessing.r/nolang-shebang-python3.d/args.ctags +1 -0
  483. data/ext/vendor/ctags/Units/main-guessing.r/nolang-shebang-python3.d/expected.tags +1 -0
  484. data/ext/vendor/ctags/Units/main-guessing.r/nolang-shebang-python3.d/input.nolang +5 -0
  485. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags-pseudo.d/expected.tags +3 -0
  486. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags-pseudo.d/features +1 -0
  487. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags-pseudo.d/filter +2 -0
  488. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags-pseudo.d/input.coffee +2 -0
  489. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags-pseudo.d/languages +1 -0
  490. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags.d/expected.tags +5 -0
  491. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags.d/features +1 -0
  492. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags.d/input.coffee +17 -0
  493. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-coffeetags.d/languages +1 -0
  494. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-etags.d/expected.tags-e +7 -0
  495. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-etags.d/features +1 -0
  496. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-etags.d/input.coffee +17 -0
  497. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-etags.d/languages +1 -0
  498. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-simple.d/args.ctags +6 -0
  499. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-simple.d/expected.tags +3 -0
  500. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-simple.d/features +2 -0
  501. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-simple.d/input.dog +2 -0
  502. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-simple.d/xcmd-dog +17 -0
  503. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-xref.d/expected.tags-x +5 -0
  504. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-xref.d/features +1 -0
  505. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-xref.d/input.coffee +17 -0
  506. data/ext/vendor/ctags/Units/main-xcmd.r/xcmd-xref.d/languages +1 -0
  507. data/ext/vendor/ctags/Units/matlab-tg-corpus.d/expected.tags +14 -0
  508. data/ext/vendor/ctags/Units/matlab-tg-corpus.d/features +1 -0
  509. data/ext/vendor/ctags/Units/matlab-tg-corpus.d/input.m +105 -0
  510. data/ext/vendor/ctags/Units/modeline-vs-2gram.m/args.ctags +1 -0
  511. data/ext/vendor/ctags/Units/modeline-vs-2gram.m/expected.tags +1 -0
  512. data/ext/vendor/ctags/Units/modeline-vs-2gram.m/input.m +3 -0
  513. data/ext/vendor/ctags/Units/noext-tg-matlab.d/args.ctags +1 -0
  514. data/ext/vendor/ctags/Units/noext-tg-matlab.d/expected.tags +14 -0
  515. data/ext/vendor/ctags/Units/noext-tg-matlab.d/features +1 -0
  516. data/ext/vendor/ctags/Units/noext-tg-matlab.d/input.nolang +106 -0
  517. data/ext/vendor/ctags/Units/noext-tg-objc.d/args.ctags +1 -0
  518. data/ext/vendor/ctags/Units/noext-tg-objc.d/expected.tags +17 -0
  519. data/ext/vendor/ctags/Units/noext-tg-objc.d/input.nolang +152 -0
  520. data/ext/vendor/ctags/Units/objc-tg-corpus.d/expected.tags +17 -0
  521. data/ext/vendor/ctags/Units/objc-tg-corpus.d/input.m +151 -0
  522. data/ext/vendor/ctags/Units/ocaml_empty.ml_etags.t/expected.tags-e +2 -0
  523. data/ext/vendor/ctags/Units/ocaml_empty.ml_etags.t/input.ml +0 -0
  524. data/ext/vendor/ctags/Units/ocaml_empty.ml_xref.t/expected.tags-x +1 -0
  525. data/ext/vendor/ctags/Units/ocaml_empty.ml_xref.t/input.ml +0 -0
  526. data/ext/vendor/ctags/Units/option-add-alias.d/args.ctags +2 -0
  527. data/ext/vendor/ctags/Units/option-add-alias.d/expected.tags +1 -0
  528. data/ext/vendor/ctags/Units/option-add-alias.d/input.nolang +3 -0
  529. data/ext/vendor/ctags/Units/option-disable-kind-in-both.d/args.ctags +2 -0
  530. data/ext/vendor/ctags/Units/option-disable-kind-in-both.d/expected.tags +0 -0
  531. data/ext/vendor/ctags/Units/option-disable-kind-in-both.d/input.c +6 -0
  532. data/ext/vendor/ctags/Units/option-disable-kind-in-builtin.d/args.ctags +2 -0
  533. data/ext/vendor/ctags/Units/option-disable-kind-in-builtin.d/expected.tags +1 -0
  534. data/ext/vendor/ctags/Units/option-disable-kind-in-builtin.d/features +1 -0
  535. data/ext/vendor/ctags/Units/option-disable-kind-in-builtin.d/input.c +6 -0
  536. data/ext/vendor/ctags/Units/option-disable-kind-in-regex.d/args.ctags +2 -0
  537. data/ext/vendor/ctags/Units/option-disable-kind-in-regex.d/expected.tags +1 -0
  538. data/ext/vendor/ctags/Units/option-disable-kind-in-regex.d/input.c +6 -0
  539. data/ext/vendor/ctags/Units/option-lang-compatibility.d/args.ctags +3 -0
  540. data/ext/vendor/ctags/Units/option-lang-compatibility.d/expected.tags +3 -0
  541. data/ext/vendor/ctags/Units/option-lang-compatibility.d/features +1 -0
  542. data/ext/vendor/ctags/Units/option-lang-compatibility.d/input.foo +3 -0
  543. data/ext/vendor/ctags/Units/option-langmap-ext--ext.d/args.ctags +1 -0
  544. data/ext/vendor/ctags/Units/option-langmap-ext--ext.d/expected.tags +1 -0
  545. data/ext/vendor/ctags/Units/option-langmap-ext--ext.d/input.x +5 -0
  546. data/ext/vendor/ctags/Units/option-langmap-ext--pat-ext.d/args.ctags +1 -0
  547. data/ext/vendor/ctags/Units/option-langmap-ext--pat-ext.d/expected.tags +1 -0
  548. data/ext/vendor/ctags/Units/option-langmap-ext--pat-ext.d/input.zzz +5 -0
  549. data/ext/vendor/ctags/Units/option-langmap-ext-pat--ext.d/args.ctags +1 -0
  550. data/ext/vendor/ctags/Units/option-langmap-ext-pat--ext.d/expected.tags +1 -0
  551. data/ext/vendor/ctags/Units/option-langmap-ext-pat--ext.d/input.x +5 -0
  552. data/ext/vendor/ctags/Units/option-langmap-pat--ext.d/args.ctags +1 -0
  553. data/ext/vendor/ctags/Units/option-langmap-pat--ext.d/expected.tags +1 -0
  554. data/ext/vendor/ctags/Units/option-langmap-pat--ext.d/input.x +5 -0
  555. data/ext/vendor/ctags/Units/option-langmap-pat--pat-ext.d/args.ctags +1 -0
  556. data/ext/vendor/ctags/Units/option-langmap-pat--pat-ext.d/expected.tags +1 -0
  557. data/ext/vendor/ctags/Units/option-langmap-pat--pat-ext.d/input.zzz +5 -0
  558. data/ext/vendor/ctags/Units/option-same-kind-in-regex-and-builtin.d/args.ctags +2 -0
  559. data/ext/vendor/ctags/Units/option-same-kind-in-regex-and-builtin.d/expected.tags +2 -0
  560. data/ext/vendor/ctags/Units/option-same-kind-in-regex-and-builtin.d/features +1 -0
  561. data/ext/vendor/ctags/Units/option-same-kind-in-regex-and-builtin.d/input.c +7 -0
  562. data/ext/vendor/ctags/Units/parser-ada.r/ada-adb.d/expected.tags +7 -0
  563. data/ext/vendor/ctags/Units/parser-ada.r/ada-adb.d/input.adb +35 -0
  564. data/ext/vendor/ctags/Units/parser-ada.r/ada-ads.d/expected.tags +16 -0
  565. data/ext/vendor/ctags/Units/parser-ada.r/ada-ads.d/input.ads +50 -0
  566. data/ext/vendor/ctags/Units/parser-ada.r/ada-function.d/args.ctags +1 -0
  567. data/ext/vendor/ctags/Units/parser-ada.r/ada-function.d/input.broken +1 -0
  568. data/ext/vendor/ctags/Units/parser-ada.r/ada-partial-bug.d/expected.tags +1 -0
  569. data/ext/vendor/ctags/Units/parser-ada.r/ada-partial-bug.d/input.adb +3 -0
  570. data/ext/vendor/ctags/Units/parser-ada.r/ada-partial-bug2.d/input.adb +3 -0
  571. data/ext/vendor/ctags/Units/parser-ada.r/ada-partial-type.d/expected.tags +4 -0
  572. data/ext/vendor/ctags/Units/parser-ada.r/ada-partial-type.d/input.ads +8 -0
  573. data/ext/vendor/ctags/Units/parser-ada.r/ada-protected.d/input.adb +1 -0
  574. data/ext/vendor/ctags/Units/parser-ansibleplaybook.r/play-name.d/args.ctags +1 -0
  575. data/ext/vendor/ctags/Units/parser-ansibleplaybook.r/play-name.d/expected.tags +2 -0
  576. data/ext/vendor/ctags/Units/parser-ansibleplaybook.r/play-name.d/features +1 -0
  577. data/ext/vendor/ctags/Units/parser-ansibleplaybook.r/play-name.d/input.yml +4 -0
  578. data/ext/vendor/ctags/Units/parser-ant.r/regex-based.d/args.ctags +1 -0
  579. data/ext/vendor/ctags/Units/parser-ant.r/regex-based.d/expected.tags +9 -0
  580. data/ext/vendor/ctags/Units/parser-ant.r/regex-based.d/features +1 -0
  581. data/ext/vendor/ctags/Units/parser-ant.r/regex-based.d/input.xml +102 -0
  582. data/ext/vendor/ctags/Units/parser-ant.r/xpath-based.d/args.ctags +3 -0
  583. data/ext/vendor/ctags/Units/parser-ant.r/xpath-based.d/expected.tags +9 -0
  584. data/ext/vendor/ctags/Units/parser-ant.r/xpath-based.d/features +1 -0
  585. data/ext/vendor/ctags/Units/parser-ant.r/xpath-based.d/input.xml +103 -0
  586. data/ext/vendor/ctags/Units/parser-asm.r/68hc11.asm.d/expected.tags +10 -0
  587. data/ext/vendor/ctags/Units/parser-asm.r/68hc11.asm.d/input.asm +23 -0
  588. data/ext/vendor/ctags/Units/parser-asm.r/bd32.s.d/expected.tags +5 -0
  589. data/ext/vendor/ctags/Units/parser-asm.r/bd32.s.d/input.s +43 -0
  590. data/ext/vendor/ctags/Units/parser-asm.r/bug538629.asm.d/expected.tags +1 -0
  591. data/ext/vendor/ctags/Units/parser-asm.r/bug538629.asm.d/input.asm +1 -0
  592. data/ext/vendor/ctags/Units/parser-asm.r/gas.s.d/args.ctags +1 -0
  593. data/ext/vendor/ctags/Units/parser-asm.r/gas.s.d/expected.tags +3 -0
  594. data/ext/vendor/ctags/Units/parser-asm.r/gas.s.d/input.s +13 -0
  595. data/ext/vendor/ctags/Units/parser-asm.r/masm.asm.d/expected.tags +11 -0
  596. data/ext/vendor/ctags/Units/parser-asm.r/masm.asm.d/input.asm +33 -0
  597. data/ext/vendor/ctags/Units/parser-asm.r/moniker.x68.d/expected.tags +15 -0
  598. data/ext/vendor/ctags/Units/parser-asm.r/moniker.x68.d/input.x68 +116 -0
  599. data/ext/vendor/ctags/Units/parser-autoconf.r/m4-disable-ac.d/args.ctags +4 -0
  600. data/ext/vendor/ctags/Units/parser-autoconf.r/m4-disable-ac.d/expected.tags +2 -0
  601. data/ext/vendor/ctags/Units/parser-autoconf.r/m4-disable-ac.d/input.ac +12 -0
  602. data/ext/vendor/ctags/Units/parser-autoconf.r/nested-block.ac.b/DESC.rst +15 -0
  603. data/ext/vendor/ctags/Units/parser-autoconf.r/nested-block.ac.b/args.ctags +2 -0
  604. data/ext/vendor/ctags/Units/parser-autoconf.r/nested-block.ac.b/expected.tags +8 -0
  605. data/ext/vendor/ctags/Units/parser-autoconf.r/nested-block.ac.b/input.ac +12 -0
  606. data/ext/vendor/ctags/Units/parser-autoconf.r/simple.ac.d/args.ctags +2 -0
  607. data/ext/vendor/ctags/Units/parser-autoconf.r/simple.ac.d/expected.tags +14 -0
  608. data/ext/vendor/ctags/Units/parser-autoconf.r/simple.ac.d/input.ac +47 -0
  609. data/ext/vendor/ctags/Units/parser-automake.r/disable-make-parser.d/args.ctags +4 -0
  610. data/ext/vendor/ctags/Units/parser-automake.r/disable-make-parser.d/expected.tags +2 -0
  611. data/ext/vendor/ctags/Units/parser-automake.r/disable-make-parser.d/input.am +1 -0
  612. data/ext/vendor/ctags/Units/parser-automake.r/langstack.am.d/args.ctags +4 -0
  613. data/ext/vendor/ctags/Units/parser-automake.r/langstack.am.d/expected.tags +9 -0
  614. data/ext/vendor/ctags/Units/parser-automake.r/langstack.am.d/input.am +15 -0
  615. data/ext/vendor/ctags/Units/parser-automake.r/simple.am.d/args.ctags +4 -0
  616. data/ext/vendor/ctags/Units/parser-automake.r/simple.am.d/expected.tags +47 -0
  617. data/ext/vendor/ctags/Units/parser-automake.r/simple.am.d/input.am +92 -0
  618. data/ext/vendor/ctags/Units/parser-awk.r/gawk-alias.d/args.ctags +1 -0
  619. data/ext/vendor/ctags/Units/parser-awk.r/gawk-alias.d/expected.tags +1 -0
  620. data/ext/vendor/ctags/Units/parser-awk.r/gawk-alias.d/input.unknown +10 -0
  621. data/ext/vendor/ctags/Units/parser-awk.r/simple-awk.d/expected.tags +1 -0
  622. data/ext/vendor/ctags/Units/parser-awk.r/simple-awk.d/input.awk +9 -0
  623. data/ext/vendor/ctags/Units/parser-awk.r/simple2-awk.d/expected.tags +2 -0
  624. data/ext/vendor/ctags/Units/parser-awk.r/simple2-awk.d/input.awk +37 -0
  625. data/ext/vendor/ctags/Units/parser-c.r/attr-attached-to-array-failed.b/args.ctags +1 -0
  626. data/ext/vendor/ctags/Units/parser-c.r/attr-attached-to-array-failed.b/expected.tags +3 -0
  627. data/ext/vendor/ctags/Units/parser-c.r/attr-attached-to-array-failed.b/input.c +3 -0
  628. data/ext/vendor/ctags/Units/parser-c.r/attr-attached-to-array.d/args.ctags +1 -0
  629. data/ext/vendor/ctags/Units/parser-c.r/attr-attached-to-array.d/expected.tags +5 -0
  630. data/ext/vendor/ctags/Units/parser-c.r/attr-attached-to-array.d/input.c +4 -0
  631. data/ext/vendor/ctags/Units/parser-c.r/backslash-in-input.c.d/expected.tags +1 -0
  632. data/ext/vendor/ctags/Units/parser-c.r/backslash-in-input.c.d/input.c +5 -0
  633. data/ext/vendor/ctags/Units/parser-c.r/bit_field.c.d/args.ctags +2 -0
  634. data/ext/vendor/ctags/Units/parser-c.r/bit_field.c.d/expected.tags +25 -0
  635. data/ext/vendor/ctags/Units/parser-c.r/bit_field.c.d/input.c +35 -0
  636. data/ext/vendor/ctags/Units/parser-c.r/bug1020715.c.d/args.ctags +3 -0
  637. data/ext/vendor/ctags/Units/parser-c.r/bug1020715.c.d/expected.tags +1 -0
  638. data/ext/vendor/ctags/Units/parser-c.r/bug1020715.c.d/input.c +52 -0
  639. data/ext/vendor/ctags/Units/parser-c.r/bug1085585.c.d/args.ctags +1 -0
  640. data/ext/vendor/ctags/Units/parser-c.r/bug1085585.c.d/expected.tags +2 -0
  641. data/ext/vendor/ctags/Units/parser-c.r/bug1085585.c.d/input.c +37 -0
  642. data/ext/vendor/ctags/Units/parser-c.r/bug1086609.c.d/expected.tags +1 -0
  643. data/ext/vendor/ctags/Units/parser-c.r/bug1086609.c.d/input.c +41 -0
  644. data/ext/vendor/ctags/Units/parser-c.r/bug1198.c.d/args.ctags +2 -0
  645. data/ext/vendor/ctags/Units/parser-c.r/bug1198.c.d/expected.tags +4 -0
  646. data/ext/vendor/ctags/Units/parser-c.r/bug1198.c.d/input.c +32 -0
  647. data/ext/vendor/ctags/Units/parser-c.r/bug1201689.c.d/expected.tags +1 -0
  648. data/ext/vendor/ctags/Units/parser-c.r/bug1201689.c.d/input.c +35 -0
  649. data/ext/vendor/ctags/Units/parser-c.r/bug1458930.c.d/args.ctags +1 -0
  650. data/ext/vendor/ctags/Units/parser-c.r/bug1458930.c.d/expected.tags +2 -0
  651. data/ext/vendor/ctags/Units/parser-c.r/bug1458930.c.d/input.c +3 -0
  652. data/ext/vendor/ctags/Units/parser-c.r/bug1466117.c.d/expected.tags +7 -0
  653. data/ext/vendor/ctags/Units/parser-c.r/bug1466117.c.d/input.c +10 -0
  654. data/ext/vendor/ctags/Units/parser-c.r/bug1491666.c.d/args.ctags +1 -0
  655. data/ext/vendor/ctags/Units/parser-c.r/bug1491666.c.d/expected.tags +7 -0
  656. data/ext/vendor/ctags/Units/parser-c.r/bug1491666.c.d/input.c +13 -0
  657. data/ext/vendor/ctags/Units/parser-c.r/bug1764143.h.d/expected.tags +2 -0
  658. data/ext/vendor/ctags/Units/parser-c.r/bug1764143.h.d/input.h +27 -0
  659. data/ext/vendor/ctags/Units/parser-c.r/bug507864.c.d/README +13 -0
  660. data/ext/vendor/ctags/Units/parser-c.r/bug507864.c.d/expected.tags +2 -0
  661. data/ext/vendor/ctags/Units/parser-c.r/bug507864.c.d/input.c +2 -0
  662. data/ext/vendor/ctags/Units/parser-c.r/bug556645.c.d/README +19 -0
  663. data/ext/vendor/ctags/Units/parser-c.r/bug556645.c.d/expected.tags +2 -0
  664. data/ext/vendor/ctags/Units/parser-c.r/bug556645.c.d/input.c +39 -0
  665. data/ext/vendor/ctags/Units/parser-c.r/bug556646.c.d/expected.tags +21 -0
  666. data/ext/vendor/ctags/Units/parser-c.r/bug556646.c.d/input.c +42 -0
  667. data/ext/vendor/ctags/Units/parser-c.r/bug945.c.d/args.ctags +2 -0
  668. data/ext/vendor/ctags/Units/parser-c.r/bug945.c.d/expected.tags +1 -0
  669. data/ext/vendor/ctags/Units/parser-c.r/bug945.c.d/input.c +11 -0
  670. data/ext/vendor/ctags/Units/parser-c.r/bug950.c.d/args.ctags +2 -0
  671. data/ext/vendor/ctags/Units/parser-c.r/bug950.c.d/expected.tags +7 -0
  672. data/ext/vendor/ctags/Units/parser-c.r/bug950.c.d/input.c +20 -0
  673. data/ext/vendor/ctags/Units/parser-c.r/c-define-mixed.d/args.ctags +2 -0
  674. data/ext/vendor/ctags/Units/parser-c.r/c-define-mixed.d/expected.tags +2 -0
  675. data/ext/vendor/ctags/Units/parser-c.r/c-define-mixed.d/input.c +7 -0
  676. data/ext/vendor/ctags/Units/parser-c.r/c-digraphs.d/expected.tags +11 -0
  677. data/ext/vendor/ctags/Units/parser-c.r/c-digraphs.d/input.c +35 -0
  678. data/ext/vendor/ctags/Units/parser-c.r/c-include.d/args.ctags +3 -0
  679. data/ext/vendor/ctags/Units/parser-c.r/c-include.d/expected.tags +12 -0
  680. data/ext/vendor/ctags/Units/parser-c.r/c-include.d/input.c +32 -0
  681. data/ext/vendor/ctags/Units/parser-c.r/c-knr.d/args.ctags +2 -0
  682. data/ext/vendor/ctags/Units/parser-c.r/c-knr.d/expected.tags +12 -0
  683. data/ext/vendor/ctags/Units/parser-c.r/c-knr.d/input.c +39 -0
  684. data/ext/vendor/ctags/Units/parser-c.r/c-label.d/args.ctags +1 -0
  685. data/ext/vendor/ctags/Units/parser-c.r/c-label.d/expected.tags +2 -0
  686. data/ext/vendor/ctags/Units/parser-c.r/c-label.d/input.c +16 -0
  687. data/ext/vendor/ctags/Units/parser-c.r/c-multichars-between-single-quotes.d/expected.tags +1 -0
  688. data/ext/vendor/ctags/Units/parser-c.r/c-multichars-between-single-quotes.d/input.c +1 -0
  689. data/ext/vendor/ctags/Units/parser-c.r/c-sample.d/expected.tags +1 -0
  690. data/ext/vendor/ctags/Units/parser-c.r/c-sample.d/input.c +5 -0
  691. data/ext/vendor/ctags/Units/parser-c.r/c-size_t-wchar_t-typedef.d/expected.tags +2 -0
  692. data/ext/vendor/ctags/Units/parser-c.r/c-size_t-wchar_t-typedef.d/input.c +3 -0
  693. data/ext/vendor/ctags/Units/parser-c.r/c-trigraphs.d/expected.tags +14 -0
  694. data/ext/vendor/ctags/Units/parser-c.r/c-trigraphs.d/input.c +56 -0
  695. data/ext/vendor/ctags/Units/parser-c.r/complex_decl.c.d/expected.tags +1 -0
  696. data/ext/vendor/ctags/Units/parser-c.r/complex_decl.c.d/input.c +2 -0
  697. data/ext/vendor/ctags/Units/parser-c.r/directives.c.d/README +1 -0
  698. data/ext/vendor/ctags/Units/parser-c.r/directives.c.d/args.ctags +2 -0
  699. data/ext/vendor/ctags/Units/parser-c.r/directives.c.d/expected.tags +21 -0
  700. data/ext/vendor/ctags/Units/parser-c.r/directives.c.d/input.c +72 -0
  701. data/ext/vendor/ctags/Units/parser-c.r/end-field-of-macro.d/args.ctags +2 -0
  702. data/ext/vendor/ctags/Units/parser-c.r/end-field-of-macro.d/expected.tags +3 -0
  703. data/ext/vendor/ctags/Units/parser-c.r/end-field-of-macro.d/input.c +8 -0
  704. data/ext/vendor/ctags/Units/parser-c.r/enum.c.d/args.ctags +1 -0
  705. data/ext/vendor/ctags/Units/parser-c.r/enum.c.d/expected.tags +16 -0
  706. data/ext/vendor/ctags/Units/parser-c.r/enum.c.d/input.c +33 -0
  707. data/ext/vendor/ctags/Units/parser-c.r/extern_variable.h.b/README +15 -0
  708. data/ext/vendor/ctags/Units/parser-c.r/extern_variable.h.b/args.ctags +1 -0
  709. data/ext/vendor/ctags/Units/parser-c.r/extern_variable.h.b/expected.tags +0 -0
  710. data/ext/vendor/ctags/Units/parser-c.r/extern_variable.h.b/input.h +4 -0
  711. data/ext/vendor/ctags/Units/parser-c.r/func_typedef.h.d/expected.tags +1 -0
  712. data/ext/vendor/ctags/Units/parser-c.r/func_typedef.h.d/input.h +1 -0
  713. data/ext/vendor/ctags/Units/parser-c.r/if0.c.d/args.ctags +1 -0
  714. data/ext/vendor/ctags/Units/parser-c.r/if0.c.d/expected.tags +2 -0
  715. data/ext/vendor/ctags/Units/parser-c.r/if0.c.d/input.c +5 -0
  716. data/ext/vendor/ctags/Units/parser-c.r/line_directives.c.d/README +73 -0
  717. data/ext/vendor/ctags/Units/parser-c.r/line_directives.c.d/args.ctags +5 -0
  718. data/ext/vendor/ctags/Units/parser-c.r/line_directives.c.d/expected.tags +5 -0
  719. data/ext/vendor/ctags/Units/parser-c.r/line_directives.c.d/filter +19 -0
  720. data/ext/vendor/ctags/Units/parser-c.r/line_directives.c.d/input.c +16 -0
  721. data/ext/vendor/ctags/Units/parser-c.r/local.c.d/args.ctags +1 -0
  722. data/ext/vendor/ctags/Units/parser-c.r/local.c.d/expected.tags +6 -0
  723. data/ext/vendor/ctags/Units/parser-c.r/local.c.d/input.c +22 -0
  724. data/ext/vendor/ctags/Units/parser-c.r/macros.c.d/README +45 -0
  725. data/ext/vendor/ctags/Units/parser-c.r/macros.c.d/args.ctags +5 -0
  726. data/ext/vendor/ctags/Units/parser-c.r/macros.c.d/expected.tags +9 -0
  727. data/ext/vendor/ctags/Units/parser-c.r/macros.c.d/input.c +15 -0
  728. data/ext/vendor/ctags/Units/parser-c.r/option-disable-undef.c.d/args.ctags +1 -0
  729. data/ext/vendor/ctags/Units/parser-c.r/option-disable-undef.c.d/expected.tags +1 -0
  730. data/ext/vendor/ctags/Units/parser-c.r/option-disable-undef.c.d/input.c +2 -0
  731. data/ext/vendor/ctags/Units/parser-c.r/prototype.h.d/args.ctags +2 -0
  732. data/ext/vendor/ctags/Units/parser-c.r/prototype.h.d/expected.tags +2 -0
  733. data/ext/vendor/ctags/Units/parser-c.r/prototype.h.d/input.h +2 -0
  734. data/ext/vendor/ctags/Units/parser-c.r/spurious_label_tags.c.d/args.ctags +1 -0
  735. data/ext/vendor/ctags/Units/parser-c.r/spurious_label_tags.c.d/expected.tags +1 -0
  736. data/ext/vendor/ctags/Units/parser-c.r/spurious_label_tags.c.d/input.c +17 -0
  737. data/ext/vendor/ctags/Units/parser-c.r/static_array.c.d/expected.tags +1 -0
  738. data/ext/vendor/ctags/Units/parser-c.r/static_array.c.d/input.c +3 -0
  739. data/ext/vendor/ctags/Units/parser-c.r/using-cxx-keyword-in-c-code.d/args.ctags +1 -0
  740. data/ext/vendor/ctags/Units/parser-c.r/using-cxx-keyword-in-c-code.d/expected.tags +1 -0
  741. data/ext/vendor/ctags/Units/parser-c.r/using-cxx-keyword-in-c-code.d/input.c +1 -0
  742. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/if0-false-with-param.c.d/args.ctags +2 -0
  743. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/if0-false-with-param.c.d/expected.tags +1 -0
  744. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/if0-false-with-param.c.d/input.c +5 -0
  745. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/if0-true-with-param.c.d/args.ctags +2 -0
  746. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/if0-true-with-param.c.d/expected.tags +2 -0
  747. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/if0-true-with-param.c.d/input.c +5 -0
  748. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/macros-specified-with-param.c.d/README +1 -0
  749. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/macros-specified-with-param.c.d/args.ctags +5 -0
  750. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/macros-specified-with-param.c.d/expected.tags +9 -0
  751. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/macros-specified-with-param.c.d/input.c +15 -0
  752. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/simple-cpreprocessor.d/args.ctags +3 -0
  753. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/simple-cpreprocessor.d/expected.tags +2 -0
  754. data/ext/vendor/ctags/Units/parser-cpreprocessor.r/simple-cpreprocessor.d/input.c +7 -0
  755. data/ext/vendor/ctags/Units/parser-css.r/css-at-rules.d/expected.tags +4 -0
  756. data/ext/vendor/ctags/Units/parser-css.r/css-at-rules.d/input.css +27 -0
  757. data/ext/vendor/ctags/Units/parser-css.r/css-at-supports.d/expected.tags +2 -0
  758. data/ext/vendor/ctags/Units/parser-css.r/css-at-supports.d/input.css +6 -0
  759. data/ext/vendor/ctags/Units/parser-css.r/css-attribute-selectors.d/expected.tags +5 -0
  760. data/ext/vendor/ctags/Units/parser-css.r/css-attribute-selectors.d/input.css +6 -0
  761. data/ext/vendor/ctags/Units/parser-css.r/css-comma-no-space.d/expected.tags +2 -0
  762. data/ext/vendor/ctags/Units/parser-css.r/css-comma-no-space.d/input.css +1 -0
  763. data/ext/vendor/ctags/Units/parser-css.r/css-namespace-selectors.d/expected.tags +3 -0
  764. data/ext/vendor/ctags/Units/parser-css.r/css-namespace-selectors.d/input.css +4 -0
  765. data/ext/vendor/ctags/Units/parser-css.r/css-pseudo-classes.d/expected.tags +11 -0
  766. data/ext/vendor/ctags/Units/parser-css.r/css-pseudo-classes.d/input.css +15 -0
  767. data/ext/vendor/ctags/Units/parser-css.r/css-simple.d/expected.tags +10 -0
  768. data/ext/vendor/ctags/Units/parser-css.r/css-simple.d/input.css +27 -0
  769. data/ext/vendor/ctags/Units/parser-css.r/css-singlequote-in-comment-issue2.d/expected.tags +2 -0
  770. data/ext/vendor/ctags/Units/parser-css.r/css-singlequote-in-comment-issue2.d/input.css +2 -0
  771. data/ext/vendor/ctags/Units/parser-css.r/css-tag-types.d/expected.tags +36 -0
  772. data/ext/vendor/ctags/Units/parser-css.r/css-tag-types.d/input.css +38 -0
  773. data/ext/vendor/ctags/Units/parser-css.r/css-trivial.d/expected.tags +5 -0
  774. data/ext/vendor/ctags/Units/parser-css.r/css-trivial.d/input.css +5 -0
  775. data/ext/vendor/ctags/Units/parser-cxx.r/1117-using-in-c.d/input.c +1 -0
  776. data/ext/vendor/ctags/Units/parser-cxx.r/README +3 -0
  777. data/ext/vendor/ctags/Units/parser-cxx.r/angle_bracket.cpp.d/expected.tags +3 -0
  778. data/ext/vendor/ctags/Units/parser-cxx.r/angle_bracket.cpp.d/input.cpp +16 -0
  779. data/ext/vendor/ctags/Units/parser-cxx.r/attribute.cpp.d/args.ctags +4 -0
  780. data/ext/vendor/ctags/Units/parser-cxx.r/attribute.cpp.d/expected.tags +28 -0
  781. data/ext/vendor/ctags/Units/parser-cxx.r/attribute.cpp.d/input.cpp +49 -0
  782. data/ext/vendor/ctags/Units/parser-cxx.r/brackets.cpp.d/args.ctags +3 -0
  783. data/ext/vendor/ctags/Units/parser-cxx.r/brackets.cpp.d/expected.tags +16 -0
  784. data/ext/vendor/ctags/Units/parser-cxx.r/brackets.cpp.d/input.cpp +51 -0
  785. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-1111.cpp.d/expected.tags +0 -0
  786. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-1111.cpp.d/input.cpp +1 -0
  787. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-871.cpp.d/args.ctags +1 -0
  788. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-871.cpp.d/expected.tags +2 -0
  789. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-871.cpp.d/input.cpp +24 -0
  790. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-pull-972.cpp.d/args.ctags +3 -0
  791. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-pull-972.cpp.d/expected.tags +7 -0
  792. data/ext/vendor/ctags/Units/parser-cxx.r/bug-github-pull-972.cpp.d/input.cpp +24 -0
  793. data/ext/vendor/ctags/Units/parser-cxx.r/bug1020715.cpp.d/expected.tags +1 -0
  794. data/ext/vendor/ctags/Units/parser-cxx.r/bug1020715.cpp.d/input.cpp +6 -0
  795. data/ext/vendor/ctags/Units/parser-cxx.r/bug1093123.cpp.d/args.ctags +2 -0
  796. data/ext/vendor/ctags/Units/parser-cxx.r/bug1093123.cpp.d/expected.tags +3 -0
  797. data/ext/vendor/ctags/Units/parser-cxx.r/bug1093123.cpp.d/input.cpp +7 -0
  798. data/ext/vendor/ctags/Units/parser-cxx.r/bug1187505.cpp.d/args.ctags +2 -0
  799. data/ext/vendor/ctags/Units/parser-cxx.r/bug1187505.cpp.d/expected.tags +1 -0
  800. data/ext/vendor/ctags/Units/parser-cxx.r/bug1187505.cpp.d/input.cpp +5 -0
  801. data/ext/vendor/ctags/Units/parser-cxx.r/bug1548443.cpp.d/args.ctags +3 -0
  802. data/ext/vendor/ctags/Units/parser-cxx.r/bug1548443.cpp.d/expected.tags +6 -0
  803. data/ext/vendor/ctags/Units/parser-cxx.r/bug1548443.cpp.d/input.cpp +9 -0
  804. data/ext/vendor/ctags/Units/parser-cxx.r/bug1563476.cpp.d/args.ctags +2 -0
  805. data/ext/vendor/ctags/Units/parser-cxx.r/bug1563476.cpp.d/expected.tags +3 -0
  806. data/ext/vendor/ctags/Units/parser-cxx.r/bug1563476.cpp.d/input.cpp +16 -0
  807. data/ext/vendor/ctags/Units/parser-cxx.r/bug1575055.cpp.d/README +3 -0
  808. data/ext/vendor/ctags/Units/parser-cxx.r/bug1575055.cpp.d/expected.tags +3 -0
  809. data/ext/vendor/ctags/Units/parser-cxx.r/bug1575055.cpp.d/input.cpp +4 -0
  810. data/ext/vendor/ctags/Units/parser-cxx.r/bug1585745.cpp.d/expected.tags +6 -0
  811. data/ext/vendor/ctags/Units/parser-cxx.r/bug1585745.cpp.d/input.cpp +8 -0
  812. data/ext/vendor/ctags/Units/parser-cxx.r/bug1770479.cpp.d/args.ctags +1 -0
  813. data/ext/vendor/ctags/Units/parser-cxx.r/bug1770479.cpp.d/expected.tags +4 -0
  814. data/ext/vendor/ctags/Units/parser-cxx.r/bug1770479.cpp.d/input.cpp +17 -0
  815. data/ext/vendor/ctags/Units/parser-cxx.r/bug1773926.cpp.d/args.ctags +1 -0
  816. data/ext/vendor/ctags/Units/parser-cxx.r/bug1773926.cpp.d/expected.tags +4 -0
  817. data/ext/vendor/ctags/Units/parser-cxx.r/bug1773926.cpp.d/input.cpp +12 -0
  818. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799340.cpp.d/expected.tags +3 -0
  819. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799340.cpp.d/input.cpp +3 -0
  820. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799343-1.cpp.d/args.ctags +2 -0
  821. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799343-1.cpp.d/expected.tags +7 -0
  822. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799343-1.cpp.d/input.cpp +10 -0
  823. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799343-2.cpp.d/args.ctags +2 -0
  824. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799343-2.cpp.d/expected.tags +15 -0
  825. data/ext/vendor/ctags/Units/parser-cxx.r/bug1799343-2.cpp.d/input.cpp +27 -0
  826. data/ext/vendor/ctags/Units/parser-cxx.r/bug1907083.cpp.d/expected.tags +4 -0
  827. data/ext/vendor/ctags/Units/parser-cxx.r/bug1907083.cpp.d/input.cpp +5 -0
  828. data/ext/vendor/ctags/Units/parser-cxx.r/bug1924919.cpp.d/README +17 -0
  829. data/ext/vendor/ctags/Units/parser-cxx.r/bug1924919.cpp.d/args.ctags +2 -0
  830. data/ext/vendor/ctags/Units/parser-cxx.r/bug1924919.cpp.d/expected.tags +4 -0
  831. data/ext/vendor/ctags/Units/parser-cxx.r/bug1924919.cpp.d/input.cpp +6 -0
  832. data/ext/vendor/ctags/Units/parser-cxx.r/bug639639.cpp.d/expected.tags +3 -0
  833. data/ext/vendor/ctags/Units/parser-cxx.r/bug639639.cpp.d/input.h +46 -0
  834. data/ext/vendor/ctags/Units/parser-cxx.r/bug639644.cpp.d/expected.tags +2 -0
  835. data/ext/vendor/ctags/Units/parser-cxx.r/bug639644.cpp.d/input.h +41 -0
  836. data/ext/vendor/ctags/Units/parser-cxx.r/bug665086.cpp.d/expected.tags +3 -0
  837. data/ext/vendor/ctags/Units/parser-cxx.r/bug665086.cpp.d/input.cpp +32 -0
  838. data/ext/vendor/ctags/Units/parser-cxx.r/bug834.cpp.d/args.ctags +2 -0
  839. data/ext/vendor/ctags/Units/parser-cxx.r/bug834.cpp.d/expected.tags +5 -0
  840. data/ext/vendor/ctags/Units/parser-cxx.r/bug834.cpp.d/input.cpp +17 -0
  841. data/ext/vendor/ctags/Units/parser-cxx.r/bug849591.cpp.d/expected.tags +2 -0
  842. data/ext/vendor/ctags/Units/parser-cxx.r/bug849591.cpp.d/input.cpp +56 -0
  843. data/ext/vendor/ctags/Units/parser-cxx.r/bug852368.cpp.d/args.ctags +2 -0
  844. data/ext/vendor/ctags/Units/parser-cxx.r/bug852368.cpp.d/expected.tags +1 -0
  845. data/ext/vendor/ctags/Units/parser-cxx.r/bug852368.cpp.d/input.cpp +34 -0
  846. data/ext/vendor/ctags/Units/parser-cxx.r/bug872494.cpp.d/expected.tags +5 -0
  847. data/ext/vendor/ctags/Units/parser-cxx.r/bug872494.cpp.d/input.cpp +43 -0
  848. data/ext/vendor/ctags/Units/parser-cxx.r/c-header-as-cpp.d/args.ctags +1 -0
  849. data/ext/vendor/ctags/Units/parser-cxx.r/c-header-as-cpp.d/expected.tags +3 -0
  850. data/ext/vendor/ctags/Units/parser-cxx.r/c-header-as-cpp.d/input.h +20 -0
  851. data/ext/vendor/ctags/Units/parser-cxx.r/class-inheritance.cpp.d/args.ctags +3 -0
  852. data/ext/vendor/ctags/Units/parser-cxx.r/class-inheritance.cpp.d/expected.tags +10 -0
  853. data/ext/vendor/ctags/Units/parser-cxx.r/class-inheritance.cpp.d/input.cpp +42 -0
  854. data/ext/vendor/ctags/Units/parser-cxx.r/class.cpp.d/args.ctags +3 -0
  855. data/ext/vendor/ctags/Units/parser-cxx.r/class.cpp.d/expected.tags +1 -0
  856. data/ext/vendor/ctags/Units/parser-cxx.r/class.cpp.d/input.cpp +12 -0
  857. data/ext/vendor/ctags/Units/parser-cxx.r/complex-macros.d/args.ctags +13 -0
  858. data/ext/vendor/ctags/Units/parser-cxx.r/complex-macros.d/expected.tags +23 -0
  859. data/ext/vendor/ctags/Units/parser-cxx.r/complex-macros.d/input.cpp +57 -0
  860. data/ext/vendor/ctags/Units/parser-cxx.r/cpp-type-alias-with-using-keyword.d/expected.tags +2 -0
  861. data/ext/vendor/ctags/Units/parser-cxx.r/cpp-type-alias-with-using-keyword.d/input.cpp +7 -0
  862. data/ext/vendor/ctags/Units/parser-cxx.r/cpp_destructor.cpp.d/expected.tags +10 -0
  863. data/ext/vendor/ctags/Units/parser-cxx.r/cpp_destructor.cpp.d/input.cpp +16 -0
  864. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/README +28 -0
  865. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/args.ctags +3 -0
  866. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/expected.tags +356 -0
  867. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/gen-expected-tags.sh +68 -0
  868. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/gen-input.sh +79 -0
  869. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/input.c +1 -0
  870. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/input.h +200 -0
  871. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-keywords-as-c-identifiers.b/keywords.sh +42 -0
  872. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-shift-operators-in-template-parameters.d/README +1 -0
  873. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-shift-operators-in-template-parameters.d/args.ctags +2 -0
  874. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-shift-operators-in-template-parameters.d/expected.tags +4 -0
  875. data/ext/vendor/ctags/Units/parser-cxx.r/cxx-shift-operators-in-template-parameters.d/input.cpp +4 -0
  876. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-delete.d/args.ctags +2 -0
  877. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-delete.d/expected.tags +3 -0
  878. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-delete.d/input.cpp +6 -0
  879. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-final.d/args.ctags +2 -0
  880. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-final.d/expected.tags +8 -0
  881. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-final.d/input.cpp +23 -0
  882. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-lambdas.d/args.ctags +4 -0
  883. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-lambdas.d/expected.tags +19 -0
  884. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-lambdas.d/input.cpp +24 -0
  885. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-noexcept.d/args.ctags +2 -0
  886. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-noexcept.d/expected.tags +4 -0
  887. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-noexcept.d/input.cpp +7 -0
  888. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-override.d/args.ctags +2 -0
  889. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-override.d/expected.tags +9 -0
  890. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-override.d/input.cpp +24 -0
  891. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-raw-strings.d/expected.tags +22 -0
  892. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11-raw-strings.d/input.cpp +34 -0
  893. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11enum.cpp.d/args.ctags +5 -0
  894. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11enum.cpp.d/expected.tags +49 -0
  895. data/ext/vendor/ctags/Units/parser-cxx.r/cxx11enum.cpp.d/input.cpp +46 -0
  896. data/ext/vendor/ctags/Units/parser-cxx.r/cxx14-combined.d/args.ctags +2 -0
  897. data/ext/vendor/ctags/Units/parser-cxx.r/cxx14-combined.d/expected.tags +5 -0
  898. data/ext/vendor/ctags/Units/parser-cxx.r/cxx14-combined.d/input.cpp +8 -0
  899. data/ext/vendor/ctags/Units/parser-cxx.r/extern.d/args.ctags +2 -0
  900. data/ext/vendor/ctags/Units/parser-cxx.r/extern.d/expected.tags +5 -0
  901. data/ext/vendor/ctags/Units/parser-cxx.r/extern.d/input.cpp +20 -0
  902. data/ext/vendor/ctags/Units/parser-cxx.r/foreach.d/args.ctags +2 -0
  903. data/ext/vendor/ctags/Units/parser-cxx.r/foreach.d/expected.tags +6 -0
  904. data/ext/vendor/ctags/Units/parser-cxx.r/foreach.d/input.cpp +27 -0
  905. data/ext/vendor/ctags/Units/parser-cxx.r/function-return-types.d/args.ctags +4 -0
  906. data/ext/vendor/ctags/Units/parser-cxx.r/function-return-types.d/expected.tags +45 -0
  907. data/ext/vendor/ctags/Units/parser-cxx.r/function-return-types.d/input.cpp +128 -0
  908. data/ext/vendor/ctags/Units/parser-cxx.r/functions.cpp.d/args.ctags +2 -0
  909. data/ext/vendor/ctags/Units/parser-cxx.r/functions.cpp.d/expected.tags +31 -0
  910. data/ext/vendor/ctags/Units/parser-cxx.r/functions.cpp.d/input.cpp +85 -0
  911. data/ext/vendor/ctags/Units/parser-cxx.r/ignoring-macro-with-parameters.d/args.ctags +3 -0
  912. data/ext/vendor/ctags/Units/parser-cxx.r/ignoring-macro-with-parameters.d/expected.tags +3 -0
  913. data/ext/vendor/ctags/Units/parser-cxx.r/ignoring-macro-with-parameters.d/input.hxx +5 -0
  914. data/ext/vendor/ctags/Units/parser-cxx.r/iostream.d/args.ctags +1 -0
  915. data/ext/vendor/ctags/Units/parser-cxx.r/iostream.d/expected.tags +1 -0
  916. data/ext/vendor/ctags/Units/parser-cxx.r/iostream.d/input.cpp +7 -0
  917. data/ext/vendor/ctags/Units/parser-cxx.r/less-than-operator-between-anglebrackets.d/args.ctags +1 -0
  918. data/ext/vendor/ctags/Units/parser-cxx.r/less-than-operator-between-anglebrackets.d/expected.tags +13 -0
  919. data/ext/vendor/ctags/Units/parser-cxx.r/less-than-operator-between-anglebrackets.d/input.cpp +16 -0
  920. data/ext/vendor/ctags/Units/parser-cxx.r/namespace-alias-in-function.d/args.ctags +1 -0
  921. data/ext/vendor/ctags/Units/parser-cxx.r/namespace-alias-in-function.d/expected.tags +4 -0
  922. data/ext/vendor/ctags/Units/parser-cxx.r/namespace-alias-in-function.d/input.cpp +9 -0
  923. data/ext/vendor/ctags/Units/parser-cxx.r/namespace-and-scope.b/args.ctags +2 -0
  924. data/ext/vendor/ctags/Units/parser-cxx.r/namespace-and-scope.b/expected.tags +3 -0
  925. data/ext/vendor/ctags/Units/parser-cxx.r/namespace-and-scope.b/input.cpp +4 -0
  926. data/ext/vendor/ctags/Units/parser-cxx.r/namespace.cpp.d/args.ctags +4 -0
  927. data/ext/vendor/ctags/Units/parser-cxx.r/namespace.cpp.d/expected.tags +30 -0
  928. data/ext/vendor/ctags/Units/parser-cxx.r/namespace.cpp.d/input.cpp +55 -0
  929. data/ext/vendor/ctags/Units/parser-cxx.r/new-delete.d/args.ctags +2 -0
  930. data/ext/vendor/ctags/Units/parser-cxx.r/new-delete.d/expected.tags +1 -0
  931. data/ext/vendor/ctags/Units/parser-cxx.r/new-delete.d/input.cpp +9 -0
  932. data/ext/vendor/ctags/Units/parser-cxx.r/operators.cpp.d/args.ctags +2 -0
  933. data/ext/vendor/ctags/Units/parser-cxx.r/operators.cpp.d/expected.tags +25 -0
  934. data/ext/vendor/ctags/Units/parser-cxx.r/operators.cpp.d/input.cpp +105 -0
  935. data/ext/vendor/ctags/Units/parser-cxx.r/pointer-to-array.d/args.ctags +1 -0
  936. data/ext/vendor/ctags/Units/parser-cxx.r/pointer-to-array.d/expected.tags +8 -0
  937. data/ext/vendor/ctags/Units/parser-cxx.r/pointer-to-array.d/input.c +20 -0
  938. data/ext/vendor/ctags/Units/parser-cxx.r/properties.cpp.d/args.ctags +4 -0
  939. data/ext/vendor/ctags/Units/parser-cxx.r/properties.cpp.d/expected.tags +22 -0
  940. data/ext/vendor/ctags/Units/parser-cxx.r/properties.cpp.d/input.cpp +44 -0
  941. data/ext/vendor/ctags/Units/parser-cxx.r/rojas.h.d/args.ctags +1 -0
  942. data/ext/vendor/ctags/Units/parser-cxx.r/rojas.h.d/expected.tags +6 -0
  943. data/ext/vendor/ctags/Units/parser-cxx.r/rojas.h.d/input.h +20 -0
  944. data/ext/vendor/ctags/Units/parser-cxx.r/signature.cpp.d/README +5 -0
  945. data/ext/vendor/ctags/Units/parser-cxx.r/signature.cpp.d/args.ctags +3 -0
  946. data/ext/vendor/ctags/Units/parser-cxx.r/signature.cpp.d/expected.tags +4 -0
  947. data/ext/vendor/ctags/Units/parser-cxx.r/signature.cpp.d/input.cpp +10 -0
  948. data/ext/vendor/ctags/Units/parser-cxx.r/template-specializations.d/args.ctags +4 -0
  949. data/ext/vendor/ctags/Units/parser-cxx.r/template-specializations.d/expected.tags +14 -0
  950. data/ext/vendor/ctags/Units/parser-cxx.r/template-specializations.d/input.cpp +39 -0
  951. data/ext/vendor/ctags/Units/parser-cxx.r/templates-in-labmdas-1.cpp.d/args.ctags +4 -0
  952. data/ext/vendor/ctags/Units/parser-cxx.r/templates-in-labmdas-1.cpp.d/expected.tags +10 -0
  953. data/ext/vendor/ctags/Units/parser-cxx.r/templates-in-labmdas-1.cpp.d/input.cpp +31 -0
  954. data/ext/vendor/ctags/Units/parser-cxx.r/templates-in-labmdas-2.cpp.d/args.ctags +4 -0
  955. data/ext/vendor/ctags/Units/parser-cxx.r/templates-in-labmdas-2.cpp.d/expected.tags +5 -0
  956. data/ext/vendor/ctags/Units/parser-cxx.r/templates-in-labmdas-2.cpp.d/input.cpp +16 -0
  957. data/ext/vendor/ctags/Units/parser-cxx.r/templates.d/args.ctags +4 -0
  958. data/ext/vendor/ctags/Units/parser-cxx.r/templates.d/expected.tags +14 -0
  959. data/ext/vendor/ctags/Units/parser-cxx.r/templates.d/input.cpp +22 -0
  960. data/ext/vendor/ctags/Units/parser-cxx.r/templates2.d/args.ctags +4 -0
  961. data/ext/vendor/ctags/Units/parser-cxx.r/templates2.d/expected.tags +8 -0
  962. data/ext/vendor/ctags/Units/parser-cxx.r/templates2.d/input.cpp +27 -0
  963. data/ext/vendor/ctags/Units/parser-cxx.r/templates3.d/args.ctags +4 -0
  964. data/ext/vendor/ctags/Units/parser-cxx.r/templates3.d/expected.tags +4 -0
  965. data/ext/vendor/ctags/Units/parser-cxx.r/templates3.d/input.cpp +13 -0
  966. data/ext/vendor/ctags/Units/parser-cxx.r/typedefs.cpp.d/args.ctags +3 -0
  967. data/ext/vendor/ctags/Units/parser-cxx.r/typedefs.cpp.d/expected.tags +41 -0
  968. data/ext/vendor/ctags/Units/parser-cxx.r/typedefs.cpp.d/input.cpp +72 -0
  969. data/ext/vendor/ctags/Units/parser-cxx.r/using.cpp.d/args.ctags +3 -0
  970. data/ext/vendor/ctags/Units/parser-cxx.r/using.cpp.d/expected.tags +9 -0
  971. data/ext/vendor/ctags/Units/parser-cxx.r/using.cpp.d/input.cpp +18 -0
  972. data/ext/vendor/ctags/Units/parser-cxx.r/variable-declarations.cpp.d/args.ctags +1 -0
  973. data/ext/vendor/ctags/Units/parser-cxx.r/variable-declarations.cpp.d/expected.tags +54 -0
  974. data/ext/vendor/ctags/Units/parser-cxx.r/variable-declarations.cpp.d/input.cpp +83 -0
  975. data/ext/vendor/ctags/Units/parser-cxx.r/variables-in-control-statements.d/args.ctags +1 -0
  976. data/ext/vendor/ctags/Units/parser-cxx.r/variables-in-control-statements.d/expected.tags +12 -0
  977. data/ext/vendor/ctags/Units/parser-cxx.r/variables-in-control-statements.d/input.cpp +109 -0
  978. data/ext/vendor/ctags/Units/parser-cxx.r/variables-prototypes-2.cpp.d/args.ctags +2 -0
  979. data/ext/vendor/ctags/Units/parser-cxx.r/variables-prototypes-2.cpp.d/expected.tags +3 -0
  980. data/ext/vendor/ctags/Units/parser-cxx.r/variables-prototypes-2.cpp.d/input.cpp +11 -0
  981. data/ext/vendor/ctags/Units/parser-cxx.r/variables-prototypes.cpp.b/args.ctags +2 -0
  982. data/ext/vendor/ctags/Units/parser-cxx.r/variables-prototypes.cpp.b/expected.tags +94 -0
  983. data/ext/vendor/ctags/Units/parser-cxx.r/variables-prototypes.cpp.b/input.cpp +152 -0
  984. data/ext/vendor/ctags/Units/parser-d.r/d-accessmod.d/args.ctags +1 -0
  985. data/ext/vendor/ctags/Units/parser-d.r/d-accessmod.d/expected.tags +35 -0
  986. data/ext/vendor/ctags/Units/parser-d.r/d-accessmod.d/input.d +93 -0
  987. data/ext/vendor/ctags/Units/parser-d.r/d-size_t-wchar_t-alias.d/expected.tags +2 -0
  988. data/ext/vendor/ctags/Units/parser-d.r/d-size_t-wchar_t-alias.d/input.d +3 -0
  989. data/ext/vendor/ctags/Units/parser-d.r/simple.d.d/expected.tags +28 -0
  990. data/ext/vendor/ctags/Units/parser-d.r/simple.d.d/input.d +96 -0
  991. data/ext/vendor/ctags/Units/parser-dts.r/dts-core-dump.d/input.dts +1 -0
  992. data/ext/vendor/ctags/Units/parser-dts.r/dts-fq-without-scope-field.d/README +6 -0
  993. data/ext/vendor/ctags/Units/parser-dts.r/dts-fq-without-scope-field.d/args.ctags +2 -0
  994. data/ext/vendor/ctags/Units/parser-dts.r/dts-fq-without-scope-field.d/expected.tags +8 -0
  995. data/ext/vendor/ctags/Units/parser-dts.r/dts-fq-without-scope-field.d/input.dts +12 -0
  996. data/ext/vendor/ctags/Units/parser-dts.r/dts-simple.d/args.ctags +2 -0
  997. data/ext/vendor/ctags/Units/parser-dts.r/dts-simple.d/expected.tags +8 -0
  998. data/ext/vendor/ctags/Units/parser-dts.r/dts-simple.d/input.dts +12 -0
  999. data/ext/vendor/ctags/Units/parser-eiffel.r/aliases.e.d/expected.tags +15 -0
  1000. data/ext/vendor/ctags/Units/parser-eiffel.r/aliases.e.d/input.e +29 -0
  1001. data/ext/vendor/ctags/Units/parser-eiffel.r/attributes.e.d/expected.tags +14 -0
  1002. data/ext/vendor/ctags/Units/parser-eiffel.r/attributes.e.d/input.e +54 -0
  1003. data/ext/vendor/ctags/Units/parser-eiffel.r/class.e.d/expected.tags +9 -0
  1004. data/ext/vendor/ctags/Units/parser-eiffel.r/class.e.d/input.e +72 -0
  1005. data/ext/vendor/ctags/Units/parser-eiffel.r/deprecated-syntax.e.d/README +6 -0
  1006. data/ext/vendor/ctags/Units/parser-eiffel.r/deprecated-syntax.e.d/expected.tags +7 -0
  1007. data/ext/vendor/ctags/Units/parser-eiffel.r/deprecated-syntax.e.d/input.e +42 -0
  1008. data/ext/vendor/ctags/Units/parser-eiffel.r/functions.e.d/expected.tags +10 -0
  1009. data/ext/vendor/ctags/Units/parser-eiffel.r/functions.e.d/input.e +44 -0
  1010. data/ext/vendor/ctags/Units/parser-eiffel.r/inherit-rename.e.d/expected.tags +3 -0
  1011. data/ext/vendor/ctags/Units/parser-eiffel.r/inherit-rename.e.d/input.e +17 -0
  1012. data/ext/vendor/ctags/Units/parser-eiffel.r/local-kind.e.d/args.ctags +1 -0
  1013. data/ext/vendor/ctags/Units/parser-eiffel.r/local-kind.e.d/expected.tags +7 -0
  1014. data/ext/vendor/ctags/Units/parser-eiffel.r/local-kind.e.d/input.e +13 -0
  1015. data/ext/vendor/ctags/Units/parser-eiffel.r/note.e.d/expected.tags +1 -0
  1016. data/ext/vendor/ctags/Units/parser-eiffel.r/note.e.d/input.e +11 -0
  1017. data/ext/vendor/ctags/Units/parser-eiffel.r/obsolete.e.d/expected.tags +4 -0
  1018. data/ext/vendor/ctags/Units/parser-eiffel.r/obsolete.e.d/input.e +17 -0
  1019. data/ext/vendor/ctags/Units/parser-eiffel.r/procedures.e.d/expected.tags +5 -0
  1020. data/ext/vendor/ctags/Units/parser-eiffel.r/procedures.e.d/input.e +32 -0
  1021. data/ext/vendor/ctags/Units/parser-eiffel.r/verbatim.e.d/expected.tags +4 -0
  1022. data/ext/vendor/ctags/Units/parser-eiffel.r/verbatim.e.d/input.e +34 -0
  1023. data/ext/vendor/ctags/Units/parser-flex.r/flex_comment.mxml.d/expected.tags +0 -0
  1024. data/ext/vendor/ctags/Units/parser-flex.r/flex_comment.mxml.d/input.mxml +5 -0
  1025. data/ext/vendor/ctags/Units/parser-flex.r/flex_only_mxml.mxml.d/expected.tags +8 -0
  1026. data/ext/vendor/ctags/Units/parser-flex.r/flex_only_mxml.mxml.d/input.mxml +29 -0
  1027. data/ext/vendor/ctags/Units/parser-flex.r/flex_with_actionscript.mxml.d/expected.tags +2 -0
  1028. data/ext/vendor/ctags/Units/parser-flex.r/flex_with_actionscript.mxml.d/input.mxml +16 -0
  1029. data/ext/vendor/ctags/Units/parser-fortran.r/array-spec.f90.d/expected.tags +6 -0
  1030. data/ext/vendor/ctags/Units/parser-fortran.r/array-spec.f90.d/input.f90 +10 -0
  1031. data/ext/vendor/ctags/Units/parser-fortran.r/array_spec.f90.d/expected.tags +8 -0
  1032. data/ext/vendor/ctags/Units/parser-fortran.r/array_spec.f90.d/input.f90 +15 -0
  1033. data/ext/vendor/ctags/Units/parser-fortran.r/auto.f.d/expected.tags +4 -0
  1034. data/ext/vendor/ctags/Units/parser-fortran.r/auto.f.d/input.f +7 -0
  1035. data/ext/vendor/ctags/Units/parser-fortran.r/bug565813.f90.d/expected.tags +7 -0
  1036. data/ext/vendor/ctags/Units/parser-fortran.r/bug565813.f90.d/input.f90 +42 -0
  1037. data/ext/vendor/ctags/Units/parser-fortran.r/bug620288.f.d/expected.tags +2 -0
  1038. data/ext/vendor/ctags/Units/parser-fortran.r/bug620288.f.d/input.f +98 -0
  1039. data/ext/vendor/ctags/Units/parser-fortran.r/bug629.d/args.ctags +1 -0
  1040. data/ext/vendor/ctags/Units/parser-fortran.r/bug629.d/expected.tags +1 -0
  1041. data/ext/vendor/ctags/Units/parser-fortran.r/bug629.d/input.c +5 -0
  1042. data/ext/vendor/ctags/Units/parser-fortran.r/bug670433.f90.d/README +1 -0
  1043. data/ext/vendor/ctags/Units/parser-fortran.r/bug670433.f90.d/expected.tags +4 -0
  1044. data/ext/vendor/ctags/Units/parser-fortran.r/bug670433.f90.d/input.f90 +40 -0
  1045. data/ext/vendor/ctags/Units/parser-fortran.r/bug726712.f90.d/expected.tags +3 -0
  1046. data/ext/vendor/ctags/Units/parser-fortran.r/bug726712.f90.d/input.f90 +72 -0
  1047. data/ext/vendor/ctags/Units/parser-fortran.r/bug726875.f90.d/expected.tags +3 -0
  1048. data/ext/vendor/ctags/Units/parser-fortran.r/bug726875.f90.d/input.f90 +28 -0
  1049. data/ext/vendor/ctags/Units/parser-fortran.r/bug734933.f90.d/expected.tags +16 -0
  1050. data/ext/vendor/ctags/Units/parser-fortran.r/bug734933.f90.d/input.f90 +39 -0
  1051. data/ext/vendor/ctags/Units/parser-fortran.r/bug858165.f90.d/expected.tags +5 -0
  1052. data/ext/vendor/ctags/Units/parser-fortran.r/bug858165.f90.d/input.f90 +25 -0
  1053. data/ext/vendor/ctags/Units/parser-fortran.r/bug877956.f90.d/args.ctags +1 -0
  1054. data/ext/vendor/ctags/Units/parser-fortran.r/bug877956.f90.d/expected.tags-x +4 -0
  1055. data/ext/vendor/ctags/Units/parser-fortran.r/bug877956.f90.d/input.f90 +54 -0
  1056. data/ext/vendor/ctags/Units/parser-fortran.r/byte.f.d/expected.tags +10 -0
  1057. data/ext/vendor/ctags/Units/parser-fortran.r/byte.f.d/input.f +7 -0
  1058. data/ext/vendor/ctags/Units/parser-fortran.r/char-selector.f90.d/expected.tags +10 -0
  1059. data/ext/vendor/ctags/Units/parser-fortran.r/char-selector.f90.d/input.f90 +19 -0
  1060. data/ext/vendor/ctags/Units/parser-fortran.r/common.f.d/expected.tags +4 -0
  1061. data/ext/vendor/ctags/Units/parser-fortran.r/common.f.d/input.f +4 -0
  1062. data/ext/vendor/ctags/Units/parser-fortran.r/continuation.f90.d/expected.tags +4 -0
  1063. data/ext/vendor/ctags/Units/parser-fortran.r/continuation.f90.d/input.f90 +6 -0
  1064. data/ext/vendor/ctags/Units/parser-fortran.r/debian_432872.f90.d/expected.tags +2 -0
  1065. data/ext/vendor/ctags/Units/parser-fortran.r/debian_432872.f90.d/input.f90 +8 -0
  1066. data/ext/vendor/ctags/Units/parser-fortran.r/dopbl2.f.d/expected.tags +1 -0
  1067. data/ext/vendor/ctags/Units/parser-fortran.r/dopbl2.f.d/input.f +227 -0
  1068. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-abstract-implementation.d/args.ctags +1 -0
  1069. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-abstract-implementation.d/expected.tags +2 -0
  1070. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-abstract-implementation.d/input.f90 +4 -0
  1071. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-abstract-interface.d/args.ctags +1 -0
  1072. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-abstract-interface.d/expected.tags +9 -0
  1073. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-abstract-interface.d/input.f90 +21 -0
  1074. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-associate.d/expected.tags +4 -0
  1075. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-associate.d/input.f90 +20 -0
  1076. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-bind-c.d/args.ctags +1 -0
  1077. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-bind-c.d/expected.tags +5 -0
  1078. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-bind-c.d/input.f90 +25 -0
  1079. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-block.d/expected.tags +3 -0
  1080. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-block.d/input.f90 +19 -0
  1081. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-enum.d/expected.tags +45 -0
  1082. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-enum.d/input.f90 +52 -0
  1083. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-extends-qualifier.d/args.ctags +1 -0
  1084. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-extends-qualifier.d/expected.tags +9 -0
  1085. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-extends-qualifier.d/input.f90 +12 -0
  1086. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-forall.d/expected.tags +4 -0
  1087. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-forall.d/input.f90 +26 -0
  1088. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-interface.d/args.ctags +1 -0
  1089. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-interface.d/expected.tags +9 -0
  1090. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-interface.d/input.f90 +33 -0
  1091. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-method.d/args.ctags +1 -0
  1092. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-method.d/expected.tags +10 -0
  1093. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-method.d/input.f90 +13 -0
  1094. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-pointer.d/expected.tags +12 -0
  1095. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-pointer.d/input.f90 +32 -0
  1096. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-procedure-qualifiers.d/expected.tags +7 -0
  1097. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-procedure-qualifiers.d/input.f90 +10 -0
  1098. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-procedure.d/expected.tags +4 -0
  1099. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-procedure.d/input.f90 +19 -0
  1100. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-signature.d/args.ctags +2 -0
  1101. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-signature.d/expected.tags +9 -0
  1102. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-signature.d/input.f90 +25 -0
  1103. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-square-parens.d/expected.tags +14 -0
  1104. data/ext/vendor/ctags/Units/parser-fortran.r/fortran-square-parens.d/input.f90 +39 -0
  1105. data/ext/vendor/ctags/Units/parser-fortran.r/implied_program.f.d/expected.tags +1 -0
  1106. data/ext/vendor/ctags/Units/parser-fortran.r/implied_program.f.d/input.f +6 -0
  1107. data/ext/vendor/ctags/Units/parser-fortran.r/initialization.f90.d/expected.tags +3 -0
  1108. data/ext/vendor/ctags/Units/parser-fortran.r/initialization.f90.d/input.f90 +16 -0
  1109. data/ext/vendor/ctags/Units/parser-fortran.r/invalid_name.f90.d/expected.tags +7 -0
  1110. data/ext/vendor/ctags/Units/parser-fortran.r/invalid_name.f90.d/input.f90 +12 -0
  1111. data/ext/vendor/ctags/Units/parser-fortran.r/lanus.for.d/expected.tags +5 -0
  1112. data/ext/vendor/ctags/Units/parser-fortran.r/lanus.for.d/input.for +47 -0
  1113. data/ext/vendor/ctags/Units/parser-fortran.r/misc_types.f.d/expected.tags +3 -0
  1114. data/ext/vendor/ctags/Units/parser-fortran.r/misc_types.f.d/input.f +32 -0
  1115. data/ext/vendor/ctags/Units/parser-fortran.r/misc_types.f90.d/expected.tags +16 -0
  1116. data/ext/vendor/ctags/Units/parser-fortran.r/misc_types.f90.d/input.f90 +43 -0
  1117. data/ext/vendor/ctags/Units/parser-fortran.r/namelist.f.d/expected.tags +4 -0
  1118. data/ext/vendor/ctags/Units/parser-fortran.r/namelist.f.d/input.f +4 -0
  1119. data/ext/vendor/ctags/Units/parser-fortran.r/numlib.f90.d/args.ctags +1 -0
  1120. data/ext/vendor/ctags/Units/parser-fortran.r/numlib.f90.d/expected.tags +4 -0
  1121. data/ext/vendor/ctags/Units/parser-fortran.r/numlib.f90.d/input.f90 +57 -0
  1122. data/ext/vendor/ctags/Units/parser-fortran.r/pure_elem.f95.d/README +1 -0
  1123. data/ext/vendor/ctags/Units/parser-fortran.r/pure_elem.f95.d/expected.tags +4 -0
  1124. data/ext/vendor/ctags/Units/parser-fortran.r/pure_elem.f95.d/input.f95 +37 -0
  1125. data/ext/vendor/ctags/Units/parser-fortran.r/recursive.f95.d/args.ctags +1 -0
  1126. data/ext/vendor/ctags/Units/parser-fortran.r/recursive.f95.d/expected.tags +14 -0
  1127. data/ext/vendor/ctags/Units/parser-fortran.r/recursive.f95.d/input.f95 +68 -0
  1128. data/ext/vendor/ctags/Units/parser-fortran.r/semicolon.f90.d/expected.tags +3 -0
  1129. data/ext/vendor/ctags/Units/parser-fortran.r/semicolon.f90.d/input.f90 +5 -0
  1130. data/ext/vendor/ctags/Units/parser-fortran.r/stdcall.f.d/expected.tags +30 -0
  1131. data/ext/vendor/ctags/Units/parser-fortran.r/stdcall.f.d/input.f +178 -0
  1132. data/ext/vendor/ctags/Units/parser-fortran.r/structure.f.d/expected.tags +23 -0
  1133. data/ext/vendor/ctags/Units/parser-fortran.r/structure.f.d/input.f +29 -0
  1134. data/ext/vendor/ctags/Units/parser-fortran.r/union.f.d/expected.tags +8 -0
  1135. data/ext/vendor/ctags/Units/parser-fortran.r/union.f.d/input.f +21 -0
  1136. data/ext/vendor/ctags/Units/parser-fortran.r/value.f.d/expected.tags +3 -0
  1137. data/ext/vendor/ctags/Units/parser-fortran.r/value.f.d/input.f +9 -0
  1138. data/ext/vendor/ctags/Units/parser-go.r/go-funcs.d/args.ctags +1 -0
  1139. data/ext/vendor/ctags/Units/parser-go.r/go-funcs.d/expected.tags +8 -0
  1140. data/ext/vendor/ctags/Units/parser-go.r/go-funcs.d/input.go +25 -0
  1141. data/ext/vendor/ctags/Units/parser-go.r/go-goroutines.d/args.ctags +1 -0
  1142. data/ext/vendor/ctags/Units/parser-go.r/go-goroutines.d/expected.tags +3 -0
  1143. data/ext/vendor/ctags/Units/parser-go.r/go-goroutines.d/input.go +41 -0
  1144. data/ext/vendor/ctags/Units/parser-go.r/go-helloworld.d/args.ctags +1 -0
  1145. data/ext/vendor/ctags/Units/parser-go.r/go-helloworld.d/expected.tags +2 -0
  1146. data/ext/vendor/ctags/Units/parser-go.r/go-helloworld.d/input.go +10 -0
  1147. data/ext/vendor/ctags/Units/parser-go.r/go-incomplete-input.d/args.ctags +1 -0
  1148. data/ext/vendor/ctags/Units/parser-go.r/go-incomplete-input.d/input.go +1 -0
  1149. data/ext/vendor/ctags/Units/parser-go.r/go-op-less-than.d/args.ctags +1 -0
  1150. data/ext/vendor/ctags/Units/parser-go.r/go-op-less-than.d/expected.tags +4 -0
  1151. data/ext/vendor/ctags/Units/parser-go.r/go-op-less-than.d/input.go +15 -0
  1152. data/ext/vendor/ctags/Units/parser-go.r/go-timeouts.d/args.ctags +1 -0
  1153. data/ext/vendor/ctags/Units/parser-go.r/go-timeouts.d/expected.tags +2 -0
  1154. data/ext/vendor/ctags/Units/parser-go.r/go-timeouts.d/input.go +54 -0
  1155. data/ext/vendor/ctags/Units/parser-go.r/go-torture.d/args.ctags +1 -0
  1156. data/ext/vendor/ctags/Units/parser-go.r/go-torture.d/expected.tags +38 -0
  1157. data/ext/vendor/ctags/Units/parser-go.r/go-torture.d/input.go +50 -0
  1158. data/ext/vendor/ctags/Units/parser-html.r/simple.html.t/args.ctags +3 -0
  1159. data/ext/vendor/ctags/Units/parser-html.r/simple.html.t/expected.tags +16 -0
  1160. data/ext/vendor/ctags/Units/parser-html.r/simple.html.t/features +1 -0
  1161. data/ext/vendor/ctags/Units/parser-html.r/simple.html.t/input.html +59 -0
  1162. data/ext/vendor/ctags/Units/parser-java.r/accented-latin1-identifiers.java.d/README +10 -0
  1163. data/ext/vendor/ctags/Units/parser-java.r/accented-latin1-identifiers.java.d/expected.tags +1 -0
  1164. data/ext/vendor/ctags/Units/parser-java.r/accented-latin1-identifiers.java.d/input.java +4 -0
  1165. data/ext/vendor/ctags/Units/parser-java.r/bug1447756.java.d/expected.tags +2 -0
  1166. data/ext/vendor/ctags/Units/parser-java.r/bug1447756.java.d/input.java +9 -0
  1167. data/ext/vendor/ctags/Units/parser-java.r/bug1691412.java.d/expected.tags +4 -0
  1168. data/ext/vendor/ctags/Units/parser-java.r/bug1691412.java.d/input.java +17 -0
  1169. data/ext/vendor/ctags/Units/parser-java.r/bug1777340.java.d/expected.tags +3 -0
  1170. data/ext/vendor/ctags/Units/parser-java.r/bug1777340.java.d/input.java +4 -0
  1171. data/ext/vendor/ctags/Units/parser-java.r/bug1777344.java.b/expected.tags +8 -0
  1172. data/ext/vendor/ctags/Units/parser-java.r/bug1777344.java.b/input.java +7 -0
  1173. data/ext/vendor/ctags/Units/parser-java.r/bug2049723.java.d/expected.tags +3 -0
  1174. data/ext/vendor/ctags/Units/parser-java.r/bug2049723.java.d/input.java +6 -0
  1175. data/ext/vendor/ctags/Units/parser-java.r/bug2117073.java.d/expected.tags +3 -0
  1176. data/ext/vendor/ctags/Units/parser-java.r/bug2117073.java.d/input.java +12 -0
  1177. data/ext/vendor/ctags/Units/parser-java.r/bug814263.java.d/expected.tags +3 -0
  1178. data/ext/vendor/ctags/Units/parser-java.r/bug814263.java.d/input.java +6 -0
  1179. data/ext/vendor/ctags/Units/parser-java.r/enum.java.d/expected.tags +14 -0
  1180. data/ext/vendor/ctags/Units/parser-java.r/enum.java.d/input.java +23 -0
  1181. data/ext/vendor/ctags/Units/parser-java.r/imported-role.d/args.ctags +3 -0
  1182. data/ext/vendor/ctags/Units/parser-java.r/imported-role.d/expected.tags +3 -0
  1183. data/ext/vendor/ctags/Units/parser-java.r/imported-role.d/input.java +3 -0
  1184. data/ext/vendor/ctags/Units/parser-java.r/infinite_loop.java.d/expected.tags +1 -0
  1185. data/ext/vendor/ctags/Units/parser-java.r/infinite_loop.java.d/input.java +2 -0
  1186. data/ext/vendor/ctags/Units/parser-java.r/java-catch-block.d/args.ctags +3 -0
  1187. data/ext/vendor/ctags/Units/parser-java.r/java-catch-block.d/expected.tags +2 -0
  1188. data/ext/vendor/ctags/Units/parser-java.r/java-catch-block.d/input.java +7 -0
  1189. data/ext/vendor/ctags/Units/parser-java.r/java_enum.java.d/expected.tags +10 -0
  1190. data/ext/vendor/ctags/Units/parser-java.r/java_enum.java.d/input.java +15 -0
  1191. data/ext/vendor/ctags/Units/parser-javascript.r/1795612.js.d/README +2 -0
  1192. data/ext/vendor/ctags/Units/parser-javascript.r/1795612.js.d/expected.tags +4 -0
  1193. data/ext/vendor/ctags/Units/parser-javascript.r/1795612.js.d/input.js +29 -0
  1194. data/ext/vendor/ctags/Units/parser-javascript.r/1850914.js.d/expected.tags +3 -0
  1195. data/ext/vendor/ctags/Units/parser-javascript.r/1850914.js.d/input.js +24 -0
  1196. data/ext/vendor/ctags/Units/parser-javascript.r/1878155.js.d/expected.tags +4 -0
  1197. data/ext/vendor/ctags/Units/parser-javascript.r/1878155.js.d/input.js +19 -0
  1198. data/ext/vendor/ctags/Units/parser-javascript.r/1880687.js.d/expected.tags +41 -0
  1199. data/ext/vendor/ctags/Units/parser-javascript.r/1880687.js.d/input.js +242 -0
  1200. data/ext/vendor/ctags/Units/parser-javascript.r/2023624.js.d/expected.tags +2 -0
  1201. data/ext/vendor/ctags/Units/parser-javascript.r/2023624.js.d/input.js +15 -0
  1202. data/ext/vendor/ctags/Units/parser-javascript.r/3470609.js.d/expected.tags +12 -0
  1203. data/ext/vendor/ctags/Units/parser-javascript.r/3470609.js.d/input.js +48 -0
  1204. data/ext/vendor/ctags/Units/parser-javascript.r/bug1950327.js.d/expected.tags +13 -0
  1205. data/ext/vendor/ctags/Units/parser-javascript.r/bug1950327.js.d/input.js +41 -0
  1206. data/ext/vendor/ctags/Units/parser-javascript.r/bug2777310.js.d/expected.tags +5 -0
  1207. data/ext/vendor/ctags/Units/parser-javascript.r/bug2777310.js.d/input.js +6 -0
  1208. data/ext/vendor/ctags/Units/parser-javascript.r/bug2888482.js.d/expected.tags +2 -0
  1209. data/ext/vendor/ctags/Units/parser-javascript.r/bug2888482.js.d/input.js +12 -0
  1210. data/ext/vendor/ctags/Units/parser-javascript.r/bug3036476.js.d/expected.tags +4 -0
  1211. data/ext/vendor/ctags/Units/parser-javascript.r/bug3036476.js.d/input.js +20 -0
  1212. data/ext/vendor/ctags/Units/parser-javascript.r/bug3571233.js.d/expected.tags +10 -0
  1213. data/ext/vendor/ctags/Units/parser-javascript.r/bug3571233.js.d/input.js +56 -0
  1214. data/ext/vendor/ctags/Units/parser-javascript.r/generators.d/expected.tags +8 -0
  1215. data/ext/vendor/ctags/Units/parser-javascript.r/generators.d/input.js +27 -0
  1216. data/ext/vendor/ctags/Units/parser-javascript.r/js-arraylist.d/expected.tags +8 -0
  1217. data/ext/vendor/ctags/Units/parser-javascript.r/js-arraylist.d/input.js +20 -0
  1218. data/ext/vendor/ctags/Units/parser-javascript.r/js-broken-strings.d/expected.tags +4 -0
  1219. data/ext/vendor/ctags/Units/parser-javascript.r/js-broken-strings.d/input.js +10 -0
  1220. data/ext/vendor/ctags/Units/parser-javascript.r/js-class-related-unterminated.d/expected.tags +15 -0
  1221. data/ext/vendor/ctags/Units/parser-javascript.r/js-class-related-unterminated.d/input.js +62 -0
  1222. data/ext/vendor/ctags/Units/parser-javascript.r/js-comma-at-end-of-object.d/expected.tags +5 -0
  1223. data/ext/vendor/ctags/Units/parser-javascript.r/js-comma-at-end-of-object.d/input.js +11 -0
  1224. data/ext/vendor/ctags/Units/parser-javascript.r/js-complex-return.d/expected.tags +17 -0
  1225. data/ext/vendor/ctags/Units/parser-javascript.r/js-complex-return.d/input.js +61 -0
  1226. data/ext/vendor/ctags/Units/parser-javascript.r/js-const.d/expected.tags +7 -0
  1227. data/ext/vendor/ctags/Units/parser-javascript.r/js-const.d/input.js +10 -0
  1228. data/ext/vendor/ctags/Units/parser-javascript.r/js-function-in-arglist.d/expected.tags +5 -0
  1229. data/ext/vendor/ctags/Units/parser-javascript.r/js-function-in-arglist.d/input.js +8 -0
  1230. data/ext/vendor/ctags/Units/parser-javascript.r/js-implicit-semicolons.d/expected.tags +14 -0
  1231. data/ext/vendor/ctags/Units/parser-javascript.r/js-implicit-semicolons.d/input.js +16 -0
  1232. data/ext/vendor/ctags/Units/parser-javascript.r/js-let.d/expected.tags +7 -0
  1233. data/ext/vendor/ctags/Units/parser-javascript.r/js-let.d/input.js +8 -0
  1234. data/ext/vendor/ctags/Units/parser-javascript.r/js-methods.b/expected.tags +3 -0
  1235. data/ext/vendor/ctags/Units/parser-javascript.r/js-methods.b/input.js +9 -0
  1236. data/ext/vendor/ctags/Units/parser-javascript.r/js-multiple-vars.d/expected.tags +23 -0
  1237. data/ext/vendor/ctags/Units/parser-javascript.r/js-multiple-vars.d/input.js +25 -0
  1238. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input0.d/args.ctags +1 -0
  1239. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input0.d/expected.tags +0 -0
  1240. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input0.d/input.js +1 -0
  1241. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input1.d/args.ctags +1 -0
  1242. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input1.d/expected.tags +2 -0
  1243. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input1.d/input.js +1 -0
  1244. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input2.d/args.ctags +1 -0
  1245. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input2.d/expected.tags +0 -0
  1246. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input2.d/input.js +1 -0
  1247. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input3.d/README +7 -0
  1248. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input3.d/args.ctags +1 -0
  1249. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input3.d/expected.tags +1 -0
  1250. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input3.d/input.js +1 -0
  1251. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input4.d/README +1 -0
  1252. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input4.d/args.ctags +1 -0
  1253. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input4.d/expected.tags +0 -0
  1254. data/ext/vendor/ctags/Units/parser-javascript.r/js-null-tag-for-broken-input4.d/input.js +1 -0
  1255. data/ext/vendor/ctags/Units/parser-javascript.r/js-parenthesis-rvalue.d/expected.tags +22 -0
  1256. data/ext/vendor/ctags/Units/parser-javascript.r/js-parenthesis-rvalue.d/input.js +35 -0
  1257. data/ext/vendor/ctags/Units/parser-javascript.r/js-scope.d/expected.tags +3 -0
  1258. data/ext/vendor/ctags/Units/parser-javascript.r/js-scope.d/input.js +18 -0
  1259. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-gjs.d/args.ctags +3 -0
  1260. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-gjs.d/expected.tags +1 -0
  1261. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-gjs.d/input.nolang +3 -0
  1262. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-node.d/args.ctags +2 -0
  1263. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-node.d/expected.tags +1 -0
  1264. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-node.d/input.nolang +3 -0
  1265. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-nodejs.d/args.ctags +2 -0
  1266. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-nodejs.d/expected.tags +1 -0
  1267. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-nodejs.d/input.nolang +3 -0
  1268. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-seed.d/args.ctags +2 -0
  1269. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-seed.d/expected.tags +1 -0
  1270. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang-seed.d/input.nolang +3 -0
  1271. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang.d/expected.tags +1 -0
  1272. data/ext/vendor/ctags/Units/parser-javascript.r/js-shebang.d/input.js +3 -0
  1273. data/ext/vendor/ctags/Units/parser-javascript.r/js-signature.d/args.ctags +1 -0
  1274. data/ext/vendor/ctags/Units/parser-javascript.r/js-signature.d/expected.tags +9 -0
  1275. data/ext/vendor/ctags/Units/parser-javascript.r/js-signature.d/input.js +38 -0
  1276. data/ext/vendor/ctags/Units/parser-javascript.r/js-string-continuation.d/expected.tags +5 -0
  1277. data/ext/vendor/ctags/Units/parser-javascript.r/js-string-continuation.d/input.js +19 -0
  1278. data/ext/vendor/ctags/Units/parser-javascript.r/js-sub-block-scope.d/expected.tags +7 -0
  1279. data/ext/vendor/ctags/Units/parser-javascript.r/js-sub-block-scope.d/input.js +17 -0
  1280. data/ext/vendor/ctags/Units/parser-javascript.r/js-template-strings.d/expected.tags +7 -0
  1281. data/ext/vendor/ctags/Units/parser-javascript.r/js-template-strings.d/input.js +27 -0
  1282. data/ext/vendor/ctags/Units/parser-javascript.r/js-tricky-newlines.d/expected.tags +6 -0
  1283. data/ext/vendor/ctags/Units/parser-javascript.r/js-tricky-newlines.d/input.js +8 -0
  1284. data/ext/vendor/ctags/Units/parser-javascript.r/js-two-vars.d/expected.tags +2 -0
  1285. data/ext/vendor/ctags/Units/parser-javascript.r/js-two-vars.d/input.js +1 -0
  1286. data/ext/vendor/ctags/Units/parser-javascript.r/js-unknown-construct-nesting.d/expected.tags +4 -0
  1287. data/ext/vendor/ctags/Units/parser-javascript.r/js-unknown-construct-nesting.d/input.js +23 -0
  1288. data/ext/vendor/ctags/Units/parser-javascript.r/js-unterminated-leak.d/input.js +1 -0
  1289. data/ext/vendor/ctags/Units/parser-javascript.r/js-var-at-eof.d/expected.tags +1 -0
  1290. data/ext/vendor/ctags/Units/parser-javascript.r/js-var-at-eof.d/input.js +1 -0
  1291. data/ext/vendor/ctags/Units/parser-javascript.r/jsFunc_tutorial.js.d/expected.tags +73 -0
  1292. data/ext/vendor/ctags/Units/parser-javascript.r/jsFunc_tutorial.js.d/input.js +524 -0
  1293. data/ext/vendor/ctags/Units/parser-javascript.r/no_terminator.js.d/expected.tags +5 -0
  1294. data/ext/vendor/ctags/Units/parser-javascript.r/no_terminator.js.d/input.js +32 -0
  1295. data/ext/vendor/ctags/Units/parser-javascript.r/regexp.js.d/expected.tags +16 -0
  1296. data/ext/vendor/ctags/Units/parser-javascript.r/regexp.js.d/input.js +49 -0
  1297. data/ext/vendor/ctags/Units/parser-javascript.r/secondary_fcn_name.js.d/expected.tags +5 -0
  1298. data/ext/vendor/ctags/Units/parser-javascript.r/secondary_fcn_name.js.d/input.js +40 -0
  1299. data/ext/vendor/ctags/Units/parser-javascript.r/simple-jsx.d/expected.tags +1 -0
  1300. data/ext/vendor/ctags/Units/parser-javascript.r/simple-jsx.d/input.jsx +7 -0
  1301. data/ext/vendor/ctags/Units/parser-javascript.r/ui5.controller.js.d/expected.tags +5 -0
  1302. data/ext/vendor/ctags/Units/parser-javascript.r/ui5.controller.js.d/input.js +31 -0
  1303. data/ext/vendor/ctags/Units/parser-lua.r/lua-double-equals.d/expected.tags +0 -0
  1304. data/ext/vendor/ctags/Units/parser-lua.r/lua-double-equals.d/input.lua +7 -0
  1305. data/ext/vendor/ctags/Units/parser-lua.r/lua-equal-after-function.d/expected.tags +0 -0
  1306. data/ext/vendor/ctags/Units/parser-lua.r/lua-equal-after-function.d/input.lua +3 -0
  1307. data/ext/vendor/ctags/Units/parser-lua.r/lua-skip-whitespaces-in-name.d/expected.tags +8 -0
  1308. data/ext/vendor/ctags/Units/parser-lua.r/lua-skip-whitespaces-in-name.d/input.lua +44 -0
  1309. data/ext/vendor/ctags/Units/parser-lua.r/simple.lua.d/expected.tags +3 -0
  1310. data/ext/vendor/ctags/Units/parser-lua.r/simple.lua.d/input.lua +20 -0
  1311. data/ext/vendor/ctags/Units/parser-m4.r/m4-comment.d/args.ctags +3 -0
  1312. data/ext/vendor/ctags/Units/parser-m4.r/m4-comment.d/expected.tags +2 -0
  1313. data/ext/vendor/ctags/Units/parser-m4.r/m4-comment.d/input.m4 +3 -0
  1314. data/ext/vendor/ctags/Units/parser-m4.r/m4-disable-m4.d/args.ctags +4 -0
  1315. data/ext/vendor/ctags/Units/parser-m4.r/m4-disable-m4.d/expected.tags +4 -0
  1316. data/ext/vendor/ctags/Units/parser-m4.r/m4-disable-m4.d/input.m4 +10 -0
  1317. data/ext/vendor/ctags/Units/parser-m4.r/m4-multi-undef.d/args.ctags +3 -0
  1318. data/ext/vendor/ctags/Units/parser-m4.r/m4-multi-undef.d/expected.tags +4 -0
  1319. data/ext/vendor/ctags/Units/parser-m4.r/m4-multi-undef.d/input.m4 +1 -0
  1320. data/ext/vendor/ctags/Units/parser-m4.r/m4-quotestring.b/DESC.rst +12 -0
  1321. data/ext/vendor/ctags/Units/parser-m4.r/m4-quotestring.b/expected.tags +2 -0
  1322. data/ext/vendor/ctags/Units/parser-m4.r/m4-quotestring.b/input.m4 +4 -0
  1323. data/ext/vendor/ctags/Units/parser-m4.r/m4-simple.d/args.ctags +2 -0
  1324. data/ext/vendor/ctags/Units/parser-m4.r/m4-simple.d/expected.tags +50 -0
  1325. data/ext/vendor/ctags/Units/parser-m4.r/m4-simple.d/input.m4 +111 -0
  1326. data/ext/vendor/ctags/Units/parser-m4.r/m4-switch-lang-by-ac.d/args.ctags +3 -0
  1327. data/ext/vendor/ctags/Units/parser-m4.r/m4-switch-lang-by-ac.d/expected.tags +5 -0
  1328. data/ext/vendor/ctags/Units/parser-m4.r/m4-switch-lang-by-ac.d/input.m4 +10 -0
  1329. data/ext/vendor/ctags/Units/parser-m4.r/m4-switch-lang-by-m4.d/args.ctags +3 -0
  1330. data/ext/vendor/ctags/Units/parser-m4.r/m4-switch-lang-by-m4.d/expected.tags +3 -0
  1331. data/ext/vendor/ctags/Units/parser-m4.r/m4-switch-lang-by-m4.d/input.m4 +3 -0
  1332. data/ext/vendor/ctags/Units/parser-make.r/bug2959889.mak.d/expected.tags +0 -0
  1333. data/ext/vendor/ctags/Units/parser-make.r/bug2959889.mak.d/input.mak +1 -0
  1334. data/ext/vendor/ctags/Units/parser-make.r/make.comment-in-rule.d/expected.tags +1 -0
  1335. data/ext/vendor/ctags/Units/parser-make.r/make.comment-in-rule.d/input.mak +17 -0
  1336. data/ext/vendor/ctags/Units/parser-make.r/make.continuation.d/expected.tags +2 -0
  1337. data/ext/vendor/ctags/Units/parser-make.r/make.continuation.d/input.mak +11 -0
  1338. data/ext/vendor/ctags/Units/parser-make.r/make.gnumake-not-special-targets.d/expected.tags +1 -0
  1339. data/ext/vendor/ctags/Units/parser-make.r/make.gnumake-not-special-targets.d/input.mak +5 -0
  1340. data/ext/vendor/ctags/Units/parser-make.r/make.gnumake-pattern-rules.d/expected.tags +5 -0
  1341. data/ext/vendor/ctags/Units/parser-make.r/make.gnumake-pattern-rules.d/input.mak +8 -0
  1342. data/ext/vendor/ctags/Units/parser-make.r/make.include.d/args.ctags +2 -0
  1343. data/ext/vendor/ctags/Units/parser-make.r/make.include.d/expected.tags +22 -0
  1344. data/ext/vendor/ctags/Units/parser-make.r/make.include.d/input.mk +21 -0
  1345. data/ext/vendor/ctags/Units/parser-make.r/make.multi-target.d/expected.tags +4 -0
  1346. data/ext/vendor/ctags/Units/parser-make.r/make.multi-target.d/input.mak +8 -0
  1347. data/ext/vendor/ctags/Units/parser-make.r/make.parenthesis.d/expected.tags +4 -0
  1348. data/ext/vendor/ctags/Units/parser-make.r/make.parenthesis.d/input.mk +6 -0
  1349. data/ext/vendor/ctags/Units/parser-make.r/make.target-with-parentheses.d/expected.tags +2 -0
  1350. data/ext/vendor/ctags/Units/parser-make.r/make.target-with-parentheses.d/input.mak +1 -0
  1351. data/ext/vendor/ctags/Units/parser-make.r/make.variable-on-cmdline.d/expected.tags +1 -0
  1352. data/ext/vendor/ctags/Units/parser-make.r/make.variable-on-cmdline.d/input.mak +2 -0
  1353. data/ext/vendor/ctags/Units/parser-make.r/make.variable-set-if-undefined.d/expected.tags +1 -0
  1354. data/ext/vendor/ctags/Units/parser-make.r/make.variable-set-if-undefined.d/input.mak +1 -0
  1355. data/ext/vendor/ctags/Units/parser-man.r/double-quoted.d/args.ctags +1 -0
  1356. data/ext/vendor/ctags/Units/parser-man.r/double-quoted.d/expected.tags +2 -0
  1357. data/ext/vendor/ctags/Units/parser-man.r/double-quoted.d/input.1 +7 -0
  1358. data/ext/vendor/ctags/Units/parser-man.r/simple.d/args.ctags +1 -0
  1359. data/ext/vendor/ctags/Units/parser-man.r/simple.d/expected.tags +4 -0
  1360. data/ext/vendor/ctags/Units/parser-man.r/simple.d/input.1 +22 -0
  1361. data/ext/vendor/ctags/Units/parser-myrddin.r/simple.d/expected.tags +8 -0
  1362. data/ext/vendor/ctags/Units/parser-myrddin.r/simple.d/input.myr +14 -0
  1363. data/ext/vendor/ctags/Units/parser-objectivec.r/objc.m.d/expected.tags +3 -0
  1364. data/ext/vendor/ctags/Units/parser-objectivec.r/objc.m.d/input.m +6 -0
  1365. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_implementation.m.d/args.ctags +0 -0
  1366. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_implementation.m.d/expected.tags +13 -0
  1367. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_implementation.m.d/input.m +125 -0
  1368. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_interface.h.d/args.ctags +2 -0
  1369. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_interface.h.d/expected.tags +23 -0
  1370. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_interface.h.d/input.h +64 -0
  1371. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_property.h.d/args.ctags +0 -0
  1372. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_property.h.d/expected.tags +6 -0
  1373. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_property.h.d/input.h +13 -0
  1374. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_protocol.h.d/args.ctags +0 -0
  1375. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_protocol.h.d/expected.tags +3 -0
  1376. data/ext/vendor/ctags/Units/parser-objectivec.r/objectivec_protocol.h.d/input.h +6 -0
  1377. data/ext/vendor/ctags/Units/parser-perl.r/bug612621.pl.d/expected.tags +2 -0
  1378. data/ext/vendor/ctags/Units/parser-perl.r/bug612621.pl.d/input.pl +57 -0
  1379. data/ext/vendor/ctags/Units/parser-perl.r/bug842077.pl.d/expected.tags +1 -0
  1380. data/ext/vendor/ctags/Units/parser-perl.r/bug842077.pl.d/input.pl +33 -0
  1381. data/ext/vendor/ctags/Units/parser-perl.r/format.pl.d/expected.tags +2 -0
  1382. data/ext/vendor/ctags/Units/parser-perl.r/format.pl.d/input.pl +15 -0
  1383. data/ext/vendor/ctags/Units/parser-perl.r/package.pm.d/expected.tags +9 -0
  1384. data/ext/vendor/ctags/Units/parser-perl.r/package.pm.d/input.pm +57 -0
  1385. data/ext/vendor/ctags/Units/parser-perl.r/perl-autoloader.d/expected.tags +2 -0
  1386. data/ext/vendor/ctags/Units/parser-perl.r/perl-autoloader.d/input.pm +14 -0
  1387. data/ext/vendor/ctags/Units/parser-perl.r/perl-selfloader.d/expected.tags +2 -0
  1388. data/ext/vendor/ctags/Units/parser-perl.r/perl-selfloader.d/input.pm +14 -0
  1389. data/ext/vendor/ctags/Units/parser-perl.r/perl-two-line-package.d/args.ctags +1 -0
  1390. data/ext/vendor/ctags/Units/parser-perl.r/perl-two-line-package.d/expected.tags +6 -0
  1391. data/ext/vendor/ctags/Units/parser-perl.r/perl-two-line-package.d/input.pm +16 -0
  1392. data/ext/vendor/ctags/Units/parser-perl.r/simple.pl.d/args.ctags +2 -0
  1393. data/ext/vendor/ctags/Units/parser-perl.r/simple.pl.d/expected.tags +5 -0
  1394. data/ext/vendor/ctags/Units/parser-perl.r/simple.pl.d/input.pl +21 -0
  1395. data/ext/vendor/ctags/Units/parser-perl6.r/perl6-bunch1.d/expected.tags +45 -0
  1396. data/ext/vendor/ctags/Units/parser-perl6.r/perl6-bunch1.d/input.pm +120 -0
  1397. data/ext/vendor/ctags/Units/parser-perl6.r/perl6-bunch2.d/expected.tags +89 -0
  1398. data/ext/vendor/ctags/Units/parser-perl6.r/perl6-bunch2.d/input.pm +956 -0
  1399. data/ext/vendor/ctags/Units/parser-perl6.r/perl6-package.d/expected.tags +8 -0
  1400. data/ext/vendor/ctags/Units/parser-perl6.r/perl6-package.d/input.pm +6 -0
  1401. data/ext/vendor/ctags/Units/parser-php.r/anonymous_functions.php.d/expected.tags +8 -0
  1402. data/ext/vendor/ctags/Units/parser-php.r/anonymous_functions.php.d/input.php +47 -0
  1403. data/ext/vendor/ctags/Units/parser-php.r/bug681824.php.d/expected.tags +1 -0
  1404. data/ext/vendor/ctags/Units/parser-php.r/bug681824.php.d/input.php +32 -0
  1405. data/ext/vendor/ctags/Units/parser-php.r/classes.php.d/expected.tags +7 -0
  1406. data/ext/vendor/ctags/Units/parser-php.r/classes.php.d/input.php +38 -0
  1407. data/ext/vendor/ctags/Units/parser-php.r/mode.php.d/expected.tags +10 -0
  1408. data/ext/vendor/ctags/Units/parser-php.r/mode.php.d/input.php +125 -0
  1409. data/ext/vendor/ctags/Units/parser-php.r/php-anonymous-classes.d/args.ctags +1 -0
  1410. data/ext/vendor/ctags/Units/parser-php.r/php-anonymous-classes.d/expected.tags +14 -0
  1411. data/ext/vendor/ctags/Units/parser-php.r/php-anonymous-classes.d/input.php +26 -0
  1412. data/ext/vendor/ctags/Units/parser-php.r/php-anonymous_functions.d/args.ctags +1 -0
  1413. data/ext/vendor/ctags/Units/parser-php.r/php-anonymous_functions.d/expected.tags +8 -0
  1414. data/ext/vendor/ctags/Units/parser-php.r/php-anonymous_functions.d/input.php +31 -0
  1415. data/ext/vendor/ctags/Units/parser-php.r/php-bug681824.d/args.ctags +1 -0
  1416. data/ext/vendor/ctags/Units/parser-php.r/php-bug681824.d/expected.tags +1 -0
  1417. data/ext/vendor/ctags/Units/parser-php.r/php-bug681824.d/input.php +32 -0
  1418. data/ext/vendor/ctags/Units/parser-php.r/php-case_sensitivity.d/expected.tags +16 -0
  1419. data/ext/vendor/ctags/Units/parser-php.r/php-case_sensitivity.d/input.php +40 -0
  1420. data/ext/vendor/ctags/Units/parser-php.r/php-classes.d/args.ctags +1 -0
  1421. data/ext/vendor/ctags/Units/parser-php.r/php-classes.d/expected.tags +15 -0
  1422. data/ext/vendor/ctags/Units/parser-php.r/php-classes.d/input.php +69 -0
  1423. data/ext/vendor/ctags/Units/parser-php.r/php-full-qualified-tags.d/args.ctags +1 -0
  1424. data/ext/vendor/ctags/Units/parser-php.r/php-full-qualified-tags.d/expected.tags +5 -0
  1425. data/ext/vendor/ctags/Units/parser-php.r/php-full-qualified-tags.d/input.php +10 -0
  1426. data/ext/vendor/ctags/Units/parser-php.r/php-mode.d/expected.tags +10 -0
  1427. data/ext/vendor/ctags/Units/parser-php.r/php-mode.d/input.php +125 -0
  1428. data/ext/vendor/ctags/Units/parser-php.r/php-namespaces.d/expected.tags +13 -0
  1429. data/ext/vendor/ctags/Units/parser-php.r/php-namespaces.d/input.php +73 -0
  1430. data/ext/vendor/ctags/Units/parser-php.r/php-namespaces2.d/expected.tags +11 -0
  1431. data/ext/vendor/ctags/Units/parser-php.r/php-namespaces2.d/input.php +60 -0
  1432. data/ext/vendor/ctags/Units/parser-php.r/php-php5_5_class_kw.d/expected.tags +4 -0
  1433. data/ext/vendor/ctags/Units/parser-php.r/php-php5_5_class_kw.d/input.php +19 -0
  1434. data/ext/vendor/ctags/Units/parser-php.r/php-return-type-declaration.d/args.ctags +2 -0
  1435. data/ext/vendor/ctags/Units/parser-php.r/php-return-type-declaration.d/expected.tags +14 -0
  1436. data/ext/vendor/ctags/Units/parser-php.r/php-return-type-declaration.d/input.php +59 -0
  1437. data/ext/vendor/ctags/Units/parser-php.r/php-semi-reserved-keywords.d/expected.tags +15 -0
  1438. data/ext/vendor/ctags/Units/parser-php.r/php-semi-reserved-keywords.d/input.php +26 -0
  1439. data/ext/vendor/ctags/Units/parser-php.r/php-simple.d/args.ctags +1 -0
  1440. data/ext/vendor/ctags/Units/parser-php.r/php-simple.d/expected.tags +11 -0
  1441. data/ext/vendor/ctags/Units/parser-php.r/php-simple.d/input.php +49 -0
  1442. data/ext/vendor/ctags/Units/parser-php.r/php-strings.d/expected.tags +8 -0
  1443. data/ext/vendor/ctags/Units/parser-php.r/php-strings.d/input.php +24 -0
  1444. data/ext/vendor/ctags/Units/parser-php.r/php-traits.d/args.ctags +1 -0
  1445. data/ext/vendor/ctags/Units/parser-php.r/php-traits.d/expected.tags +10 -0
  1446. data/ext/vendor/ctags/Units/parser-php.r/php-traits.d/input.php +54 -0
  1447. data/ext/vendor/ctags/Units/parser-php.r/php-use.d/expected.tags +35 -0
  1448. data/ext/vendor/ctags/Units/parser-php.r/php-use.d/input.php +74 -0
  1449. data/ext/vendor/ctags/Units/parser-php.r/php-whitespaces.d/expected.tags +8 -0
  1450. data/ext/vendor/ctags/Units/parser-php.r/php-whitespaces.d/input.php +34 -0
  1451. data/ext/vendor/ctags/Units/parser-php.r/simple.php.d/expected.tags +11 -0
  1452. data/ext/vendor/ctags/Units/parser-php.r/simple.php.d/input.php +49 -0
  1453. data/ext/vendor/ctags/Units/parser-php.r/traits.php.d/expected.tags +8 -0
  1454. data/ext/vendor/ctags/Units/parser-php.r/traits.php.d/input.php +47 -0
  1455. data/ext/vendor/ctags/Units/parser-php.r/whitespaces.php.d/expected.tags +8 -0
  1456. data/ext/vendor/ctags/Units/parser-php.r/whitespaces.php.d/input.php +48 -0
  1457. data/ext/vendor/ctags/Units/parser-python.r/blanks.d/expected.tags +10 -0
  1458. data/ext/vendor/ctags/Units/parser-python.r/blanks.d/input.py +25 -0
  1459. data/ext/vendor/ctags/Units/parser-python.r/bug1764148.d/args.ctags +1 -0
  1460. data/ext/vendor/ctags/Units/parser-python.r/bug1764148.d/expected.tags +1 -0
  1461. data/ext/vendor/ctags/Units/parser-python.r/bug1764148.d/input.bug1764148 +2 -0
  1462. data/ext/vendor/ctags/Units/parser-python.r/bug1809024.py.d/expected.tags +1 -0
  1463. data/ext/vendor/ctags/Units/parser-python.r/bug1809024.py.d/input.py +10 -0
  1464. data/ext/vendor/ctags/Units/parser-python.r/bug1856363.py.d/expected.tags +1 -0
  1465. data/ext/vendor/ctags/Units/parser-python.r/bug1856363.py.d/input.py +9 -0
  1466. data/ext/vendor/ctags/Units/parser-python.r/bug1906062.py.d/expected.tags +1 -0
  1467. data/ext/vendor/ctags/Units/parser-python.r/bug1906062.py.d/input.py +4 -0
  1468. data/ext/vendor/ctags/Units/parser-python.r/bug1988026.py.d/expected.tags +4 -0
  1469. data/ext/vendor/ctags/Units/parser-python.r/bug1988026.py.d/input.py +9 -0
  1470. data/ext/vendor/ctags/Units/parser-python.r/bug1988027.py.d/expected.tags +0 -0
  1471. data/ext/vendor/ctags/Units/parser-python.r/bug1988027.py.d/input.py +9 -0
  1472. data/ext/vendor/ctags/Units/parser-python.r/bug1988130.py.d/expected.tags +2 -0
  1473. data/ext/vendor/ctags/Units/parser-python.r/bug1988130.py.d/input.py +7 -0
  1474. data/ext/vendor/ctags/Units/parser-python.r/bug2075402.py.d/expected.tags +2 -0
  1475. data/ext/vendor/ctags/Units/parser-python.r/bug2075402.py.d/input.py +2 -0
  1476. data/ext/vendor/ctags/Units/parser-python.r/bug3168705.py.d/expected.tags +3 -0
  1477. data/ext/vendor/ctags/Units/parser-python.r/bug3168705.py.d/input.py +9 -0
  1478. data/ext/vendor/ctags/Units/parser-python.r/bug699171.py.d/expected.tags +2 -0
  1479. data/ext/vendor/ctags/Units/parser-python.r/bug699171.py.d/input.py +8 -0
  1480. data/ext/vendor/ctags/Units/parser-python.r/cython-external.d/expected.tags +1 -0
  1481. data/ext/vendor/ctags/Units/parser-python.r/cython-external.d/input.pyx +9 -0
  1482. data/ext/vendor/ctags/Units/parser-python.r/cython_sample.pyx.d/expected.tags +14 -0
  1483. data/ext/vendor/ctags/Units/parser-python.r/cython_sample.pyx.d/input.pyx +49 -0
  1484. data/ext/vendor/ctags/Units/parser-python.r/cython_sample2.d/args.ctags +2 -0
  1485. data/ext/vendor/ctags/Units/parser-python.r/cython_sample2.d/expected.tags +5 -0
  1486. data/ext/vendor/ctags/Units/parser-python.r/cython_sample2.d/input.pyx +11 -0
  1487. data/ext/vendor/ctags/Units/parser-python.r/dotted-variable-leftovers.d/expected.tags +3 -0
  1488. data/ext/vendor/ctags/Units/parser-python.r/dotted-variable-leftovers.d/input.py +8 -0
  1489. data/ext/vendor/ctags/Units/parser-python.r/multiline-arglist.d/args.ctags +2 -0
  1490. data/ext/vendor/ctags/Units/parser-python.r/multiline-arglist.d/expected.tags +8 -0
  1491. data/ext/vendor/ctags/Units/parser-python.r/multiline-arglist.d/input.py +30 -0
  1492. data/ext/vendor/ctags/Units/parser-python.r/multiline-class-def.d/expected.tags +4 -0
  1493. data/ext/vendor/ctags/Units/parser-python.r/multiline-class-def.d/input.py +6 -0
  1494. data/ext/vendor/ctags/Units/parser-python.r/multiline-def.d/expected.tags +2 -0
  1495. data/ext/vendor/ctags/Units/parser-python.r/multiline-def.d/input.py +6 -0
  1496. data/ext/vendor/ctags/Units/parser-python.r/nested-parenthesis.d/args.ctags +2 -0
  1497. data/ext/vendor/ctags/Units/parser-python.r/nested-parenthesis.d/expected.tags +5 -0
  1498. data/ext/vendor/ctags/Units/parser-python.r/nested-parenthesis.d/input.py +16 -0
  1499. data/ext/vendor/ctags/Units/parser-python.r/newlines-cr.b/README +2 -0
  1500. data/ext/vendor/ctags/Units/parser-python.r/newlines-cr.b/expected.tags +4 -0
  1501. data/ext/vendor/ctags/Units/parser-python.r/newlines-cr.b/input.py +1 -0
  1502. data/ext/vendor/ctags/Units/parser-python.r/newlines-crlf.d/expected.tags +4 -0
  1503. data/ext/vendor/ctags/Units/parser-python.r/newlines-crlf.d/input.py +13 -0
  1504. data/ext/vendor/ctags/Units/parser-python.r/py-skipped-string.d/expected.tags +3 -0
  1505. data/ext/vendor/ctags/Units/parser-python.r/py-skipped-string.d/input.py +30 -0
  1506. data/ext/vendor/ctags/Units/parser-python.r/python-access.d/args.ctags +1 -0
  1507. data/ext/vendor/ctags/Units/parser-python.r/python-access.d/expected.tags +18 -0
  1508. data/ext/vendor/ctags/Units/parser-python.r/python-access.d/input.py +45 -0
  1509. data/ext/vendor/ctags/Units/parser-python.r/python-anonymous-nestlevel_ctags-bug-356.d/expected.tags +3 -0
  1510. data/ext/vendor/ctags/Units/parser-python.r/python-anonymous-nestlevel_ctags-bug-356.d/input.py +6 -0
  1511. data/ext/vendor/ctags/Units/parser-python.r/python-arguments.d/args.ctags +3 -0
  1512. data/ext/vendor/ctags/Units/parser-python.r/python-arguments.d/expected.tags +74 -0
  1513. data/ext/vendor/ctags/Units/parser-python.r/python-arguments.d/input.py +52 -0
  1514. data/ext/vendor/ctags/Units/parser-python.r/python-comments.d/args.ctags +1 -0
  1515. data/ext/vendor/ctags/Units/parser-python.r/python-comments.d/expected.tags +1 -0
  1516. data/ext/vendor/ctags/Units/parser-python.r/python-comments.d/input.py +8 -0
  1517. data/ext/vendor/ctags/Units/parser-python.r/python-decorators.d/args.ctags +1 -0
  1518. data/ext/vendor/ctags/Units/parser-python.r/python-decorators.d/expected.tags +14 -0
  1519. data/ext/vendor/ctags/Units/parser-python.r/python-decorators.d/input.py +50 -0
  1520. data/ext/vendor/ctags/Units/parser-python.r/python-disable-member-kind.d/args.ctags +1 -0
  1521. data/ext/vendor/ctags/Units/parser-python.r/python-disable-member-kind.d/input.py +6 -0
  1522. data/ext/vendor/ctags/Units/parser-python.r/python-dot-in-import.d/args.ctags +3 -0
  1523. data/ext/vendor/ctags/Units/parser-python.r/python-dot-in-import.d/expected.tags +12 -0
  1524. data/ext/vendor/ctags/Units/parser-python.r/python-dot-in-import.d/input.py +7 -0
  1525. data/ext/vendor/ctags/Units/parser-python.r/python-dotted-variable.d/README +1 -0
  1526. data/ext/vendor/ctags/Units/parser-python.r/python-dotted-variable.d/expected.tags +5 -0
  1527. data/ext/vendor/ctags/Units/parser-python.r/python-dotted-variable.d/input.py +9 -0
  1528. data/ext/vendor/ctags/Units/parser-python.r/python-end-field.d/args.ctags +4 -0
  1529. data/ext/vendor/ctags/Units/parser-python.r/python-end-field.d/expected.tags +12 -0
  1530. data/ext/vendor/ctags/Units/parser-python.r/python-end-field.d/input.py +18 -0
  1531. data/ext/vendor/ctags/Units/parser-python.r/python-fullqualified-tags.d/args.ctags +1 -0
  1532. data/ext/vendor/ctags/Units/parser-python.r/python-fullqualified-tags.d/expected.tags +7 -0
  1533. data/ext/vendor/ctags/Units/parser-python.r/python-fullqualified-tags.d/input.py +6 -0
  1534. data/ext/vendor/ctags/Units/parser-python.r/python-geany-bug-612.d/expected.tags +5 -0
  1535. data/ext/vendor/ctags/Units/parser-python.r/python-geany-bug-612.d/input.py +28 -0
  1536. data/ext/vendor/ctags/Units/parser-python.r/python-import.d/args.ctags +3 -0
  1537. data/ext/vendor/ctags/Units/parser-python.r/python-import.d/expected.tags +43 -0
  1538. data/ext/vendor/ctags/Units/parser-python.r/python-import.d/input.py +13 -0
  1539. data/ext/vendor/ctags/Units/parser-python.r/python-keyword-tabulation.d/expected.tags +2 -0
  1540. data/ext/vendor/ctags/Units/parser-python.r/python-keyword-tabulation.d/input.py +6 -0
  1541. data/ext/vendor/ctags/Units/parser-python.r/python-local-lambdas.d/expected.tags +7 -0
  1542. data/ext/vendor/ctags/Units/parser-python.r/python-local-lambdas.d/input.py +11 -0
  1543. data/ext/vendor/ctags/Units/parser-python.r/python-local-variables.d/args.ctags +1 -0
  1544. data/ext/vendor/ctags/Units/parser-python.r/python-local-variables.d/expected.tags +15 -0
  1545. data/ext/vendor/ctags/Units/parser-python.r/python-local-variables.d/input.py +23 -0
  1546. data/ext/vendor/ctags/Units/parser-python.r/python-multivar-no-declaration.d/expected.tags +3 -0
  1547. data/ext/vendor/ctags/Units/parser-python.r/python-multivar-no-declaration.d/input.py +3 -0
  1548. data/ext/vendor/ctags/Units/parser-python.r/python-multivar-statement-with-lambdas.d/expected.tags +25 -0
  1549. data/ext/vendor/ctags/Units/parser-python.r/python-multivar-statement-with-lambdas.d/input.py +45 -0
  1550. data/ext/vendor/ctags/Units/parser-python.r/python-multivar-statement.d/expected.tags +6 -0
  1551. data/ext/vendor/ctags/Units/parser-python.r/python-multivar-statement.d/input.py +3 -0
  1552. data/ext/vendor/ctags/Units/parser-python.r/python-semicolon.d/expected.tags +7 -0
  1553. data/ext/vendor/ctags/Units/parser-python.r/python-semicolon.d/input.py +17 -0
  1554. data/ext/vendor/ctags/Units/parser-python.r/python2-arglists.d/args.ctags +1 -0
  1555. data/ext/vendor/ctags/Units/parser-python.r/python2-arglists.d/expected.tags +31 -0
  1556. data/ext/vendor/ctags/Units/parser-python.r/python2-arglists.d/input.py +53 -0
  1557. data/ext/vendor/ctags/Units/parser-python.r/python3-arglists.d/args.ctags +1 -0
  1558. data/ext/vendor/ctags/Units/parser-python.r/python3-arglists.d/expected.tags +30 -0
  1559. data/ext/vendor/ctags/Units/parser-python.r/python3-arglists.d/input.py +54 -0
  1560. data/ext/vendor/ctags/Units/parser-python.r/python3-function-annotations.d/args.ctags +1 -0
  1561. data/ext/vendor/ctags/Units/parser-python.r/python3-function-annotations.d/expected.tags +13 -0
  1562. data/ext/vendor/ctags/Units/parser-python.r/python3-function-annotations.d/input.py +22 -0
  1563. data/ext/vendor/ctags/Units/parser-python.r/simple.py.d/args.ctags +4 -0
  1564. data/ext/vendor/ctags/Units/parser-python.r/simple.py.d/expected.tags +45 -0
  1565. data/ext/vendor/ctags/Units/parser-python.r/simple.py.d/input.py +60 -0
  1566. data/ext/vendor/ctags/Units/parser-python.r/strings.d/expected.tags +31 -0
  1567. data/ext/vendor/ctags/Units/parser-python.r/strings.d/input.py +37 -0
  1568. data/ext/vendor/ctags/Units/parser-python.r/tabindent.py.d/expected.tags +1 -0
  1569. data/ext/vendor/ctags/Units/parser-python.r/tabindent.py.d/input.py +3 -0
  1570. data/ext/vendor/ctags/Units/parser-python.r/test.py.d/expected.tags +3 -0
  1571. data/ext/vendor/ctags/Units/parser-python.r/test.py.d/input.py +10 -0
  1572. data/ext/vendor/ctags/Units/parser-python.r/toplevel-funcall-with-keyword-args.d/expected.tags +1 -0
  1573. data/ext/vendor/ctags/Units/parser-python.r/toplevel-funcall-with-keyword-args.d/input.py +6 -0
  1574. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-after-def.d/expected.tags +3 -0
  1575. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-after-def.d/input.py +4 -0
  1576. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-in-class.d/expected.tags +3 -0
  1577. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-in-class.d/input.py +8 -0
  1578. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-in-default-arg.d/expected.tags +2 -0
  1579. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-in-default-arg.d/input.py +5 -0
  1580. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-in-list.d/expected.tags +3 -0
  1581. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes-in-list.d/input.py +10 -0
  1582. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes.d/expected.tags +3 -0
  1583. data/ext/vendor/ctags/Units/parser-python.r/triple-quotes.d/input.py +12 -0
  1584. data/ext/vendor/ctags/Units/parser-r.r/r-extended.d/expected.tags +3 -0
  1585. data/ext/vendor/ctags/Units/parser-r.r/r-extended.d/input.r +11 -0
  1586. data/ext/vendor/ctags/Units/parser-r.r/r-simple.d/expected.tags +3 -0
  1587. data/ext/vendor/ctags/Units/parser-r.r/r-simple.d/input.r +7 -0
  1588. data/ext/vendor/ctags/Units/parser-r.r/r-uppercase-extension.d/expected.tags +3 -0
  1589. data/ext/vendor/ctags/Units/parser-r.r/r-uppercase-extension.d/input.R +7 -0
  1590. data/ext/vendor/ctags/Units/parser-relaxng.r/element.d/args.ctags +1 -0
  1591. data/ext/vendor/ctags/Units/parser-relaxng.r/element.d/expected.tags +4 -0
  1592. data/ext/vendor/ctags/Units/parser-relaxng.r/element.d/features +1 -0
  1593. data/ext/vendor/ctags/Units/parser-relaxng.r/element.d/input.rng +14 -0
  1594. data/ext/vendor/ctags/Units/parser-relaxng.r/grammar.d/args.ctags +2 -0
  1595. data/ext/vendor/ctags/Units/parser-relaxng.r/grammar.d/expected.tags +40 -0
  1596. data/ext/vendor/ctags/Units/parser-relaxng.r/grammar.d/features +1 -0
  1597. data/ext/vendor/ctags/Units/parser-relaxng.r/grammar.d/input.rng +264 -0
  1598. data/ext/vendor/ctags/Units/parser-restructuredtext.r/iso8859-1-restructuredtext.d/expected.tags +4 -0
  1599. data/ext/vendor/ctags/Units/parser-restructuredtext.r/iso8859-1-restructuredtext.d/input.rst +17 -0
  1600. data/ext/vendor/ctags/Units/parser-restructuredtext.r/simple-restructuredtext.d/args.ctags +2 -0
  1601. data/ext/vendor/ctags/Units/parser-restructuredtext.r/simple-restructuredtext.d/expected.tags +8 -0
  1602. data/ext/vendor/ctags/Units/parser-restructuredtext.r/simple-restructuredtext.d/input.rst +39 -0
  1603. data/ext/vendor/ctags/Units/parser-restructuredtext.r/utf8-restructuredtext.d/expected.tags +4 -0
  1604. data/ext/vendor/ctags/Units/parser-restructuredtext.r/utf8-restructuredtext.d/input.rst +17 -0
  1605. data/ext/vendor/ctags/Units/parser-ruby.r/bug1742588.rb.d/expected.tags +3 -0
  1606. data/ext/vendor/ctags/Units/parser-ruby.r/bug1742588.rb.d/input.rb +7 -0
  1607. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-block-call.d/expected.tags +2 -0
  1608. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-block-call.d/input.rb +10 -0
  1609. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-class-method-in-lt-lt-self.d/expected.tags +2 -0
  1610. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-class-method-in-lt-lt-self.d/input.rb +6 -0
  1611. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-doc.d/expected.tags +4 -0
  1612. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-doc.d/input.rb +22 -0
  1613. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-geany-sf-bug-302.d/expected.tags +3 -0
  1614. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-geany-sf-bug-302.d/input.rb +14 -0
  1615. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-geany-sf-bug-542.d/expected.tags +12 -0
  1616. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-geany-sf-bug-542.d/input.rb +101 -0
  1617. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-kind-option.d/args.ctags +1 -0
  1618. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-kind-option.d/expected.tags +1 -0
  1619. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-kind-option.d/input.rb +5 -0
  1620. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-namespaced-class.d/expected.tags +3 -0
  1621. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-namespaced-class.d/input.rb +8 -0
  1622. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-scope-after-anonymous-class.d/expected.tags +3 -0
  1623. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-scope-after-anonymous-class.d/input.rb +10 -0
  1624. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-sf-bug-364.d/expected.tags +7 -0
  1625. data/ext/vendor/ctags/Units/parser-ruby.r/ruby-sf-bug-364.d/input.rb +16 -0
  1626. data/ext/vendor/ctags/Units/parser-ruby.r/simple.rb.d/expected.tags +9 -0
  1627. data/ext/vendor/ctags/Units/parser-ruby.r/simple.rb.d/input.rb +29 -0
  1628. data/ext/vendor/ctags/Units/parser-rust.r/rust-simple.d/args.ctags +1 -0
  1629. data/ext/vendor/ctags/Units/parser-rust.r/rust-simple.d/expected.tags +7 -0
  1630. data/ext/vendor/ctags/Units/parser-rust.r/rust-simple.d/features +1 -0
  1631. data/ext/vendor/ctags/Units/parser-rust.r/rust-simple.d/input.rs +17 -0
  1632. data/ext/vendor/ctags/Units/parser-rust.r/rust-test_input.d/args.ctags +1 -0
  1633. data/ext/vendor/ctags/Units/parser-rust.r/rust-test_input.d/expected.tags +59 -0
  1634. data/ext/vendor/ctags/Units/parser-rust.r/rust-test_input.d/input.rs +189 -0
  1635. data/ext/vendor/ctags/Units/parser-rust.r/rust-test_input2.d/args.ctags +1 -0
  1636. data/ext/vendor/ctags/Units/parser-rust.r/rust-test_input2.d/expected.tags +20 -0
  1637. data/ext/vendor/ctags/Units/parser-rust.r/rust-test_input2.d/input.rs +46 -0
  1638. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-simple-define.d/expected.tags +33 -0
  1639. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-simple-define.d/input.scm +83 -0
  1640. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-simple-setbang.d/expected.tags +16 -0
  1641. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-simple-setbang.d/input.scm +29 -0
  1642. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-srfi-30-comment.b/expected.tags +0 -0
  1643. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-srfi-30-comment.b/input.scm +4 -0
  1644. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-string.b/expected.tags +0 -0
  1645. data/ext/vendor/ctags/Units/parser-scheme.r/scheme-string.b/input.scm +4 -0
  1646. data/ext/vendor/ctags/Units/parser-sh.r/function-identifiers-bash.d/expected.tags +113 -0
  1647. data/ext/vendor/ctags/Units/parser-sh.r/function-identifiers-bash.d/input.bash +398 -0
  1648. data/ext/vendor/ctags/Units/parser-sh.r/sh-alias.d/expected.tags +11 -0
  1649. data/ext/vendor/ctags/Units/parser-sh.r/sh-alias.d/input.sh +11 -0
  1650. data/ext/vendor/ctags/Units/parser-sh.r/sh-comments.d/expected.tags +4 -0
  1651. data/ext/vendor/ctags/Units/parser-sh.r/sh-comments.d/input.sh +7 -0
  1652. data/ext/vendor/ctags/Units/parser-sh.r/sh-heredoc-broken.d/input.sh +1 -0
  1653. data/ext/vendor/ctags/Units/parser-sh.r/sh-heredoc-broken2.d/input.sh +1 -0
  1654. data/ext/vendor/ctags/Units/parser-sh.r/sh-heredoc-checks.d/expected.tags +17 -0
  1655. data/ext/vendor/ctags/Units/parser-sh.r/sh-heredoc-checks.d/input.sh +90 -0
  1656. data/ext/vendor/ctags/Units/parser-sh.r/sh-heredoc.d/expected.tags +0 -0
  1657. data/ext/vendor/ctags/Units/parser-sh.r/sh-heredoc.d/input.sh +5 -0
  1658. data/ext/vendor/ctags/Units/parser-sh.r/sh-herestring.d/expected.tags +4 -0
  1659. data/ext/vendor/ctags/Units/parser-sh.r/sh-herestring.d/input.sh +11 -0
  1660. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-1-emacs-shell-script.d/args.ctags +1 -0
  1661. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-1-emacs-shell-script.d/expected.tags +1 -0
  1662. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-1-emacs-shell-script.d/input.nolang +5 -0
  1663. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-2-emacs-shell-script.d/args.ctags +1 -0
  1664. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-2-emacs-shell-script.d/expected.tags +1 -0
  1665. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-2-emacs-shell-script.d/input.nolang +5 -0
  1666. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-at-eof-emacs-shell-script.d/args.ctags +2 -0
  1667. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-at-eof-emacs-shell-script.d/expected.tags +1 -0
  1668. data/ext/vendor/ctags/Units/parser-sh.r/sh-modeline-at-eof-emacs-shell-script.d/input.nolang +7 -0
  1669. data/ext/vendor/ctags/Units/parser-sh.r/sh-quoted-func.d/expected.tags +0 -0
  1670. data/ext/vendor/ctags/Units/parser-sh.r/sh-quoted-func.d/input.sh +1 -0
  1671. data/ext/vendor/ctags/Units/parser-sh.r/sh-quotes.d/expected.tags +4 -0
  1672. data/ext/vendor/ctags/Units/parser-sh.r/sh-quotes.d/input.sh +6 -0
  1673. data/ext/vendor/ctags/Units/parser-sh.r/sh-source.d/args.ctags +2 -0
  1674. data/ext/vendor/ctags/Units/parser-sh.r/sh-source.d/expected.tags +8 -0
  1675. data/ext/vendor/ctags/Units/parser-sh.r/sh-source.d/input.sh +24 -0
  1676. data/ext/vendor/ctags/Units/parser-sh.r/sh-spaces-in-funcdef.d/expected.tags +2 -0
  1677. data/ext/vendor/ctags/Units/parser-sh.r/sh-spaces-in-funcdef.d/input.sh +9 -0
  1678. data/ext/vendor/ctags/Units/parser-sh.r/sh-statements.d/expected.tags +15 -0
  1679. data/ext/vendor/ctags/Units/parser-sh.r/sh-statements.d/input.sh +23 -0
  1680. data/ext/vendor/ctags/Units/parser-sh.r/simple.ksh.d/expected.tags +2 -0
  1681. data/ext/vendor/ctags/Units/parser-sh.r/simple.ksh.d/input.ksh +7 -0
  1682. data/ext/vendor/ctags/Units/parser-sh.r/simple.sh.d/README +1 -0
  1683. data/ext/vendor/ctags/Units/parser-sh.r/simple.sh.d/expected.tags +3 -0
  1684. data/ext/vendor/ctags/Units/parser-sh.r/simple.sh.d/input.sh +10 -0
  1685. data/ext/vendor/ctags/Units/parser-sql.r/partial.d/input.sql +1 -0
  1686. data/ext/vendor/ctags/Units/parser-sql.r/sql_pgSQL_empty_decl.d/expected.tags +2 -0
  1687. data/ext/vendor/ctags/Units/parser-sql.r/sql_pgSQL_empty_decl.d/input.sql +14 -0
  1688. data/ext/vendor/ctags/Units/parser-tcl.r/simple.tcl.d/expected.tags +6 -0
  1689. data/ext/vendor/ctags/Units/parser-tcl.r/simple.tcl.d/input.tcl +10 -0
  1690. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-altstep.d/args.ctags +1 -0
  1691. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-altstep.d/expected.tags +4 -0
  1692. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-altstep.d/input.ttcn +24 -0
  1693. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-comments.d/args.ctags +1 -0
  1694. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-comments.d/expected.tags +2 -0
  1695. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-comments.d/input.ttcn +21 -0
  1696. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-component.d/args.ctags +1 -0
  1697. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-component.d/expected.tags +7 -0
  1698. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-component.d/input.ttcn +22 -0
  1699. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-constants.d/args.ctags +1 -0
  1700. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-constants.d/expected.tags +5 -0
  1701. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-constants.d/input.ttcn +9 -0
  1702. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-enum.d/args.ctags +1 -0
  1703. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-enum.d/expected.tags +4 -0
  1704. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-enum.d/input.ttcn +6 -0
  1705. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-function.d/args.ctags +1 -0
  1706. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-function.d/expected.tags +5 -0
  1707. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-function.d/input.ttcn +24 -0
  1708. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-group.d/args.ctags +1 -0
  1709. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-group.d/expected.tags +3 -0
  1710. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-group.d/input.ttcn +5 -0
  1711. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-module.d/args.ctags +1 -0
  1712. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-module.d/expected.tags +6 -0
  1713. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-module.d/input.ttcn +16 -0
  1714. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-numbers.d/args.ctags +1 -0
  1715. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-numbers.d/expected.tags +12 -0
  1716. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-numbers.d/input.ttcn +13 -0
  1717. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-signature.d/args.ctags +1 -0
  1718. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-signature.d/expected.tags +2 -0
  1719. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-signature.d/input.ttcn +3 -0
  1720. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-strings.d/args.ctags +1 -0
  1721. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-strings.d/expected.tags +15 -0
  1722. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-strings.d/input.ttcn +15 -0
  1723. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-template.d/args.ctags +1 -0
  1724. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-template.d/expected.tags +5 -0
  1725. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-template.d/input.ttcn +32 -0
  1726. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-testcase.d/args.ctags +1 -0
  1727. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-testcase.d/expected.tags +3 -0
  1728. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-testcase.d/input.ttcn +13 -0
  1729. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-timer.d/args.ctags +1 -0
  1730. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-timer.d/expected.tags +2 -0
  1731. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-timer.d/input.ttcn +18 -0
  1732. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-types.d/args.ctags +1 -0
  1733. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-types.d/expected.tags +22 -0
  1734. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-types.d/input.ttcn +32 -0
  1735. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-variables.d/args.ctags +1 -0
  1736. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-variables.d/expected.tags +13 -0
  1737. data/ext/vendor/ctags/Units/parser-ttcn.r/ttcn-variables.d/input.ttcn +19 -0
  1738. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-assertion.d/args.ctags +1 -0
  1739. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-assertion.d/expected.tags +32 -0
  1740. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-assertion.d/input.sv +25 -0
  1741. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-basic.d/args.ctags +2 -0
  1742. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-basic.d/expected.tags +89 -0
  1743. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-basic.d/input.sv +83 -0
  1744. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-class.d/args.ctags +3 -0
  1745. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-class.d/expected.tags +60 -0
  1746. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-class.d/input.sv +45 -0
  1747. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-covergroup.d/args.ctags +1 -0
  1748. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-covergroup.d/expected.tags +20 -0
  1749. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-covergroup.d/input.sv +13 -0
  1750. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-github646.d/expected.tags +1 -0
  1751. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-github646.d/input.sv +1 -0
  1752. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-interface.d/args.ctags +2 -0
  1753. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-interface.d/expected.tags +30 -0
  1754. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-interface.d/input.sv +24 -0
  1755. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-nocontext.d/args.ctags +1 -0
  1756. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-nocontext.d/expected.tags +36 -0
  1757. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-nocontext.d/input.sv +44 -0
  1758. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-package.d/args.ctags +2 -0
  1759. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-package.d/expected.tags +16 -0
  1760. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-package.d/input.sv +14 -0
  1761. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-program.d/args.ctags +2 -0
  1762. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-program.d/expected.tags +35 -0
  1763. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-program.d/input.sv +51 -0
  1764. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-qualifiers.d/args.ctags +2 -0
  1765. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-qualifiers.d/expected.tags +70 -0
  1766. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-qualifiers.d/input.sv +36 -0
  1767. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-typedef.d/args.ctags +2 -0
  1768. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-typedef.d/expected.tags +8 -0
  1769. data/ext/vendor/ctags/Units/parser-verilog.r/systemverilog-typedef.d/input.sv +15 -0
  1770. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-2001.d/args.ctags +1 -0
  1771. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-2001.d/expected.tags +64 -0
  1772. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-2001.d/input.v +51 -0
  1773. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-basic.d/args.ctags +1 -0
  1774. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-basic.d/expected.tags +72 -0
  1775. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-basic.d/input.v +64 -0
  1776. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-github624.d/expected.tags +1 -0
  1777. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-github624.d/input.v +1 -0
  1778. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-memleak.d/expected.tags +22 -0
  1779. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-memleak.d/input.v +28 -0
  1780. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-nocontext.d/args.ctags +1 -0
  1781. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-nocontext.d/expected.tags +33 -0
  1782. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-nocontext.d/input.v +45 -0
  1783. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug108_1.d/expected.tags +1 -0
  1784. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug108_1.d/input.v +17 -0
  1785. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug108_2.d/expected.tags +3 -0
  1786. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug108_2.d/input.v +8 -0
  1787. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug174.d/expected.tags +0 -0
  1788. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug174.d/input.v +5 -0
  1789. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug73_1.d/expected.tags +4 -0
  1790. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug73_1.d/input.v +27 -0
  1791. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug73_2.d/expected.tags +6 -0
  1792. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug73_2.d/input.v +61 -0
  1793. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug73_3.d/expected.tags +17 -0
  1794. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug73_3.d/input.v +49 -0
  1795. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug98.d/expected.tags +6 -0
  1796. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug98.d/input.v +53 -0
  1797. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug99.d/expected.tags +8 -0
  1798. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_bug99.d/input.v +26 -0
  1799. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_patch57.d/expected.tags +1 -0
  1800. data/ext/vendor/ctags/Units/parser-verilog.r/verilog-sf_patch57.d/input.v +1 -0
  1801. data/ext/vendor/ctags/Units/parser-vim.r/3214129.vim.d/expected.tags +89 -0
  1802. data/ext/vendor/ctags/Units/parser-vim.r/3214129.vim.d/input.vim +1683 -0
  1803. data/ext/vendor/ctags/Units/parser-vim.r/3548393.vim.d/expected.tags +33 -0
  1804. data/ext/vendor/ctags/Units/parser-vim.r/3548393.vim.d/input.vim +507 -0
  1805. data/ext/vendor/ctags/Units/parser-vim.r/bug3032253.vim.d/expected.tags +1 -0
  1806. data/ext/vendor/ctags/Units/parser-vim.r/bug3032253.vim.d/input.vim +5 -0
  1807. data/ext/vendor/ctags/Units/parser-vim.r/bug358.vim.d/expected.tags +0 -0
  1808. data/ext/vendor/ctags/Units/parser-vim.r/bug358.vim.d/input.vim +0 -0
  1809. data/ext/vendor/ctags/Units/parser-vim.r/bug359.vim.d/expected.tags +0 -0
  1810. data/ext/vendor/ctags/Units/parser-vim.r/bug359.vim.d/input.vim +2 -0
  1811. data/ext/vendor/ctags/Units/parser-vim.r/end-field.vim.d/args.ctags +2 -0
  1812. data/ext/vendor/ctags/Units/parser-vim.r/end-field.vim.d/expected.tags +2 -0
  1813. data/ext/vendor/ctags/Units/parser-vim.r/end-field.vim.d/input.vim +6 -0
  1814. data/ext/vendor/ctags/Units/parser-vim.r/simple.vim.d/expected.tags +27 -0
  1815. data/ext/vendor/ctags/Units/parser-vim.r/simple.vim.d/input.vim +114 -0
  1816. data/ext/vendor/ctags/Units/parser-vim.r/vim-command-in-function.d/expected.tags +1 -0
  1817. data/ext/vendor/ctags/Units/parser-vim.r/vim-command-in-function.d/input.vim +3 -0
  1818. data/ext/vendor/ctags/Units/parser-vim.r/vim-command-not-command.d/README +2 -0
  1819. data/ext/vendor/ctags/Units/parser-vim.r/vim-command-not-command.d/expected.tags +0 -0
  1820. data/ext/vendor/ctags/Units/parser-vim.r/vim-command-not-command.d/input.vim +1 -0
  1821. data/ext/vendor/ctags/Units/parser-vim.r/vim-command.d/expected.tags +1 -0
  1822. data/ext/vendor/ctags/Units/parser-vim.r/vim-command.d/input.vim +8 -0
  1823. data/ext/vendor/ctags/Units/parser-vim.r/vim-let-in-function.d/expected.tags +2 -0
  1824. data/ext/vendor/ctags/Units/parser-vim.r/vim-let-in-function.d/input.vim +4 -0
  1825. data/ext/vendor/ctags/Units/parser-vim.r/vim-map-special-args.d/expected.tags +1 -0
  1826. data/ext/vendor/ctags/Units/parser-vim.r/vim-map-special-args.d/input.vim +1 -0
  1827. data/ext/vendor/ctags/Units/parser-vim.r/vimball.vim.d/expected.tags +1 -0
  1828. data/ext/vendor/ctags/Units/parser-vim.r/vimball.vim.d/input.vba +6 -0
  1829. data/ext/vendor/ctags/Units/parser-xslt.r/xslt-simple.d/args.ctags +3 -0
  1830. data/ext/vendor/ctags/Units/parser-xslt.r/xslt-simple.d/expected.tags +25 -0
  1831. data/ext/vendor/ctags/Units/parser-xslt.r/xslt-simple.d/features +1 -0
  1832. data/ext/vendor/ctags/Units/parser-xslt.r/xslt-simple.d/input.xsl +153 -0
  1833. data/ext/vendor/ctags/Units/parser-yacc.r/nested.d/args.ctags +5 -0
  1834. data/ext/vendor/ctags/Units/parser-yacc.r/nested.d/expected.tags +23 -0
  1835. data/ext/vendor/ctags/Units/parser-yacc.r/nested.d/input.y +225 -0
  1836. data/ext/vendor/ctags/Units/parser-yacc.r/not-union.d/README +2 -0
  1837. data/ext/vendor/ctags/Units/parser-yacc.r/not-union.d/args.ctags +4 -0
  1838. data/ext/vendor/ctags/Units/parser-yacc.r/not-union.d/expected.tags +16 -0
  1839. data/ext/vendor/ctags/Units/parser-yacc.r/not-union.d/input.y +286 -0
  1840. data/ext/vendor/ctags/Units/parser-yaml.r/yaml-anchor.d/args.ctags +2 -0
  1841. data/ext/vendor/ctags/Units/parser-yaml.r/yaml-anchor.d/expected.tags +2 -0
  1842. data/ext/vendor/ctags/Units/parser-yaml.r/yaml-anchor.d/features +1 -0
  1843. data/ext/vendor/ctags/Units/parser-yaml.r/yaml-anchor.d/input.yml +2 -0
  1844. data/ext/vendor/ctags/Units/readtags.r/backslash-at-the-end-of-pattern.d/expected.tags +2 -0
  1845. data/ext/vendor/ctags/Units/readtags.r/backslash-at-the-end-of-pattern.d/input.c +18 -0
  1846. data/ext/vendor/ctags/Units/regex-flag-long.d/args.ctags +3 -0
  1847. data/ext/vendor/ctags/Units/regex-flag-long.d/expected.tags +4 -0
  1848. data/ext/vendor/ctags/Units/regex-flag-long.d/features +1 -0
  1849. data/ext/vendor/ctags/Units/regex-flag-long.d/input.dummy +11 -0
  1850. data/ext/vendor/ctags/Units/regex-flag-simple.d/args.ctags +4 -0
  1851. data/ext/vendor/ctags/Units/regex-flag-simple.d/expected.tags +5 -0
  1852. data/ext/vendor/ctags/Units/regex-flag-simple.d/features +1 -0
  1853. data/ext/vendor/ctags/Units/regex-flag-simple.d/input.dummy +11 -0
  1854. data/ext/vendor/ctags/Units/regex-with-scope.d/args.ctags +14 -0
  1855. data/ext/vendor/ctags/Units/regex-with-scope.d/expected.tags +21 -0
  1856. data/ext/vendor/ctags/Units/regex-with-scope.d/input.foo +44 -0
  1857. data/ext/vendor/ctags/Units/review-needed.r/3184782.sql.t/expected.tags +5 -0
  1858. data/ext/vendor/ctags/Units/review-needed.r/3184782.sql.t/input.sql +41 -0
  1859. data/ext/vendor/ctags/Units/review-needed.r/3526726.tex.t/expected.tags +139 -0
  1860. data/ext/vendor/ctags/Units/review-needed.r/3526726.tex.t/input.tex +2982 -0
  1861. data/ext/vendor/ctags/Units/review-needed.r/array_ref_and_out.cs.t/expected.tags +5 -0
  1862. data/ext/vendor/ctags/Units/review-needed.r/array_ref_and_out.cs.t/input.cs +33 -0
  1863. data/ext/vendor/ctags/Units/review-needed.r/attributes.cs.t/expected.tags +6 -0
  1864. data/ext/vendor/ctags/Units/review-needed.r/attributes.cs.t/input.cs +22 -0
  1865. data/ext/vendor/ctags/Units/review-needed.r/bug1324663.sql.t/expected.tags +0 -0
  1866. data/ext/vendor/ctags/Units/review-needed.r/bug1324663.sql.t/input.sql +4 -0
  1867. data/ext/vendor/ctags/Units/review-needed.r/bug1428714.sql.t/expected.tags +0 -0
  1868. data/ext/vendor/ctags/Units/review-needed.r/bug1428714.sql.t/input.sql +4 -0
  1869. data/ext/vendor/ctags/Units/review-needed.r/bug1447756.java.t/expected.tags +2 -0
  1870. data/ext/vendor/ctags/Units/review-needed.r/bug1447756.java.t/input.java +9 -0
  1871. data/ext/vendor/ctags/Units/review-needed.r/bug1515910.cs.t/expected.tags +9 -0
  1872. data/ext/vendor/ctags/Units/review-needed.r/bug1515910.cs.t/input.cs +15 -0
  1873. data/ext/vendor/ctags/Units/review-needed.r/bug1570779.sql.t/expected.tags +4 -0
  1874. data/ext/vendor/ctags/Units/review-needed.r/bug1570779.sql.t/input.sql +14 -0
  1875. data/ext/vendor/ctags/Units/review-needed.r/bug1611054.cs.t/expected.tags +3 -0
  1876. data/ext/vendor/ctags/Units/review-needed.r/bug1611054.cs.t/input.cs +8 -0
  1877. data/ext/vendor/ctags/Units/review-needed.r/bug1691412.java.t/expected.tags +4 -0
  1878. data/ext/vendor/ctags/Units/review-needed.r/bug1691412.java.t/input.java +17 -0
  1879. data/ext/vendor/ctags/Units/review-needed.r/bug1777340.java.t/expected.tags +3 -0
  1880. data/ext/vendor/ctags/Units/review-needed.r/bug1777340.java.t/input.java +4 -0
  1881. data/ext/vendor/ctags/Units/review-needed.r/bug1777344.java.t/expected.tags +6 -0
  1882. data/ext/vendor/ctags/Units/review-needed.r/bug1777344.java.t/input.java +7 -0
  1883. data/ext/vendor/ctags/Units/review-needed.r/bug1800065.cs.t/expected.tags +3 -0
  1884. data/ext/vendor/ctags/Units/review-needed.r/bug1800065.cs.t/input.cs +5 -0
  1885. data/ext/vendor/ctags/Units/review-needed.r/bug1830343.cs.t/expected.tags +2 -0
  1886. data/ext/vendor/ctags/Units/review-needed.r/bug1830343.cs.t/input.cs +8 -0
  1887. data/ext/vendor/ctags/Units/review-needed.r/bug1830344.cs.t/expected.tags +2 -0
  1888. data/ext/vendor/ctags/Units/review-needed.r/bug1830344.cs.t/input.cs +10 -0
  1889. data/ext/vendor/ctags/Units/review-needed.r/bug1938565.sql.t/expected.tags +3 -0
  1890. data/ext/vendor/ctags/Units/review-needed.r/bug1938565.sql.t/input.sql +18 -0
  1891. data/ext/vendor/ctags/Units/review-needed.r/bug1944150.sql.t/expected.tags +1 -0
  1892. data/ext/vendor/ctags/Units/review-needed.r/bug1944150.sql.t/input.sql +7 -0
  1893. data/ext/vendor/ctags/Units/review-needed.r/bug2049723.java.t/expected.tags +3 -0
  1894. data/ext/vendor/ctags/Units/review-needed.r/bug2049723.java.t/input.java +6 -0
  1895. data/ext/vendor/ctags/Units/review-needed.r/bug2117073.java.t/expected.tags +3 -0
  1896. data/ext/vendor/ctags/Units/review-needed.r/bug2117073.java.t/input.java +12 -0
  1897. data/ext/vendor/ctags/Units/review-needed.r/bug2374109.vhd.t/expected.tags +1 -0
  1898. data/ext/vendor/ctags/Units/review-needed.r/bug2374109.vhd.t/input.vhd +9 -0
  1899. data/ext/vendor/ctags/Units/review-needed.r/bug2411878.cs.t/expected.tags +2 -0
  1900. data/ext/vendor/ctags/Units/review-needed.r/bug2411878.cs.t/input.cs +3 -0
  1901. data/ext/vendor/ctags/Units/review-needed.r/bug2886870.tex.t/expected.tags +19 -0
  1902. data/ext/vendor/ctags/Units/review-needed.r/bug2886870.tex.t/input.tex +351 -0
  1903. data/ext/vendor/ctags/Units/review-needed.r/bug2961855.sql.t/expected.tags +2 -0
  1904. data/ext/vendor/ctags/Units/review-needed.r/bug2961855.sql.t/input.sql +19 -0
  1905. data/ext/vendor/ctags/Units/review-needed.r/bug612019.pas.t/expected.tags +3 -0
  1906. data/ext/vendor/ctags/Units/review-needed.r/bug612019.pas.t/input.pas +33 -0
  1907. data/ext/vendor/ctags/Units/review-needed.r/bug629115.sql.t/expected.tags +0 -0
  1908. data/ext/vendor/ctags/Units/review-needed.r/bug629115.sql.t/input.sql +5 -0
  1909. data/ext/vendor/ctags/Units/review-needed.r/bug722501.sql.t/expected.tags +1 -0
  1910. data/ext/vendor/ctags/Units/review-needed.r/bug722501.sql.t/input.sql +24 -0
  1911. data/ext/vendor/ctags/Units/review-needed.r/bug814263.java.t/expected.tags +3 -0
  1912. data/ext/vendor/ctags/Units/review-needed.r/bug814263.java.t/input.java +6 -0
  1913. data/ext/vendor/ctags/Units/review-needed.r/bug816636.sml.t/expected.tags +2 -0
  1914. data/ext/vendor/ctags/Units/review-needed.r/bug816636.sml.t/input.sml +26 -0
  1915. data/ext/vendor/ctags/Units/review-needed.r/bug823000.sql.t/expected.tags +3 -0
  1916. data/ext/vendor/ctags/Units/review-needed.r/bug823000.sql.t/input.sql +80 -0
  1917. data/ext/vendor/ctags/Units/review-needed.r/countall.sql.t/expected.tags +8 -0
  1918. data/ext/vendor/ctags/Units/review-needed.r/countall.sql.t/input.sql +43 -0
  1919. data/ext/vendor/ctags/Units/review-needed.r/db-trig.sql.t/expected.tags +2 -0
  1920. data/ext/vendor/ctags/Units/review-needed.r/db-trig.sql.t/input.sql +31 -0
  1921. data/ext/vendor/ctags/Units/review-needed.r/dosbatch_test.cmd.t/expected.tags +8 -0
  1922. data/ext/vendor/ctags/Units/review-needed.r/dosbatch_test.cmd.t/features +1 -0
  1923. data/ext/vendor/ctags/Units/review-needed.r/dosbatch_test.cmd.t/input.cmd +86 -0
  1924. data/ext/vendor/ctags/Units/review-needed.r/enum.java.t/expected.tags +12 -0
  1925. data/ext/vendor/ctags/Units/review-needed.r/enum.java.t/input.java +20 -0
  1926. data/ext/vendor/ctags/Units/review-needed.r/events.cs.t/expected.tags +16 -0
  1927. data/ext/vendor/ctags/Units/review-needed.r/events.cs.t/input.cs +192 -0
  1928. data/ext/vendor/ctags/Units/review-needed.r/flex_override.mxml.t/expected.tags +2 -0
  1929. data/ext/vendor/ctags/Units/review-needed.r/flex_override.mxml.t/input.mxml +20 -0
  1930. data/ext/vendor/ctags/Units/review-needed.r/general.cs.t/expected.tags +14 -0
  1931. data/ext/vendor/ctags/Units/review-needed.r/general.cs.t/input.cs +46 -0
  1932. data/ext/vendor/ctags/Units/review-needed.r/generalized_stack.ads.t/expected.tags +16 -0
  1933. data/ext/vendor/ctags/Units/review-needed.r/generalized_stack.ads.t/input.ads +50 -0
  1934. data/ext/vendor/ctags/Units/review-needed.r/hex2dec.sql.t/expected.tags +2 -0
  1935. data/ext/vendor/ctags/Units/review-needed.r/hex2dec.sql.t/input.sql +50 -0
  1936. data/ext/vendor/ctags/Units/review-needed.r/indexer.cs.t/expected.tags +4 -0
  1937. data/ext/vendor/ctags/Units/review-needed.r/indexer.cs.t/input.cs +37 -0
  1938. data/ext/vendor/ctags/Units/review-needed.r/infinite_loop.java.t/expected.tags +1 -0
  1939. data/ext/vendor/ctags/Units/review-needed.r/infinite_loop.java.t/input.java +2 -0
  1940. data/ext/vendor/ctags/Units/review-needed.r/ingres_procedures.sql.t/expected.tags +6 -0
  1941. data/ext/vendor/ctags/Units/review-needed.r/ingres_procedures.sql.t/input.sql +63 -0
  1942. data/ext/vendor/ctags/Units/review-needed.r/interface_indexers.cs.t/expected.tags +5 -0
  1943. data/ext/vendor/ctags/Units/review-needed.r/interface_indexers.cs.t/input.cs +49 -0
  1944. data/ext/vendor/ctags/Units/review-needed.r/interface_properties.cs.t/expected.tags +12 -0
  1945. data/ext/vendor/ctags/Units/review-needed.r/interface_properties.cs.t/input.cs +64 -0
  1946. data/ext/vendor/ctags/Units/review-needed.r/internal.cs.t/expected.tags +2 -0
  1947. data/ext/vendor/ctags/Units/review-needed.r/internal.cs.t/input.cs +6 -0
  1948. data/ext/vendor/ctags/Units/review-needed.r/intro.tex.t/expected.tags +18 -0
  1949. data/ext/vendor/ctags/Units/review-needed.r/intro.tex.t/input.tex +40 -0
  1950. data/ext/vendor/ctags/Units/review-needed.r/intro_orig.tex.t/expected.tags +18 -0
  1951. data/ext/vendor/ctags/Units/review-needed.r/intro_orig.tex.t/input.tex +346 -0
  1952. data/ext/vendor/ctags/Units/review-needed.r/java_enum.java.t/expected.tags +10 -0
  1953. data/ext/vendor/ctags/Units/review-needed.r/java_enum.java.t/input.java +15 -0
  1954. data/ext/vendor/ctags/Units/review-needed.r/jbrown.vr.t/args.ctags +2 -0
  1955. data/ext/vendor/ctags/Units/review-needed.r/jbrown.vr.t/expected.tags +8 -0
  1956. data/ext/vendor/ctags/Units/review-needed.r/jbrown.vr.t/input.vr +48 -0
  1957. data/ext/vendor/ctags/Units/review-needed.r/keyword_abstract.cs.t/expected.tags +11 -0
  1958. data/ext/vendor/ctags/Units/review-needed.r/keyword_abstract.cs.t/input.cs +51 -0
  1959. data/ext/vendor/ctags/Units/review-needed.r/keyword_catch_try.cs.t/expected.tags +3 -0
  1960. data/ext/vendor/ctags/Units/review-needed.r/keyword_catch_try.cs.t/input.cs +33 -0
  1961. data/ext/vendor/ctags/Units/review-needed.r/keyword_class.cs.t/expected.tags +8 -0
  1962. data/ext/vendor/ctags/Units/review-needed.r/keyword_class.cs.t/input.cs +49 -0
  1963. data/ext/vendor/ctags/Units/review-needed.r/keyword_const.cs.t/expected.tags +8 -0
  1964. data/ext/vendor/ctags/Units/review-needed.r/keyword_const.cs.t/input.cs +26 -0
  1965. data/ext/vendor/ctags/Units/review-needed.r/keyword_delegate.cs.t/expected.tags +11 -0
  1966. data/ext/vendor/ctags/Units/review-needed.r/keyword_delegate.cs.t/input.cs +57 -0
  1967. data/ext/vendor/ctags/Units/review-needed.r/keyword_enum.cs.t/expected.tags +13 -0
  1968. data/ext/vendor/ctags/Units/review-needed.r/keyword_enum.cs.t/input.cs +31 -0
  1969. data/ext/vendor/ctags/Units/review-needed.r/keyword_event.cs.t/expected.tags +35 -0
  1970. data/ext/vendor/ctags/Units/review-needed.r/keyword_event.cs.t/input.cs +180 -0
  1971. data/ext/vendor/ctags/Units/review-needed.r/keyword_explicit.cs.t/expected.tags +6 -0
  1972. data/ext/vendor/ctags/Units/review-needed.r/keyword_explicit.cs.t/input.cs +27 -0
  1973. data/ext/vendor/ctags/Units/review-needed.r/keyword_extern.cs.t/expected.tags +3 -0
  1974. data/ext/vendor/ctags/Units/review-needed.r/keyword_extern.cs.t/input.cs +15 -0
  1975. data/ext/vendor/ctags/Units/review-needed.r/keyword_implicit.cs.t/expected.tags +6 -0
  1976. data/ext/vendor/ctags/Units/review-needed.r/keyword_implicit.cs.t/input.cs +30 -0
  1977. data/ext/vendor/ctags/Units/review-needed.r/keyword_interface.cs.t/expected.tags +12 -0
  1978. data/ext/vendor/ctags/Units/review-needed.r/keyword_interface.cs.t/input.cs +73 -0
  1979. data/ext/vendor/ctags/Units/review-needed.r/keyword_namespace.cs.t/expected.tags +8 -0
  1980. data/ext/vendor/ctags/Units/review-needed.r/keyword_namespace.cs.t/input.cs +31 -0
  1981. data/ext/vendor/ctags/Units/review-needed.r/keyword_out.cs.t/expected.tags +3 -0
  1982. data/ext/vendor/ctags/Units/review-needed.r/keyword_out.cs.t/input.cs +17 -0
  1983. data/ext/vendor/ctags/Units/review-needed.r/keyword_override.cs.t/expected.tags +9 -0
  1984. data/ext/vendor/ctags/Units/review-needed.r/keyword_override.cs.t/input.cs +44 -0
  1985. data/ext/vendor/ctags/Units/review-needed.r/keyword_params.cs.t/expected.tags +4 -0
  1986. data/ext/vendor/ctags/Units/review-needed.r/keyword_params.cs.t/input.cs +28 -0
  1987. data/ext/vendor/ctags/Units/review-needed.r/keyword_private.cs.t/expected.tags +7 -0
  1988. data/ext/vendor/ctags/Units/review-needed.r/keyword_private.cs.t/input.cs +25 -0
  1989. data/ext/vendor/ctags/Units/review-needed.r/keyword_protected.cs.t/expected.tags +5 -0
  1990. data/ext/vendor/ctags/Units/review-needed.r/keyword_protected.cs.t/input.cs +20 -0
  1991. data/ext/vendor/ctags/Units/review-needed.r/keyword_public.cs.t/expected.tags +5 -0
  1992. data/ext/vendor/ctags/Units/review-needed.r/keyword_public.cs.t/input.cs +21 -0
  1993. data/ext/vendor/ctags/Units/review-needed.r/keyword_sealed.cs.t/expected.tags +5 -0
  1994. data/ext/vendor/ctags/Units/review-needed.r/keyword_sealed.cs.t/input.cs +19 -0
  1995. data/ext/vendor/ctags/Units/review-needed.r/keyword_static.cs.t/expected.tags +9 -0
  1996. data/ext/vendor/ctags/Units/review-needed.r/keyword_static.cs.t/input.cs +47 -0
  1997. data/ext/vendor/ctags/Units/review-needed.r/keyword_struct.cs.t/expected.tags +6 -0
  1998. data/ext/vendor/ctags/Units/review-needed.r/keyword_struct.cs.t/input.cs +29 -0
  1999. data/ext/vendor/ctags/Units/review-needed.r/keyword_virtual.cs.t/expected.tags +18 -0
  2000. data/ext/vendor/ctags/Units/review-needed.r/keyword_virtual.cs.t/input.cs +72 -0
  2001. data/ext/vendor/ctags/Units/review-needed.r/keyword_volatile.cs.t/expected.tags +4 -0
  2002. data/ext/vendor/ctags/Units/review-needed.r/keyword_volatile.cs.t/input.cs +14 -0
  2003. data/ext/vendor/ctags/Units/review-needed.r/labels.sql.t/expected.tags +2 -0
  2004. data/ext/vendor/ctags/Units/review-needed.r/labels.sql.t/input.sql +8 -0
  2005. data/ext/vendor/ctags/Units/review-needed.r/matlab_backtracking.m.t/expected.tags +11 -0
  2006. data/ext/vendor/ctags/Units/review-needed.r/matlab_backtracking.m.t/features +1 -0
  2007. data/ext/vendor/ctags/Units/review-needed.r/matlab_backtracking.m.t/input.m +101 -0
  2008. data/ext/vendor/ctags/Units/review-needed.r/matlab_test.m.t/expected.tags +5 -0
  2009. data/ext/vendor/ctags/Units/review-needed.r/matlab_test.m.t/features +1 -0
  2010. data/ext/vendor/ctags/Units/review-needed.r/matlab_test.m.t/input.m +6 -0
  2011. data/ext/vendor/ctags/Units/review-needed.r/maze.erl.t/expected.tags +20 -0
  2012. data/ext/vendor/ctags/Units/review-needed.r/maze.erl.t/input.erl +127 -0
  2013. data/ext/vendor/ctags/Units/review-needed.r/maze.hrl.t/expected.tags +3 -0
  2014. data/ext/vendor/ctags/Units/review-needed.r/maze.hrl.t/input.hrl +42 -0
  2015. data/ext/vendor/ctags/Units/review-needed.r/ocamlAllKinds.ml.t/expected.tags +15 -0
  2016. data/ext/vendor/ctags/Units/review-needed.r/ocamlAllKinds.ml.t/input.ml +33 -0
  2017. data/ext/vendor/ctags/Units/review-needed.r/ocamlCommentInStringAllowed.ml.t/expected.tags +2 -0
  2018. data/ext/vendor/ctags/Units/review-needed.r/ocamlCommentInStringAllowed.ml.t/input.ml +3 -0
  2019. data/ext/vendor/ctags/Units/review-needed.r/ocaml_empty.ml.t/expected.tags +1 -0
  2020. data/ext/vendor/ctags/Units/review-needed.r/ocaml_empty.ml.t/input.ml +0 -0
  2021. data/ext/vendor/ctags/Units/review-needed.r/ocaml_onlystr.ml.t/expected.tags +1 -0
  2022. data/ext/vendor/ctags/Units/review-needed.r/ocaml_onlystr.ml.t/input.ml +2 -0
  2023. data/ext/vendor/ctags/Units/review-needed.r/ocaml_stringTsts.ml.t/expected.tags +2 -0
  2024. data/ext/vendor/ctags/Units/review-needed.r/ocaml_stringTsts.ml.t/input.ml +3 -0
  2025. data/ext/vendor/ctags/Units/review-needed.r/property.cs.t/expected.tags +9 -0
  2026. data/ext/vendor/ctags/Units/review-needed.r/property.cs.t/input.cs +50 -0
  2027. data/ext/vendor/ctags/Units/review-needed.r/random.sql.t/expected.tags +12 -0
  2028. data/ext/vendor/ctags/Units/review-needed.r/random.sql.t/input.sql +100 -0
  2029. data/ext/vendor/ctags/Units/review-needed.r/readlob.sql.t/expected.tags +9 -0
  2030. data/ext/vendor/ctags/Units/review-needed.r/readlob.sql.t/input.sql +39 -0
  2031. data/ext/vendor/ctags/Units/review-needed.r/readlong.sql.t/expected.tags +8 -0
  2032. data/ext/vendor/ctags/Units/review-needed.r/readlong.sql.t/input.sql +41 -0
  2033. data/ext/vendor/ctags/Units/review-needed.r/refcurs.sql.t/expected.tags +7 -0
  2034. data/ext/vendor/ctags/Units/review-needed.r/refcurs.sql.t/input.sql +75 -0
  2035. data/ext/vendor/ctags/Units/review-needed.r/simple.asp.t/expected.tags +7 -0
  2036. data/ext/vendor/ctags/Units/review-needed.r/simple.asp.t/input.asp +14 -0
  2037. data/ext/vendor/ctags/Units/review-needed.r/simple.bas.t/expected.tags +7 -0
  2038. data/ext/vendor/ctags/Units/review-needed.r/simple.bas.t/input.bas +22 -0
  2039. data/ext/vendor/ctags/Units/review-needed.r/simple.bb.t/expected.tags +6 -0
  2040. data/ext/vendor/ctags/Units/review-needed.r/simple.bb.t/input.bb +20 -0
  2041. data/ext/vendor/ctags/Units/review-needed.r/simple.cbl.t/expected.tags +18 -0
  2042. data/ext/vendor/ctags/Units/review-needed.r/simple.cbl.t/features +1 -0
  2043. data/ext/vendor/ctags/Units/review-needed.r/simple.cbl.t/input.cbl +30 -0
  2044. data/ext/vendor/ctags/Units/review-needed.r/simple.fal.t/expected.tags +3 -0
  2045. data/ext/vendor/ctags/Units/review-needed.r/simple.fal.t/input.fal +36 -0
  2046. data/ext/vendor/ctags/Units/review-needed.r/simple.js.t/expected.tags +24 -0
  2047. data/ext/vendor/ctags/Units/review-needed.r/simple.js.t/input.js +101 -0
  2048. data/ext/vendor/ctags/Units/review-needed.r/simple.mak.t/expected.tags +13 -0
  2049. data/ext/vendor/ctags/Units/review-needed.r/simple.mak.t/input.mak +19 -0
  2050. data/ext/vendor/ctags/Units/review-needed.r/simple.pb.t/expected.tags +5 -0
  2051. data/ext/vendor/ctags/Units/review-needed.r/simple.pb.t/input.pb +18 -0
  2052. data/ext/vendor/ctags/Units/review-needed.r/simple.sml.t/expected.tags +31 -0
  2053. data/ext/vendor/ctags/Units/review-needed.r/simple.sml.t/input.sml +86 -0
  2054. data/ext/vendor/ctags/Units/review-needed.r/simple.vr.t/args.ctags +2 -0
  2055. data/ext/vendor/ctags/Units/review-needed.r/simple.vr.t/expected.tags +24 -0
  2056. data/ext/vendor/ctags/Units/review-needed.r/simple.vr.t/input.vr +104 -0
  2057. data/ext/vendor/ctags/Units/review-needed.r/sql_single_quote.sql.t/expected.tags +3 -0
  2058. data/ext/vendor/ctags/Units/review-needed.r/sql_single_quote.sql.t/input.sql +18 -0
  2059. data/ext/vendor/ctags/Units/review-needed.r/test.vhd.t/expected.tags +205 -0
  2060. data/ext/vendor/ctags/Units/review-needed.r/test.vhd.t/input.vhd +8174 -0
  2061. data/ext/vendor/ctags/Units/review-needed.r/unicode8.java.t/expected.tags +1 -0
  2062. data/ext/vendor/ctags/Units/review-needed.r/unicode8.java.t/input.java +4 -0
  2063. data/ext/vendor/ctags/Units/simple-clojure.d/expected.tags +5 -0
  2064. data/ext/vendor/ctags/Units/simple-clojure.d/input.clj +12 -0
  2065. data/ext/vendor/ctags/Units/simple-ctags.d/expected.tags +4 -0
  2066. data/ext/vendor/ctags/Units/simple-ctags.d/features +1 -0
  2067. data/ext/vendor/ctags/Units/simple-ctags.d/input.ctags +8 -0
  2068. data/ext/vendor/ctags/Units/simple-dbusinspect.d/expected.tags +4 -0
  2069. data/ext/vendor/ctags/Units/simple-dbusinspect.d/features +1 -0
  2070. data/ext/vendor/ctags/Units/simple-dbusinspect.d/input.xml +54 -0
  2071. data/ext/vendor/ctags/Units/simple-diff.d/expected.tags +8 -0
  2072. data/ext/vendor/ctags/Units/simple-diff.d/input.diff +170 -0
  2073. data/ext/vendor/ctags/Units/simple-etags.d/expected.tags-e +4 -0
  2074. data/ext/vendor/ctags/Units/simple-etags.d/input.c +2 -0
  2075. data/ext/vendor/ctags/Units/simple-gdbinit.d/args.ctags +3 -0
  2076. data/ext/vendor/ctags/Units/simple-gdbinit.d/expected.tags +4 -0
  2077. data/ext/vendor/ctags/Units/simple-gdbinit.d/input.gdb +20 -0
  2078. data/ext/vendor/ctags/Units/simple-glade.d/args.ctags +5 -0
  2079. data/ext/vendor/ctags/Units/simple-glade.d/expected.tags +7 -0
  2080. data/ext/vendor/ctags/Units/simple-glade.d/features +1 -0
  2081. data/ext/vendor/ctags/Units/simple-glade.d/input.glade +35 -0
  2082. data/ext/vendor/ctags/Units/simple-javaproperties.d/expected.tags +11 -0
  2083. data/ext/vendor/ctags/Units/simple-javaproperties.d/input.properties +25 -0
  2084. data/ext/vendor/ctags/Units/simple-json.d/expected.tags +19 -0
  2085. data/ext/vendor/ctags/Units/simple-json.d/input.json +25 -0
  2086. data/ext/vendor/ctags/Units/simple-maven2.d/args.ctags +3 -0
  2087. data/ext/vendor/ctags/Units/simple-maven2.d/expected.tags +10 -0
  2088. data/ext/vendor/ctags/Units/simple-maven2.d/features +1 -0
  2089. data/ext/vendor/ctags/Units/simple-maven2.d/input.xml +50 -0
  2090. data/ext/vendor/ctags/Units/simple-plist.d/args.ctags +2 -0
  2091. data/ext/vendor/ctags/Units/simple-plist.d/expected.tags +7 -0
  2092. data/ext/vendor/ctags/Units/simple-plist.d/features +1 -0
  2093. data/ext/vendor/ctags/Units/simple-plist.d/input.plist +28 -0
  2094. data/ext/vendor/ctags/Units/simple-pod.d/args.ctags +1 -0
  2095. data/ext/vendor/ctags/Units/simple-pod.d/expected.tags +13 -0
  2096. data/ext/vendor/ctags/Units/simple-pod.d/input.pod +31 -0
  2097. data/ext/vendor/ctags/Units/simple-protobuf.d/args.ctags +2 -0
  2098. data/ext/vendor/ctags/Units/simple-protobuf.d/expected.tags +17 -0
  2099. data/ext/vendor/ctags/Units/simple-protobuf.d/input.proto +69 -0
  2100. data/ext/vendor/ctags/Units/simple-pythonLoggingConfig.d/args.ctags +1 -0
  2101. data/ext/vendor/ctags/Units/simple-pythonLoggingConfig.d/expected.tags +26 -0
  2102. data/ext/vendor/ctags/Units/simple-pythonLoggingConfig.d/input.conf +33 -0
  2103. data/ext/vendor/ctags/Units/simple-rpmspec.d/args.ctags +3 -0
  2104. data/ext/vendor/ctags/Units/simple-rpmspec.d/expected.tags +17 -0
  2105. data/ext/vendor/ctags/Units/simple-rpmspec.d/input.spec +59 -0
  2106. data/ext/vendor/ctags/Units/simple-svg.d/args.ctags +1 -0
  2107. data/ext/vendor/ctags/Units/simple-svg.d/expected.tags +4 -0
  2108. data/ext/vendor/ctags/Units/simple-svg.d/features +1 -0
  2109. data/ext/vendor/ctags/Units/simple-svg.d/input.svg +36 -0
  2110. data/ext/vendor/ctags/Units/simple-systemdunit.d/args.ctags +2 -0
  2111. data/ext/vendor/ctags/Units/simple-systemdunit.d/expected.tags +12 -0
  2112. data/ext/vendor/ctags/Units/simple-systemdunit.d/input.service +11 -0
  2113. data/ext/vendor/ctags/Units/simple-windres.d/expected.tags +12 -0
  2114. data/ext/vendor/ctags/Units/simple-windres.d/input.rc +150 -0
  2115. data/ext/vendor/ctags/Units/simple-xref.d/expected.tags-x +2 -0
  2116. data/ext/vendor/ctags/Units/simple-xref.d/input.c +2 -0
  2117. data/ext/vendor/ctags/Units/simple-yumrepo.d/args.ctags +3 -0
  2118. data/ext/vendor/ctags/Units/simple-yumrepo.d/expected.tags +3 -0
  2119. data/ext/vendor/ctags/Units/simple-yumrepo.d/input.repo +32 -0
  2120. data/ext/vendor/ctags/Units/vera-interface.d/expected.tags +10 -0
  2121. data/ext/vendor/ctags/Units/vera-interface.d/input.vr +14 -0
  2122. data/ext/vendor/ctags/Units/xformat-option.r/format-CfSt.d/args.ctags +1 -0
  2123. data/ext/vendor/ctags/Units/xformat-option.r/format-CfSt.d/expected.tags-x +6 -0
  2124. data/ext/vendor/ctags/Units/xformat-option.r/format-CfSt.d/input.c +13 -0
  2125. data/ext/vendor/ctags/Units/xformat-option.r/format-NlKkFnP.d/args.ctags +4 -0
  2126. data/ext/vendor/ctags/Units/xformat-option.r/format-NlKkFnP.d/expected.tags-x +12 -0
  2127. data/ext/vendor/ctags/Units/xformat-option.r/format-NlKkFnP.d/filter +2 -0
  2128. data/ext/vendor/ctags/Units/xformat-option.r/format-NlKkFnP.d/input.m +37 -0
  2129. data/ext/vendor/ctags/Units/xformat-option.r/format-aim.d/args.ctags +1 -0
  2130. data/ext/vendor/ctags/Units/xformat-option.r/format-aim.d/expected.tags-x +4 -0
  2131. data/ext/vendor/ctags/Units/xformat-option.r/format-aim.d/input.java +14 -0
  2132. data/ext/vendor/ctags/Units/zephir-return-hint.d/args.ctags +1 -0
  2133. data/ext/vendor/ctags/Units/zephir-return-hint.d/expected.tags +4 -0
  2134. data/ext/vendor/ctags/Units/zephir-return-hint.d/input.zep +14 -0
  2135. data/ext/vendor/ctags/Units/zephir-simple.d/args.ctags +1 -0
  2136. data/ext/vendor/ctags/Units/zephir-simple.d/expected.tags +4 -0
  2137. data/ext/vendor/ctags/Units/zephir-simple.d/input.zep +19 -0
  2138. data/ext/vendor/ctags/appveyor.yml +30 -0
  2139. data/ext/vendor/ctags/autogen.sh +20 -0
  2140. data/ext/vendor/ctags/configure.ac +685 -0
  2141. data/ext/vendor/ctags/ctags.spec +40 -0
  2142. data/ext/vendor/ctags/docs/README.md +3 -0
  2143. data/ext/vendor/ctags/docs/autotools.rst +37 -0
  2144. data/ext/vendor/ctags/docs/building.rst +10 -0
  2145. data/ext/vendor/ctags/docs/chop.rst +21 -0
  2146. data/ext/vendor/ctags/docs/conf.py +273 -0
  2147. data/ext/vendor/ctags/docs/contributions.rst +353 -0
  2148. data/ext/vendor/ctags/docs/developers.rst +72 -0
  2149. data/ext/vendor/ctags/docs/extending.rst +27 -0
  2150. data/ext/vendor/ctags/docs/format.rst +474 -0
  2151. data/ext/vendor/ctags/docs/guessing.rst +111 -0
  2152. data/ext/vendor/ctags/docs/index.rst +46 -0
  2153. data/ext/vendor/ctags/docs/input-text-stream.svg +498 -0
  2154. data/ext/vendor/ctags/docs/internal.rst +398 -0
  2155. data/ext/vendor/ctags/docs/news.rst +1362 -0
  2156. data/ext/vendor/ctags/docs/noise.rst +21 -0
  2157. data/ext/vendor/ctags/docs/optlib.rst +615 -0
  2158. data/ext/vendor/ctags/docs/osx.rst +62 -0
  2159. data/ext/vendor/ctags/docs/other-projects.rst +97 -0
  2160. data/ext/vendor/ctags/docs/output-format.rst +19 -0
  2161. data/ext/vendor/ctags/docs/output-json.rst +48 -0
  2162. data/ext/vendor/ctags/docs/output-tag-stream.svg +693 -0
  2163. data/ext/vendor/ctags/docs/parser-asm.rst +26 -0
  2164. data/ext/vendor/ctags/docs/parser-cxx.rst +127 -0
  2165. data/ext/vendor/ctags/docs/parser-html.rst +31 -0
  2166. data/ext/vendor/ctags/docs/parser-python.rst +40 -0
  2167. data/ext/vendor/ctags/docs/parser-vim.rst +20 -0
  2168. data/ext/vendor/ctags/docs/parser-xslt.rst +22 -0
  2169. data/ext/vendor/ctags/docs/parsers.rst +20 -0
  2170. data/ext/vendor/ctags/docs/semifuzz.rst +55 -0
  2171. data/ext/vendor/ctags/docs/testing.rst +22 -0
  2172. data/ext/vendor/ctags/docs/tinst.rst +12 -0
  2173. data/ext/vendor/ctags/docs/tips.rst +58 -0
  2174. data/ext/vendor/ctags/docs/tmain.rst +74 -0
  2175. data/ext/vendor/ctags/docs/tracking.rst +460 -0
  2176. data/ext/vendor/ctags/docs/units.rst +303 -0
  2177. data/ext/vendor/ctags/docs/windows.rst +145 -0
  2178. data/ext/vendor/ctags/docs/xcmd.rst +265 -0
  2179. data/ext/vendor/ctags/dsl/es-lang-c-stdc99.c +2722 -0
  2180. data/ext/vendor/ctags/dsl/es-lang-c-stdc99.h +203 -0
  2181. data/ext/vendor/ctags/dsl/qualifier.c +716 -0
  2182. data/ext/vendor/ctags/dsl/qualifier.h +36 -0
  2183. data/ext/vendor/ctags/fnmatch/fnmatch.c +190 -0
  2184. data/ext/vendor/ctags/fnmatch/fnmatch.h +40 -0
  2185. data/ext/vendor/{exuberant-ctags → ctags}/gnu_regex/README.txt +0 -0
  2186. data/ext/vendor/ctags/gnu_regex/regcomp.c +3818 -0
  2187. data/ext/vendor/ctags/gnu_regex/regex.c +74 -0
  2188. data/ext/vendor/{exuberant-ctags → ctags}/gnu_regex/regex.h +0 -0
  2189. data/ext/vendor/ctags/gnu_regex/regex_internal.c +1713 -0
  2190. data/ext/vendor/{exuberant-ctags → ctags}/gnu_regex/regex_internal.h +0 -0
  2191. data/ext/vendor/ctags/gnu_regex/regexec.c +4338 -0
  2192. data/ext/vendor/ctags/libexec/drivers/coffeetags +57 -0
  2193. data/ext/vendor/ctags/main/args.c +288 -0
  2194. data/ext/vendor/ctags/main/args.h +57 -0
  2195. data/ext/vendor/ctags/main/ctags.h +34 -0
  2196. data/ext/vendor/ctags/main/debug.c +128 -0
  2197. data/ext/vendor/ctags/main/debug.h +82 -0
  2198. data/ext/vendor/ctags/main/dependency.c +102 -0
  2199. data/ext/vendor/ctags/main/dependency.h +45 -0
  2200. data/ext/vendor/ctags/main/e_msoft.h +71 -0
  2201. data/ext/vendor/ctags/main/entry.c +1387 -0
  2202. data/ext/vendor/ctags/main/entry.h +174 -0
  2203. data/ext/vendor/ctags/main/error.c +88 -0
  2204. data/ext/vendor/ctags/main/error.h +26 -0
  2205. data/ext/vendor/ctags/main/field.c +926 -0
  2206. data/ext/vendor/ctags/main/field.h +112 -0
  2207. data/ext/vendor/ctags/main/flags.c +107 -0
  2208. data/ext/vendor/ctags/main/flags.h +29 -0
  2209. data/ext/vendor/ctags/main/fmt.c +356 -0
  2210. data/ext/vendor/ctags/main/fmt.h +25 -0
  2211. data/ext/vendor/ctags/main/gcc-attr.h +30 -0
  2212. data/ext/vendor/ctags/main/general.h +73 -0
  2213. data/ext/vendor/ctags/main/htable.c +271 -0
  2214. data/ext/vendor/ctags/main/htable.h +47 -0
  2215. data/ext/vendor/ctags/main/interactive.h +18 -0
  2216. data/ext/vendor/ctags/main/keyword.c +242 -0
  2217. data/ext/vendor/ctags/main/keyword.h +33 -0
  2218. data/ext/vendor/ctags/main/kind.c +158 -0
  2219. data/ext/vendor/ctags/main/kind.h +94 -0
  2220. data/ext/vendor/ctags/main/lregex.c +1098 -0
  2221. data/ext/vendor/ctags/main/lxcmd.c +1231 -0
  2222. data/ext/vendor/ctags/main/lxpath.c +217 -0
  2223. data/ext/vendor/ctags/main/main.c +657 -0
  2224. data/ext/vendor/ctags/main/main.h +26 -0
  2225. data/ext/vendor/ctags/main/mbcs.c +112 -0
  2226. data/ext/vendor/ctags/main/mbcs.h +22 -0
  2227. data/ext/vendor/ctags/main/mio.c +1383 -0
  2228. data/ext/vendor/ctags/main/mio.h +162 -0
  2229. data/ext/vendor/ctags/main/nestlevel.c +109 -0
  2230. data/ext/vendor/ctags/main/nestlevel.h +53 -0
  2231. data/ext/vendor/ctags/main/objpool.c +79 -0
  2232. data/ext/vendor/ctags/main/objpool.h +39 -0
  2233. data/ext/vendor/ctags/main/options.c +3371 -0
  2234. data/ext/vendor/ctags/main/options.h +184 -0
  2235. data/ext/vendor/ctags/main/param.c +55 -0
  2236. data/ext/vendor/ctags/main/param.h +35 -0
  2237. data/ext/vendor/ctags/main/parse.c +2805 -0
  2238. data/ext/vendor/ctags/main/parse.h +323 -0
  2239. data/ext/vendor/ctags/main/parsers.h +118 -0
  2240. data/ext/vendor/ctags/main/pcoproc.c +296 -0
  2241. data/ext/vendor/ctags/main/pcoproc.h +29 -0
  2242. data/ext/vendor/ctags/main/promise.c +102 -0
  2243. data/ext/vendor/ctags/main/promise.h +27 -0
  2244. data/ext/vendor/ctags/main/ptag.c +234 -0
  2245. data/ext/vendor/ctags/main/ptag.h +63 -0
  2246. data/ext/vendor/ctags/main/ptrarray.c +152 -0
  2247. data/ext/vendor/ctags/main/ptrarray.h +46 -0
  2248. data/ext/vendor/ctags/main/read.c +1074 -0
  2249. data/ext/vendor/ctags/main/read.h +119 -0
  2250. data/ext/vendor/ctags/main/repoinfo.c +12 -0
  2251. data/ext/vendor/ctags/main/routines.c +887 -0
  2252. data/ext/vendor/ctags/main/routines.h +146 -0
  2253. data/ext/vendor/ctags/main/selectors.c +382 -0
  2254. data/ext/vendor/ctags/main/selectors.h +35 -0
  2255. data/ext/vendor/ctags/main/sort.c +243 -0
  2256. data/ext/vendor/ctags/main/sort.h +37 -0
  2257. data/ext/vendor/ctags/main/strlist.c +253 -0
  2258. data/ext/vendor/ctags/main/strlist.h +54 -0
  2259. data/ext/vendor/ctags/main/types.h +29 -0
  2260. data/ext/vendor/ctags/main/vstring.c +354 -0
  2261. data/ext/vendor/ctags/main/vstring.h +100 -0
  2262. data/ext/vendor/ctags/main/writer-ctags.c +225 -0
  2263. data/ext/vendor/ctags/main/writer-etags.c +107 -0
  2264. data/ext/vendor/ctags/main/writer-json.c +197 -0
  2265. data/ext/vendor/ctags/main/writer-xref.c +60 -0
  2266. data/ext/vendor/ctags/main/writer.c +73 -0
  2267. data/ext/vendor/ctags/main/writer.h +68 -0
  2268. data/ext/vendor/ctags/main/xtag.c +155 -0
  2269. data/ext/vendor/ctags/main/xtag.h +55 -0
  2270. data/ext/vendor/ctags/makefiles/help.mak +22 -0
  2271. data/ext/vendor/ctags/makefiles/list-translator-input.mak +4 -0
  2272. data/ext/vendor/ctags/makefiles/testing.mak +163 -0
  2273. data/ext/vendor/ctags/makefiles/translator_input.mak +8 -0
  2274. data/ext/vendor/ctags/man/ctags.1.rst.in +1095 -0
  2275. data/ext/vendor/ctags/misc/badinput.c +319 -0
  2276. data/ext/vendor/ctags/misc/budge +91 -0
  2277. data/ext/vendor/ctags/misc/budge.ctags +3 -0
  2278. data/ext/vendor/ctags/misc/dist-test-cases +12 -0
  2279. data/ext/vendor/ctags/misc/gen-repoinfo +4 -0
  2280. data/ext/vendor/ctags/misc/gencxxtypedumper.sh +43 -0
  2281. data/ext/vendor/ctags/misc/optlib2c +492 -0
  2282. data/ext/vendor/ctags/misc/review +317 -0
  2283. data/ext/vendor/ctags/misc/roundtrip +55 -0
  2284. data/ext/vendor/ctags/misc/src-check +133 -0
  2285. data/ext/vendor/ctags/misc/tinst +166 -0
  2286. data/ext/vendor/ctags/misc/travis-check.sh +35 -0
  2287. data/ext/vendor/ctags/misc/units +2265 -0
  2288. data/ext/vendor/ctags/mk_mingw.mak +75 -0
  2289. data/ext/vendor/ctags/mk_mvc.mak +64 -0
  2290. data/ext/vendor/ctags/old-docs/EXTENDING.html +389 -0
  2291. data/ext/vendor/ctags/old-docs/FAQ +371 -0
  2292. data/ext/vendor/{exuberant-ctags → ctags/old-docs}/INSTALL +0 -0
  2293. data/ext/vendor/ctags/old-docs/INSTALL.oth +10 -0
  2294. data/ext/vendor/ctags/old-docs/MAINTAINERS +74 -0
  2295. data/ext/vendor/ctags/old-docs/NEWS.exuberant +886 -0
  2296. data/ext/vendor/ctags/old-docs/README.exuberant +74 -0
  2297. data/ext/vendor/ctags/old-docs/index.html +225 -0
  2298. data/ext/vendor/ctags/old-docs/website/.cvsignore +4 -0
  2299. data/ext/vendor/ctags/old-docs/website/FORMAT +346 -0
  2300. data/ext/vendor/ctags/old-docs/website/countries.html +66 -0
  2301. data/ext/vendor/ctags/old-docs/website/ctags.png +0 -0
  2302. data/ext/vendor/ctags/old-docs/website/ctags.xcf +0 -0
  2303. data/ext/vendor/ctags/old-docs/website/desire.html +73 -0
  2304. data/ext/vendor/ctags/old-docs/website/faq.html +566 -0
  2305. data/ext/vendor/ctags/old-docs/website/gpl.html +399 -0
  2306. data/ext/vendor/ctags/old-docs/website/languages.html +59 -0
  2307. data/ext/vendor/ctags/old-docs/website/lg18-wkndmech.html +46 -0
  2308. data/ext/vendor/ctags/old-docs/website/quotes.html +884 -0
  2309. data/ext/vendor/ctags/old-docs/website/tool_support.html +43 -0
  2310. data/ext/vendor/ctags/old-docs/website/tools.html +75 -0
  2311. data/ext/vendor/ctags/old-docs/website/whatis.html +30 -0
  2312. data/ext/vendor/ctags/optlib/CoffeeScript.c +40 -0
  2313. data/ext/vendor/ctags/optlib/CoffeeScript.ctags +26 -0
  2314. data/ext/vendor/ctags/optlib/ctags-optlib.c +48 -0
  2315. data/ext/vendor/ctags/optlib/ctags-optlib.ctags +27 -0
  2316. data/ext/vendor/ctags/optlib/gdbinit.c +57 -0
  2317. data/ext/vendor/ctags/optlib/gdbinit.ctags +54 -0
  2318. data/ext/vendor/ctags/optlib/man.c +60 -0
  2319. data/ext/vendor/ctags/optlib/man.ctags +38 -0
  2320. data/ext/vendor/ctags/optlib/pod.c +52 -0
  2321. data/ext/vendor/ctags/optlib/pod.ctags +30 -0
  2322. data/ext/vendor/ctags/parsers/ada.c +2231 -0
  2323. data/ext/vendor/ctags/parsers/ansibleplaybook.c +241 -0
  2324. data/ext/vendor/ctags/parsers/ant.c +245 -0
  2325. data/ext/vendor/ctags/parsers/asm.c +381 -0
  2326. data/ext/vendor/ctags/parsers/asp.c +313 -0
  2327. data/ext/vendor/ctags/parsers/autoconf.c +222 -0
  2328. data/ext/vendor/ctags/parsers/automake.c +320 -0
  2329. data/ext/vendor/ctags/parsers/awk.c +79 -0
  2330. data/ext/vendor/ctags/parsers/basic.c +198 -0
  2331. data/ext/vendor/ctags/parsers/beta.c +313 -0
  2332. data/ext/vendor/ctags/parsers/c.c +3651 -0
  2333. data/ext/vendor/ctags/parsers/clojure.c +149 -0
  2334. data/ext/vendor/ctags/parsers/cobol.c +49 -0
  2335. data/ext/vendor/ctags/parsers/cpreprocessor.c +1707 -0
  2336. data/ext/vendor/ctags/parsers/css.c +265 -0
  2337. data/ext/vendor/ctags/parsers/cxx/cxx.c +137 -0
  2338. data/ext/vendor/ctags/parsers/cxx/cxx_debug.c +76 -0
  2339. data/ext/vendor/ctags/parsers/cxx/cxx_debug.h +81 -0
  2340. data/ext/vendor/ctags/parsers/cxx/cxx_debug_type.c +44 -0
  2341. data/ext/vendor/ctags/parsers/cxx/cxx_keyword.c +188 -0
  2342. data/ext/vendor/ctags/parsers/cxx/cxx_keyword.h +127 -0
  2343. data/ext/vendor/ctags/parsers/cxx/cxx_parser.c +1528 -0
  2344. data/ext/vendor/ctags/parsers/cxx/cxx_parser.h +23 -0
  2345. data/ext/vendor/ctags/parsers/cxx/cxx_parser_block.c +584 -0
  2346. data/ext/vendor/ctags/parsers/cxx/cxx_parser_function.c +1949 -0
  2347. data/ext/vendor/ctags/parsers/cxx/cxx_parser_internal.h +318 -0
  2348. data/ext/vendor/ctags/parsers/cxx/cxx_parser_lambda.c +261 -0
  2349. data/ext/vendor/ctags/parsers/cxx/cxx_parser_namespace.c +306 -0
  2350. data/ext/vendor/ctags/parsers/cxx/cxx_parser_template.c +300 -0
  2351. data/ext/vendor/ctags/parsers/cxx/cxx_parser_tokenizer.c +1465 -0
  2352. data/ext/vendor/ctags/parsers/cxx/cxx_parser_typedef.c +368 -0
  2353. data/ext/vendor/ctags/parsers/cxx/cxx_parser_using.c +158 -0
  2354. data/ext/vendor/ctags/parsers/cxx/cxx_parser_variable.c +682 -0
  2355. data/ext/vendor/ctags/parsers/cxx/cxx_scope.c +257 -0
  2356. data/ext/vendor/ctags/parsers/cxx/cxx_scope.h +78 -0
  2357. data/ext/vendor/ctags/parsers/cxx/cxx_tag.c +556 -0
  2358. data/ext/vendor/ctags/parsers/cxx/cxx_tag.h +183 -0
  2359. data/ext/vendor/ctags/parsers/cxx/cxx_token.c +154 -0
  2360. data/ext/vendor/ctags/parsers/cxx/cxx_token.h +115 -0
  2361. data/ext/vendor/ctags/parsers/cxx/cxx_token_chain.c +1105 -0
  2362. data/ext/vendor/ctags/parsers/cxx/cxx_token_chain.h +276 -0
  2363. data/ext/vendor/ctags/parsers/dbusintrospect.c +157 -0
  2364. data/ext/vendor/ctags/parsers/diff.c +213 -0
  2365. data/ext/vendor/ctags/parsers/dosbatch.c +44 -0
  2366. data/ext/vendor/ctags/parsers/dts.c +59 -0
  2367. data/ext/vendor/ctags/parsers/eiffel.c +1121 -0
  2368. data/ext/vendor/ctags/parsers/erlang.c +189 -0
  2369. data/ext/vendor/ctags/parsers/falcon.c +145 -0
  2370. data/ext/vendor/ctags/parsers/flex.c +2394 -0
  2371. data/ext/vendor/ctags/parsers/fortran.c +2575 -0
  2372. data/ext/vendor/ctags/parsers/glade.c +92 -0
  2373. data/ext/vendor/ctags/parsers/go.c +810 -0
  2374. data/ext/vendor/ctags/parsers/html.c +408 -0
  2375. data/ext/vendor/ctags/parsers/iniconf.c +278 -0
  2376. data/ext/vendor/ctags/parsers/jprop.c +128 -0
  2377. data/ext/vendor/ctags/parsers/jscript.c +2040 -0
  2378. data/ext/vendor/ctags/parsers/json.c +392 -0
  2379. data/ext/vendor/ctags/parsers/lisp.c +140 -0
  2380. data/ext/vendor/ctags/parsers/lua.c +172 -0
  2381. data/ext/vendor/ctags/parsers/m4.c +651 -0
  2382. data/ext/vendor/ctags/parsers/make.c +368 -0
  2383. data/ext/vendor/ctags/parsers/matlab.c +50 -0
  2384. data/ext/vendor/ctags/parsers/maven2.c +267 -0
  2385. data/ext/vendor/ctags/parsers/meta-cpreprocessor.h +109 -0
  2386. data/ext/vendor/ctags/parsers/meta-iniconf.h +48 -0
  2387. data/ext/vendor/ctags/parsers/meta-m4.h +56 -0
  2388. data/ext/vendor/ctags/parsers/meta-make.h +30 -0
  2389. data/ext/vendor/ctags/parsers/meta-yaml.h +37 -0
  2390. data/ext/vendor/ctags/parsers/myrddin.c +51 -0
  2391. data/ext/vendor/ctags/parsers/objc.c +1130 -0
  2392. data/ext/vendor/ctags/parsers/ocaml.c +1892 -0
  2393. data/ext/vendor/ctags/parsers/pascal.c +261 -0
  2394. data/ext/vendor/ctags/parsers/perl.c +556 -0
  2395. data/ext/vendor/ctags/parsers/perl6.c +338 -0
  2396. data/ext/vendor/ctags/parsers/php.c +1724 -0
  2397. data/ext/vendor/ctags/parsers/plist.c +172 -0
  2398. data/ext/vendor/ctags/parsers/protobuf.c +274 -0
  2399. data/ext/vendor/ctags/parsers/python.c +1321 -0
  2400. data/ext/vendor/ctags/parsers/pythonloggingconfig.c +129 -0
  2401. data/ext/vendor/ctags/parsers/r.c +214 -0
  2402. data/ext/vendor/ctags/parsers/relaxng.c +239 -0
  2403. data/ext/vendor/ctags/parsers/rexx.c +40 -0
  2404. data/ext/vendor/ctags/parsers/rpmspec.c +198 -0
  2405. data/ext/vendor/ctags/parsers/rst.c +278 -0
  2406. data/ext/vendor/ctags/parsers/ruby.c +564 -0
  2407. data/ext/vendor/ctags/parsers/rust.c +982 -0
  2408. data/ext/vendor/ctags/parsers/scheme.c +126 -0
  2409. data/ext/vendor/ctags/parsers/sh.c +302 -0
  2410. data/ext/vendor/ctags/parsers/slang.c +39 -0
  2411. data/ext/vendor/ctags/parsers/sml.c +216 -0
  2412. data/ext/vendor/ctags/parsers/sql.c +2401 -0
  2413. data/ext/vendor/ctags/parsers/svg.c +66 -0
  2414. data/ext/vendor/ctags/parsers/systemdunit.c +130 -0
  2415. data/ext/vendor/ctags/parsers/tcl.c +112 -0
  2416. data/ext/vendor/ctags/parsers/tex.c +588 -0
  2417. data/ext/vendor/ctags/parsers/ttcn.c +984 -0
  2418. data/ext/vendor/ctags/parsers/verilog.c +1177 -0
  2419. data/ext/vendor/ctags/parsers/vhdl.c +815 -0
  2420. data/ext/vendor/ctags/parsers/vim.c +728 -0
  2421. data/ext/vendor/ctags/parsers/windres.c +233 -0
  2422. data/ext/vendor/ctags/parsers/xslt.c +339 -0
  2423. data/ext/vendor/ctags/parsers/yacc.c +172 -0
  2424. data/ext/vendor/ctags/parsers/yaml.c +212 -0
  2425. data/ext/vendor/ctags/parsers/yumrepo.c +66 -0
  2426. data/ext/vendor/ctags/read/readtags-cmd.c +274 -0
  2427. data/ext/vendor/ctags/read/readtags.c +802 -0
  2428. data/ext/vendor/ctags/read/readtags.h +248 -0
  2429. data/ext/vendor/ctags/source.mak +269 -0
  2430. data/ext/vendor/ctags/win32/appveyor.bat +187 -0
  2431. data/ext/vendor/ctags/win32/ctags_vs2013.sln +20 -0
  2432. data/ext/vendor/ctags/win32/ctags_vs2013.vcxproj +280 -0
  2433. data/ext/vendor/ctags/win32/ctags_vs2013.vcxproj.filters +555 -0
  2434. data/ext/vendor/jansson-2.9/CHANGES +796 -0
  2435. data/ext/vendor/jansson-2.9/CMakeLists.txt +684 -0
  2436. data/ext/vendor/jansson-2.9/LICENSE +19 -0
  2437. data/ext/vendor/jansson-2.9/Makefile.am +10 -0
  2438. data/ext/vendor/jansson-2.9/Makefile.in +873 -0
  2439. data/ext/vendor/jansson-2.9/README.rst +68 -0
  2440. data/ext/vendor/jansson-2.9/aclocal.m4 +10314 -0
  2441. data/ext/vendor/jansson-2.9/android/jansson_config.h +43 -0
  2442. data/ext/vendor/jansson-2.9/cmake/CheckFunctionKeywords.cmake +15 -0
  2443. data/ext/vendor/jansson-2.9/cmake/CodeCoverage.cmake +163 -0
  2444. data/ext/vendor/jansson-2.9/cmake/Coveralls.cmake +111 -0
  2445. data/ext/vendor/jansson-2.9/cmake/CoverallsClear.cmake +24 -0
  2446. data/ext/vendor/jansson-2.9/cmake/CoverallsGenerateGcov.cmake +380 -0
  2447. data/ext/vendor/jansson-2.9/cmake/FindSphinx.cmake +301 -0
  2448. data/ext/vendor/jansson-2.9/cmake/JanssonConfig.cmake.in +17 -0
  2449. data/ext/vendor/jansson-2.9/cmake/JanssonConfigVersion.cmake.in +11 -0
  2450. data/ext/vendor/jansson-2.9/cmake/jansson_config.h.cmake +68 -0
  2451. data/ext/vendor/jansson-2.9/cmake/jansson_private_config.h.cmake +53 -0
  2452. data/ext/vendor/jansson-2.9/compile +347 -0
  2453. data/ext/vendor/jansson-2.9/config.guess +1441 -0
  2454. data/ext/vendor/jansson-2.9/config.sub +1813 -0
  2455. data/ext/vendor/jansson-2.9/configure +14772 -0
  2456. data/ext/vendor/jansson-2.9/configure.ac +118 -0
  2457. data/ext/vendor/jansson-2.9/depcomp +791 -0
  2458. data/ext/vendor/{jansson-2.5 → jansson-2.9}/doc/Makefile.am +0 -0
  2459. data/ext/vendor/jansson-2.9/doc/Makefile.in +457 -0
  2460. data/ext/vendor/{jansson-2.5 → jansson-2.9}/doc/README +0 -0
  2461. data/ext/vendor/jansson-2.9/doc/apiref.rst +1632 -0
  2462. data/ext/vendor/{jansson-2.5 → jansson-2.9}/doc/changes.rst +0 -0
  2463. data/ext/vendor/jansson-2.9/doc/conf.py +217 -0
  2464. data/ext/vendor/jansson-2.9/doc/conformance.rst +120 -0
  2465. data/ext/vendor/jansson-2.9/doc/ext/refcounting.py +60 -0
  2466. data/ext/vendor/jansson-2.9/doc/gettingstarted.rst +228 -0
  2467. data/ext/vendor/jansson-2.9/doc/github_commits.c +201 -0
  2468. data/ext/vendor/{jansson-2.5 → jansson-2.9}/doc/index.rst +0 -0
  2469. data/ext/vendor/jansson-2.9/doc/portability.rst +83 -0
  2470. data/ext/vendor/jansson-2.9/doc/tutorial.rst +288 -0
  2471. data/ext/vendor/{jansson-2.5 → jansson-2.9}/doc/upgrading.rst +0 -0
  2472. data/ext/vendor/jansson-2.9/examples/README.rst +4 -0
  2473. data/ext/vendor/jansson-2.9/examples/simple_parse.c +203 -0
  2474. data/ext/vendor/jansson-2.9/install-sh +508 -0
  2475. data/ext/vendor/{jansson-2.5 → jansson-2.9}/jansson.pc.in +0 -0
  2476. data/ext/vendor/jansson-2.9/jansson_private_config.h.in +158 -0
  2477. data/ext/vendor/jansson-2.9/ltmain.sh +11156 -0
  2478. data/ext/vendor/jansson-2.9/missing +215 -0
  2479. data/ext/vendor/jansson-2.9/src/Makefile.am +27 -0
  2480. data/ext/vendor/jansson-2.9/src/Makefile.in +732 -0
  2481. data/ext/vendor/jansson-2.9/src/dump.c +446 -0
  2482. data/ext/vendor/jansson-2.9/src/error.c +63 -0
  2483. data/ext/vendor/jansson-2.9/src/hashtable.c +356 -0
  2484. data/ext/vendor/jansson-2.9/src/hashtable.h +176 -0
  2485. data/ext/vendor/jansson-2.9/src/hashtable_seed.c +277 -0
  2486. data/ext/vendor/jansson-2.9/src/jansson.def +70 -0
  2487. data/ext/vendor/jansson-2.9/src/jansson.h +311 -0
  2488. data/ext/vendor/jansson-2.9/src/jansson_config.h.in +43 -0
  2489. data/ext/vendor/jansson-2.9/src/jansson_private.h +108 -0
  2490. data/ext/vendor/jansson-2.9/src/load.c +1110 -0
  2491. data/ext/vendor/jansson-2.9/src/lookup3.h +381 -0
  2492. data/ext/vendor/jansson-2.9/src/memory.c +69 -0
  2493. data/ext/vendor/jansson-2.9/src/pack_unpack.c +871 -0
  2494. data/ext/vendor/jansson-2.9/src/strbuffer.c +111 -0
  2495. data/ext/vendor/jansson-2.9/src/strbuffer.h +34 -0
  2496. data/ext/vendor/jansson-2.9/src/strconv.c +145 -0
  2497. data/ext/vendor/jansson-2.9/src/utf.c +187 -0
  2498. data/ext/vendor/jansson-2.9/src/utf.h +27 -0
  2499. data/ext/vendor/jansson-2.9/src/value.c +1045 -0
  2500. data/ext/vendor/jansson-2.9/test-driver +148 -0
  2501. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/Makefile.am +0 -0
  2502. data/ext/vendor/jansson-2.9/test/Makefile.in +998 -0
  2503. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/bin/Makefile.am +0 -0
  2504. data/ext/vendor/jansson-2.9/test/bin/Makefile.in +584 -0
  2505. data/ext/vendor/jansson-2.9/test/bin/json_process.c +385 -0
  2506. data/ext/vendor/jansson-2.9/test/run-suites +50 -0
  2507. data/ext/vendor/jansson-2.9/test/scripts/run-tests.sh +100 -0
  2508. data/ext/vendor/jansson-2.9/test/scripts/valgrind.sh +35 -0
  2509. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/Makefile.am +0 -0
  2510. data/ext/vendor/jansson-2.9/test/suites/Makefile.in +618 -0
  2511. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/api/Makefile.am +0 -0
  2512. data/ext/vendor/jansson-2.9/test/suites/api/Makefile.in +731 -0
  2513. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/api/check-exports +0 -0
  2514. data/ext/vendor/jansson-2.9/test/suites/api/run +36 -0
  2515. data/ext/vendor/jansson-2.9/test/suites/api/test_array.c +432 -0
  2516. data/ext/vendor/jansson-2.9/test/suites/api/test_copy.c +334 -0
  2517. data/ext/vendor/jansson-2.9/test/suites/api/test_dump.c +224 -0
  2518. data/ext/vendor/jansson-2.9/test/suites/api/test_dump_callback.c +81 -0
  2519. data/ext/vendor/jansson-2.9/test/suites/api/test_equal.c +189 -0
  2520. data/ext/vendor/jansson-2.9/test/suites/api/test_load.c +216 -0
  2521. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/api/test_load_callback.c +0 -0
  2522. data/ext/vendor/jansson-2.9/test/suites/api/test_loadb.c +36 -0
  2523. data/ext/vendor/jansson-2.9/test/suites/api/test_memory_funcs.c +130 -0
  2524. data/ext/vendor/jansson-2.9/test/suites/api/test_number.c +90 -0
  2525. data/ext/vendor/jansson-2.9/test/suites/api/test_object.c +555 -0
  2526. data/ext/vendor/jansson-2.9/test/suites/api/test_pack.c +355 -0
  2527. data/ext/vendor/jansson-2.9/test/suites/api/test_simple.c +240 -0
  2528. data/ext/vendor/jansson-2.9/test/suites/api/test_unpack.c +406 -0
  2529. data/ext/vendor/jansson-2.9/test/suites/api/util.h +90 -0
  2530. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/encoded-surrogate-half/error +0 -0
  2531. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/encoded-surrogate-half/input +0 -0
  2532. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-after-backslash/error +0 -0
  2533. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-after-backslash/input +0 -0
  2534. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-array/error +0 -0
  2535. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-array/input +0 -0
  2536. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-bigger-int/error +0 -0
  2537. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-bigger-int/input +0 -0
  2538. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-escape/error +0 -0
  2539. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-escape/input +0 -0
  2540. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-exponent/error +0 -0
  2541. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-exponent/input +0 -0
  2542. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-identifier/error +0 -0
  2543. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-identifier/input +0 -0
  2544. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-int/error +0 -0
  2545. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-int/input +0 -0
  2546. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-real-after-e/error +0 -0
  2547. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-real-after-e/input +0 -0
  2548. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-string/error +0 -0
  2549. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/invalid-utf-8-in-string/input +0 -0
  2550. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/lone-invalid-utf-8/error +0 -0
  2551. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/lone-invalid-utf-8/input +0 -0
  2552. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/lone-utf-8-continuation-byte/error +0 -0
  2553. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/lone-utf-8-continuation-byte/input +0 -0
  2554. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/not-in-unicode-range/error +0 -0
  2555. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/not-in-unicode-range/input +0 -0
  2556. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/overlong-3-byte-encoding/error +0 -0
  2557. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/overlong-3-byte-encoding/input +0 -0
  2558. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/overlong-4-byte-encoding/error +0 -0
  2559. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/overlong-4-byte-encoding/input +0 -0
  2560. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/overlong-ascii-encoding/error +0 -0
  2561. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/overlong-ascii-encoding/input +0 -0
  2562. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/restricted-utf-8/error +0 -0
  2563. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/restricted-utf-8/input +0 -0
  2564. data/ext/vendor/jansson-2.9/test/suites/invalid-unicode/run +27 -0
  2565. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/truncated-utf-8/error +0 -0
  2566. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid-unicode/truncated-utf-8/input +0 -0
  2567. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/apostrophe/error +0 -0
  2568. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/apostrophe/input +0 -0
  2569. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/ascii-unicode-identifier/error +0 -0
  2570. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/ascii-unicode-identifier/input +0 -0
  2571. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/brace-comma/error +0 -0
  2572. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/brace-comma/input +0 -0
  2573. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/bracket-comma/error +0 -0
  2574. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/bracket-comma/input +0 -0
  2575. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/bracket-one-comma/error.normal +0 -0
  2576. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/bracket-one-comma/error.strip +0 -0
  2577. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/bracket-one-comma/input +0 -0
  2578. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/empty/error +0 -0
  2579. data/ext/vendor/jansson-2.9/test/suites/invalid/empty/input +0 -0
  2580. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/extra-comma-in-array/error +0 -0
  2581. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/extra-comma-in-array/input +0 -0
  2582. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/extra-comma-in-multiline-array/error +0 -0
  2583. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/extra-comma-in-multiline-array/input +0 -0
  2584. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/garbage-after-newline/error +0 -0
  2585. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/garbage-after-newline/input +0 -0
  2586. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/garbage-at-the-end/error +0 -0
  2587. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/garbage-at-the-end/input +0 -0
  2588. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/integer-starting-with-zero/error +0 -0
  2589. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/integer-starting-with-zero/input +0 -0
  2590. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-escape/error +0 -0
  2591. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-escape/input +0 -0
  2592. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-identifier/error +0 -0
  2593. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-identifier/input +0 -0
  2594. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-negative-integer/error +0 -0
  2595. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-negative-integer/input +0 -0
  2596. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-negative-real/error +0 -0
  2597. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-negative-real/input +0 -0
  2598. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-second-surrogate/error +0 -0
  2599. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/invalid-second-surrogate/input +0 -0
  2600. data/ext/vendor/jansson-2.9/test/suites/invalid/invalid-unicode-escape/error +2 -0
  2601. data/ext/vendor/jansson-2.9/test/suites/invalid/invalid-unicode-escape/input +1 -0
  2602. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-open-brace/error.normal +0 -0
  2603. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-open-brace/error.strip +0 -0
  2604. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-open-brace/input +0 -0
  2605. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-open-bracket/error.normal +0 -0
  2606. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-open-bracket/error.strip +0 -0
  2607. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-open-bracket/input +0 -0
  2608. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-second-surrogate/error +0 -0
  2609. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/lone-second-surrogate/input +0 -0
  2610. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/minus-sign-without-number/error +0 -0
  2611. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/minus-sign-without-number/input +0 -0
  2612. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/negative-integer-starting-with-zero/error +0 -0
  2613. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/negative-integer-starting-with-zero/input +0 -0
  2614. data/ext/vendor/jansson-2.9/test/suites/invalid/null-byte-in-object-key/error +2 -0
  2615. data/ext/vendor/jansson-2.9/test/suites/invalid/null-byte-in-object-key/input +1 -0
  2616. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null-byte-in-string/error +0 -0
  2617. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null-byte-in-string/input +0 -0
  2618. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null-byte-in-string/nostrip +0 -0
  2619. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null-byte-outside-string/error +0 -0
  2620. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null-byte-outside-string/input +0 -0
  2621. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null-byte-outside-string/nostrip +0 -0
  2622. data/ext/vendor/jansson-2.9/test/suites/invalid/null-escape-in-string/error +2 -0
  2623. data/ext/vendor/jansson-2.9/test/suites/invalid/null-escape-in-string/input +1 -0
  2624. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null/error +0 -0
  2625. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/null/input +0 -0
  2626. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-apostrophes/error +0 -0
  2627. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-apostrophes/input +0 -0
  2628. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-garbage-at-end/error +0 -0
  2629. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-garbage-at-end/input +0 -0
  2630. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-in-unterminated-array/error.normal +0 -0
  2631. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-in-unterminated-array/error.strip +0 -0
  2632. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-in-unterminated-array/input +0 -0
  2633. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-no-colon/error.normal +0 -0
  2634. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-no-colon/error.strip +0 -0
  2635. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-no-colon/input +0 -0
  2636. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-no-value/error.normal +0 -0
  2637. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-no-value/error.strip +0 -0
  2638. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-no-value/input +0 -0
  2639. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-unterminated-value/error.normal +0 -0
  2640. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-unterminated-value/error.strip +0 -0
  2641. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/object-unterminated-value/input +0 -0
  2642. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-garbage-after-e/error +0 -0
  2643. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-garbage-after-e/input +0 -0
  2644. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-negative-overflow/error +0 -0
  2645. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-negative-overflow/input +0 -0
  2646. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-positive-overflow/error +0 -0
  2647. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-positive-overflow/input +0 -0
  2648. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-truncated-at-e/error +0 -0
  2649. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-truncated-at-e/input +0 -0
  2650. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-truncated-at-point/error +0 -0
  2651. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/real-truncated-at-point/input +0 -0
  2652. data/ext/vendor/jansson-2.9/test/suites/invalid/recursion-depth/error +2 -0
  2653. data/ext/vendor/jansson-2.9/test/suites/invalid/recursion-depth/input +1 -0
  2654. data/ext/vendor/jansson-2.9/test/suites/invalid/run +57 -0
  2655. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/tab-character-in-string/error +0 -0
  2656. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/tab-character-in-string/input +0 -0
  2657. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/too-big-negative-integer/error +0 -0
  2658. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/too-big-negative-integer/input +0 -0
  2659. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/too-big-positive-integer/error +0 -0
  2660. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/too-big-positive-integer/input +0 -0
  2661. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/truncated-unicode-surrogate/error +0 -0
  2662. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/truncated-unicode-surrogate/input +0 -0
  2663. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unicode-identifier/error +0 -0
  2664. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unicode-identifier/input +0 -0
  2665. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-array-and-object/error.normal +0 -0
  2666. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-array-and-object/error.strip +0 -0
  2667. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-array-and-object/input +0 -0
  2668. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-array/error.normal +0 -0
  2669. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-array/error.strip +0 -0
  2670. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-array/input +0 -0
  2671. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-empty-key/error.normal +0 -0
  2672. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-empty-key/error.strip +0 -0
  2673. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-empty-key/input +0 -0
  2674. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-key/error.normal +0 -0
  2675. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-key/error.strip +0 -0
  2676. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-key/input +0 -0
  2677. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-object-and-array/error +0 -0
  2678. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-object-and-array/input +0 -0
  2679. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-string/error.normal +0 -0
  2680. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-string/error.strip +0 -0
  2681. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/invalid/unterminated-string/input +0 -0
  2682. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/complex-array/env +0 -0
  2683. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/complex-array/input +0 -0
  2684. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/complex-array/output +0 -0
  2685. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-array/input +0 -0
  2686. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-array/output +0 -0
  2687. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-object-in-array/input +0 -0
  2688. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-object-in-array/output +0 -0
  2689. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-object/input +0 -0
  2690. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-object/output +0 -0
  2691. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-string/input +0 -0
  2692. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/empty-string/output +0 -0
  2693. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/escaped-utf-control-char/input +0 -0
  2694. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/escaped-utf-control-char/output +0 -0
  2695. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/false/input +0 -0
  2696. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/false/output +0 -0
  2697. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/negative-int/input +0 -0
  2698. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/negative-int/output +0 -0
  2699. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/negative-one/input +0 -0
  2700. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/negative-one/output +0 -0
  2701. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/negative-zero/input +0 -0
  2702. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/negative-zero/output +0 -0
  2703. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/null/input +0 -0
  2704. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/null/output +0 -0
  2705. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/one-byte-utf-8/input +0 -0
  2706. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/one-byte-utf-8/output +0 -0
  2707. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-capital-e-negative-exponent/input +0 -0
  2708. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-capital-e-negative-exponent/output +0 -0
  2709. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-capital-e-positive-exponent/input +0 -0
  2710. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-capital-e-positive-exponent/output +0 -0
  2711. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-capital-e/input +0 -0
  2712. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-capital-e/output +0 -0
  2713. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-exponent/input +0 -0
  2714. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-exponent/output +0 -0
  2715. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-fraction-exponent/input +0 -0
  2716. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-fraction-exponent/output +0 -0
  2717. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-negative-exponent/input +0 -0
  2718. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-negative-exponent/output +0 -0
  2719. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-positive-exponent/input +0 -0
  2720. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-positive-exponent/output +0 -0
  2721. data/ext/vendor/jansson-2.9/test/suites/valid/real-subnormal-number/input +1 -0
  2722. data/ext/vendor/jansson-2.9/test/suites/valid/real-subnormal-number/output +1 -0
  2723. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-underflow/input +0 -0
  2724. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/real-underflow/output +0 -0
  2725. data/ext/vendor/jansson-2.9/test/suites/valid/run +56 -0
  2726. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/short-string/input +0 -0
  2727. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/short-string/output +0 -0
  2728. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-ascii-string/input +0 -0
  2729. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-ascii-string/output +0 -0
  2730. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-int-0/input +0 -0
  2731. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-int-0/output +0 -0
  2732. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-int-1/input +0 -0
  2733. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-int-1/output +0 -0
  2734. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-int-123/input +0 -0
  2735. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-int-123/output +0 -0
  2736. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-object/input +0 -0
  2737. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-object/output +0 -0
  2738. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-real/input +0 -0
  2739. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/simple-real/output +0 -0
  2740. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/string-escapes/input +0 -0
  2741. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/string-escapes/output +0 -0
  2742. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/three-byte-utf-8/input +0 -0
  2743. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/three-byte-utf-8/output +0 -0
  2744. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/true/input +0 -0
  2745. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/true/output +0 -0
  2746. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/two-byte-utf-8/input +0 -0
  2747. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/two-byte-utf-8/output +0 -0
  2748. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/utf-8-string/input +0 -0
  2749. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/utf-8-string/output +0 -0
  2750. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/utf-surrogate-four-byte-encoding/input +0 -0
  2751. data/ext/vendor/{jansson-2.5 → jansson-2.9}/test/suites/valid/utf-surrogate-four-byte-encoding/output +0 -0
  2752. data/lib/ctags.cnf +0 -7
  2753. data/lib/ctags.rb +2 -2
  2754. data/lib/ctags/universal.rb +86 -0
  2755. data/lib/ctags/version.rb +1 -1
  2756. data/test/test.c +10 -0
  2757. data/test/test_ctags.rb +23 -5
  2758. metadata +2763 -432
  2759. data/ext/vendor/exuberant-ctags/.gitignore +0 -6
  2760. data/ext/vendor/exuberant-ctags/EXTENDING.html +0 -386
  2761. data/ext/vendor/exuberant-ctags/FAQ +0 -371
  2762. data/ext/vendor/exuberant-ctags/INSTALL.oth +0 -73
  2763. data/ext/vendor/exuberant-ctags/MAINTAINERS +0 -88
  2764. data/ext/vendor/exuberant-ctags/Makefile.in +0 -222
  2765. data/ext/vendor/exuberant-ctags/NEWS +0 -871
  2766. data/ext/vendor/exuberant-ctags/README +0 -73
  2767. data/ext/vendor/exuberant-ctags/ant.c +0 -42
  2768. data/ext/vendor/exuberant-ctags/argproc.c +0 -505
  2769. data/ext/vendor/exuberant-ctags/args.c +0 -274
  2770. data/ext/vendor/exuberant-ctags/args.h +0 -63
  2771. data/ext/vendor/exuberant-ctags/asm.c +0 -387
  2772. data/ext/vendor/exuberant-ctags/asp.c +0 -328
  2773. data/ext/vendor/exuberant-ctags/awk.c +0 -81
  2774. data/ext/vendor/exuberant-ctags/basic.c +0 -203
  2775. data/ext/vendor/exuberant-ctags/beta.c +0 -321
  2776. data/ext/vendor/exuberant-ctags/c.c +0 -2932
  2777. data/ext/vendor/exuberant-ctags/cobol.c +0 -50
  2778. data/ext/vendor/exuberant-ctags/config.h.in +0 -277
  2779. data/ext/vendor/exuberant-ctags/configure +0 -7704
  2780. data/ext/vendor/exuberant-ctags/configure.ac +0 -532
  2781. data/ext/vendor/exuberant-ctags/ctags.1 +0 -1186
  2782. data/ext/vendor/exuberant-ctags/ctags.h +0 -28
  2783. data/ext/vendor/exuberant-ctags/ctags.html +0 -2087
  2784. data/ext/vendor/exuberant-ctags/ctags.spec +0 -40
  2785. data/ext/vendor/exuberant-ctags/debug.c +0 -113
  2786. data/ext/vendor/exuberant-ctags/debug.h +0 -70
  2787. data/ext/vendor/exuberant-ctags/descrip.mms +0 -68
  2788. data/ext/vendor/exuberant-ctags/dosbatch.c +0 -42
  2789. data/ext/vendor/exuberant-ctags/e_amiga.h +0 -24
  2790. data/ext/vendor/exuberant-ctags/e_djgpp.h +0 -47
  2791. data/ext/vendor/exuberant-ctags/e_mac.h +0 -143
  2792. data/ext/vendor/exuberant-ctags/e_msoft.h +0 -76
  2793. data/ext/vendor/exuberant-ctags/e_os2.h +0 -37
  2794. data/ext/vendor/exuberant-ctags/e_qdos.h +0 -34
  2795. data/ext/vendor/exuberant-ctags/e_riscos.h +0 -58
  2796. data/ext/vendor/exuberant-ctags/e_vms.h +0 -31
  2797. data/ext/vendor/exuberant-ctags/eiffel.c +0 -1352
  2798. data/ext/vendor/exuberant-ctags/entry.c +0 -916
  2799. data/ext/vendor/exuberant-ctags/entry.h +0 -103
  2800. data/ext/vendor/exuberant-ctags/erlang.c +0 -189
  2801. data/ext/vendor/exuberant-ctags/flex.c +0 -2243
  2802. data/ext/vendor/exuberant-ctags/fortran.c +0 -2197
  2803. data/ext/vendor/exuberant-ctags/general.h +0 -127
  2804. data/ext/vendor/exuberant-ctags/get.c +0 -669
  2805. data/ext/vendor/exuberant-ctags/get.h +0 -50
  2806. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops +0 -47
  2807. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/entries +0 -112
  2808. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base +0 -5
  2809. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base +0 -3818
  2810. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base +0 -74
  2811. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base +0 -575
  2812. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base +0 -1713
  2813. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base +0 -773
  2814. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base +0 -4338
  2815. data/ext/vendor/exuberant-ctags/gnu_regex/regcomp.c +0 -3818
  2816. data/ext/vendor/exuberant-ctags/gnu_regex/regex.c +0 -74
  2817. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c +0 -1713
  2818. data/ext/vendor/exuberant-ctags/gnu_regex/regexec.c +0 -4338
  2819. data/ext/vendor/exuberant-ctags/html.c +0 -49
  2820. data/ext/vendor/exuberant-ctags/jscript.c +0 -1572
  2821. data/ext/vendor/exuberant-ctags/keyword.c +0 -258
  2822. data/ext/vendor/exuberant-ctags/keyword.h +0 -34
  2823. data/ext/vendor/exuberant-ctags/lisp.c +0 -139
  2824. data/ext/vendor/exuberant-ctags/lregex.c +0 -704
  2825. data/ext/vendor/exuberant-ctags/lua.c +0 -133
  2826. data/ext/vendor/exuberant-ctags/mac.c +0 -273
  2827. data/ext/vendor/exuberant-ctags/magic.diff +0 -21
  2828. data/ext/vendor/exuberant-ctags/main.c +0 -645
  2829. data/ext/vendor/exuberant-ctags/main.h +0 -32
  2830. data/ext/vendor/exuberant-ctags/maintainer.mak +0 -476
  2831. data/ext/vendor/exuberant-ctags/make.c +0 -217
  2832. data/ext/vendor/exuberant-ctags/matlab.c +0 -44
  2833. data/ext/vendor/exuberant-ctags/mk_bc3.mak +0 -46
  2834. data/ext/vendor/exuberant-ctags/mk_bc5.mak +0 -49
  2835. data/ext/vendor/exuberant-ctags/mk_djg.mak +0 -18
  2836. data/ext/vendor/exuberant-ctags/mk_manx.mak +0 -65
  2837. data/ext/vendor/exuberant-ctags/mk_mingw.mak +0 -31
  2838. data/ext/vendor/exuberant-ctags/mk_mpw.mak +0 -130
  2839. data/ext/vendor/exuberant-ctags/mk_mvc.mak +0 -40
  2840. data/ext/vendor/exuberant-ctags/mk_os2.mak +0 -104
  2841. data/ext/vendor/exuberant-ctags/mk_qdos.mak +0 -100
  2842. data/ext/vendor/exuberant-ctags/mk_sas.mak +0 -63
  2843. data/ext/vendor/exuberant-ctags/mkinstalldirs +0 -40
  2844. data/ext/vendor/exuberant-ctags/ocaml.c +0 -1842
  2845. data/ext/vendor/exuberant-ctags/options.c +0 -1842
  2846. data/ext/vendor/exuberant-ctags/options.h +0 -155
  2847. data/ext/vendor/exuberant-ctags/parse.c +0 -677
  2848. data/ext/vendor/exuberant-ctags/parse.h +0 -129
  2849. data/ext/vendor/exuberant-ctags/parsers.h +0 -63
  2850. data/ext/vendor/exuberant-ctags/pascal.c +0 -267
  2851. data/ext/vendor/exuberant-ctags/perl.c +0 -382
  2852. data/ext/vendor/exuberant-ctags/php.c +0 -237
  2853. data/ext/vendor/exuberant-ctags/python.c +0 -771
  2854. data/ext/vendor/exuberant-ctags/qdos.c +0 -106
  2855. data/ext/vendor/exuberant-ctags/read.c +0 -574
  2856. data/ext/vendor/exuberant-ctags/read.h +0 -119
  2857. data/ext/vendor/exuberant-ctags/readtags.c +0 -959
  2858. data/ext/vendor/exuberant-ctags/readtags.h +0 -252
  2859. data/ext/vendor/exuberant-ctags/rexx.c +0 -39
  2860. data/ext/vendor/exuberant-ctags/routines.c +0 -914
  2861. data/ext/vendor/exuberant-ctags/routines.h +0 -134
  2862. data/ext/vendor/exuberant-ctags/ruby.c +0 -463
  2863. data/ext/vendor/exuberant-ctags/scheme.c +0 -111
  2864. data/ext/vendor/exuberant-ctags/sh.c +0 -115
  2865. data/ext/vendor/exuberant-ctags/slang.c +0 -41
  2866. data/ext/vendor/exuberant-ctags/sml.c +0 -212
  2867. data/ext/vendor/exuberant-ctags/sort.c +0 -230
  2868. data/ext/vendor/exuberant-ctags/sort.h +0 -32
  2869. data/ext/vendor/exuberant-ctags/source.mak +0 -122
  2870. data/ext/vendor/exuberant-ctags/sql.c +0 -2112
  2871. data/ext/vendor/exuberant-ctags/strlist.c +0 -281
  2872. data/ext/vendor/exuberant-ctags/strlist.h +0 -54
  2873. data/ext/vendor/exuberant-ctags/tcl.c +0 -116
  2874. data/ext/vendor/exuberant-ctags/tex.c +0 -524
  2875. data/ext/vendor/exuberant-ctags/verilog.c +0 -340
  2876. data/ext/vendor/exuberant-ctags/vhdl.c +0 -835
  2877. data/ext/vendor/exuberant-ctags/vim.c +0 -636
  2878. data/ext/vendor/exuberant-ctags/vstring.c +0 -232
  2879. data/ext/vendor/exuberant-ctags/vstring.h +0 -85
  2880. data/ext/vendor/exuberant-ctags/yacc.c +0 -40
  2881. data/ext/vendor/fmemopen/README.md +0 -49
  2882. data/ext/vendor/fmemopen/fmemopen.c +0 -92
  2883. data/ext/vendor/fmemopen/fmemopen.h +0 -52
  2884. data/ext/vendor/jansson-2.5/CHANGES +0 -554
  2885. data/ext/vendor/jansson-2.5/LICENSE +0 -19
  2886. data/ext/vendor/jansson-2.5/Makefile.am +0 -15
  2887. data/ext/vendor/jansson-2.5/Makefile.in +0 -825
  2888. data/ext/vendor/jansson-2.5/README.rst +0 -63
  2889. data/ext/vendor/jansson-2.5/aclocal.m4 +0 -9674
  2890. data/ext/vendor/jansson-2.5/config.guess +0 -1530
  2891. data/ext/vendor/jansson-2.5/config.h.in +0 -84
  2892. data/ext/vendor/jansson-2.5/config.sub +0 -1782
  2893. data/ext/vendor/jansson-2.5/configure +0 -13931
  2894. data/ext/vendor/jansson-2.5/configure.ac +0 -57
  2895. data/ext/vendor/jansson-2.5/depcomp +0 -708
  2896. data/ext/vendor/jansson-2.5/doc/Makefile.in +0 -401
  2897. data/ext/vendor/jansson-2.5/doc/apiref.rst +0 -1487
  2898. data/ext/vendor/jansson-2.5/doc/conf.py +0 -217
  2899. data/ext/vendor/jansson-2.5/doc/conformance.rst +0 -114
  2900. data/ext/vendor/jansson-2.5/doc/ext/refcounting.py +0 -59
  2901. data/ext/vendor/jansson-2.5/doc/gettingstarted.rst +0 -237
  2902. data/ext/vendor/jansson-2.5/doc/github_commits.c +0 -192
  2903. data/ext/vendor/jansson-2.5/doc/portability.rst +0 -52
  2904. data/ext/vendor/jansson-2.5/doc/tutorial.rst +0 -286
  2905. data/ext/vendor/jansson-2.5/install-sh +0 -527
  2906. data/ext/vendor/jansson-2.5/ltmain.sh +0 -9661
  2907. data/ext/vendor/jansson-2.5/missing +0 -331
  2908. data/ext/vendor/jansson-2.5/src/Makefile.am +0 -24
  2909. data/ext/vendor/jansson-2.5/src/Makefile.in +0 -613
  2910. data/ext/vendor/jansson-2.5/src/dump.c +0 -456
  2911. data/ext/vendor/jansson-2.5/src/error.c +0 -63
  2912. data/ext/vendor/jansson-2.5/src/hashtable.c +0 -360
  2913. data/ext/vendor/jansson-2.5/src/hashtable.h +0 -180
  2914. data/ext/vendor/jansson-2.5/src/jansson.def +0 -63
  2915. data/ext/vendor/jansson-2.5/src/jansson.h +0 -281
  2916. data/ext/vendor/jansson-2.5/src/jansson_config.h +0 -39
  2917. data/ext/vendor/jansson-2.5/src/jansson_config.h.in +0 -39
  2918. data/ext/vendor/jansson-2.5/src/jansson_private.h +0 -93
  2919. data/ext/vendor/jansson-2.5/src/load.c +0 -1077
  2920. data/ext/vendor/jansson-2.5/src/memory.c +0 -56
  2921. data/ext/vendor/jansson-2.5/src/pack_unpack.c +0 -762
  2922. data/ext/vendor/jansson-2.5/src/strbuffer.c +0 -116
  2923. data/ext/vendor/jansson-2.5/src/strbuffer.h +0 -33
  2924. data/ext/vendor/jansson-2.5/src/strconv.c +0 -134
  2925. data/ext/vendor/jansson-2.5/src/utf.c +0 -190
  2926. data/ext/vendor/jansson-2.5/src/utf.h +0 -39
  2927. data/ext/vendor/jansson-2.5/src/value.c +0 -950
  2928. data/ext/vendor/jansson-2.5/test/Makefile.in +0 -684
  2929. data/ext/vendor/jansson-2.5/test/bin/Makefile.in +0 -498
  2930. data/ext/vendor/jansson-2.5/test/bin/json_process.c +0 -349
  2931. data/ext/vendor/jansson-2.5/test/run-suites +0 -50
  2932. data/ext/vendor/jansson-2.5/test/scripts/run-tests.sh +0 -100
  2933. data/ext/vendor/jansson-2.5/test/scripts/valgrind.sh +0 -35
  2934. data/ext/vendor/jansson-2.5/test/suites/Makefile.in +0 -580
  2935. data/ext/vendor/jansson-2.5/test/suites/api/Makefile.in +0 -632
  2936. data/ext/vendor/jansson-2.5/test/suites/api/run +0 -36
  2937. data/ext/vendor/jansson-2.5/test/suites/api/test_array.c +0 -432
  2938. data/ext/vendor/jansson-2.5/test/suites/api/test_copy.c +0 -318
  2939. data/ext/vendor/jansson-2.5/test/suites/api/test_dump.c +0 -190
  2940. data/ext/vendor/jansson-2.5/test/suites/api/test_dump_callback.c +0 -81
  2941. data/ext/vendor/jansson-2.5/test/suites/api/test_equal.c +0 -189
  2942. data/ext/vendor/jansson-2.5/test/suites/api/test_load.c +0 -166
  2943. data/ext/vendor/jansson-2.5/test/suites/api/test_loadb.c +0 -36
  2944. data/ext/vendor/jansson-2.5/test/suites/api/test_memory_funcs.c +0 -82
  2945. data/ext/vendor/jansson-2.5/test/suites/api/test_number.c +0 -73
  2946. data/ext/vendor/jansson-2.5/test/suites/api/test_object.c +0 -511
  2947. data/ext/vendor/jansson-2.5/test/suites/api/test_pack.c +0 -283
  2948. data/ext/vendor/jansson-2.5/test/suites/api/test_simple.c +0 -199
  2949. data/ext/vendor/jansson-2.5/test/suites/api/test_unpack.c +0 -373
  2950. data/ext/vendor/jansson-2.5/test/suites/api/util.h +0 -74
  2951. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/run +0 -27
  2952. data/ext/vendor/jansson-2.5/test/suites/invalid/escaped-null-byte-in-string/error +0 -2
  2953. data/ext/vendor/jansson-2.5/test/suites/invalid/escaped-null-byte-in-string/input +0 -1
  2954. data/ext/vendor/jansson-2.5/test/suites/invalid/run +0 -57
  2955. data/ext/vendor/jansson-2.5/test/suites/valid/run +0 -56
  2956. data/ext/vendor/jansson-2.5/win32/jansson_config.h +0 -39
  2957. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.sln +0 -20
  2958. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.vcxproj +0 -108
  2959. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.vcxproj.filters +0 -69
  2960. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.vcxproj.user +0 -3
  2961. data/lib/ctags/exuberant.rb +0 -87
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (c) 2016, Masatake YAMATO
3
+ * Copyright (c) 2016, Red Hat, Inc.
4
+ *
5
+ * This source code is released for free distribution under the terms of the
6
+ * GNU General Public License version 2 or (at your option) any later version.
7
+ *
8
+ * This module contains functions for applying regular expression matching.
9
+ *
10
+ * The code for utilizing the Gnu regex package with regards to processing the
11
+ * regex option and checking for regex matches was adapted from routines in
12
+ * Gnu etags.
13
+ */
14
+
15
+ #ifndef QUALIFIER_H
16
+ #define QUALIFIER_H
17
+
18
+ #include "es-lang-c-stdc99.h"
19
+ #include "readtags.h"
20
+
21
+ #include <stdio.h>
22
+
23
+ typedef struct sQCode QCode;
24
+
25
+ enum QRESULT {
26
+ Q_REJECT,
27
+ Q_ACCEPT,
28
+ Q_ERROR,
29
+ };
30
+
31
+ QCode *q_compile (EsObject *exp);
32
+ enum QRESULT q_is_acceptable (QCode *code, tagEntry *entry);
33
+ void q_destroy (QCode *code);
34
+ void q_help (FILE *fp);
35
+
36
+ #endif
@@ -0,0 +1,190 @@
1
+ /* Copyright (C) 1992 Free Software Foundation, Inc.
2
+ This file is part of the GNU C Library.
3
+
4
+ The GNU C Library is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU Library General Public License as
6
+ published by the Free Software Foundation; either version 2 of the
7
+ License, or (at your option) any later version.
8
+
9
+ The GNU C Library is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ Library General Public License for more details. */
13
+
14
+ /* Modified slightly by Brian Berliner <berliner@sun.com> and
15
+ Jim Blandy <jimb@cyclic.com> for CVS use */
16
+
17
+ #ifdef HAVE_CONFIG_H
18
+ #include "config.h"
19
+ #endif
20
+
21
+ /* Some file systems are case-insensitive. If FOLD_FN_CHAR is
22
+ #defined, it maps the character C onto its "canonical" form. In a
23
+ case-insensitive system, it would map all alphanumeric characters
24
+ to lower case. Under Windows NT, / and \ are both path component
25
+ separators, so FOLD_FN_CHAR would map them both to /. */
26
+ #ifndef FOLD_FN_CHAR
27
+ #define FOLD_FN_CHAR(c) (c)
28
+ #endif
29
+
30
+ /* IGNORE(@ */
31
+ /* #include <ansidecl.h> */
32
+ /* @) */
33
+ #include <errno.h>
34
+ #include <fnmatch.h>
35
+
36
+ #if !defined(__GNU_LIBRARY__) \
37
+ && !defined(STDC_HEADERS) \
38
+ && !defined(_CRT_ERRNO_DEFINED)
39
+ extern int errno;
40
+ #endif
41
+
42
+ /* Match STRING against the filename pattern PATTERN, returning zero if
43
+ it matches, nonzero if not. */
44
+ int
45
+ #if __STDC__
46
+ fnmatch (const char *pattern, const char *string, int flags)
47
+ #else
48
+ fnmatch (pattern, string, flags)
49
+ char *pattern;
50
+ char *string;
51
+ int flags;
52
+ #endif
53
+ {
54
+ register const char *p = pattern, *n = string;
55
+ register char c;
56
+
57
+ if ((flags & ~__FNM_FLAGS) != 0)
58
+ {
59
+ errno = EINVAL;
60
+ return -1;
61
+ }
62
+
63
+ while ((c = *p++) != '\0')
64
+ {
65
+ switch (c)
66
+ {
67
+ case '?':
68
+ if (*n == '\0')
69
+ return FNM_NOMATCH;
70
+ else if ((flags & FNM_PATHNAME) && *n == '/')
71
+ return FNM_NOMATCH;
72
+ else if ((flags & FNM_PERIOD) && *n == '.' &&
73
+ (n == string || ((flags & FNM_PATHNAME) && n[-1] == '/')))
74
+ return FNM_NOMATCH;
75
+ break;
76
+
77
+ case '\\':
78
+ if (!(flags & FNM_NOESCAPE))
79
+ c = *p++;
80
+ if (*n != c)
81
+ return FNM_NOMATCH;
82
+ break;
83
+
84
+ case '*':
85
+ if ((flags & FNM_PERIOD) && *n == '.' &&
86
+ (n == string || ((flags & FNM_PATHNAME) && n[-1] == '/')))
87
+ return FNM_NOMATCH;
88
+
89
+ for (c = *p++; c == '?' || c == '*'; c = *p++, ++n)
90
+ if (((flags & FNM_PATHNAME) && *n == '/') ||
91
+ (c == '?' && *n == '\0'))
92
+ return FNM_NOMATCH;
93
+
94
+ if (c == '\0')
95
+ return 0;
96
+
97
+ {
98
+ char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
99
+ for (--p; *n != '\0'; ++n)
100
+ if ((c == '[' || *n == c1) &&
101
+ fnmatch(p, n, flags & ~FNM_PERIOD) == 0)
102
+ return 0;
103
+ return FNM_NOMATCH;
104
+ }
105
+
106
+ case '[':
107
+ {
108
+ /* Nonzero if the sense of the character class is inverted. */
109
+ register int not;
110
+
111
+ if (*n == '\0')
112
+ return FNM_NOMATCH;
113
+
114
+ if ((flags & FNM_PERIOD) && *n == '.' &&
115
+ (n == string || ((flags & FNM_PATHNAME) && n[-1] == '/')))
116
+ return FNM_NOMATCH;
117
+
118
+ not = (*p == '!' || *p == '^');
119
+ if (not)
120
+ ++p;
121
+
122
+ c = *p++;
123
+ for (;;)
124
+ {
125
+ register char cstart = c, cend = c;
126
+
127
+ if (!(flags & FNM_NOESCAPE) && c == '\\')
128
+ cstart = cend = *p++;
129
+
130
+ if (c == '\0')
131
+ /* [ (unterminated) loses. */
132
+ return FNM_NOMATCH;
133
+
134
+ c = *p++;
135
+
136
+ if ((flags & FNM_PATHNAME) && c == '/')
137
+ /* [/] can never match. */
138
+ return FNM_NOMATCH;
139
+
140
+ if (c == '-' && *p != ']')
141
+ {
142
+ cend = *p++;
143
+ if (!(flags & FNM_NOESCAPE) && cend == '\\')
144
+ cend = *p++;
145
+ if (cend == '\0')
146
+ return FNM_NOMATCH;
147
+ c = *p++;
148
+ }
149
+
150
+ if (*n >= cstart && *n <= cend)
151
+ goto matched;
152
+
153
+ if (c == ']')
154
+ break;
155
+ }
156
+ if (!not)
157
+ return FNM_NOMATCH;
158
+ break;
159
+
160
+ matched:;
161
+ /* Skip the rest of the [...] that already matched. */
162
+ while (c != ']')
163
+ {
164
+ if (c == '\0')
165
+ /* [... (unterminated) loses. */
166
+ return FNM_NOMATCH;
167
+
168
+ c = *p++;
169
+ if (!(flags & FNM_NOESCAPE) && c == '\\')
170
+ /* 1003.2d11 is unclear if this is right. %%% */
171
+ ++p;
172
+ }
173
+ if (not)
174
+ return FNM_NOMATCH;
175
+ }
176
+ break;
177
+
178
+ default:
179
+ if (FOLD_FN_CHAR (c) != FOLD_FN_CHAR (*n))
180
+ return FNM_NOMATCH;
181
+ }
182
+
183
+ ++n;
184
+ }
185
+
186
+ if (*n == '\0')
187
+ return 0;
188
+
189
+ return FNM_NOMATCH;
190
+ }
@@ -0,0 +1,40 @@
1
+ /* Copyright (C) 1992 Free Software Foundation, Inc.
2
+ This file is part of the GNU C Library.
3
+
4
+ The GNU C Library is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU Library General Public License as
6
+ published by the Free Software Foundation; either version 2 of the
7
+ License, or (at your option) any later version.
8
+
9
+ The GNU C Library is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ Library General Public License for more details. */
13
+
14
+ #ifndef _FNMATCH_H
15
+
16
+ #define _FNMATCH_H 1
17
+
18
+ /* Bits set in the FLAGS argument to `fnmatch'. */
19
+ #undef FNM_PATHNAME
20
+ #define FNM_PATHNAME (1 << 0)/* No wildcard can ever match `/'. */
21
+ #undef FNM_NOESCAPE
22
+ #define FNM_NOESCAPE (1 << 1)/* Backslashes don't quote special chars. */
23
+ #undef FNM_PERIOD
24
+ #define FNM_PERIOD (1 << 2)/* Leading `.' is matched only explicitly. */
25
+ #undef __FNM_FLAGS
26
+ #define __FNM_FLAGS (FNM_PATHNAME|FNM_NOESCAPE|FNM_PERIOD)
27
+
28
+ /* Value returned by `fnmatch' if STRING does not match PATTERN. */
29
+ #undef FNM_NOMATCH
30
+ #define FNM_NOMATCH 1
31
+
32
+ /* Match STRING against the filename pattern PATTERN,
33
+ returning zero if it matches, FNM_NOMATCH if not. */
34
+ #if __STDC__
35
+ extern int fnmatch (const char *pattern, const char *string, int flags);
36
+ #else
37
+ extern int fnmatch ();
38
+ #endif
39
+
40
+ #endif /* fnmatch.h */
@@ -0,0 +1,3818 @@
1
+ /* Extended regular expression matching and search library.
2
+ Copyright (C) 2002,2003,2004,2005,2006,2007,2009
3
+ Free Software Foundation, Inc.
4
+ This file is part of the GNU C Library.
5
+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
6
+
7
+ The GNU C Library is free software; you can redistribute it and/or
8
+ modify it under the terms of the GNU Lesser General Public
9
+ License as published by the Free Software Foundation; either
10
+ version 2.1 of the License, or (at your option) any later version.
11
+
12
+ The GNU C Library is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ Lesser General Public License for more details.
16
+
17
+ You should have received a copy of the GNU Lesser General Public
18
+ License along with the GNU C Library; if not, write to the Free
19
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20
+ 02111-1307 USA. */
21
+
22
+ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
23
+ size_t length, reg_syntax_t syntax);
24
+ static void re_compile_fastmap_iter (regex_t *bufp,
25
+ const re_dfastate_t *init_state,
26
+ char *fastmap);
27
+ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
28
+ #ifdef RE_ENABLE_I18N
29
+ static void free_charset (re_charset_t *cset);
30
+ #endif /* RE_ENABLE_I18N */
31
+ static void free_workarea_compile (regex_t *preg);
32
+ static reg_errcode_t create_initial_state (re_dfa_t *dfa);
33
+ #ifdef RE_ENABLE_I18N
34
+ static void optimize_utf8 (re_dfa_t *dfa);
35
+ #endif
36
+ static reg_errcode_t analyze (regex_t *preg);
37
+ static reg_errcode_t preorder (bin_tree_t *root,
38
+ reg_errcode_t (fn (void *, bin_tree_t *)),
39
+ void *extra);
40
+ static reg_errcode_t postorder (bin_tree_t *root,
41
+ reg_errcode_t (fn (void *, bin_tree_t *)),
42
+ void *extra);
43
+ static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node);
44
+ static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node);
45
+ static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg,
46
+ bin_tree_t *node);
47
+ static reg_errcode_t calc_first (void *extra, bin_tree_t *node);
48
+ static reg_errcode_t calc_next (void *extra, bin_tree_t *node);
49
+ static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node);
50
+ static int duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint);
51
+ static int search_duplicated_node (const re_dfa_t *dfa, int org_node,
52
+ unsigned int constraint);
53
+ static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
54
+ static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
55
+ int node, int root);
56
+ static reg_errcode_t calc_inveclosure (re_dfa_t *dfa);
57
+ static int fetch_number (re_string_t *input, re_token_t *token,
58
+ reg_syntax_t syntax);
59
+ static int peek_token (re_token_t *token, re_string_t *input,
60
+ reg_syntax_t syntax) internal_function;
61
+ static bin_tree_t *parse (re_string_t *regexp, regex_t *preg,
62
+ reg_syntax_t syntax, reg_errcode_t *err);
63
+ static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg,
64
+ re_token_t *token, reg_syntax_t syntax,
65
+ int nest, reg_errcode_t *err);
66
+ static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg,
67
+ re_token_t *token, reg_syntax_t syntax,
68
+ int nest, reg_errcode_t *err);
69
+ static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg,
70
+ re_token_t *token, reg_syntax_t syntax,
71
+ int nest, reg_errcode_t *err);
72
+ static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg,
73
+ re_token_t *token, reg_syntax_t syntax,
74
+ int nest, reg_errcode_t *err);
75
+ static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp,
76
+ re_dfa_t *dfa, re_token_t *token,
77
+ reg_syntax_t syntax, reg_errcode_t *err);
78
+ static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa,
79
+ re_token_t *token, reg_syntax_t syntax,
80
+ reg_errcode_t *err);
81
+ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem,
82
+ re_string_t *regexp,
83
+ re_token_t *token, int token_len,
84
+ re_dfa_t *dfa,
85
+ reg_syntax_t syntax,
86
+ int accept_hyphen);
87
+ static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem,
88
+ re_string_t *regexp,
89
+ re_token_t *token);
90
+ #ifdef RE_ENABLE_I18N
91
+ static reg_errcode_t build_equiv_class (bitset_t sbcset,
92
+ re_charset_t *mbcset,
93
+ int *equiv_class_alloc,
94
+ const unsigned char *name);
95
+ static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
96
+ bitset_t sbcset,
97
+ re_charset_t *mbcset,
98
+ int *char_class_alloc,
99
+ const unsigned char *class_name,
100
+ reg_syntax_t syntax);
101
+ #else /* not RE_ENABLE_I18N */
102
+ static reg_errcode_t build_equiv_class (bitset_t sbcset,
103
+ const unsigned char *name);
104
+ static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
105
+ bitset_t sbcset,
106
+ const unsigned char *class_name,
107
+ reg_syntax_t syntax);
108
+ #endif /* not RE_ENABLE_I18N */
109
+ static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
110
+ RE_TRANSLATE_TYPE trans,
111
+ const unsigned char *class_name,
112
+ const unsigned char *extra,
113
+ int non_match, reg_errcode_t *err);
114
+ static bin_tree_t *create_tree (re_dfa_t *dfa,
115
+ bin_tree_t *left, bin_tree_t *right,
116
+ re_token_type_t type);
117
+ static bin_tree_t *create_token_tree (re_dfa_t *dfa,
118
+ bin_tree_t *left, bin_tree_t *right,
119
+ const re_token_t *token);
120
+ static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa);
121
+ static void free_token (re_token_t *node);
122
+ static reg_errcode_t free_tree (void *extra, bin_tree_t *node);
123
+ static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node);
124
+
125
+ /* This table gives an error message for each of the error codes listed
126
+ in regex.h. Obviously the order here has to be same as there.
127
+ POSIX doesn't require that we do anything for REG_NOERROR,
128
+ but why not be nice? */
129
+
130
+ const char __re_error_msgid[] attribute_hidden =
131
+ {
132
+ #define REG_NOERROR_IDX 0
133
+ gettext_noop ("Success") /* REG_NOERROR */
134
+ "\0"
135
+ #define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
136
+ gettext_noop ("No match") /* REG_NOMATCH */
137
+ "\0"
138
+ #define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match")
139
+ gettext_noop ("Invalid regular expression") /* REG_BADPAT */
140
+ "\0"
141
+ #define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
142
+ gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
143
+ "\0"
144
+ #define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character")
145
+ gettext_noop ("Invalid character class name") /* REG_ECTYPE */
146
+ "\0"
147
+ #define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name")
148
+ gettext_noop ("Trailing backslash") /* REG_EESCAPE */
149
+ "\0"
150
+ #define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash")
151
+ gettext_noop ("Invalid back reference") /* REG_ESUBREG */
152
+ "\0"
153
+ #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference")
154
+ gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */
155
+ "\0"
156
+ #define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
157
+ gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
158
+ "\0"
159
+ #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
160
+ gettext_noop ("Unmatched \\{") /* REG_EBRACE */
161
+ "\0"
162
+ #define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{")
163
+ gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
164
+ "\0"
165
+ #define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
166
+ gettext_noop ("Invalid range end") /* REG_ERANGE */
167
+ "\0"
168
+ #define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end")
169
+ gettext_noop ("Memory exhausted") /* REG_ESPACE */
170
+ "\0"
171
+ #define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted")
172
+ gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
173
+ "\0"
174
+ #define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
175
+ gettext_noop ("Premature end of regular expression") /* REG_EEND */
176
+ "\0"
177
+ #define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression")
178
+ gettext_noop ("Regular expression too big") /* REG_ESIZE */
179
+ "\0"
180
+ #define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big")
181
+ gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
182
+ };
183
+
184
+ const size_t __re_error_msgid_idx[] attribute_hidden =
185
+ {
186
+ REG_NOERROR_IDX,
187
+ REG_NOMATCH_IDX,
188
+ REG_BADPAT_IDX,
189
+ REG_ECOLLATE_IDX,
190
+ REG_ECTYPE_IDX,
191
+ REG_EESCAPE_IDX,
192
+ REG_ESUBREG_IDX,
193
+ REG_EBRACK_IDX,
194
+ REG_EPAREN_IDX,
195
+ REG_EBRACE_IDX,
196
+ REG_BADBR_IDX,
197
+ REG_ERANGE_IDX,
198
+ REG_ESPACE_IDX,
199
+ REG_BADRPT_IDX,
200
+ REG_EEND_IDX,
201
+ REG_ESIZE_IDX,
202
+ REG_ERPAREN_IDX
203
+ };
204
+
205
+ /* Entry points for GNU code. */
206
+
207
+ /* re_compile_pattern is the GNU regular expression compiler: it
208
+ compiles PATTERN (of length LENGTH) and puts the result in BUFP.
209
+ Returns 0 if the pattern was valid, otherwise an error string.
210
+
211
+ Assumes the `allocated' (and perhaps `buffer') and `translate' fields
212
+ are set in BUFP on entry. */
213
+
214
+ const char *
215
+ re_compile_pattern (pattern, length, bufp)
216
+ const char *pattern;
217
+ size_t length;
218
+ struct re_pattern_buffer *bufp;
219
+ {
220
+ reg_errcode_t ret;
221
+
222
+ /* And GNU code determines whether or not to get register information
223
+ by passing null for the REGS argument to re_match, etc., not by
224
+ setting no_sub, unless RE_NO_SUB is set. */
225
+ bufp->no_sub = !!(re_syntax_options & RE_NO_SUB);
226
+
227
+ /* Match anchors at newline. */
228
+ bufp->newline_anchor = 1;
229
+
230
+ ret = re_compile_internal (bufp, pattern, length, re_syntax_options);
231
+
232
+ if (!ret)
233
+ return NULL;
234
+ return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
235
+ }
236
+ #ifdef _LIBC
237
+ weak_alias (__re_compile_pattern, re_compile_pattern)
238
+ #endif
239
+
240
+ /* Set by `re_set_syntax' to the current regexp syntax to recognize. Can
241
+ also be assigned to arbitrarily: each pattern buffer stores its own
242
+ syntax, so it can be changed between regex compilations. */
243
+ /* This has no initializer because initialized variables in Emacs
244
+ become read-only after dumping. */
245
+ reg_syntax_t re_syntax_options;
246
+
247
+
248
+ /* Specify the precise syntax of regexps for compilation. This provides
249
+ for compatibility for various utilities which historically have
250
+ different, incompatible syntaxes.
251
+
252
+ The argument SYNTAX is a bit mask comprised of the various bits
253
+ defined in regex.h. We return the old syntax. */
254
+
255
+ reg_syntax_t
256
+ re_set_syntax (syntax)
257
+ reg_syntax_t syntax;
258
+ {
259
+ reg_syntax_t ret = re_syntax_options;
260
+
261
+ re_syntax_options = syntax;
262
+ return ret;
263
+ }
264
+ #ifdef _LIBC
265
+ weak_alias (__re_set_syntax, re_set_syntax)
266
+ #endif
267
+
268
+ int
269
+ re_compile_fastmap (bufp)
270
+ struct re_pattern_buffer *bufp;
271
+ {
272
+ re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
273
+ char *fastmap = bufp->fastmap;
274
+
275
+ memset (fastmap, '\0', sizeof (char) * SBC_MAX);
276
+ re_compile_fastmap_iter (bufp, dfa->init_state, fastmap);
277
+ if (dfa->init_state != dfa->init_state_word)
278
+ re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap);
279
+ if (dfa->init_state != dfa->init_state_nl)
280
+ re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap);
281
+ if (dfa->init_state != dfa->init_state_begbuf)
282
+ re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap);
283
+ bufp->fastmap_accurate = 1;
284
+ return 0;
285
+ }
286
+ #ifdef _LIBC
287
+ weak_alias (__re_compile_fastmap, re_compile_fastmap)
288
+ #endif
289
+
290
+ static inline void
291
+ __attribute ((always_inline))
292
+ re_set_fastmap (char *fastmap, int icase, int ch)
293
+ {
294
+ fastmap[ch] = 1;
295
+ if (icase)
296
+ fastmap[tolower (ch)] = 1;
297
+ }
298
+
299
+ /* Helper function for re_compile_fastmap.
300
+ Compile fastmap for the initial_state INIT_STATE. */
301
+
302
+ static void
303
+ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
304
+ char *fastmap)
305
+ {
306
+ re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
307
+ int node_cnt;
308
+ int icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE));
309
+ for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
310
+ {
311
+ int node = init_state->nodes.elems[node_cnt];
312
+ re_token_type_t type = dfa->nodes[node].type;
313
+
314
+ if (type == CHARACTER)
315
+ {
316
+ re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
317
+ #ifdef RE_ENABLE_I18N
318
+ if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
319
+ {
320
+ unsigned char *buf = alloca (dfa->mb_cur_max), *p;
321
+ wchar_t wc;
322
+ mbstate_t state;
323
+
324
+ p = buf;
325
+ *p++ = dfa->nodes[node].opr.c;
326
+ while (++node < dfa->nodes_len
327
+ && dfa->nodes[node].type == CHARACTER
328
+ && dfa->nodes[node].mb_partial)
329
+ *p++ = dfa->nodes[node].opr.c;
330
+ memset (&state, '\0', sizeof (state));
331
+ if (__mbrtowc (&wc, (const char *) buf, p - buf,
332
+ &state) == p - buf
333
+ && (__wcrtomb ((char *) buf, towlower (wc), &state)
334
+ != (size_t) -1))
335
+ re_set_fastmap (fastmap, 0, buf[0]);
336
+ }
337
+ #endif
338
+ }
339
+ else if (type == SIMPLE_BRACKET)
340
+ {
341
+ int i, ch;
342
+ for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
343
+ {
344
+ int j;
345
+ bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
346
+ for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
347
+ if (w & ((bitset_word_t) 1 << j))
348
+ re_set_fastmap (fastmap, icase, ch);
349
+ }
350
+ }
351
+ #ifdef RE_ENABLE_I18N
352
+ else if (type == COMPLEX_BRACKET)
353
+ {
354
+ re_charset_t *cset = dfa->nodes[node].opr.mbcset;
355
+ int i;
356
+
357
+ # ifdef _LIBC
358
+ /* See if we have to try all bytes which start multiple collation
359
+ elements.
360
+ e.g. In da_DK, we want to catch 'a' since "aa" is a valid
361
+ collation element, and don't catch 'b' since 'b' is
362
+ the only collation element which starts from 'b' (and
363
+ it is caught by SIMPLE_BRACKET). */
364
+ if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0
365
+ && (cset->ncoll_syms || cset->nranges))
366
+ {
367
+ const int32_t *table = (const int32_t *)
368
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
369
+ for (i = 0; i < SBC_MAX; ++i)
370
+ if (table[i] < 0)
371
+ re_set_fastmap (fastmap, icase, i);
372
+ }
373
+ # endif /* _LIBC */
374
+
375
+ /* See if we have to start the match at all multibyte characters,
376
+ i.e. where we would not find an invalid sequence. This only
377
+ applies to multibyte character sets; for single byte character
378
+ sets, the SIMPLE_BRACKET again suffices. */
379
+ if (dfa->mb_cur_max > 1
380
+ && (cset->nchar_classes || cset->non_match
381
+ # ifdef _LIBC
382
+ || cset->nequiv_classes
383
+ # endif /* _LIBC */
384
+ ))
385
+ {
386
+ unsigned char c = 0;
387
+ do
388
+ {
389
+ mbstate_t mbs;
390
+ memset (&mbs, 0, sizeof (mbs));
391
+ if (__mbrtowc (NULL, (char *) &c, 1, &mbs) == (size_t) -2)
392
+ re_set_fastmap (fastmap, false, (int) c);
393
+ }
394
+ while (++c != 0);
395
+ }
396
+
397
+ else
398
+ {
399
+ /* ... Else catch all bytes which can start the mbchars. */
400
+ for (i = 0; i < cset->nmbchars; ++i)
401
+ {
402
+ char buf[256];
403
+ mbstate_t state;
404
+ memset (&state, '\0', sizeof (state));
405
+ if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1)
406
+ re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
407
+ if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
408
+ {
409
+ if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
410
+ != (size_t) -1)
411
+ re_set_fastmap (fastmap, false, *(unsigned char *) buf);
412
+ }
413
+ }
414
+ }
415
+ }
416
+ #endif /* RE_ENABLE_I18N */
417
+ else if (type == OP_PERIOD
418
+ #ifdef RE_ENABLE_I18N
419
+ || type == OP_UTF8_PERIOD
420
+ #endif /* RE_ENABLE_I18N */
421
+ || type == END_OF_RE)
422
+ {
423
+ memset (fastmap, '\1', sizeof (char) * SBC_MAX);
424
+ if (type == END_OF_RE)
425
+ bufp->can_be_null = 1;
426
+ return;
427
+ }
428
+ }
429
+ }
430
+
431
+ /* Entry point for POSIX code. */
432
+ /* regcomp takes a regular expression as a string and compiles it.
433
+
434
+ PREG is a regex_t *. We do not expect any fields to be initialized,
435
+ since POSIX says we shouldn't. Thus, we set
436
+
437
+ `buffer' to the compiled pattern;
438
+ `used' to the length of the compiled pattern;
439
+ `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
440
+ REG_EXTENDED bit in CFLAGS is set; otherwise, to
441
+ RE_SYNTAX_POSIX_BASIC;
442
+ `newline_anchor' to REG_NEWLINE being set in CFLAGS;
443
+ `fastmap' to an allocated space for the fastmap;
444
+ `fastmap_accurate' to zero;
445
+ `re_nsub' to the number of subexpressions in PATTERN.
446
+
447
+ PATTERN is the address of the pattern string.
448
+
449
+ CFLAGS is a series of bits which affect compilation.
450
+
451
+ If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
452
+ use POSIX basic syntax.
453
+
454
+ If REG_NEWLINE is set, then . and [^...] don't match newline.
455
+ Also, regexec will try a match beginning after every newline.
456
+
457
+ If REG_ICASE is set, then we considers upper- and lowercase
458
+ versions of letters to be equivalent when matching.
459
+
460
+ If REG_NOSUB is set, then when PREG is passed to regexec, that
461
+ routine will report only success or failure, and nothing about the
462
+ registers.
463
+
464
+ It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for
465
+ the return codes and their meanings.) */
466
+
467
+ int
468
+ regcomp (preg, pattern, cflags)
469
+ regex_t *__restrict preg;
470
+ const char *__restrict pattern;
471
+ int cflags;
472
+ {
473
+ reg_errcode_t ret;
474
+ reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
475
+ : RE_SYNTAX_POSIX_BASIC);
476
+
477
+ preg->buffer = NULL;
478
+ preg->allocated = 0;
479
+ preg->used = 0;
480
+
481
+ /* Try to allocate space for the fastmap. */
482
+ preg->fastmap = re_malloc (char, SBC_MAX);
483
+ if (BE (preg->fastmap == NULL, 0))
484
+ return REG_ESPACE;
485
+
486
+ syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
487
+
488
+ /* If REG_NEWLINE is set, newlines are treated differently. */
489
+ if (cflags & REG_NEWLINE)
490
+ { /* REG_NEWLINE implies neither . nor [^...] match newline. */
491
+ syntax &= ~RE_DOT_NEWLINE;
492
+ syntax |= RE_HAT_LISTS_NOT_NEWLINE;
493
+ /* It also changes the matching behavior. */
494
+ preg->newline_anchor = 1;
495
+ }
496
+ else
497
+ preg->newline_anchor = 0;
498
+ preg->no_sub = !!(cflags & REG_NOSUB);
499
+ preg->translate = NULL;
500
+
501
+ ret = re_compile_internal (preg, pattern, strlen (pattern), syntax);
502
+
503
+ /* POSIX doesn't distinguish between an unmatched open-group and an
504
+ unmatched close-group: both are REG_EPAREN. */
505
+ if (ret == REG_ERPAREN)
506
+ ret = REG_EPAREN;
507
+
508
+ /* We have already checked preg->fastmap != NULL. */
509
+ if (BE (ret == REG_NOERROR, 1))
510
+ /* Compute the fastmap now, since regexec cannot modify the pattern
511
+ buffer. This function never fails in this implementation. */
512
+ (void) re_compile_fastmap (preg);
513
+ else
514
+ {
515
+ /* Some error occurred while compiling the expression. */
516
+ re_free (preg->fastmap);
517
+ preg->fastmap = NULL;
518
+ }
519
+
520
+ return (int) ret;
521
+ }
522
+ #ifdef _LIBC
523
+ weak_alias (__regcomp, regcomp)
524
+ #endif
525
+
526
+ /* Returns a message corresponding to an error code, ERRCODE, returned
527
+ from either regcomp or regexec. We don't use PREG here. */
528
+
529
+ size_t
530
+ regerror (
531
+ int errcode,
532
+ const regex_t *__restrict preg,
533
+ char *__restrict errbuf,
534
+ size_t errbuf_size)
535
+ {
536
+ const char *msg;
537
+ size_t msg_size;
538
+
539
+ if (BE (errcode < 0
540
+ || errcode >= (int) (sizeof (__re_error_msgid_idx)
541
+ / sizeof (__re_error_msgid_idx[0])), 0))
542
+ /* Only error codes returned by the rest of the code should be passed
543
+ to this routine. If we are given anything else, or if other regex
544
+ code generates an invalid error code, then the program has a bug.
545
+ Dump core so we can fix it. */
546
+ abort ();
547
+
548
+ msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
549
+
550
+ msg_size = strlen (msg) + 1; /* Includes the null. */
551
+
552
+ if (BE (errbuf_size != 0, 1))
553
+ {
554
+ if (BE (msg_size > errbuf_size, 0))
555
+ {
556
+ #if defined HAVE_MEMPCPY || defined _LIBC
557
+ *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
558
+ #else
559
+ memcpy (errbuf, msg, errbuf_size - 1);
560
+ errbuf[errbuf_size - 1] = 0;
561
+ #endif
562
+ }
563
+ else
564
+ memcpy (errbuf, msg, msg_size);
565
+ }
566
+
567
+ return msg_size;
568
+ }
569
+ #ifdef _LIBC
570
+ weak_alias (__regerror, regerror)
571
+ #endif
572
+
573
+
574
+ #ifdef RE_ENABLE_I18N
575
+ /* This static array is used for the map to single-byte characters when
576
+ UTF-8 is used. Otherwise we would allocate memory just to initialize
577
+ it the same all the time. UTF-8 is the preferred encoding so this is
578
+ a worthwhile optimization. */
579
+ static const bitset_t utf8_sb_map =
580
+ {
581
+ /* Set the first 128 bits. */
582
+ [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX
583
+ };
584
+ #endif
585
+
586
+
587
+ static void
588
+ free_dfa_content (re_dfa_t *dfa)
589
+ {
590
+ int i, j;
591
+
592
+ if (dfa->nodes)
593
+ for (i = 0; i < dfa->nodes_len; ++i)
594
+ free_token (dfa->nodes + i);
595
+ re_free (dfa->nexts);
596
+ for (i = 0; i < dfa->nodes_len; ++i)
597
+ {
598
+ if (dfa->eclosures != NULL)
599
+ re_node_set_free (dfa->eclosures + i);
600
+ if (dfa->inveclosures != NULL)
601
+ re_node_set_free (dfa->inveclosures + i);
602
+ if (dfa->edests != NULL)
603
+ re_node_set_free (dfa->edests + i);
604
+ }
605
+ re_free (dfa->edests);
606
+ re_free (dfa->eclosures);
607
+ re_free (dfa->inveclosures);
608
+ re_free (dfa->nodes);
609
+
610
+ if (dfa->state_table)
611
+ for (i = 0; i <= dfa->state_hash_mask; ++i)
612
+ {
613
+ struct re_state_table_entry *entry = dfa->state_table + i;
614
+ for (j = 0; j < entry->num; ++j)
615
+ {
616
+ re_dfastate_t *state = entry->array[j];
617
+ free_state (state);
618
+ }
619
+ re_free (entry->array);
620
+ }
621
+ re_free (dfa->state_table);
622
+ #ifdef RE_ENABLE_I18N
623
+ if (dfa->sb_char != utf8_sb_map)
624
+ re_free (dfa->sb_char);
625
+ #endif
626
+ re_free (dfa->subexp_map);
627
+ #ifdef DEBUG
628
+ re_free (dfa->re_str);
629
+ #endif
630
+
631
+ re_free (dfa);
632
+ }
633
+
634
+
635
+ /* Free dynamically allocated space used by PREG. */
636
+
637
+ void
638
+ regfree (preg)
639
+ regex_t *preg;
640
+ {
641
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
642
+ if (BE (dfa != NULL, 1))
643
+ free_dfa_content (dfa);
644
+ preg->buffer = NULL;
645
+ preg->allocated = 0;
646
+
647
+ re_free (preg->fastmap);
648
+ preg->fastmap = NULL;
649
+
650
+ re_free (preg->translate);
651
+ preg->translate = NULL;
652
+ }
653
+ #ifdef _LIBC
654
+ weak_alias (__regfree, regfree)
655
+ #endif
656
+
657
+ /* Entry points compatible with 4.2 BSD regex library. We don't define
658
+ them unless specifically requested. */
659
+
660
+ #if defined _REGEX_RE_COMP || defined _LIBC
661
+
662
+ /* BSD has one and only one pattern buffer. */
663
+ static struct re_pattern_buffer re_comp_buf;
664
+
665
+ char *
666
+ # ifdef _LIBC
667
+ /* Make these definitions weak in libc, so POSIX programs can redefine
668
+ these names if they don't use our functions, and still use
669
+ regcomp/regexec above without link errors. */
670
+ weak_function
671
+ # endif
672
+ re_comp (s)
673
+ const char *s;
674
+ {
675
+ reg_errcode_t ret;
676
+ char *fastmap;
677
+
678
+ if (!s)
679
+ {
680
+ if (!re_comp_buf.buffer)
681
+ return gettext ("No previous regular expression");
682
+ return 0;
683
+ }
684
+
685
+ if (re_comp_buf.buffer)
686
+ {
687
+ fastmap = re_comp_buf.fastmap;
688
+ re_comp_buf.fastmap = NULL;
689
+ __regfree (&re_comp_buf);
690
+ memset (&re_comp_buf, '\0', sizeof (re_comp_buf));
691
+ re_comp_buf.fastmap = fastmap;
692
+ }
693
+
694
+ if (re_comp_buf.fastmap == NULL)
695
+ {
696
+ re_comp_buf.fastmap = (char *) malloc (SBC_MAX);
697
+ if (re_comp_buf.fastmap == NULL)
698
+ return (char *) gettext (__re_error_msgid
699
+ + __re_error_msgid_idx[(int) REG_ESPACE]);
700
+ }
701
+
702
+ /* Since `re_exec' always passes NULL for the `regs' argument, we
703
+ don't need to initialize the pattern buffer fields which affect it. */
704
+
705
+ /* Match anchors at newlines. */
706
+ re_comp_buf.newline_anchor = 1;
707
+
708
+ ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options);
709
+
710
+ if (!ret)
711
+ return NULL;
712
+
713
+ /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */
714
+ return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
715
+ }
716
+
717
+ #ifdef _LIBC
718
+ libc_freeres_fn (free_mem)
719
+ {
720
+ __regfree (&re_comp_buf);
721
+ }
722
+ #endif
723
+
724
+ #endif /* _REGEX_RE_COMP */
725
+
726
+ /* Internal entry point.
727
+ Compile the regular expression PATTERN, whose length is LENGTH.
728
+ SYNTAX indicate regular expression's syntax. */
729
+
730
+ static reg_errcode_t
731
+ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
732
+ reg_syntax_t syntax)
733
+ {
734
+ reg_errcode_t err = REG_NOERROR;
735
+ re_dfa_t *dfa;
736
+ re_string_t regexp;
737
+
738
+ /* Initialize the pattern buffer. */
739
+ preg->fastmap_accurate = 0;
740
+ preg->syntax = syntax;
741
+ preg->not_bol = preg->not_eol = 0;
742
+ preg->used = 0;
743
+ preg->re_nsub = 0;
744
+ preg->can_be_null = 0;
745
+ preg->regs_allocated = REGS_UNALLOCATED;
746
+
747
+ /* Initialize the dfa. */
748
+ dfa = (re_dfa_t *) preg->buffer;
749
+ if (BE (preg->allocated < sizeof (re_dfa_t), 0))
750
+ {
751
+ /* If zero allocated, but buffer is non-null, try to realloc
752
+ enough space. This loses if buffer's address is bogus, but
753
+ that is the user's responsibility. If ->buffer is NULL this
754
+ is a simple allocation. */
755
+ dfa = re_realloc (preg->buffer, re_dfa_t, 1);
756
+ if (dfa == NULL)
757
+ return REG_ESPACE;
758
+ preg->allocated = sizeof (re_dfa_t);
759
+ preg->buffer = (unsigned char *) dfa;
760
+ }
761
+ preg->used = sizeof (re_dfa_t);
762
+
763
+ err = init_dfa (dfa, length);
764
+ if (BE (err != REG_NOERROR, 0))
765
+ {
766
+ free_dfa_content (dfa);
767
+ preg->buffer = NULL;
768
+ preg->allocated = 0;
769
+ return err;
770
+ }
771
+ #ifdef DEBUG
772
+ /* Note: length+1 will not overflow since it is checked in init_dfa. */
773
+ dfa->re_str = re_malloc (char, length + 1);
774
+ strncpy (dfa->re_str, pattern, length + 1);
775
+ #endif
776
+
777
+ __libc_lock_init (dfa->lock);
778
+
779
+ err = re_string_construct (&regexp, pattern, length, preg->translate,
780
+ syntax & RE_ICASE, dfa);
781
+ if (BE (err != REG_NOERROR, 0))
782
+ {
783
+ re_compile_internal_free_return:
784
+ free_workarea_compile (preg);
785
+ re_string_destruct (&regexp);
786
+ free_dfa_content (dfa);
787
+ preg->buffer = NULL;
788
+ preg->allocated = 0;
789
+ return err;
790
+ }
791
+
792
+ /* Parse the regular expression, and build a structure tree. */
793
+ preg->re_nsub = 0;
794
+ dfa->str_tree = parse (&regexp, preg, syntax, &err);
795
+ if (BE (dfa->str_tree == NULL, 0))
796
+ goto re_compile_internal_free_return;
797
+
798
+ /* Analyze the tree and create the nfa. */
799
+ err = analyze (preg);
800
+ if (BE (err != REG_NOERROR, 0))
801
+ goto re_compile_internal_free_return;
802
+
803
+ #ifdef RE_ENABLE_I18N
804
+ /* If possible, do searching in single byte encoding to speed things up. */
805
+ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL)
806
+ optimize_utf8 (dfa);
807
+ #endif
808
+
809
+ /* Then create the initial state of the dfa. */
810
+ err = create_initial_state (dfa);
811
+
812
+ /* Release work areas. */
813
+ free_workarea_compile (preg);
814
+ re_string_destruct (&regexp);
815
+
816
+ if (BE (err != REG_NOERROR, 0))
817
+ {
818
+ free_dfa_content (dfa);
819
+ preg->buffer = NULL;
820
+ preg->allocated = 0;
821
+ }
822
+
823
+ return err;
824
+ }
825
+
826
+ /* Initialize DFA. We use the length of the regular expression PAT_LEN
827
+ as the initial length of some arrays. */
828
+
829
+ static reg_errcode_t
830
+ init_dfa (re_dfa_t *dfa, size_t pat_len)
831
+ {
832
+ unsigned int table_size;
833
+ #ifndef _LIBC
834
+ char *codeset_name;
835
+ #endif
836
+
837
+ memset (dfa, '\0', sizeof (re_dfa_t));
838
+
839
+ /* Force allocation of str_tree_storage the first time. */
840
+ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
841
+
842
+ /* Avoid overflows. */
843
+ if (pat_len == SIZE_MAX)
844
+ return REG_ESPACE;
845
+
846
+ dfa->nodes_alloc = pat_len + 1;
847
+ dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
848
+
849
+ /* table_size = 2 ^ ceil(log pat_len) */
850
+ for (table_size = 1; ; table_size <<= 1)
851
+ if (table_size > pat_len)
852
+ break;
853
+
854
+ dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
855
+ dfa->state_hash_mask = table_size - 1;
856
+
857
+ dfa->mb_cur_max = MB_CUR_MAX;
858
+ #ifdef _LIBC
859
+ if (dfa->mb_cur_max == 6
860
+ && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0)
861
+ dfa->is_utf8 = 1;
862
+ dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII)
863
+ != 0);
864
+ #else
865
+ # ifdef HAVE_LANGINFO_CODESET
866
+ codeset_name = nl_langinfo (CODESET);
867
+ # else
868
+ codeset_name = getenv ("LC_ALL");
869
+ if (codeset_name == NULL || codeset_name[0] == '\0')
870
+ codeset_name = getenv ("LC_CTYPE");
871
+ if (codeset_name == NULL || codeset_name[0] == '\0')
872
+ codeset_name = getenv ("LANG");
873
+ if (codeset_name == NULL)
874
+ codeset_name = "";
875
+ else if (strchr (codeset_name, '.') != NULL)
876
+ codeset_name = strchr (codeset_name, '.') + 1;
877
+ # endif
878
+
879
+ if (strcasecmp (codeset_name, "UTF-8") == 0
880
+ || strcasecmp (codeset_name, "UTF8") == 0)
881
+ dfa->is_utf8 = 1;
882
+
883
+ /* We check exhaustively in the loop below if this charset is a
884
+ superset of ASCII. */
885
+ dfa->map_notascii = 0;
886
+ #endif
887
+
888
+ #ifdef RE_ENABLE_I18N
889
+ if (dfa->mb_cur_max > 1)
890
+ {
891
+ if (dfa->is_utf8)
892
+ dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map;
893
+ else
894
+ {
895
+ int i, j, ch;
896
+
897
+ dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
898
+ if (BE (dfa->sb_char == NULL, 0))
899
+ return REG_ESPACE;
900
+
901
+ /* Set the bits corresponding to single byte chars. */
902
+ for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
903
+ for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
904
+ {
905
+ wint_t wch = __btowc (ch);
906
+ if (wch != WEOF)
907
+ dfa->sb_char[i] |= (bitset_word_t) 1 << j;
908
+ # ifndef _LIBC
909
+ if (isascii (ch) && wch != ch)
910
+ dfa->map_notascii = 1;
911
+ # endif
912
+ }
913
+ }
914
+ }
915
+ #endif
916
+
917
+ if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
918
+ return REG_ESPACE;
919
+ return REG_NOERROR;
920
+ }
921
+
922
+ /* Initialize WORD_CHAR table, which indicate which character is
923
+ "word". In this case "word" means that it is the word construction
924
+ character used by some operators like "\<", "\>", etc. */
925
+
926
+ static void
927
+ internal_function
928
+ init_word_char (re_dfa_t *dfa)
929
+ {
930
+ int i, j, ch;
931
+ dfa->word_ops_used = 1;
932
+ for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
933
+ for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
934
+ if (isalnum (ch) || ch == '_')
935
+ dfa->word_char[i] |= (bitset_word_t) 1 << j;
936
+ }
937
+
938
+ /* Free the work area which are only used while compiling. */
939
+
940
+ static void
941
+ free_workarea_compile (regex_t *preg)
942
+ {
943
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
944
+ bin_tree_storage_t *storage, *next;
945
+ for (storage = dfa->str_tree_storage; storage; storage = next)
946
+ {
947
+ next = storage->next;
948
+ re_free (storage);
949
+ }
950
+ dfa->str_tree_storage = NULL;
951
+ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
952
+ dfa->str_tree = NULL;
953
+ re_free (dfa->org_indices);
954
+ dfa->org_indices = NULL;
955
+ }
956
+
957
+ /* Create initial states for all contexts. */
958
+
959
+ static reg_errcode_t
960
+ create_initial_state (re_dfa_t *dfa)
961
+ {
962
+ int first, i;
963
+ reg_errcode_t err;
964
+ re_node_set init_nodes;
965
+
966
+ /* Initial states have the epsilon closure of the node which is
967
+ the first node of the regular expression. */
968
+ first = dfa->str_tree->first->node_idx;
969
+ dfa->init_node = first;
970
+ err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
971
+ if (BE (err != REG_NOERROR, 0))
972
+ return err;
973
+
974
+ /* The back-references which are in initial states can epsilon transit,
975
+ since in this case all of the subexpressions can be null.
976
+ Then we add epsilon closures of the nodes which are the next nodes of
977
+ the back-references. */
978
+ if (dfa->nbackref > 0)
979
+ for (i = 0; i < init_nodes.nelem; ++i)
980
+ {
981
+ int node_idx = init_nodes.elems[i];
982
+ re_token_type_t type = dfa->nodes[node_idx].type;
983
+
984
+ int clexp_idx;
985
+ if (type != OP_BACK_REF)
986
+ continue;
987
+ for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx)
988
+ {
989
+ re_token_t *clexp_node;
990
+ clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
991
+ if (clexp_node->type == OP_CLOSE_SUBEXP
992
+ && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
993
+ break;
994
+ }
995
+ if (clexp_idx == init_nodes.nelem)
996
+ continue;
997
+
998
+ if (type == OP_BACK_REF)
999
+ {
1000
+ int dest_idx = dfa->edests[node_idx].elems[0];
1001
+ if (!re_node_set_contains (&init_nodes, dest_idx))
1002
+ {
1003
+ re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx);
1004
+ i = 0;
1005
+ }
1006
+ }
1007
+ }
1008
+
1009
+ /* It must be the first time to invoke acquire_state. */
1010
+ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
1011
+ /* We don't check ERR here, since the initial state must not be NULL. */
1012
+ if (BE (dfa->init_state == NULL, 0))
1013
+ return err;
1014
+ if (dfa->init_state->has_constraint)
1015
+ {
1016
+ dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes,
1017
+ CONTEXT_WORD);
1018
+ dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes,
1019
+ CONTEXT_NEWLINE);
1020
+ dfa->init_state_begbuf = re_acquire_state_context (&err, dfa,
1021
+ &init_nodes,
1022
+ CONTEXT_NEWLINE
1023
+ | CONTEXT_BEGBUF);
1024
+ if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
1025
+ || dfa->init_state_begbuf == NULL, 0))
1026
+ return err;
1027
+ }
1028
+ else
1029
+ dfa->init_state_word = dfa->init_state_nl
1030
+ = dfa->init_state_begbuf = dfa->init_state;
1031
+
1032
+ re_node_set_free (&init_nodes);
1033
+ return REG_NOERROR;
1034
+ }
1035
+
1036
+ #ifdef RE_ENABLE_I18N
1037
+ /* If it is possible to do searching in single byte encoding instead of UTF-8
1038
+ to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change
1039
+ DFA nodes where needed. */
1040
+
1041
+ static void
1042
+ optimize_utf8 (re_dfa_t *dfa)
1043
+ {
1044
+ int node, i, mb_chars = 0, has_period = 0;
1045
+
1046
+ for (node = 0; node < dfa->nodes_len; ++node)
1047
+ switch (dfa->nodes[node].type)
1048
+ {
1049
+ case CHARACTER:
1050
+ if (dfa->nodes[node].opr.c >= 0x80)
1051
+ mb_chars = 1;
1052
+ break;
1053
+ case ANCHOR:
1054
+ switch (dfa->nodes[node].opr.ctx_type)
1055
+ {
1056
+ case LINE_FIRST:
1057
+ case LINE_LAST:
1058
+ case BUF_FIRST:
1059
+ case BUF_LAST:
1060
+ break;
1061
+ default:
1062
+ /* Word anchors etc. cannot be handled. It's okay to test
1063
+ opr.ctx_type since constraints (for all DFA nodes) are
1064
+ created by ORing one or more opr.ctx_type values. */
1065
+ return;
1066
+ }
1067
+ break;
1068
+ case OP_PERIOD:
1069
+ has_period = 1;
1070
+ break;
1071
+ case OP_BACK_REF:
1072
+ case OP_ALT:
1073
+ case END_OF_RE:
1074
+ case OP_DUP_ASTERISK:
1075
+ case OP_OPEN_SUBEXP:
1076
+ case OP_CLOSE_SUBEXP:
1077
+ break;
1078
+ case COMPLEX_BRACKET:
1079
+ return;
1080
+ case SIMPLE_BRACKET:
1081
+ /* Just double check. The non-ASCII range starts at 0x80. */
1082
+ assert (0x80 % BITSET_WORD_BITS == 0);
1083
+ for (i = 0x80 / BITSET_WORD_BITS; i < BITSET_WORDS; ++i)
1084
+ if (dfa->nodes[node].opr.sbcset[i])
1085
+ return;
1086
+ break;
1087
+ default:
1088
+ abort ();
1089
+ }
1090
+
1091
+ if (mb_chars || has_period)
1092
+ for (node = 0; node < dfa->nodes_len; ++node)
1093
+ {
1094
+ if (dfa->nodes[node].type == CHARACTER
1095
+ && dfa->nodes[node].opr.c >= 0x80)
1096
+ dfa->nodes[node].mb_partial = 0;
1097
+ else if (dfa->nodes[node].type == OP_PERIOD)
1098
+ dfa->nodes[node].type = OP_UTF8_PERIOD;
1099
+ }
1100
+
1101
+ /* The search can be in single byte locale. */
1102
+ dfa->mb_cur_max = 1;
1103
+ dfa->is_utf8 = 0;
1104
+ dfa->has_mb_node = dfa->nbackref > 0 || has_period;
1105
+ }
1106
+ #endif
1107
+
1108
+ /* Analyze the structure tree, and calculate "first", "next", "edest",
1109
+ "eclosure", and "inveclosure". */
1110
+
1111
+ static reg_errcode_t
1112
+ analyze (regex_t *preg)
1113
+ {
1114
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
1115
+ reg_errcode_t ret;
1116
+
1117
+ /* Allocate arrays. */
1118
+ dfa->nexts = re_malloc (int, dfa->nodes_alloc);
1119
+ dfa->org_indices = re_malloc (int, dfa->nodes_alloc);
1120
+ dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
1121
+ dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
1122
+ if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
1123
+ || dfa->eclosures == NULL, 0))
1124
+ return REG_ESPACE;
1125
+
1126
+ dfa->subexp_map = re_malloc (int, preg->re_nsub);
1127
+ if (dfa->subexp_map != NULL)
1128
+ {
1129
+ int i;
1130
+ for (i = 0; i < preg->re_nsub; i++)
1131
+ dfa->subexp_map[i] = i;
1132
+ preorder (dfa->str_tree, optimize_subexps, dfa);
1133
+ for (i = 0; i < preg->re_nsub; i++)
1134
+ if (dfa->subexp_map[i] != i)
1135
+ break;
1136
+ if (i == preg->re_nsub)
1137
+ {
1138
+ free (dfa->subexp_map);
1139
+ dfa->subexp_map = NULL;
1140
+ }
1141
+ }
1142
+
1143
+ ret = postorder (dfa->str_tree, lower_subexps, preg);
1144
+ if (BE (ret != REG_NOERROR, 0))
1145
+ return ret;
1146
+ ret = postorder (dfa->str_tree, calc_first, dfa);
1147
+ if (BE (ret != REG_NOERROR, 0))
1148
+ return ret;
1149
+ preorder (dfa->str_tree, calc_next, dfa);
1150
+ ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
1151
+ if (BE (ret != REG_NOERROR, 0))
1152
+ return ret;
1153
+ ret = calc_eclosure (dfa);
1154
+ if (BE (ret != REG_NOERROR, 0))
1155
+ return ret;
1156
+
1157
+ /* We only need this during the prune_impossible_nodes pass in regexec.c;
1158
+ skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */
1159
+ if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match)
1160
+ || dfa->nbackref)
1161
+ {
1162
+ dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
1163
+ if (BE (dfa->inveclosures == NULL, 0))
1164
+ return REG_ESPACE;
1165
+ ret = calc_inveclosure (dfa);
1166
+ }
1167
+
1168
+ return ret;
1169
+ }
1170
+
1171
+ /* Our parse trees are very unbalanced, so we cannot use a stack to
1172
+ implement parse tree visits. Instead, we use parent pointers and
1173
+ some hairy code in these two functions. */
1174
+ static reg_errcode_t
1175
+ postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
1176
+ void *extra)
1177
+ {
1178
+ bin_tree_t *node, *prev;
1179
+
1180
+ for (node = root; ; )
1181
+ {
1182
+ /* Descend down the tree, preferably to the left (or to the right
1183
+ if that's the only child). */
1184
+ while (node->left || node->right)
1185
+ if (node->left)
1186
+ node = node->left;
1187
+ else
1188
+ node = node->right;
1189
+
1190
+ do
1191
+ {
1192
+ reg_errcode_t err = fn (extra, node);
1193
+ if (BE (err != REG_NOERROR, 0))
1194
+ return err;
1195
+ if (node->parent == NULL)
1196
+ return REG_NOERROR;
1197
+ prev = node;
1198
+ node = node->parent;
1199
+ }
1200
+ /* Go up while we have a node that is reached from the right. */
1201
+ while (node->right == prev || node->right == NULL);
1202
+ node = node->right;
1203
+ }
1204
+ }
1205
+
1206
+ static reg_errcode_t
1207
+ preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
1208
+ void *extra)
1209
+ {
1210
+ bin_tree_t *node;
1211
+
1212
+ for (node = root; ; )
1213
+ {
1214
+ reg_errcode_t err = fn (extra, node);
1215
+ if (BE (err != REG_NOERROR, 0))
1216
+ return err;
1217
+
1218
+ /* Go to the left node, or up and to the right. */
1219
+ if (node->left)
1220
+ node = node->left;
1221
+ else
1222
+ {
1223
+ bin_tree_t *prev = NULL;
1224
+ while (node->right == prev || node->right == NULL)
1225
+ {
1226
+ prev = node;
1227
+ node = node->parent;
1228
+ if (!node)
1229
+ return REG_NOERROR;
1230
+ }
1231
+ node = node->right;
1232
+ }
1233
+ }
1234
+ }
1235
+
1236
+ /* Optimization pass: if a SUBEXP is entirely contained, strip it and tell
1237
+ re_search_internal to map the inner one's opr.idx to this one's. Adjust
1238
+ backreferences as well. Requires a preorder visit. */
1239
+ static reg_errcode_t
1240
+ optimize_subexps (void *extra, bin_tree_t *node)
1241
+ {
1242
+ re_dfa_t *dfa = (re_dfa_t *) extra;
1243
+
1244
+ if (node->token.type == OP_BACK_REF && dfa->subexp_map)
1245
+ {
1246
+ int idx = node->token.opr.idx;
1247
+ node->token.opr.idx = dfa->subexp_map[idx];
1248
+ dfa->used_bkref_map |= 1 << node->token.opr.idx;
1249
+ }
1250
+
1251
+ else if (node->token.type == SUBEXP
1252
+ && node->left && node->left->token.type == SUBEXP)
1253
+ {
1254
+ int other_idx = node->left->token.opr.idx;
1255
+
1256
+ node->left = node->left->left;
1257
+ if (node->left)
1258
+ node->left->parent = node;
1259
+
1260
+ dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx];
1261
+ if (other_idx < BITSET_WORD_BITS)
1262
+ dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx);
1263
+ }
1264
+
1265
+ return REG_NOERROR;
1266
+ }
1267
+
1268
+ /* Lowering pass: Turn each SUBEXP node into the appropriate concatenation
1269
+ of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */
1270
+ static reg_errcode_t
1271
+ lower_subexps (void *extra, bin_tree_t *node)
1272
+ {
1273
+ regex_t *preg = (regex_t *) extra;
1274
+ reg_errcode_t err = REG_NOERROR;
1275
+
1276
+ if (node->left && node->left->token.type == SUBEXP)
1277
+ {
1278
+ node->left = lower_subexp (&err, preg, node->left);
1279
+ if (node->left)
1280
+ node->left->parent = node;
1281
+ }
1282
+ if (node->right && node->right->token.type == SUBEXP)
1283
+ {
1284
+ node->right = lower_subexp (&err, preg, node->right);
1285
+ if (node->right)
1286
+ node->right->parent = node;
1287
+ }
1288
+
1289
+ return err;
1290
+ }
1291
+
1292
+ static bin_tree_t *
1293
+ lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
1294
+ {
1295
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
1296
+ bin_tree_t *body = node->left;
1297
+ bin_tree_t *op, *cls, *tree1, *tree;
1298
+
1299
+ if (preg->no_sub
1300
+ /* We do not optimize empty subexpressions, because otherwise we may
1301
+ have bad CONCAT nodes with NULL children. This is obviously not
1302
+ very common, so we do not lose much. An example that triggers
1303
+ this case is the sed "script" /\(\)/x. */
1304
+ && node->left != NULL
1305
+ && (node->token.opr.idx >= BITSET_WORD_BITS
1306
+ || !(dfa->used_bkref_map
1307
+ & ((bitset_word_t) 1 << node->token.opr.idx))))
1308
+ return node->left;
1309
+
1310
+ /* Convert the SUBEXP node to the concatenation of an
1311
+ OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */
1312
+ op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP);
1313
+ cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
1314
+ tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
1315
+ tree = create_tree (dfa, op, tree1, CONCAT);
1316
+ if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
1317
+ {
1318
+ *err = REG_ESPACE;
1319
+ return NULL;
1320
+ }
1321
+
1322
+ op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx;
1323
+ op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp;
1324
+ return tree;
1325
+ }
1326
+
1327
+ /* Pass 1 in building the NFA: compute FIRST and create unlinked automaton
1328
+ nodes. Requires a postorder visit. */
1329
+ static reg_errcode_t
1330
+ calc_first (void *extra, bin_tree_t *node)
1331
+ {
1332
+ re_dfa_t *dfa = (re_dfa_t *) extra;
1333
+ if (node->token.type == CONCAT)
1334
+ {
1335
+ node->first = node->left->first;
1336
+ node->node_idx = node->left->node_idx;
1337
+ }
1338
+ else
1339
+ {
1340
+ node->first = node;
1341
+ node->node_idx = re_dfa_add_node (dfa, node->token);
1342
+ if (BE (node->node_idx == -1, 0))
1343
+ return REG_ESPACE;
1344
+ if (node->token.type == ANCHOR)
1345
+ dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
1346
+ }
1347
+ return REG_NOERROR;
1348
+ }
1349
+
1350
+ /* Pass 2: compute NEXT on the tree. Preorder visit. */
1351
+ static reg_errcode_t
1352
+ calc_next (void *extra, bin_tree_t *node)
1353
+ {
1354
+ switch (node->token.type)
1355
+ {
1356
+ case OP_DUP_ASTERISK:
1357
+ node->left->next = node;
1358
+ break;
1359
+ case CONCAT:
1360
+ node->left->next = node->right->first;
1361
+ node->right->next = node->next;
1362
+ break;
1363
+ default:
1364
+ if (node->left)
1365
+ node->left->next = node->next;
1366
+ if (node->right)
1367
+ node->right->next = node->next;
1368
+ break;
1369
+ }
1370
+ return REG_NOERROR;
1371
+ }
1372
+
1373
+ /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */
1374
+ static reg_errcode_t
1375
+ link_nfa_nodes (void *extra, bin_tree_t *node)
1376
+ {
1377
+ re_dfa_t *dfa = (re_dfa_t *) extra;
1378
+ int idx = node->node_idx;
1379
+ reg_errcode_t err = REG_NOERROR;
1380
+
1381
+ switch (node->token.type)
1382
+ {
1383
+ case CONCAT:
1384
+ break;
1385
+
1386
+ case END_OF_RE:
1387
+ assert (node->next == NULL);
1388
+ break;
1389
+
1390
+ case OP_DUP_ASTERISK:
1391
+ case OP_ALT:
1392
+ {
1393
+ int left, right;
1394
+ dfa->has_plural_match = 1;
1395
+ if (node->left != NULL)
1396
+ left = node->left->first->node_idx;
1397
+ else
1398
+ left = node->next->node_idx;
1399
+ if (node->right != NULL)
1400
+ right = node->right->first->node_idx;
1401
+ else
1402
+ right = node->next->node_idx;
1403
+ assert (left > -1);
1404
+ assert (right > -1);
1405
+ err = re_node_set_init_2 (dfa->edests + idx, left, right);
1406
+ }
1407
+ break;
1408
+
1409
+ case ANCHOR:
1410
+ case OP_OPEN_SUBEXP:
1411
+ case OP_CLOSE_SUBEXP:
1412
+ err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx);
1413
+ break;
1414
+
1415
+ case OP_BACK_REF:
1416
+ dfa->nexts[idx] = node->next->node_idx;
1417
+ if (node->token.type == OP_BACK_REF)
1418
+ re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
1419
+ break;
1420
+
1421
+ default:
1422
+ assert (!IS_EPSILON_NODE (node->token.type));
1423
+ dfa->nexts[idx] = node->next->node_idx;
1424
+ break;
1425
+ }
1426
+
1427
+ return err;
1428
+ }
1429
+
1430
+ /* Duplicate the epsilon closure of the node ROOT_NODE.
1431
+ Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
1432
+ to their own constraint. */
1433
+
1434
+ static reg_errcode_t
1435
+ internal_function
1436
+ duplicate_node_closure (re_dfa_t *dfa, int top_org_node, int top_clone_node,
1437
+ int root_node, unsigned int init_constraint)
1438
+ {
1439
+ int org_node, clone_node, ret;
1440
+ unsigned int constraint = init_constraint;
1441
+ for (org_node = top_org_node, clone_node = top_clone_node;;)
1442
+ {
1443
+ int org_dest, clone_dest;
1444
+ if (dfa->nodes[org_node].type == OP_BACK_REF)
1445
+ {
1446
+ /* If the back reference epsilon-transit, its destination must
1447
+ also have the constraint. Then duplicate the epsilon closure
1448
+ of the destination of the back reference, and store it in
1449
+ edests of the back reference. */
1450
+ org_dest = dfa->nexts[org_node];
1451
+ re_node_set_empty (dfa->edests + clone_node);
1452
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
1453
+ if (BE (clone_dest == -1, 0))
1454
+ return REG_ESPACE;
1455
+ dfa->nexts[clone_node] = dfa->nexts[org_node];
1456
+ ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
1457
+ if (BE (ret < 0, 0))
1458
+ return REG_ESPACE;
1459
+ }
1460
+ else if (dfa->edests[org_node].nelem == 0)
1461
+ {
1462
+ /* In case of the node can't epsilon-transit, don't duplicate the
1463
+ destination and store the original destination as the
1464
+ destination of the node. */
1465
+ dfa->nexts[clone_node] = dfa->nexts[org_node];
1466
+ break;
1467
+ }
1468
+ else if (dfa->edests[org_node].nelem == 1)
1469
+ {
1470
+ /* In case of the node can epsilon-transit, and it has only one
1471
+ destination. */
1472
+ org_dest = dfa->edests[org_node].elems[0];
1473
+ re_node_set_empty (dfa->edests + clone_node);
1474
+ /* If the node is root_node itself, it means the epsilon clsoure
1475
+ has a loop. Then tie it to the destination of the root_node. */
1476
+ if (org_node == root_node && clone_node != org_node)
1477
+ {
1478
+ ret = re_node_set_insert (dfa->edests + clone_node, org_dest);
1479
+ if (BE (ret < 0, 0))
1480
+ return REG_ESPACE;
1481
+ break;
1482
+ }
1483
+ /* In case of the node has another constraint, add it. */
1484
+ constraint |= dfa->nodes[org_node].constraint;
1485
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
1486
+ if (BE (clone_dest == -1, 0))
1487
+ return REG_ESPACE;
1488
+ ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
1489
+ if (BE (ret < 0, 0))
1490
+ return REG_ESPACE;
1491
+ }
1492
+ else /* dfa->edests[org_node].nelem == 2 */
1493
+ {
1494
+ /* In case of the node can epsilon-transit, and it has two
1495
+ destinations. In the bin_tree_t and DFA, that's '|' and '*'. */
1496
+ org_dest = dfa->edests[org_node].elems[0];
1497
+ re_node_set_empty (dfa->edests + clone_node);
1498
+ /* Search for a duplicated node which satisfies the constraint. */
1499
+ clone_dest = search_duplicated_node (dfa, org_dest, constraint);
1500
+ if (clone_dest == -1)
1501
+ {
1502
+ /* There is no such duplicated node, create a new one. */
1503
+ reg_errcode_t err;
1504
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
1505
+ if (BE (clone_dest == -1, 0))
1506
+ return REG_ESPACE;
1507
+ ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
1508
+ if (BE (ret < 0, 0))
1509
+ return REG_ESPACE;
1510
+ err = duplicate_node_closure (dfa, org_dest, clone_dest,
1511
+ root_node, constraint);
1512
+ if (BE (err != REG_NOERROR, 0))
1513
+ return err;
1514
+ }
1515
+ else
1516
+ {
1517
+ /* There is a duplicated node which satisfies the constraint,
1518
+ use it to avoid infinite loop. */
1519
+ ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
1520
+ if (BE (ret < 0, 0))
1521
+ return REG_ESPACE;
1522
+ }
1523
+
1524
+ org_dest = dfa->edests[org_node].elems[1];
1525
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
1526
+ if (BE (clone_dest == -1, 0))
1527
+ return REG_ESPACE;
1528
+ ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
1529
+ if (BE (ret < 0, 0))
1530
+ return REG_ESPACE;
1531
+ }
1532
+ org_node = org_dest;
1533
+ clone_node = clone_dest;
1534
+ }
1535
+ return REG_NOERROR;
1536
+ }
1537
+
1538
+ /* Search for a node which is duplicated from the node ORG_NODE, and
1539
+ satisfies the constraint CONSTRAINT. */
1540
+
1541
+ static int
1542
+ search_duplicated_node (const re_dfa_t *dfa, int org_node,
1543
+ unsigned int constraint)
1544
+ {
1545
+ int idx;
1546
+ for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
1547
+ {
1548
+ if (org_node == dfa->org_indices[idx]
1549
+ && constraint == dfa->nodes[idx].constraint)
1550
+ return idx; /* Found. */
1551
+ }
1552
+ return -1; /* Not found. */
1553
+ }
1554
+
1555
+ /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT.
1556
+ Return the index of the new node, or -1 if insufficient storage is
1557
+ available. */
1558
+
1559
+ static int
1560
+ duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint)
1561
+ {
1562
+ int dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
1563
+ if (BE (dup_idx != -1, 1))
1564
+ {
1565
+ dfa->nodes[dup_idx].constraint = constraint;
1566
+ dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
1567
+ dfa->nodes[dup_idx].duplicated = 1;
1568
+
1569
+ /* Store the index of the original node. */
1570
+ dfa->org_indices[dup_idx] = org_idx;
1571
+ }
1572
+ return dup_idx;
1573
+ }
1574
+
1575
+ static reg_errcode_t
1576
+ calc_inveclosure (re_dfa_t *dfa)
1577
+ {
1578
+ int src, idx, ret;
1579
+ for (idx = 0; idx < dfa->nodes_len; ++idx)
1580
+ re_node_set_init_empty (dfa->inveclosures + idx);
1581
+
1582
+ for (src = 0; src < dfa->nodes_len; ++src)
1583
+ {
1584
+ int *elems = dfa->eclosures[src].elems;
1585
+ for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
1586
+ {
1587
+ ret = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
1588
+ if (BE (ret == -1, 0))
1589
+ return REG_ESPACE;
1590
+ }
1591
+ }
1592
+
1593
+ return REG_NOERROR;
1594
+ }
1595
+
1596
+ /* Calculate "eclosure" for all the node in DFA. */
1597
+
1598
+ static reg_errcode_t
1599
+ calc_eclosure (re_dfa_t *dfa)
1600
+ {
1601
+ int node_idx, incomplete;
1602
+ #ifdef DEBUG
1603
+ assert (dfa->nodes_len > 0);
1604
+ #endif
1605
+ incomplete = 0;
1606
+ /* For each nodes, calculate epsilon closure. */
1607
+ for (node_idx = 0; ; ++node_idx)
1608
+ {
1609
+ reg_errcode_t err;
1610
+ re_node_set eclosure_elem;
1611
+ if (node_idx == dfa->nodes_len)
1612
+ {
1613
+ if (!incomplete)
1614
+ break;
1615
+ incomplete = 0;
1616
+ node_idx = 0;
1617
+ }
1618
+
1619
+ #ifdef DEBUG
1620
+ assert (dfa->eclosures[node_idx].nelem != -1);
1621
+ #endif
1622
+
1623
+ /* If we have already calculated, skip it. */
1624
+ if (dfa->eclosures[node_idx].nelem != 0)
1625
+ continue;
1626
+ /* Calculate epsilon closure of `node_idx'. */
1627
+ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, 1);
1628
+ if (BE (err != REG_NOERROR, 0))
1629
+ return err;
1630
+
1631
+ if (dfa->eclosures[node_idx].nelem == 0)
1632
+ {
1633
+ incomplete = 1;
1634
+ re_node_set_free (&eclosure_elem);
1635
+ }
1636
+ }
1637
+ return REG_NOERROR;
1638
+ }
1639
+
1640
+ /* Calculate epsilon closure of NODE. */
1641
+
1642
+ static reg_errcode_t
1643
+ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, int node, int root)
1644
+ {
1645
+ reg_errcode_t err;
1646
+ int i, incomplete;
1647
+ re_node_set eclosure;
1648
+ incomplete = 0;
1649
+ err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
1650
+ if (BE (err != REG_NOERROR, 0))
1651
+ return err;
1652
+
1653
+ /* This indicates that we are calculating this node now.
1654
+ We reference this value to avoid infinite loop. */
1655
+ dfa->eclosures[node].nelem = -1;
1656
+
1657
+ /* If the current node has constraints, duplicate all nodes
1658
+ since they must inherit the constraints. */
1659
+ if (dfa->nodes[node].constraint
1660
+ && dfa->edests[node].nelem
1661
+ && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
1662
+ {
1663
+ err = duplicate_node_closure (dfa, node, node, node,
1664
+ dfa->nodes[node].constraint);
1665
+ if (BE (err != REG_NOERROR, 0))
1666
+ return err;
1667
+ }
1668
+
1669
+ /* Expand each epsilon destination nodes. */
1670
+ if (IS_EPSILON_NODE(dfa->nodes[node].type))
1671
+ for (i = 0; i < dfa->edests[node].nelem; ++i)
1672
+ {
1673
+ re_node_set eclosure_elem;
1674
+ int edest = dfa->edests[node].elems[i];
1675
+ /* If calculating the epsilon closure of `edest' is in progress,
1676
+ return intermediate result. */
1677
+ if (dfa->eclosures[edest].nelem == -1)
1678
+ {
1679
+ incomplete = 1;
1680
+ continue;
1681
+ }
1682
+ /* If we haven't calculated the epsilon closure of `edest' yet,
1683
+ calculate now. Otherwise use calculated epsilon closure. */
1684
+ if (dfa->eclosures[edest].nelem == 0)
1685
+ {
1686
+ err = calc_eclosure_iter (&eclosure_elem, dfa, edest, 0);
1687
+ if (BE (err != REG_NOERROR, 0))
1688
+ return err;
1689
+ }
1690
+ else
1691
+ eclosure_elem = dfa->eclosures[edest];
1692
+ /* Merge the epsilon closure of `edest'. */
1693
+ re_node_set_merge (&eclosure, &eclosure_elem);
1694
+ /* If the epsilon closure of `edest' is incomplete,
1695
+ the epsilon closure of this node is also incomplete. */
1696
+ if (dfa->eclosures[edest].nelem == 0)
1697
+ {
1698
+ incomplete = 1;
1699
+ re_node_set_free (&eclosure_elem);
1700
+ }
1701
+ }
1702
+
1703
+ /* Epsilon closures include itself. */
1704
+ re_node_set_insert (&eclosure, node);
1705
+ if (incomplete && !root)
1706
+ dfa->eclosures[node].nelem = 0;
1707
+ else
1708
+ dfa->eclosures[node] = eclosure;
1709
+ *new_set = eclosure;
1710
+ return REG_NOERROR;
1711
+ }
1712
+
1713
+ /* Functions for token which are used in the parser. */
1714
+
1715
+ /* Fetch a token from INPUT.
1716
+ We must not use this function inside bracket expressions. */
1717
+
1718
+ static void
1719
+ internal_function
1720
+ fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)
1721
+ {
1722
+ re_string_skip_bytes (input, peek_token (result, input, syntax));
1723
+ }
1724
+
1725
+ /* Peek a token from INPUT, and return the length of the token.
1726
+ We must not use this function inside bracket expressions. */
1727
+
1728
+ static int
1729
+ internal_function
1730
+ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
1731
+ {
1732
+ unsigned char c;
1733
+
1734
+ if (re_string_eoi (input))
1735
+ {
1736
+ token->type = END_OF_RE;
1737
+ return 0;
1738
+ }
1739
+
1740
+ c = re_string_peek_byte (input, 0);
1741
+ token->opr.c = c;
1742
+
1743
+ token->word_char = 0;
1744
+ #ifdef RE_ENABLE_I18N
1745
+ token->mb_partial = 0;
1746
+ if (input->mb_cur_max > 1 &&
1747
+ !re_string_first_byte (input, re_string_cur_idx (input)))
1748
+ {
1749
+ token->type = CHARACTER;
1750
+ token->mb_partial = 1;
1751
+ return 1;
1752
+ }
1753
+ #endif
1754
+ if (c == '\\')
1755
+ {
1756
+ unsigned char c2;
1757
+ if (re_string_cur_idx (input) + 1 >= re_string_length (input))
1758
+ {
1759
+ token->type = BACK_SLASH;
1760
+ return 1;
1761
+ }
1762
+
1763
+ c2 = re_string_peek_byte_case (input, 1);
1764
+ token->opr.c = c2;
1765
+ token->type = CHARACTER;
1766
+ #ifdef RE_ENABLE_I18N
1767
+ if (input->mb_cur_max > 1)
1768
+ {
1769
+ wint_t wc = re_string_wchar_at (input,
1770
+ re_string_cur_idx (input) + 1);
1771
+ token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
1772
+ }
1773
+ else
1774
+ #endif
1775
+ token->word_char = IS_WORD_CHAR (c2) != 0;
1776
+
1777
+ switch (c2)
1778
+ {
1779
+ case '|':
1780
+ if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR))
1781
+ token->type = OP_ALT;
1782
+ break;
1783
+ case '1': case '2': case '3': case '4': case '5':
1784
+ case '6': case '7': case '8': case '9':
1785
+ if (!(syntax & RE_NO_BK_REFS))
1786
+ {
1787
+ token->type = OP_BACK_REF;
1788
+ token->opr.idx = c2 - '1';
1789
+ }
1790
+ break;
1791
+ case '<':
1792
+ if (!(syntax & RE_NO_GNU_OPS))
1793
+ {
1794
+ token->type = ANCHOR;
1795
+ token->opr.ctx_type = WORD_FIRST;
1796
+ }
1797
+ break;
1798
+ case '>':
1799
+ if (!(syntax & RE_NO_GNU_OPS))
1800
+ {
1801
+ token->type = ANCHOR;
1802
+ token->opr.ctx_type = WORD_LAST;
1803
+ }
1804
+ break;
1805
+ case 'b':
1806
+ if (!(syntax & RE_NO_GNU_OPS))
1807
+ {
1808
+ token->type = ANCHOR;
1809
+ token->opr.ctx_type = WORD_DELIM;
1810
+ }
1811
+ break;
1812
+ case 'B':
1813
+ if (!(syntax & RE_NO_GNU_OPS))
1814
+ {
1815
+ token->type = ANCHOR;
1816
+ token->opr.ctx_type = NOT_WORD_DELIM;
1817
+ }
1818
+ break;
1819
+ case 'w':
1820
+ if (!(syntax & RE_NO_GNU_OPS))
1821
+ token->type = OP_WORD;
1822
+ break;
1823
+ case 'W':
1824
+ if (!(syntax & RE_NO_GNU_OPS))
1825
+ token->type = OP_NOTWORD;
1826
+ break;
1827
+ case 's':
1828
+ if (!(syntax & RE_NO_GNU_OPS))
1829
+ token->type = OP_SPACE;
1830
+ break;
1831
+ case 'S':
1832
+ if (!(syntax & RE_NO_GNU_OPS))
1833
+ token->type = OP_NOTSPACE;
1834
+ break;
1835
+ case '`':
1836
+ if (!(syntax & RE_NO_GNU_OPS))
1837
+ {
1838
+ token->type = ANCHOR;
1839
+ token->opr.ctx_type = BUF_FIRST;
1840
+ }
1841
+ break;
1842
+ case '\'':
1843
+ if (!(syntax & RE_NO_GNU_OPS))
1844
+ {
1845
+ token->type = ANCHOR;
1846
+ token->opr.ctx_type = BUF_LAST;
1847
+ }
1848
+ break;
1849
+ case '(':
1850
+ if (!(syntax & RE_NO_BK_PARENS))
1851
+ token->type = OP_OPEN_SUBEXP;
1852
+ break;
1853
+ case ')':
1854
+ if (!(syntax & RE_NO_BK_PARENS))
1855
+ token->type = OP_CLOSE_SUBEXP;
1856
+ break;
1857
+ case '+':
1858
+ if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
1859
+ token->type = OP_DUP_PLUS;
1860
+ break;
1861
+ case '?':
1862
+ if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
1863
+ token->type = OP_DUP_QUESTION;
1864
+ break;
1865
+ case '{':
1866
+ if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
1867
+ token->type = OP_OPEN_DUP_NUM;
1868
+ break;
1869
+ case '}':
1870
+ if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
1871
+ token->type = OP_CLOSE_DUP_NUM;
1872
+ break;
1873
+ default:
1874
+ break;
1875
+ }
1876
+ return 2;
1877
+ }
1878
+
1879
+ token->type = CHARACTER;
1880
+ #ifdef RE_ENABLE_I18N
1881
+ if (input->mb_cur_max > 1)
1882
+ {
1883
+ wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
1884
+ token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
1885
+ }
1886
+ else
1887
+ #endif
1888
+ token->word_char = IS_WORD_CHAR (token->opr.c);
1889
+
1890
+ switch (c)
1891
+ {
1892
+ case '\n':
1893
+ if (syntax & RE_NEWLINE_ALT)
1894
+ token->type = OP_ALT;
1895
+ break;
1896
+ case '|':
1897
+ if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR))
1898
+ token->type = OP_ALT;
1899
+ break;
1900
+ case '*':
1901
+ token->type = OP_DUP_ASTERISK;
1902
+ break;
1903
+ case '+':
1904
+ if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
1905
+ token->type = OP_DUP_PLUS;
1906
+ break;
1907
+ case '?':
1908
+ if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
1909
+ token->type = OP_DUP_QUESTION;
1910
+ break;
1911
+ case '{':
1912
+ if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
1913
+ token->type = OP_OPEN_DUP_NUM;
1914
+ break;
1915
+ case '}':
1916
+ if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
1917
+ token->type = OP_CLOSE_DUP_NUM;
1918
+ break;
1919
+ case '(':
1920
+ if (syntax & RE_NO_BK_PARENS)
1921
+ token->type = OP_OPEN_SUBEXP;
1922
+ break;
1923
+ case ')':
1924
+ if (syntax & RE_NO_BK_PARENS)
1925
+ token->type = OP_CLOSE_SUBEXP;
1926
+ break;
1927
+ case '[':
1928
+ token->type = OP_OPEN_BRACKET;
1929
+ break;
1930
+ case '.':
1931
+ token->type = OP_PERIOD;
1932
+ break;
1933
+ case '^':
1934
+ if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
1935
+ re_string_cur_idx (input) != 0)
1936
+ {
1937
+ char prev = re_string_peek_byte (input, -1);
1938
+ if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
1939
+ break;
1940
+ }
1941
+ token->type = ANCHOR;
1942
+ token->opr.ctx_type = LINE_FIRST;
1943
+ break;
1944
+ case '$':
1945
+ if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
1946
+ re_string_cur_idx (input) + 1 != re_string_length (input))
1947
+ {
1948
+ re_token_t next;
1949
+ re_string_skip_bytes (input, 1);
1950
+ peek_token (&next, input, syntax);
1951
+ re_string_skip_bytes (input, -1);
1952
+ if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP)
1953
+ break;
1954
+ }
1955
+ token->type = ANCHOR;
1956
+ token->opr.ctx_type = LINE_LAST;
1957
+ break;
1958
+ default:
1959
+ break;
1960
+ }
1961
+ return 1;
1962
+ }
1963
+
1964
+ /* Peek a token from INPUT, and return the length of the token.
1965
+ We must not use this function out of bracket expressions. */
1966
+
1967
+ static int
1968
+ internal_function
1969
+ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
1970
+ {
1971
+ unsigned char c;
1972
+ if (re_string_eoi (input))
1973
+ {
1974
+ token->type = END_OF_RE;
1975
+ return 0;
1976
+ }
1977
+ c = re_string_peek_byte (input, 0);
1978
+ token->opr.c = c;
1979
+
1980
+ #ifdef RE_ENABLE_I18N
1981
+ if (input->mb_cur_max > 1 &&
1982
+ !re_string_first_byte (input, re_string_cur_idx (input)))
1983
+ {
1984
+ token->type = CHARACTER;
1985
+ return 1;
1986
+ }
1987
+ #endif /* RE_ENABLE_I18N */
1988
+
1989
+ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS)
1990
+ && re_string_cur_idx (input) + 1 < re_string_length (input))
1991
+ {
1992
+ /* In this case, '\' escape a character. */
1993
+ unsigned char c2;
1994
+ re_string_skip_bytes (input, 1);
1995
+ c2 = re_string_peek_byte (input, 0);
1996
+ token->opr.c = c2;
1997
+ token->type = CHARACTER;
1998
+ return 1;
1999
+ }
2000
+ if (c == '[') /* '[' is a special char in a bracket exps. */
2001
+ {
2002
+ unsigned char c2;
2003
+ int token_len;
2004
+ if (re_string_cur_idx (input) + 1 < re_string_length (input))
2005
+ c2 = re_string_peek_byte (input, 1);
2006
+ else
2007
+ c2 = 0;
2008
+ token->opr.c = c2;
2009
+ token_len = 2;
2010
+ switch (c2)
2011
+ {
2012
+ case '.':
2013
+ token->type = OP_OPEN_COLL_ELEM;
2014
+ break;
2015
+ case '=':
2016
+ token->type = OP_OPEN_EQUIV_CLASS;
2017
+ break;
2018
+ case ':':
2019
+ if (syntax & RE_CHAR_CLASSES)
2020
+ {
2021
+ token->type = OP_OPEN_CHAR_CLASS;
2022
+ break;
2023
+ }
2024
+ /* else fall through. */
2025
+ default:
2026
+ token->type = CHARACTER;
2027
+ token->opr.c = c;
2028
+ token_len = 1;
2029
+ break;
2030
+ }
2031
+ return token_len;
2032
+ }
2033
+ switch (c)
2034
+ {
2035
+ case '-':
2036
+ token->type = OP_CHARSET_RANGE;
2037
+ break;
2038
+ case ']':
2039
+ token->type = OP_CLOSE_BRACKET;
2040
+ break;
2041
+ case '^':
2042
+ token->type = OP_NON_MATCH_LIST;
2043
+ break;
2044
+ default:
2045
+ token->type = CHARACTER;
2046
+ }
2047
+ return 1;
2048
+ }
2049
+
2050
+ /* Functions for parser. */
2051
+
2052
+ /* Entry point of the parser.
2053
+ Parse the regular expression REGEXP and return the structure tree.
2054
+ If an error is occurred, ERR is set by error code, and return NULL.
2055
+ This function build the following tree, from regular expression <reg_exp>:
2056
+ CAT
2057
+ / \
2058
+ / \
2059
+ <reg_exp> EOR
2060
+
2061
+ CAT means concatenation.
2062
+ EOR means end of regular expression. */
2063
+
2064
+ static bin_tree_t *
2065
+ parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
2066
+ reg_errcode_t *err)
2067
+ {
2068
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
2069
+ bin_tree_t *tree, *eor, *root;
2070
+ re_token_t current_token;
2071
+ dfa->syntax = syntax;
2072
+ fetch_token (&current_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
2073
+ tree = parse_reg_exp (regexp, preg, &current_token, syntax, 0, err);
2074
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2075
+ return NULL;
2076
+ eor = create_tree (dfa, NULL, NULL, END_OF_RE);
2077
+ if (tree != NULL)
2078
+ root = create_tree (dfa, tree, eor, CONCAT);
2079
+ else
2080
+ root = eor;
2081
+ if (BE (eor == NULL || root == NULL, 0))
2082
+ {
2083
+ *err = REG_ESPACE;
2084
+ return NULL;
2085
+ }
2086
+ return root;
2087
+ }
2088
+
2089
+ /* This function build the following tree, from regular expression
2090
+ <branch1>|<branch2>:
2091
+ ALT
2092
+ / \
2093
+ / \
2094
+ <branch1> <branch2>
2095
+
2096
+ ALT means alternative, which represents the operator `|'. */
2097
+
2098
+ static bin_tree_t *
2099
+ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
2100
+ reg_syntax_t syntax, int nest, reg_errcode_t *err)
2101
+ {
2102
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
2103
+ bin_tree_t *tree, *branch = NULL;
2104
+ tree = parse_branch (regexp, preg, token, syntax, nest, err);
2105
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2106
+ return NULL;
2107
+
2108
+ while (token->type == OP_ALT)
2109
+ {
2110
+ fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
2111
+ if (token->type != OP_ALT && token->type != END_OF_RE
2112
+ && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
2113
+ {
2114
+ branch = parse_branch (regexp, preg, token, syntax, nest, err);
2115
+ if (BE (*err != REG_NOERROR && branch == NULL, 0))
2116
+ return NULL;
2117
+ }
2118
+ else
2119
+ branch = NULL;
2120
+ tree = create_tree (dfa, tree, branch, OP_ALT);
2121
+ if (BE (tree == NULL, 0))
2122
+ {
2123
+ *err = REG_ESPACE;
2124
+ return NULL;
2125
+ }
2126
+ }
2127
+ return tree;
2128
+ }
2129
+
2130
+ /* This function build the following tree, from regular expression
2131
+ <exp1><exp2>:
2132
+ CAT
2133
+ / \
2134
+ / \
2135
+ <exp1> <exp2>
2136
+
2137
+ CAT means concatenation. */
2138
+
2139
+ static bin_tree_t *
2140
+ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
2141
+ reg_syntax_t syntax, int nest, reg_errcode_t *err)
2142
+ {
2143
+ bin_tree_t *tree, *exp;
2144
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
2145
+ tree = parse_expression (regexp, preg, token, syntax, nest, err);
2146
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2147
+ return NULL;
2148
+
2149
+ while (token->type != OP_ALT && token->type != END_OF_RE
2150
+ && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
2151
+ {
2152
+ exp = parse_expression (regexp, preg, token, syntax, nest, err);
2153
+ if (BE (*err != REG_NOERROR && exp == NULL, 0))
2154
+ {
2155
+ return NULL;
2156
+ }
2157
+ if (tree != NULL && exp != NULL)
2158
+ {
2159
+ tree = create_tree (dfa, tree, exp, CONCAT);
2160
+ if (tree == NULL)
2161
+ {
2162
+ *err = REG_ESPACE;
2163
+ return NULL;
2164
+ }
2165
+ }
2166
+ else if (tree == NULL)
2167
+ tree = exp;
2168
+ /* Otherwise exp == NULL, we don't need to create new tree. */
2169
+ }
2170
+ return tree;
2171
+ }
2172
+
2173
+ /* This function build the following tree, from regular expression a*:
2174
+ *
2175
+ |
2176
+ a
2177
+ */
2178
+
2179
+ static bin_tree_t *
2180
+ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
2181
+ reg_syntax_t syntax, int nest, reg_errcode_t *err)
2182
+ {
2183
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
2184
+ bin_tree_t *tree;
2185
+ switch (token->type)
2186
+ {
2187
+ case CHARACTER:
2188
+ tree = create_token_tree (dfa, NULL, NULL, token);
2189
+ if (BE (tree == NULL, 0))
2190
+ {
2191
+ *err = REG_ESPACE;
2192
+ return NULL;
2193
+ }
2194
+ #ifdef RE_ENABLE_I18N
2195
+ if (dfa->mb_cur_max > 1)
2196
+ {
2197
+ while (!re_string_eoi (regexp)
2198
+ && !re_string_first_byte (regexp, re_string_cur_idx (regexp)))
2199
+ {
2200
+ bin_tree_t *mbc_remain;
2201
+ fetch_token (token, regexp, syntax);
2202
+ mbc_remain = create_token_tree (dfa, NULL, NULL, token);
2203
+ tree = create_tree (dfa, tree, mbc_remain, CONCAT);
2204
+ if (BE (mbc_remain == NULL || tree == NULL, 0))
2205
+ {
2206
+ *err = REG_ESPACE;
2207
+ return NULL;
2208
+ }
2209
+ }
2210
+ }
2211
+ #endif
2212
+ break;
2213
+ case OP_OPEN_SUBEXP:
2214
+ tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err);
2215
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2216
+ return NULL;
2217
+ break;
2218
+ case OP_OPEN_BRACKET:
2219
+ tree = parse_bracket_exp (regexp, dfa, token, syntax, err);
2220
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2221
+ return NULL;
2222
+ break;
2223
+ case OP_BACK_REF:
2224
+ if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1))
2225
+ {
2226
+ *err = REG_ESUBREG;
2227
+ return NULL;
2228
+ }
2229
+ dfa->used_bkref_map |= 1 << token->opr.idx;
2230
+ tree = create_token_tree (dfa, NULL, NULL, token);
2231
+ if (BE (tree == NULL, 0))
2232
+ {
2233
+ *err = REG_ESPACE;
2234
+ return NULL;
2235
+ }
2236
+ ++dfa->nbackref;
2237
+ dfa->has_mb_node = 1;
2238
+ break;
2239
+ case OP_OPEN_DUP_NUM:
2240
+ if (syntax & RE_CONTEXT_INVALID_DUP)
2241
+ {
2242
+ *err = REG_BADRPT;
2243
+ return NULL;
2244
+ }
2245
+ /* FALLTHROUGH */
2246
+ case OP_DUP_ASTERISK:
2247
+ case OP_DUP_PLUS:
2248
+ case OP_DUP_QUESTION:
2249
+ if (syntax & RE_CONTEXT_INVALID_OPS)
2250
+ {
2251
+ *err = REG_BADRPT;
2252
+ return NULL;
2253
+ }
2254
+ else if (syntax & RE_CONTEXT_INDEP_OPS)
2255
+ {
2256
+ fetch_token (token, regexp, syntax);
2257
+ return parse_expression (regexp, preg, token, syntax, nest, err);
2258
+ }
2259
+ /* else fall through */
2260
+ case OP_CLOSE_SUBEXP:
2261
+ if ((token->type == OP_CLOSE_SUBEXP) &&
2262
+ !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
2263
+ {
2264
+ *err = REG_ERPAREN;
2265
+ return NULL;
2266
+ }
2267
+ /* else fall through */
2268
+ case OP_CLOSE_DUP_NUM:
2269
+ /* We treat it as a normal character. */
2270
+
2271
+ /* Then we can these characters as normal characters. */
2272
+ token->type = CHARACTER;
2273
+ /* mb_partial and word_char bits should be initialized already
2274
+ by peek_token. */
2275
+ tree = create_token_tree (dfa, NULL, NULL, token);
2276
+ if (BE (tree == NULL, 0))
2277
+ {
2278
+ *err = REG_ESPACE;
2279
+ return NULL;
2280
+ }
2281
+ break;
2282
+ case ANCHOR:
2283
+ if ((token->opr.ctx_type
2284
+ & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST))
2285
+ && dfa->word_ops_used == 0)
2286
+ init_word_char (dfa);
2287
+ if (token->opr.ctx_type == WORD_DELIM
2288
+ || token->opr.ctx_type == NOT_WORD_DELIM)
2289
+ {
2290
+ bin_tree_t *tree_first, *tree_last;
2291
+ if (token->opr.ctx_type == WORD_DELIM)
2292
+ {
2293
+ token->opr.ctx_type = WORD_FIRST;
2294
+ tree_first = create_token_tree (dfa, NULL, NULL, token);
2295
+ token->opr.ctx_type = WORD_LAST;
2296
+ }
2297
+ else
2298
+ {
2299
+ token->opr.ctx_type = INSIDE_WORD;
2300
+ tree_first = create_token_tree (dfa, NULL, NULL, token);
2301
+ token->opr.ctx_type = INSIDE_NOTWORD;
2302
+ }
2303
+ tree_last = create_token_tree (dfa, NULL, NULL, token);
2304
+ tree = create_tree (dfa, tree_first, tree_last, OP_ALT);
2305
+ if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0))
2306
+ {
2307
+ *err = REG_ESPACE;
2308
+ return NULL;
2309
+ }
2310
+ }
2311
+ else
2312
+ {
2313
+ tree = create_token_tree (dfa, NULL, NULL, token);
2314
+ if (BE (tree == NULL, 0))
2315
+ {
2316
+ *err = REG_ESPACE;
2317
+ return NULL;
2318
+ }
2319
+ }
2320
+ /* We must return here, since ANCHORs can't be followed
2321
+ by repetition operators.
2322
+ eg. RE"^*" is invalid or "<ANCHOR(^)><CHAR(*)>",
2323
+ it must not be "<ANCHOR(^)><REPEAT(*)>". */
2324
+ fetch_token (token, regexp, syntax);
2325
+ return tree;
2326
+ case OP_PERIOD:
2327
+ tree = create_token_tree (dfa, NULL, NULL, token);
2328
+ if (BE (tree == NULL, 0))
2329
+ {
2330
+ *err = REG_ESPACE;
2331
+ return NULL;
2332
+ }
2333
+ if (dfa->mb_cur_max > 1)
2334
+ dfa->has_mb_node = 1;
2335
+ break;
2336
+ case OP_WORD:
2337
+ case OP_NOTWORD:
2338
+ tree = build_charclass_op (dfa, regexp->trans,
2339
+ (const unsigned char *) "alnum",
2340
+ (const unsigned char *) "_",
2341
+ token->type == OP_NOTWORD, err);
2342
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2343
+ return NULL;
2344
+ break;
2345
+ case OP_SPACE:
2346
+ case OP_NOTSPACE:
2347
+ tree = build_charclass_op (dfa, regexp->trans,
2348
+ (const unsigned char *) "space",
2349
+ (const unsigned char *) "",
2350
+ token->type == OP_NOTSPACE, err);
2351
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2352
+ return NULL;
2353
+ break;
2354
+ case OP_ALT:
2355
+ case END_OF_RE:
2356
+ return NULL;
2357
+ case BACK_SLASH:
2358
+ *err = REG_EESCAPE;
2359
+ return NULL;
2360
+ default:
2361
+ /* Must not happen? */
2362
+ #ifdef DEBUG
2363
+ assert (0);
2364
+ #endif
2365
+ return NULL;
2366
+ }
2367
+ fetch_token (token, regexp, syntax);
2368
+
2369
+ while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS
2370
+ || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM)
2371
+ {
2372
+ tree = parse_dup_op (tree, regexp, dfa, token, syntax, err);
2373
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
2374
+ return NULL;
2375
+ /* In BRE consecutive duplications are not allowed. */
2376
+ if ((syntax & RE_CONTEXT_INVALID_DUP)
2377
+ && (token->type == OP_DUP_ASTERISK
2378
+ || token->type == OP_OPEN_DUP_NUM))
2379
+ {
2380
+ *err = REG_BADRPT;
2381
+ return NULL;
2382
+ }
2383
+ }
2384
+
2385
+ return tree;
2386
+ }
2387
+
2388
+ /* This function build the following tree, from regular expression
2389
+ (<reg_exp>):
2390
+ SUBEXP
2391
+ |
2392
+ <reg_exp>
2393
+ */
2394
+
2395
+ static bin_tree_t *
2396
+ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
2397
+ reg_syntax_t syntax, int nest, reg_errcode_t *err)
2398
+ {
2399
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
2400
+ bin_tree_t *tree;
2401
+ size_t cur_nsub;
2402
+ cur_nsub = preg->re_nsub++;
2403
+
2404
+ fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
2405
+
2406
+ /* The subexpression may be a null string. */
2407
+ if (token->type == OP_CLOSE_SUBEXP)
2408
+ tree = NULL;
2409
+ else
2410
+ {
2411
+ tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
2412
+ if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
2413
+ *err = REG_EPAREN;
2414
+ if (BE (*err != REG_NOERROR, 0))
2415
+ return NULL;
2416
+ }
2417
+
2418
+ if (cur_nsub <= '9' - '1')
2419
+ dfa->completed_bkref_map |= 1 << cur_nsub;
2420
+
2421
+ tree = create_tree (dfa, tree, NULL, SUBEXP);
2422
+ if (BE (tree == NULL, 0))
2423
+ {
2424
+ *err = REG_ESPACE;
2425
+ return NULL;
2426
+ }
2427
+ tree->token.opr.idx = cur_nsub;
2428
+ return tree;
2429
+ }
2430
+
2431
+ /* This function parse repetition operators like "*", "+", "{1,3}" etc. */
2432
+
2433
+ static bin_tree_t *
2434
+ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
2435
+ re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err)
2436
+ {
2437
+ bin_tree_t *tree = NULL, *old_tree = NULL;
2438
+ int i, start, end, start_idx = re_string_cur_idx (regexp);
2439
+ re_token_t start_token = *token;
2440
+
2441
+ if (token->type == OP_OPEN_DUP_NUM)
2442
+ {
2443
+ end = 0;
2444
+ start = fetch_number (regexp, token, syntax);
2445
+ if (start == -1)
2446
+ {
2447
+ if (token->type == CHARACTER && token->opr.c == ',')
2448
+ start = 0; /* We treat "{,m}" as "{0,m}". */
2449
+ else
2450
+ {
2451
+ *err = REG_BADBR; /* <re>{} is invalid. */
2452
+ return NULL;
2453
+ }
2454
+ }
2455
+ if (BE (start != -2, 1))
2456
+ {
2457
+ /* We treat "{n}" as "{n,n}". */
2458
+ end = ((token->type == OP_CLOSE_DUP_NUM) ? start
2459
+ : ((token->type == CHARACTER && token->opr.c == ',')
2460
+ ? fetch_number (regexp, token, syntax) : -2));
2461
+ }
2462
+ if (BE (start == -2 || end == -2, 0))
2463
+ {
2464
+ /* Invalid sequence. */
2465
+ if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
2466
+ {
2467
+ if (token->type == END_OF_RE)
2468
+ *err = REG_EBRACE;
2469
+ else
2470
+ *err = REG_BADBR;
2471
+
2472
+ return NULL;
2473
+ }
2474
+
2475
+ /* If the syntax bit is set, rollback. */
2476
+ re_string_set_index (regexp, start_idx);
2477
+ *token = start_token;
2478
+ token->type = CHARACTER;
2479
+ /* mb_partial and word_char bits should be already initialized by
2480
+ peek_token. */
2481
+ return elem;
2482
+ }
2483
+
2484
+ if (BE (end != -1 && start > end, 0))
2485
+ {
2486
+ /* First number greater than second. */
2487
+ *err = REG_BADBR;
2488
+ return NULL;
2489
+ }
2490
+ }
2491
+ else
2492
+ {
2493
+ start = (token->type == OP_DUP_PLUS) ? 1 : 0;
2494
+ end = (token->type == OP_DUP_QUESTION) ? 1 : -1;
2495
+ }
2496
+
2497
+ fetch_token (token, regexp, syntax);
2498
+
2499
+ if (BE (elem == NULL, 0))
2500
+ return NULL;
2501
+ if (BE (start == 0 && end == 0, 0))
2502
+ {
2503
+ postorder (elem, free_tree, NULL);
2504
+ return NULL;
2505
+ }
2506
+
2507
+ /* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}". */
2508
+ if (BE (start > 0, 0))
2509
+ {
2510
+ tree = elem;
2511
+ for (i = 2; i <= start; ++i)
2512
+ {
2513
+ elem = duplicate_tree (elem, dfa);
2514
+ tree = create_tree (dfa, tree, elem, CONCAT);
2515
+ if (BE (elem == NULL || tree == NULL, 0))
2516
+ goto parse_dup_op_espace;
2517
+ }
2518
+
2519
+ if (start == end)
2520
+ return tree;
2521
+
2522
+ /* Duplicate ELEM before it is marked optional. */
2523
+ elem = duplicate_tree (elem, dfa);
2524
+ old_tree = tree;
2525
+ }
2526
+ else
2527
+ old_tree = NULL;
2528
+
2529
+ if (elem->token.type == SUBEXP)
2530
+ postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
2531
+
2532
+ tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT));
2533
+ if (BE (tree == NULL, 0))
2534
+ goto parse_dup_op_espace;
2535
+
2536
+ /* This loop is actually executed only when end != -1,
2537
+ to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?... We have
2538
+ already created the start+1-th copy. */
2539
+ for (i = start + 2; i <= end; ++i)
2540
+ {
2541
+ elem = duplicate_tree (elem, dfa);
2542
+ tree = create_tree (dfa, tree, elem, CONCAT);
2543
+ if (BE (elem == NULL || tree == NULL, 0))
2544
+ goto parse_dup_op_espace;
2545
+
2546
+ tree = create_tree (dfa, tree, NULL, OP_ALT);
2547
+ if (BE (tree == NULL, 0))
2548
+ goto parse_dup_op_espace;
2549
+ }
2550
+
2551
+ if (old_tree)
2552
+ tree = create_tree (dfa, old_tree, tree, CONCAT);
2553
+
2554
+ return tree;
2555
+
2556
+ parse_dup_op_espace:
2557
+ *err = REG_ESPACE;
2558
+ return NULL;
2559
+ }
2560
+
2561
+ /* Size of the names for collating symbol/equivalence_class/character_class.
2562
+ I'm not sure, but maybe enough. */
2563
+ #define BRACKET_NAME_BUF_SIZE 32
2564
+
2565
+ #ifndef _LIBC
2566
+ /* Local function for parse_bracket_exp only used in case of NOT _LIBC.
2567
+ Build the range expression which starts from START_ELEM, and ends
2568
+ at END_ELEM. The result are written to MBCSET and SBCSET.
2569
+ RANGE_ALLOC is the allocated size of mbcset->range_starts, and
2570
+ mbcset->range_ends, is a pointer argument since we may
2571
+ update it. */
2572
+
2573
+ static reg_errcode_t
2574
+ internal_function
2575
+ # ifdef RE_ENABLE_I18N
2576
+ build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc,
2577
+ bracket_elem_t *start_elem, bracket_elem_t *end_elem)
2578
+ # else /* not RE_ENABLE_I18N */
2579
+ build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem,
2580
+ bracket_elem_t *end_elem)
2581
+ # endif /* not RE_ENABLE_I18N */
2582
+ {
2583
+ unsigned int start_ch, end_ch;
2584
+ /* Equivalence Classes and Character Classes can't be a range start/end. */
2585
+ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
2586
+ || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
2587
+ 0))
2588
+ return REG_ERANGE;
2589
+
2590
+ /* We can handle no multi character collating elements without libc
2591
+ support. */
2592
+ if (BE ((start_elem->type == COLL_SYM
2593
+ && strlen ((char *) start_elem->opr.name) > 1)
2594
+ || (end_elem->type == COLL_SYM
2595
+ && strlen ((char *) end_elem->opr.name) > 1), 0))
2596
+ return REG_ECOLLATE;
2597
+
2598
+ # ifdef RE_ENABLE_I18N
2599
+ {
2600
+ wchar_t wc;
2601
+ wint_t start_wc;
2602
+ wint_t end_wc;
2603
+ wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
2604
+
2605
+ start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch
2606
+ : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
2607
+ : 0));
2608
+ end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch
2609
+ : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
2610
+ : 0));
2611
+ start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM)
2612
+ ? __btowc (start_ch) : start_elem->opr.wch);
2613
+ end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM)
2614
+ ? __btowc (end_ch) : end_elem->opr.wch);
2615
+ if (start_wc == WEOF || end_wc == WEOF)
2616
+ return REG_ECOLLATE;
2617
+ cmp_buf[0] = start_wc;
2618
+ cmp_buf[4] = end_wc;
2619
+ if (wcscoll (cmp_buf, cmp_buf + 4) > 0)
2620
+ return REG_ERANGE;
2621
+
2622
+ /* Got valid collation sequence values, add them as a new entry.
2623
+ However, for !_LIBC we have no collation elements: if the
2624
+ character set is single byte, the single byte character set
2625
+ that we build below suffices. parse_bracket_exp passes
2626
+ no MBCSET if dfa->mb_cur_max == 1. */
2627
+ if (mbcset)
2628
+ {
2629
+ /* Check the space of the arrays. */
2630
+ if (BE (*range_alloc == mbcset->nranges, 0))
2631
+ {
2632
+ /* There is not enough space, need realloc. */
2633
+ wchar_t *new_array_start, *new_array_end;
2634
+ int new_nranges;
2635
+
2636
+ /* +1 in case of mbcset->nranges is 0. */
2637
+ new_nranges = 2 * mbcset->nranges + 1;
2638
+ /* Use realloc since mbcset->range_starts and mbcset->range_ends
2639
+ are NULL if *range_alloc == 0. */
2640
+ new_array_start = re_realloc (mbcset->range_starts, wchar_t,
2641
+ new_nranges);
2642
+ new_array_end = re_realloc (mbcset->range_ends, wchar_t,
2643
+ new_nranges);
2644
+
2645
+ if (BE (new_array_start == NULL || new_array_end == NULL, 0))
2646
+ return REG_ESPACE;
2647
+
2648
+ mbcset->range_starts = new_array_start;
2649
+ mbcset->range_ends = new_array_end;
2650
+ *range_alloc = new_nranges;
2651
+ }
2652
+
2653
+ mbcset->range_starts[mbcset->nranges] = start_wc;
2654
+ mbcset->range_ends[mbcset->nranges++] = end_wc;
2655
+ }
2656
+
2657
+ /* Build the table for single byte characters. */
2658
+ for (wc = 0; wc < SBC_MAX; ++wc)
2659
+ {
2660
+ cmp_buf[2] = wc;
2661
+ if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
2662
+ && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
2663
+ bitset_set (sbcset, wc);
2664
+ }
2665
+ }
2666
+ # else /* not RE_ENABLE_I18N */
2667
+ {
2668
+ unsigned int ch;
2669
+ start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch
2670
+ : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
2671
+ : 0));
2672
+ end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch
2673
+ : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
2674
+ : 0));
2675
+ if (start_ch > end_ch)
2676
+ return REG_ERANGE;
2677
+ /* Build the table for single byte characters. */
2678
+ for (ch = 0; ch < SBC_MAX; ++ch)
2679
+ if (start_ch <= ch && ch <= end_ch)
2680
+ bitset_set (sbcset, ch);
2681
+ }
2682
+ # endif /* not RE_ENABLE_I18N */
2683
+ return REG_NOERROR;
2684
+ }
2685
+ #endif /* not _LIBC */
2686
+
2687
+ #ifndef _LIBC
2688
+ /* Helper function for parse_bracket_exp only used in case of NOT _LIBC..
2689
+ Build the collating element which is represented by NAME.
2690
+ The result are written to MBCSET and SBCSET.
2691
+ COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
2692
+ pointer argument since we may update it. */
2693
+
2694
+ static reg_errcode_t
2695
+ internal_function
2696
+ # ifdef RE_ENABLE_I18N
2697
+ build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
2698
+ int *coll_sym_alloc, const unsigned char *name)
2699
+ # else /* not RE_ENABLE_I18N */
2700
+ build_collating_symbol (bitset_t sbcset, const unsigned char *name)
2701
+ # endif /* not RE_ENABLE_I18N */
2702
+ {
2703
+ size_t name_len = strlen ((const char *) name);
2704
+ if (BE (name_len != 1, 0))
2705
+ return REG_ECOLLATE;
2706
+ else
2707
+ {
2708
+ bitset_set (sbcset, name[0]);
2709
+ return REG_NOERROR;
2710
+ }
2711
+ }
2712
+ #endif /* not _LIBC */
2713
+
2714
+ /* This function parse bracket expression like "[abc]", "[a-c]",
2715
+ "[[.a-a.]]" etc. */
2716
+
2717
+ static bin_tree_t *
2718
+ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
2719
+ reg_syntax_t syntax, reg_errcode_t *err)
2720
+ {
2721
+ #ifdef _LIBC
2722
+ const unsigned char *collseqmb;
2723
+ const char *collseqwc;
2724
+ uint32_t nrules;
2725
+ int32_t table_size;
2726
+ const int32_t *symb_table;
2727
+ const unsigned char *extra;
2728
+
2729
+ /* Local function for parse_bracket_exp used in _LIBC environement.
2730
+ Seek the collating symbol entry correspondings to NAME.
2731
+ Return the index of the symbol in the SYMB_TABLE. */
2732
+
2733
+ auto inline int32_t
2734
+ __attribute ((always_inline))
2735
+ seek_collating_symbol_entry (name, name_len)
2736
+ const unsigned char *name;
2737
+ size_t name_len;
2738
+ {
2739
+ int32_t hash = elem_hash ((const char *) name, name_len);
2740
+ int32_t elem = hash % table_size;
2741
+ if (symb_table[2 * elem] != 0)
2742
+ {
2743
+ int32_t second = hash % (table_size - 2) + 1;
2744
+
2745
+ do
2746
+ {
2747
+ /* First compare the hashing value. */
2748
+ if (symb_table[2 * elem] == hash
2749
+ /* Compare the length of the name. */
2750
+ && name_len == extra[symb_table[2 * elem + 1]]
2751
+ /* Compare the name. */
2752
+ && memcmp (name, &extra[symb_table[2 * elem + 1] + 1],
2753
+ name_len) == 0)
2754
+ {
2755
+ /* Yep, this is the entry. */
2756
+ break;
2757
+ }
2758
+
2759
+ /* Next entry. */
2760
+ elem += second;
2761
+ }
2762
+ while (symb_table[2 * elem] != 0);
2763
+ }
2764
+ return elem;
2765
+ }
2766
+
2767
+ /* Local function for parse_bracket_exp used in _LIBC environment.
2768
+ Look up the collation sequence value of BR_ELEM.
2769
+ Return the value if succeeded, UINT_MAX otherwise. */
2770
+
2771
+ auto inline unsigned int
2772
+ __attribute ((always_inline))
2773
+ lookup_collation_sequence_value (br_elem)
2774
+ bracket_elem_t *br_elem;
2775
+ {
2776
+ if (br_elem->type == SB_CHAR)
2777
+ {
2778
+ /*
2779
+ if (MB_CUR_MAX == 1)
2780
+ */
2781
+ if (nrules == 0)
2782
+ return collseqmb[br_elem->opr.ch];
2783
+ else
2784
+ {
2785
+ wint_t wc = __btowc (br_elem->opr.ch);
2786
+ return __collseq_table_lookup (collseqwc, wc);
2787
+ }
2788
+ }
2789
+ else if (br_elem->type == MB_CHAR)
2790
+ {
2791
+ if (nrules != 0)
2792
+ return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
2793
+ }
2794
+ else if (br_elem->type == COLL_SYM)
2795
+ {
2796
+ size_t sym_name_len = strlen ((char *) br_elem->opr.name);
2797
+ if (nrules != 0)
2798
+ {
2799
+ int32_t elem, idx;
2800
+ elem = seek_collating_symbol_entry (br_elem->opr.name,
2801
+ sym_name_len);
2802
+ if (symb_table[2 * elem] != 0)
2803
+ {
2804
+ /* We found the entry. */
2805
+ idx = symb_table[2 * elem + 1];
2806
+ /* Skip the name of collating element name. */
2807
+ idx += 1 + extra[idx];
2808
+ /* Skip the byte sequence of the collating element. */
2809
+ idx += 1 + extra[idx];
2810
+ /* Adjust for the alignment. */
2811
+ idx = (idx + 3) & ~3;
2812
+ /* Skip the multibyte collation sequence value. */
2813
+ idx += sizeof (unsigned int);
2814
+ /* Skip the wide char sequence of the collating element. */
2815
+ idx += sizeof (unsigned int) *
2816
+ (1 + *(unsigned int *) (extra + idx));
2817
+ /* Return the collation sequence value. */
2818
+ return *(unsigned int *) (extra + idx);
2819
+ }
2820
+ else if (symb_table[2 * elem] == 0 && sym_name_len == 1)
2821
+ {
2822
+ /* No valid character. Match it as a single byte
2823
+ character. */
2824
+ return collseqmb[br_elem->opr.name[0]];
2825
+ }
2826
+ }
2827
+ else if (sym_name_len == 1)
2828
+ return collseqmb[br_elem->opr.name[0]];
2829
+ }
2830
+ return UINT_MAX;
2831
+ }
2832
+
2833
+ /* Local function for parse_bracket_exp used in _LIBC environement.
2834
+ Build the range expression which starts from START_ELEM, and ends
2835
+ at END_ELEM. The result are written to MBCSET and SBCSET.
2836
+ RANGE_ALLOC is the allocated size of mbcset->range_starts, and
2837
+ mbcset->range_ends, is a pointer argument since we may
2838
+ update it. */
2839
+
2840
+ auto inline reg_errcode_t
2841
+ __attribute ((always_inline))
2842
+ build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
2843
+ re_charset_t *mbcset;
2844
+ int *range_alloc;
2845
+ bitset_t sbcset;
2846
+ bracket_elem_t *start_elem, *end_elem;
2847
+ {
2848
+ unsigned int ch;
2849
+ uint32_t start_collseq;
2850
+ uint32_t end_collseq;
2851
+
2852
+ /* Equivalence Classes and Character Classes can't be a range
2853
+ start/end. */
2854
+ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
2855
+ || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
2856
+ 0))
2857
+ return REG_ERANGE;
2858
+
2859
+ start_collseq = lookup_collation_sequence_value (start_elem);
2860
+ end_collseq = lookup_collation_sequence_value (end_elem);
2861
+ /* Check start/end collation sequence values. */
2862
+ if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0))
2863
+ return REG_ECOLLATE;
2864
+ if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0))
2865
+ return REG_ERANGE;
2866
+
2867
+ /* Got valid collation sequence values, add them as a new entry.
2868
+ However, if we have no collation elements, and the character set
2869
+ is single byte, the single byte character set that we
2870
+ build below suffices. */
2871
+ if (nrules > 0 || dfa->mb_cur_max > 1)
2872
+ {
2873
+ /* Check the space of the arrays. */
2874
+ if (BE (*range_alloc == mbcset->nranges, 0))
2875
+ {
2876
+ /* There is not enough space, need realloc. */
2877
+ uint32_t *new_array_start;
2878
+ uint32_t *new_array_end;
2879
+ int new_nranges;
2880
+
2881
+ /* +1 in case of mbcset->nranges is 0. */
2882
+ new_nranges = 2 * mbcset->nranges + 1;
2883
+ new_array_start = re_realloc (mbcset->range_starts, uint32_t,
2884
+ new_nranges);
2885
+ new_array_end = re_realloc (mbcset->range_ends, uint32_t,
2886
+ new_nranges);
2887
+
2888
+ if (BE (new_array_start == NULL || new_array_end == NULL, 0))
2889
+ return REG_ESPACE;
2890
+
2891
+ mbcset->range_starts = new_array_start;
2892
+ mbcset->range_ends = new_array_end;
2893
+ *range_alloc = new_nranges;
2894
+ }
2895
+
2896
+ mbcset->range_starts[mbcset->nranges] = start_collseq;
2897
+ mbcset->range_ends[mbcset->nranges++] = end_collseq;
2898
+ }
2899
+
2900
+ /* Build the table for single byte characters. */
2901
+ for (ch = 0; ch < SBC_MAX; ch++)
2902
+ {
2903
+ uint32_t ch_collseq;
2904
+ /*
2905
+ if (MB_CUR_MAX == 1)
2906
+ */
2907
+ if (nrules == 0)
2908
+ ch_collseq = collseqmb[ch];
2909
+ else
2910
+ ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
2911
+ if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
2912
+ bitset_set (sbcset, ch);
2913
+ }
2914
+ return REG_NOERROR;
2915
+ }
2916
+
2917
+ /* Local function for parse_bracket_exp used in _LIBC environement.
2918
+ Build the collating element which is represented by NAME.
2919
+ The result are written to MBCSET and SBCSET.
2920
+ COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
2921
+ pointer argument since we may update it. */
2922
+
2923
+ auto inline reg_errcode_t
2924
+ __attribute ((always_inline))
2925
+ build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
2926
+ re_charset_t *mbcset;
2927
+ int *coll_sym_alloc;
2928
+ bitset_t sbcset;
2929
+ const unsigned char *name;
2930
+ {
2931
+ int32_t elem, idx;
2932
+ size_t name_len = strlen ((const char *) name);
2933
+ if (nrules != 0)
2934
+ {
2935
+ elem = seek_collating_symbol_entry (name, name_len);
2936
+ if (symb_table[2 * elem] != 0)
2937
+ {
2938
+ /* We found the entry. */
2939
+ idx = symb_table[2 * elem + 1];
2940
+ /* Skip the name of collating element name. */
2941
+ idx += 1 + extra[idx];
2942
+ }
2943
+ else if (symb_table[2 * elem] == 0 && name_len == 1)
2944
+ {
2945
+ /* No valid character, treat it as a normal
2946
+ character. */
2947
+ bitset_set (sbcset, name[0]);
2948
+ return REG_NOERROR;
2949
+ }
2950
+ else
2951
+ return REG_ECOLLATE;
2952
+
2953
+ /* Got valid collation sequence, add it as a new entry. */
2954
+ /* Check the space of the arrays. */
2955
+ if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0))
2956
+ {
2957
+ /* Not enough, realloc it. */
2958
+ /* +1 in case of mbcset->ncoll_syms is 0. */
2959
+ int new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1;
2960
+ /* Use realloc since mbcset->coll_syms is NULL
2961
+ if *alloc == 0. */
2962
+ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
2963
+ new_coll_sym_alloc);
2964
+ if (BE (new_coll_syms == NULL, 0))
2965
+ return REG_ESPACE;
2966
+ mbcset->coll_syms = new_coll_syms;
2967
+ *coll_sym_alloc = new_coll_sym_alloc;
2968
+ }
2969
+ mbcset->coll_syms[mbcset->ncoll_syms++] = idx;
2970
+ return REG_NOERROR;
2971
+ }
2972
+ else
2973
+ {
2974
+ if (BE (name_len != 1, 0))
2975
+ return REG_ECOLLATE;
2976
+ else
2977
+ {
2978
+ bitset_set (sbcset, name[0]);
2979
+ return REG_NOERROR;
2980
+ }
2981
+ }
2982
+ }
2983
+ #endif
2984
+
2985
+ re_token_t br_token;
2986
+ re_bitset_ptr_t sbcset;
2987
+ #ifdef RE_ENABLE_I18N
2988
+ re_charset_t *mbcset;
2989
+ int coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0;
2990
+ int equiv_class_alloc = 0, char_class_alloc = 0;
2991
+ #endif /* not RE_ENABLE_I18N */
2992
+ int non_match = 0;
2993
+ bin_tree_t *work_tree;
2994
+ int token_len;
2995
+ int first_round = 1;
2996
+ #ifdef _LIBC
2997
+ collseqmb = (const unsigned char *)
2998
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
2999
+ nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
3000
+ if (nrules)
3001
+ {
3002
+ /*
3003
+ if (MB_CUR_MAX > 1)
3004
+ */
3005
+ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
3006
+ table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB);
3007
+ symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE,
3008
+ _NL_COLLATE_SYMB_TABLEMB);
3009
+ extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
3010
+ _NL_COLLATE_SYMB_EXTRAMB);
3011
+ }
3012
+ #endif
3013
+ sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
3014
+ #ifdef RE_ENABLE_I18N
3015
+ mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
3016
+ #endif /* RE_ENABLE_I18N */
3017
+ #ifdef RE_ENABLE_I18N
3018
+ if (BE (sbcset == NULL || mbcset == NULL, 0))
3019
+ #else
3020
+ if (BE (sbcset == NULL, 0))
3021
+ #endif /* RE_ENABLE_I18N */
3022
+ {
3023
+ *err = REG_ESPACE;
3024
+ return NULL;
3025
+ }
3026
+
3027
+ token_len = peek_token_bracket (token, regexp, syntax);
3028
+ if (BE (token->type == END_OF_RE, 0))
3029
+ {
3030
+ *err = REG_BADPAT;
3031
+ goto parse_bracket_exp_free_return;
3032
+ }
3033
+ if (token->type == OP_NON_MATCH_LIST)
3034
+ {
3035
+ #ifdef RE_ENABLE_I18N
3036
+ mbcset->non_match = 1;
3037
+ #endif /* not RE_ENABLE_I18N */
3038
+ non_match = 1;
3039
+ if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
3040
+ bitset_set (sbcset, '\n');
3041
+ re_string_skip_bytes (regexp, token_len); /* Skip a token. */
3042
+ token_len = peek_token_bracket (token, regexp, syntax);
3043
+ if (BE (token->type == END_OF_RE, 0))
3044
+ {
3045
+ *err = REG_BADPAT;
3046
+ goto parse_bracket_exp_free_return;
3047
+ }
3048
+ }
3049
+
3050
+ /* We treat the first ']' as a normal character. */
3051
+ if (token->type == OP_CLOSE_BRACKET)
3052
+ token->type = CHARACTER;
3053
+
3054
+ while (1)
3055
+ {
3056
+ bracket_elem_t start_elem, end_elem;
3057
+ unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE];
3058
+ unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE];
3059
+ reg_errcode_t ret;
3060
+ int token_len2 = 0, is_range_exp = 0;
3061
+ re_token_t token2;
3062
+
3063
+ start_elem.opr.name = start_name_buf;
3064
+ ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
3065
+ syntax, first_round);
3066
+ if (BE (ret != REG_NOERROR, 0))
3067
+ {
3068
+ *err = ret;
3069
+ goto parse_bracket_exp_free_return;
3070
+ }
3071
+ first_round = 0;
3072
+
3073
+ /* Get information about the next token. We need it in any case. */
3074
+ token_len = peek_token_bracket (token, regexp, syntax);
3075
+
3076
+ /* Do not check for ranges if we know they are not allowed. */
3077
+ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS)
3078
+ {
3079
+ if (BE (token->type == END_OF_RE, 0))
3080
+ {
3081
+ *err = REG_EBRACK;
3082
+ goto parse_bracket_exp_free_return;
3083
+ }
3084
+ if (token->type == OP_CHARSET_RANGE)
3085
+ {
3086
+ re_string_skip_bytes (regexp, token_len); /* Skip '-'. */
3087
+ token_len2 = peek_token_bracket (&token2, regexp, syntax);
3088
+ if (BE (token2.type == END_OF_RE, 0))
3089
+ {
3090
+ *err = REG_EBRACK;
3091
+ goto parse_bracket_exp_free_return;
3092
+ }
3093
+ if (token2.type == OP_CLOSE_BRACKET)
3094
+ {
3095
+ /* We treat the last '-' as a normal character. */
3096
+ re_string_skip_bytes (regexp, -token_len);
3097
+ token->type = CHARACTER;
3098
+ }
3099
+ else
3100
+ is_range_exp = 1;
3101
+ }
3102
+ }
3103
+
3104
+ if (is_range_exp == 1)
3105
+ {
3106
+ end_elem.opr.name = end_name_buf;
3107
+ ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
3108
+ dfa, syntax, 1);
3109
+ if (BE (ret != REG_NOERROR, 0))
3110
+ {
3111
+ *err = ret;
3112
+ goto parse_bracket_exp_free_return;
3113
+ }
3114
+
3115
+ token_len = peek_token_bracket (token, regexp, syntax);
3116
+
3117
+ #ifdef _LIBC
3118
+ *err = build_range_exp (sbcset, mbcset, &range_alloc,
3119
+ &start_elem, &end_elem);
3120
+ #else
3121
+ # ifdef RE_ENABLE_I18N
3122
+ *err = build_range_exp (sbcset,
3123
+ dfa->mb_cur_max > 1 ? mbcset : NULL,
3124
+ &range_alloc, &start_elem, &end_elem);
3125
+ # else
3126
+ *err = build_range_exp (sbcset, &start_elem, &end_elem);
3127
+ # endif
3128
+ #endif /* RE_ENABLE_I18N */
3129
+ if (BE (*err != REG_NOERROR, 0))
3130
+ goto parse_bracket_exp_free_return;
3131
+ }
3132
+ else
3133
+ {
3134
+ switch (start_elem.type)
3135
+ {
3136
+ case SB_CHAR:
3137
+ bitset_set (sbcset, start_elem.opr.ch);
3138
+ break;
3139
+ #ifdef RE_ENABLE_I18N
3140
+ case MB_CHAR:
3141
+ /* Check whether the array has enough space. */
3142
+ if (BE (mbchar_alloc == mbcset->nmbchars, 0))
3143
+ {
3144
+ wchar_t *new_mbchars;
3145
+ /* Not enough, realloc it. */
3146
+ /* +1 in case of mbcset->nmbchars is 0. */
3147
+ mbchar_alloc = 2 * mbcset->nmbchars + 1;
3148
+ /* Use realloc since array is NULL if *alloc == 0. */
3149
+ new_mbchars = re_realloc (mbcset->mbchars, wchar_t,
3150
+ mbchar_alloc);
3151
+ if (BE (new_mbchars == NULL, 0))
3152
+ goto parse_bracket_exp_espace;
3153
+ mbcset->mbchars = new_mbchars;
3154
+ }
3155
+ mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch;
3156
+ break;
3157
+ #endif /* RE_ENABLE_I18N */
3158
+ case EQUIV_CLASS:
3159
+ *err = build_equiv_class (sbcset,
3160
+ #ifdef RE_ENABLE_I18N
3161
+ mbcset, &equiv_class_alloc,
3162
+ #endif /* RE_ENABLE_I18N */
3163
+ start_elem.opr.name);
3164
+ if (BE (*err != REG_NOERROR, 0))
3165
+ goto parse_bracket_exp_free_return;
3166
+ break;
3167
+ case COLL_SYM:
3168
+ *err = build_collating_symbol (sbcset,
3169
+ #ifdef RE_ENABLE_I18N
3170
+ mbcset, &coll_sym_alloc,
3171
+ #endif /* RE_ENABLE_I18N */
3172
+ start_elem.opr.name);
3173
+ if (BE (*err != REG_NOERROR, 0))
3174
+ goto parse_bracket_exp_free_return;
3175
+ break;
3176
+ case CHAR_CLASS:
3177
+ *err = build_charclass (regexp->trans, sbcset,
3178
+ #ifdef RE_ENABLE_I18N
3179
+ mbcset, &char_class_alloc,
3180
+ #endif /* RE_ENABLE_I18N */
3181
+ start_elem.opr.name, syntax);
3182
+ if (BE (*err != REG_NOERROR, 0))
3183
+ goto parse_bracket_exp_free_return;
3184
+ break;
3185
+ default:
3186
+ assert (0);
3187
+ break;
3188
+ }
3189
+ }
3190
+ if (BE (token->type == END_OF_RE, 0))
3191
+ {
3192
+ *err = REG_EBRACK;
3193
+ goto parse_bracket_exp_free_return;
3194
+ }
3195
+ if (token->type == OP_CLOSE_BRACKET)
3196
+ break;
3197
+ }
3198
+
3199
+ re_string_skip_bytes (regexp, token_len); /* Skip a token. */
3200
+
3201
+ /* If it is non-matching list. */
3202
+ if (non_match)
3203
+ bitset_not (sbcset);
3204
+
3205
+ #ifdef RE_ENABLE_I18N
3206
+ /* Ensure only single byte characters are set. */
3207
+ if (dfa->mb_cur_max > 1)
3208
+ bitset_mask (sbcset, dfa->sb_char);
3209
+
3210
+ if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes
3211
+ || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes
3212
+ || mbcset->non_match)))
3213
+ {
3214
+ bin_tree_t *mbc_tree;
3215
+ int sbc_idx;
3216
+ /* Build a tree for complex bracket. */
3217
+ dfa->has_mb_node = 1;
3218
+ br_token.type = COMPLEX_BRACKET;
3219
+ br_token.opr.mbcset = mbcset;
3220
+ mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
3221
+ if (BE (mbc_tree == NULL, 0))
3222
+ goto parse_bracket_exp_espace;
3223
+ for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx)
3224
+ if (sbcset[sbc_idx])
3225
+ break;
3226
+ /* If there are no bits set in sbcset, there is no point
3227
+ of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */
3228
+ if (sbc_idx < BITSET_WORDS)
3229
+ {
3230
+ /* Build a tree for simple bracket. */
3231
+ br_token.type = SIMPLE_BRACKET;
3232
+ br_token.opr.sbcset = sbcset;
3233
+ work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
3234
+ if (BE (work_tree == NULL, 0))
3235
+ goto parse_bracket_exp_espace;
3236
+
3237
+ /* Then join them by ALT node. */
3238
+ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT);
3239
+ if (BE (work_tree == NULL, 0))
3240
+ goto parse_bracket_exp_espace;
3241
+ }
3242
+ else
3243
+ {
3244
+ re_free (sbcset);
3245
+ work_tree = mbc_tree;
3246
+ }
3247
+ }
3248
+ else
3249
+ #endif /* not RE_ENABLE_I18N */
3250
+ {
3251
+ #ifdef RE_ENABLE_I18N
3252
+ free_charset (mbcset);
3253
+ #endif
3254
+ /* Build a tree for simple bracket. */
3255
+ br_token.type = SIMPLE_BRACKET;
3256
+ br_token.opr.sbcset = sbcset;
3257
+ work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
3258
+ if (BE (work_tree == NULL, 0))
3259
+ goto parse_bracket_exp_espace;
3260
+ }
3261
+ return work_tree;
3262
+
3263
+ parse_bracket_exp_espace:
3264
+ *err = REG_ESPACE;
3265
+ parse_bracket_exp_free_return:
3266
+ re_free (sbcset);
3267
+ #ifdef RE_ENABLE_I18N
3268
+ free_charset (mbcset);
3269
+ #endif /* RE_ENABLE_I18N */
3270
+ return NULL;
3271
+ }
3272
+
3273
+ /* Parse an element in the bracket expression. */
3274
+
3275
+ static reg_errcode_t
3276
+ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
3277
+ re_token_t *token, int token_len, re_dfa_t *dfa,
3278
+ reg_syntax_t syntax, int accept_hyphen)
3279
+ {
3280
+ #ifdef RE_ENABLE_I18N
3281
+ int cur_char_size;
3282
+ cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp));
3283
+ if (cur_char_size > 1)
3284
+ {
3285
+ elem->type = MB_CHAR;
3286
+ elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp));
3287
+ re_string_skip_bytes (regexp, cur_char_size);
3288
+ return REG_NOERROR;
3289
+ }
3290
+ #endif /* RE_ENABLE_I18N */
3291
+ re_string_skip_bytes (regexp, token_len); /* Skip a token. */
3292
+ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
3293
+ || token->type == OP_OPEN_EQUIV_CLASS)
3294
+ return parse_bracket_symbol (elem, regexp, token);
3295
+ if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen)
3296
+ {
3297
+ /* A '-' must only appear as anything but a range indicator before
3298
+ the closing bracket. Everything else is an error. */
3299
+ re_token_t token2;
3300
+ (void) peek_token_bracket (&token2, regexp, syntax);
3301
+ if (token2.type != OP_CLOSE_BRACKET)
3302
+ /* The actual error value is not standardized since this whole
3303
+ case is undefined. But ERANGE makes good sense. */
3304
+ return REG_ERANGE;
3305
+ }
3306
+ elem->type = SB_CHAR;
3307
+ elem->opr.ch = token->opr.c;
3308
+ return REG_NOERROR;
3309
+ }
3310
+
3311
+ /* Parse a bracket symbol in the bracket expression. Bracket symbols are
3312
+ such as [:<character_class>:], [.<collating_element>.], and
3313
+ [=<equivalent_class>=]. */
3314
+
3315
+ static reg_errcode_t
3316
+ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
3317
+ re_token_t *token)
3318
+ {
3319
+ unsigned char ch, delim = token->opr.c;
3320
+ int i = 0;
3321
+ if (re_string_eoi(regexp))
3322
+ return REG_EBRACK;
3323
+ for (;; ++i)
3324
+ {
3325
+ if (i >= BRACKET_NAME_BUF_SIZE)
3326
+ return REG_EBRACK;
3327
+ if (token->type == OP_OPEN_CHAR_CLASS)
3328
+ ch = re_string_fetch_byte_case (regexp);
3329
+ else
3330
+ ch = re_string_fetch_byte (regexp);
3331
+ if (re_string_eoi(regexp))
3332
+ return REG_EBRACK;
3333
+ if (ch == delim && re_string_peek_byte (regexp, 0) == ']')
3334
+ break;
3335
+ elem->opr.name[i] = ch;
3336
+ }
3337
+ re_string_skip_bytes (regexp, 1);
3338
+ elem->opr.name[i] = '\0';
3339
+ switch (token->type)
3340
+ {
3341
+ case OP_OPEN_COLL_ELEM:
3342
+ elem->type = COLL_SYM;
3343
+ break;
3344
+ case OP_OPEN_EQUIV_CLASS:
3345
+ elem->type = EQUIV_CLASS;
3346
+ break;
3347
+ case OP_OPEN_CHAR_CLASS:
3348
+ elem->type = CHAR_CLASS;
3349
+ break;
3350
+ default:
3351
+ break;
3352
+ }
3353
+ return REG_NOERROR;
3354
+ }
3355
+
3356
+ /* Helper function for parse_bracket_exp.
3357
+ Build the equivalence class which is represented by NAME.
3358
+ The result are written to MBCSET and SBCSET.
3359
+ EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes,
3360
+ is a pointer argument since we may update it. */
3361
+
3362
+ static reg_errcode_t
3363
+ #ifdef RE_ENABLE_I18N
3364
+ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
3365
+ int *equiv_class_alloc, const unsigned char *name)
3366
+ #else /* not RE_ENABLE_I18N */
3367
+ build_equiv_class (bitset_t sbcset, const unsigned char *name)
3368
+ #endif /* not RE_ENABLE_I18N */
3369
+ {
3370
+ #ifdef _LIBC
3371
+ uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
3372
+ if (nrules != 0)
3373
+ {
3374
+ const int32_t *table, *indirect;
3375
+ const unsigned char *weights, *extra, *cp;
3376
+ unsigned char char_buf[2];
3377
+ int32_t idx1, idx2;
3378
+ unsigned int ch;
3379
+ size_t len;
3380
+ /* This #include defines a local function! */
3381
+ # include <locale/weight.h>
3382
+ /* Calculate the index for equivalence class. */
3383
+ cp = name;
3384
+ table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
3385
+ weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
3386
+ _NL_COLLATE_WEIGHTMB);
3387
+ extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
3388
+ _NL_COLLATE_EXTRAMB);
3389
+ indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
3390
+ _NL_COLLATE_INDIRECTMB);
3391
+ idx1 = findidx (&cp);
3392
+ if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
3393
+ /* This isn't a valid character. */
3394
+ return REG_ECOLLATE;
3395
+
3396
+ /* Build single byte matcing table for this equivalence class. */
3397
+ char_buf[1] = (unsigned char) '\0';
3398
+ len = weights[idx1 & 0xffffff];
3399
+ for (ch = 0; ch < SBC_MAX; ++ch)
3400
+ {
3401
+ char_buf[0] = ch;
3402
+ cp = char_buf;
3403
+ idx2 = findidx (&cp);
3404
+ /*
3405
+ idx2 = table[ch];
3406
+ */
3407
+ if (idx2 == 0)
3408
+ /* This isn't a valid character. */
3409
+ continue;
3410
+ /* Compare only if the length matches and the collation rule
3411
+ index is the same. */
3412
+ if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24))
3413
+ {
3414
+ int cnt = 0;
3415
+
3416
+ while (cnt <= len &&
3417
+ weights[(idx1 & 0xffffff) + 1 + cnt]
3418
+ == weights[(idx2 & 0xffffff) + 1 + cnt])
3419
+ ++cnt;
3420
+
3421
+ if (cnt > len)
3422
+ bitset_set (sbcset, ch);
3423
+ }
3424
+ }
3425
+ /* Check whether the array has enough space. */
3426
+ if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0))
3427
+ {
3428
+ /* Not enough, realloc it. */
3429
+ /* +1 in case of mbcset->nequiv_classes is 0. */
3430
+ int new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1;
3431
+ /* Use realloc since the array is NULL if *alloc == 0. */
3432
+ int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes,
3433
+ int32_t,
3434
+ new_equiv_class_alloc);
3435
+ if (BE (new_equiv_classes == NULL, 0))
3436
+ return REG_ESPACE;
3437
+ mbcset->equiv_classes = new_equiv_classes;
3438
+ *equiv_class_alloc = new_equiv_class_alloc;
3439
+ }
3440
+ mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1;
3441
+ }
3442
+ else
3443
+ #endif /* _LIBC */
3444
+ {
3445
+ if (BE (strlen ((const char *) name) != 1, 0))
3446
+ return REG_ECOLLATE;
3447
+ bitset_set (sbcset, *name);
3448
+ }
3449
+ return REG_NOERROR;
3450
+ }
3451
+
3452
+ /* Helper function for parse_bracket_exp.
3453
+ Build the character class which is represented by NAME.
3454
+ The result are written to MBCSET and SBCSET.
3455
+ CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes,
3456
+ is a pointer argument since we may update it. */
3457
+
3458
+ static reg_errcode_t
3459
+ #ifdef RE_ENABLE_I18N
3460
+ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
3461
+ re_charset_t *mbcset, int *char_class_alloc,
3462
+ const unsigned char *class_name, reg_syntax_t syntax)
3463
+ #else /* not RE_ENABLE_I18N */
3464
+ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
3465
+ const unsigned char *class_name, reg_syntax_t syntax)
3466
+ #endif /* not RE_ENABLE_I18N */
3467
+ {
3468
+ int i;
3469
+ const char *name = (const char *) class_name;
3470
+
3471
+ /* In case of REG_ICASE "upper" and "lower" match the both of
3472
+ upper and lower cases. */
3473
+ if ((syntax & RE_ICASE)
3474
+ && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0))
3475
+ name = "alpha";
3476
+
3477
+ #ifdef RE_ENABLE_I18N
3478
+ /* Check the space of the arrays. */
3479
+ if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
3480
+ {
3481
+ /* Not enough, realloc it. */
3482
+ /* +1 in case of mbcset->nchar_classes is 0. */
3483
+ int new_char_class_alloc = 2 * mbcset->nchar_classes + 1;
3484
+ /* Use realloc since array is NULL if *alloc == 0. */
3485
+ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t,
3486
+ new_char_class_alloc);
3487
+ if (BE (new_char_classes == NULL, 0))
3488
+ return REG_ESPACE;
3489
+ mbcset->char_classes = new_char_classes;
3490
+ *char_class_alloc = new_char_class_alloc;
3491
+ }
3492
+ mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name);
3493
+ #endif /* RE_ENABLE_I18N */
3494
+
3495
+ #define BUILD_CHARCLASS_LOOP(ctype_func) \
3496
+ do { \
3497
+ if (BE (trans != NULL, 0)) \
3498
+ { \
3499
+ for (i = 0; i < SBC_MAX; ++i) \
3500
+ if (ctype_func (i)) \
3501
+ bitset_set (sbcset, trans[i]); \
3502
+ } \
3503
+ else \
3504
+ { \
3505
+ for (i = 0; i < SBC_MAX; ++i) \
3506
+ if (ctype_func (i)) \
3507
+ bitset_set (sbcset, i); \
3508
+ } \
3509
+ } while (0)
3510
+
3511
+ if (strcmp (name, "alnum") == 0)
3512
+ BUILD_CHARCLASS_LOOP (isalnum);
3513
+ else if (strcmp (name, "cntrl") == 0)
3514
+ BUILD_CHARCLASS_LOOP (iscntrl);
3515
+ else if (strcmp (name, "lower") == 0)
3516
+ BUILD_CHARCLASS_LOOP (islower);
3517
+ else if (strcmp (name, "space") == 0)
3518
+ BUILD_CHARCLASS_LOOP (isspace);
3519
+ else if (strcmp (name, "alpha") == 0)
3520
+ BUILD_CHARCLASS_LOOP (isalpha);
3521
+ else if (strcmp (name, "digit") == 0)
3522
+ BUILD_CHARCLASS_LOOP (isdigit);
3523
+ else if (strcmp (name, "print") == 0)
3524
+ BUILD_CHARCLASS_LOOP (isprint);
3525
+ else if (strcmp (name, "upper") == 0)
3526
+ BUILD_CHARCLASS_LOOP (isupper);
3527
+ else if (strcmp (name, "blank") == 0)
3528
+ BUILD_CHARCLASS_LOOP (isblank);
3529
+ else if (strcmp (name, "graph") == 0)
3530
+ BUILD_CHARCLASS_LOOP (isgraph);
3531
+ else if (strcmp (name, "punct") == 0)
3532
+ BUILD_CHARCLASS_LOOP (ispunct);
3533
+ else if (strcmp (name, "xdigit") == 0)
3534
+ BUILD_CHARCLASS_LOOP (isxdigit);
3535
+ else
3536
+ return REG_ECTYPE;
3537
+
3538
+ return REG_NOERROR;
3539
+ }
3540
+
3541
+ static bin_tree_t *
3542
+ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
3543
+ const unsigned char *class_name,
3544
+ const unsigned char *extra, int non_match,
3545
+ reg_errcode_t *err)
3546
+ {
3547
+ re_bitset_ptr_t sbcset;
3548
+ #ifdef RE_ENABLE_I18N
3549
+ re_charset_t *mbcset;
3550
+ int alloc = 0;
3551
+ #endif /* not RE_ENABLE_I18N */
3552
+ reg_errcode_t ret;
3553
+ re_token_t br_token;
3554
+ bin_tree_t *tree;
3555
+
3556
+ sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
3557
+ #ifdef RE_ENABLE_I18N
3558
+ mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
3559
+ #endif /* RE_ENABLE_I18N */
3560
+
3561
+ #ifdef RE_ENABLE_I18N
3562
+ if (BE (sbcset == NULL || mbcset == NULL, 0))
3563
+ #else /* not RE_ENABLE_I18N */
3564
+ if (BE (sbcset == NULL, 0))
3565
+ #endif /* not RE_ENABLE_I18N */
3566
+ {
3567
+ *err = REG_ESPACE;
3568
+ return NULL;
3569
+ }
3570
+
3571
+ if (non_match)
3572
+ {
3573
+ #ifdef RE_ENABLE_I18N
3574
+ mbcset->non_match = 1;
3575
+ #endif /* not RE_ENABLE_I18N */
3576
+ }
3577
+
3578
+ /* We don't care the syntax in this case. */
3579
+ ret = build_charclass (trans, sbcset,
3580
+ #ifdef RE_ENABLE_I18N
3581
+ mbcset, &alloc,
3582
+ #endif /* RE_ENABLE_I18N */
3583
+ class_name, 0);
3584
+
3585
+ if (BE (ret != REG_NOERROR, 0))
3586
+ {
3587
+ re_free (sbcset);
3588
+ #ifdef RE_ENABLE_I18N
3589
+ free_charset (mbcset);
3590
+ #endif /* RE_ENABLE_I18N */
3591
+ *err = ret;
3592
+ return NULL;
3593
+ }
3594
+ /* \w match '_' also. */
3595
+ for (; *extra; extra++)
3596
+ bitset_set (sbcset, *extra);
3597
+
3598
+ /* If it is non-matching list. */
3599
+ if (non_match)
3600
+ bitset_not (sbcset);
3601
+
3602
+ #ifdef RE_ENABLE_I18N
3603
+ /* Ensure only single byte characters are set. */
3604
+ if (dfa->mb_cur_max > 1)
3605
+ bitset_mask (sbcset, dfa->sb_char);
3606
+ #endif
3607
+
3608
+ /* Build a tree for simple bracket. */
3609
+ br_token.type = SIMPLE_BRACKET;
3610
+ br_token.opr.sbcset = sbcset;
3611
+ tree = create_token_tree (dfa, NULL, NULL, &br_token);
3612
+ if (BE (tree == NULL, 0))
3613
+ goto build_word_op_espace;
3614
+
3615
+ #ifdef RE_ENABLE_I18N
3616
+ if (dfa->mb_cur_max > 1)
3617
+ {
3618
+ bin_tree_t *mbc_tree;
3619
+ /* Build a tree for complex bracket. */
3620
+ br_token.type = COMPLEX_BRACKET;
3621
+ br_token.opr.mbcset = mbcset;
3622
+ dfa->has_mb_node = 1;
3623
+ mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
3624
+ if (BE (mbc_tree == NULL, 0))
3625
+ goto build_word_op_espace;
3626
+ /* Then join them by ALT node. */
3627
+ tree = create_tree (dfa, tree, mbc_tree, OP_ALT);
3628
+ if (BE (mbc_tree != NULL, 1))
3629
+ return tree;
3630
+ }
3631
+ else
3632
+ {
3633
+ free_charset (mbcset);
3634
+ return tree;
3635
+ }
3636
+ #else /* not RE_ENABLE_I18N */
3637
+ return tree;
3638
+ #endif /* not RE_ENABLE_I18N */
3639
+
3640
+ build_word_op_espace:
3641
+ re_free (sbcset);
3642
+ #ifdef RE_ENABLE_I18N
3643
+ free_charset (mbcset);
3644
+ #endif /* RE_ENABLE_I18N */
3645
+ *err = REG_ESPACE;
3646
+ return NULL;
3647
+ }
3648
+
3649
+ /* This is intended for the expressions like "a{1,3}".
3650
+ Fetch a number from `input', and return the number.
3651
+ Return -1, if the number field is empty like "{,1}".
3652
+ Return -2, If an error is occurred. */
3653
+
3654
+ static int
3655
+ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
3656
+ {
3657
+ int num = -1;
3658
+ unsigned char c;
3659
+ while (1)
3660
+ {
3661
+ fetch_token (token, input, syntax);
3662
+ c = token->opr.c;
3663
+ if (BE (token->type == END_OF_RE, 0))
3664
+ return -2;
3665
+ if (token->type == OP_CLOSE_DUP_NUM || c == ',')
3666
+ break;
3667
+ num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2)
3668
+ ? -2 : ((num == -1) ? c - '0' : num * 10 + c - '0'));
3669
+ num = (num > RE_DUP_MAX) ? -2 : num;
3670
+ }
3671
+ return num;
3672
+ }
3673
+
3674
+ #ifdef RE_ENABLE_I18N
3675
+ static void
3676
+ free_charset (re_charset_t *cset)
3677
+ {
3678
+ re_free (cset->mbchars);
3679
+ # ifdef _LIBC
3680
+ re_free (cset->coll_syms);
3681
+ re_free (cset->equiv_classes);
3682
+ re_free (cset->range_starts);
3683
+ re_free (cset->range_ends);
3684
+ # endif
3685
+ re_free (cset->char_classes);
3686
+ re_free (cset);
3687
+ }
3688
+ #endif /* RE_ENABLE_I18N */
3689
+
3690
+ /* Functions for binary tree operation. */
3691
+
3692
+ /* Create a tree node. */
3693
+
3694
+ static bin_tree_t *
3695
+ create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
3696
+ re_token_type_t type)
3697
+ {
3698
+ re_token_t t;
3699
+ t.type = type;
3700
+ return create_token_tree (dfa, left, right, &t);
3701
+ }
3702
+
3703
+ static bin_tree_t *
3704
+ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
3705
+ const re_token_t *token)
3706
+ {
3707
+ bin_tree_t *tree;
3708
+ if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0))
3709
+ {
3710
+ bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1);
3711
+
3712
+ if (storage == NULL)
3713
+ return NULL;
3714
+ storage->next = dfa->str_tree_storage;
3715
+ dfa->str_tree_storage = storage;
3716
+ dfa->str_tree_storage_idx = 0;
3717
+ }
3718
+ tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++];
3719
+
3720
+ tree->parent = NULL;
3721
+ tree->left = left;
3722
+ tree->right = right;
3723
+ tree->token = *token;
3724
+ tree->token.duplicated = 0;
3725
+ tree->token.opt_subexp = 0;
3726
+ tree->first = NULL;
3727
+ tree->next = NULL;
3728
+ tree->node_idx = -1;
3729
+
3730
+ if (left != NULL)
3731
+ left->parent = tree;
3732
+ if (right != NULL)
3733
+ right->parent = tree;
3734
+ return tree;
3735
+ }
3736
+
3737
+ /* Mark the tree SRC as an optional subexpression.
3738
+ To be called from preorder or postorder. */
3739
+
3740
+ static reg_errcode_t
3741
+ mark_opt_subexp (void *extra, bin_tree_t *node)
3742
+ {
3743
+ int idx = (int) (long) extra;
3744
+ if (node->token.type == SUBEXP && node->token.opr.idx == idx)
3745
+ node->token.opt_subexp = 1;
3746
+
3747
+ return REG_NOERROR;
3748
+ }
3749
+
3750
+ /* Free the allocated memory inside NODE. */
3751
+
3752
+ static void
3753
+ free_token (re_token_t *node)
3754
+ {
3755
+ #ifdef RE_ENABLE_I18N
3756
+ if (node->type == COMPLEX_BRACKET && node->duplicated == 0)
3757
+ free_charset (node->opr.mbcset);
3758
+ else
3759
+ #endif /* RE_ENABLE_I18N */
3760
+ if (node->type == SIMPLE_BRACKET && node->duplicated == 0)
3761
+ re_free (node->opr.sbcset);
3762
+ }
3763
+
3764
+ /* Worker function for tree walking. Free the allocated memory inside NODE
3765
+ and its children. */
3766
+
3767
+ static reg_errcode_t
3768
+ free_tree (void *extra, bin_tree_t *node)
3769
+ {
3770
+ free_token (&node->token);
3771
+ return REG_NOERROR;
3772
+ }
3773
+
3774
+
3775
+ /* Duplicate the node SRC, and return new node. This is a preorder
3776
+ visit similar to the one implemented by the generic visitor, but
3777
+ we need more infrastructure to maintain two parallel trees --- so,
3778
+ it's easier to duplicate. */
3779
+
3780
+ static bin_tree_t *
3781
+ duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa)
3782
+ {
3783
+ const bin_tree_t *node;
3784
+ bin_tree_t *dup_root;
3785
+ bin_tree_t **p_new = &dup_root, *dup_node = root->parent;
3786
+
3787
+ for (node = root; ; )
3788
+ {
3789
+ /* Create a new tree and link it back to the current parent. */
3790
+ *p_new = create_token_tree (dfa, NULL, NULL, &node->token);
3791
+ if (*p_new == NULL)
3792
+ return NULL;
3793
+ (*p_new)->parent = dup_node;
3794
+ (*p_new)->token.duplicated = 1;
3795
+ dup_node = *p_new;
3796
+
3797
+ /* Go to the left node, or up and to the right. */
3798
+ if (node->left)
3799
+ {
3800
+ node = node->left;
3801
+ p_new = &dup_node->left;
3802
+ }
3803
+ else
3804
+ {
3805
+ const bin_tree_t *prev = NULL;
3806
+ while (node->right == prev || node->right == NULL)
3807
+ {
3808
+ prev = node;
3809
+ node = node->parent;
3810
+ dup_node = dup_node->parent;
3811
+ if (!node)
3812
+ return dup_root;
3813
+ }
3814
+ node = node->right;
3815
+ p_new = &dup_node->right;
3816
+ }
3817
+ }
3818
+ }