summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/option.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/option.h')
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/option.h365
1 files changed, 0 insertions, 365 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/option.h b/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/option.h
deleted file mode 100644
index 7b961940..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/option.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/**
- * @file option.h
- * Enumerations and data types for options.
- *
- * @author Ben Gardner
- * @author Guy Maurel since version 0.62 for uncrustify4Qt
- * October 2015, 2016
- * @author Matthew Woehlke since version 0.67
- * @license GPL v2+
- */
-#ifndef OPTION_H_INCLUDED
-#define OPTION_H_INCLUDED
-
-/* NOTE:
- * This file is processed by make_option_enum.py, which parses any 'enum class'
- * it finds, as well as the special macros UNC_OPTVAL_ALIAS and UNC_OPTVALS.
- *
- * The '// <PREFIX>' comment after an 'enum class' tells the script to generate
- * aliases for the enum values using the prefix that is given in the '<>'s.
- * Don't remove or alter these.
- */
-
-#include "enum_flags.h"
-
-#include <string>
-#include <vector>
-
-#include <cassert>
-
-#ifdef IGNORE // WinBase.h
-#undef IGNORE
-#endif
-
-namespace uncrustify
-{
-
-template<typename T> class Option;
-
-//-----------------------------------------------------------------------------
-// Option types
-enum class option_type_e // <OT>
-{
- // UNC_CONVERT_INTERNAL
- BOOL,
- IARF,
- LINEEND,
- TOKENPOS,
- NUM,
- UNUM,
- STRING,
-};
-
-#if 0 // Fake enumeration for make_option_enum.py
-enum class bool
-{
- true,
- false,
-};
-#endif
-
-//-----------------------------------------------------------------------------
-/// I/A/R/F values - these are bit fields
-enum class iarf_e // <IARF>
-{
- IGNORE = 0, //! option ignores a given feature
- ADD = (1u << 0), //! option adds a given feature
- REMOVE = (1u << 1), //! option removes a given feature
- FORCE = (ADD | REMOVE), //! option forces the usage of a given feature
- NOT_DEFINED = (1u << 2) //! for debugging
-};
-
-UNC_DECLARE_FLAGS(iarf_flags_t, iarf_e);
-UNC_DECLARE_OPERATORS_FOR_FLAGS(iarf_flags_t);
-
-//-----------------------------------------------------------------------------
-/// Line endings
-enum class line_end_e // <LE>
-{
- LF, //! "\n" typically used on Unix/Linux system
- CRLF, //! "\r\n" typically used on Windows systems
- CR, //! "\r" carriage return without newline
- AUTO, //! keep last
-};
-constexpr auto line_end_styles = static_cast<size_t>(line_end_e::AUTO);
-
-//-----------------------------------------------------------------------------
-/// Token position - these are bit fields
-enum class token_pos_e // <TP>
-{
- IGNORE = 0, //! don't change it
- BREAK = 1, //! add a newline before or after the if not present
- FORCE = 2, //! force a newline on one side and not the other
- LEAD = 4, //! at the start of a line or leading if wrapped line
- TRAIL = 8, //! at the end of a line or trailing if wrapped line
- JOIN = 16, //! remove newlines on both sides
- LEAD_BREAK = (LEAD | BREAK), // 5
- LEAD_FORCE = (LEAD | FORCE), // 6
- TRAIL_BREAK = (TRAIL | BREAK), // 9
- TRAIL_FORCE = (TRAIL | FORCE), // 10
-};
-
-UNC_DECLARE_FLAGS(token_pos_flags_t, token_pos_e);
-UNC_DECLARE_OPERATORS_FOR_FLAGS(token_pos_flags_t);
-
-//-----------------------------------------------------------------------------
-/// Abstract (untyped) interface for options
-class GenericOption
-{
-public:
- GenericOption(const char *opt_name, const char *opt_desc)
- : m_name{opt_name}
- , m_desc{opt_desc}
- {}
-
- virtual ~GenericOption() = default;
-
- virtual option_type_e type() const = 0;
- const char *name() const { return(m_name); }
- const char *description() const { return(m_desc); }
- virtual const char *const *possibleValues() const = 0;
-
- virtual std::string defaultStr() const = 0;
- virtual std::string minStr() const { return(std::string{}); }
- virtual std::string maxStr() const { return(std::string{}); }
-
- virtual bool isDefault() const = 0;
-
- virtual void reset() = 0;
- virtual bool read(const char *s) = 0;
- virtual std::string str() const = 0;
-
-protected:
- template<typename V> friend bool read_enum(const char *s, Option<V> &o);
- template<typename V> friend bool read_number(const char *s, Option<V> &o);
-
- void warnUnexpectedValue(const char *actual) const;
- void warnIncompatibleReference(const GenericOption *ref) const;
-
- const char *const m_name;
- const char *const m_desc;
-};
-
-//-----------------------------------------------------------------------------
-// Helper class for reporting problems with options
-class OptionWarning
-{
-public:
- enum class /* UNC_NO_META */ Severity
- {
- OS_CRITICAL,
- OS_MINOR,
- };
-
- constexpr static auto CRITICAL = Severity::OS_CRITICAL;
- constexpr static auto MINOR = Severity::OS_MINOR;
-
- OptionWarning(const char *filename, Severity = CRITICAL);
- OptionWarning(const GenericOption *, Severity = CRITICAL);
- OptionWarning(const OptionWarning &) = delete;
- ~OptionWarning();
-
-#ifdef __GNUC__
- [[gnu::format(printf, 2, 3)]]
-#endif
- void operator()(const char *fmt, ...);
-};
-
-//-----------------------------------------------------------------------------
-// Concrete (strongly typed) interface for options
-template<typename T>
-class Option : public GenericOption
-{
-public:
- Option(const char *opt_name, const char *opt_desc, T opt_val = T{})
- : GenericOption{opt_name, opt_desc}
- , m_val{opt_val}
- , m_default{opt_val}
- {}
-
- option_type_e type() const override;
- const char *const *possibleValues() const override;
-
- std::string defaultStr() const override;
-
- bool isDefault() const override { return(m_val == m_default); }
-
- //! resets option to its default value
- //- currently only used by the emscripten interface
- virtual void reset() override;
-
- bool read(const char *s) override;
- std::string str() const override;
-
- T operator()() const { return(m_val); }
- Option &operator=(T val) { m_val = val; return(*this); }
-
-protected:
- template<typename V> friend bool read_enum(const char *s, Option<V> &o);
- template<typename V> friend bool read_number(const char *s, Option<V> &o);
-
- virtual bool validate(long) { return(true); }
-
- T m_val = T{};
- T m_default = T{};
-};
-
-//-----------------------------------------------------------------------------
-// Concrete (strongly typed) interface for bounded numeric options
-template<typename T, T min, T max>
-class BoundedOption : public Option<T>
-{
-public:
- BoundedOption(const char *opt_name, const char *opt_desc, T opt_val = T{})
- : Option<T>{opt_name, opt_desc, opt_val}
- {
- assert( opt_val >= min
- && opt_val <= max);
- }
-
- std::string minStr() const override { return(std::to_string(min)); }
- std::string maxStr() const override { return(std::to_string(max)); }
-
-protected:
- bool validate(long val) override
- {
- if (val < static_cast<long>(min))
- {
- OptionWarning w{ this };
- w("requested value %ld for option '%s' "
- "is less than the minimum value %ld",
- val, this->name(), static_cast<long>(min));
- return(false);
- }
-
- if (val > static_cast<long>(max))
- {
- OptionWarning w{ this };
- w("requested value %ld for option '%s' "
- "is greater than the maximum value %ld",
- val, this->name(), static_cast<long>(max));
- return(false);
- }
- return(true);
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-// Declaration of option types; implementations are in option.cpp
-#define UNC_IMPLEMENT_OPTION(T) \
- template<> option_type_e Option<T>::type() const; \
- template<> const char *const *Option<T>::possibleValues() const; \
- template<> bool Option<T>::read(const char *s); \
- extern template class Option<T>
-
-UNC_IMPLEMENT_OPTION(bool);
-UNC_IMPLEMENT_OPTION(iarf_e);
-UNC_IMPLEMENT_OPTION(line_end_e);
-UNC_IMPLEMENT_OPTION(token_pos_e);
-UNC_IMPLEMENT_OPTION(signed);
-UNC_IMPLEMENT_OPTION(unsigned);
-UNC_IMPLEMENT_OPTION(std::string);
-
-// Additional mappings for option values
-#define UNC_OPTVAL_ALIAS(...) \
- static_assert(true, "This is just a tag for make_option_enum.py")
-
-UNC_OPTVAL_ALIAS(bool, false, "0", "f", "n", "no");
-UNC_OPTVAL_ALIAS(bool, true, "1", "t", "y", "yes");
-UNC_OPTVAL_ALIAS(iarf_e, IGNORE, "i");
-UNC_OPTVAL_ALIAS(iarf_e, ADD, "a", "2", "t", "true", "y", "yes");
-UNC_OPTVAL_ALIAS(iarf_e, REMOVE, "r", "0", "f", "false", "n", "no");
-UNC_OPTVAL_ALIAS(iarf_e, FORCE, "f", "1");
-
-// Possible values for options, by type
-#define UNC_OPTVALS(e) extern const char *const e ## _values[]
-UNC_OPTVALS(iarf);
-UNC_OPTVALS(line_end);
-UNC_OPTVALS(token_pos);
-
-extern bool convert_string(const char *, bool &);
-extern bool convert_string(const char *, iarf_e &);
-extern bool convert_string(const char *, line_end_e &);
-extern bool convert_string(const char *, token_pos_e &);
-
-extern const char *to_string(bool);
-extern const char *to_string(iarf_e);
-extern const char *to_string(line_end_e);
-extern const char *to_string(token_pos_e);
-extern const char *to_string(option_type_e);
-
-struct OptionGroup
-{
- const char *description;
- std::vector<GenericOption *> options;
-};
-
-
-/**
- * @brief Defines a new group of uncrustify options.
- *
- * New options are always added to the most recently defined group.
- */
-void begin_option_group(const char *description);
-
-
-/**
- * @brief Adds an uncrustify option to the global option registry.
- *
- * The option is added to the most recently defined option group.
- */
-void register_option(GenericOption *);
-
-
-GenericOption *find_option(const char *name);
-
-
-//! Add all uncrustify options to the global option registry
-void register_options();
-
-
-OptionGroup *get_option_group(size_t);
-
-
-size_t get_option_count();
-
-
-/**
- * processes a single line string to extract configuration settings
- * increments cpd.line_number and cpd.error_count
- *
- * @param config_line single line string that will be processed
- * @param filename for log messages, file from which the \p config_line
- * param was extracted
- * @param compat_level version of Uncrustify with which to be compatible
- */
-void process_option_line(const std::string &config_line, const char *filename, int &compat_level);
-
-
-bool load_option_file(const char *filename, int compat_level = 0);
-
-
-/**
- * save the used options into a text file
- *
- * @param pfile file to print into
- * @param with_doc also print description
- * @param minimal print only options with non default value
- */
-void save_option_file(FILE *pfile, bool with_doc = false, bool minimal = false);
-
-
-/**
- * get the marker that was selected for the end of line via the config file
- *
- * @return "\n" if newlines was set to LE_LF in the config file
- * @return "\r\n" if newlines was set to LE_CRLF in the config file
- * @return "\r" if newlines was set to LE_CR in the config file
- * @return "\n" if newlines was set to LE_AUTO in the config file
- */
-const char *get_eol_marker();
-
-} // namespace uncrustify
-
-#endif /* OPTION_H_INCLUDED */