lean2/src/util/sexpr/option_declarations.h
Leonardo de Moura 24fc89ff70 refactor(frontends/lean/server): move option display_value to option_declarations
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-02 17:42:21 -07:00

36 lines
1.2 KiB
C++

/*
Copyright (c) 2013 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Author: Leonardo de Moura
*/
#pragma once
#include <map>
#include <string>
#include "util/sexpr/options.h"
namespace lean {
/**
\brief Datastructure for storing information about available
configuration options.
*/
class option_declaration {
name m_name;
option_kind m_kind;
std::string m_default;
std::string m_description;
public:
option_declaration(name const & n, option_kind k, char const * default_val, char const * descr):
m_name(n), m_kind(k), m_default(default_val), m_description(descr) {}
option_kind kind() const { return m_kind; }
name const & get_name() const { return m_name; }
std::string const & get_default_value() const { return m_default; }
std::string const & get_description() const { return m_description; }
/** \brief Display value of this option declaration in \c o.
\remark if \c o does not set this option, then the default value is displayed. */
void display_value(std::ostream & out, options const & o) const;
};
typedef std::map<name, option_declaration> option_declarations;
option_declarations const & get_option_declarations();
}