class AdLint::Cc1::ValueDomain

DESCRIPTION

ValueDomain class hierarchy

ValueDomain <------------------------------+
  <-- NilValueDomain                       |
  <-- UnlimitedValueDomain                 |
        <-- NaN                            |
  <-- EqualToValueDomain                   |
  <-- LessThanValueDomain                  |
  <-- GreaterThanValueDomain               |
  <-- CompositeValueDomain <>--------------+
        <-- IntersectionValueDomain <------+
        <-- UnionValueDomain               |
  <-- UndefinedValueDomain <>--------------+
  <-- AmbiguousValueDomain

Public Class Methods

new(logical_shr) click to toggle source
# File lib/adlint/cc1/domain.rb, line 296
def initialize(logical_shr)
  @logical_shr = logical_shr
end

Public Instance Methods

!() click to toggle source
# File lib/adlint/cc1/domain.rb, line 776
def !
  subclass_responsibility
end
!=(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 840
def !=(rhs_dom)
  # NOTE: Operator != cannot be defined by `!(LHS == RHS)'.
  #       When the value domain of the left hand side or the right hand
  #       side is NilValueDomain, `LHS == RHS' should make `false'.
  #       But `LHS != RHS' should make `false', too.
  subclass_responsibility
end
%(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 652
def %(rhs_dom)
  self - rhs_dom * (self / rhs_dom).coerce_to_integer
end
&(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 656
def &(rhs_dom)
  subclass_responsibility
end
*(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 601
def *(rhs_dom)
  # NOTE: Operator * cannot be defined by `LHS / (1.0 / RHS)'.
  #       Because `1.0 / RHS' will make NaN, when the value domain of the
  #       right hand side contains 0.
  subclass_responsibility
end
+(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 573
def +(rhs_dom)
  subclass_responsibility
end
+@() click to toggle source
# File lib/adlint/cc1/domain.rb, line 565
def +@
  subclass_responsibility
end
-(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 597
def -(rhs_dom)
  self + -rhs_dom
end
-@() click to toggle source
# File lib/adlint/cc1/domain.rb, line 569
def -@
  subclass_responsibility
end
/(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 628
def /(rhs_dom)
  subclass_responsibility
end
<(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 780
def <(rhs_dom)
  subclass_responsibility
end
<<(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 728
def <<(rhs_dom)
  subclass_responsibility
end
<=(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 868
def <=(rhs_dom)
  (self < rhs_dom).logical_or(self == rhs_dom)
end
<=>(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 998
def <=>(rhs_dom)
  to_s <=> rhs_dom.to_s
end
==(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 808
def ==(rhs_dom)
  # NOTE: Operator == cannot be defined by `!(LHS < RHS || LHS > RHS)'.
  #       When the value domain of the left hand side is (--<===>-<===>--),
  #       and the value domain of the right hand side is (-------|-------).
  #       `LHS < RHS' should make `true or false' because values in the
  #       left hand side may be less than or greater than the value in
  #       the right hand side.
  #       `LHS > RHS' should make `true or false', too.
  #       So, `!(LHS < RHS) && !(LHS > RHS)' will make `true or false'.
  subclass_responsibility
end
>(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 804
def >(rhs_dom)
  rhs_dom < self
end
>=(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 872
def >=(rhs_dom)
  (self > rhs_dom).logical_or(self == rhs_dom)
end
>>(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 752
def >>(rhs_dom)
  subclass_responsibility
end
^(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 704
def ^(rhs_dom)
  subclass_responsibility
end
_add_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 585
def _add_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_add_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 593
def _add_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_add_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 589
def _add_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_add_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 577
def _add_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_add_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 581
def _add_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_and_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 668
def _and_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_and_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 676
def _and_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_and_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 672
def _and_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_and_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 660
def _and_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_and_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 664
def _and_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_equal_to?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 345
def _contain_equal_to?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_greater_than?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 353
def _contain_greater_than?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_intersection?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 357
def _contain_intersection?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_less_than?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 349
def _contain_less_than?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_nil?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 337
def _contain_nil?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_union?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 361
def _contain_union?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_contain_unlimited?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 341
def _contain_unlimited?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_div_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 640
def _div_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_div_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 648
def _div_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_div_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 644
def _div_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_div_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 632
def _div_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_div_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 636
def _div_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_equal_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 828
def _equal_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_equal_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 836
def _equal_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_equal_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 832
def _equal_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_equal_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 820
def _equal_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_equal_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 824
def _equal_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersect_equal_to?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 377
def _intersect_equal_to?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersect_greater_than?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 385
def _intersect_greater_than?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersect_less_than?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 381
def _intersect_less_than?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersect_nil?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 369
def _intersect_nil?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersect_unlimited?(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 373
def _intersect_unlimited?(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersection_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 938
def _intersection_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersection_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 946
def _intersection_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersection_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 942
def _intersection_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersection_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 930
def _intersection_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_intersection_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 934
def _intersection_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_less_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 792
def _less_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_less_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 800
def _less_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_less_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 796
def _less_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_less_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 784
def _less_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_less_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 788
def _less_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_and_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 889
def _logical_and_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_and_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 897
def _logical_and_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_and_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 893
def _logical_and_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_and_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 881
def _logical_and_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_and_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 885
def _logical_and_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_or_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 914
def _logical_or_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_or_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 922
def _logical_or_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_or_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 918
def _logical_or_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_or_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 906
def _logical_or_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_logical_or_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 910
def _logical_or_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_mul_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 616
def _mul_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_mul_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 624
def _mul_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_mul_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 620
def _mul_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_mul_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 608
def _mul_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_mul_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 612
def _mul_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_by_eq(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 408
def _narrow_by_eq(rhs_dom, lhs_dom = self)
  subclass_responsibility
end
_narrow_by_ge(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 508
def _narrow_by_ge(rhs_dom, lhs_dom = self)
  _narrow_by_gt(rhs_dom).union(_narrow_by_eq(rhs_dom))
end
_narrow_by_gt(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 480
def _narrow_by_gt(rhs_dom, lhs_dom = self)
  subclass_responsibility
end
_narrow_by_le(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 504
def _narrow_by_le(rhs_dom, lhs_dom = self)
  _narrow_by_lt(rhs_dom).union(_narrow_by_eq(rhs_dom))
end
_narrow_by_lt(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 456
def _narrow_by_lt(rhs_dom, lhs_dom = self)
  subclass_responsibility
end
_narrow_by_ne(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 432
def _narrow_by_ne(rhs_dom, lhs_dom = self)
  subclass_responsibility
end
_narrow_equal_to_by_eq(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 420
def _narrow_equal_to_by_eq(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_equal_to_by_gt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 492
def _narrow_equal_to_by_gt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_equal_to_by_lt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 468
def _narrow_equal_to_by_lt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_equal_to_by_ne(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 444
def _narrow_equal_to_by_ne(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_greater_than_by_eq(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 428
def _narrow_greater_than_by_eq(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_greater_than_by_gt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 500
def _narrow_greater_than_by_gt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_greater_than_by_lt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 476
def _narrow_greater_than_by_lt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_greater_than_by_ne(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 452
def _narrow_greater_than_by_ne(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_less_than_by_eq(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 424
def _narrow_less_than_by_eq(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_less_than_by_gt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 496
def _narrow_less_than_by_gt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_less_than_by_lt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 472
def _narrow_less_than_by_lt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_less_than_by_ne(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 448
def _narrow_less_than_by_ne(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_nil_by_eq(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 412
def _narrow_nil_by_eq(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_nil_by_gt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 484
def _narrow_nil_by_gt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_nil_by_lt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 460
def _narrow_nil_by_lt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_nil_by_ne(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 436
def _narrow_nil_by_ne(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_unlimited_by_eq(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 416
def _narrow_unlimited_by_eq(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_unlimited_by_gt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 488
def _narrow_unlimited_by_gt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_unlimited_by_lt(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 464
def _narrow_unlimited_by_lt(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_narrow_unlimited_by_ne(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 440
def _narrow_unlimited_by_ne(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_not_equal_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 856
def _not_equal_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_not_equal_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 864
def _not_equal_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_not_equal_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 860
def _not_equal_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_not_equal_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 848
def _not_equal_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_not_equal_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 852
def _not_equal_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_or_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 692
def _or_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_or_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 700
def _or_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_or_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 696
def _or_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_or_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 684
def _or_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_or_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 688
def _or_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shl_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 740
def _shl_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shl_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 748
def _shl_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shl_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 744
def _shl_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shl_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 732
def _shl_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shl_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 736
def _shl_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shr_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 764
def _shr_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shr_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 772
def _shr_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shr_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 768
def _shr_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shr_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 756
def _shr_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_shr_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 760
def _shr_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_union_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 962
def _union_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_union_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 970
def _union_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_union_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 966
def _union_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_union_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 954
def _union_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_union_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 958
def _union_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_widen_by_eq(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 531
def _widen_by_eq(rhs_dom, lhs_dom = self)
  lhs_dom.union(rhs_dom)
end
_widen_by_ge(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 553
def _widen_by_ge(rhs_dom, lhs_dom = self)
  _widen_by_gt(rhs_dom).union(_widen_by_eq(rhs_dom))
end
_widen_by_gt(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 544
def _widen_by_gt(rhs_dom, lhs_dom = self)
  lhs_dom.union(ValueDomain.of_unlimited(logical_shr?).narrow(
    Operator::GT, rhs_dom))
end
_widen_by_le(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 549
def _widen_by_le(rhs_dom, lhs_dom = self)
  _widen_by_lt(rhs_dom).union(_widen_by_eq(rhs_dom))
end
_widen_by_lt(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 539
def _widen_by_lt(rhs_dom, lhs_dom = self)
  lhs_dom.union(ValueDomain.of_unlimited(logical_shr?).narrow(
    Operator::LT, rhs_dom))
end
_widen_by_ne(rhs_dom, lhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 535
def _widen_by_ne(rhs_dom, lhs_dom = self)
  lhs_dom.union(rhs_dom.inversion)
end
_xor_equal_to(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 716
def _xor_equal_to(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_xor_greater_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 724
def _xor_greater_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_xor_less_than(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 720
def _xor_less_than(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_xor_nil(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 708
def _xor_nil(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
_xor_unlimited(lhs_dom, rhs_dom = self) click to toggle source
# File lib/adlint/cc1/domain.rb, line 712
def _xor_unlimited(lhs_dom, rhs_dom = self)
  subclass_responsibility
end
ambiguous?() click to toggle source
# File lib/adlint/cc1/domain.rb, line 312
def ambiguous?
  subclass_responsibility
end
coerce_to_integer() click to toggle source
# File lib/adlint/cc1/domain.rb, line 974
def coerce_to_integer
  subclass_responsibility
end
coerce_to_real() click to toggle source
# File lib/adlint/cc1/domain.rb, line 978
def coerce_to_real
  subclass_responsibility
end
complexity() click to toggle source
# File lib/adlint/cc1/domain.rb, line 1015
def complexity
  subclass_responsibility
end
contain?(domain_or_numeric) click to toggle source
# File lib/adlint/cc1/domain.rb, line 320
def contain?(domain_or_numeric)
  case domain_or_numeric
  when ValueDomain
    contain_value_domain?(domain_or_numeric)
  when Numeric
    dom = ValueDomain.equal_to(domain_or_numeric, logical_shr?)
    contain_value_domain?(dom)
  else
    raise TypeError, "`#{domain_or_numeric.inspect}' " +
      "must be kind of ValueDomain or Numeric."
  end
end
contain_value_domain?(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 333
def contain_value_domain?(rhs_dom)
  subclass_responsibility
end
each_sample() click to toggle source
# File lib/adlint/cc1/domain.rb, line 990
def each_sample
  subclass_responsibility
end
empty?() click to toggle source
# File lib/adlint/cc1/domain.rb, line 300
def empty?
  subclass_responsibility
end
eql?(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 1002
def eql?(rhs_dom)
  to_s.eql?(rhs_dom.to_s)
end
hash() click to toggle source
# File lib/adlint/cc1/domain.rb, line 1006
def hash
  to_s.hash
end
intersect?(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 365
def intersect?(rhs_dom)
  subclass_responsibility
end
intersection(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 926
def intersection(rhs_dom)
  subclass_responsibility
end
inversion() click to toggle source
# File lib/adlint/cc1/domain.rb, line 557
def inversion
  subclass_responsibility
end
logical_and(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 876
def logical_and(rhs_dom)
  # NOTE: Operator && cannot be defined as a method in Ruby.
  subclass_responsibility
end
logical_or(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 901
def logical_or(rhs_dom)
  # NOTE: Operator || cannot be defined as a method in Ruby.
  subclass_responsibility
end
logical_shr?() click to toggle source
# File lib/adlint/cc1/domain.rb, line 316
def logical_shr?
  @logical_shr
end
max_value() click to toggle source
# File lib/adlint/cc1/domain.rb, line 986
def max_value
  subclass_responsibility
end
min_value() click to toggle source
# File lib/adlint/cc1/domain.rb, line 982
def min_value
  subclass_responsibility
end
nan?() click to toggle source
# File lib/adlint/cc1/domain.rb, line 304
def nan?
  subclass_responsibility
end
narrow(op, ope_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 389
def narrow(op, ope_dom)
  case op
  when Operator::EQ
    _narrow_by_eq(ope_dom)
  when Operator::NE
    _narrow_by_ne(ope_dom)
  when Operator::LT
    _narrow_by_lt(ope_dom)
  when Operator::GT
    _narrow_by_gt(ope_dom)
  when Operator::LE
    _narrow_by_le(ope_dom)
  when Operator::GE
    _narrow_by_ge(ope_dom)
  else
    __NOTREACHED__
  end
end
to_defined_domain() click to toggle source
# File lib/adlint/cc1/domain.rb, line 994
def to_defined_domain
  subclass_responsibility
end
to_s() click to toggle source
# File lib/adlint/cc1/domain.rb, line 1011
def to_s
  subclass_responsibility
end
undefined?() click to toggle source
# File lib/adlint/cc1/domain.rb, line 308
def undefined?
  subclass_responsibility
end
union(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 950
def union(rhs_dom)
  subclass_responsibility
end
widen(op, ope_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 512
def widen(op, ope_dom)
  case op
  when Operator::EQ
    _widen_by_eq(ope_dom)
  when Operator::NE
    _widen_by_ne(ope_dom)
  when Operator::LT
    _widen_by_lt(ope_dom)
  when Operator::GT
    _widen_by_gt(ope_dom)
  when Operator::LE
    _widen_by_le(ope_dom)
  when Operator::GE
    _widen_by_ge(ope_dom)
  else
    __NOTREACHED__
  end
end
|(rhs_dom) click to toggle source
# File lib/adlint/cc1/domain.rb, line 680
def |(rhs_dom)
  subclass_responsibility
end
~() click to toggle source
# File lib/adlint/cc1/domain.rb, line 561
def ~
  subclass_responsibility
end

Private Instance Methods

left_shift(lhs_numeric, rhs_numeric) click to toggle source
# File lib/adlint/cc1/domain.rb, line 1028
def left_shift(lhs_numeric, rhs_numeric)
  lhs_numeric.to_i.left_shift(rhs_numeric.to_i)
end
right_shift(lhs_numeric, rhs_numeric) click to toggle source
# File lib/adlint/cc1/domain.rb, line 1020
def right_shift(lhs_numeric, rhs_numeric)
  if logical_shr?
    lhs_numeric.to_i.logical_right_shift(rhs_numeric.to_i)
  else
    lhs_numeric.to_i.arithmetic_right_shift(rhs_numeric.to_i)
  end
end