Home | History | Annotate | Download | only in xkbcomp
      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