code: def main(argv, stdin, stdout):
      
      if len(argv) > 1 and argv[1:3] == ["compile", "markov"]:
          algo = load_markov(argv, stdin)
          print(algo.compile(), file=stdout)
      elif len(argv) == 4 and argv[1:3] == ["run", "markov"]:
          algo = load_markov(argv, stdin)
          for line in stdin:
              print(algo.execute(''.join(line.split())), file=stdout)
  
      elif len(argv) > 1 and argv[1:3] == ["compile", "turing"]:
          machine = load_turing(argv, stdin)
          print(machine.compile(), file=stdout)
      elif len(argv) == 4 and argv[1:3] == ["run", "turing"]:
          machine = load_turing(argv, stdin)
          for line in stdin:
              print(machine.execute(line), file=stdout)
  
      elif len(argv) == 2 and argv[1] == "test":
          path = os.path.abspath(os.path.dirname(__file__))
          argv[1] = path
          pytest.main()
      elif len(argv) == 2 and argv[1] == "version":
          print("TuringMarkov", VERSION, file=stdout)
  
      else:
          print(USAGE, file=stdout)
          if not (len(argv) == 2 and argv[1] == "help"):
              exit(1)
docs: Execute, when user call turingmarkov.