Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

OREF

Draft MDC Standard

7.1.1.1.2 Values of data type OREF

    oref::= any value with data type OREF

Values of data type OREF are values that have no canonic representation. Instead, each oref uniquely identifies a specific object, in an implementation-specific manner.

When a value of data type OREF is assigned to an lvn, this value assignment is the only action that will result. In particular, no copy is made of the object that is identified by this oref.

All copies of a value of data type OREF are completely equivalent for accessing the object.

After an lvn has been assigned a value of data type OREF, any new value may be assigned to that lvn. Such new values may be of data type MVAL as well as OREF. Such assignments never have any impact on the object that is identified by the original oref.

Values of data type OREF have no literal representation. Except in certain special situations, values of data type OREF are coerced into values of data type MVAL according to the following rules, based on the value of the default property, if any, of the object identified by the oref:

  1. Let ref be the value of data type OREF that is being coerced.
  2. Let obj be the object identified by ref.
  3. If obj has no default property, an error condition will occur with ecode = “M107” (No Default Value).
  4. If the value of the default property of obj has the data type OREF, then replace ref by the value of this default property and go back to step b.
  5. Otherwise, the value of the default property of obj must be of data type MVAL, and this value will be returned as the coerced string value of the original object.

The special situations under which values of data type OREF are not coerced into values of data type MVAL are:

  1. The final values of the exprs that are operands of == operators.
  2. The values of parameters that are passed in actuallists or namedactuallists that are not part of externrefs or Job command arguments.
  3. The final values of the exprs on the right-hand side of the = in arguments of Assign commands.
  4. Values that are returned as function-values through Quit commands.
  5. Values that are used as the object portion of an owservice.
Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 17-Nov-2023, 10:44:23.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)