Formula Name Resolver¶
-
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
(const char *p, size_t n, const abs_address_t &pos) const = 0¶
-
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.
- Return
- textural representation of column position.
- Parameters
col
: numerical column position.
Public Static Functions
-
static std::unique_ptr<formula_name_resolver>
get
(formula_name_resolver_t type, const iface::formula_model_access *cxt)¶ Create a formula name resolver instance according to the requested type.
- Return
- formula name resolver instance created on the heap. The caller is responsible for managing its life cycle.
- 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.
-
-
struct
formula_name_t
¶ Structure that represents the type of a ‘name’ in a formula expression.
A name can be either one of:
- cell reference
- range reference
- table reference
- named expression
- function
Public Types
Public Functions
-
formula_name_t
()¶
-
std::string
to_string
() const¶ Return a string that represents the data stored internally. Useful for debugging.
Public Members
-
address_type
address
¶
-
range_type
range
¶
-
table_type
table
¶
-
formula_function_t
func_oc
¶
-
union ixion::formula_name_t::@0 ixion::formula_name_t::@1
-
struct
address_type
¶ Single cell address information for a cell reference name.
-
struct
range_type
¶ Range address information for a range reference name.
-
struct
table_type
¶ Table information for a table reference name.
-
address_t
ixion::
to_address
(const formula_name_t::address_type &src)¶
-
range_t
ixion::
to_range
(const formula_name_t::range_type &src)¶