Home   :   Matrix Language   :   Primitive Action Statements   :   Assignment Statements

Assignment Statements

 

Statements

 

    Assignment

    SetInteger

    SetBoolean

    SetEnumeration

    SetFixed

    SetFloat

    SetString

 

 

General

 

There is only a single copy of all the object data.  A change to an entity attribute value is instantly visible to all other parts of the model.

 

Constants are not allowed except for zero and one.

 

 

Assignment Statement

 

The Assignment statement allows the update of attribute data and process data.  State data cannot be overwritten.

 

No calculation is allowed within set statements.

 

Type casting may be used to convert the result of a calculation to another compatible type.  For example:

 

Assignment

SetInteger

Account.Integer_attribute := Type_Integer'amount

 

 

SetInteger Statement

 

    Assignment

        SetInteger

            This_Entity.Integer_attribute := <<IntegerZero>>

            That_Entity.Integer_attribute := integer_process_data

            more_integer_process_data     := Some_Entity.Integer_attribute

 

The SetInteger statement allows the update of integer data items.

 

Permitted item field formats:

 

    Left hand side:

 

        integer_process_data

        Entity.Integer_attribute_data

 

    Right hand side:

 

        <<IntegerOne>>

        <<IntegerZero>>

        Integer_state_data

        integer_process_data

        Entity.Boolean_attribute_data

 

 

SetBoolean Statement

 

    Assignment

        SetBoolean

            boolean_data             := <<True>>

            Entity.Boolean_attribute := <<False>>

            some_boolean_data        := Entity.Boolean_attribute

            Entity.Boolean_attribute := Boolean_state_data_one

            process_data             := Boolean_state_data_two

 

The SetBoolean statement allows the update of boolean data items.

 

Permitted item field formats:

 

    Left hand side:

 

        boolean_process_data

        Entity.Boolean_attribute_data

 

    Right hand side:

 

        <<True>>

        <<False>>

        Boolean_state_data

        boolean_process_data

        Entity.Boolean_attribute_data

 

 

SetEnumeration Statement

 

    Assignment

        SetEnumeration

            this_enumeration_data  := Weekday'MONDAY

            Entity.Enumeration_att := <<Successor:Enumeration_data>>

            that_enumeration_data  := <<Predecessor:Class.Enumeration_attribute>>

            Entity.Enumeration_att := Enumeration_data

            process_data           := More_enumeration_data

            nice_enumeration_data  := Entity.Enumeration_attribute

 

The SetEnumeration statement allows the update of enumeration data items.

 

Permitted item field formats:

 

    Left hand side:

 

        literal_process_data

        Entity.Literal_attribute_data

 

    Right hand Side:

 

        Literal_state_data

        Enumeration'LITERAL

        Literal_process_data

        Entity.Literal_attribute_data

        <<Sucessor:Literal_state_data>>

        <<Sucessor:Literal_process_data>>

        <<Sucessor:Entity.Literal_attribute_data>>

        <<Predecessor:Literal_state_data>>

        <<Predecessor:Literal_process_data>>

        <<Predecessor:Entity.Literal_attribute_data>>

 

 

SetFixed Statement

 

    Assignment

        SetFixed

            This_Entity.Fixed_attribute := <<FixedZero>>

            That_Entity.Fixed_attribute := fixed_process_data

            more_fixed_process_data     := Some_Entity.Fixed_attribute

 

The SetFixed statement allows the update of fixed data items.

 

Permitted item field formats:

 

    Left hand side:

 

        fixed_process_data

        Entity.Fixed_attribute

 

    Right hand side:

 

        <<FixedOne>>

        <<FixedZero>>

        Fixed_state_data

        fixed_process_data

        Entity.Fixed_attribute_data

 

 

SetFloat Statement

 

    Assignment

        SetFloat

            This_Entity.Float_attribute := <<FloatZero>>

            That_Entity.Float_attribute := float_process_data

            more_float_process_data     := Some_Entity.Float_attribute

 

The SetFloat statement allows the update of float data items.

 

Permitted item field formats:

 

    Left hand side:

 

        float_process_data

        Entity.Float_attribute

 

    Right hand side:

 

        <<FloatOne>>

        <<FloatZero>>

        Float_state_data

        float_process_data

        Entity.Float_attribute_data

 

 

SetString Statement

 

    Assignment

        SetString

            string_process_data          := Blue_Entity.String_attribute

            null_string_process_data     := <<EmptyString>>

            This_Entity.String_attribute := String_data

            That_Entity.String_attribute := process_data

 

Permitted item field formats:

 

    Left hand side:

 

        string_process_data

        Entity.String_attribute_data

 

    Right hand side:

 

        <<EmptyString>>

        String_state_data

        string_process_data

        Entity.String_attribute_data

 

Matrix has no string manipulation facility except for comparison and direct assignment.  String values must originate from object data defined in M0, input from outside the system on events or produced in a String domain.

Copyright 2017 Dark Matter Systems Ltd. All Rights Reserved.