Code representation learning with Prüfer sequences