class IDL::Expression::ScopedName

Attributes

node[R]

Public Class Methods

new(node) click to toggle source
# File lib/ridl/expression.rb, line 40
def initialize(node)
  if $DEBUG
    unless IDL::AST::Const === node || (IDL::AST::TemplateParam === node && node.idltype.is_a?(IDL::Type::Const))
      raise "#{node.scoped_name} must be constant: #{node.class.name}."
    end
  end
  @node = node
  @idltype = node.idltype
  @value = @idltype.narrow(node.value) unless node.is_template?
end

Public Instance Methods

instantiate(instantiation_context) click to toggle source
# File lib/ridl/expression.rb, line 55
def instantiate(instantiation_context)
  if self.is_template?
    cp = IDL::AST::TemplateParam.concrete_param(instantiation_context, @node)
    cp.is_a?(Expression) ? cp : ScopedName.new(cp)
  else
    self
  end
end
is_node?(node_class) click to toggle source
# File lib/ridl/expression.rb, line 64
def is_node?(node_class)
  @node.is_a?(node_class)
end
is_template?() click to toggle source
# File lib/ridl/expression.rb, line 51
def is_template?
  @node.is_template?
end
resolved_node() click to toggle source
# File lib/ridl/expression.rb, line 68
def resolved_node
  @node
end