summaryrefslogtreecommitdiff
path: root/xc/programs/xkbcomp/expr.h
diff options
context:
space:
mode:
Diffstat (limited to 'xc/programs/xkbcomp/expr.h')
-rw-r--r--xc/programs/xkbcomp/expr.h234
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 */