/usr/include/libspreadsheet-1.12/spreadsheet/expr-impl.h is in gnumeric 1.12.28-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
#ifndef _GNM_EXPR_IMPL_H_
# define _GNM_EXPR_IMPL_H_
#include "gnumeric.h"
#include "numbers.h"
#include "parse-util.h"
G_BEGIN_DECLS
struct _GnmExprConstant {
guint8 oper;
GnmValue const *value;
};
struct _GnmExprFunction {
guint8 oper;
int argc;
GnmFunc *func;
GnmExprConstPtr *argv;
};
struct _GnmExprUnary {
guint8 oper;
GnmExpr const *value;
};
struct _GnmExprBinary {
guint8 oper;
GnmExpr const *value_a;
GnmExpr const *value_b;
};
/* We could break this out into multiple types to be more space efficient */
struct _GnmExprName {
guint8 oper;
Sheet *optional_scope;
Workbook *optional_wb_scope;
GnmNamedExpr *name;
};
struct _GnmExprCellRef {
guint8 oper;
GnmCellRef ref;
};
struct _GnmExprArrayCorner {
guint8 oper;
guint32 cols, rows;
GnmValue *value; /* Last array result */
GnmExpr const *expr; /* Real Expression */
};
struct _GnmExprArrayElem {
guint8 oper;
guint32 x, y;
};
struct _GnmExprSet {
guint8 oper;
int argc;
GnmExprConstPtr *argv;
};
union _GnmExpr {
GnmExprConstant constant;
GnmExprFunction func;
GnmExprUnary unary;
GnmExprBinary binary;
GnmExprName name;
GnmExprCellRef cellref;
GnmExprArrayCorner array_corner;
GnmExprArrayElem array_elem;
GnmExprSet set;
};
#define GNM_EXPR_GET_OPER(e_) (0 ? (e_) == (GnmExpr const *)0 : (GnmExprOp)*(guint8*)(e_))
#define gnm_expr_constant_init(expr, val) \
do { \
(expr)->oper = GNM_EXPR_OP_CONSTANT; \
(expr)->value = val; \
} while (0)
struct _GnmExprSharer {
GHashTable *exprs;
int nodes_in, nodes_stored, nodes_killed;
unsigned ref_count;
};
G_END_DECLS
#endif /* _GNM_EXPR_IMPL_H_ */
|