class AdLint::Exam::CBuiltin::W0501::AmbiguousExpressionDetector
Public Class Methods
new(phase_ctxt, expr)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11722 def initialize(phase_ctxt, expr) @phase_ctxt = phase_ctxt @target_expr = expr @group_depth = 0 @ungrouped_expr = 0 end
Public Instance Methods
execute()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11729 def execute @target_expr.accept(self) end
visit_additive_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_additive_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11744 def visit_additive_expression(node) check_binary_expression super end
visit_and_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_and_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11764 def visit_and_expression(node) check_binary_expression super end
visit_compound_assignment_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_compound_assignment_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11794 def visit_compound_assignment_expression(node) check_binary_expression super end
visit_equality_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_equality_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11759 def visit_equality_expression(node) check_binary_expression super end
visit_exclusive_or_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_exclusive_or_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11769 def visit_exclusive_or_expression(node) check_binary_expression super 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 11733 def visit_grouped_expression(node) @group_depth += 1 super @group_depth -= 1 end
visit_inclusive_or_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_inclusive_or_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11774 def visit_inclusive_or_expression(node) check_binary_expression super end
visit_logical_and_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_logical_and_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11779 def visit_logical_and_expression(node) check_binary_expression super end
visit_logical_or_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_logical_or_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11784 def visit_logical_or_expression(node) check_binary_expression super end
visit_multiplicative_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_multiplicative_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11739 def visit_multiplicative_expression(node) check_binary_expression super end
visit_relational_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_relational_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11754 def visit_relational_expression(node) check_binary_expression super end
visit_shift_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_shift_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11749 def visit_shift_expression(node) check_binary_expression super end
visit_simple_assignment_expression(node)
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxTreeVisitor#visit_simple_assignment_expression
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11789 def visit_simple_assignment_expression(node) check_binary_expression super end
Private Instance Methods
check_binary_expression()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11800 def check_binary_expression @ungrouped_expr += 1 if @group_depth == 0 W(@target_expr.location) if include_ambiguous_expr? end
include_ambiguous_expr?()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11805 def include_ambiguous_expr? @ungrouped_expr > 0 end
suppressors()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 11817 def suppressors @phase_ctxt[:suppressors] end