Formula Name Resolver¶
-
class
ixion
::
formula_name_resolver
¶ Formula name resolvers resolves a name in a formula expression to a more concrete name type.
Public Functions
-
formula_name_resolver
()¶
-
~formula_name_resolver
() = 0¶
-
formula_name_t
resolve
(const char *p, size_t n, const abs_address_t &pos) const = 0¶ Parse and resolve a reference string.
- Return
result of the resovled reference.
- Parameters
p
: pointer to the buffer that stores the reference string to be parsed.n
: length of the buffer that stores the reference string.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.
-
std::string
get_name
(const address_t &addr, const abs_address_t &pos, bool sheet_name) const = 0¶
-
std::string
get_name
(const range_t &range, const abs_address_t &pos, bool sheet_name) const = 0¶
-
std::string
get_name
(const table_t &table) const = 0¶
Public Static Functions
-
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
ixion
::
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::[anonymous] [anonymous]¶
-
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)¶