HELP PRECEDENCE A.Sloman, Nov 1987
-- PRECEDENCES OF POP-11 INFIX OPERATIONS ----------------------------
Precedences determine the parsing of complex expressions, especially
unbracketed expressions with more than one infix operator. E.g.
3 + 4 * 5
parses as 3 + (4 * 5) rather than (3 + 4) * 5 because the precedence of
"+" is higher, i.e. it has higher scope, than that of "*".
Precedences can be positive or negative integers or decimals, in the
range -12.7 to +12.7 inclusive. So the largest possible precedence is
12.7. Most operations associate to the left; negative precedences can be
used for operations which must associate to the right. Absolute value of
the precedence determines scope. Positive precedences will be slightly
higher than negative ones of the same absolute value.
Examples of built in infix operators:
NAME PRECEDENCE ARGUMENTS FUNCTION
==== ========== ========= ========
Logical bit manipulation:
&& 4 2 Logical and
&&~~ 4 2 Logical and-not
|| 4 2 Logical or
~~ 4 1 Logical not
||/& 4 2 Logical exclusive or
<< 4 2 Logical shift left
>> 4 2 Logical shift right
Standard arithmetic operations:
> 6 2 Greater than
>= 6 2 Greater than or equal to
< 6 2 Less than
<= 6 2 Less than or equal to
* 4 2 Multiply
** 3 2 Raise to power
+ 5 2 Add
- 5 2 Subtract
/ 4 2 Divide
// 4 2 Integer divide
rem 2 2 Integer remainder
mod 2 2 Modulo
div 2 2 integer divisor
Fast integer (fi_) operations (no run-time type checking)
See REF * FASTPROCS
Boolean operations:
and 9
or 10
Equality tests:
= 7 2 Equal
== 7 2 Identical
==# 7 2 Numerical equality
/= 7 2 Not equal
/== 7 2 Not identical
NOTE: "=" and "/=" compare components of structures,
whereas "==" and "/==" don't, and are therefore faster
matches 9 2 Structure matcher
--> 9 2 Calls the matcher
SEE HELP *MATCHES
Structure operations
:: 4 2 CONS list link
<> 5 2 Concatenate structure
>< 5 2 String concatenate
ncjoin 5 2 Non-copy list join
. 1 1 Apply procedure
Others:
-> 11 Assignment arrow
->> 11 Assign and stack
=> 12 Print arrow
( -1
: -1
See
HELP *DEFINE - for syntax of procedure definitions
(HELP *OPERATION - for syntax of infix operator definitions)
REF *POPSYNTAX - for more detailed information on POP-11
syntax
--- C.all/help/precedence ----------------------------------------------
--- Copyright University of Sussex 1987. All rights reserved. ----------Author: A.Sloman, Nov 1987