
Opcode Operands Function
@ S@L Evaluate the first argument as a string, and the second as a list. Treat the string obtained from the first argument as a function name and apply it to the second argument treated as an argument list. Does not work with builtin functions.
, E,E Creates a list containing both expressions. May be used to create multi-element lists.
<- V<-E Evaluates E and assigns the value to V.
<- S<-E Evaluates E and S, and assigns the value of E to the variable whose name matches the value of S.
= E=E Outputs as "E=E". If used in a macro argument, may be the subject of 'aname and 'avalue functions.
-> E->E Outputs as "E->E". If used in a macro argument, may be the subject of 'aname and 'avalue functions.
# S#S Concatenates the two strings.
&& N&&N Logical AND of the arguments treating zero as false non-zero as true.
& N&N Bitwise AND of the two (32-bit integer) arguments.
& E&E Outputs as "E&E" if one argument is not numeric.
'& E'&E Bitwise AND of the two (32-bit integer) arguments, regardless of type.
|| N||N Logical OR of the arguments treating zero as false non-zero as true.
| N|N Bitwise OR of the two (32-bit integer) arguments.
| E&E Outputs as "E|E" if one argument is not numeric.
'| E'|E Bitwise OR of the two (32-bit integer) arguments, regardless of type.
^ E^|E Bitwise EXCLUSIVE OR of the two (32-bit integer) arguments, regardless of type.
! !N Logical NOT of the argument, treating zero as false non-zero as true.
~ ~N Bitwise NOT of the (32-bit integer) arguments. Ones Complement.
< E<E Outputs as "E<E"
> E>E Outputs as "E>E"
== E==E Outputs as "E==E"
<= E<=E Outputs as "E<=E"
>= E>=E Outputs as "E>=E"
!= E!=E Outputs as "E!=E"
'< E'<E Less than comparison. Returns 1 for true, 0 for false.
'> E'>E Greater than comparison. Returns 1 for true, 0 for false.
'== E'==E Equal to comparison. Returns 1 for true, 0 for false.
'<= E'<=E Less than or equal to comparison. Returns 1 for true, 0 for false.
'>= E'>=E Greater than or equal to comparison. Returns 1 for true, 0 for false.
'!= E'!=E Not equal to comparison. Returns 1 for true, 0 for false.
$LT E$LTE Same as '<.
$GT E$GTE Same as '>.
$EQ E$EQE Same as '==.
$LE E$LEE Same as '<=.
$GE E$GEE Same as '>=.
$NE E$NEE Same as '!=.
<< N<<N Shifts the first (32-bit integer) argument left the number of bits indicated by the second argument.
>> N>>N Shifts the first (32-bit integer) argument right the number of bits indicated by the second argument.
+ N+N Returns the sum of its arguments.
+ E+E Outputs as "E+E" if one argument is not numeric.
'+ N'+N Returns the sum of its arguments, regardless of type.
- N-N Returns the difference of its arguments.
- E-E Outputs as "E-E" if one argument is not numeric.
'- N'-N Returns the difference of its arguments, regardless of type.
* N*N Returns the product of its arguments.
* E*E Outputs as "E*E" if one argument is not numeric.
'* N'*N Returns the product of its arguments, regardless of type.
/ N/N Returns the quotient of its arguments.
/ E/E Outputs as "E/E" if one argument is not numeric.
'/ N'/N Returns the quotient of its arguments, regardless of type.
** N**N Raises the first argument to the power designated by the second argument. This is done iteratively.
unary + +N Returns N.
unary + +E Outputs as "+E" if the argument is not numeric.
unary '+ '+E Returns E regardless of type.
unary - -N Returns the negation of N. Two's Complement.
unary - -E Outputs as "-E" if the argument is not numeric.
unary '- '-E Returns the negation of E regardless of type.
' 'E Evaluates its argument, and treats the result as a variable name, and then returns the value of the named variable. If the expression is numeric and evaluates to n, the value of the nth argument of the current macro call is returned.