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)

Parameters:

  • xlen (Integer)


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

def initialize(xlen)
  @xlen = xlen
end

Instance Attribute Details

#xlenObject (readonly)

Returns the value of attribute xlen.



42
43
44
# File 'lib/udb/logic.rb', line 42

def xlen
  @xlen
end

Instance Method Details

#<=>(other) ⇒ Integer?

Parameters:

  • other (T.untyped)

Returns:

  • (Integer, nil)


88
89
90
91
92
# File 'lib/udb/logic.rb', line 88

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

  @xlen <=> other.xlen
end

#eql?(other) ⇒ Boolean

Parameters:

  • other (T.untyped)

Returns:

  • (Boolean)


104
105
106
# File 'lib/udb/logic.rb', line 104

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

#hashInteger

hash and eql? must be implemented to use ExtensionTerm as a Hash key

Returns:

  • (Integer)


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

def hash = to_s.hash

#to_asciidocString

Returns:

  • (String)


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

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

#to_condition(cfg_arch) ⇒ Condition

Parameters:

Returns:



50
51
52
# File 'lib/udb/logic.rb', line 50

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

#to_hHash{String => Integer}

Returns:

  • (Hash{String => Integer})


71
72
73
74
75
# File 'lib/udb/logic.rb', line 71

def to_h
  {
    "xlen" => @xlen
  }
end

#to_idl(cfg_arch) ⇒ String

Parameters:

Returns:

  • (String)


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

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

#to_sString

Returns:

  • (String)


55
56
57
# File 'lib/udb/logic.rb', line 55

def to_s
  "xlen=#{@xlen}"
end

#to_s_prettyString

Returns:

  • (String)


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

def to_s_pretty = to_s

#to_z3(solver) ⇒ Z3::BoolExpr

Parameters:

Returns:

  • (Z3::BoolExpr)


60
61
62
# File 'lib/udb/logic.rb', line 60

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