# Copyright (c) 2016 Obeo.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.htm
# Contributors: Obeo - initial API and implementation

pluginName = EEF Common
providerName = Eclipse Modeling Project

AbstractEEFEclipsePlugin_InvalidEvaluation=An issue has occurred during the evaluation of ''{0}''.\n\
{1}

AbstractEEFEclipsePlugin_BlankExpression=The {0} in {1} cannot be blank