1 /************************************************************ 2 * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. 3 * 4 * Permission to use, copy, modify, and distribute this 5 * software and its documentation for any purpose and without 6 * fee is hereby granted, provided that the above copyright 7 * notice appear in all copies and that both that copyright 8 * notice and this permission notice appear in supporting 9 * documentation, and that the name of Silicon Graphics not be 10 * used in advertising or publicity pertaining to distribution 11 * of the software without specific prior written permission. 12 * Silicon Graphics makes no representation about the suitability 13 * of this software for any purpose. It is provided "as is" 14 * without any express or implied warranty. 15 * 16 * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 17 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 18 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 19 * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 20 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 21 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 22 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 23 * THE USE OR PERFORMANCE OF THIS SOFTWARE. 24 * 25 ********************************************************/ 26 27 #ifndef XKBCOMP_EXPR_H 28 #define XKBCOMP_EXPR_H 29 30 bool 31 ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr, 32 const char **elem_rtrn, const char **field_rtrn, 33 ExprDef **index_rtrn); 34 35 bool 36 ExprResolveModMask(struct xkb_context *ctx, const ExprDef *expr, 37 enum mod_type mod_type, const struct xkb_mod_set *mods, 38 xkb_mod_mask_t *mask_rtrn); 39 40 bool 41 ExprResolveMod(struct xkb_context *ctx, const ExprDef *def, 42 enum mod_type mod_type, const struct xkb_mod_set *mods, 43 xkb_mod_index_t *ndx_rtrn); 44 45 bool 46 ExprResolveBoolean(struct xkb_context *ctx, const ExprDef *expr, 47 bool *set_rtrn); 48 49 bool 50 ExprResolveKeyCode(struct xkb_context *ctx, const ExprDef *expr, 51 xkb_keycode_t *kc); 52 53 bool 54 ExprResolveInteger(struct xkb_context *ctx, const ExprDef *expr, 55 int *val_rtrn); 56 57 bool 58 ExprResolveLevel(struct xkb_context *ctx, const ExprDef *expr, 59 xkb_level_index_t *level_rtrn); 60 61 bool 62 ExprResolveGroup(struct xkb_context *ctx, const ExprDef *expr, 63 xkb_layout_index_t *group_rtrn); 64 65 bool 66 ExprResolveButton(struct xkb_context *ctx, const ExprDef *expr, 67 int *btn_rtrn); 68 69 bool 70 ExprResolveString(struct xkb_context *ctx, const ExprDef *expr, 71 xkb_atom_t *val_rtrn); 72 73 bool 74 ExprResolveEnum(struct xkb_context *ctx, const ExprDef *expr, 75 unsigned int *val_rtrn, const LookupEntry *values); 76 77 bool 78 ExprResolveMask(struct xkb_context *ctx, const ExprDef *expr, 79 unsigned int *mask_rtrn, const LookupEntry *values); 80 81 bool 82 ExprResolveKeySym(struct xkb_context *ctx, const ExprDef *expr, 83 xkb_keysym_t *sym_rtrn); 84 85 #endif 86