Lines Matching refs:expr

29 #include "expr.h"
130 ExprResolveLhs(const ExprDef *expr, ExprResult *elem_rtrn,
133 switch (expr->op)
137 field_rtrn->str = XkbAtomGetString(NULL, expr->value.str);
141 elem_rtrn->str = XkbAtomGetString(NULL, expr->value.field.element);
142 field_rtrn->str = XkbAtomGetString(NULL, expr->value.field.field);
146 elem_rtrn->str = XkbAtomGetString(NULL, expr->value.array.element);
147 field_rtrn->str = XkbAtomGetString(NULL, expr->value.array.field);
148 *index_rtrn = expr->value.array.entry;
149 if (expr->value.array.element != None && elem_rtrn->str == NULL)
155 WSGO("Unexpected operator %d in ResolveLhs\n", expr->op);
295 ExprResolveModIndex(const ExprDef *expr,
302 switch (expr->op)
305 if (expr->type != TypeInt)
309 exprTypeText(expr->type));
312 else if ((expr->value.ival >= XkbNumModifiers)
313 || (expr->value.ival < 0))
316 expr->value.ival, XkbNumModifiers - 1);
319 val_rtrn->ival = expr->value.ival;
322 if (LookupModIndex(lookupPriv, (Atom) None, expr->value.str,
330 None, expr->value.str, TypeInt, val_rtrn);
334 XkbAtomText(NULL, expr->value.str, XkbMessage));
359 WSGO("Unknown operator %d in ResolveModIndex\n", expr->op);
373 ExprResolveModMask(const ExprDef *expr, ExprResult *val_rtrn,
382 return ExprResolveMask(expr, val_rtrn, LookupModMask, (XPointer) &priv);
386 ExprResolveBoolean(const ExprDef *expr, ExprResult *val_rtrn,
392 switch (expr->op)
395 if (expr->type != TypeBoolean)
399 exprTypeText(expr->type));
402 val_rtrn->ival = expr->value.ival;
405 bogus = XkbAtomGetString(NULL, expr->value.str);
426 None, expr->value.str, TypeBoolean, val_rtrn);
430 XkbAtomText(NULL, expr->value.str, XkbMessage));
436 expr->value.field.element,
437 expr->value.field.field, TypeBoolean, val_rtrn);
441 XkbAtomText(NULL, expr->value.field.element, XkbMessage),
442 XkbAtomText(NULL, expr->value.field.field, XkbMessage));
446 ok = ExprResolveBoolean(expr->value.child, val_rtrn, lookup, lookupPriv);
475 WSGO("Unknown operator %d in ResolveBoolean\n", expr->op);
482 ExprResolveFloat(const ExprDef *expr, ExprResult *val_rtrn,
489 switch (expr->op)
492 if (expr->type == TypeString)
495 str = XkbAtomGetString(NULL, expr->value.str);
502 if ((expr->type != TypeInt) && (expr->type != TypeFloat))
505 exprTypeText(expr->type));
508 val_rtrn->ival = expr->value.ival;
509 if (expr->type == TypeInt)
516 None, expr->value.str, TypeFloat, val_rtrn);
520 XkbAtomText(NULL, expr->value.str, XkbMessage));
526 expr->value.field.element,
527 expr->value.field.field, TypeFloat, val_rtrn);
531 XkbAtomText(NULL, expr->value.field.element, XkbMessage),
532 XkbAtomText(NULL, expr->value.field.field, XkbMessage));
538 left = expr->value.binary.left;
539 right = expr->value.binary.right;
543 switch (expr->op)
565 left = expr->value.child;
573 left = expr->value.child;
576 if (expr->op == OpNegate)
584 left = expr->value.child;
587 WSGO("Unknown operator %d in ResolveFloat\n", expr->op);
594 ExprResolveInteger(const ExprDef *expr, ExprResult *val_rtrn,
601 switch (expr->op)
604 if (expr->type == TypeString)
607 str = XkbAtomGetString(NULL, expr->value.str);
621 if ((expr->type != TypeInt) && (expr->type != TypeFloat))
625 exprTypeText(expr->type));
628 val_rtrn->ival = expr->value.ival;
629 if (expr->type == TypeFloat)
636 None, expr->value.str, TypeInt, val_rtrn);
640 XkbAtomText(NULL, expr->value.str, XkbMessage));
646 expr->value.field.element,
647 expr->value.field.field, TypeInt, val_rtrn);
651 XkbAtomText(NULL, expr->value.field.element, XkbMessage),
652 XkbAtomText(NULL, expr->value.field.field, XkbMessage));
658 left = expr->value.binary.left;
659 right = expr->value.binary.right;
663 switch (expr->op)
685 left = expr->value.child;
693 left = expr->value.child;
696 if (expr->op == OpNegate)
704 left = expr->value.child;
707 WSGO("Unknown operator %d in ResolveInteger\n", expr->op);
714 ExprResolveString(const ExprDef *expr, ExprResult *val_rtrn,
723 switch (expr->op)
726 if (expr->type != TypeString)
729 exprTypeText(expr->type));
732 val_rtrn->str = XkbAtomGetString(NULL, expr->value.str);
743 None, expr->value.str, TypeString, val_rtrn);
747 XkbAtomText(NULL, expr->value.str, XkbMessage));
753 expr->value.field.element,
754 expr->value.field.field, TypeString, val_rtrn);
758 XkbAtomText(NULL, expr->value.field.element, XkbMessage),
759 XkbAtomText(NULL, expr->value.field.field, XkbMessage));
762 left = expr->value.binary.left;
763 right = expr->value.binary.right;
808 left = expr->value.child;
815 left = expr->value.child;
822 WSGO("Unknown operator %d in ResolveString\n", expr->op);
829 ExprResolveKeyName(const ExprDef *expr, ExprResult *val_rtrn,
837 switch (expr->op)
840 if (expr->type != TypeKeyName)
843 exprTypeText(expr->type));
846 memcpy(val_rtrn->keyName.name, expr->value.keyName, XkbKeyNameLength);
852 None, expr->value.str, TypeString, val_rtrn);
856 XkbAtomText(NULL, expr->value.str, XkbMessage));
862 expr->value.field.element,
863 expr->value.field.field, TypeString, val_rtrn);
867 XkbAtomText(NULL, expr->value.field.element, XkbMessage),
868 XkbAtomText(NULL, expr->value.field.field, XkbMessage));
895 left = expr->value.binary.left;
902 left = expr->value.binary.left;
909 WSGO("Unknown operator %d in ResolveKeyName\n", expr->op);
918 ExprResolveEnum(const ExprDef *expr, ExprResult *val_rtrn,
921 if (expr->op != ExprIdent)
924 exprOpText(expr->op));
927 if (!SimpleLookup((XPointer) values, (Atom) None, expr->value.str,
932 XkbAtomText(NULL, expr->value.str, XkbMessage));
949 ExprResolveMask(const ExprDef *expr, ExprResult *val_rtrn,
957 switch (expr->op)
960 if (expr->type != TypeInt)
964 exprTypeText(expr->type));
967 val_rtrn->ival = expr->value.ival;
973 None, expr->value.str, TypeInt, val_rtrn);
977 XkbAtomText(NULL, expr->value.str, XkbMessage));
983 expr->value.field.element,
984 expr->value.field.field, TypeInt, val_rtrn);
988 XkbAtomText(NULL, expr->value.field.element, XkbMessage),
989 XkbAtomText(NULL, expr->value.field.field, XkbMessage));
1005 left = expr->value.binary.left;
1006 right = expr->value.binary.right;
1010 switch (expr->op)
1021 expr->op == OpDivide ? "divide" : "multiply");
1032 left = expr->value.child;
1042 left = expr->value.child;
1046 (expr->op == OpNegate ? "-" : "!"));
1050 WSGO("Unknown operator %d in ResolveMask\n", expr->op);
1057 ExprResolveKeySym(const ExprDef *expr, ExprResult *val_rtrn,
1062 if (expr->op == ExprIdent)
1067 str = XkbAtomGetString(NULL, expr->value.str);
1074 ok = ExprResolveInteger(expr, val_rtrn, lookup, lookupPriv);