Class: Udb::XlenTerm

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Includes:
Comparable
Defined in:
lib/udb/logic.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xlen) ⇒ XlenTerm

Returns a new instance of XlenTerm.



47
48
49
50
51
52
53
54
# File 'lib/udb/logic.rb', line 47

def initialize(xlen)
  @xlen = xlen
  @to_s = "xlen=#{@xlen}".freeze
  @to_h = {
    "xlen" => @xlen
  }.freeze
  @hash = to_s.hash
end

Instance Attribute Details

#xlenObject (readonly)

Returns the value of attribute xlen.



44
45
46
# File 'lib/udb/logic.rb', line 44

def xlen
  @xlen
end

Instance Method Details

#<=>(other) ⇒ Object



93
94
95
96
97
# File 'lib/udb/logic.rb', line 93

def <=>(other)
  return nil unless other.is_a?(XlenTerm)

  @xlen <=> other.xlen
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


109
110
111
# File 'lib/udb/logic.rb', line 109

def eql?(other)
  (self <=> other) == 0
end

#hashObject



101
# File 'lib/udb/logic.rb', line 101

def hash = @hash

#to_asciidocObject



75
# File 'lib/udb/logic.rb', line 75

def to_asciidoc = "xlen+++()+++ == #{@xlen}"

#to_condition(cfg_arch) ⇒ Object



57
58
59
# File 'lib/udb/logic.rb', line 57

def to_condition(cfg_arch)
  Condition.new({ "xlen" => @xlen }, cfg_arch)
end

#to_hObject



78
79
80
# File 'lib/udb/logic.rb', line 78

def to_h
  @to_h
end

#to_idl(cfg_arch) ⇒ Object



83
84
85
# File 'lib/udb/logic.rb', line 83

def to_idl(cfg_arch)
  "(xlen() == #{@xlen})"
end

#to_sObject



62
63
64
# File 'lib/udb/logic.rb', line 62

def to_s
  @to_s
end

#to_s_prettyObject



72
# File 'lib/udb/logic.rb', line 72

def to_s_pretty = to_s

#to_z3(solver) ⇒ Object



67
68
69
# File 'lib/udb/logic.rb', line 67

def to_z3(solver)
  solver.xlen == @xlen
end