FlexibleNode readBranch(HashMap<String,Taxon> translationList) throws IOException, ImportException {
  double length=0.0;
  FlexibleNode branch;
  clearLastMetaComment();
  if (nextCharacter() == '(') {
    branch=readInternalNode(translationList);
  }
 else {
    branch=readExternalNode(translationList);
  }
  if (getLastDelimiter() != ':' && getLastDelimiter() != ',' && getLastDelimiter() != ')') {
    String label=readToken(",():;");
    if (label.length() > 0) {
      branch.setAttribute("label",label);
    }
  }
  if (getLastDelimiter() == ':') {
    length=readDouble(",():;");
    if (getLastMetaComment() != null) {
      try {
        parseMetaCommentPairs(getLastMetaComment(),branch);
      }
 catch (      BadFormatException bfe) {
      }
      clearLastMetaComment();
    }
  }
  branch.setLength(length);
  return branch;
}

FlexibleNode readBranch ( HashMap < String , Taxon > translationList ) throws IOException , ImportException { double length = 0.0 ; FlexibleNode branch ; clearLastMetaComment ( ) ; if ( nextCharacter ( ) == '(' ) { branch = readInternalNode ( translationList ) ; } else { branch = readExternalNode ( translationList ) ; } if ( getLastDelimiter ( ) != ':' && getLastDelimiter ( ) != ',' && getLastDelimiter ( ) != ')' ) { String label = readToken ( ",():;" ) ; if ( label . length ( ) > 0 ) { branch . setAttribute ( "label" , label ) ; } } if ( getLastDelimiter ( ) == ':' ) { length = readDouble ( ",():;" ) ; if ( getLastMetaComment ( ) != null ) { try { parseMetaCommentPairs ( getLastMetaComment ( ) , branch ) ; } catch ( BadFormatException bfe ) { } clearLastMetaComment ( ) ; } } branch . setLength ( length ) ; return branch ; }
reads a branch in . this could be a node or a tip ( calls readnode or readtip accordingly ) . it then reads the branch length and simplenode that will point at the new node or tip .
