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.
- data/AUTHORS +27 -0
- data/COPYING +674 -0
- data/ChangeLog +820 -0
- data/INSTALL +78 -0
- data/MANIFEST +464 -0
- data/NEWS +38 -0
- data/README +74 -0
- data/Rakefile +167 -0
- data/TODO +29 -0
- data/bin/adlint +141 -0
- data/bin/adlint_chk +129 -0
- data/bin/adlint_cma +122 -0
- data/bin/adlint_sma +129 -0
- data/bin/adlintize +286 -0
- data/etc/conf.d/fallback/cinit.erb +11 -0
- data/etc/conf.d/fallback/traits.erb +216 -0
- data/etc/conf.d/i686-cygwin/cinit-gcc_4.3.4.erb +149 -0
- data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +227 -0
- data/etc/conf.d/i686-devkit/cinit-gcc_4.5.2.erb +224 -0
- data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +226 -0
- data/etc/conf.d/i686-linux/cinit-gcc_4.5.1.erb +219 -0
- data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +224 -0
- data/etc/conf.d/i686-mingw/cinit-gcc_4.6.1.erb +234 -0
- data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +226 -0
- data/etc/conf.d/noarch/GNUmakefile.erb +119 -0
- data/etc/conf.d/noarch/adlint_all_bat.erb +9 -0
- data/etc/conf.d/noarch/adlint_all_sh.erb +10 -0
- data/etc/conf.d/noarch/pinit.erb +11 -0
- data/etc/mesg.d/en_US/messages.yml +784 -0
- data/etc/mesg.d/ja_JP/messages.yml +784 -0
- data/lib/adlint/analyzer.rb +294 -0
- data/lib/adlint/c/branch.rb +251 -0
- data/lib/adlint/c/builtin.rb +92 -0
- data/lib/adlint/c/code.rb +490 -0
- data/lib/adlint/c/const.rb +465 -0
- data/lib/adlint/c/conv.rb +212 -0
- data/lib/adlint/c/ctrlexpr.rb +949 -0
- data/lib/adlint/c/domain.rb +7499 -0
- data/lib/adlint/c/environ.rb +133 -0
- data/lib/adlint/c/expr.rb +1725 -0
- data/lib/adlint/c/format.rb +3209 -0
- data/lib/adlint/c/interp.rb +1740 -0
- data/lib/adlint/c/lexer.rb +241 -0
- data/lib/adlint/c/mediator.rb +313 -0
- data/lib/adlint/c/message.rb +13597 -0
- data/lib/adlint/c/metric.rb +765 -0
- data/lib/adlint/c/object.rb +1018 -0
- data/lib/adlint/c/parser.rb +3800 -0
- data/lib/adlint/c/parser.y +2054 -0
- data/lib/adlint/c/phase.rb +712 -0
- data/lib/adlint/c/resolver.rb +270 -0
- data/lib/adlint/c/scanner.rb +248 -0
- data/lib/adlint/c/scope.rb +74 -0
- data/lib/adlint/c/syntax.rb +4279 -0
- data/lib/adlint/c/type.rb +7506 -0
- data/lib/adlint/c/util.rb +91 -0
- data/lib/adlint/c/value.rb +2310 -0
- data/lib/adlint/c.rb +56 -0
- data/lib/adlint/code.rb +500 -0
- data/lib/adlint/cpp/code.rb +189 -0
- data/lib/adlint/cpp/constexpr.rb +721 -0
- data/lib/adlint/cpp/constexpr.y +389 -0
- data/lib/adlint/cpp/eval.rb +1012 -0
- data/lib/adlint/cpp/lexer.rb +860 -0
- data/lib/adlint/cpp/macro.rb +637 -0
- data/lib/adlint/cpp/message.rb +992 -0
- data/lib/adlint/cpp/phase.rb +176 -0
- data/lib/adlint/cpp/scanner.rb +93 -0
- data/lib/adlint/cpp/source.rb +169 -0
- data/lib/adlint/cpp/subst.rb +300 -0
- data/lib/adlint/cpp/syntax.rb +1412 -0
- data/lib/adlint/cpp/util.rb +97 -0
- data/lib/adlint/cpp.rb +43 -0
- data/lib/adlint/driver.rb +147 -0
- data/lib/adlint/error.rb +179 -0
- data/lib/adlint/lang.rb +97 -0
- data/lib/adlint/ld/message.rb +259 -0
- data/lib/adlint/ld/metric.rb +57 -0
- data/lib/adlint/ld/object.rb +542 -0
- data/lib/adlint/ld/phase.rb +193 -0
- data/lib/adlint/ld/typedef.rb +109 -0
- data/lib/adlint/ld/util.rb +88 -0
- data/lib/adlint/ld.rb +37 -0
- data/lib/adlint/lexer.rb +293 -0
- data/lib/adlint/message.rb +368 -0
- data/lib/adlint/metric.rb +805 -0
- data/lib/adlint/monitor.rb +144 -0
- data/lib/adlint/phase.rb +90 -0
- data/lib/adlint/prelude.rb +314 -0
- data/lib/adlint/report.rb +617 -0
- data/lib/adlint/source.rb +155 -0
- data/lib/adlint/symbol.rb +127 -0
- data/lib/adlint/token.rb +215 -0
- data/lib/adlint/traits.rb +643 -0
- data/lib/adlint/util.rb +524 -0
- data/lib/adlint/version.rb +71 -0
- data/lib/adlint.rb +66 -0
- data/share/HEADER +45 -0
- data/share/demo/Makefile +110 -0
- data/share/demo/ambig_operator/ambig_operator.c +289 -0
- data/share/demo/arg_points_unset/arg_points_unset.c +37 -0
- data/share/demo/array_range/array_range.c +62 -0
- data/share/demo/bad_bitfields/bad_bitfields.c +74 -0
- data/share/demo/bad_brace/bad_brace.c +19 -0
- data/share/demo/bad_charset/abcde$.h +0 -0
- data/share/demo/bad_charset/bad_charset.c +22 -0
- data/share/demo/bad_comment/bad_comment.c +3 -0
- data/share/demo/bad_const/bad_const.c +19 -0
- data/share/demo/bad_conv/bad_conv.c +48 -0
- data/share/demo/bad_indent/bad_indent.c +50 -0
- data/share/demo/bad_init/bad_init.c +49 -0
- data/share/demo/bad_macro/bad_macro.c +97 -0
- data/share/demo/bitwise_expr/bitwise_expr.c +19 -0
- data/share/demo/call_by_value/call_by_value.c +26 -0
- data/share/demo/cross_ref/cross_ref.c +21 -0
- data/share/demo/dangling_else/dangling_else.c +20 -0
- data/share/demo/dead_code/dead_code.c +237 -0
- data/share/demo/deep_nest/deep_nest.c +57 -0
- data/share/demo/dense_switch/dense_switch.c +62 -0
- data/share/demo/direct_recur/direct_recur.c +15 -0
- data/share/demo/div_by_zero/div_by_zero.c +35 -0
- data/share/demo/dos_source/dos_source.c +7 -0
- data/share/demo/funptr_cast/funptr_cast.c +26 -0
- data/share/demo/goto_stmt/goto_stmt.c +19 -0
- data/share/demo/id_hiding/id_hiding.c +19 -0
- data/share/demo/ill_defined/ill_defined.c +13 -0
- data/share/demo/implicit_conv/implicit_conv.c +60 -0
- data/share/demo/implicit_int/implicit_int.c +14 -0
- data/share/demo/incomplete_type/incomplete_type.c +49 -0
- data/share/demo/indirect_recur/indirect_recur_1.c +14 -0
- data/share/demo/indirect_recur/indirect_recur_1.h +7 -0
- data/share/demo/indirect_recur/indirect_recur_2.c +12 -0
- data/share/demo/indirect_recur/indirect_recur_2.h +6 -0
- data/share/demo/indirect_recur/indirect_recur_3.c +6 -0
- data/share/demo/indirect_recur/indirect_recur_3.h +6 -0
- data/share/demo/indirect_recur/indirect_recur_4.c +25 -0
- data/share/demo/intro_demo/intro_demo.c +76 -0
- data/share/demo/intro_demo/intro_demo.h +12 -0
- data/share/demo/intro_demo/useless_header.h +5 -0
- data/share/demo/invalid_call/invalid_call.c +32 -0
- data/share/demo/kandr_fundef/kandr_fundef.c +10 -0
- data/share/demo/line_comment/line_comment.c +12 -0
- data/share/demo/local_decl/local_decl.c +9 -0
- data/share/demo/logical_trick/logical_trick.c +36 -0
- data/share/demo/long_sym/long_sym.c +5 -0
- data/share/demo/loop_var/loop_var.c +92 -0
- data/share/demo/malloc_or_die/malloc_or_die.c +43 -0
- data/share/demo/may_be_null/may_be_null.c +52 -0
- data/share/demo/may_be_null_arith/may_be_null_arith.c +15 -0
- data/share/demo/may_be_unset/may_be_unset.c +34 -0
- data/share/demo/mmapped_io/mmapped_io.c +23 -0
- data/share/demo/multi_break/multi_break.c +33 -0
- data/share/demo/multi_decl/multi_decl_1.c +17 -0
- data/share/demo/multi_decl/multi_decl_1.h +6 -0
- data/share/demo/multi_decl/multi_decl_2.c +13 -0
- data/share/demo/multi_decl/multi_decl_2.h +6 -0
- data/share/demo/multi_decl/multi_decl_3.c +22 -0
- data/share/demo/multi_def/multi_def_1.c +36 -0
- data/share/demo/multi_def/multi_def_1.h +6 -0
- data/share/demo/multi_def/multi_def_2.c +22 -0
- data/share/demo/multi_def/multi_def_2.h +6 -0
- data/share/demo/multi_def/multi_def_3.c +6 -0
- data/share/demo/multi_typedef/multi_typedef.c +11 -0
- data/share/demo/multi_typedef/multi_typedef_1.h +1 -0
- data/share/demo/multi_typedef/multi_typedef_2.h +1 -0
- data/share/demo/must_be_false/must_be_false.c +53 -0
- data/share/demo/must_be_null/must_be_null.c +13 -0
- data/share/demo/must_be_null_arith/must_be_null_arith.c +14 -0
- data/share/demo/must_be_true/must_be_true.c +21 -0
- data/share/demo/no_eof_nl/no_eof_nl.c +4 -0
- data/share/demo/no_void_arg/no_void_arg.c +14 -0
- data/share/demo/null_stmt/null_stmt.c +19 -0
- data/share/demo/octal_const/octal_const.c +20 -0
- data/share/demo/output_by_param/output_by_param.c +17 -0
- data/share/demo/overflow/overflow.c +74 -0
- data/share/demo/press_release/press_release.c +40 -0
- data/share/demo/retn_lvar_addr/retn_lvar_addr.c +47 -0
- data/share/demo/shift_expr/shift_expr.c +14 -0
- data/share/demo/should_be_typedef/should_be_typedef.c +51 -0
- data/share/demo/static_paths/static_paths.c +153 -0
- data/share/demo/static_vars/static_vars.c +39 -0
- data/share/demo/tag_hiding/tag_hiding.c +18 -0
- data/share/demo/tricky_incdec/tricky_incdec.c +12 -0
- data/share/demo/undefined_macro/undefined_macro.c +17 -0
- data/share/demo/uninit_vars/uninit_vars.c +28 -0
- data/share/demo/union_type/union_type.c +23 -0
- data/share/demo/unmatch_decl/unmatch_decl_1.c +12 -0
- data/share/demo/unmatch_decl/unmatch_decl_1.h +8 -0
- data/share/demo/unmatch_decl/unmatch_decl_2.c +10 -0
- data/share/demo/unmatch_decl/unmatch_decl_2.h +8 -0
- data/share/demo/unmatch_decl/unmatch_decl_3.c +7 -0
- data/share/demo/unmatch_paren_macro/unmatch_paren_macro.c +15 -0
- data/share/demo/unreachable/unreachable.c +34 -0
- data/share/demo/useless_exp_funs/useless_exp_funs_1.c +14 -0
- data/share/demo/useless_exp_funs/useless_exp_funs_1.h +1 -0
- data/share/demo/useless_exp_funs/useless_exp_funs_2.c +6 -0
- data/share/demo/useless_exp_vars/useless_export_1.c +8 -0
- data/share/demo/useless_exp_vars/useless_export_1.h +1 -0
- data/share/demo/useless_exp_vars/useless_export_2.c +7 -0
- data/share/demo/useless_expr/useless_expr.c +17 -0
- data/share/demo/useless_funs/useless_funs_1.c +21 -0
- data/share/demo/useless_funs/useless_funs_1.h +8 -0
- data/share/demo/useless_funs/useless_funs_2.c +6 -0
- data/share/demo/useless_header/useless_header.c +9 -0
- data/share/demo/useless_header/useless_header_1.h +12 -0
- data/share/demo/useless_header/useless_header_2.h +6 -0
- data/share/demo/useless_header/useless_header_3.h +9 -0
- data/share/demo/useless_header/useless_header_4.h +3 -0
- data/share/demo/useless_vars/useless_vars.c +17 -0
- data/share/demo/va_funcall/va_funcall.c +25 -0
- data/share/demo/various_fundef/various_fundef.c +36 -0
- data/share/demo/wchar_wstring/wchar_wstring.c +7 -0
- data/share/demo/wrap_around/wrap_around.c +38 -0
- data/share/doc/Makefile +16 -0
- data/share/doc/adlint_on_adqua.png +0 -0
- data/share/doc/adlint_on_eclipse_en.png +0 -0
- data/share/doc/adlint_on_eclipse_ja.png +0 -0
- data/share/doc/adlint_on_vim_en.png +0 -0
- data/share/doc/adlint_on_vim_ja.png +0 -0
- data/share/doc/developers_guide_ja.html +171 -0
- data/share/doc/developers_guide_ja.texi +87 -0
- data/share/doc/gen_mesg_sections.rb +39 -0
- data/share/doc/samples/GNUmakefile +162 -0
- data/share/doc/samples/adlint_traits.yml +238 -0
- data/share/doc/texinfo.css +22 -0
- data/share/doc/users_guide_en.html +39975 -0
- data/share/doc/users_guide_en.texi +32640 -0
- data/share/doc/users_guide_ja.html +40505 -0
- data/share/doc/users_guide_ja.texi +33189 -0
- data/share/logo/adlint-110.png +0 -0
- data/share/logo/adlint-524.png +0 -0
- data/share/logo/adlint.svg +4637 -0
- data/share/sample/README +6 -0
- data/share/sample/bison-2.5/adlint/GNUmakefile +170 -0
- data/share/sample/bison-2.5/adlint/adlint_traits.yml +225 -0
- data/share/sample/bison-2.5/adlint/lib/GNUmakefile +198 -0
- data/share/sample/bison-2.5/adlint/lib/adlint_cinit.h +228 -0
- data/share/sample/bison-2.5/adlint/lib/adlint_pinit.h +21 -0
- data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +238 -0
- data/share/sample/bison-2.5/adlint/src/GNUmakefile +166 -0
- data/share/sample/bison-2.5/adlint/src/adlint_cinit.h +228 -0
- data/share/sample/bison-2.5/adlint/src/adlint_pinit.h +21 -0
- data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +239 -0
- data/share/sample/ctags-5.8/adlint/GNUmakefile +169 -0
- data/share/sample/ctags-5.8/adlint/adlint_cinit.h +219 -0
- data/share/sample/ctags-5.8/adlint/adlint_pinit.h +13 -0
- data/share/sample/ctags-5.8/adlint/adlint_traits.yml +225 -0
- data/share/sample/flex-2.5.35/adlint/GNUmakefile +140 -0
- data/share/sample/flex-2.5.35/adlint/adlint_cinit.h +219 -0
- data/share/sample/flex-2.5.35/adlint/adlint_pinit.h +14 -0
- data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +225 -0
- data/share/sample/ruby-1.9.3-p0/adlint/GNUmakefile +314 -0
- data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +225 -0
- data/share/sample/ruby-1.9.3-p0/adlint/core/GNUmakefile +204 -0
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_pinit.h +28 -0
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +240 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc/GNUmakefile +163 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +240 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/GNUmakefile +149 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +240 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/GNUmakefile +134 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/GNUmakefile +132 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/GNUmakefile +132 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/GNUmakefile +132 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/GNUmakefile +132 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/GNUmakefile +134 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/GNUmakefile +140 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/GNUmakefile +134 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +242 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/GNUmakefile +162 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/GNUmakefile +135 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/GNUmakefile +132 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/GNUmakefile +144 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/GNUmakefile +140 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +241 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/GNUmakefile +131 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_cinit.h +228 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_pinit.h +24 -0
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +241 -0
- data/share/sample/screen-4.0.3/adlint/GNUmakefile +162 -0
- data/share/sample/screen-4.0.3/adlint/adlint_cinit.h +228 -0
- data/share/sample/screen-4.0.3/adlint/adlint_pinit.h +21 -0
- data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +238 -0
- data/share/sample/vim-7.3/adlint/vim/GNUmakefile +185 -0
- data/share/sample/vim-7.3/adlint/vim/adlint_cinit.h +228 -0
- data/share/sample/vim-7.3/adlint/vim/adlint_pinit.h +25 -0
- data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +250 -0
- data/share/sample/vim-7.3/adlint/xxd/GNUmakefile +131 -0
- data/share/sample/vim-7.3/adlint/xxd/adlint_cinit.h +228 -0
- data/share/sample/vim-7.3/adlint/xxd/adlint_pinit.h +24 -0
- data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +237 -0
- data/share/sample/zsh-4.3.15/adlint/GNUmakefile +146 -0
- data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +225 -0
- data/share/sample/zsh-4.3.15/adlint/builtins/GNUmakefile +132 -0
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_cinit.h +228 -0
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_pinit.h +24 -0
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +240 -0
- data/share/sample/zsh-4.3.15/adlint/core/GNUmakefile +153 -0
- data/share/sample/zsh-4.3.15/adlint/core/adlint_cinit.h +228 -0
- data/share/sample/zsh-4.3.15/adlint/core/adlint_pinit.h +23 -0
- data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +239 -0
- data/share/sample/zsh-4.3.15/adlint/modules/GNUmakefile +147 -0
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_cinit.h +228 -0
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_pinit.h +24 -0
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +240 -0
- data/share/sample/zsh-4.3.15/adlint/zle/GNUmakefile +144 -0
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h +228 -0
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h +24 -0
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +239 -0
- data/spec/MUST_WRITE_SPECS_WITH_RSPEC +0 -0
- 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
|