anchor.diff:      
       let run () =
           match !testFile, !feName , !generatorName with
  -        | None, None, None                               -> ()
           | Some(fName), Some(feName), Some(generatorName) -> 
               let grammarFilePath = System.IO.Path.Combine((!testsPath).Value, fName)
               let fe =
  
positive.code:         "Generator with name " + genName + " is not available. Run \"Main.exe -ag\" for get all available generators.\n"
          |> System.Console.WriteLine
      | EmptyArg (argName)       ->
          "Argument can not be empty: " + argName + "\n"
          |> System.Console.WriteLine
      | FEError (error)          ->
          "Frontend error: " + error + "\n"
          |> System.Console.WriteLine
  
negative.code:     }
  
  let () =     
      let defaultFE = "YardFrontend"
      let defaultGen = "RACCGenerator" 
  
      let feName = ref None
      let generatorName = ref None
      let testsPath = ref <| Some ""
      let testFile = ref None
  
      if Seq.exists ((=) defaultFE) FrontendsManager.AvailableFrontends then
          feName := Some(defaultFE)
      if Seq.exists ((=) defaultGen) GeneratorsManager.AvailableGenerators then
          generatorName := Some(defaultGen)
  
      let generateSomething = ref true
  
      let printItems iName items deft = 
          fun _ ->                 
              generateSomething := false                
              printfn "\nAvailable %s: " iName 
              Seq.map (fun x -> x + (if x=deft then " (default)" else "")) items
              |> String.concat "\n    " 
              |> fun x -> printf "    %s\n" x
  
      let commandLineSpecs =
          ["-f", ArgType.String (fun s -> feName := Some s), "Frontend name. Use -af to list available."
           "-af", ArgType.Unit (printItems "frontends" FrontendsManager.AvailableFrontends defaultFE), "Available frontends"
           "-g", ArgType.String (fun s -> generatorName := Some s), "Generator name. Use -ag to list available."
           "-ag", ArgType.Unit (printItems "generators" GeneratorsManager.AvailableGenerators defaultGen), "Available generators"
           "-i", ArgType.String (fun s -> 
                                     testFile := System.IO.Path.GetFileName(s) |> Some 
                                     testsPath := System.IO.Path.GetDirectoryName(s) |> Some), "Input grammar"         
  