RULE nc_variable_compatible_initial_value

(* SCHEMA integrated_cnc_schema; *)
RULE nc_variable_compatible_initial_value FOR
  (expression_representation_item,
   representation_item_relationship);
WHERE
  -- each nc_variable has at most one one initial value
  WR1: (0 = SIZEOF (QUERY (nv <* expression_representation_item |
            ('INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE'
	      IN TYPEOF (nv)) AND NOT
            (1 >= SIZEOF (QUERY (rir <* representation_item_relationship |
                   (rir.description = 'initial value')  AND
                   (rir.relating_representation_item :=: nv)
	))))));

  -- the types on either side of the initial value relationship must match
  -- each nc_variable has at most one one initial value
  WR2: (0 = SIZEOF (QUERY (rir <* representation_item_relationship |
            (rir.description = 'initial value')  AND
            ('INTEGRATED_CNC_SCHEMA.NUMERIC_VARIABLE'
              IN TYPEOF (rir.relating_representation_item))
	    AND NOT
            ((('INTEGRATED_CNC_SCHEMA.INT_NUMERIC_VARIABLE'
                IN TYPEOF (rir.relating_representation_item)) AND
              ('INTEGRATED_CNC_SCHEMA.INT_LITERAL'
                IN TYPEOF (rir.related_representation_item)))
             OR
            ((('INTEGRATED_CNC_SCHEMA.REAL_NUMERIC_VARIABLE'
                IN TYPEOF (rir.relating_representation_item)) AND
              ('INTEGRATED_CNC_SCHEMA.REAL_LITERAL'
                IN TYPEOF (rir.related_representation_item)
	)))))));
END_RULE; -- 10303-238: integrated_cnc_schema

[Top Level Definitions]

Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:25-02:00