/* Synopsis: attempts to set a real form and dual real form interactively. In case of failure, throws an InputError and returns. */ void repr_mode_entry() throw(EntryError) { try { RealReductiveGroup& GR = currentRealGroup(); Weight lambda_rho; RatWeight gamma(0); KGBElt x; sub = new SubSystemWithGroup (interactive::get_parameter(GR,x,lambda_rho,gamma)); Permutation pi; std::cout << "Subsystem on dual side is "; if (sub->rank()==0) std::cout << "empty.\n"; else { std::cout << "of type " << dynkin::Lie_type(sub->cartanMatrix(),true,false,pi) << ", with roots "; for (weyl::Generator s=0; s<sub->rank(); ++s) std::cout << sub->parent_nr_simple(pi[s]) << (s<sub->rank()-1 ? "," : ".\n"); } sr = new StandardRepr(currentRepContext().sr(x,lambda_rho,gamma)); } catch(error::InputError& e) { repr_mode_exit(); // clean up e("no parameter was set"); throw EntryError(); } }
// AbstractEntry AbstractEntry::AbstractEntry(std::string const& name) : name_(std::regex_match(name, Entry::NameRegex) ? name : throw EntryError("invalid command description: " + utils::string::quoted(name))) { }