formula_name_resolver

Defined in header: <ixion/formula_name_resolver.hpp>

class formula_name_resolver

Formula name resolvers resolves a name in a formula expression to a more concrete name type.

Public Functions

formula_name_resolver()
virtual ~formula_name_resolver() = 0
virtual formula_name_t resolve(std::string_view s, const abs_address_t &pos) const = 0

Parse and resolve a reference string.

Parameters:
  • s – reference string to be parsed.

  • pos – base cell position, which influences the resolved reference position(s) containing relative address(es). When the reference string does not contain an explicit sheet name, the sheet address of the base cell position is used.

Returns:

result of the resovled reference.

virtual std::string get_name(const address_t &addr, const abs_address_t &pos, bool sheet_name) const = 0
virtual std::string get_name(const range_t &range, const abs_address_t &pos, bool sheet_name) const = 0
virtual std::string get_name(const table_t &table) const = 0
virtual std::string get_column_name(col_t col) const = 0

Given a numerical representation of column position, return its textural representation.

Parameters:

col – numerical column position.

Returns:

textural representation of column position.

Public Static Functions

static std::unique_ptr<formula_name_resolver> get(formula_name_resolver_t type, const model_context *cxt)

Create a formula name resolver instance according to the requested type.

Parameters:
  • type – type formula name resolver being requested.

  • cxt – document model context for resolving sheet names, or nullptr in case names being resolved don’t contain sheet names.

Returns:

formula name resolver instance created on the heap. The caller is responsible for managing its life cycle.