spec CarExtrasToBeExtended declares section GraphSchema declares node_class CAR end; (* @CC_LG 6014H(336,56)(97,29) @*) node_class EXTRA is_a CAR (* @CC_LG 3007C @*) end; (* @CC_LG 6014H(336,210)(97,29) @*) node_type Limousine : CAR (* @CC_LG 3006C @*) redef_intrinsic price := 60000; end; (* @CC_LG 6017H(168,140)(97,29) @*) node_type OffroadVehicle : CAR (* @CC_LG 3006C @*) redef_intrinsic price := 40000; end; (* @CC_LG 6017H(276,140)(97,29) @*) node_type Sportscar : CAR (* @CC_LG 3006C @*) redef_intrinsic price := 50000; end; (* @CC_LG 6017H(396,140)(97,29) @*) node_type AirCondition : EXTRA (* @CC_LG 3006C @*) redef_intrinsic price := 3000; end; (* @CC_LG 6017H(516,182)(97,29) @*) node_type AirBag : EXTRA (* @CC_LG 3006C @*) redef_intrinsic price := 2000; end; (* @CC_LG 6017H(516,224)(97,29) @*) edge_type enhanced_by (* @CC_LG 1002(-180,-14)(66,10) @*) : CAR [1:1] -> EXTRA [0:1]; (* @CC_LG 3004C4 96,56 96,210 @*) end; section Transformations declares transformation CreateNewCar ( carType : type_in CAR) = ::= end; transformation AddExtra ( car : CAR ; extraType : type_in EXTRA) = ::= end; end; end. (* @CC_LG 7012C(889,454) @*)