code: public void setFormat(JobConf job) throws IOException {
      addDefaults();
      addUserIdentifiers(job);
      root = Parser.parse(job.get("mapred.join.expr", null), job);
    }
docs: Interpret a given string as a composite expression.
  {@code
  func  ::= <ident>([<func>,]*<func>)
  func  ::= tbl(<class>,"<path>")
  class ::= @see java.lang.Class#forName(java.lang.String)
  path  ::= @see org.apache.hadoop.fs.Path#Path(java.lang.String)
  }
  Reads expression from the <tt>mapred.join.expr</tt> property and
  user-supplied join types from <tt>mapred.join.define.&lt;ident&gt;</tt>
  types. Paths supplied to <tt>tbl</tt> are given as input paths to the
  InputFormat class listed.
  @see #compose(java.lang.String, java.lang.Class, java.lang.String...)