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 ParseCommon * 31 AppendStmt(ParseCommon *to, ParseCommon *append); 32 33 ExprDef * 34 ExprCreateString(xkb_atom_t str); 35 36 ExprDef * 37 ExprCreateInteger(int ival); 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 ExprCreateMultiKeysymList(ExprDef *list); 66 67 ExprDef * 68 ExprCreateKeysymList(xkb_keysym_t sym); 69 70 ExprDef * 71 ExprAppendMultiKeysymList(ExprDef *list, ExprDef *append); 72 73 ExprDef * 74 ExprAppendKeysymList(ExprDef *list, xkb_keysym_t sym); 75 76 KeycodeDef * 77 KeycodeCreate(xkb_atom_t name, int64_t value); 78 79 KeyAliasDef * 80 KeyAliasCreate(xkb_atom_t alias, xkb_atom_t real); 81 82 VModDef * 83 VModCreate(xkb_atom_t name, ExprDef *value); 84 85 VarDef * 86 VarCreate(ExprDef *name, ExprDef *value); 87 88 VarDef * 89 BoolVarCreate(xkb_atom_t ident, bool set); 90 91 InterpDef * 92 InterpCreate(xkb_keysym_t sym, ExprDef *match); 93 94 KeyTypeDef * 95 KeyTypeCreate(xkb_atom_t name, VarDef *body); 96 97 SymbolsDef * 98 SymbolsCreate(xkb_atom_t keyName, VarDef *symbols); 99 100 GroupCompatDef * 101 GroupCompatCreate(unsigned group, ExprDef *def); 102 103 ModMapDef * 104 ModMapCreate(xkb_atom_t modifier, ExprDef *keys); 105 106 LedMapDef * 107 LedMapCreate(xkb_atom_t name, VarDef *body); 108 109 LedNameDef * 110 LedNameCreate(unsigned ndx, ExprDef *name, bool virtual); 111 112 IncludeStmt * 113 IncludeCreate(struct xkb_context *ctx, char *str, enum merge_mode merge); 114 115 XkbFile * 116 XkbFileCreate(enum xkb_file_type type, char *name, ParseCommon *defs, 117 enum xkb_map_flags flags); 118 119 void 120 FreeStmt(ParseCommon *stmt); 121 122 #endif 123