Class: SystemRDL::Evaluator::Property

Inherits:
Object
  • Object
show all
Defined in:
lib/systemrdl/evaluator/property.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instance, definition, value) ⇒ Property

Returns a new instance of Property.



6
7
8
9
10
# File 'lib/systemrdl/evaluator/property.rb', line 6

def initialize(instance, definition, value)
  @instance = instance
  @definition = definition
  @value = value
end

Instance Attribute Details

#valueObject (readonly)

Returns the value of attribute value.



12
13
14
# File 'lib/systemrdl/evaluator/property.rb', line 12

def value
  @value
end

Instance Method Details

#assign(value) ⇒ Object



46
47
48
49
# File 'lib/systemrdl/evaluator/property.rb', line 46

def assign(value)
  @value = value
  @assigned = true
end

#assigned?Boolean

Returns:



51
52
53
# File 'lib/systemrdl/evaluator/property.rb', line 51

def assigned?
  @assigned || false
end

#dynamic_assign?Boolean

Returns:



38
39
40
# File 'lib/systemrdl/evaluator/property.rb', line 38

def dynamic_assign?
  @definition.dynamic_assign
end

#full_nameObject



26
27
28
# File 'lib/systemrdl/evaluator/property.rb', line 26

def full_name
  [@instance.full_name, name].join('.')
end

#nameObject



14
15
16
# File 'lib/systemrdl/evaluator/property.rb', line 14

def name
  @definition.name
end

#per_element_assign?Boolean

Returns:



42
43
44
# File 'lib/systemrdl/evaluator/property.rb', line 42

def per_element_assign?
  @definition.per_element_assign
end

#ref_target?Boolean

Returns:



30
31
32
33
34
35
36
# File 'lib/systemrdl/evaluator/property.rb', line 30

def ref_target?
  if @definition.ref_target.is_a?(Proc)
    instance_exec(&@definition.ref_target)
  else
    @definition.ref_target
  end
end

#to_value(token_range) ⇒ Object



22
23
24
# File 'lib/systemrdl/evaluator/property.rb', line 22

def to_value(token_range)
  Value.new(self, :property_reference, nil, token_range)
end

#typesObject



18
19
20
# File 'lib/systemrdl/evaluator/property.rb', line 18

def types
  @definition.types
end