code: private boolean blockEquals(Block target, Block source)
      {
          boolean found = false;
          if (source instanceof SpecialSymbolBlock && target instanceof SpecialSymbolBlock) {
              if (((SpecialSymbolBlock) target).getSymbol() == ((SpecialSymbolBlock) source).getSymbol()) {
                  found = true;
              }
          } else if (source instanceof WordBlock && target instanceof WordBlock) {
              if (((WordBlock) target).getWord().equals(((WordBlock) source).getWord())) {
                  found = true;
              }
          } else if (source.equals(target)) {
              found = true;
          }
          return found;
      }
docs: Compares two nodes in a shallow manner (children data are not compared).
  
  @param target the target node to compare
  @param source the source node to compare
  @return true if the two blocks are equals in a shallow manner (children data are not compared)