
/* stdopers is loaded immediately after Yacas is started. It contains
 * the definitions of the infix operators, so the parser can already
 * parse expressions containing these operators, even though the
 * function hasn't been defined yet.
 */

Infix("=",9);
Infix("And",100);
RightAssociative("And");
Infix("Or", 101);
Prefix("Not", 10);
Infix("<",9);
Infix(">",9);
Infix("<=",9);
Infix(">=",9);
Infix("!=",9);

Infix(":=",1000);
RightAssociative(":=");

Infix("+",7);
Infix("-",7);
RightPrecedence("-",4);
Infix("/",3);
Infix("*",4);
Infix("^",2);
Prefix("+",5);
Prefix("-",5);
RightPrecedence("-",4);
Bodied("For",60000);
Bodied("Until",60000);
Postfix("++");
Postfix("--");
Bodied("ForEach",60000);
Infix("<<",1);
Infix(">>",1);
Bodied("D",60000);
Bodied("Deriv",60000);
Infix("X",3);
Infix(".",3);
Postfix("!");
Bodied("Integrate",60000);

Bodied("Limit",60000);

Infix("+-",5);
Infix("/-",3);
Infix("*-",4);
Infix("^-",2);
Infix(":=-",1000);
Infix(":=+",1000);

/* functional operators */
Infix(":",7);
RightAssociative(":");
Infix("@",60);
Infix("/@",60);
Infix("..",60);

Bodied("Taylor",60000);
Bodied("InverseTaylor",60000);

Infix("<--",1000);
Infix("#",990);

Bodied("TSum",60000);
Bodied("TExplicitSum",60000);
Bodied("TD",0);  /* Tell the Yacas interpreter that TD is to be used as TD(i)f */

/* Operator to be used for non-evaluating comparisons */
Infix("==",9);
Infix("!==",9);

/* Operators needed for propositional logic theorem prover */
Infix("=>",1000); /* implication, read as 'implies' */


Bodied("if",0);
Infix("else",60000);
RightAssociative("else");
/* Bitwise operations we REALLY need. Perhaps we should define them
   also as Yacas operators?
 */
Infix("&",5);
Infix("|",5);
Infix("%",5);

/* local pattern replacement operators */
Infix("/:",10000);
Infix("/::",10000);
Infix("<-",1000);




