# File lib/ruote/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.parser.parse(ref) rescue nil

    _, subtree = Ruote::Exp::DefineExpression.reorganize(subtree) \
      if subtree && Ruote::Exp::DefineExpression.is_definition?(subtree)

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

    # no luck ...

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