[ Syntax Settings | Reference Manual | Alphabetic Index ]
current_op(-Precedence, -Associativity, -Name)
Succeeds if Name is a visible operator with precedence Precedence and
associativity Associativity.
- Precedence
- Integer or variable.
- Associativity
- Atom or variable.
- Name
- Atom or variable.
Description
   Used to check for the existence of a visible operator of precedence
   Precedence with name Name and associativity Associativity.  Alternative
   solutions are returned on backtracking.
   Precedence is an integer in the range 1 to 1200.
   Associativity is one of the atoms
   xfx, xfy, yfx, fx, fy, xf, yf, fxx, fxy.
Modes and Determinism
- current_op(-, -, -) is nondet
Modules
This predicate is sensitive to its module context (tool predicate, see @/2).
Exceptions
- (5) type error 
- Precedence is not an integer.
- (5) type error 
- Associativity is not one of the above atoms.
- (5) type error 
- Name is instantiated but not to an atom.
- (6) out of range 
- Precedence is not in the range 0 to 1200.
Examples
Success:
   current_op(300, fx, *).
   [eclipse]: current_op(P, A, +).
   P = 500
   A = fx     More? (;)
   P = 500
   A = yfx     More? (;)   % RETURN pressed
   yes.
Fail:
   current_op(10, fx, noop).
Error:
   current_op(prec, fx, +).             (Error 5).
   current_op(100, fff, +).             (Error 5).
   current_op(100, fx, bad(op)).        (Error 5).
   current_op(-1, fx, +).               (Error 6).
See Also
op / 3