class AdLint::Cc1::CommaSeparatedExpression
Attributes
expressions[R]
Public Class Methods
new(fst_expr)
click to toggle source
Calls superclass method
AdLint::Cc1::Expression::new
# File lib/adlint/cc1/syntax.rb, line 2200 def initialize(fst_expr) super() @expressions = [] push(fst_expr) end
Public Instance Methods
arithmetic?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2220 def arithmetic? @expressions.last.arithmetic? end
bitwise?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2224 def bitwise? @expressions.last.bitwise? end
have_side_effect?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2212 def have_side_effect? @expressions.any? { |expr| expr.have_side_effect? } end
inspect(indent = 0)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2265 def inspect(indent = 0) " " * indent + "#{short_class_name}\n" + @expressions.map { |expr| expr.inspect(indent + 1) }.join("\n") end
location()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2208 def location head_location end
logical?()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2216 def logical? @expressions.last.logical? end
push(expr)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2245 def push(expr) self.head_token = expr.head_token if @expressions.empty? @expressions.push(expr) self.tail_token = expr.tail_token # NOTE: The ISO C99 standard says; # # 6.5.17 Comma operator # # Semantics # # 2 The left operand of a comma operator is evaluated as a void # expression; there is a sequence point after its evaluation. Then the # right operand is evaluated; the result has its type and value. If an # attempt is made to modify the result of a comma operator or to access # it after the next sequence point, the behavior is undefined. @expressions[-2].append_sequence_point! if @expressions.size > 1 self end
to_complemental_logical()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2237 def to_complemental_logical @expressions.last.to_complemental_logical end
to_normalized_logical(parent_expr = nil)
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2228 def to_normalized_logical(parent_expr = nil) case parent_expr when nil, LogicalAndExpression, LogicalOrExpression create_normalized_logical_of(@expressions.last) else self end end
to_s()
click to toggle source
# File lib/adlint/cc1/syntax.rb, line 2241 def to_s @expressions.map { |expr| expr.to_s }.join(",") end