adlint 1.18.6 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +287 -188
- data/MANIFEST +278 -92
- data/NEWS +16 -4
- data/bin/adlintize +124 -3
- data/etc/conf.d/fallback/traits.erb +54 -1
- data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +54 -1
- data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +54 -1
- data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +54 -1
- data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +54 -1
- data/etc/mesg.d/c_builtin/en_US/messages.yml +2998 -0
- data/etc/mesg.d/c_builtin/ja_JP/messages.yml +2998 -0
- data/etc/mesg.d/core/en_US/messages.yml +134 -0
- data/etc/mesg.d/core/ja_JP/messages.yml +134 -0
- data/features/{message_detection → code_check}/E0013.feature +2 -2
- data/features/{message_detection → code_check}/W0001.feature +4 -4
- data/features/{message_detection → code_check}/W0002.feature +6 -6
- data/features/{message_detection → code_check}/W0003.feature +8 -8
- data/features/{message_detection → code_check}/W0007.feature +16 -16
- data/features/{message_detection → code_check}/W0010.feature +8 -8
- data/features/{message_detection → code_check}/W0013.feature +16 -16
- data/features/code_check/W0016.feature +200 -0
- data/features/code_check/W0017.feature +270 -0
- data/features/code_check/W0025.feature +66 -0
- data/features/code_check/W0026.feature +143 -0
- data/features/{message_detection → code_check}/W0093.feature +6 -6
- data/features/{message_detection → code_check}/W0104.feature +14 -14
- data/features/{message_detection → code_check}/W0109.feature +6 -6
- data/features/code_check/W0119.feature +151 -0
- data/features/code_check/W0120.feature +137 -0
- data/features/code_check/W0121.feature +147 -0
- data/features/code_check/W0122.feature +142 -0
- data/features/code_check/W0123.feature +147 -0
- data/features/code_check/W0124.feature +142 -0
- data/features/code_check/W0125.feature +147 -0
- data/features/code_check/W0126.feature +142 -0
- data/features/code_check/W0127.feature +147 -0
- data/features/code_check/W0128.feature +147 -0
- data/features/code_check/W0129.feature +147 -0
- data/features/code_check/W0130.feature +159 -0
- data/features/code_check/W0131.feature +154 -0
- data/features/code_check/W0132.feature +137 -0
- data/features/code_check/W0133.feature +151 -0
- data/features/code_check/W0134.feature +151 -0
- data/features/code_check/W0135.feature +147 -0
- data/features/code_check/W0136.feature +151 -0
- data/features/code_check/W0137.feature +147 -0
- data/features/code_check/W0138.feature +151 -0
- data/features/code_check/W0139.feature +147 -0
- data/features/code_check/W0140.feature +159 -0
- data/features/code_check/W0141.feature +155 -0
- data/features/code_check/W0142.feature +152 -0
- data/features/code_check/W0143.feature +147 -0
- data/features/code_check/W0144.feature +146 -0
- data/features/code_check/W0145.feature +147 -0
- data/features/code_check/W0146.feature +146 -0
- data/features/code_check/W0147.feature +146 -0
- data/features/code_check/W0148.feature +147 -0
- data/features/code_check/W0149.feature +146 -0
- data/features/code_check/W0150.feature +146 -0
- data/features/code_check/W0151.feature +146 -0
- data/features/code_check/W0152.feature +155 -0
- data/features/code_check/W0153.feature +155 -0
- data/features/code_check/W0154.feature +154 -0
- data/features/code_check/W0155.feature +154 -0
- data/features/code_check/W0156.feature +167 -0
- data/features/code_check/W0157.feature +152 -0
- data/features/code_check/W0158.feature +147 -0
- data/features/code_check/W0159.feature +147 -0
- data/features/code_check/W0160.feature +147 -0
- data/features/code_check/W0161.feature +151 -0
- data/features/code_check/W0162.feature +146 -0
- data/features/code_check/W0163.feature +146 -0
- data/features/code_check/W0164.feature +146 -0
- data/features/code_check/W0165.feature +151 -0
- data/features/code_check/W0166.feature +146 -0
- data/features/code_check/W0167.feature +146 -0
- data/features/code_check/W0168.feature +146 -0
- data/features/code_check/W0169.feature +151 -0
- data/features/code_check/W0170.feature +146 -0
- data/features/code_check/W0171.feature +146 -0
- data/features/code_check/W0172.feature +146 -0
- data/features/code_check/W0173.feature +159 -0
- data/features/code_check/W0174.feature +159 -0
- data/features/code_check/W0175.feature +158 -0
- data/features/code_check/W0176.feature +158 -0
- data/features/code_check/W0177.feature +159 -0
- data/features/code_check/W0178.feature +155 -0
- data/features/code_check/W0179.feature +154 -0
- data/features/code_check/W0180.feature +154 -0
- data/features/code_check/W0181.feature +167 -0
- data/features/code_check/W0182.feature +147 -0
- data/features/code_check/W0183.feature +147 -0
- data/features/code_check/W0184.feature +148 -0
- data/features/code_check/W0185.feature +142 -0
- data/features/code_check/W0186.feature +142 -0
- data/features/code_check/W0187.feature +142 -0
- data/features/code_check/W0188.feature +142 -0
- data/features/code_check/W0189.feature +142 -0
- data/features/code_check/W0190.feature +142 -0
- data/features/code_check/W0191.feature +142 -0
- data/features/code_check/W0192.feature +142 -0
- data/features/code_check/W0193.feature +143 -0
- data/features/code_check/W0194.feature +142 -0
- data/features/code_check/W0195.feature +142 -0
- data/features/code_check/W0196.feature +142 -0
- data/features/code_check/W0197.feature +142 -0
- data/features/code_check/W0198.feature +142 -0
- data/features/code_check/W0199.feature +143 -0
- data/features/code_check/W0200.feature +142 -0
- data/features/code_check/W0201.feature +142 -0
- data/features/code_check/W0202.feature +142 -0
- data/features/code_check/W0203.feature +142 -0
- data/features/code_check/W0204.feature +142 -0
- data/features/code_check/W0205.feature +143 -0
- data/features/code_check/W0206.feature +150 -0
- data/features/code_check/W0207.feature +150 -0
- data/features/code_check/W0208.feature +150 -0
- data/features/code_check/W0209.feature +151 -0
- data/features/code_check/W0210.feature +151 -0
- data/features/code_check/W0211.feature +151 -0
- data/features/code_check/W0212.feature +147 -0
- data/features/code_check/W0213.feature +142 -0
- data/features/code_check/W0214.feature +147 -0
- data/features/code_check/W0215.feature +142 -0
- data/features/code_check/W0216.feature +142 -0
- data/features/code_check/W0217.feature +142 -0
- data/features/code_check/W0218.feature +142 -0
- data/features/code_check/W0219.feature +142 -0
- data/features/code_check/W0220.feature +142 -0
- data/features/code_check/W0221.feature +147 -0
- data/features/code_check/W0222.feature +142 -0
- data/features/code_check/W0223.feature +147 -0
- data/features/code_check/W0224.feature +142 -0
- data/features/code_check/W0225.feature +142 -0
- data/features/code_check/W0226.feature +142 -0
- data/features/code_check/W0227.feature +142 -0
- data/features/code_check/W0228.feature +142 -0
- data/features/code_check/W0229.feature +142 -0
- data/features/code_check/W0230.feature +147 -0
- data/features/code_check/W0231.feature +142 -0
- data/features/code_check/W0232.feature +148 -0
- data/features/code_check/W0233.feature +142 -0
- data/features/code_check/W0234.feature +143 -0
- data/features/code_check/W0235.feature +142 -0
- data/features/code_check/W0236.feature +143 -0
- data/features/code_check/W0237.feature +142 -0
- data/features/code_check/W0238.feature +143 -0
- data/features/code_check/W0239.feature +154 -0
- data/features/code_check/W0240.feature +155 -0
- data/features/code_check/W0241.feature +154 -0
- data/features/code_check/W0242.feature +155 -0
- data/features/code_check/W0243.feature +154 -0
- data/features/code_check/W0244.feature +155 -0
- data/features/code_check/W0245.feature +147 -0
- data/features/code_check/W0246.feature +147 -0
- data/features/code_check/W0247.feature +147 -0
- data/features/code_check/W0248.feature +142 -0
- data/features/code_check/W0249.feature +142 -0
- data/features/code_check/W0250.feature +146 -0
- data/features/code_check/W0251.feature +159 -0
- data/features/code_check/W0252.feature +155 -0
- data/features/code_check/W0253.feature +154 -0
- data/features/code_check/W0254.feature +154 -0
- data/features/code_check/W0477.feature +77 -0
- data/features/code_check/W0478.feature +103 -0
- data/features/code_check/W0479.feature +65 -0
- data/features/code_check/W0480.feature +119 -0
- data/features/code_check/W0481.feature +28 -0
- data/features/code_check/W0482.feature +64 -0
- data/features/code_check/W0483.feature +62 -0
- data/features/code_check/W0573.feature +91 -0
- data/features/{message_detection → code_check}/W0583.feature +2 -2
- data/features/{message_detection → code_check}/W0606.feature +2 -2
- data/features/{message_detection → code_check}/W0641.feature +16 -16
- data/features/{message_detection → code_check}/W0643.feature +12 -12
- data/features/{message_detection → code_check}/W0644.feature +50 -50
- data/features/{message_detection → code_check}/W0645.feature +16 -16
- data/features/{message_detection → code_check}/W0646.feature +16 -16
- data/features/{message_detection → code_check}/W0649.feature +28 -28
- data/features/{message_detection → code_check}/W0650.feature +24 -24
- data/features/code_check/W0685.feature +120 -0
- data/features/code_check/W0686.feature +92 -0
- data/features/{message_detection → code_check}/W0687.feature +4 -4
- data/features/{message_detection → code_check}/W0688.feature +12 -12
- data/features/{message_detection → code_check}/W0689.feature +8 -8
- data/features/{message_detection → code_check}/W0690.feature +6 -6
- data/features/{message_detection → code_check}/W0691.feature +14 -14
- data/features/{message_detection → code_check}/W0692.feature +4 -4
- data/features/{message_detection → code_check}/W0694.feature +10 -10
- data/features/code_check/W0695.feature +78 -0
- data/features/{message_detection → code_check}/W0697.feature +18 -18
- data/features/{message_detection → code_check}/W0698.feature +2 -2
- data/features/{message_detection → code_check}/W0699.feature +2 -2
- data/features/{message_detection → code_check}/W0700.feature +6 -6
- data/features/{message_detection → code_check}/W0703.feature +6 -6
- data/features/{message_detection → code_check}/W0705.feature +24 -24
- data/features/{message_detection → code_check}/W0707.feature +20 -20
- data/features/{message_detection → code_check}/W0711.feature +10 -10
- data/features/{message_detection → code_check}/W0712.feature +10 -10
- data/features/{message_detection → code_check}/W0713.feature +10 -10
- data/features/{message_detection → code_check}/W0714.feature +10 -10
- data/features/{message_detection → code_check}/W0715.feature +11 -11
- data/features/{message_detection → code_check}/W0716.feature +6 -6
- data/features/{message_detection → code_check}/W0717.feature +6 -6
- data/features/{message_detection → code_check}/W0718.feature +6 -6
- data/features/{message_detection → code_check}/W0719.feature +16 -16
- data/features/{message_detection → code_check}/W0723.feature +6 -6
- data/features/code_check/W0726.feature +95 -0
- data/features/{message_detection → code_check}/W0732.feature +6 -6
- data/features/{message_detection → code_check}/W0733.feature +6 -6
- data/features/{message_detection → code_check}/W0734.feature +16 -16
- data/features/{message_detection → code_check}/W0735.feature +16 -16
- data/features/{message_detection → code_check}/W0745.feature +10 -10
- data/features/code_check/W0747.feature +146 -0
- data/features/code_check/W0748.feature +148 -0
- data/features/code_check/W0749.feature +146 -0
- data/features/code_check/W0750.feature +146 -0
- data/features/code_check/W0751.feature +148 -0
- data/features/code_check/W0752.feature +143 -0
- data/features/code_check/W0753.feature +146 -0
- data/features/code_check/W0754.feature +146 -0
- data/features/code_check/W0755.feature +142 -0
- data/features/code_check/W0756.feature +148 -0
- data/features/code_check/W0757.feature +143 -0
- data/features/code_check/W0758.feature +143 -0
- data/features/code_check/W0759.feature +154 -0
- data/features/code_check/W0760.feature +154 -0
- data/features/code_check/W0761.feature +154 -0
- data/features/code_check/W0762.feature +154 -0
- data/features/code_check/W0763.feature +156 -0
- data/features/code_check/W0764.feature +151 -0
- data/features/code_check/W0765.feature +151 -0
- data/features/code_check/W0766.feature +151 -0
- data/features/code_check/W0767.feature +142 -0
- data/features/code_check/W0768.feature +142 -0
- data/features/code_check/W0769.feature +142 -0
- data/features/{message_detection → code_check}/W0780.feature +12 -12
- data/features/code_check/W0781.feature +145 -0
- data/features/{message_detection → code_check}/W0783.feature +8 -8
- data/features/{message_detection → code_check}/W0792.feature +16 -16
- data/features/{message_detection → code_check}/W0793.feature +16 -16
- data/features/{message_detection → code_check}/W0794.feature +10 -10
- data/features/code_check/W0801.feature +84 -0
- data/features/{message_detection → code_check}/W0805.feature +14 -14
- data/features/code_check/W0806.feature +24 -0
- data/features/code_check/W0807.feature +35 -0
- data/features/code_check/W0808.feature +34 -0
- data/features/code_check/W0809.feature +114 -0
- data/features/{message_detection → code_check}/W0811.feature +10 -10
- data/features/{message_detection → code_check}/W0830.feature +12 -12
- data/features/{message_detection → code_check}/W0833.feature +30 -30
- data/features/{message_detection → code_check}/W0834.feature +26 -26
- data/features/{message_detection → code_check}/W1026.feature +8 -8
- data/features/code_check/W1030.feature +84 -0
- data/features/{message_detection → code_check}/W1031.feature +36 -36
- data/features/{message_detection → code_check}/W1039.feature +24 -24
- data/features/{message_detection → code_check}/W1040.feature +8 -8
- data/features/{message_detection → code_check}/W1041.feature +2 -2
- data/features/{message_detection → code_check}/W1046.feature +6 -6
- data/features/{message_detection → code_check}/W1047.feature +12 -12
- data/features/{message_detection → code_check}/W1052.feature +6 -6
- data/features/{message_detection → code_check}/W1066.feature +6 -6
- data/features/{message_detection → code_check}/W1067.feature +6 -6
- data/features/{message_detection → code_check}/W1068.feature +6 -6
- data/features/{message_detection → code_check}/W1069.feature +10 -10
- data/features/{message_detection → code_check}/W1070.feature +15 -15
- data/features/{message_detection → code_check}/W1071.feature +8 -8
- data/features/{message_detection → code_check}/W1072.feature +2 -2
- data/features/{message_detection → code_check}/W1073.feature +14 -14
- data/features/{message_detection → code_check}/W1074.feature +10 -10
- data/features/{message_detection → code_check}/W1075.feature +10 -10
- data/features/{message_detection → code_check}/W1076.feature +8 -8
- data/features/{message_detection → code_check}/W1077.feature +18 -18
- data/features/{message_detection → code_check}/W9001.feature +2 -2
- data/features/{message_detection → code_check}/W9003.feature +12 -12
- data/features/step_definitions/{message_detection_steps.rb → code_check_steps.rb} +1 -1
- data/features/support/env.rb +19 -3
- data/lib/adlint.rb +1 -0
- data/lib/adlint/analyzer.rb +17 -1
- data/lib/adlint/c.rb +0 -4
- data/lib/adlint/c/phase.rb +55 -745
- data/lib/adlint/code.rb +0 -24
- data/lib/adlint/cpp.rb +0 -3
- data/lib/adlint/cpp/phase.rb +50 -112
- data/lib/adlint/driver.rb +2 -2
- data/lib/adlint/error.rb +4 -4
- data/lib/adlint/exam.rb +143 -0
- data/lib/adlint/exam/c_builtin.rb +813 -0
- data/lib/adlint/{c/message.rb → exam/c_builtin/c_check.rb} +2130 -798
- data/lib/adlint/{c/message_shima.rb → exam/c_builtin/c_check_shima.rb} +99 -28
- data/lib/adlint/{c/code.rb → exam/c_builtin/c_code.rb} +31 -5
- data/lib/adlint/{c/metric.rb → exam/c_builtin/c_metric.rb} +43 -11
- data/lib/adlint/{cpp/message.rb → exam/c_builtin/cpp_check.rb} +177 -73
- data/lib/adlint/{cpp/message_shima.rb → exam/c_builtin/cpp_check_shima.rb} +28 -8
- data/lib/adlint/{cpp/code.rb → exam/c_builtin/cpp_code.rb} +14 -3
- data/lib/adlint/{ld/message.rb → exam/c_builtin/ld_check.rb} +33 -12
- data/lib/adlint/{ld/metric.rb → exam/c_builtin/ld_metric.rb} +8 -3
- data/lib/adlint/lang.rb +2 -2
- data/lib/adlint/ld.rb +0 -2
- data/lib/adlint/ld/phase.rb +101 -101
- data/lib/adlint/message.rb +155 -98
- data/lib/adlint/metric.rb +0 -27
- data/lib/adlint/phase.rb +28 -3
- data/lib/adlint/report.rb +22 -12
- data/lib/adlint/traits.rb +97 -5
- data/lib/adlint/util.rb +100 -11
- data/lib/adlint/version.rb +5 -5
- data/share/doc/developers_guide_ja.html +3 -3
- data/share/doc/developers_guide_ja.texi +1 -1
- data/share/doc/users_guide_en.html +1817 -1648
- data/share/doc/users_guide_en.texi +202 -22
- data/share/doc/users_guide_ja.html +1836 -1663
- data/share/doc/users_guide_ja.texi +203 -20
- data/share/sample/bison-2.5/adlint/adlint_traits.yml +55 -2
- data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +47 -2
- data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +47 -2
- data/share/sample/ctags-5.8/adlint/adlint_traits.yml +47 -2
- data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +47 -2
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +47 -2
- data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +47 -2
- data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +47 -2
- data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +47 -2
- data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +47 -2
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +47 -2
- data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +47 -2
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +47 -2
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +47 -2
- data/spec/conf.d/default_traits.yml +56 -3
- metadata +280 -94
- data/etc/mesg.d/en_US/messages.yml +0 -797
- data/etc/mesg.d/ja_JP/messages.yml +0 -797
@@ -3,7 +3,7 @@ Feature: W9001
|
|
3
3
|
W9001 detects that the control never reach to a statement.
|
4
4
|
|
5
5
|
Scenario: indefinitive controlling variable narrowing
|
6
|
-
Given a target source named "
|
6
|
+
Given a target source named "fixture.c" with:
|
7
7
|
"""
|
8
8
|
static void bar(int);
|
9
9
|
|
@@ -26,7 +26,7 @@ Feature: W9001
|
|
26
26
|
return 0;
|
27
27
|
}
|
28
28
|
"""
|
29
|
-
When I successfully run `adlint
|
29
|
+
When I successfully run `adlint fixture.c` on noarch
|
30
30
|
Then the output should exactly match with:
|
31
31
|
| mesg | line | column |
|
32
32
|
|
@@ -5,7 +5,7 @@ Feature: W9003
|
|
5
5
|
|
6
6
|
Scenario: passing an enum variable whose type differs from one of the
|
7
7
|
corresponding enum parameter
|
8
|
-
Given a target source named "
|
8
|
+
Given a target source named "fixture.c" with:
|
9
9
|
"""
|
10
10
|
enum Color { RED, BLUE, GREEN };
|
11
11
|
enum Fruit { APPLE, BANANA, ORANGE };
|
@@ -17,7 +17,7 @@ Feature: W9003
|
|
17
17
|
foo(ORANGE); /* W9003 */
|
18
18
|
}
|
19
19
|
"""
|
20
|
-
When I successfully run `adlint
|
20
|
+
When I successfully run `adlint fixture.c` on noarch
|
21
21
|
Then the output should exactly match with:
|
22
22
|
| mesg | line | column |
|
23
23
|
| W0118 | 4 | 13 |
|
@@ -28,7 +28,7 @@ Feature: W9003
|
|
28
28
|
| W0628 | 6 | 13 |
|
29
29
|
|
30
30
|
Scenario: passing an enum argument as an `int' parameter
|
31
|
-
Given a target source named "
|
31
|
+
Given a target source named "fixture.c" with:
|
32
32
|
"""
|
33
33
|
enum Color { RED, BLUE, GREEN };
|
34
34
|
|
@@ -39,7 +39,7 @@ Feature: W9003
|
|
39
39
|
foo(RED); /* W9003 */
|
40
40
|
}
|
41
41
|
"""
|
42
|
-
When I successfully run `adlint
|
42
|
+
When I successfully run `adlint fixture.c` on noarch
|
43
43
|
Then the output should exactly match with:
|
44
44
|
| mesg | line | column |
|
45
45
|
| W0118 | 3 | 13 |
|
@@ -50,7 +50,7 @@ Feature: W9003
|
|
50
50
|
| W0628 | 5 | 13 |
|
51
51
|
|
52
52
|
Scenario: passing an `int' argument as an enum parameter
|
53
|
-
Given a target source named "
|
53
|
+
Given a target source named "fixture.c" with:
|
54
54
|
"""
|
55
55
|
enum Color { RED, BLUE, GREEN };
|
56
56
|
|
@@ -61,7 +61,7 @@ Feature: W9003
|
|
61
61
|
foo(0); /* W9003 */
|
62
62
|
}
|
63
63
|
"""
|
64
|
-
When I successfully run `adlint
|
64
|
+
When I successfully run `adlint fixture.c` on noarch
|
65
65
|
Then the output should exactly match with:
|
66
66
|
| mesg | line | column |
|
67
67
|
| W0118 | 3 | 13 |
|
@@ -72,31 +72,31 @@ Feature: W9003
|
|
72
72
|
| W0628 | 5 | 13 |
|
73
73
|
|
74
74
|
Scenario: initializing an `int' variable with an enumerator
|
75
|
-
Given a target source named "
|
75
|
+
Given a target source named "fixture.c" with:
|
76
76
|
"""
|
77
77
|
enum Color { RED, BLUE, GREEN };
|
78
78
|
int i = RED; /* W9003 */
|
79
79
|
"""
|
80
|
-
When I successfully run `adlint
|
80
|
+
When I successfully run `adlint fixture.c` on noarch
|
81
81
|
Then the output should exactly match with:
|
82
82
|
| mesg | line | column |
|
83
83
|
| W9003 | 2 | 9 |
|
84
84
|
| W0117 | 2 | 5 |
|
85
85
|
|
86
86
|
Scenario: initializing an enum variable with an `int' value
|
87
|
-
Given a target source named "
|
87
|
+
Given a target source named "fixture.c" with:
|
88
88
|
"""
|
89
89
|
enum Color { RED, BLUE, GREEN };
|
90
90
|
enum Color c = 1; /* W9003 */
|
91
91
|
"""
|
92
|
-
When I successfully run `adlint
|
92
|
+
When I successfully run `adlint fixture.c` on noarch
|
93
93
|
Then the output should exactly match with:
|
94
94
|
| mesg | line | column |
|
95
95
|
| W9003 | 2 | 16 |
|
96
96
|
| W0117 | 2 | 12 |
|
97
97
|
|
98
98
|
Scenario: arithmetic expression with an `int' variable and an enum variable
|
99
|
-
Given a target source named "
|
99
|
+
Given a target source named "fixture.c" with:
|
100
100
|
"""
|
101
101
|
enum Color { RED, BLUE, GREEN };
|
102
102
|
|
@@ -110,7 +110,7 @@ Feature: W9003
|
|
110
110
|
}
|
111
111
|
}
|
112
112
|
"""
|
113
|
-
When I successfully run `adlint
|
113
|
+
When I successfully run `adlint fixture.c` on noarch
|
114
114
|
Then the output should exactly match with:
|
115
115
|
| mesg | line | column |
|
116
116
|
| W1076 | 3 | 12 |
|
@@ -10,7 +10,7 @@ end
|
|
10
10
|
Then /^the output should exactly match with:$/ do |mesg_table|
|
11
11
|
$all_output.each_line.zip(mesg_table.hashes).each do |line, row|
|
12
12
|
if row
|
13
|
-
line.should =~ /#{row[:line]}:#{row[:column]}
|
13
|
+
line.should =~ /#{row[:line]}:#{row[:column]}:.*:.*:#{row[:mesg]}/
|
14
14
|
else
|
15
15
|
line.should =~ /::.*:/
|
16
16
|
end
|
data/features/support/env.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
NOARCH_TRAITS = <<EOF
|
2
|
-
version: "
|
2
|
+
version: "2.0.0"
|
3
|
+
|
4
|
+
exam_packages:
|
5
|
+
- "c_builtin"
|
3
6
|
|
4
7
|
project_traits:
|
5
8
|
project_name: "features"
|
@@ -67,6 +70,11 @@ linker_traits:
|
|
67
70
|
|
68
71
|
message_traits:
|
69
72
|
language: "ja_JP"
|
73
|
+
message_with_class: false
|
74
|
+
warn_only_files_in:
|
75
|
+
individual_selection: true
|
76
|
+
exclusion:
|
77
|
+
inclusion:
|
70
78
|
change_list:
|
71
79
|
EOF
|
72
80
|
|
@@ -125,7 +133,15 @@ end
|
|
125
133
|
|
126
134
|
def run_adlint(cmd, *args)
|
127
135
|
create_adlint_files
|
128
|
-
cd_to_tmpdir
|
136
|
+
cd_to_tmpdir do
|
137
|
+
$all_output = exec(cmd, *args).each_line.map { |line|
|
138
|
+
if line =~ /_pinit\.h|_cinit\.h|stdio\.h|math\.h|assert\.h/
|
139
|
+
nil
|
140
|
+
else
|
141
|
+
line.chomp
|
142
|
+
end
|
143
|
+
}.compact.join("\n")
|
144
|
+
end
|
129
145
|
end
|
130
146
|
|
131
147
|
def cd_to_tmpdir(&block)
|
@@ -169,5 +185,5 @@ def create_adlint_files
|
|
169
185
|
end
|
170
186
|
|
171
187
|
def create_file(fname, content = "")
|
172
|
-
File.open(fname, "
|
188
|
+
File.open(fname, "wb") { |io| io.puts content }
|
173
189
|
end
|
data/lib/adlint.rb
CHANGED
data/lib/adlint/analyzer.rb
CHANGED
@@ -64,6 +64,7 @@ module AdLint #:nodoc:
|
|
64
64
|
@logger.datetime_format = "%F %T "
|
65
65
|
begin
|
66
66
|
Analyzer.current = self
|
67
|
+
log_start_analysis
|
67
68
|
execute
|
68
69
|
rescue => ex
|
69
70
|
fatal(ex)
|
@@ -95,6 +96,21 @@ module AdLint #:nodoc:
|
|
95
96
|
@log_base_fpath.add_ext(".log")
|
96
97
|
end
|
97
98
|
end
|
99
|
+
|
100
|
+
def log_start_analysis
|
101
|
+
exam_versions = Traits.instance.exam_packages.map { |exam_package|
|
102
|
+
exam_package.catalog
|
103
|
+
}.map { |catalog| "#{catalog.name}-#{catalog.short_version}" }
|
104
|
+
|
105
|
+
mesg = "start analysis by adlint-#{SHORT_VERSION} with "
|
106
|
+
if exam_versions.size < 3
|
107
|
+
mesg += exam_versions.join(" and ")
|
108
|
+
else
|
109
|
+
mesg += exam_versions[0..-2].join(", ") + " and " + exam_versions.last
|
110
|
+
end
|
111
|
+
|
112
|
+
info("#{mesg}.")
|
113
|
+
end
|
98
114
|
end
|
99
115
|
|
100
116
|
# == Single module analysis driver.
|
@@ -182,7 +198,7 @@ module AdLint #:nodoc:
|
|
182
198
|
AdLint::Ld::TypedefReviewPhase,
|
183
199
|
AdLint::Ld::FunctionReviewPhase,
|
184
200
|
AdLint::Ld::VariableReviewPhase,
|
185
|
-
AdLint::Ld::
|
201
|
+
AdLint::Ld::ExaminationPhase
|
186
202
|
].freeze
|
187
203
|
private_constant :PHASE_CLASSES
|
188
204
|
|
data/lib/adlint/c.rb
CHANGED
@@ -31,7 +31,6 @@
|
|
31
31
|
|
32
32
|
require "adlint/c/branch"
|
33
33
|
require "adlint/c/builtin"
|
34
|
-
require "adlint/c/code"
|
35
34
|
require "adlint/c/ctrlexpr"
|
36
35
|
require "adlint/c/const"
|
37
36
|
require "adlint/c/conv"
|
@@ -43,9 +42,6 @@ require "adlint/c/format"
|
|
43
42
|
require "adlint/c/interp"
|
44
43
|
require "adlint/c/lexer"
|
45
44
|
require "adlint/c/mediator"
|
46
|
-
require "adlint/c/message"
|
47
|
-
require "adlint/c/message_shima"
|
48
|
-
require "adlint/c/metric"
|
49
45
|
require "adlint/c/object"
|
50
46
|
require "adlint/c/operator"
|
51
47
|
require "adlint/c/option"
|
data/lib/adlint/c/phase.rb
CHANGED
@@ -31,793 +31,103 @@
|
|
31
31
|
|
32
32
|
require "adlint/phase"
|
33
33
|
require "adlint/error"
|
34
|
-
require "adlint/monitor"
|
35
34
|
require "adlint/c/lexer"
|
36
35
|
require "adlint/c/parser"
|
37
36
|
require "adlint/c/syntax"
|
38
37
|
require "adlint/c/interp"
|
39
|
-
require "adlint/c/code"
|
40
|
-
require "adlint/c/metric"
|
41
|
-
require "adlint/c/message"
|
42
38
|
require "adlint/c/util"
|
43
39
|
|
44
40
|
module AdLint #:nodoc:
|
45
41
|
module C #:nodoc:
|
46
42
|
|
47
|
-
class
|
48
|
-
|
49
|
-
|
50
|
-
monitored_region("pr3") do
|
51
|
-
context[:c_visitor] = SyntaxTreeMulticastVisitor.new
|
52
|
-
context[:c_parser] = Parser.new(context)
|
53
|
-
context[:c_commands] = setup_message_detections(context)
|
54
|
-
end
|
43
|
+
class CPhase < Phase
|
44
|
+
def initialize(context, phase_name)
|
45
|
+
super(context, "c", phase_name)
|
55
46
|
end
|
47
|
+
end
|
56
48
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
49
|
+
class Prepare1Phase < CPhase
|
50
|
+
def initialize(context)
|
51
|
+
super(context, "pr3")
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
def do_execute(context, *)
|
56
|
+
context[:c_visitor] = SyntaxTreeMulticastVisitor.new
|
57
|
+
context[:c_parser] = Parser.new(context)
|
61
58
|
end
|
62
59
|
end
|
63
60
|
|
64
|
-
class ParsePhase <
|
61
|
+
class ParsePhase < CPhase
|
62
|
+
def initialize(context)
|
63
|
+
super(context, "prs")
|
64
|
+
end
|
65
|
+
|
65
66
|
private
|
66
|
-
def do_execute(context)
|
67
|
-
|
68
|
-
begin
|
69
|
-
context[:c_syntax_tree] = context[:c_parser].execute
|
70
|
-
ensure
|
71
|
-
context[:c_token_array] = context[:c_parser].token_array
|
72
|
-
end
|
73
|
-
end
|
67
|
+
def do_execute(context, *)
|
68
|
+
context[:c_syntax_tree] = context[:c_parser].execute
|
74
69
|
ensure
|
70
|
+
context[:c_token_array] = context[:c_parser].token_array
|
75
71
|
DebugUtil.dump_token_array(context)
|
76
72
|
end
|
77
73
|
end
|
78
74
|
|
79
|
-
class ResolvePhase <
|
80
|
-
|
81
|
-
|
82
|
-
monitored_region("typ") do
|
83
|
-
resolver = StaticTypeResolver.new
|
84
|
-
context[:c_type_table] = resolver.resolve(context[:c_syntax_tree])
|
85
|
-
end
|
75
|
+
class ResolvePhase < CPhase
|
76
|
+
def initialize(context)
|
77
|
+
super(context, "typ")
|
86
78
|
end
|
87
|
-
end
|
88
79
|
|
89
|
-
class Prepare2Phase < Phase
|
90
80
|
private
|
91
|
-
def do_execute(context)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
context[:c_commands] += setup_code_extractions(context) +
|
96
|
-
setup_metric_measurements(context) +
|
97
|
-
setup_message_detections(context)
|
98
|
-
end
|
81
|
+
def do_execute(context, *)
|
82
|
+
resolver = StaticTypeResolver.new
|
83
|
+
context[:c_type_table] = resolver.resolve(context[:c_syntax_tree])
|
99
84
|
end
|
85
|
+
end
|
100
86
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
CrossRefExtraction.new(context),
|
105
|
-
TypeDeclExtraction.new(context),
|
106
|
-
GVarDeclExtraction.new(context),
|
107
|
-
FuncDeclExtraction.new(context),
|
108
|
-
VarDefExtraction.new(context),
|
109
|
-
FuncDefExtraction.new(context),
|
110
|
-
LabelDefExtraction.new(context),
|
111
|
-
InitializationExtraction.new(context),
|
112
|
-
AssignmentExtraction.new(context),
|
113
|
-
LiteralExtraction.new(context)
|
114
|
-
]
|
87
|
+
class Prepare2Phase < CPhase
|
88
|
+
def initialize(context)
|
89
|
+
super(context, "pr4")
|
115
90
|
end
|
116
91
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
FN_PATH.new(context),
|
121
|
-
FL_STMT.new(context),
|
122
|
-
FL_FUNC.new(context),
|
123
|
-
FN_STMT.new(context),
|
124
|
-
FN_UNRC.new(context),
|
125
|
-
FN_LINE.new(context),
|
126
|
-
FN_PARA.new(context),
|
127
|
-
FN_CSUB.new(context),
|
128
|
-
FN_GOTO.new(context),
|
129
|
-
FN_RETN.new(context),
|
130
|
-
FN_UELS.new(context),
|
131
|
-
FN_NEST.new(context),
|
132
|
-
FN_CYCM.new(context)
|
133
|
-
]
|
92
|
+
private
|
93
|
+
def do_execute(context, *)
|
94
|
+
context[:c_interpreter] = Interpreter.new(context[:c_type_table])
|
134
95
|
end
|
96
|
+
end
|
135
97
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
W0002.new(context),
|
140
|
-
W0003.new(context),
|
141
|
-
W0007.new(context),
|
142
|
-
W0010.new(context),
|
143
|
-
W0013.new(context),
|
144
|
-
W0016.new(context),
|
145
|
-
W0017.new(context),
|
146
|
-
W0018.new(context),
|
147
|
-
W0019.new(context),
|
148
|
-
W0021.new(context),
|
149
|
-
W0023.new(context),
|
150
|
-
W0024.new(context),
|
151
|
-
W0027.new(context),
|
152
|
-
W0028.new(context),
|
153
|
-
W0030.new(context),
|
154
|
-
W0031.new(context),
|
155
|
-
W0033.new(context),
|
156
|
-
W0035.new(context),
|
157
|
-
W0036.new(context),
|
158
|
-
W0037.new(context),
|
159
|
-
W0038.new(context),
|
160
|
-
W0039.new(context),
|
161
|
-
W0040.new(context),
|
162
|
-
W0041.new(context),
|
163
|
-
W0042.new(context),
|
164
|
-
W0043.new(context),
|
165
|
-
W0049.new(context),
|
166
|
-
W0050.new(context),
|
167
|
-
W0051.new(context),
|
168
|
-
W0052.new(context),
|
169
|
-
W0058.new(context),
|
170
|
-
W0062.new(context),
|
171
|
-
W0063.new(context),
|
172
|
-
W0065.new(context),
|
173
|
-
W0066.new(context),
|
174
|
-
W0064.new(context),
|
175
|
-
W0067.new(context),
|
176
|
-
W0068.new(context),
|
177
|
-
W0070.new(context),
|
178
|
-
W0071.new(context),
|
179
|
-
W0076.new(context),
|
180
|
-
W0077.new(context),
|
181
|
-
W0078.new(context),
|
182
|
-
W0079.new(context),
|
183
|
-
W0080.new(context),
|
184
|
-
W0081.new(context),
|
185
|
-
W0082.new(context),
|
186
|
-
W0084.new(context),
|
187
|
-
W0085.new(context),
|
188
|
-
W0086.new(context),
|
189
|
-
W0087.new(context),
|
190
|
-
W0088.new(context),
|
191
|
-
W0093.new(context),
|
192
|
-
W0096.new(context),
|
193
|
-
W0097.new(context),
|
194
|
-
W0100.new(context),
|
195
|
-
W0101.new(context),
|
196
|
-
W0102.new(context),
|
197
|
-
W0103.new(context),
|
198
|
-
W0104.new(context),
|
199
|
-
W0105.new(context),
|
200
|
-
W0107.new(context),
|
201
|
-
W0108.new(context),
|
202
|
-
W0109.new(context),
|
203
|
-
W0110.new(context),
|
204
|
-
W0112.new(context),
|
205
|
-
W0114.new(context),
|
206
|
-
W0115.new(context),
|
207
|
-
W0116.new(context),
|
208
|
-
W0117.new(context),
|
209
|
-
W0118.new(context),
|
210
|
-
W0119.new(context),
|
211
|
-
W0120.new(context),
|
212
|
-
W0121.new(context),
|
213
|
-
W0122.new(context),
|
214
|
-
W0123.new(context),
|
215
|
-
W0124.new(context),
|
216
|
-
W0125.new(context),
|
217
|
-
W0126.new(context),
|
218
|
-
W0127.new(context),
|
219
|
-
W0128.new(context),
|
220
|
-
W0129.new(context),
|
221
|
-
W0130.new(context),
|
222
|
-
W0131.new(context),
|
223
|
-
W0132.new(context),
|
224
|
-
W0133.new(context),
|
225
|
-
W0134.new(context),
|
226
|
-
W0135.new(context),
|
227
|
-
W0136.new(context),
|
228
|
-
W0137.new(context),
|
229
|
-
W0138.new(context),
|
230
|
-
W0139.new(context),
|
231
|
-
W0140.new(context),
|
232
|
-
W0141.new(context),
|
233
|
-
W0142.new(context),
|
234
|
-
W0143.new(context),
|
235
|
-
W0144.new(context),
|
236
|
-
W0145.new(context),
|
237
|
-
W0146.new(context),
|
238
|
-
W0147.new(context),
|
239
|
-
W0148.new(context),
|
240
|
-
W0149.new(context),
|
241
|
-
W0150.new(context),
|
242
|
-
W0151.new(context),
|
243
|
-
W0152.new(context),
|
244
|
-
W0153.new(context),
|
245
|
-
W0154.new(context),
|
246
|
-
W0155.new(context),
|
247
|
-
W0156.new(context),
|
248
|
-
W0157.new(context),
|
249
|
-
W0158.new(context),
|
250
|
-
W0159.new(context),
|
251
|
-
W0160.new(context),
|
252
|
-
W0161.new(context),
|
253
|
-
W0162.new(context),
|
254
|
-
W0163.new(context),
|
255
|
-
W0164.new(context),
|
256
|
-
W0165.new(context),
|
257
|
-
W0166.new(context),
|
258
|
-
W0167.new(context),
|
259
|
-
W0168.new(context),
|
260
|
-
W0169.new(context),
|
261
|
-
W0170.new(context),
|
262
|
-
W0171.new(context),
|
263
|
-
W0172.new(context),
|
264
|
-
W0173.new(context),
|
265
|
-
W0174.new(context),
|
266
|
-
W0175.new(context),
|
267
|
-
W0176.new(context),
|
268
|
-
W0177.new(context),
|
269
|
-
W0178.new(context),
|
270
|
-
W0179.new(context),
|
271
|
-
W0180.new(context),
|
272
|
-
W0181.new(context),
|
273
|
-
W0182.new(context),
|
274
|
-
W0183.new(context),
|
275
|
-
W0184.new(context),
|
276
|
-
W0185.new(context),
|
277
|
-
W0186.new(context),
|
278
|
-
W0187.new(context),
|
279
|
-
W0188.new(context),
|
280
|
-
W0189.new(context),
|
281
|
-
W0190.new(context),
|
282
|
-
W0191.new(context),
|
283
|
-
W0192.new(context),
|
284
|
-
W0193.new(context),
|
285
|
-
W0194.new(context),
|
286
|
-
W0195.new(context),
|
287
|
-
W0196.new(context),
|
288
|
-
W0197.new(context),
|
289
|
-
W0198.new(context),
|
290
|
-
W0199.new(context),
|
291
|
-
W0200.new(context),
|
292
|
-
W0201.new(context),
|
293
|
-
W0202.new(context),
|
294
|
-
W0203.new(context),
|
295
|
-
W0204.new(context),
|
296
|
-
W0205.new(context),
|
297
|
-
W0206.new(context),
|
298
|
-
W0207.new(context),
|
299
|
-
W0208.new(context),
|
300
|
-
W0209.new(context),
|
301
|
-
W0210.new(context),
|
302
|
-
W0211.new(context),
|
303
|
-
W0212.new(context),
|
304
|
-
W0213.new(context),
|
305
|
-
W0214.new(context),
|
306
|
-
W0215.new(context),
|
307
|
-
W0216.new(context),
|
308
|
-
W0217.new(context),
|
309
|
-
W0218.new(context),
|
310
|
-
W0219.new(context),
|
311
|
-
W0220.new(context),
|
312
|
-
W0221.new(context),
|
313
|
-
W0222.new(context),
|
314
|
-
W0223.new(context),
|
315
|
-
W0224.new(context),
|
316
|
-
W0225.new(context),
|
317
|
-
W0226.new(context),
|
318
|
-
W0227.new(context),
|
319
|
-
W0228.new(context),
|
320
|
-
W0229.new(context),
|
321
|
-
W0230.new(context),
|
322
|
-
W0231.new(context),
|
323
|
-
W0232.new(context),
|
324
|
-
W0233.new(context),
|
325
|
-
W0234.new(context),
|
326
|
-
W0235.new(context),
|
327
|
-
W0236.new(context),
|
328
|
-
W0237.new(context),
|
329
|
-
W0238.new(context),
|
330
|
-
W0239.new(context),
|
331
|
-
W0240.new(context),
|
332
|
-
W0241.new(context),
|
333
|
-
W0242.new(context),
|
334
|
-
W0243.new(context),
|
335
|
-
W0244.new(context),
|
336
|
-
W0245.new(context),
|
337
|
-
W0246.new(context),
|
338
|
-
W0247.new(context),
|
339
|
-
W0248.new(context),
|
340
|
-
W0249.new(context),
|
341
|
-
W0250.new(context),
|
342
|
-
W0251.new(context),
|
343
|
-
W0252.new(context),
|
344
|
-
W0253.new(context),
|
345
|
-
W0254.new(context),
|
346
|
-
W0255.new(context),
|
347
|
-
W0256.new(context),
|
348
|
-
W0257.new(context),
|
349
|
-
W0258.new(context),
|
350
|
-
W0259.new(context),
|
351
|
-
W0260.new(context),
|
352
|
-
W0261.new(context),
|
353
|
-
W0262.new(context),
|
354
|
-
W0263.new(context),
|
355
|
-
W0264.new(context),
|
356
|
-
W0265.new(context),
|
357
|
-
W0266.new(context),
|
358
|
-
W0267.new(context),
|
359
|
-
W0268.new(context),
|
360
|
-
W0269.new(context),
|
361
|
-
W0270.new(context),
|
362
|
-
W0271.new(context),
|
363
|
-
W0272.new(context),
|
364
|
-
W0273.new(context),
|
365
|
-
W0274.new(context),
|
366
|
-
W0275.new(context),
|
367
|
-
W0276.new(context),
|
368
|
-
W0277.new(context),
|
369
|
-
W0278.new(context),
|
370
|
-
W0279.new(context),
|
371
|
-
W0280.new(context),
|
372
|
-
W0281.new(context),
|
373
|
-
W0282.new(context),
|
374
|
-
W0283.new(context),
|
375
|
-
W0284.new(context),
|
376
|
-
W0285.new(context),
|
377
|
-
W0286.new(context),
|
378
|
-
W0287.new(context),
|
379
|
-
W0288.new(context),
|
380
|
-
W0289.new(context),
|
381
|
-
W0290.new(context),
|
382
|
-
W0291.new(context),
|
383
|
-
W0292.new(context),
|
384
|
-
W0293.new(context),
|
385
|
-
W0294.new(context),
|
386
|
-
W0295.new(context),
|
387
|
-
W0296.new(context),
|
388
|
-
W0297.new(context),
|
389
|
-
W0298.new(context),
|
390
|
-
W0299.new(context),
|
391
|
-
W0300.new(context),
|
392
|
-
W0301.new(context),
|
393
|
-
W0302.new(context),
|
394
|
-
W0303.new(context),
|
395
|
-
W0304.new(context),
|
396
|
-
W0305.new(context),
|
397
|
-
W0306.new(context),
|
398
|
-
W0307.new(context),
|
399
|
-
W0308.new(context),
|
400
|
-
W0309.new(context),
|
401
|
-
W0310.new(context),
|
402
|
-
W0311.new(context),
|
403
|
-
W0312.new(context),
|
404
|
-
W0313.new(context),
|
405
|
-
W0314.new(context),
|
406
|
-
W0315.new(context),
|
407
|
-
W0316.new(context),
|
408
|
-
W0317.new(context),
|
409
|
-
W0318.new(context),
|
410
|
-
W0319.new(context),
|
411
|
-
W0320.new(context),
|
412
|
-
W0321.new(context),
|
413
|
-
W0322.new(context),
|
414
|
-
W0323.new(context),
|
415
|
-
W0324.new(context),
|
416
|
-
W0325.new(context),
|
417
|
-
W0326.new(context),
|
418
|
-
W0327.new(context),
|
419
|
-
W0328.new(context),
|
420
|
-
W0329.new(context),
|
421
|
-
W0330.new(context),
|
422
|
-
W0331.new(context),
|
423
|
-
W0332.new(context),
|
424
|
-
W0333.new(context),
|
425
|
-
W0334.new(context),
|
426
|
-
W0335.new(context),
|
427
|
-
W0336.new(context),
|
428
|
-
W0337.new(context),
|
429
|
-
W0338.new(context),
|
430
|
-
W0339.new(context),
|
431
|
-
W0340.new(context),
|
432
|
-
W0341.new(context),
|
433
|
-
W0342.new(context),
|
434
|
-
W0343.new(context),
|
435
|
-
W0344.new(context),
|
436
|
-
W0345.new(context),
|
437
|
-
W0346.new(context),
|
438
|
-
W0347.new(context),
|
439
|
-
W0348.new(context),
|
440
|
-
W0349.new(context),
|
441
|
-
W0350.new(context),
|
442
|
-
W0351.new(context),
|
443
|
-
W0352.new(context),
|
444
|
-
W0353.new(context),
|
445
|
-
W0354.new(context),
|
446
|
-
W0355.new(context),
|
447
|
-
W0356.new(context),
|
448
|
-
W0357.new(context),
|
449
|
-
W0358.new(context),
|
450
|
-
W0359.new(context),
|
451
|
-
W0360.new(context),
|
452
|
-
W0361.new(context),
|
453
|
-
W0362.new(context),
|
454
|
-
W0363.new(context),
|
455
|
-
W0364.new(context),
|
456
|
-
W0365.new(context),
|
457
|
-
W0366.new(context),
|
458
|
-
W0367.new(context),
|
459
|
-
W0368.new(context),
|
460
|
-
W0369.new(context),
|
461
|
-
W0370.new(context),
|
462
|
-
W0371.new(context),
|
463
|
-
W0372.new(context),
|
464
|
-
W0373.new(context),
|
465
|
-
W0374.new(context),
|
466
|
-
W0375.new(context),
|
467
|
-
W0376.new(context),
|
468
|
-
W0377.new(context),
|
469
|
-
W0378.new(context),
|
470
|
-
W0379.new(context),
|
471
|
-
W0380.new(context),
|
472
|
-
W0381.new(context),
|
473
|
-
W0382.new(context),
|
474
|
-
W0383.new(context),
|
475
|
-
W0384.new(context),
|
476
|
-
W0385.new(context),
|
477
|
-
W0386.new(context),
|
478
|
-
W0387.new(context),
|
479
|
-
W0388.new(context),
|
480
|
-
W0389.new(context),
|
481
|
-
W0390.new(context),
|
482
|
-
W0391.new(context),
|
483
|
-
W0392.new(context),
|
484
|
-
W0393.new(context),
|
485
|
-
W0394.new(context),
|
486
|
-
W0395.new(context),
|
487
|
-
W0396.new(context),
|
488
|
-
W0397.new(context),
|
489
|
-
W0398.new(context),
|
490
|
-
W0399.new(context),
|
491
|
-
W0400.new(context),
|
492
|
-
W0401.new(context),
|
493
|
-
W0402.new(context),
|
494
|
-
W0403.new(context),
|
495
|
-
W0404.new(context),
|
496
|
-
W0405.new(context),
|
497
|
-
W0406.new(context),
|
498
|
-
W0407.new(context),
|
499
|
-
W0408.new(context),
|
500
|
-
W0409.new(context),
|
501
|
-
W0410.new(context),
|
502
|
-
W0411.new(context),
|
503
|
-
W0413.new(context),
|
504
|
-
W0414.new(context),
|
505
|
-
W0421.new(context),
|
506
|
-
W0422.new(context),
|
507
|
-
W0423.new(context),
|
508
|
-
W0424.new(context),
|
509
|
-
W0425.new(context),
|
510
|
-
W0431.new(context),
|
511
|
-
W0432.new(context),
|
512
|
-
W0440.new(context),
|
513
|
-
W0441.new(context),
|
514
|
-
W0446.new(context),
|
515
|
-
W0447.new(context),
|
516
|
-
W0456.new(context),
|
517
|
-
W0457.new(context),
|
518
|
-
W0458.new(context),
|
519
|
-
W0459.new(context),
|
520
|
-
W0460.new(context),
|
521
|
-
W0461.new(context),
|
522
|
-
W0462.new(context),
|
523
|
-
W0488.new(context),
|
524
|
-
W0489.new(context),
|
525
|
-
W0490.new(context),
|
526
|
-
W0491.new(context),
|
527
|
-
W0492.new(context),
|
528
|
-
W0493.new(context),
|
529
|
-
W0495.new(context),
|
530
|
-
W0496.new(context),
|
531
|
-
W0497.new(context),
|
532
|
-
W0498.new(context),
|
533
|
-
W0499.new(context),
|
534
|
-
W0500.new(context),
|
535
|
-
W0501.new(context),
|
536
|
-
W0502.new(context),
|
537
|
-
W0508.new(context),
|
538
|
-
W0512.new(context),
|
539
|
-
W0525.new(context),
|
540
|
-
W0529.new(context),
|
541
|
-
W0530.new(context),
|
542
|
-
W0532.new(context),
|
543
|
-
W0534.new(context),
|
544
|
-
W0535.new(context),
|
545
|
-
W0538.new(context),
|
546
|
-
W0540.new(context),
|
547
|
-
W0542.new(context),
|
548
|
-
W0543.new(context),
|
549
|
-
W0544.new(context),
|
550
|
-
W0546.new(context),
|
551
|
-
W0551.new(context),
|
552
|
-
W0552.new(context),
|
553
|
-
W0553.new(context),
|
554
|
-
W0556.new(context),
|
555
|
-
W0559.new(context),
|
556
|
-
W0560.new(context),
|
557
|
-
W0561.new(context),
|
558
|
-
W0562.new(context),
|
559
|
-
W0563.new(context),
|
560
|
-
W0564.new(context),
|
561
|
-
W0565.new(context),
|
562
|
-
W0566.new(context),
|
563
|
-
W0567.new(context),
|
564
|
-
W0568.new(context),
|
565
|
-
W0569.new(context),
|
566
|
-
W0570.new(context),
|
567
|
-
W0571.new(context),
|
568
|
-
W0572.new(context),
|
569
|
-
W0573.new(context),
|
570
|
-
W0578.new(context),
|
571
|
-
W0579.new(context),
|
572
|
-
W0580.new(context),
|
573
|
-
W0581.new(context),
|
574
|
-
W0582.new(context),
|
575
|
-
W0583.new(context),
|
576
|
-
W0584.new(context),
|
577
|
-
W0585.new(context),
|
578
|
-
W0597.new(context),
|
579
|
-
W0598.new(context),
|
580
|
-
W0599.new(context),
|
581
|
-
W0600.new(context),
|
582
|
-
W0605.new(context),
|
583
|
-
W0606.new(context),
|
584
|
-
W0607.new(context),
|
585
|
-
W0608.new(context),
|
586
|
-
W0609.new(context),
|
587
|
-
W0610.new(context),
|
588
|
-
W0611.new(context),
|
589
|
-
W0612.new(context),
|
590
|
-
W0613.new(context),
|
591
|
-
W0614.new(context),
|
592
|
-
W0622.new(context),
|
593
|
-
W0623.new(context),
|
594
|
-
W0624.new(context),
|
595
|
-
W0625.new(context),
|
596
|
-
W0626.new(context),
|
597
|
-
W0627.new(context),
|
598
|
-
W0629.new(context),
|
599
|
-
W0635.new(context),
|
600
|
-
W0636.new(context),
|
601
|
-
W0637.new(context),
|
602
|
-
W0638.new(context),
|
603
|
-
W0639.new(context),
|
604
|
-
W0640.new(context),
|
605
|
-
W0641.new(context),
|
606
|
-
W0642.new(context),
|
607
|
-
W0644.new(context),
|
608
|
-
W0645.new(context),
|
609
|
-
W0649.new(context),
|
610
|
-
W0650.new(context),
|
611
|
-
W0653.new(context),
|
612
|
-
W0654.new(context),
|
613
|
-
W0655.new(context),
|
614
|
-
W0656.new(context),
|
615
|
-
W0657.new(context),
|
616
|
-
W0658.new(context),
|
617
|
-
W0659.new(context),
|
618
|
-
W0660.new(context),
|
619
|
-
W0661.new(context),
|
620
|
-
W0662.new(context),
|
621
|
-
W0663.new(context),
|
622
|
-
W0664.new(context),
|
623
|
-
W0665.new(context),
|
624
|
-
W0666.new(context),
|
625
|
-
W0667.new(context),
|
626
|
-
W0668.new(context),
|
627
|
-
W0669.new(context),
|
628
|
-
W0670.new(context),
|
629
|
-
W0671.new(context),
|
630
|
-
W0672.new(context),
|
631
|
-
W0673.new(context),
|
632
|
-
W0674.new(context),
|
633
|
-
W0675.new(context),
|
634
|
-
W0676.new(context),
|
635
|
-
W0677.new(context),
|
636
|
-
W0678.new(context),
|
637
|
-
W0679.new(context),
|
638
|
-
W0680.new(context),
|
639
|
-
W0681.new(context),
|
640
|
-
W0682.new(context),
|
641
|
-
W0683.new(context),
|
642
|
-
W0684.new(context),
|
643
|
-
W0685.new(context),
|
644
|
-
W0686.new(context),
|
645
|
-
W0694.new(context),
|
646
|
-
W0697.new(context),
|
647
|
-
W0698.new(context),
|
648
|
-
W0699.new(context),
|
649
|
-
W0700.new(context),
|
650
|
-
W0703.new(context),
|
651
|
-
W0704.new(context),
|
652
|
-
W0705.new(context),
|
653
|
-
W0707.new(context),
|
654
|
-
W0708.new(context),
|
655
|
-
W0711.new(context),
|
656
|
-
W0712.new(context),
|
657
|
-
W0713.new(context),
|
658
|
-
W0714.new(context),
|
659
|
-
W0715.new(context),
|
660
|
-
W0716.new(context),
|
661
|
-
W0717.new(context),
|
662
|
-
W0718.new(context),
|
663
|
-
W0719.new(context),
|
664
|
-
W0720.new(context),
|
665
|
-
W0721.new(context),
|
666
|
-
W0722.new(context),
|
667
|
-
W0723.new(context),
|
668
|
-
W0726.new(context),
|
669
|
-
W0727.new(context),
|
670
|
-
W0728.new(context),
|
671
|
-
W0729.new(context),
|
672
|
-
W0730.new(context),
|
673
|
-
W0731.new(context),
|
674
|
-
W0732.new(context),
|
675
|
-
W0733.new(context),
|
676
|
-
W0734.new(context),
|
677
|
-
W0735.new(context),
|
678
|
-
W0736.new(context),
|
679
|
-
W0737.new(context),
|
680
|
-
W0738.new(context),
|
681
|
-
W0739.new(context),
|
682
|
-
W0740.new(context),
|
683
|
-
W0741.new(context),
|
684
|
-
W0742.new(context),
|
685
|
-
W0743.new(context),
|
686
|
-
W0744.new(context),
|
687
|
-
W0745.new(context),
|
688
|
-
W0747.new(context),
|
689
|
-
W0748.new(context),
|
690
|
-
W0749.new(context),
|
691
|
-
W0750.new(context),
|
692
|
-
W0751.new(context),
|
693
|
-
W0752.new(context),
|
694
|
-
W0753.new(context),
|
695
|
-
W0754.new(context),
|
696
|
-
W0755.new(context),
|
697
|
-
W0756.new(context),
|
698
|
-
W0757.new(context),
|
699
|
-
W0758.new(context),
|
700
|
-
W0759.new(context),
|
701
|
-
W0760.new(context),
|
702
|
-
W0761.new(context),
|
703
|
-
W0762.new(context),
|
704
|
-
W0763.new(context),
|
705
|
-
W0764.new(context),
|
706
|
-
W0765.new(context),
|
707
|
-
W0766.new(context),
|
708
|
-
W0767.new(context),
|
709
|
-
W0768.new(context),
|
710
|
-
W0769.new(context),
|
711
|
-
W0771.new(context),
|
712
|
-
W0774.new(context),
|
713
|
-
W0775.new(context),
|
714
|
-
W0776.new(context),
|
715
|
-
W0777.new(context),
|
716
|
-
W0778.new(context),
|
717
|
-
W0779.new(context),
|
718
|
-
W0780.new(context),
|
719
|
-
W0781.new(context),
|
720
|
-
W0783.new(context),
|
721
|
-
W0785.new(context),
|
722
|
-
W0786.new(context),
|
723
|
-
W0787.new(context),
|
724
|
-
W0788.new(context),
|
725
|
-
W0789.new(context),
|
726
|
-
W0790.new(context),
|
727
|
-
W0792.new(context),
|
728
|
-
W0793.new(context),
|
729
|
-
W0794.new(context),
|
730
|
-
W0795.new(context),
|
731
|
-
W0796.new(context),
|
732
|
-
W0797.new(context),
|
733
|
-
W0798.new(context),
|
734
|
-
W0799.new(context),
|
735
|
-
W0800.new(context),
|
736
|
-
W0801.new(context),
|
737
|
-
W0809.new(context),
|
738
|
-
W0810.new(context),
|
739
|
-
W0827.new(context),
|
740
|
-
W0828.new(context),
|
741
|
-
W0830.new(context),
|
742
|
-
W0833.new(context),
|
743
|
-
W0834.new(context),
|
744
|
-
W0947.new(context),
|
745
|
-
W0948.new(context),
|
746
|
-
W0949.new(context),
|
747
|
-
W0950.new(context),
|
748
|
-
W1026.new(context),
|
749
|
-
W1027.new(context),
|
750
|
-
W1028.new(context),
|
751
|
-
W1029.new(context),
|
752
|
-
W1030.new(context),
|
753
|
-
W1031.new(context),
|
754
|
-
W1032.new(context),
|
755
|
-
W1033.new(context),
|
756
|
-
W1034.new(context),
|
757
|
-
W1039.new(context),
|
758
|
-
W1047.new(context),
|
759
|
-
W1049.new(context),
|
760
|
-
W1050.new(context),
|
761
|
-
W1051.new(context),
|
762
|
-
W1052.new(context),
|
763
|
-
W1053.new(context),
|
764
|
-
W1054.new(context),
|
765
|
-
W1055.new(context),
|
766
|
-
W1056.new(context),
|
767
|
-
W1057.new(context),
|
768
|
-
W1058.new(context),
|
769
|
-
W1059.new(context),
|
770
|
-
W1060.new(context),
|
771
|
-
W1061.new(context),
|
772
|
-
W1062.new(context),
|
773
|
-
W1063.new(context),
|
774
|
-
W1064.new(context),
|
775
|
-
W1065.new(context),
|
776
|
-
W1066.new(context),
|
777
|
-
W1067.new(context),
|
778
|
-
W1068.new(context),
|
779
|
-
W1069.new(context),
|
780
|
-
W1070.new(context),
|
781
|
-
W1071.new(context),
|
782
|
-
W1072.new(context),
|
783
|
-
W1073.new(context),
|
784
|
-
W1074.new(context),
|
785
|
-
W1075.new(context),
|
786
|
-
W1076.new(context),
|
787
|
-
W1077.new(context),
|
788
|
-
W9001.new(context),
|
789
|
-
W9003.new(context)
|
790
|
-
]
|
98
|
+
class InterpPhase < CPhase
|
99
|
+
def initialize(context)
|
100
|
+
super(context, "int")
|
791
101
|
end
|
792
|
-
end
|
793
102
|
|
794
|
-
class InterpPhase < Phase
|
795
103
|
private
|
796
|
-
def do_execute(context)
|
797
|
-
|
798
|
-
|
799
|
-
ValueDomain.clear_memo
|
800
|
-
end
|
104
|
+
def do_execute(context, *)
|
105
|
+
Program.new(context[:c_interpreter], context[:c_syntax_tree]).execute
|
106
|
+
ValueDomain.clear_memo
|
801
107
|
ensure
|
802
108
|
DebugUtil.dump_syntax_tree(context)
|
803
109
|
end
|
804
110
|
end
|
805
111
|
|
806
|
-
class ReviewPhase <
|
112
|
+
class ReviewPhase < CPhase
|
113
|
+
def initialize(context)
|
114
|
+
super(context, "rv2")
|
115
|
+
end
|
116
|
+
|
807
117
|
private
|
808
|
-
def do_execute(context)
|
809
|
-
|
810
|
-
context[:c_syntax_tree].accept(context[:c_visitor])
|
811
|
-
end
|
118
|
+
def do_execute(context, *)
|
119
|
+
context[:c_syntax_tree].accept(context[:c_visitor])
|
812
120
|
end
|
813
121
|
end
|
814
122
|
|
815
|
-
class
|
123
|
+
class ExaminationPhase < CPhase
|
124
|
+
def initialize(context)
|
125
|
+
super(context, "ex2")
|
126
|
+
end
|
127
|
+
|
816
128
|
private
|
817
|
-
def do_execute(context)
|
818
|
-
|
819
|
-
context[:c_commands].each { |command| command.execute }
|
820
|
-
end
|
129
|
+
def do_execute(context, *)
|
130
|
+
examinations.each { |exam| exam.execute }
|
821
131
|
end
|
822
132
|
end
|
823
133
|
|