# File Parser.rb, line 199
        def search (knoten, symb)
                if knoten.getSoehne.size == 0
                        if knoten.getName == symb
                                # Wenn der Knoten keine Söhne hat und der Name stimmt wird der Knoten zurückgegeben.
                                # Er ist der gesuchte Knoten.
                                return knoten
                        else
                                # Wenn der Knoten zwar keine Söhne hat aber der Name nicht stimmt wird nil zurückgegeben
                                #  Es ist nicht der gesuchte Knoten und es gibt keine Söhne zum weitersuchen
                                return nil
                        end
                # Wenn der Knoten Söhne hat kann er nicht der gesuchte Knoten sein. Es wird
                # mit den Söhnen als Wurzelknoten neuer Teilbäume weitergesucht.
                else
                        # Sucht jeden Sohn von rechts nach links nach dem gesuchten Knoten ab.
                        # sobald er gefunden wird er gefunden wird die Suche beendet und der Knoten
                        # wird zurückgegeben. Wenn kein Sohn den gesuchten Knoten enthält wird nil zurückgegeben.
                        knoten.getSoehne.reverse.each {|sohn|
                                a = search(sohn,symb)
                                (a != nil) ? (return a) : ()
                        }
                        return nil
                end
        end