class AdLint::Exam::CBuiltin::W0496::AmbiguousExpressionDetector
Public Class Methods
new(phase_ctxt, expr)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 10886 def initialize(phase_ctxt, expr) @phase_ctxt = phase_ctxt @target_expr = expr @encl_expr_stack = [expr] @cond_exprs = Hash.new(0) end
Public Instance Methods
execute()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 10893 def execute @target_expr.accept(self) end
visit_conditional_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_conditional_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 10903 def visit_conditional_expression(node) super cur_encl = current_encl_expr if @cond_exprs[cur_encl] > 0 W(cur_encl.head_location) end @cond_exprs[cur_encl] += 1 end
visit_grouped_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_grouped_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 10897 def visit_grouped_expression(node) @encl_expr_stack.push(node) super @encl_expr_stack.pop end
Private Instance Methods
current_encl_expr()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 10913 def current_encl_expr @encl_expr_stack.last end
suppressors()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 10925 def suppressors @phase_ctxt[:suppressors] end