public static void joinScopes(Scope source,Scope dest){
  Map<String,Symbol> src=source.ensureSymbolTable();
  Map<String,Symbol> dst=dest.ensureSymbolTable();
  if (!Collections.disjoint(src.keySet(),dst.keySet())) {
    codeBug();
  }
  for (  Map.Entry<String,Symbol> entry : src.entrySet()) {
    Symbol sym=entry.getValue();
    sym.setContainingTable(dest);
    dst.put(entry.getKey(),sym);
  }
}

public static void joinScopes ( Scope source , Scope dest ) { Map < String , Symbol > src = source . ensureSymbolTable ( ) ; Map < String , Symbol > dst = dest . ensureSymbolTable ( ) ; if ( ! Collections . disjoint ( src . keySet ( ) , dst . keySet ( ) ) ) { codeBug ( ) ; } for ( Map . Entry < String , Symbol > entry : src . entrySet ( ) ) { Symbol sym = entry . getValue ( ) ; sym . setContainingTable ( dest ) ; dst . put ( entry . getKey ( ) , sym ) ; } }
copies all symbols from source scope to dest scope .
