class IDL::AST::Include

def copy_from(_template, _context)

def copy_from(_template, _context)
  super
  @filename = _template.filename
  @defined = _template.is_defined?
  @preprocessed = _template.is_preprocessed?
  #overrule
  @scopes = @enclosure.scopes
  @scoped_name = @scopes.collect{|s| s.name}.join("::")
  @scoped_lm_name = @scopes.collect{|s| s.lm_name}.join("::")
  self
end

def initialize(_name, _enclosure, params)

def initialize(_name, _enclosure, params)
  super(_name, _enclosure, params)
  @filename = params[:filename]
  @defined = params[:defined] || false
  @preprocessed = params[:preprocessed] || false
  #overrule
  @scopes = @enclosure.scopes
  @scoped_name = @scopes.collect{|s| s.name}.join("::")
  @scoped_lm_name = @scopes.collect{|s| s.lm_name}.join("::")
end

def introduce(node)

def introduce(node)
  @enclosure.introduce(node) unless node == self
end

def is_defined?; @defined; end

def is_defined?; @defined; end

def is_preprocessed?; @preprocessed; end

def is_preprocessed?; @preprocessed; end

def marshal_dump

def marshal_dump
  super() << @filename << @defined << @preprocessed
end

def marshal_load(vars)

def marshal_load(vars)
  @preprocessed = vars.pop
  @defined = vars.pop
  @filename = vars.pop
  super(vars)
  #overrule
  @scopes = @enclosure.scopes || []
  @scoped_name = @scopes.collect{|s| s.name}.join("::")
  @scoped_lm_name = @scopes.collect{|s| s.lm_name}.join("::")
end

def repo_scopes

def repo_scopes
  @repo_scopes ||= (@enclosure.nil? ? [] : @enclosure.repo_scopes.dup)
end

def resolve(_name)

def resolve(_name)
  @enclosure.resolve(_name)
end

def search_self(_name)

def search_self(_name)
  @enclosure.search_self(_name)
end

def undo_introduction(node)

def undo_introduction(node)
  @enclosure.undo_introduction(node) unless node == self
end