adlint 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. data/AUTHORS +27 -0
  2. data/COPYING +674 -0
  3. data/ChangeLog +820 -0
  4. data/INSTALL +78 -0
  5. data/MANIFEST +464 -0
  6. data/NEWS +38 -0
  7. data/README +74 -0
  8. data/Rakefile +167 -0
  9. data/TODO +29 -0
  10. data/bin/adlint +141 -0
  11. data/bin/adlint_chk +129 -0
  12. data/bin/adlint_cma +122 -0
  13. data/bin/adlint_sma +129 -0
  14. data/bin/adlintize +286 -0
  15. data/etc/conf.d/fallback/cinit.erb +11 -0
  16. data/etc/conf.d/fallback/traits.erb +216 -0
  17. data/etc/conf.d/i686-cygwin/cinit-gcc_4.3.4.erb +149 -0
  18. data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +227 -0
  19. data/etc/conf.d/i686-devkit/cinit-gcc_4.5.2.erb +224 -0
  20. data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +226 -0
  21. data/etc/conf.d/i686-linux/cinit-gcc_4.5.1.erb +219 -0
  22. data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +224 -0
  23. data/etc/conf.d/i686-mingw/cinit-gcc_4.6.1.erb +234 -0
  24. data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +226 -0
  25. data/etc/conf.d/noarch/GNUmakefile.erb +119 -0
  26. data/etc/conf.d/noarch/adlint_all_bat.erb +9 -0
  27. data/etc/conf.d/noarch/adlint_all_sh.erb +10 -0
  28. data/etc/conf.d/noarch/pinit.erb +11 -0
  29. data/etc/mesg.d/en_US/messages.yml +784 -0
  30. data/etc/mesg.d/ja_JP/messages.yml +784 -0
  31. data/lib/adlint/analyzer.rb +294 -0
  32. data/lib/adlint/c/branch.rb +251 -0
  33. data/lib/adlint/c/builtin.rb +92 -0
  34. data/lib/adlint/c/code.rb +490 -0
  35. data/lib/adlint/c/const.rb +465 -0
  36. data/lib/adlint/c/conv.rb +212 -0
  37. data/lib/adlint/c/ctrlexpr.rb +949 -0
  38. data/lib/adlint/c/domain.rb +7499 -0
  39. data/lib/adlint/c/environ.rb +133 -0
  40. data/lib/adlint/c/expr.rb +1725 -0
  41. data/lib/adlint/c/format.rb +3209 -0
  42. data/lib/adlint/c/interp.rb +1740 -0
  43. data/lib/adlint/c/lexer.rb +241 -0
  44. data/lib/adlint/c/mediator.rb +313 -0
  45. data/lib/adlint/c/message.rb +13597 -0
  46. data/lib/adlint/c/metric.rb +765 -0
  47. data/lib/adlint/c/object.rb +1018 -0
  48. data/lib/adlint/c/parser.rb +3800 -0
  49. data/lib/adlint/c/parser.y +2054 -0
  50. data/lib/adlint/c/phase.rb +712 -0
  51. data/lib/adlint/c/resolver.rb +270 -0
  52. data/lib/adlint/c/scanner.rb +248 -0
  53. data/lib/adlint/c/scope.rb +74 -0
  54. data/lib/adlint/c/syntax.rb +4279 -0
  55. data/lib/adlint/c/type.rb +7506 -0
  56. data/lib/adlint/c/util.rb +91 -0
  57. data/lib/adlint/c/value.rb +2310 -0
  58. data/lib/adlint/c.rb +56 -0
  59. data/lib/adlint/code.rb +500 -0
  60. data/lib/adlint/cpp/code.rb +189 -0
  61. data/lib/adlint/cpp/constexpr.rb +721 -0
  62. data/lib/adlint/cpp/constexpr.y +389 -0
  63. data/lib/adlint/cpp/eval.rb +1012 -0
  64. data/lib/adlint/cpp/lexer.rb +860 -0
  65. data/lib/adlint/cpp/macro.rb +637 -0
  66. data/lib/adlint/cpp/message.rb +992 -0
  67. data/lib/adlint/cpp/phase.rb +176 -0
  68. data/lib/adlint/cpp/scanner.rb +93 -0
  69. data/lib/adlint/cpp/source.rb +169 -0
  70. data/lib/adlint/cpp/subst.rb +300 -0
  71. data/lib/adlint/cpp/syntax.rb +1412 -0
  72. data/lib/adlint/cpp/util.rb +97 -0
  73. data/lib/adlint/cpp.rb +43 -0
  74. data/lib/adlint/driver.rb +147 -0
  75. data/lib/adlint/error.rb +179 -0
  76. data/lib/adlint/lang.rb +97 -0
  77. data/lib/adlint/ld/message.rb +259 -0
  78. data/lib/adlint/ld/metric.rb +57 -0
  79. data/lib/adlint/ld/object.rb +542 -0
  80. data/lib/adlint/ld/phase.rb +193 -0
  81. data/lib/adlint/ld/typedef.rb +109 -0
  82. data/lib/adlint/ld/util.rb +88 -0
  83. data/lib/adlint/ld.rb +37 -0
  84. data/lib/adlint/lexer.rb +293 -0
  85. data/lib/adlint/message.rb +368 -0
  86. data/lib/adlint/metric.rb +805 -0
  87. data/lib/adlint/monitor.rb +144 -0
  88. data/lib/adlint/phase.rb +90 -0
  89. data/lib/adlint/prelude.rb +314 -0
  90. data/lib/adlint/report.rb +617 -0
  91. data/lib/adlint/source.rb +155 -0
  92. data/lib/adlint/symbol.rb +127 -0
  93. data/lib/adlint/token.rb +215 -0
  94. data/lib/adlint/traits.rb +643 -0
  95. data/lib/adlint/util.rb +524 -0
  96. data/lib/adlint/version.rb +71 -0
  97. data/lib/adlint.rb +66 -0
  98. data/share/HEADER +45 -0
  99. data/share/demo/Makefile +110 -0
  100. data/share/demo/ambig_operator/ambig_operator.c +289 -0
  101. data/share/demo/arg_points_unset/arg_points_unset.c +37 -0
  102. data/share/demo/array_range/array_range.c +62 -0
  103. data/share/demo/bad_bitfields/bad_bitfields.c +74 -0
  104. data/share/demo/bad_brace/bad_brace.c +19 -0
  105. data/share/demo/bad_charset/abcde$.h +0 -0
  106. data/share/demo/bad_charset/bad_charset.c +22 -0
  107. data/share/demo/bad_comment/bad_comment.c +3 -0
  108. data/share/demo/bad_const/bad_const.c +19 -0
  109. data/share/demo/bad_conv/bad_conv.c +48 -0
  110. data/share/demo/bad_indent/bad_indent.c +50 -0
  111. data/share/demo/bad_init/bad_init.c +49 -0
  112. data/share/demo/bad_macro/bad_macro.c +97 -0
  113. data/share/demo/bitwise_expr/bitwise_expr.c +19 -0
  114. data/share/demo/call_by_value/call_by_value.c +26 -0
  115. data/share/demo/cross_ref/cross_ref.c +21 -0
  116. data/share/demo/dangling_else/dangling_else.c +20 -0
  117. data/share/demo/dead_code/dead_code.c +237 -0
  118. data/share/demo/deep_nest/deep_nest.c +57 -0
  119. data/share/demo/dense_switch/dense_switch.c +62 -0
  120. data/share/demo/direct_recur/direct_recur.c +15 -0
  121. data/share/demo/div_by_zero/div_by_zero.c +35 -0
  122. data/share/demo/dos_source/dos_source.c +7 -0
  123. data/share/demo/funptr_cast/funptr_cast.c +26 -0
  124. data/share/demo/goto_stmt/goto_stmt.c +19 -0
  125. data/share/demo/id_hiding/id_hiding.c +19 -0
  126. data/share/demo/ill_defined/ill_defined.c +13 -0
  127. data/share/demo/implicit_conv/implicit_conv.c +60 -0
  128. data/share/demo/implicit_int/implicit_int.c +14 -0
  129. data/share/demo/incomplete_type/incomplete_type.c +49 -0
  130. data/share/demo/indirect_recur/indirect_recur_1.c +14 -0
  131. data/share/demo/indirect_recur/indirect_recur_1.h +7 -0
  132. data/share/demo/indirect_recur/indirect_recur_2.c +12 -0
  133. data/share/demo/indirect_recur/indirect_recur_2.h +6 -0
  134. data/share/demo/indirect_recur/indirect_recur_3.c +6 -0
  135. data/share/demo/indirect_recur/indirect_recur_3.h +6 -0
  136. data/share/demo/indirect_recur/indirect_recur_4.c +25 -0
  137. data/share/demo/intro_demo/intro_demo.c +76 -0
  138. data/share/demo/intro_demo/intro_demo.h +12 -0
  139. data/share/demo/intro_demo/useless_header.h +5 -0
  140. data/share/demo/invalid_call/invalid_call.c +32 -0
  141. data/share/demo/kandr_fundef/kandr_fundef.c +10 -0
  142. data/share/demo/line_comment/line_comment.c +12 -0
  143. data/share/demo/local_decl/local_decl.c +9 -0
  144. data/share/demo/logical_trick/logical_trick.c +36 -0
  145. data/share/demo/long_sym/long_sym.c +5 -0
  146. data/share/demo/loop_var/loop_var.c +92 -0
  147. data/share/demo/malloc_or_die/malloc_or_die.c +43 -0
  148. data/share/demo/may_be_null/may_be_null.c +52 -0
  149. data/share/demo/may_be_null_arith/may_be_null_arith.c +15 -0
  150. data/share/demo/may_be_unset/may_be_unset.c +34 -0
  151. data/share/demo/mmapped_io/mmapped_io.c +23 -0
  152. data/share/demo/multi_break/multi_break.c +33 -0
  153. data/share/demo/multi_decl/multi_decl_1.c +17 -0
  154. data/share/demo/multi_decl/multi_decl_1.h +6 -0
  155. data/share/demo/multi_decl/multi_decl_2.c +13 -0
  156. data/share/demo/multi_decl/multi_decl_2.h +6 -0
  157. data/share/demo/multi_decl/multi_decl_3.c +22 -0
  158. data/share/demo/multi_def/multi_def_1.c +36 -0
  159. data/share/demo/multi_def/multi_def_1.h +6 -0
  160. data/share/demo/multi_def/multi_def_2.c +22 -0
  161. data/share/demo/multi_def/multi_def_2.h +6 -0
  162. data/share/demo/multi_def/multi_def_3.c +6 -0
  163. data/share/demo/multi_typedef/multi_typedef.c +11 -0
  164. data/share/demo/multi_typedef/multi_typedef_1.h +1 -0
  165. data/share/demo/multi_typedef/multi_typedef_2.h +1 -0
  166. data/share/demo/must_be_false/must_be_false.c +53 -0
  167. data/share/demo/must_be_null/must_be_null.c +13 -0
  168. data/share/demo/must_be_null_arith/must_be_null_arith.c +14 -0
  169. data/share/demo/must_be_true/must_be_true.c +21 -0
  170. data/share/demo/no_eof_nl/no_eof_nl.c +4 -0
  171. data/share/demo/no_void_arg/no_void_arg.c +14 -0
  172. data/share/demo/null_stmt/null_stmt.c +19 -0
  173. data/share/demo/octal_const/octal_const.c +20 -0
  174. data/share/demo/output_by_param/output_by_param.c +17 -0
  175. data/share/demo/overflow/overflow.c +74 -0
  176. data/share/demo/press_release/press_release.c +40 -0
  177. data/share/demo/retn_lvar_addr/retn_lvar_addr.c +47 -0
  178. data/share/demo/shift_expr/shift_expr.c +14 -0
  179. data/share/demo/should_be_typedef/should_be_typedef.c +51 -0
  180. data/share/demo/static_paths/static_paths.c +153 -0
  181. data/share/demo/static_vars/static_vars.c +39 -0
  182. data/share/demo/tag_hiding/tag_hiding.c +18 -0
  183. data/share/demo/tricky_incdec/tricky_incdec.c +12 -0
  184. data/share/demo/undefined_macro/undefined_macro.c +17 -0
  185. data/share/demo/uninit_vars/uninit_vars.c +28 -0
  186. data/share/demo/union_type/union_type.c +23 -0
  187. data/share/demo/unmatch_decl/unmatch_decl_1.c +12 -0
  188. data/share/demo/unmatch_decl/unmatch_decl_1.h +8 -0
  189. data/share/demo/unmatch_decl/unmatch_decl_2.c +10 -0
  190. data/share/demo/unmatch_decl/unmatch_decl_2.h +8 -0
  191. data/share/demo/unmatch_decl/unmatch_decl_3.c +7 -0
  192. data/share/demo/unmatch_paren_macro/unmatch_paren_macro.c +15 -0
  193. data/share/demo/unreachable/unreachable.c +34 -0
  194. data/share/demo/useless_exp_funs/useless_exp_funs_1.c +14 -0
  195. data/share/demo/useless_exp_funs/useless_exp_funs_1.h +1 -0
  196. data/share/demo/useless_exp_funs/useless_exp_funs_2.c +6 -0
  197. data/share/demo/useless_exp_vars/useless_export_1.c +8 -0
  198. data/share/demo/useless_exp_vars/useless_export_1.h +1 -0
  199. data/share/demo/useless_exp_vars/useless_export_2.c +7 -0
  200. data/share/demo/useless_expr/useless_expr.c +17 -0
  201. data/share/demo/useless_funs/useless_funs_1.c +21 -0
  202. data/share/demo/useless_funs/useless_funs_1.h +8 -0
  203. data/share/demo/useless_funs/useless_funs_2.c +6 -0
  204. data/share/demo/useless_header/useless_header.c +9 -0
  205. data/share/demo/useless_header/useless_header_1.h +12 -0
  206. data/share/demo/useless_header/useless_header_2.h +6 -0
  207. data/share/demo/useless_header/useless_header_3.h +9 -0
  208. data/share/demo/useless_header/useless_header_4.h +3 -0
  209. data/share/demo/useless_vars/useless_vars.c +17 -0
  210. data/share/demo/va_funcall/va_funcall.c +25 -0
  211. data/share/demo/various_fundef/various_fundef.c +36 -0
  212. data/share/demo/wchar_wstring/wchar_wstring.c +7 -0
  213. data/share/demo/wrap_around/wrap_around.c +38 -0
  214. data/share/doc/Makefile +16 -0
  215. data/share/doc/adlint_on_adqua.png +0 -0
  216. data/share/doc/adlint_on_eclipse_en.png +0 -0
  217. data/share/doc/adlint_on_eclipse_ja.png +0 -0
  218. data/share/doc/adlint_on_vim_en.png +0 -0
  219. data/share/doc/adlint_on_vim_ja.png +0 -0
  220. data/share/doc/developers_guide_ja.html +171 -0
  221. data/share/doc/developers_guide_ja.texi +87 -0
  222. data/share/doc/gen_mesg_sections.rb +39 -0
  223. data/share/doc/samples/GNUmakefile +162 -0
  224. data/share/doc/samples/adlint_traits.yml +238 -0
  225. data/share/doc/texinfo.css +22 -0
  226. data/share/doc/users_guide_en.html +39975 -0
  227. data/share/doc/users_guide_en.texi +32640 -0
  228. data/share/doc/users_guide_ja.html +40505 -0
  229. data/share/doc/users_guide_ja.texi +33189 -0
  230. data/share/logo/adlint-110.png +0 -0
  231. data/share/logo/adlint-524.png +0 -0
  232. data/share/logo/adlint.svg +4637 -0
  233. data/share/sample/README +6 -0
  234. data/share/sample/bison-2.5/adlint/GNUmakefile +170 -0
  235. data/share/sample/bison-2.5/adlint/adlint_traits.yml +225 -0
  236. data/share/sample/bison-2.5/adlint/lib/GNUmakefile +198 -0
  237. data/share/sample/bison-2.5/adlint/lib/adlint_cinit.h +228 -0
  238. data/share/sample/bison-2.5/adlint/lib/adlint_pinit.h +21 -0
  239. data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +238 -0
  240. data/share/sample/bison-2.5/adlint/src/GNUmakefile +166 -0
  241. data/share/sample/bison-2.5/adlint/src/adlint_cinit.h +228 -0
  242. data/share/sample/bison-2.5/adlint/src/adlint_pinit.h +21 -0
  243. data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +239 -0
  244. data/share/sample/ctags-5.8/adlint/GNUmakefile +169 -0
  245. data/share/sample/ctags-5.8/adlint/adlint_cinit.h +219 -0
  246. data/share/sample/ctags-5.8/adlint/adlint_pinit.h +13 -0
  247. data/share/sample/ctags-5.8/adlint/adlint_traits.yml +225 -0
  248. data/share/sample/flex-2.5.35/adlint/GNUmakefile +140 -0
  249. data/share/sample/flex-2.5.35/adlint/adlint_cinit.h +219 -0
  250. data/share/sample/flex-2.5.35/adlint/adlint_pinit.h +14 -0
  251. data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +225 -0
  252. data/share/sample/ruby-1.9.3-p0/adlint/GNUmakefile +314 -0
  253. data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +225 -0
  254. data/share/sample/ruby-1.9.3-p0/adlint/core/GNUmakefile +204 -0
  255. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_cinit.h +228 -0
  256. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_pinit.h +28 -0
  257. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +240 -0
  258. data/share/sample/ruby-1.9.3-p0/adlint/enc/GNUmakefile +163 -0
  259. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_cinit.h +228 -0
  260. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_pinit.h +24 -0
  261. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +240 -0
  262. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/GNUmakefile +149 -0
  263. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_cinit.h +228 -0
  264. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_pinit.h +24 -0
  265. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +240 -0
  266. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/GNUmakefile +131 -0
  267. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_cinit.h +228 -0
  268. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_pinit.h +24 -0
  269. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +241 -0
  270. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/GNUmakefile +131 -0
  271. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_cinit.h +228 -0
  272. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_pinit.h +24 -0
  273. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +241 -0
  274. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/GNUmakefile +131 -0
  275. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_cinit.h +228 -0
  276. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_pinit.h +24 -0
  277. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +241 -0
  278. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/GNUmakefile +131 -0
  279. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_cinit.h +228 -0
  280. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_pinit.h +24 -0
  281. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +241 -0
  282. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/GNUmakefile +134 -0
  283. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_cinit.h +228 -0
  284. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_pinit.h +24 -0
  285. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +241 -0
  286. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/GNUmakefile +131 -0
  287. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_cinit.h +228 -0
  288. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_pinit.h +24 -0
  289. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +241 -0
  290. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/GNUmakefile +131 -0
  291. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_cinit.h +228 -0
  292. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_pinit.h +24 -0
  293. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +241 -0
  294. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/GNUmakefile +131 -0
  295. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_cinit.h +228 -0
  296. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_pinit.h +24 -0
  297. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +242 -0
  298. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/GNUmakefile +132 -0
  299. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_cinit.h +228 -0
  300. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_pinit.h +24 -0
  301. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +242 -0
  302. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/GNUmakefile +132 -0
  303. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_cinit.h +228 -0
  304. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_pinit.h +24 -0
  305. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +242 -0
  306. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/GNUmakefile +132 -0
  307. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_cinit.h +228 -0
  308. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_pinit.h +24 -0
  309. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +242 -0
  310. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/GNUmakefile +132 -0
  311. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_cinit.h +228 -0
  312. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_pinit.h +24 -0
  313. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +242 -0
  314. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/GNUmakefile +134 -0
  315. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_cinit.h +228 -0
  316. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_pinit.h +24 -0
  317. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +241 -0
  318. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/GNUmakefile +140 -0
  319. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_cinit.h +228 -0
  320. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_pinit.h +24 -0
  321. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +242 -0
  322. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/GNUmakefile +131 -0
  323. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_cinit.h +228 -0
  324. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_pinit.h +24 -0
  325. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +241 -0
  326. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/GNUmakefile +131 -0
  327. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_cinit.h +228 -0
  328. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_pinit.h +24 -0
  329. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +241 -0
  330. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/GNUmakefile +131 -0
  331. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_cinit.h +228 -0
  332. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_pinit.h +24 -0
  333. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +241 -0
  334. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/GNUmakefile +134 -0
  335. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_cinit.h +228 -0
  336. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_pinit.h +24 -0
  337. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +242 -0
  338. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/GNUmakefile +131 -0
  339. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_cinit.h +228 -0
  340. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_pinit.h +24 -0
  341. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +241 -0
  342. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/GNUmakefile +131 -0
  343. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_cinit.h +228 -0
  344. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_pinit.h +24 -0
  345. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +241 -0
  346. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/GNUmakefile +131 -0
  347. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_cinit.h +228 -0
  348. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_pinit.h +24 -0
  349. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +241 -0
  350. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/GNUmakefile +131 -0
  351. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_cinit.h +228 -0
  352. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_pinit.h +24 -0
  353. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +241 -0
  354. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/GNUmakefile +131 -0
  355. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_cinit.h +228 -0
  356. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_pinit.h +24 -0
  357. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +241 -0
  358. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/GNUmakefile +131 -0
  359. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_cinit.h +228 -0
  360. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_pinit.h +24 -0
  361. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +241 -0
  362. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/GNUmakefile +131 -0
  363. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_cinit.h +228 -0
  364. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_pinit.h +24 -0
  365. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +241 -0
  366. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/GNUmakefile +131 -0
  367. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_cinit.h +228 -0
  368. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_pinit.h +24 -0
  369. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +241 -0
  370. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/GNUmakefile +131 -0
  371. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_cinit.h +228 -0
  372. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_pinit.h +24 -0
  373. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +241 -0
  374. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/GNUmakefile +131 -0
  375. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_cinit.h +228 -0
  376. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_pinit.h +24 -0
  377. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +241 -0
  378. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/GNUmakefile +162 -0
  379. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_cinit.h +228 -0
  380. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_pinit.h +24 -0
  381. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +241 -0
  382. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/GNUmakefile +131 -0
  383. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_cinit.h +228 -0
  384. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_pinit.h +24 -0
  385. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +241 -0
  386. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/GNUmakefile +135 -0
  387. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_cinit.h +228 -0
  388. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_pinit.h +24 -0
  389. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +241 -0
  390. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/GNUmakefile +131 -0
  391. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_cinit.h +228 -0
  392. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_pinit.h +24 -0
  393. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +241 -0
  394. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/GNUmakefile +131 -0
  395. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_cinit.h +228 -0
  396. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_pinit.h +24 -0
  397. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +241 -0
  398. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/GNUmakefile +131 -0
  399. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_cinit.h +228 -0
  400. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_pinit.h +24 -0
  401. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +241 -0
  402. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/GNUmakefile +131 -0
  403. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_cinit.h +228 -0
  404. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_pinit.h +24 -0
  405. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +241 -0
  406. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/GNUmakefile +132 -0
  407. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_cinit.h +228 -0
  408. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_pinit.h +24 -0
  409. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +241 -0
  410. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/GNUmakefile +144 -0
  411. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_cinit.h +228 -0
  412. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_pinit.h +24 -0
  413. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +241 -0
  414. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/GNUmakefile +131 -0
  415. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_cinit.h +228 -0
  416. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_pinit.h +24 -0
  417. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +241 -0
  418. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/GNUmakefile +131 -0
  419. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_cinit.h +228 -0
  420. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_pinit.h +24 -0
  421. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +241 -0
  422. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/GNUmakefile +140 -0
  423. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_cinit.h +228 -0
  424. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_pinit.h +24 -0
  425. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +241 -0
  426. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/GNUmakefile +131 -0
  427. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_cinit.h +228 -0
  428. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_pinit.h +24 -0
  429. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +241 -0
  430. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/GNUmakefile +131 -0
  431. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_cinit.h +228 -0
  432. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_pinit.h +24 -0
  433. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +241 -0
  434. data/share/sample/screen-4.0.3/adlint/GNUmakefile +162 -0
  435. data/share/sample/screen-4.0.3/adlint/adlint_cinit.h +228 -0
  436. data/share/sample/screen-4.0.3/adlint/adlint_pinit.h +21 -0
  437. data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +238 -0
  438. data/share/sample/vim-7.3/adlint/vim/GNUmakefile +185 -0
  439. data/share/sample/vim-7.3/adlint/vim/adlint_cinit.h +228 -0
  440. data/share/sample/vim-7.3/adlint/vim/adlint_pinit.h +25 -0
  441. data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +250 -0
  442. data/share/sample/vim-7.3/adlint/xxd/GNUmakefile +131 -0
  443. data/share/sample/vim-7.3/adlint/xxd/adlint_cinit.h +228 -0
  444. data/share/sample/vim-7.3/adlint/xxd/adlint_pinit.h +24 -0
  445. data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +237 -0
  446. data/share/sample/zsh-4.3.15/adlint/GNUmakefile +146 -0
  447. data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +225 -0
  448. data/share/sample/zsh-4.3.15/adlint/builtins/GNUmakefile +132 -0
  449. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_cinit.h +228 -0
  450. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_pinit.h +24 -0
  451. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +240 -0
  452. data/share/sample/zsh-4.3.15/adlint/core/GNUmakefile +153 -0
  453. data/share/sample/zsh-4.3.15/adlint/core/adlint_cinit.h +228 -0
  454. data/share/sample/zsh-4.3.15/adlint/core/adlint_pinit.h +23 -0
  455. data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +239 -0
  456. data/share/sample/zsh-4.3.15/adlint/modules/GNUmakefile +147 -0
  457. data/share/sample/zsh-4.3.15/adlint/modules/adlint_cinit.h +228 -0
  458. data/share/sample/zsh-4.3.15/adlint/modules/adlint_pinit.h +24 -0
  459. data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +240 -0
  460. data/share/sample/zsh-4.3.15/adlint/zle/GNUmakefile +144 -0
  461. data/share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h +228 -0
  462. data/share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h +24 -0
  463. data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +239 -0
  464. data/spec/MUST_WRITE_SPECS_WITH_RSPEC +0 -0
  465. metadata +532 -0
data/Rakefile ADDED
@@ -0,0 +1,167 @@
1
+ #--
2
+ # ___ ____ __ ___ _________
3
+ # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
+ # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
+ # / __ |/ /_/ / /___/ / /| / / /
6
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
7
+ #
8
+ # This file is part of AdLint.
9
+ #
10
+ # AdLint is free software: you can redistribute it and/or modify it under the
11
+ # terms of the GNU General Public License as published by the Free Software
12
+ # Foundation, either version 3 of the License, or (at your option) any later
13
+ # version.
14
+ #
15
+ # AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
16
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
17
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License along with
20
+ # AdLint. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ #++
23
+
24
+ require "rubygems/package_task"
25
+ require "rdoc/task"
26
+
27
+ $: << File.expand_path("lib", File.dirname(__FILE__))
28
+ require "adlint/version"
29
+
30
+ task :default => [:gem]
31
+ task :gem => [:parser, :doc]
32
+ task :package => [:parser, :doc]
33
+
34
+ gemspec = Gem::Specification.new do |s|
35
+ s.name = "adlint"
36
+ s.version = AdLint::SHORT_VERSION
37
+ s.date = AdLint::RELEASE_DATE
38
+ s.homepage = "http://adlint.sourceforge.net/"
39
+ s.licenses = ["GPLv3+: GNU General Public License version 3 or later"]
40
+ s.author = "Yutaka Yanoh"
41
+ s.email = "yanoh@users.sourceforge.net"
42
+ s.summary = <<EOS
43
+ AdLint :: Advanced Lint - An open source and free source code static analyzer
44
+ EOS
45
+ s.description = <<EOS
46
+ AdLint is a source code static analyzer.
47
+ It can point out insecure or nonportable code fragments, and can measure various quality metrics of the source code.
48
+ It (currently) can analyze source code compliant with ANSI C89 / ISO C90 and partly ISO C99.
49
+ EOS
50
+
51
+ s.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
52
+
53
+ s.executables = %w(adlint adlint_sma adlint_cma adlint_chk adlintize)
54
+ s.require_paths = %w(lib)
55
+ manifest_fpath = File.expand_path("MANIFEST", File.dirname(__FILE__))
56
+ s.files = File.readlines(manifest_fpath).map { |str| str.chomp }
57
+
58
+ s.has_rdoc = true
59
+ s.extra_rdoc_files = %w(README)
60
+ s.rdoc_options = ["--main", "README", "--charset", "utf-8"]
61
+
62
+ s.post_install_message = <<EOS
63
+ -------------------------------------------------------------------------------
64
+ ___ ____ __ ___ _________
65
+ / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
66
+ / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
67
+ / __ |/ /_/ / /___/ / /| / / /
68
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
69
+
70
+ Thanks for installing AdLint!
71
+ Please visit our project homepage at <http://adlint.sourceforge.net/>.
72
+
73
+ -------------------------------------------------------------------------------
74
+ EOS
75
+ end
76
+
77
+ Gem::PackageTask.new(gemspec) do |pkg|
78
+ pkg.need_zip = true
79
+ pkg.need_tar_bz2 = true
80
+ end
81
+
82
+ desc "Generate all parsers"
83
+ task :parser do
84
+ chdir "lib/adlint/cpp" do
85
+ racc Dir["*.y"]
86
+ end
87
+ chdir "lib/adlint/c" do
88
+ racc Dir["*.y"]
89
+ end
90
+ end
91
+
92
+ desc "Build Texinfo HTML files"
93
+ task :doc do
94
+ chdir "share/doc" do
95
+ make "all"
96
+ end
97
+ end
98
+
99
+ RDoc::Task.new(:rdoc) do |rd|
100
+ rd.rdoc_dir = "rdoc"
101
+ rd.title = "AdLint #{AdLint::SHORT_VERSION} Documentation"
102
+ rd.main = "README"
103
+ rd.rdoc_files.include("README")
104
+ rd.rdoc_files.include("bin/*")
105
+ rd.rdoc_files.include("lib/**/*.{rb,y}")
106
+ rd.rdoc_files.exclude("lib/adlint/cpp/constexpr.rb")
107
+ rd.rdoc_files.exclude("lib/adlint/c/parser.rb")
108
+ rd.options << "--charset=utf-8" << "--all"
109
+ end
110
+
111
+ desc "Generate tags file"
112
+ task :tags do
113
+ ctags *Dir["bin/*", "lib/**/*.rb"]
114
+ end
115
+
116
+ desc "Remove all temporary products"
117
+ task :clean do
118
+ chdir "lib/adlint/cpp" do
119
+ rm_f Dir["*.output"]
120
+ end
121
+ chdir "lib/adlint/c" do
122
+ rm_f Dir["*.output"]
123
+ end
124
+ end
125
+
126
+ desc "Remove all generated products"
127
+ task :clobber => :clean do
128
+ chdir "lib/adlint/cpp" do
129
+ rm_f Dir["*.y"].map { |f| "#{File.basename(f, '.y')}.rb" }
130
+ end
131
+ chdir "lib/adlint/c" do
132
+ rm_f Dir["*.y"].map { |f| "#{File.basename(f, '.y')}.rb" }
133
+ end
134
+ rm_f Dir["share/doc/*.html"]
135
+ rm_rf ["rdoc", "pkg"]
136
+ rm_f "tags"
137
+ end
138
+
139
+ def racc(files)
140
+ files.each do |file|
141
+ sh "racc #{file} -o #{File.basename(file, ".y")}.rb"
142
+ racced_src = File.open("#{File.basename(file, ".y")}.rb") { |io| io.read }
143
+ File.open("#{File.basename(file, ".y")}.rb", "w") do |io|
144
+ beautify_racced_source(racced_src).each { |line| io.puts(line) }
145
+ end
146
+ end
147
+ end
148
+
149
+ def beautify_racced_source(src)
150
+ end_count = 0
151
+ src.each_line.reverse_each.map { |line|
152
+ line.chomp!
153
+ if end_count < 3 && line =~ /\A\s*(end\b.*)\z/
154
+ line = " " * end_count + $1
155
+ end_count += 1
156
+ end
157
+ line
158
+ }.reverse
159
+ end
160
+
161
+ def make(*targets)
162
+ sh "make " + targets.join(" ")
163
+ end
164
+
165
+ def ctags(*files)
166
+ sh "ctags " + files.join(" ")
167
+ end
data/TODO ADDED
@@ -0,0 +1,29 @@
1
+ --
2
+ ___ ____ __ ___ _________
3
+ / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
+ / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
+ / __ |/ /_/ / /___/ / /| / / /
6
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
7
+
8
+ This file is part of AdLint.
9
+
10
+ AdLint is free software: you can redistribute it and/or modify it under the
11
+ terms of the GNU General Public License as published by the Free Software
12
+ Foundation, either version 3 of the License, or (at your option) any later
13
+ version.
14
+
15
+ AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
16
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
17
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
18
+
19
+ You should have received a copy of the GNU General Public License along with
20
+ AdLint. If not, see <http://www.gnu.org/licenses/>.
21
+
22
+ ++
23
+
24
+ * Write unit and functional tests with RSpec
25
+ * Support many more preset build environments
26
+ * Implement automatic traits files generator
27
+ * Improve performance
28
+
29
+ Any contributions are welcome!
data/bin/adlint ADDED
@@ -0,0 +1,141 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # All in one analyzer.
4
+ #
5
+ # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
6
+ # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
7
+ # License:: GPLv3+: GNU General Public License version 3 or later
8
+ #
9
+ # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
10
+
11
+ #--
12
+ # ___ ____ __ ___ _________
13
+ # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
14
+ # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
15
+ # / __ |/ /_/ / /___/ / /| / / /
16
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
17
+ #
18
+ # This file is part of AdLint.
19
+ #
20
+ # AdLint is free software: you can redistribute it and/or modify it under the
21
+ # terms of the GNU General Public License as published by the Free Software
22
+ # Foundation, either version 3 of the License, or (at your option) any later
23
+ # version.
24
+ #
25
+ # AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
26
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
27
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License along with
30
+ # AdLint. If not, see <http://www.gnu.org/licenses/>.
31
+ #
32
+ #++
33
+
34
+ require "pathname"
35
+
36
+ $bindir = Pathname.new(__FILE__).realpath.dirname
37
+ $prefix = Pathname.new("..").expand_path($bindir)
38
+ $libdir = Pathname.new("lib").expand_path($prefix)
39
+ $etcdir = Pathname.new("etc").expand_path($prefix)
40
+
41
+ $stdout.set_encoding(Encoding.default_external)
42
+ $stderr.set_encoding(Encoding.default_external)
43
+
44
+ $:.unshift($libdir.to_s)
45
+
46
+ require "adlint"
47
+
48
+ ADLINT_VERSION = "AdLint all in one analyzer #{AdLint::VERSION}"
49
+
50
+ USAGE = <<EOS
51
+ Usage: adlint [options] [source-file...]
52
+ Options:
53
+ -t FILE, --traits FILE Use FILE as traits file (mandatory)
54
+ -l FILE, --list-file FILE Use FILE as list file
55
+ -o DIR, --output-dir DIR Output result files to DIR
56
+ -p NUM, --strip NUM Use source file names from which stripped NUM
57
+ leading components as the base name of output
58
+ files
59
+ -v, --verbose Increase verbosity but suppress message output
60
+ --version Display version information
61
+ --copyright Display copyright information
62
+ --prefix Display prefix directory of AdLint
63
+ -h, --help Display this message
64
+ EOS
65
+
66
+ require "getoptlong"
67
+
68
+ parser = GetoptLong.new(["--traits", "-t", GetoptLong::REQUIRED_ARGUMENT],
69
+ ["--list-file", "-l", GetoptLong::REQUIRED_ARGUMENT],
70
+ ["--output-dir", "-o", GetoptLong::REQUIRED_ARGUMENT],
71
+ ["--strip", "-p", GetoptLong::REQUIRED_ARGUMENT],
72
+ ["--verbose", "-v", GetoptLong::NO_ARGUMENT],
73
+ ["--version", GetoptLong::NO_ARGUMENT],
74
+ ["--copyright", GetoptLong::NO_ARGUMENT],
75
+ ["--prefix", GetoptLong::NO_ARGUMENT],
76
+ ["--help", "-h", GetoptLong::NO_ARGUMENT])
77
+
78
+ begin
79
+ traits_fpath = nil
80
+ list_fpath = nil
81
+ output_dpath = nil
82
+ strip_num = 0
83
+ verbose = false
84
+
85
+ parser.each do |option, value|
86
+ case option
87
+ when "--traits"
88
+ traits_fpath = Pathname.new(value)
89
+ when "--list-file"
90
+ list_fpath = Pathname.new(value)
91
+ when "--output-dir"
92
+ output_dpath = Pathname.new(value)
93
+ when "--strip"
94
+ strip_num = value.to_i
95
+ when "--verbose"
96
+ verbose = true
97
+ when "--version"
98
+ puts ADLINT_VERSION, AdLint::AUTHOR
99
+ exit 0
100
+ when "--copyright"
101
+ puts AdLint::COPYRIGHT
102
+ exit 0
103
+ when "--prefix"
104
+ puts $prefix
105
+ exit 0
106
+ when "--help"
107
+ puts USAGE
108
+ exit 0
109
+ end
110
+ end
111
+ rescue
112
+ $stderr.puts USAGE
113
+ exit 1
114
+ end
115
+
116
+ if list_fpath
117
+ fpaths = File.readlines(list_fpath).map { |line| Pathname.new(line.chomp) }
118
+ else
119
+ fpaths = ARGV.map { |str| Pathname.new(str) }
120
+ end
121
+
122
+ if fpaths.empty?
123
+ $stderr.puts "#{File.basename(__FILE__)}: no input files"
124
+ $stderr.puts USAGE
125
+ exit 1
126
+ end
127
+
128
+ unless traits_fpath
129
+ $stderr.puts "#{File.basename(__FILE__)}: no traits file"
130
+ $stderr.puts USAGE
131
+ exit 1
132
+ end
133
+
134
+ AdLint.setup(File.basename(__FILE__), traits_fpath, verbose)
135
+
136
+ AdLint.sma(fpaths, strip_num, output_dpath)
137
+
138
+ sma_met_fpaths = AdLint.sma_met_fpaths(fpaths, strip_num, output_dpath)
139
+ AdLint.cma(sma_met_fpaths, output_dpath)
140
+
141
+ exit 0
data/bin/adlint_chk ADDED
@@ -0,0 +1,129 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # Configuration validator.
4
+ #
5
+ # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
6
+ # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
7
+ # License:: GPLv3+: GNU General Public License version 3 or later
8
+ #
9
+ # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
10
+
11
+ #--
12
+ # ___ ____ __ ___ _________
13
+ # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
14
+ # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
15
+ # / __ |/ /_/ / /___/ / /| / / /
16
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
17
+ #
18
+ # This file is part of AdLint.
19
+ #
20
+ # AdLint is free software: you can redistribute it and/or modify it under the
21
+ # terms of the GNU General Public License as published by the Free Software
22
+ # Foundation, either version 3 of the License, or (at your option) any later
23
+ # version.
24
+ #
25
+ # AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
26
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
27
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License along with
30
+ # AdLint. If not, see <http://www.gnu.org/licenses/>.
31
+ #
32
+ #++
33
+
34
+ require "pathname"
35
+
36
+ $bindir = Pathname.new(__FILE__).realpath.dirname
37
+ $prefix = Pathname.new("..").expand_path($bindir)
38
+ $libdir = Pathname.new("lib").expand_path($prefix)
39
+ $etcdir = Pathname.new("etc").expand_path($prefix)
40
+
41
+ $stdout.set_encoding(Encoding.default_external)
42
+ $stderr.set_encoding(Encoding.default_external)
43
+
44
+ $:.unshift($libdir.to_s)
45
+
46
+ require "adlint"
47
+
48
+ VERSION = "AdLint configuration validator #{AdLint::VERSION}"
49
+
50
+ USAGE = <<EOS
51
+ Usage: adlint_chk [options] source-file...
52
+ Options:
53
+ -t FILE, --traits FILE Use FILE as traits file (mandatory)
54
+ -o DIR, --output-dir DIR Output result files to DIR
55
+ -p NUM, --strip NUM Use source file names from which stripped NUM
56
+ leading components as the base name of output
57
+ files
58
+ -v, --verbose Increase verbosity but suppress message output
59
+ --version Display version information
60
+ --copyright Display copyright information
61
+ --prefix Display prefix directory of AdLint
62
+ -h, --help Display this message
63
+ EOS
64
+
65
+ require "getoptlong"
66
+
67
+ parser = GetoptLong.new(["--traits", "-t", GetoptLong::REQUIRED_ARGUMENT],
68
+ ["--output-dir", "-o", GetoptLong::REQUIRED_ARGUMENT],
69
+ ["--strip", "-p", GetoptLong::REQUIRED_ARGUMENT],
70
+ ["--verbose", "-v", GetoptLong::NO_ARGUMENT],
71
+ ["--version", GetoptLong::NO_ARGUMENT],
72
+ ["--copyright", GetoptLong::NO_ARGUMENT],
73
+ ["--prefix", GetoptLong::NO_ARGUMENT],
74
+ ["--help", "-h", GetoptLong::NO_ARGUMENT])
75
+
76
+ begin
77
+ traits_fpath = nil
78
+ output_dpath = nil
79
+ strip_num = 0
80
+ verbose = false
81
+
82
+ parser.each_option do |option, value|
83
+ case option
84
+ when "--traits"
85
+ traits_fpath = Pathname.new(value)
86
+ when "--output-dir"
87
+ output_dpath = Pathname.new(value)
88
+ when "--strip"
89
+ strip_num = value.to_i
90
+ when "--verbose"
91
+ verbose = true
92
+ when "--version"
93
+ puts VERSION, AdLint::AUTHOR
94
+ exit 0
95
+ when "--copyright"
96
+ puts AdLint::COPYRIGHT
97
+ exit 0
98
+ when "--prefix"
99
+ puts $prefix
100
+ exit 0
101
+ when "--help"
102
+ puts USAGE
103
+ exit 0
104
+ end
105
+ end
106
+ rescue
107
+ $stderr.puts USAGE
108
+ exit 1
109
+ end
110
+
111
+ fpaths = ARGV.map { |str| Pathname.new(str) }
112
+
113
+ if fpaths.empty?
114
+ $stderr.puts "#{File.basename(__FILE__)}: no input files"
115
+ $stderr.puts USAGE
116
+ exit 1
117
+ end
118
+
119
+ unless traits_fpath
120
+ $stderr.puts "#{File.basename(__FILE__)}: no traits file"
121
+ $stderr.puts USAGE
122
+ exit 1
123
+ end
124
+
125
+ AdLint.setup(File.basename(__FILE__), traits_fpath, verbose)
126
+
127
+ AdLint.chk(fpaths, strip_num, output_dpath)
128
+
129
+ exit 0
data/bin/adlint_cma ADDED
@@ -0,0 +1,122 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # Cross module analyzer.
4
+ #
5
+ # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
6
+ # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
7
+ # License:: GPLv3+: GNU General Public License version 3 or later
8
+ #
9
+ # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
10
+
11
+ #--
12
+ # ___ ____ __ ___ _________
13
+ # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
14
+ # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
15
+ # / __ |/ /_/ / /___/ / /| / / /
16
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
17
+ #
18
+ # This file is part of AdLint.
19
+ #
20
+ # AdLint is free software: you can redistribute it and/or modify it under the
21
+ # terms of the GNU General Public License as published by the Free Software
22
+ # Foundation, either version 3 of the License, or (at your option) any later
23
+ # version.
24
+ #
25
+ # AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
26
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
27
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License along with
30
+ # AdLint. If not, see <http://www.gnu.org/licenses/>.
31
+ #
32
+ #++
33
+
34
+ require "pathname"
35
+
36
+ $bindir = Pathname.new(__FILE__).realpath.dirname
37
+ $prefix = Pathname.new("..").expand_path($bindir)
38
+ $libdir = Pathname.new("lib").expand_path($prefix)
39
+ $etcdir = Pathname.new("etc").expand_path($prefix)
40
+
41
+ $stdout.set_encoding(Encoding.default_external)
42
+ $stderr.set_encoding(Encoding.default_external)
43
+
44
+ $:.unshift($libdir.to_s)
45
+
46
+ require "adlint"
47
+
48
+ ADLINT_VERSION = "AdLint cross module analyzer #{AdLint::VERSION}"
49
+
50
+ USAGE = <<EOS
51
+ Usage: adlint_cma [options] sma-metric-file...
52
+ Options:
53
+ -t FILE, --traits FILE Use FILE as traits file (mandatory)
54
+ -o DIR, --output-dir DIR Output result files to DIR
55
+ -v, --verbose Increase verbosity but suppress message output
56
+ --version Display version information
57
+ --copyright Display copyright information
58
+ --prefix Display prefix directory of AdLint
59
+ -h, --help Display this message
60
+ EOS
61
+
62
+ require "getoptlong"
63
+
64
+ parser = GetoptLong.new(["--traits", "-t", GetoptLong::REQUIRED_ARGUMENT],
65
+ ["--output-dir", "-o", GetoptLong::REQUIRED_ARGUMENT],
66
+ ["--verbose", "-v", GetoptLong::NO_ARGUMENT],
67
+ ["--version", GetoptLong::NO_ARGUMENT],
68
+ ["--copyright", GetoptLong::NO_ARGUMENT],
69
+ ["--prefix", GetoptLong::NO_ARGUMENT],
70
+ ["--help", "-h", GetoptLong::NO_ARGUMENT])
71
+
72
+ begin
73
+ traits_fpath = nil
74
+ output_dpath = nil
75
+ verbose = false
76
+
77
+ parser.each_option do |option, value|
78
+ case option
79
+ when "--traits"
80
+ traits_fpath = Pathname.new(value)
81
+ when "--output-dir"
82
+ output_dpath = Pathname.new(value)
83
+ when "--verbose"
84
+ verbose = true
85
+ when "--version"
86
+ puts ADLINT_VERSION, AdLint::AUTHOR
87
+ exit 0
88
+ when "--copyright"
89
+ puts AdLint::COPYRIGHT
90
+ exit 0
91
+ when "--prefix"
92
+ puts $prefix
93
+ exit 0
94
+ when "--help"
95
+ puts USAGE
96
+ exit 0
97
+ end
98
+ end
99
+ rescue
100
+ $stderr.puts USAGE
101
+ exit 1
102
+ end
103
+
104
+ fpaths = ARGV.map { |str| Pathname.new(str) }
105
+
106
+ if fpaths.empty?
107
+ $stderr.puts "#{File.basename(__FILE__)}: no input files"
108
+ $stderr.puts USAGE
109
+ exit 1
110
+ end
111
+
112
+ unless traits_fpath
113
+ $stderr.puts "#{File.basename(__FILE__)}: no traits file"
114
+ $stderr.puts USAGE
115
+ exit 1
116
+ end
117
+
118
+ AdLint.setup(File.basename(__FILE__), traits_fpath, verbose)
119
+
120
+ AdLint.cma(fpaths, output_dpath)
121
+
122
+ exit 0