diff options
Diffstat (limited to 'xc/programs/xkbcomp/expr.h')
-rw-r--r-- | xc/programs/xkbcomp/expr.h | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/xc/programs/xkbcomp/expr.h b/xc/programs/xkbcomp/expr.h new file mode 100644 index 000000000..c0630c0c5 --- /dev/null +++ b/xc/programs/xkbcomp/expr.h @@ -0,0 +1,234 @@ +/* $XConsortium: expr.h /main/6 1996/03/01 14:32:09 kaleb $ */ +/************************************************************ + Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + + Permission to use, copy, modify, and distribute this + software and its documentation for any purpose and without + fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright + notice and this permission notice appear in supporting + documentation, and that the name of Silicon Graphics not be + used in advertising or publicity pertaining to distribution + of the software without specific prior written permission. + Silicon Graphics makes no representation about the suitability + of this software for any purpose. It is provided "as is" + without any express or implied warranty. + + SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + THE USE OR PERFORMANCE OF THIS SOFTWARE. + + ********************************************************/ + +#ifndef EXPR_H +#define EXPR_H 1 + +typedef union _ExprResult { + char * str; + int ival; + unsigned uval; + XkbKeyNameRec keyName; +} ExprResult; + +_XFUNCPROTOBEGIN + +typedef Bool (*IdentLookupFunc)( +#if NeedFunctionPrototypes + XPointer /* priv */, + Atom /* elem */, + Atom /* field */, + unsigned /* type */, + ExprResult * /* val_rtrn */ +#endif +); + +extern char *exprTypeText( +#if NeedFunctionPrototypes + unsigned /* type */ +#endif +); + +_XFUNCPROTOEND + +extern int ExprResolveLhs( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* elem_rtrn */, + ExprResult * /* field_rtrn */, + ExprDef ** /* index_rtrn */ +#endif +); + +typedef struct _LookupPriv { + XPointer priv; + IdentLookupFunc chain; + XPointer chainPriv; +} LookupPriv; + +typedef struct _LookupEntry { + char * name; + unsigned result; +} LookupEntry; + +typedef struct _LookupTable { + char * element; + LookupEntry * entries; + struct _LookupTable * nextElement; +} LookupTable; + +_XFUNCPROTOBEGIN + + +extern char *exprOpText( +#if NeedFunctionPrototypes + unsigned /* type */ +#endif +); + +extern int RadioLookup( +#if NeedFunctionPrototypes + XPointer /* priv */, + Atom /* elem */, + Atom /* field */, + unsigned /* type */, + ExprResult * /* val_rtrn */ +#endif +); + +extern int SimpleLookup( +#if NeedFunctionPrototypes + XPointer /* priv */, + Atom /* elem */, + Atom /* field */, + unsigned /* type */, + ExprResult * /* val_rtrn */ +#endif +); + +extern int TableLookup( +#if NeedFunctionPrototypes + XPointer /* priv */, + Atom /* elem */, + Atom /* field */, + unsigned /* type */, + ExprResult * /* val_rtrn */ +#endif +); + +extern int LookupModIndex( +#if NeedFunctionPrototypes + XPointer /* priv */, + Atom /* elem */, + Atom /* field */, + unsigned /* type */, + ExprResult * /* val_rtrn */ +#endif +); + +extern int LookupModMask( +#if NeedFunctionPrototypes + XPointer /* priv */, + Atom /* elem */, + Atom /* field */, + unsigned /* type */, + ExprResult * /* val_rtrn */ +#endif +); + +extern int ExprResolveModIndex( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveModMask( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* priv */ +#endif +); + +extern int ExprResolveBoolean( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveInteger( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveFloat( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveString( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveKeyName( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveEnum( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + LookupEntry * /* values */ +#endif +); + +extern int ExprResolveMask( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +extern int ExprResolveKeySym( +#if NeedFunctionPrototypes + ExprDef * /* expr */, + ExprResult * /* val_rtrn */, + IdentLookupFunc /* lookup */, + XPointer /* lookupPriv */ +#endif +); + +_XFUNCPROTOEND + +#endif /* EXPR_H */ |