Assignment Command

The left hand side of an assignment is a variable or array element. Its type determines the type of the expression on the left hand side.

     Left = Expression

You can also use the familiar shorthand notation combining an operator with the equal sign.

   Count += 1                          :Increment a counter.

When assigning a value to a pointer the expression can be a value or an address expression. A value will be assigned to the object that it points to. An address expression always begins with an at sign (@). The expression can be the address of a variable or array element, an address result returned from a function, or a positive constant value up to 65535.

   Pointer = Expression                :Assign a value to a referenced object.
   Pointer = @Variable                 :Point to a variable.
   Pointer = @Array[ Index ]           :Point to an array element.
   Pointer = @Function( Argument )     :Set to the address returned.
   Pointer = @0                        :Set to a positive constant.
   Pointer = @parcel{ I + J }          :Set to a computed 16 bit value.

A conditional assignment evaluates a condition and then updates the result accordingly. There are three different formats you can use. The first assigns zero if the condition is false and one if true. The left hand side must be a numeric or enumerated type.

   Variable = if Condition             :Set Variable to 0 or 1.

Operator assignments also work for conditional assignments. This example increments the Count variable only when the condition is true.

   Count += if Value > 0               :Conditionally increment the Count.

The second conditional form returns a designated value when true. Otherwise the value is unchanged. In this case the assignment Variable may be a string.

   Text = if Value < 0, "-" ! Text         :Single value conditional example
   Variable = if Condition, Expression     :Single value conditional format

   IF Condition                            :Equivalent conditional block
      Variable = Expression
   .

   Odd[ N ] += if N /\ 1, N                :Single value with operator example
   Variable *= if Condition, Expression    :Single value with operator format

   IF Condition                            :Equivalent conditional block
      Variable = Variable * (Expression)
   .

The two value conditional form specifies both true and a false values. The assignment Variable may be a string here as well. Note that for operator-assignments the only string operator is concatenation (!).

   Variable = if Condition, True, False    :Two value conditional format
   N = if Value > 0, Value, 0              :Two value conditional example

   IF Condition                            :Equivalent conditional block
      Variable = True                      :Assign the expression for True.

   ELSE
      Variable = False                     :Assign the expression for False.
   .

   Variable *= if Condition, True, False   :Two value with operator format
   Text != if Value => 0, "+", "-"         :Two value with operator example

   IF Condition                            :Equivalent conditional block
      Variable = Variable * (True)         :Assign the expression for True.

   ELSE
      Variable = Variable * (False)        :Assign the expression for False.
   .

Conditional Expression

If Condition