*
********************************************************/
-#ifndef EXPR_H
-#define EXPR_H 1
-
-#include "xkbcomp-priv.h"
-
-typedef union _ExprResult {
- int ival;
- unsigned uval;
-} ExprResult;
+#ifndef XKBCOMP_EXPR_H
+#define XKBCOMP_EXPR_H
typedef struct _LookupEntry {
const char *name;
- unsigned result;
+ unsigned int value;
} LookupEntry;
-extern const char *
-exprOpText(enum expr_op_type op);
-
bool
-ExprResolveLhs(struct xkb_context *ctx, ExprDef *expr, const char **elem_rtrn,
- const char **field_rtrn, ExprDef **index_rtrn);
+ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr,
+ const char **elem_rtrn, const char **field_rtrn,
+ ExprDef **index_rtrn);
-extern bool
+bool
LookupModMask(struct xkb_context *ctx, const void *priv, xkb_atom_t field,
- enum expr_value_type type, ExprResult *val_rtrn);
+ enum expr_value_type type, xkb_mod_mask_t *val_rtrn);
-extern bool
+bool
LookupVModMask(struct xkb_context *ctx, const void *priv, xkb_atom_t field,
- enum expr_value_type type, ExprResult *val_rtrn);
+ enum expr_value_type type, xkb_mod_mask_t *val_rtrn);
-extern bool
+bool
LookupModIndex(struct xkb_context *ctx, const void *priv, xkb_atom_t field,
- enum expr_value_type type, ExprResult *val_rtrn);
+ enum expr_value_type type, xkb_mod_index_t *val_rtrn);
-extern int
-ExprResolveModMask(struct xkb_context *ctx, ExprDef *expr,
- ExprResult *val_rtrn);
+bool
+ExprResolveModMask(struct xkb_context *ctx, const ExprDef *expr,
+ xkb_mod_mask_t *mask_rtrn);
-extern int
-ExprResolveVModMask(struct xkb_keymap *keymap, ExprDef *expr,
- ExprResult *val_rtrn);
+bool
+ExprResolveVModMask(struct xkb_keymap *keymap, const ExprDef *expr,
+ xkb_mod_mask_t *mask_rtrn);
bool
-ExprResolveBoolean(struct xkb_context *ctx, ExprDef *expr, bool *set_rtrn);
+ExprResolveBoolean(struct xkb_context *ctx, const ExprDef *expr,
+ bool *set_rtrn);
-extern int
-ExprResolveKeyCode(struct xkb_context *ctx, ExprDef *expr,
- ExprResult *val_rtrn);
+bool
+ExprResolveKeyCode(struct xkb_context *ctx, const ExprDef *expr,
+ xkb_keycode_t *kc);
-extern int
-ExprResolveInteger(struct xkb_context *ctx, ExprDef *expr,
- ExprResult *val_rtrn);
+bool
+ExprResolveInteger(struct xkb_context *ctx, const ExprDef *expr,
+ int *val_rtrn);
-extern int
-ExprResolveLevel(struct xkb_context *ctx, ExprDef *expr, ExprResult *val_rtrn);
+bool
+ExprResolveLevel(struct xkb_context *ctx, const ExprDef *expr,
+ xkb_level_index_t *level_rtrn);
-extern int
-ExprResolveGroup(struct xkb_context *ctx, ExprDef *expr, ExprResult *val_rtrn);
+bool
+ExprResolveGroup(struct xkb_context *ctx, const ExprDef *expr,
+ xkb_group_index_t *group_rtrn);
-extern int
-ExprResolveButton(struct xkb_context *ctx, ExprDef *expr,
- ExprResult *val_rtrn);
+bool
+ExprResolveButton(struct xkb_context *ctx, const ExprDef *expr,
+ int *btn_rtrn);
bool
-ExprResolveString(struct xkb_context *ctx, ExprDef *expr,
- const char **val_rtrn);
+ExprResolveString(struct xkb_context *ctx, const ExprDef *expr,
+ xkb_atom_t *val_rtrn);
bool
-ExprResolveKeyName(struct xkb_context *ctx, ExprDef *expr,
+ExprResolveKeyName(struct xkb_context *ctx, const ExprDef *expr,
char name[XkbKeyNameLength]);
-extern int
-ExprResolveEnum(struct xkb_context *ctx, ExprDef *expr, ExprResult *val_rtrn,
- const LookupEntry *values);
+bool
+ExprResolveEnum(struct xkb_context *ctx, const ExprDef *expr,
+ unsigned int *val_rtrn, const LookupEntry *values);
-extern int
-ExprResolveMask(struct xkb_context *ctx, ExprDef *expr, ExprResult *val_rtrn,
- const LookupEntry *values);
+bool
+ExprResolveMask(struct xkb_context *ctx, const ExprDef *expr,
+ unsigned int *mask_rtrn, const LookupEntry *values);
-extern int
-ExprResolveKeySym(struct xkb_context *ctx, ExprDef *expr,
- ExprResult *val_rtrn);
+bool
+ExprResolveKeySym(struct xkb_context *ctx, const ExprDef *expr,
+ xkb_keysym_t *sym_rtrn);
-#endif /* EXPR_H */
+#endif