+ else if (token == "eval")
+ cout << Eval::trace(pos) << endl;
+
+ else if (token == "bench")
+ benchmark(is);
+
+ else if (token == "key")
+ cout << "key: " << hex << pos.key()
+ << "\nmaterial key: " << pos.material_key()
+ << "\npawn key: " << pos.pawn_key() << endl;
+
+ else if (token == "uci")
+ cout << "id name " << engine_info(true)
+ << "\n" << Options
+ << "\nuciok" << endl;
+ else
+ cout << "Unknown command: " << cmd << endl;
+
+ if (!args.empty()) // Command line arguments have one-shot behaviour
+ {
+ Threads.wait_for_search_finished();
+ break;
+ }
+ }
+}