public Matching(BaseNode abase, BranchNode abranch ) { baseRoot = abase; branchRoot = abranch; buildMatching( baseRoot, branchRoot );  branchRoot.setBaseMatch(baseRoot,BranchNode.MATCH_FULL);
protected Matching() {
  public Matching(BaseNode abase, BranchNode abranch ) {    baseRoot = abase;    branchRoot = abranch;    buildMatching( baseRoot, branchRoot );    // Artificial roots always match (otherwise BranchNode.isLeft may fail!)    branchRoot.setBaseMatch(baseRoot,BranchNode.MATCH_FULL);  }