adlint 3.0.4 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. data/ChangeLog +374 -13
  2. data/INSTALL +1 -3
  3. data/MANIFEST +12 -0
  4. data/NEWS +30 -4
  5. data/README +0 -4
  6. data/TODO +2 -1
  7. data/etc/mesg.d/c_builtin/en_US/messages.yml +2 -2
  8. data/etc/mesg.d/c_builtin/ja_JP/messages.yml +2 -2
  9. data/etc/mesg.d/core/en_US/messages.yml +5 -1
  10. data/etc/mesg.d/core/ja_JP/messages.yml +5 -1
  11. data/features/code_check/W0422.feature +128 -0
  12. data/features/code_check/W0491.feature +57 -0
  13. data/features/code_check/W0492.feature +80 -0
  14. data/features/code_check/W0542.feature +20 -0
  15. data/features/code_check/W0580.feature +25 -0
  16. data/features/code_check/W0610.feature +36 -0
  17. data/features/code_check/W0642.feature +67 -0
  18. data/features/code_check/W0786.feature +39 -0
  19. data/features/code_check/W0830.feature +27 -0
  20. data/features/code_check/W1047.feature +72 -0
  21. data/features/code_check/W9003.feature +22 -0
  22. data/features/code_extraction/TODO +1 -0
  23. data/features/metric_measurement/TODO +1 -0
  24. data/lib/adlint/analyzer.rb +2 -2
  25. data/lib/adlint/cc1/ctrlexpr.rb +27 -6
  26. data/lib/adlint/cc1/domain.rb +72 -12
  27. data/lib/adlint/cc1/enum.rb +4 -0
  28. data/lib/adlint/cc1/expr.rb +31 -29
  29. data/lib/adlint/cc1/interp.rb +45 -56
  30. data/lib/adlint/cc1/lexer.rb +26 -5
  31. data/lib/adlint/cc1/mediator.rb +35 -6
  32. data/lib/adlint/cc1/object.rb +62 -19
  33. data/lib/adlint/cc1/parser.rb +948 -904
  34. data/lib/adlint/cc1/parser.y +59 -29
  35. data/lib/adlint/cc1/phase.rb +6 -8
  36. data/lib/adlint/cc1/syntax.rb +70 -17
  37. data/lib/adlint/cc1/util.rb +4 -4
  38. data/lib/adlint/code.rb +16 -6
  39. data/lib/adlint/cpp/eval.rb +31 -25
  40. data/lib/adlint/cpp/lexer.rb +11 -5
  41. data/lib/adlint/cpp/macro.rb +34 -7
  42. data/lib/adlint/cpp/phase.rb +8 -8
  43. data/lib/adlint/error.rb +6 -0
  44. data/lib/adlint/exam/c_builtin/cc1_check.rb +557 -594
  45. data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +72 -72
  46. data/lib/adlint/exam/c_builtin/cc1_code.rb +72 -52
  47. data/lib/adlint/exam/c_builtin/cc1_metric.rb +131 -131
  48. data/lib/adlint/exam/c_builtin/cpp_check.rb +48 -48
  49. data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +2 -2
  50. data/lib/adlint/exam/c_builtin/cpp_code.rb +21 -21
  51. data/lib/adlint/exam/c_builtin/ld_check.rb +88 -87
  52. data/lib/adlint/exam/c_builtin/ld_metric.rb +4 -5
  53. data/lib/adlint/exam/c_builtin.rb +6 -6
  54. data/lib/adlint/ld/object.rb +269 -186
  55. data/lib/adlint/ld/phase.rb +19 -19
  56. data/lib/adlint/ld/typedef.rb +7 -7
  57. data/lib/adlint/ld/util.rb +25 -17
  58. data/lib/adlint/location.rb +6 -1
  59. data/lib/adlint/memo.rb +66 -13
  60. data/lib/adlint/prelude.rb +2 -2
  61. data/lib/adlint/report.rb +13 -14
  62. data/lib/adlint/util.rb +1 -1
  63. data/lib/adlint/version.rb +2 -2
  64. data/share/doc/Makefile +6 -2
  65. data/share/doc/c99gram.dot +502 -0
  66. data/share/doc/c99gram.pdf +0 -0
  67. data/share/doc/developers_guide_ja.html +4 -3
  68. data/share/doc/developers_guide_ja.texi +2 -1
  69. data/share/doc/users_guide_en.html +9 -9
  70. data/share/doc/users_guide_en.texi +7 -7
  71. data/share/doc/users_guide_ja.html +9 -9
  72. data/share/doc/users_guide_ja.texi +7 -7
  73. metadata +14 -2
@@ -44,24 +44,24 @@ module CBuiltin #:nodoc:
44
44
  def initialize(phase_ctxt)
45
45
  super
46
46
  @fpath = phase_ctxt[:sources].first.fpath
47
- visitor = phase_ctxt[:cc1_visitor]
48
- visitor.enter_error_statement += T(:count_statement)
49
- visitor.enter_generic_labeled_statement += T(:count_statement)
50
- visitor.enter_case_labeled_statement += T(:count_statement)
51
- visitor.enter_default_labeled_statement += T(:count_statement)
52
- visitor.enter_expression_statement += T(:count_statement)
53
- visitor.enter_if_statement += T(:count_statement)
54
- visitor.enter_if_else_statement += T(:count_statement)
55
- visitor.enter_switch_statement += T(:count_statement)
56
- visitor.enter_while_statement += T(:count_statement)
57
- visitor.enter_do_statement += T(:count_statement)
58
- visitor.enter_for_statement += T(:count_statement)
59
- visitor.enter_c99_for_statement += T(:count_statement)
60
- visitor.enter_goto_statement += T(:count_statement)
61
- visitor.enter_continue_statement += T(:count_statement)
62
- visitor.enter_break_statement += T(:count_statement)
63
- visitor.enter_return_statement += T(:count_statement)
64
- visitor.leave_translation_unit += M(:measure)
47
+ traversal = phase_ctxt[:cc1_ast_traversal]
48
+ traversal.enter_error_statement += T(:count_statement)
49
+ traversal.enter_generic_labeled_statement += T(:count_statement)
50
+ traversal.enter_case_labeled_statement += T(:count_statement)
51
+ traversal.enter_default_labeled_statement += T(:count_statement)
52
+ traversal.enter_expression_statement += T(:count_statement)
53
+ traversal.enter_if_statement += T(:count_statement)
54
+ traversal.enter_if_else_statement += T(:count_statement)
55
+ traversal.enter_switch_statement += T(:count_statement)
56
+ traversal.enter_while_statement += T(:count_statement)
57
+ traversal.enter_do_statement += T(:count_statement)
58
+ traversal.enter_for_statement += T(:count_statement)
59
+ traversal.enter_c99_for_statement += T(:count_statement)
60
+ traversal.enter_goto_statement += T(:count_statement)
61
+ traversal.enter_continue_statement += T(:count_statement)
62
+ traversal.enter_break_statement += T(:count_statement)
63
+ traversal.enter_return_statement += T(:count_statement)
64
+ traversal.leave_translation_unit += M(:measure)
65
65
  @stmt_cnt = 0
66
66
  end
67
67
 
@@ -86,10 +86,10 @@ module CBuiltin #:nodoc:
86
86
  def initialize(phase_ctxt)
87
87
  super
88
88
  @fpath = phase_ctxt[:sources].first.fpath
89
- visitor = phase_ctxt[:cc1_visitor]
90
- visitor.enter_ansi_function_definition += T(:count_function)
91
- visitor.enter_kandr_function_definition += T(:count_function)
92
- visitor.leave_translation_unit += M(:measure)
89
+ traversal = phase_ctxt[:cc1_ast_traversal]
90
+ traversal.enter_ansi_function_definition += T(:count_function)
91
+ traversal.enter_kandr_function_definition += T(:count_function)
92
+ traversal.leave_translation_unit += M(:measure)
93
93
  @fun_cnt = 0
94
94
  end
95
95
 
@@ -114,27 +114,27 @@ module CBuiltin #:nodoc:
114
114
  def initialize(phase_ctxt)
115
115
  super
116
116
  @fpath = phase_ctxt[:sources].first.fpath
117
- visitor = phase_ctxt[:cc1_visitor]
118
- visitor.enter_ansi_function_definition += T(:enter_function)
119
- visitor.leave_ansi_function_definition += T(:leave_function)
120
- visitor.enter_kandr_function_definition += T(:enter_function)
121
- visitor.leave_kandr_function_definition += T(:leave_function)
122
- visitor.enter_error_statement += T(:count_statement)
123
- visitor.enter_generic_labeled_statement += T(:count_statement)
124
- visitor.enter_case_labeled_statement += T(:count_statement)
125
- visitor.enter_default_labeled_statement += T(:count_statement)
126
- visitor.enter_expression_statement += T(:count_statement)
127
- visitor.enter_if_statement += T(:count_statement)
128
- visitor.enter_if_else_statement += T(:count_statement)
129
- visitor.enter_switch_statement += T(:count_statement)
130
- visitor.enter_while_statement += T(:count_statement)
131
- visitor.enter_do_statement += T(:count_statement)
132
- visitor.enter_for_statement += T(:count_statement)
133
- visitor.enter_c99_for_statement += T(:count_statement)
134
- visitor.enter_goto_statement += T(:count_statement)
135
- visitor.enter_continue_statement += T(:count_statement)
136
- visitor.enter_break_statement += T(:count_statement)
137
- visitor.enter_return_statement += T(:count_statement)
117
+ traversal = phase_ctxt[:cc1_ast_traversal]
118
+ traversal.enter_ansi_function_definition += T(:enter_function)
119
+ traversal.leave_ansi_function_definition += T(:leave_function)
120
+ traversal.enter_kandr_function_definition += T(:enter_function)
121
+ traversal.leave_kandr_function_definition += T(:leave_function)
122
+ traversal.enter_error_statement += T(:count_statement)
123
+ traversal.enter_generic_labeled_statement += T(:count_statement)
124
+ traversal.enter_case_labeled_statement += T(:count_statement)
125
+ traversal.enter_default_labeled_statement += T(:count_statement)
126
+ traversal.enter_expression_statement += T(:count_statement)
127
+ traversal.enter_if_statement += T(:count_statement)
128
+ traversal.enter_if_else_statement += T(:count_statement)
129
+ traversal.enter_switch_statement += T(:count_statement)
130
+ traversal.enter_while_statement += T(:count_statement)
131
+ traversal.enter_do_statement += T(:count_statement)
132
+ traversal.enter_for_statement += T(:count_statement)
133
+ traversal.enter_c99_for_statement += T(:count_statement)
134
+ traversal.enter_goto_statement += T(:count_statement)
135
+ traversal.enter_continue_statement += T(:count_statement)
136
+ traversal.enter_break_statement += T(:count_statement)
137
+ traversal.enter_return_statement += T(:count_statement)
138
138
  @cur_fun = nil
139
139
  @stmt_cnt = 0
140
140
  end
@@ -172,27 +172,27 @@ module CBuiltin #:nodoc:
172
172
  def initialize(phase_ctxt)
173
173
  super
174
174
  @fpath = phase_ctxt[:sources].first.fpath
175
- visitor = phase_ctxt[:cc1_visitor]
176
- visitor.enter_ansi_function_definition += T(:enter_function)
177
- visitor.leave_ansi_function_definition += T(:leave_function)
178
- visitor.enter_kandr_function_definition += T(:enter_function)
179
- visitor.leave_kandr_function_definition += T(:leave_function)
180
- visitor.enter_error_statement += T(:count_statement)
181
- visitor.enter_generic_labeled_statement += T(:count_statement)
182
- visitor.enter_case_labeled_statement += T(:count_statement)
183
- visitor.enter_default_labeled_statement += T(:count_statement)
184
- visitor.enter_expression_statement += T(:count_statement)
185
- visitor.enter_if_statement += T(:count_statement)
186
- visitor.enter_if_else_statement += T(:count_statement)
187
- visitor.enter_switch_statement += T(:count_statement)
188
- visitor.enter_while_statement += T(:count_statement)
189
- visitor.enter_do_statement += T(:count_statement)
190
- visitor.enter_for_statement += T(:count_statement)
191
- visitor.enter_c99_for_statement += T(:count_statement)
192
- visitor.enter_goto_statement += T(:count_statement)
193
- visitor.enter_continue_statement += T(:count_statement)
194
- visitor.enter_break_statement += T(:count_statement)
195
- visitor.enter_return_statement += T(:count_statement)
175
+ traversal = phase_ctxt[:cc1_ast_traversal]
176
+ traversal.enter_ansi_function_definition += T(:enter_function)
177
+ traversal.leave_ansi_function_definition += T(:leave_function)
178
+ traversal.enter_kandr_function_definition += T(:enter_function)
179
+ traversal.leave_kandr_function_definition += T(:leave_function)
180
+ traversal.enter_error_statement += T(:count_statement)
181
+ traversal.enter_generic_labeled_statement += T(:count_statement)
182
+ traversal.enter_case_labeled_statement += T(:count_statement)
183
+ traversal.enter_default_labeled_statement += T(:count_statement)
184
+ traversal.enter_expression_statement += T(:count_statement)
185
+ traversal.enter_if_statement += T(:count_statement)
186
+ traversal.enter_if_else_statement += T(:count_statement)
187
+ traversal.enter_switch_statement += T(:count_statement)
188
+ traversal.enter_while_statement += T(:count_statement)
189
+ traversal.enter_do_statement += T(:count_statement)
190
+ traversal.enter_for_statement += T(:count_statement)
191
+ traversal.enter_c99_for_statement += T(:count_statement)
192
+ traversal.enter_goto_statement += T(:count_statement)
193
+ traversal.enter_continue_statement += T(:count_statement)
194
+ traversal.enter_break_statement += T(:count_statement)
195
+ traversal.enter_return_statement += T(:count_statement)
196
196
  @cur_fun = nil
197
197
  @unreached_stmt_cnt = 0
198
198
  end
@@ -231,9 +231,9 @@ module CBuiltin #:nodoc:
231
231
  def initialize(phase_ctxt)
232
232
  super
233
233
  @fpath = phase_ctxt[:sources].first.fpath
234
- visitor = phase_ctxt[:cc1_visitor]
235
- visitor.enter_ansi_function_definition += T(:measure)
236
- visitor.enter_kandr_function_definition += T(:measure)
234
+ traversal = phase_ctxt[:cc1_ast_traversal]
235
+ traversal.enter_ansi_function_definition += T(:measure)
236
+ traversal.enter_kandr_function_definition += T(:measure)
237
237
  end
238
238
 
239
239
  private
@@ -255,9 +255,9 @@ module CBuiltin #:nodoc:
255
255
  def initialize(phase_ctxt)
256
256
  super
257
257
  @fpath = phase_ctxt[:sources].first.fpath
258
- visitor = phase_ctxt[:cc1_visitor]
259
- visitor.enter_ansi_function_definition += T(:measure_ansi_function)
260
- visitor.enter_kandr_function_definition += T(:measure_kandr_function)
258
+ traversal = phase_ctxt[:cc1_ast_traversal]
259
+ traversal.enter_ansi_function_definition += T(:measure_ansi_function)
260
+ traversal.enter_kandr_function_definition += T(:measure_kandr_function)
261
261
  end
262
262
 
263
263
  private
@@ -364,12 +364,12 @@ module CBuiltin #:nodoc:
364
364
  def initialize(phase_ctxt)
365
365
  super
366
366
  @fpath = phase_ctxt[:sources].first.fpath
367
- visitor = phase_ctxt[:cc1_visitor]
368
- visitor.enter_ansi_function_definition += T(:enter_function)
369
- visitor.leave_ansi_function_definition += T(:leave_function)
370
- visitor.enter_kandr_function_definition += T(:enter_function)
371
- visitor.leave_kandr_function_definition += T(:leave_function)
372
- visitor.enter_function_call_expression += T(:count_function_call)
367
+ traversal = phase_ctxt[:cc1_ast_traversal]
368
+ traversal.enter_ansi_function_definition += T(:enter_function)
369
+ traversal.leave_ansi_function_definition += T(:leave_function)
370
+ traversal.enter_kandr_function_definition += T(:enter_function)
371
+ traversal.leave_kandr_function_definition += T(:leave_function)
372
+ traversal.enter_function_call_expression += T(:count_function_call)
373
373
  @cur_fun = nil
374
374
  @funcall_cnt = 0
375
375
  end
@@ -408,12 +408,12 @@ module CBuiltin #:nodoc:
408
408
  def initialize(phase_ctxt)
409
409
  super
410
410
  @fpath = phase_ctxt[:sources].first.fpath
411
- visitor = phase_ctxt[:cc1_visitor]
412
- visitor.enter_ansi_function_definition += T(:enter_function)
413
- visitor.leave_ansi_function_definition += T(:leave_function)
414
- visitor.enter_kandr_function_definition += T(:enter_function)
415
- visitor.leave_kandr_function_definition += T(:leave_function)
416
- visitor.enter_goto_statement += T(:count_goto)
411
+ traversal = phase_ctxt[:cc1_ast_traversal]
412
+ traversal.enter_ansi_function_definition += T(:enter_function)
413
+ traversal.leave_ansi_function_definition += T(:leave_function)
414
+ traversal.enter_kandr_function_definition += T(:enter_function)
415
+ traversal.leave_kandr_function_definition += T(:leave_function)
416
+ traversal.enter_goto_statement += T(:count_goto)
417
417
  @cur_fun = nil
418
418
  @goto_cnt = 0
419
419
  end
@@ -452,27 +452,27 @@ module CBuiltin #:nodoc:
452
452
  def initialize(phase_ctxt)
453
453
  super
454
454
  @fpath = phase_ctxt[:sources].first.fpath
455
- visitor = phase_ctxt[:cc1_visitor]
456
- visitor.enter_ansi_function_definition += T(:enter_function)
457
- visitor.leave_ansi_function_definition += T(:leave_function)
458
- visitor.enter_kandr_function_definition += T(:enter_function)
459
- visitor.leave_kandr_function_definition += T(:leave_function)
460
- visitor.enter_error_statement += T(:enter_statement)
461
- visitor.enter_generic_labeled_statement += T(:enter_statement)
462
- visitor.enter_case_labeled_statement += T(:enter_statement)
463
- visitor.enter_default_labeled_statement += T(:enter_statement)
464
- visitor.enter_expression_statement += T(:enter_statement)
465
- visitor.enter_if_statement += T(:enter_statement)
466
- visitor.enter_if_else_statement += T(:enter_statement)
467
- visitor.enter_switch_statement += T(:enter_statement)
468
- visitor.enter_while_statement += T(:enter_statement)
469
- visitor.enter_do_statement += T(:enter_statement)
470
- visitor.enter_for_statement += T(:enter_statement)
471
- visitor.enter_c99_for_statement += T(:enter_statement)
472
- visitor.enter_goto_statement += T(:enter_statement)
473
- visitor.enter_continue_statement += T(:enter_statement)
474
- visitor.enter_break_statement += T(:enter_statement)
475
- visitor.enter_return_statement += T(:count_return)
455
+ traversal = phase_ctxt[:cc1_ast_traversal]
456
+ traversal.enter_ansi_function_definition += T(:enter_function)
457
+ traversal.leave_ansi_function_definition += T(:leave_function)
458
+ traversal.enter_kandr_function_definition += T(:enter_function)
459
+ traversal.leave_kandr_function_definition += T(:leave_function)
460
+ traversal.enter_error_statement += T(:enter_statement)
461
+ traversal.enter_generic_labeled_statement += T(:enter_statement)
462
+ traversal.enter_case_labeled_statement += T(:enter_statement)
463
+ traversal.enter_default_labeled_statement += T(:enter_statement)
464
+ traversal.enter_expression_statement += T(:enter_statement)
465
+ traversal.enter_if_statement += T(:enter_statement)
466
+ traversal.enter_if_else_statement += T(:enter_statement)
467
+ traversal.enter_switch_statement += T(:enter_statement)
468
+ traversal.enter_while_statement += T(:enter_statement)
469
+ traversal.enter_do_statement += T(:enter_statement)
470
+ traversal.enter_for_statement += T(:enter_statement)
471
+ traversal.enter_c99_for_statement += T(:enter_statement)
472
+ traversal.enter_goto_statement += T(:enter_statement)
473
+ traversal.enter_continue_statement += T(:enter_statement)
474
+ traversal.enter_break_statement += T(:enter_statement)
475
+ traversal.enter_return_statement += T(:count_return)
476
476
  @cur_fun = nil
477
477
  @retn_cnt = 0
478
478
  @last_stmt = nil
@@ -528,13 +528,13 @@ module CBuiltin #:nodoc:
528
528
  def initialize(phase_ctxt)
529
529
  super
530
530
  @fpath = phase_ctxt[:sources].first.fpath
531
- visitor = phase_ctxt[:cc1_visitor]
532
- visitor.enter_ansi_function_definition += T(:enter_function)
533
- visitor.leave_ansi_function_definition += T(:leave_function)
534
- visitor.enter_kandr_function_definition += T(:enter_function)
535
- visitor.leave_kandr_function_definition += T(:leave_function)
536
- visitor.enter_if_else_statement += T(:enter_if_else_statement)
537
- visitor.leave_if_else_statement += T(:leave_if_else_statement)
531
+ traversal = phase_ctxt[:cc1_ast_traversal]
532
+ traversal.enter_ansi_function_definition += T(:enter_function)
533
+ traversal.leave_ansi_function_definition += T(:leave_function)
534
+ traversal.enter_kandr_function_definition += T(:enter_function)
535
+ traversal.leave_kandr_function_definition += T(:leave_function)
536
+ traversal.enter_if_else_statement += T(:enter_if_else_statement)
537
+ traversal.leave_if_else_statement += T(:leave_if_else_statement)
538
538
  @cur_fun = nil
539
539
  @if_else_stmt_chain = 0
540
540
  @incomplete_if_else_stmt_cnt = 0
@@ -584,19 +584,19 @@ module CBuiltin #:nodoc:
584
584
  def initialize(phase_ctxt)
585
585
  super
586
586
  @fpath = phase_ctxt[:sources].first.fpath
587
- visitor = phase_ctxt[:cc1_visitor]
588
- visitor.enter_ansi_function_definition += T(:enter_function)
589
- visitor.leave_ansi_function_definition += T(:leave_function)
590
- visitor.enter_kandr_function_definition += T(:enter_function)
591
- visitor.leave_kandr_function_definition += T(:leave_function)
592
- visitor.enter_compound_statement += T(:enter_block)
593
- visitor.leave_compound_statement += T(:leave_block)
594
- visitor.enter_if_statement += T(:check_statement)
595
- visitor.enter_if_else_statement += T(:check_statement)
596
- visitor.enter_while_statement += T(:check_statement)
597
- visitor.enter_do_statement += T(:check_statement)
598
- visitor.enter_for_statement += T(:check_statement)
599
- visitor.enter_c99_for_statement += T(:check_statement)
587
+ traversal = phase_ctxt[:cc1_ast_traversal]
588
+ traversal.enter_ansi_function_definition += T(:enter_function)
589
+ traversal.leave_ansi_function_definition += T(:leave_function)
590
+ traversal.enter_kandr_function_definition += T(:enter_function)
591
+ traversal.leave_kandr_function_definition += T(:leave_function)
592
+ traversal.enter_compound_statement += T(:enter_block)
593
+ traversal.leave_compound_statement += T(:leave_block)
594
+ traversal.enter_if_statement += T(:check_statement)
595
+ traversal.enter_if_else_statement += T(:check_statement)
596
+ traversal.enter_while_statement += T(:check_statement)
597
+ traversal.enter_do_statement += T(:check_statement)
598
+ traversal.enter_for_statement += T(:check_statement)
599
+ traversal.enter_c99_for_statement += T(:check_statement)
600
600
  @cur_fun = nil
601
601
  end
602
602
 
@@ -752,14 +752,14 @@ module CBuiltin #:nodoc:
752
752
  def initialize(phase_ctxt)
753
753
  super
754
754
  @fpath = phase_ctxt[:sources].first.fpath
755
- visitor = phase_ctxt[:cc1_visitor]
756
- visitor.enter_ansi_function_definition += T(:enter_function)
757
- visitor.leave_ansi_function_definition += T(:leave_function)
758
- visitor.enter_kandr_function_definition += T(:enter_function)
759
- visitor.leave_kandr_function_definition += T(:leave_function)
760
- visitor.enter_if_statement += T(:enter_selection)
761
- visitor.enter_if_else_statement += T(:enter_selection)
762
- visitor.enter_case_labeled_statement += T(:enter_selection)
755
+ traversal = phase_ctxt[:cc1_ast_traversal]
756
+ traversal.enter_ansi_function_definition += T(:enter_function)
757
+ traversal.leave_ansi_function_definition += T(:leave_function)
758
+ traversal.enter_kandr_function_definition += T(:enter_function)
759
+ traversal.leave_kandr_function_definition += T(:leave_function)
760
+ traversal.enter_if_statement += T(:enter_selection)
761
+ traversal.enter_if_else_statement += T(:enter_selection)
762
+ traversal.enter_case_labeled_statement += T(:enter_selection)
763
763
  @cur_fun = nil
764
764
  @cycl_compl = 0
765
765
  end
@@ -48,9 +48,9 @@ module CBuiltin #:nodoc:
48
48
 
49
49
  def initialize(phase_ctxt)
50
50
  super
51
- visitor = phase_ctxt[:cpp_visitor]
52
- visitor.enter_grouped_expression += T(:enter_grouped_expression)
53
- visitor.leave_grouped_expression += T(:leave_grouped_expression)
51
+ traversal = phase_ctxt[:cpp_ast_traversal]
52
+ traversal.enter_grouped_expression += T(:enter_grouped_expression)
53
+ traversal.leave_grouped_expression += T(:leave_grouped_expression)
54
54
  @group_depth = 0
55
55
  end
56
56
 
@@ -155,9 +155,9 @@ module CBuiltin #:nodoc:
155
155
 
156
156
  def initialize(phase_ctxt)
157
157
  super
158
- visitor = phase_ctxt[:cpp_visitor]
159
- visitor.enter_if_section += T(:enter_if_section)
160
- visitor.leave_if_section += T(:leave_if_section)
158
+ traversal = phase_ctxt[:cpp_ast_traversal]
159
+ traversal.enter_if_section += T(:enter_if_section)
160
+ traversal.leave_if_section += T(:leave_if_section)
161
161
  @if_depth = 0
162
162
  end
163
163
 
@@ -355,9 +355,9 @@ module CBuiltin #:nodoc:
355
355
 
356
356
  def initialize(phase_ctxt)
357
357
  super
358
- visitor = phase_ctxt[:cpp_visitor]
359
- visitor.enter_user_include_line += T(:check_user_include_line)
360
- visitor.enter_system_include_line += T(:check_system_include_line)
358
+ traversal = phase_ctxt[:cpp_ast_traversal]
359
+ traversal.enter_user_include_line += T(:check_user_include_line)
360
+ traversal.enter_system_include_line += T(:check_system_include_line)
361
361
  end
362
362
 
363
363
  private
@@ -383,11 +383,11 @@ module CBuiltin #:nodoc:
383
383
 
384
384
  def initialize(phase_ctxt)
385
385
  super
386
- visitor = phase_ctxt[:cpp_visitor]
387
- visitor.enter_user_include_line += T(:enter_include_line)
388
- visitor.enter_system_include_line += T(:enter_include_line)
389
- visitor.enter_text_line += T(:enter_text_line)
390
- visitor.enter_if_section += T(:enter_if_section)
386
+ traversal = phase_ctxt[:cpp_ast_traversal]
387
+ traversal.enter_user_include_line += T(:enter_include_line)
388
+ traversal.enter_system_include_line += T(:enter_include_line)
389
+ traversal.enter_text_line += T(:enter_text_line)
390
+ traversal.enter_if_section += T(:enter_if_section)
391
391
  @main_fpath = phase_ctxt[:sources].first.fpath
392
392
  @last_fpath = nil
393
393
  @enclosed_by_if_section = false
@@ -496,9 +496,9 @@ module CBuiltin #:nodoc:
496
496
 
497
497
  def initialize(phase_ctxt)
498
498
  super
499
- visitor = phase_ctxt[:cpp_visitor]
500
- visitor.enter_function_like_define_line += T(:check)
501
- visitor.enter_va_function_like_define_line += T(:check)
499
+ traversal = phase_ctxt[:cpp_ast_traversal]
500
+ traversal.enter_function_like_define_line += T(:check)
501
+ traversal.enter_va_function_like_define_line += T(:check)
502
502
  end
503
503
 
504
504
  private
@@ -663,10 +663,10 @@ module CBuiltin #:nodoc:
663
663
 
664
664
  def initialize(phase_ctxt)
665
665
  super
666
- visitor = phase_ctxt[:cpp_visitor]
667
- visitor.enter_object_like_define_line += T(:check)
668
- visitor.enter_function_like_define_line += T(:check)
669
- visitor.enter_va_function_like_define_line += T(:check)
666
+ traversal = phase_ctxt[:cpp_ast_traversal]
667
+ traversal.enter_object_like_define_line += T(:check)
668
+ traversal.enter_function_like_define_line += T(:check)
669
+ traversal.enter_va_function_like_define_line += T(:check)
670
670
  end
671
671
 
672
672
  private
@@ -693,8 +693,8 @@ module CBuiltin #:nodoc:
693
693
 
694
694
  def initialize(phase_ctxt)
695
695
  super
696
- visitor = phase_ctxt[:cpp_visitor]
697
- visitor.enter_object_like_define_line += T(:check)
696
+ traversal = phase_ctxt[:cpp_ast_traversal]
697
+ traversal.enter_object_like_define_line += T(:check)
698
698
  end
699
699
 
700
700
  private
@@ -716,10 +716,10 @@ module CBuiltin #:nodoc:
716
716
 
717
717
  def initialize(phase_ctxt)
718
718
  super
719
- visitor = phase_ctxt[:cpp_visitor]
720
- visitor.enter_object_like_define_line += T(:check)
721
- visitor.enter_function_like_define_line += T(:check)
722
- visitor.enter_va_function_like_define_line += T(:check)
719
+ traversal = phase_ctxt[:cpp_ast_traversal]
720
+ traversal.enter_object_like_define_line += T(:check)
721
+ traversal.enter_function_like_define_line += T(:check)
722
+ traversal.enter_va_function_like_define_line += T(:check)
723
723
  end
724
724
 
725
725
  private
@@ -741,10 +741,10 @@ module CBuiltin #:nodoc:
741
741
 
742
742
  def initialize(phase_ctxt)
743
743
  super
744
- visitor = phase_ctxt[:cpp_visitor]
745
- visitor.enter_object_like_define_line += T(:check)
746
- visitor.enter_function_like_define_line += T(:check)
747
- visitor.enter_va_function_like_define_line += T(:check)
744
+ traversal = phase_ctxt[:cpp_ast_traversal]
745
+ traversal.enter_object_like_define_line += T(:check)
746
+ traversal.enter_function_like_define_line += T(:check)
747
+ traversal.enter_va_function_like_define_line += T(:check)
748
748
  end
749
749
 
750
750
  private
@@ -764,8 +764,8 @@ module CBuiltin #:nodoc:
764
764
 
765
765
  def initialize(phase_ctxt)
766
766
  super
767
- visitor = phase_ctxt[:cpp_visitor]
768
- visitor.enter_object_like_define_line += T(:check)
767
+ traversal = phase_ctxt[:cpp_ast_traversal]
768
+ traversal.enter_object_like_define_line += T(:check)
769
769
  end
770
770
 
771
771
  private
@@ -801,8 +801,8 @@ module CBuiltin #:nodoc:
801
801
 
802
802
  def initialize(phase_ctxt)
803
803
  super
804
- visitor = phase_ctxt[:cpp_visitor]
805
- visitor.enter_object_like_define_line += T(:check)
804
+ traversal = phase_ctxt[:cpp_ast_traversal]
805
+ traversal.enter_object_like_define_line += T(:check)
806
806
  end
807
807
 
808
808
  private
@@ -1066,9 +1066,9 @@ module CBuiltin #:nodoc:
1066
1066
 
1067
1067
  def initialize(phase_ctxt)
1068
1068
  super
1069
- visitor = phase_ctxt[:cpp_visitor]
1070
- visitor.enter_system_include_line += T(:check)
1071
- visitor.enter_system_include_next_line += T(:check)
1069
+ traversal = phase_ctxt[:cpp_ast_traversal]
1070
+ traversal.enter_system_include_line += T(:check)
1071
+ traversal.enter_system_include_next_line += T(:check)
1072
1072
  end
1073
1073
 
1074
1074
  private
@@ -1088,9 +1088,9 @@ module CBuiltin #:nodoc:
1088
1088
 
1089
1089
  def initialize(phase_ctxt)
1090
1090
  super
1091
- visitor = phase_ctxt[:cpp_visitor]
1092
- visitor.enter_user_include_line += T(:check)
1093
- visitor.enter_user_include_next_line += T(:check)
1091
+ traversal = phase_ctxt[:cpp_ast_traversal]
1092
+ traversal.enter_user_include_line += T(:check)
1093
+ traversal.enter_user_include_next_line += T(:check)
1094
1094
  end
1095
1095
 
1096
1096
  private
@@ -1110,11 +1110,11 @@ module CBuiltin #:nodoc:
1110
1110
 
1111
1111
  def initialize(phase_ctxt)
1112
1112
  super
1113
- visitor = phase_ctxt[:cpp_visitor]
1114
- visitor.enter_user_include_line += T(:check)
1115
- visitor.enter_user_include_next_line += T(:check)
1116
- visitor.enter_system_include_line += T(:check)
1117
- visitor.enter_system_include_next_line += T(:check)
1113
+ traversal = phase_ctxt[:cpp_ast_traversal]
1114
+ traversal.enter_user_include_line += T(:check)
1115
+ traversal.enter_user_include_next_line += T(:check)
1116
+ traversal.enter_system_include_line += T(:check)
1117
+ traversal.enter_system_include_next_line += T(:check)
1118
1118
  end
1119
1119
 
1120
1120
  private
@@ -1327,8 +1327,8 @@ module CBuiltin #:nodoc:
1327
1327
 
1328
1328
  def initialize(phase_ctxt)
1329
1329
  super
1330
- visitor = phase_ctxt[:cpp_visitor]
1331
- visitor.enter_unknown_directive += T(:check)
1330
+ traversal = phase_ctxt[:cpp_ast_traversal]
1331
+ traversal.enter_unknown_directive += T(:check)
1332
1332
  end
1333
1333
 
1334
1334
  private
@@ -68,8 +68,8 @@ module CBuiltin #:nodoc:
68
68
 
69
69
  def initialize(phase_ctxt)
70
70
  super
71
- visitor = phase_ctxt[:cpp_visitor]
72
- visitor.enter_line_line += T(:check)
71
+ traversal = phase_ctxt[:cpp_ast_traversal]
72
+ traversal.enter_line_line += T(:check)
73
73
  end
74
74
 
75
75
  private
@@ -37,7 +37,7 @@ module AdLint #:nodoc:
37
37
  module Exam #:nodoc:
38
38
  module CBuiltin #:nodoc:
39
39
 
40
- class ObjectLikeMacroExtraction < CodeExtraction
40
+ class ObjLikeMacroExtraction < CodeExtraction
41
41
  def_registrant_phase Cpp::Prepare2Phase
42
42
 
43
43
  def initialize(phase_ctxt)
@@ -55,7 +55,7 @@ module CBuiltin #:nodoc:
55
55
  end
56
56
  end
57
57
 
58
- class FuncLikeMacroExtraction < CodeExtraction
58
+ class FunLikeMacroExtraction < CodeExtraction
59
59
  def_registrant_phase Cpp::Prepare2Phase
60
60
 
61
61
  def initialize(phase_ctxt)
@@ -102,23 +102,23 @@ module CBuiltin #:nodoc:
102
102
 
103
103
  def initialize(phase_ctxt)
104
104
  super
105
- visitor = phase_ctxt[:cpp_visitor]
106
- visitor.enter_if_statement += T(:extract_if)
107
- visitor.enter_ifdef_statement += T(:extract_ifdef)
108
- visitor.enter_ifndef_statement += T(:extract_ifndef)
109
- visitor.enter_elif_statement += T(:extract_elif)
110
- visitor.enter_else_statement += T(:extract_else)
111
- visitor.enter_endif_line += T(:extract_endif)
112
- visitor.enter_user_include_line += T(:extract_user_include)
113
- visitor.enter_system_include_line += T(:extract_system_include)
114
- visitor.enter_object_like_define_line += T(:extract_define)
115
- visitor.enter_function_like_define_line += T(:extract_define)
116
- visitor.enter_va_function_like_define_line += T(:extract_define)
117
- visitor.enter_undef_line += T(:extract_undef)
118
- visitor.enter_line_line += T(:extract_line)
119
- visitor.enter_error_line += T(:extract_error)
120
- visitor.enter_pragma_line += T(:extract_pragma)
121
- visitor.enter_null_directive += T(:extract_null)
105
+ traversal = phase_ctxt[:cpp_ast_traversal]
106
+ traversal.enter_if_statement += T(:extract_if)
107
+ traversal.enter_ifdef_statement += T(:extract_ifdef)
108
+ traversal.enter_ifndef_statement += T(:extract_ifndef)
109
+ traversal.enter_elif_statement += T(:extract_elif)
110
+ traversal.enter_else_statement += T(:extract_else)
111
+ traversal.enter_endif_line += T(:extract_endif)
112
+ traversal.enter_user_include_line += T(:extract_usr_include)
113
+ traversal.enter_system_include_line += T(:extract_sys_include)
114
+ traversal.enter_object_like_define_line += T(:extract_define)
115
+ traversal.enter_function_like_define_line += T(:extract_define)
116
+ traversal.enter_va_function_like_define_line += T(:extract_define)
117
+ traversal.enter_undef_line += T(:extract_undef)
118
+ traversal.enter_line_line += T(:extract_line)
119
+ traversal.enter_error_line += T(:extract_error)
120
+ traversal.enter_pragma_line += T(:extract_pragma)
121
+ traversal.enter_null_directive += T(:extract_null)
122
122
  end
123
123
 
124
124
  private
@@ -153,12 +153,12 @@ module CBuiltin #:nodoc:
153
153
  PP_DIRECTIVE(endif_line.location, endif_line.keyword.value, nil)
154
154
  end
155
155
 
156
- def extract_user_include(usr_include_line)
156
+ def extract_usr_include(usr_include_line)
157
157
  PP_DIRECTIVE(usr_include_line.location, usr_include_line.keyword.value,
158
158
  usr_include_line.header_name.value)
159
159
  end
160
160
 
161
- def extract_system_include(sys_include_line)
161
+ def extract_sys_include(sys_include_line)
162
162
  PP_DIRECTIVE(sys_include_line.location, sys_include_line.keyword.value,
163
163
  sys_include_line.header_name.value)
164
164
  end