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_AST_BUILD_H 28 #define XKBCOMP_AST_BUILD_H 29 30 ExprDef * 31 ExprCreateString(xkb_atom_t str); 32 33 ExprDef * 34 ExprCreateInteger(int ival); 35 36 ExprDef * 37 ExprCreateFloat(void); 38 39 ExprDef * 40 ExprCreateBoolean(bool set); 41 42 ExprDef * 43 ExprCreateKeyName(xkb_atom_t key_name); 44 45 ExprDef * 46 ExprCreateIdent(xkb_atom_t ident); 47 48 ExprDef * 49 ExprCreateUnary(enum expr_op_type op, enum expr_value_type type, 50 ExprDef *child); 51 52 ExprDef * 53 ExprCreateBinary(enum expr_op_type op, ExprDef *left, ExprDef *right); 54 55 ExprDef * 56 ExprCreateFieldRef(xkb_atom_t element, xkb_atom_t field); 57 58 ExprDef * 59 ExprCreateArrayRef(xkb_atom_t element, xkb_atom_t field, ExprDef *entry); 60 61 ExprDef * 62 ExprCreateAction(xkb_atom_t name, ExprDef *args); 63 64 ExprDef * 65 ExprCreateActionList(ExprDef *actions); 66 67 ExprDef * 68 ExprCreateMultiKeysymList(ExprDef *list); 69 70 ExprDef * 71 ExprCreateKeysymList(xkb_keysym_t sym); 72 73 ExprDef * 74 ExprAppendMultiKeysymList(ExprDef *list, ExprDef *append); 75 76 ExprDef * 77 ExprAppendKeysymList(ExprDef *list, xkb_keysym_t sym); 78 79 KeycodeDef * 80 KeycodeCreate(xkb_atom_t name, int64_t value); 81 82 KeyAliasDef * 83 KeyAliasCreate(xkb_atom_t alias, xkb_atom_t real); 84 85 VModDef * 86 VModCreate(xkb_atom_t name, ExprDef *value); 87 88 VarDef * 89 VarCreate(ExprDef *name, ExprDef *value); 90 91 VarDef * 92 BoolVarCreate(xkb_atom_t ident, bool set); 93 94 InterpDef * 95 InterpCreate(xkb_keysym_t sym, ExprDef *match); 96 97 KeyTypeDef * 98 KeyTypeCreate(xkb_atom_t name, VarDef *body); 99 100 SymbolsDef * 101 SymbolsCreate(xkb_atom_t keyName, VarDef *symbols); 102 103 GroupCompatDef * 104 GroupCompatCreate(unsigned group, ExprDef *def); 105 106 ModMapDef * 107 ModMapCreate(xkb_atom_t modifier, ExprDef *keys); 108 109 LedMapDef * 110 LedMapCreate(xkb_atom_t name, VarDef *body); 111 112 LedNameDef * 113 LedNameCreate(unsigned ndx, ExprDef *name, bool virtual); 114 115 IncludeStmt * 116 IncludeCreate(struct xkb_context *ctx, char *str, enum merge_mode merge); 117 118 XkbFile * 119 XkbFileCreate(enum xkb_file_type type, char *name, ParseCommon *defs, 120 enum xkb_map_flags flags); 121 122 void 123 FreeStmt(ParseCommon *stmt); 124 125 #endif 126