# File lib/ruote/util/subprocess.rb, line 35
  def self.lookup_subprocess(fexp, ref)

    val = fexp.lookup_variable(ref)

    # a classical subprocess stored in a variable ?

    return [ '0', val ] if is_tree?(val)
    return val if is_pos_tree?(val)

    # maybe subprocess :ref => 'uri'

    subtree = fexp.context.reader.read(ref) rescue nil

    if subtree && is_definition_tree?(subtree)
      _, subtree = Ruote::Exp::DefineExpression.reorganize(subtree)
    end

    return [ '0', subtree ] if is_tree?(subtree)

    # no luck ...

    raise "no subprocess named '#{ref}' found"
  end