adlint 1.18.6 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (376) hide show
  1. data/ChangeLog +287 -188
  2. data/MANIFEST +278 -92
  3. data/NEWS +16 -4
  4. data/bin/adlintize +124 -3
  5. data/etc/conf.d/fallback/traits.erb +54 -1
  6. data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +54 -1
  7. data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +54 -1
  8. data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +54 -1
  9. data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +54 -1
  10. data/etc/mesg.d/c_builtin/en_US/messages.yml +2998 -0
  11. data/etc/mesg.d/c_builtin/ja_JP/messages.yml +2998 -0
  12. data/etc/mesg.d/core/en_US/messages.yml +134 -0
  13. data/etc/mesg.d/core/ja_JP/messages.yml +134 -0
  14. data/features/{message_detection → code_check}/E0013.feature +2 -2
  15. data/features/{message_detection → code_check}/W0001.feature +4 -4
  16. data/features/{message_detection → code_check}/W0002.feature +6 -6
  17. data/features/{message_detection → code_check}/W0003.feature +8 -8
  18. data/features/{message_detection → code_check}/W0007.feature +16 -16
  19. data/features/{message_detection → code_check}/W0010.feature +8 -8
  20. data/features/{message_detection → code_check}/W0013.feature +16 -16
  21. data/features/code_check/W0016.feature +200 -0
  22. data/features/code_check/W0017.feature +270 -0
  23. data/features/code_check/W0025.feature +66 -0
  24. data/features/code_check/W0026.feature +143 -0
  25. data/features/{message_detection → code_check}/W0093.feature +6 -6
  26. data/features/{message_detection → code_check}/W0104.feature +14 -14
  27. data/features/{message_detection → code_check}/W0109.feature +6 -6
  28. data/features/code_check/W0119.feature +151 -0
  29. data/features/code_check/W0120.feature +137 -0
  30. data/features/code_check/W0121.feature +147 -0
  31. data/features/code_check/W0122.feature +142 -0
  32. data/features/code_check/W0123.feature +147 -0
  33. data/features/code_check/W0124.feature +142 -0
  34. data/features/code_check/W0125.feature +147 -0
  35. data/features/code_check/W0126.feature +142 -0
  36. data/features/code_check/W0127.feature +147 -0
  37. data/features/code_check/W0128.feature +147 -0
  38. data/features/code_check/W0129.feature +147 -0
  39. data/features/code_check/W0130.feature +159 -0
  40. data/features/code_check/W0131.feature +154 -0
  41. data/features/code_check/W0132.feature +137 -0
  42. data/features/code_check/W0133.feature +151 -0
  43. data/features/code_check/W0134.feature +151 -0
  44. data/features/code_check/W0135.feature +147 -0
  45. data/features/code_check/W0136.feature +151 -0
  46. data/features/code_check/W0137.feature +147 -0
  47. data/features/code_check/W0138.feature +151 -0
  48. data/features/code_check/W0139.feature +147 -0
  49. data/features/code_check/W0140.feature +159 -0
  50. data/features/code_check/W0141.feature +155 -0
  51. data/features/code_check/W0142.feature +152 -0
  52. data/features/code_check/W0143.feature +147 -0
  53. data/features/code_check/W0144.feature +146 -0
  54. data/features/code_check/W0145.feature +147 -0
  55. data/features/code_check/W0146.feature +146 -0
  56. data/features/code_check/W0147.feature +146 -0
  57. data/features/code_check/W0148.feature +147 -0
  58. data/features/code_check/W0149.feature +146 -0
  59. data/features/code_check/W0150.feature +146 -0
  60. data/features/code_check/W0151.feature +146 -0
  61. data/features/code_check/W0152.feature +155 -0
  62. data/features/code_check/W0153.feature +155 -0
  63. data/features/code_check/W0154.feature +154 -0
  64. data/features/code_check/W0155.feature +154 -0
  65. data/features/code_check/W0156.feature +167 -0
  66. data/features/code_check/W0157.feature +152 -0
  67. data/features/code_check/W0158.feature +147 -0
  68. data/features/code_check/W0159.feature +147 -0
  69. data/features/code_check/W0160.feature +147 -0
  70. data/features/code_check/W0161.feature +151 -0
  71. data/features/code_check/W0162.feature +146 -0
  72. data/features/code_check/W0163.feature +146 -0
  73. data/features/code_check/W0164.feature +146 -0
  74. data/features/code_check/W0165.feature +151 -0
  75. data/features/code_check/W0166.feature +146 -0
  76. data/features/code_check/W0167.feature +146 -0
  77. data/features/code_check/W0168.feature +146 -0
  78. data/features/code_check/W0169.feature +151 -0
  79. data/features/code_check/W0170.feature +146 -0
  80. data/features/code_check/W0171.feature +146 -0
  81. data/features/code_check/W0172.feature +146 -0
  82. data/features/code_check/W0173.feature +159 -0
  83. data/features/code_check/W0174.feature +159 -0
  84. data/features/code_check/W0175.feature +158 -0
  85. data/features/code_check/W0176.feature +158 -0
  86. data/features/code_check/W0177.feature +159 -0
  87. data/features/code_check/W0178.feature +155 -0
  88. data/features/code_check/W0179.feature +154 -0
  89. data/features/code_check/W0180.feature +154 -0
  90. data/features/code_check/W0181.feature +167 -0
  91. data/features/code_check/W0182.feature +147 -0
  92. data/features/code_check/W0183.feature +147 -0
  93. data/features/code_check/W0184.feature +148 -0
  94. data/features/code_check/W0185.feature +142 -0
  95. data/features/code_check/W0186.feature +142 -0
  96. data/features/code_check/W0187.feature +142 -0
  97. data/features/code_check/W0188.feature +142 -0
  98. data/features/code_check/W0189.feature +142 -0
  99. data/features/code_check/W0190.feature +142 -0
  100. data/features/code_check/W0191.feature +142 -0
  101. data/features/code_check/W0192.feature +142 -0
  102. data/features/code_check/W0193.feature +143 -0
  103. data/features/code_check/W0194.feature +142 -0
  104. data/features/code_check/W0195.feature +142 -0
  105. data/features/code_check/W0196.feature +142 -0
  106. data/features/code_check/W0197.feature +142 -0
  107. data/features/code_check/W0198.feature +142 -0
  108. data/features/code_check/W0199.feature +143 -0
  109. data/features/code_check/W0200.feature +142 -0
  110. data/features/code_check/W0201.feature +142 -0
  111. data/features/code_check/W0202.feature +142 -0
  112. data/features/code_check/W0203.feature +142 -0
  113. data/features/code_check/W0204.feature +142 -0
  114. data/features/code_check/W0205.feature +143 -0
  115. data/features/code_check/W0206.feature +150 -0
  116. data/features/code_check/W0207.feature +150 -0
  117. data/features/code_check/W0208.feature +150 -0
  118. data/features/code_check/W0209.feature +151 -0
  119. data/features/code_check/W0210.feature +151 -0
  120. data/features/code_check/W0211.feature +151 -0
  121. data/features/code_check/W0212.feature +147 -0
  122. data/features/code_check/W0213.feature +142 -0
  123. data/features/code_check/W0214.feature +147 -0
  124. data/features/code_check/W0215.feature +142 -0
  125. data/features/code_check/W0216.feature +142 -0
  126. data/features/code_check/W0217.feature +142 -0
  127. data/features/code_check/W0218.feature +142 -0
  128. data/features/code_check/W0219.feature +142 -0
  129. data/features/code_check/W0220.feature +142 -0
  130. data/features/code_check/W0221.feature +147 -0
  131. data/features/code_check/W0222.feature +142 -0
  132. data/features/code_check/W0223.feature +147 -0
  133. data/features/code_check/W0224.feature +142 -0
  134. data/features/code_check/W0225.feature +142 -0
  135. data/features/code_check/W0226.feature +142 -0
  136. data/features/code_check/W0227.feature +142 -0
  137. data/features/code_check/W0228.feature +142 -0
  138. data/features/code_check/W0229.feature +142 -0
  139. data/features/code_check/W0230.feature +147 -0
  140. data/features/code_check/W0231.feature +142 -0
  141. data/features/code_check/W0232.feature +148 -0
  142. data/features/code_check/W0233.feature +142 -0
  143. data/features/code_check/W0234.feature +143 -0
  144. data/features/code_check/W0235.feature +142 -0
  145. data/features/code_check/W0236.feature +143 -0
  146. data/features/code_check/W0237.feature +142 -0
  147. data/features/code_check/W0238.feature +143 -0
  148. data/features/code_check/W0239.feature +154 -0
  149. data/features/code_check/W0240.feature +155 -0
  150. data/features/code_check/W0241.feature +154 -0
  151. data/features/code_check/W0242.feature +155 -0
  152. data/features/code_check/W0243.feature +154 -0
  153. data/features/code_check/W0244.feature +155 -0
  154. data/features/code_check/W0245.feature +147 -0
  155. data/features/code_check/W0246.feature +147 -0
  156. data/features/code_check/W0247.feature +147 -0
  157. data/features/code_check/W0248.feature +142 -0
  158. data/features/code_check/W0249.feature +142 -0
  159. data/features/code_check/W0250.feature +146 -0
  160. data/features/code_check/W0251.feature +159 -0
  161. data/features/code_check/W0252.feature +155 -0
  162. data/features/code_check/W0253.feature +154 -0
  163. data/features/code_check/W0254.feature +154 -0
  164. data/features/code_check/W0477.feature +77 -0
  165. data/features/code_check/W0478.feature +103 -0
  166. data/features/code_check/W0479.feature +65 -0
  167. data/features/code_check/W0480.feature +119 -0
  168. data/features/code_check/W0481.feature +28 -0
  169. data/features/code_check/W0482.feature +64 -0
  170. data/features/code_check/W0483.feature +62 -0
  171. data/features/code_check/W0573.feature +91 -0
  172. data/features/{message_detection → code_check}/W0583.feature +2 -2
  173. data/features/{message_detection → code_check}/W0606.feature +2 -2
  174. data/features/{message_detection → code_check}/W0641.feature +16 -16
  175. data/features/{message_detection → code_check}/W0643.feature +12 -12
  176. data/features/{message_detection → code_check}/W0644.feature +50 -50
  177. data/features/{message_detection → code_check}/W0645.feature +16 -16
  178. data/features/{message_detection → code_check}/W0646.feature +16 -16
  179. data/features/{message_detection → code_check}/W0649.feature +28 -28
  180. data/features/{message_detection → code_check}/W0650.feature +24 -24
  181. data/features/code_check/W0685.feature +120 -0
  182. data/features/code_check/W0686.feature +92 -0
  183. data/features/{message_detection → code_check}/W0687.feature +4 -4
  184. data/features/{message_detection → code_check}/W0688.feature +12 -12
  185. data/features/{message_detection → code_check}/W0689.feature +8 -8
  186. data/features/{message_detection → code_check}/W0690.feature +6 -6
  187. data/features/{message_detection → code_check}/W0691.feature +14 -14
  188. data/features/{message_detection → code_check}/W0692.feature +4 -4
  189. data/features/{message_detection → code_check}/W0694.feature +10 -10
  190. data/features/code_check/W0695.feature +78 -0
  191. data/features/{message_detection → code_check}/W0697.feature +18 -18
  192. data/features/{message_detection → code_check}/W0698.feature +2 -2
  193. data/features/{message_detection → code_check}/W0699.feature +2 -2
  194. data/features/{message_detection → code_check}/W0700.feature +6 -6
  195. data/features/{message_detection → code_check}/W0703.feature +6 -6
  196. data/features/{message_detection → code_check}/W0705.feature +24 -24
  197. data/features/{message_detection → code_check}/W0707.feature +20 -20
  198. data/features/{message_detection → code_check}/W0711.feature +10 -10
  199. data/features/{message_detection → code_check}/W0712.feature +10 -10
  200. data/features/{message_detection → code_check}/W0713.feature +10 -10
  201. data/features/{message_detection → code_check}/W0714.feature +10 -10
  202. data/features/{message_detection → code_check}/W0715.feature +11 -11
  203. data/features/{message_detection → code_check}/W0716.feature +6 -6
  204. data/features/{message_detection → code_check}/W0717.feature +6 -6
  205. data/features/{message_detection → code_check}/W0718.feature +6 -6
  206. data/features/{message_detection → code_check}/W0719.feature +16 -16
  207. data/features/{message_detection → code_check}/W0723.feature +6 -6
  208. data/features/code_check/W0726.feature +95 -0
  209. data/features/{message_detection → code_check}/W0732.feature +6 -6
  210. data/features/{message_detection → code_check}/W0733.feature +6 -6
  211. data/features/{message_detection → code_check}/W0734.feature +16 -16
  212. data/features/{message_detection → code_check}/W0735.feature +16 -16
  213. data/features/{message_detection → code_check}/W0745.feature +10 -10
  214. data/features/code_check/W0747.feature +146 -0
  215. data/features/code_check/W0748.feature +148 -0
  216. data/features/code_check/W0749.feature +146 -0
  217. data/features/code_check/W0750.feature +146 -0
  218. data/features/code_check/W0751.feature +148 -0
  219. data/features/code_check/W0752.feature +143 -0
  220. data/features/code_check/W0753.feature +146 -0
  221. data/features/code_check/W0754.feature +146 -0
  222. data/features/code_check/W0755.feature +142 -0
  223. data/features/code_check/W0756.feature +148 -0
  224. data/features/code_check/W0757.feature +143 -0
  225. data/features/code_check/W0758.feature +143 -0
  226. data/features/code_check/W0759.feature +154 -0
  227. data/features/code_check/W0760.feature +154 -0
  228. data/features/code_check/W0761.feature +154 -0
  229. data/features/code_check/W0762.feature +154 -0
  230. data/features/code_check/W0763.feature +156 -0
  231. data/features/code_check/W0764.feature +151 -0
  232. data/features/code_check/W0765.feature +151 -0
  233. data/features/code_check/W0766.feature +151 -0
  234. data/features/code_check/W0767.feature +142 -0
  235. data/features/code_check/W0768.feature +142 -0
  236. data/features/code_check/W0769.feature +142 -0
  237. data/features/{message_detection → code_check}/W0780.feature +12 -12
  238. data/features/code_check/W0781.feature +145 -0
  239. data/features/{message_detection → code_check}/W0783.feature +8 -8
  240. data/features/{message_detection → code_check}/W0792.feature +16 -16
  241. data/features/{message_detection → code_check}/W0793.feature +16 -16
  242. data/features/{message_detection → code_check}/W0794.feature +10 -10
  243. data/features/code_check/W0801.feature +84 -0
  244. data/features/{message_detection → code_check}/W0805.feature +14 -14
  245. data/features/code_check/W0806.feature +24 -0
  246. data/features/code_check/W0807.feature +35 -0
  247. data/features/code_check/W0808.feature +34 -0
  248. data/features/code_check/W0809.feature +114 -0
  249. data/features/{message_detection → code_check}/W0811.feature +10 -10
  250. data/features/{message_detection → code_check}/W0830.feature +12 -12
  251. data/features/{message_detection → code_check}/W0833.feature +30 -30
  252. data/features/{message_detection → code_check}/W0834.feature +26 -26
  253. data/features/{message_detection → code_check}/W1026.feature +8 -8
  254. data/features/code_check/W1030.feature +84 -0
  255. data/features/{message_detection → code_check}/W1031.feature +36 -36
  256. data/features/{message_detection → code_check}/W1039.feature +24 -24
  257. data/features/{message_detection → code_check}/W1040.feature +8 -8
  258. data/features/{message_detection → code_check}/W1041.feature +2 -2
  259. data/features/{message_detection → code_check}/W1046.feature +6 -6
  260. data/features/{message_detection → code_check}/W1047.feature +12 -12
  261. data/features/{message_detection → code_check}/W1052.feature +6 -6
  262. data/features/{message_detection → code_check}/W1066.feature +6 -6
  263. data/features/{message_detection → code_check}/W1067.feature +6 -6
  264. data/features/{message_detection → code_check}/W1068.feature +6 -6
  265. data/features/{message_detection → code_check}/W1069.feature +10 -10
  266. data/features/{message_detection → code_check}/W1070.feature +15 -15
  267. data/features/{message_detection → code_check}/W1071.feature +8 -8
  268. data/features/{message_detection → code_check}/W1072.feature +2 -2
  269. data/features/{message_detection → code_check}/W1073.feature +14 -14
  270. data/features/{message_detection → code_check}/W1074.feature +10 -10
  271. data/features/{message_detection → code_check}/W1075.feature +10 -10
  272. data/features/{message_detection → code_check}/W1076.feature +8 -8
  273. data/features/{message_detection → code_check}/W1077.feature +18 -18
  274. data/features/{message_detection → code_check}/W9001.feature +2 -2
  275. data/features/{message_detection → code_check}/W9003.feature +12 -12
  276. data/features/step_definitions/{message_detection_steps.rb → code_check_steps.rb} +1 -1
  277. data/features/support/env.rb +19 -3
  278. data/lib/adlint.rb +1 -0
  279. data/lib/adlint/analyzer.rb +17 -1
  280. data/lib/adlint/c.rb +0 -4
  281. data/lib/adlint/c/phase.rb +55 -745
  282. data/lib/adlint/code.rb +0 -24
  283. data/lib/adlint/cpp.rb +0 -3
  284. data/lib/adlint/cpp/phase.rb +50 -112
  285. data/lib/adlint/driver.rb +2 -2
  286. data/lib/adlint/error.rb +4 -4
  287. data/lib/adlint/exam.rb +143 -0
  288. data/lib/adlint/exam/c_builtin.rb +813 -0
  289. data/lib/adlint/{c/message.rb → exam/c_builtin/c_check.rb} +2130 -798
  290. data/lib/adlint/{c/message_shima.rb → exam/c_builtin/c_check_shima.rb} +99 -28
  291. data/lib/adlint/{c/code.rb → exam/c_builtin/c_code.rb} +31 -5
  292. data/lib/adlint/{c/metric.rb → exam/c_builtin/c_metric.rb} +43 -11
  293. data/lib/adlint/{cpp/message.rb → exam/c_builtin/cpp_check.rb} +177 -73
  294. data/lib/adlint/{cpp/message_shima.rb → exam/c_builtin/cpp_check_shima.rb} +28 -8
  295. data/lib/adlint/{cpp/code.rb → exam/c_builtin/cpp_code.rb} +14 -3
  296. data/lib/adlint/{ld/message.rb → exam/c_builtin/ld_check.rb} +33 -12
  297. data/lib/adlint/{ld/metric.rb → exam/c_builtin/ld_metric.rb} +8 -3
  298. data/lib/adlint/lang.rb +2 -2
  299. data/lib/adlint/ld.rb +0 -2
  300. data/lib/adlint/ld/phase.rb +101 -101
  301. data/lib/adlint/message.rb +155 -98
  302. data/lib/adlint/metric.rb +0 -27
  303. data/lib/adlint/phase.rb +28 -3
  304. data/lib/adlint/report.rb +22 -12
  305. data/lib/adlint/traits.rb +97 -5
  306. data/lib/adlint/util.rb +100 -11
  307. data/lib/adlint/version.rb +5 -5
  308. data/share/doc/developers_guide_ja.html +3 -3
  309. data/share/doc/developers_guide_ja.texi +1 -1
  310. data/share/doc/users_guide_en.html +1817 -1648
  311. data/share/doc/users_guide_en.texi +202 -22
  312. data/share/doc/users_guide_ja.html +1836 -1663
  313. data/share/doc/users_guide_ja.texi +203 -20
  314. data/share/sample/bison-2.5/adlint/adlint_traits.yml +55 -2
  315. data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +47 -2
  316. data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +47 -2
  317. data/share/sample/ctags-5.8/adlint/adlint_traits.yml +47 -2
  318. data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +47 -2
  319. data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +47 -2
  320. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +47 -2
  321. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +47 -2
  322. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +47 -2
  323. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +47 -2
  324. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +47 -2
  325. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +47 -2
  326. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +47 -2
  327. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +47 -2
  328. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +47 -2
  329. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +47 -2
  330. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +47 -2
  331. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +47 -2
  332. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +47 -2
  333. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +47 -2
  334. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +47 -2
  335. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +47 -2
  336. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +47 -2
  337. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +47 -2
  338. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +47 -2
  339. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +47 -2
  340. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +47 -2
  341. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +47 -2
  342. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +47 -2
  343. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +47 -2
  344. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +47 -2
  345. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +47 -2
  346. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +47 -2
  347. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +47 -2
  348. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +47 -2
  349. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +47 -2
  350. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +47 -2
  351. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +47 -2
  352. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +47 -2
  353. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +47 -2
  354. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +47 -2
  355. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +47 -2
  356. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +47 -2
  357. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +47 -2
  358. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +47 -2
  359. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +47 -2
  360. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +47 -2
  361. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +47 -2
  362. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +47 -2
  363. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +47 -2
  364. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +47 -2
  365. data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +47 -2
  366. data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +47 -2
  367. data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +47 -2
  368. data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +47 -2
  369. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +47 -2
  370. data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +47 -2
  371. data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +47 -2
  372. data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +47 -2
  373. data/spec/conf.d/default_traits.yml +56 -3
  374. metadata +280 -94
  375. data/etc/mesg.d/en_US/messages.yml +0 -797
  376. data/etc/mesg.d/ja_JP/messages.yml +0 -797
@@ -1,4 +1,4 @@
1
- # Message detection classes for C preprocessor language.
1
+ # Code checkings (cpp-phase) of adlint-exam-c_builtin package.
2
2
  #
3
3
  # Author:: Rie Shima <mailto:rkakuuchi@users.sourceforge.net>
4
4
  # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
@@ -29,13 +29,18 @@
29
29
  #
30
30
  #++
31
31
 
32
+ require "adlint/exam"
32
33
  require "adlint/report"
33
- require "adlint/message"
34
+ require "adlint/cpp/phase"
35
+ require "adlint/cpp/macro"
34
36
 
35
37
  module AdLint #:nodoc:
36
- module Cpp #:nodoc:
38
+ module Exam #:nodoc:
39
+ module CBuiltin #:nodoc:
40
+
41
+ class W0687 < PassiveCodeCheck
42
+ def_registrant_phase Cpp::Prepare2Phase
37
43
 
38
- class W0687 < PassiveMessageDetection
39
44
  # NOTE: W0687 may be duplicative when the same header which causes this
40
45
  # warning is included twice or more.
41
46
  ensure_uniqueness_of :W0687
@@ -54,7 +59,9 @@ module Cpp #:nodoc:
54
59
  end
55
60
  end
56
61
 
57
- class W0688 < PassiveMessageDetection
62
+ class W0688 < PassiveCodeCheck
63
+ def_registrant_phase Cpp::Prepare2Phase
64
+
58
65
  # NOTE: W0688 may be duplicative when the same header which causes this
59
66
  # warning is included twice or more.
60
67
  ensure_uniqueness_of :W0688
@@ -82,6 +89,8 @@ module Cpp #:nodoc:
82
89
  end
83
90
 
84
91
  class W0689 < W0688
92
+ def_registrant_phase Cpp::Prepare2Phase
93
+
85
94
  # NOTE: W0689 may be duplicative when the same header which causes this
86
95
  # warning is included twice or more.
87
96
  ensure_uniqueness_of :W0689
@@ -101,6 +110,8 @@ module Cpp #:nodoc:
101
110
  end
102
111
 
103
112
  class W0690 < W0688
113
+ def_registrant_phase Cpp::Prepare2Phase
114
+
104
115
  # NOTE: W0690 may be duplicative when the same header which causes this
105
116
  # warning is included twice or more.
106
117
  ensure_uniqueness_of :W0690
@@ -116,6 +127,8 @@ module Cpp #:nodoc:
116
127
  end
117
128
 
118
129
  class W0695 < W0687
130
+ def_registrant_phase Cpp::Prepare2Phase
131
+
119
132
  # NOTE: W0695 may be duplicative when the same header which causes this
120
133
  # warning is included twice or more.
121
134
  ensure_uniqueness_of :W0695
@@ -128,7 +141,9 @@ module Cpp #:nodoc:
128
141
  end
129
142
  end
130
143
 
131
- class W0806 < PassiveMessageDetection
144
+ class W0806 < PassiveCodeCheck
145
+ def_registrant_phase Cpp::Prepare2Phase
146
+
132
147
  # NOTE: W0806 may be duplicative when the same header which causes this
133
148
  # warning is included twice or more.
134
149
  ensure_uniqueness_of :W0806
@@ -148,20 +163,24 @@ module Cpp #:nodoc:
148
163
  end
149
164
 
150
165
  class W0807 < W0687
166
+ def_registrant_phase Cpp::Prepare2Phase
167
+
151
168
  # NOTE: W0807 may be duplicative when the same header which causes this
152
169
  # warning is included twice or more.
153
170
  ensure_uniqueness_of :W0807
154
171
 
155
172
  private
156
173
  def check(undef_line, macro)
157
- if macro.kind_of?(SpecialMacro)
174
+ if macro.kind_of?(Cpp::SpecialMacro)
158
175
  identifier = undef_line.identifier
159
176
  W(:W0807, identifier.location, identifier.value)
160
177
  end
161
178
  end
162
179
  end
163
180
 
164
- class W0808 < PassiveMessageDetection
181
+ class W0808 < PassiveCodeCheck
182
+ def_registrant_phase Cpp::Prepare2Phase
183
+
165
184
  # NOTE: W0808 may be duplicative when the same header which causes this
166
185
  # warning is included twice or more.
167
186
  ensure_uniqueness_of :W0808
@@ -185,3 +204,4 @@ module Cpp #:nodoc:
185
204
 
186
205
  end
187
206
  end
207
+ end
@@ -1,4 +1,4 @@
1
- # Code structure extractor for C preprocessor language.
1
+ # Code structure extractions (cpp-phase) of adlint-exam-c_builtin package.
2
2
  #
3
3
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
4
4
  # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
@@ -29,13 +29,17 @@
29
29
  #
30
30
  #++
31
31
 
32
- require "adlint/code"
32
+ require "adlint/exam"
33
33
  require "adlint/report"
34
+ require "adlint/cpp/phase"
34
35
 
35
36
  module AdLint #:nodoc:
36
- module Cpp #:nodoc:
37
+ module Exam #:nodoc:
38
+ module CBuiltin #:nodoc:
37
39
 
38
40
  class ObjectLikeMacroExtraction < CodeExtraction
41
+ def_registrant_phase Cpp::Prepare2Phase
42
+
39
43
  def initialize(context)
40
44
  super
41
45
  interp = context[:cpp_interpreter]
@@ -52,6 +56,8 @@ module Cpp #:nodoc:
52
56
  end
53
57
 
54
58
  class FuncLikeMacroExtraction < CodeExtraction
59
+ def_registrant_phase Cpp::Prepare2Phase
60
+
55
61
  def initialize(context)
56
62
  super
57
63
  interp = context[:cpp_interpreter]
@@ -69,6 +75,8 @@ module Cpp #:nodoc:
69
75
  end
70
76
 
71
77
  class IncludeDirectiveExtraction < CodeExtraction
78
+ def_registrant_phase Cpp::Prepare2Phase
79
+
72
80
  def initialize(context)
73
81
  super
74
82
  interp = context[:cpp_interpreter]
@@ -90,6 +98,8 @@ module Cpp #:nodoc:
90
98
  end
91
99
 
92
100
  class DirectiveExtraction < CodeExtraction
101
+ def_registrant_phase Cpp::Prepare2Phase
102
+
93
103
  def initialize(context)
94
104
  super
95
105
  visitor = context[:cpp_visitor]
@@ -187,3 +197,4 @@ module Cpp #:nodoc:
187
197
 
188
198
  end
189
199
  end
200
+ end
@@ -1,4 +1,4 @@
1
- # Message detection classes for cross module analysis.
1
+ # Code checkings (ld-phase) of adlint-exam-c_builtin package.
2
2
  #
3
3
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
4
4
  # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
@@ -29,12 +29,16 @@
29
29
  #
30
30
  #++
31
31
 
32
- require "adlint/message"
32
+ require "adlint/exam"
33
+ require "adlint/ld/phase"
33
34
 
34
35
  module AdLint #:nodoc:
35
- module Ld #:nodoc:
36
+ module Exam #:nodoc:
37
+ module CBuiltin #:nodoc:
38
+
39
+ class W0555 < PassiveCodeCheck
40
+ def_registrant_phase Ld::PreparePhase
36
41
 
37
- class W0555 < PassiveMessageDetection
38
42
  def initialize(context)
39
43
  super
40
44
  context[:ld_function_traversal].on_definition += method(:check)
@@ -49,7 +53,9 @@ module Ld #:nodoc:
49
53
  end
50
54
  end
51
55
 
52
- class W0586 < PassiveMessageDetection
56
+ class W0586 < PassiveCodeCheck
57
+ def_registrant_phase Ld::PreparePhase
58
+
53
59
  def initialize(context)
54
60
  super
55
61
  context[:ld_typedef_traversal].listeners += method(:check)
@@ -64,7 +70,9 @@ module Ld #:nodoc:
64
70
  end
65
71
  end
66
72
 
67
- class W0589 < PassiveMessageDetection
73
+ class W0589 < PassiveCodeCheck
74
+ def_registrant_phase Ld::PreparePhase
75
+
68
76
  def initialize(context)
69
77
  super
70
78
  context[:ld_function_traversal].on_definition += method(:check_function)
@@ -95,7 +103,9 @@ module Ld #:nodoc:
95
103
  end
96
104
  end
97
105
 
98
- class W0591 < PassiveMessageDetection
106
+ class W0591 < PassiveCodeCheck
107
+ def_registrant_phase Ld::PreparePhase
108
+
99
109
  def initialize(context)
100
110
  super
101
111
  context[:ld_function_traversal].on_definition += method(:check)
@@ -114,7 +124,9 @@ module Ld #:nodoc:
114
124
  end
115
125
  end
116
126
 
117
- class W0593 < PassiveMessageDetection
127
+ class W0593 < PassiveCodeCheck
128
+ def_registrant_phase Ld::PreparePhase
129
+
118
130
  def initialize(context)
119
131
  super
120
132
  context[:ld_variable_traversal].on_definition += method(:check)
@@ -133,7 +145,9 @@ module Ld #:nodoc:
133
145
  end
134
146
  end
135
147
 
136
- class W0628 < PassiveMessageDetection
148
+ class W0628 < PassiveCodeCheck
149
+ def_registrant_phase Ld::PreparePhase
150
+
137
151
  def initialize(context)
138
152
  super
139
153
  context[:ld_function_traversal].on_definition += method(:check)
@@ -150,7 +164,9 @@ module Ld #:nodoc:
150
164
  end
151
165
  end
152
166
 
153
- class W0770 < PassiveMessageDetection
167
+ class W0770 < PassiveCodeCheck
168
+ def_registrant_phase Ld::PreparePhase
169
+
154
170
  # NOTE: W0770 may be duplicative when function declarations of the same
155
171
  # name appears twice or more in the project.
156
172
  ensure_uniqueness_of :W0770
@@ -185,7 +201,9 @@ module Ld #:nodoc:
185
201
  end
186
202
  end
187
203
 
188
- class W0791 < PassiveMessageDetection
204
+ class W0791 < PassiveCodeCheck
205
+ def_registrant_phase Ld::PreparePhase
206
+
189
207
  # NOTE: W0791 may be duplicative when definitions of the same name appears
190
208
  # twice or more in the project.
191
209
  ensure_uniqueness_of :W0791
@@ -216,7 +234,9 @@ module Ld #:nodoc:
216
234
  end
217
235
  end
218
236
 
219
- class W1037 < PassiveMessageDetection
237
+ class W1037 < PassiveCodeCheck
238
+ def_registrant_phase Ld::PreparePhase
239
+
220
240
  # NOTE: W1037 may be duplicative when declarations or definitions of the
221
241
  # same name appears twice or more in the project.
222
242
  ensure_uniqueness_of :W1037
@@ -257,3 +277,4 @@ module Ld #:nodoc:
257
277
 
258
278
  end
259
279
  end
280
+ end
@@ -1,4 +1,4 @@
1
- # Quality metric measurement classes for cross module analysis.
1
+ # Metric measurements (ld-phase) of adlint-exam-c_builtin package.
2
2
  #
3
3
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
4
4
  # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
@@ -29,13 +29,17 @@
29
29
  #
30
30
  #++
31
31
 
32
- require "adlint/metric"
32
+ require "adlint/exam"
33
33
  require "adlint/report"
34
+ require "adlint/ld/phase"
34
35
 
35
36
  module AdLint #:nodoc:
36
- module Ld #:nodoc:
37
+ module Exam #:nodoc:
38
+ module CBuiltin #:nodoc:
37
39
 
38
40
  class FN_CALL < MetricMeasurement
41
+ def_registrant_phase Ld::PreparePhase
42
+
39
43
  def initialize(context)
40
44
  super
41
45
  @context = context
@@ -55,3 +59,4 @@ module Ld #:nodoc:
55
59
 
56
60
  end
57
61
  end
62
+ end
data/lib/adlint/lang.rb CHANGED
@@ -79,8 +79,8 @@ module AdLint #:nodoc:
79
79
  AdLint::C::InterpPhase,
80
80
  AdLint::Cpp::ReviewPhase,
81
81
  AdLint::C::ReviewPhase,
82
- AdLint::Cpp::CommandPhase,
83
- AdLint::C::CommandPhase
82
+ AdLint::Cpp::ExaminationPhase,
83
+ AdLint::C::ExaminationPhase
84
84
  ].freeze
85
85
  end
86
86
 
data/lib/adlint/ld.rb CHANGED
@@ -29,8 +29,6 @@
29
29
  #
30
30
  #++
31
31
 
32
- require "adlint/ld/message"
33
- require "adlint/ld/metric"
34
32
  require "adlint/ld/object"
35
33
  require "adlint/ld/util"
36
34
  require "adlint/ld/typedef"
@@ -30,162 +30,162 @@
30
30
  #++
31
31
 
32
32
  require "adlint/phase"
33
- require "adlint/monitor"
34
33
  require "adlint/ld/object"
35
34
  require "adlint/ld/typedef"
36
- require "adlint/ld/message"
37
- require "adlint/ld/metric"
38
35
  require "adlint/ld/util"
39
36
 
40
37
  module AdLint #:nodoc:
41
38
  module Ld #:nodoc:
42
39
 
43
- class MapTypedefPhase < Phase
40
+ class LdPhase < Phase
41
+ def initialize(context, phase_name)
42
+ super(context, "ld", phase_name)
43
+ end
44
+ end
45
+
46
+ class MapTypedefPhase < LdPhase
47
+ def initialize(context)
48
+ super(context, "mtd")
49
+ end
50
+
44
51
  private
45
- def do_execute(context)
46
- monitored_region("mtd") do |monitor|
47
- mapper = TypedefMapper.new
48
- context[:metric_fpaths].each do |fpath|
49
- mapper.execute(fpath)
50
- monitor.progress += 1.0 / context[:metric_fpaths].size
51
- end
52
- context[:ld_typedef_mapping] = mapper.result
52
+ def do_execute(context, monitor)
53
+ mapper = TypedefMapper.new
54
+ context[:metric_fpaths].each do |fpath|
55
+ mapper.execute(fpath)
56
+ monitor.progress += 1.0 / context[:metric_fpaths].size
53
57
  end
58
+ context[:ld_typedef_mapping] = mapper.result
54
59
  end
55
60
  end
56
61
 
57
- class MapFunctionPhase < Phase
62
+ class MapFunctionPhase < LdPhase
63
+ def initialize(context)
64
+ super(context, "mfn")
65
+ end
66
+
58
67
  private
59
- def do_execute(context)
60
- monitored_region("mfn") do |monitor|
61
- mapper = FunctionMapper.new
62
- context[:metric_fpaths].each do |fpath|
63
- mapper.execute(fpath)
64
- monitor.progress += 1.0 / context[:metric_fpaths].size
65
- end
66
- context[:ld_function_mapping] = mapper.result
68
+ def do_execute(context, monitor)
69
+ mapper = FunctionMapper.new
70
+ context[:metric_fpaths].each do |fpath|
71
+ mapper.execute(fpath)
72
+ monitor.progress += 1.0 / context[:metric_fpaths].size
67
73
  end
74
+ context[:ld_function_mapping] = mapper.result
68
75
  end
69
76
  end
70
77
 
71
- class MapVariablePhase < Phase
78
+ class MapVariablePhase < LdPhase
79
+ def initialize(context)
80
+ super(context, "mvr")
81
+ end
82
+
72
83
  private
73
- def do_execute(context)
74
- monitored_region("mvr") do |monitor|
75
- mapper = VariableMapper.new
76
- context[:metric_fpaths].each do |fpath|
77
- mapper.execute(fpath)
78
- monitor.progress += 1.0 / context[:metric_fpaths].size
79
- end
80
- context[:ld_variable_mapping] = mapper.result
84
+ def do_execute(context, monitor)
85
+ mapper = VariableMapper.new
86
+ context[:metric_fpaths].each do |fpath|
87
+ mapper.execute(fpath)
88
+ monitor.progress += 1.0 / context[:metric_fpaths].size
81
89
  end
90
+ context[:ld_variable_mapping] = mapper.result
82
91
  end
83
92
  end
84
93
 
85
- class LinkFunctionPhase < Phase
94
+ class LinkFunctionPhase < LdPhase
95
+ def initialize(context)
96
+ super(context, "lfn")
97
+ end
98
+
86
99
  private
87
- def do_execute(context)
88
- monitored_region("lfn") do |monitor|
89
- builder = FunctionCallGraphBuilder.new(context[:ld_function_mapping])
90
- context[:metric_fpaths].each do |fpath|
91
- builder.execute(fpath)
92
- monitor.progress += 1.0 / context[:metric_fpaths].size
93
- end
94
- context[:ld_function_call_graph] = builder.result
100
+ def do_execute(context, monitor)
101
+ builder = FunctionCallGraphBuilder.new(context[:ld_function_mapping])
102
+ context[:metric_fpaths].each do |fpath|
103
+ builder.execute(fpath)
104
+ monitor.progress += 1.0 / context[:metric_fpaths].size
95
105
  end
106
+ context[:ld_function_call_graph] = builder.result
96
107
  ensure
97
108
  DebugUtil.dump_function_call_graph(context)
98
109
  end
99
110
  end
100
111
 
101
- class LinkVariablePhase < Phase
112
+ class LinkVariablePhase < LdPhase
113
+ def initialize(context)
114
+ super(context, "lvr")
115
+ end
116
+
102
117
  private
103
- def do_execute(context)
104
- monitored_region("lvr") do |monitor|
105
- builder = VariableReferenceGraphBuilder.new(
106
- context[:ld_variable_mapping], context[:ld_function_mapping],
107
- context[:ld_function_call_graph])
108
- context[:metric_fpaths].each do |fpath|
109
- builder.execute(fpath)
110
- monitor.progress += 1.0 / context[:metric_fpaths].size
111
- end
112
- context[:ld_variable_reference_graph] = builder.result
118
+ def do_execute(context, monitor)
119
+ builder = VariableReferenceGraphBuilder.new(
120
+ context[:ld_variable_mapping], context[:ld_function_mapping],
121
+ context[:ld_function_call_graph])
122
+ context[:metric_fpaths].each do |fpath|
123
+ builder.execute(fpath)
124
+ monitor.progress += 1.0 / context[:metric_fpaths].size
113
125
  end
126
+ context[:ld_variable_reference_graph] = builder.result
114
127
  ensure
115
128
  DebugUtil.dump_variable_reference_graph(context)
116
129
  end
117
130
  end
118
131
 
119
- class PreparePhase < Phase
120
- private
121
- def do_execute(context)
122
- monitored_region("pre") do
123
- context[:ld_typedef_traversal] =
124
- TypedefTraversal.new(context[:ld_typedef_mapping])
125
- context[:ld_function_traversal] =
126
- FunctionTraversal.new(context[:ld_function_mapping])
127
- context[:ld_variable_traversal] =
128
- VariableTraversal.new(context[:ld_variable_mapping])
129
-
130
- context[:ld_commands] = setup_metric_measurements(context) +
131
- setup_message_detections(context)
132
- end
132
+ class PreparePhase < LdPhase
133
+ def initialize(context)
134
+ super(context, "pre")
133
135
  end
134
136
 
135
- def setup_metric_measurements(context)
136
- [
137
- FN_CALL.new(context)
138
- ]
137
+ private
138
+ def do_execute(context, *)
139
+ context[:ld_typedef_traversal] =
140
+ TypedefTraversal.new(context[:ld_typedef_mapping])
141
+ context[:ld_function_traversal] =
142
+ FunctionTraversal.new(context[:ld_function_mapping])
143
+ context[:ld_variable_traversal] =
144
+ VariableTraversal.new(context[:ld_variable_mapping])
139
145
  end
146
+ end
140
147
 
141
- def setup_message_detections(context)
142
- [
143
- W0555.new(context),
144
- W0586.new(context),
145
- W0589.new(context),
146
- W0591.new(context),
147
- W0593.new(context),
148
- W0628.new(context),
149
- W0770.new(context),
150
- W0791.new(context),
151
- W1037.new(context)
152
- ]
148
+ class TypedefReviewPhase < LdPhase
149
+ def initialize(context)
150
+ super(context, "rtd")
153
151
  end
154
- end
155
152
 
156
- class TypedefReviewPhase < Phase
157
153
  private
158
- def do_execute(context)
159
- monitored_region("rtd") do
160
- context[:ld_typedef_traversal].execute
161
- end
154
+ def do_execute(context, *)
155
+ context[:ld_typedef_traversal].execute
162
156
  end
163
157
  end
164
158
 
165
- class FunctionReviewPhase < Phase
159
+ class FunctionReviewPhase < LdPhase
160
+ def initialize(context)
161
+ super(context, "rfn")
162
+ end
163
+
166
164
  private
167
- def do_execute(context)
168
- monitored_region("rfn") do
169
- context[:ld_function_traversal].execute
170
- end
165
+ def do_execute(context, *)
166
+ context[:ld_function_traversal].execute
171
167
  end
172
168
  end
173
169
 
174
- class VariableReviewPhase < Phase
170
+ class VariableReviewPhase < LdPhase
171
+ def initialize(context)
172
+ super(context, "rvr")
173
+ end
174
+
175
175
  private
176
- def do_execute(context)
177
- monitored_region("rvr") do
178
- context[:ld_variable_traversal].execute
179
- end
176
+ def do_execute(context, *)
177
+ context[:ld_variable_traversal].execute
180
178
  end
181
179
  end
182
180
 
183
- class CommandPhase < Phase
181
+ class ExaminationPhase < LdPhase
182
+ def initialize(context)
183
+ super(context, "exm")
184
+ end
185
+
184
186
  private
185
- def do_execute(context)
186
- monitored_region("com") do
187
- context[:ld_commands].each { |command| command.execute }
188
- end
187
+ def do_execute(context, *)
188
+ examinations.each { |exam| exam.execute }
189
189
  end
190
190
  end
191
191