/**
 * <copyright>
 * </copyright>
 *
 * $Id: ImperativeExpression.java,v 1.1 2008/09/02 20:36:35 radvorak Exp $
 */
package org.eclipse.m2m.qvt.oml.emof.ImperativeOCL;

import org.eclipse.qvt.declarative.emof.EssentialOCL.OclExpression;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Imperative Expression</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.m2m.qvt.oml.emof.ImperativeOCL.ImperativeOCLPackage#getImperativeExpression()
 * @model abstract="true"
 * @generated
 */
public interface ImperativeExpression extends OclExpression {
} // ImperativeExpression
