class AdLint::Cc1::Expression
Public Class Methods
new()
click to toggle source
Calls superclass method
AdLint::Cc1::SyntaxNode::new
# File lib/adlint/cc1/syntax.rb, line 456 def initialize super @full = false end
Public Instance Methods
arithmetic?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 494 def arithmetic? subclass_responsibility end
bitwise?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 498 def bitwise? subclass_responsibility end
constant?(interp_bridge)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 486 def constant?(interp_bridge) ExpressionConstancy.new(interp_bridge).check(self) end
full=(expr_is_full)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 461 def full=(expr_is_full) @full = expr_is_full # NOTE: The ISO C99 standard says; # # Annex C (informative) Sequence points # # 1 The following are the sequence points described in 5.1.2.3: # # -- The end of a full expression: an initializer (6.7.8); the # expression in an expression statement (6.8.3); the controlling # expression of a while or do statement (6.8.5); each of the # expressions of a for statement (6.8.5.3); the expression in a # return statement (6.8.6.4). if expr_is_full append_sequence_point! else delete_sequence_point! end end
have_side_effect?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 482 def have_side_effect? subclass_responsibility end
logical?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 490 def logical? subclass_responsibility end
object_specifiers()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 502 def object_specifiers ObjectSpecifierCollector.new.tap { |col| self.accept(col) }.object_specifiers end
to_complemental_logical()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 512 def to_complemental_logical # NOTE: This method must be invoked on a normalized expression. subclass_responsibility end
to_normalized_logical(parent_expr = nil)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 508 def to_normalized_logical(parent_expr = nil) subclass_responsibility end
to_s()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 517 def to_s subclass_responsibility end
Private Instance Methods
create_normalized_logical_of(expr)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 522 def create_normalized_logical_of(expr) EqualityExpression.new(Token.new("!=", "!=", expr.location), GroupedExpression.new(expr), ConstantSpecifier.of_zero(expr.location)) end