# File A3_markovgen.rb, line 80
def markovgen(input)
        result=("def markovc(input)\n\n")
        
        #Aufteilen der Eingabe in einzelne Regeln (durch einzelne Zeilen erkennbar)
        input.split(/[\n]/).each do |rule|
        
                #Aufteilen der Regeln in linke und rechte Seiten am "->"
                leftside=rule.split("->")[0]
                rightside=rule.split("->")[1]
                
                #Escapen der Metazeichen von Ruby in der linken Seite der Markov-Regeln. Auf
                #der rechten Seite ist dies nicht nötig, da diese in der If-Anweisung nur als
                #String genutzt wird.
                leftside.gsub!(/[?.|(){+\^^$*\[\]]/, '\\\\\&')
                
                #Zusammensetzen der If-Anweisung
                result=result + "  #Regel: "+ rule +"\n"
                result=result + "  if not (input=~/"+ leftside +"/)==nil\n"
                if rightside==nil
                        result=result + "    markovc(input.sub!(/"+leftside+"/, ''))\n"
                else
                        result=result + "    markovc(input.sub!(/"+leftside+"/, '"+rightside+"'))\n"
                end
                result=result + "  end\n\n"
        end
        
        result=result+"  return input\nend\n"
        return result
end