# File Parser.rb, line 147
        def to_SB (str)
                regs = Array.new
                # Für alle Symbole den passenden regulären Ausdruck in regs ablegen
                @symbols.each {|symb|
                        if symb == "." or  symb == "|" or symb == "(" or symb ==")" or symb == "[" or symb == "{" or symb == "+" or symb == "\\" or symb == "^" or symb == "$" or symb == "*" or symb == "?"
                                symb = "\\" + symb
                        end
                        regs.push(Regexp.new(symb))
                }
                scanner = Scanner.new([@symbols , regs])
                redlist = parse(str)
                (redlist == nil) ? (return nil) : ()
                tree = Syntaxbaum.new("@",0)
                # Der Wurzelknoten wird immer mit "@" initialisiert. Danach wird jede Reduktion nacheinander
                # zerlegt und an den entsprechenden Stellen im Baum die passenden Symbole hinzugefügt.
                redlist.each { |red|
                        links,rechts = red.split "->"
                        links = links.gsub("red[" , "").strip
                        rechts = rechts.gsub(".]", "").strip
                        rechtsarr = scanner.zerlege(rechts)
                        # Für die erste Reduktion kann ohne weiteres am Wurzelknoten begonnen werden
                        if tree.getSoehne.size == 0
                                tree.addNonterminal(links,0)
                                # Fügt jedes Symbol der rechten Regelseite an den Knoten an.
                                rechtsarr.each {|symb|
                                        tree.getSoehne[0].addNonterminal(symb, tree.getSoehne[0].getSoehne.size)
                                }
                        # Für jede weitere ausser der ersten Reduktion, muss erst der passende Knoten
                        # im Baum gefunden werden um an diesen die Symbole anzufügen.
                        else
                                found = search(tree, links)
                                # Fügt jedes Symbol der rechten Regelseite an den Knoten an.
                                rechtsarr.each {|symb|
                                        found.addNonterminal(symb, found.getSoehne.size)
                                }
                        end
                }
                tree
        end