Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 250630 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/m2m/internal/qvt/oml/ast/env/QvtEnvironmentBase.java (-1 / +5 lines)
Lines 31-41 Link Here
31
import org.eclipse.emf.ecore.EStructuralFeature;
31
import org.eclipse.emf.ecore.EStructuralFeature;
32
import org.eclipse.emf.ecore.resource.Resource;
32
import org.eclipse.emf.ecore.resource.Resource;
33
import org.eclipse.m2m.internal.qvt.oml.ast.parser.QvtOperationalUtil;
33
import org.eclipse.m2m.internal.qvt.oml.ast.parser.QvtOperationalUtil;
34
import org.eclipse.m2m.qvt.oml.ecore.ImperativeOCL.ImperativeOCLPackage;
35
import org.eclipse.m2m.internal.qvt.oml.expressions.ImperativeOperation;
34
import org.eclipse.m2m.internal.qvt.oml.expressions.ImperativeOperation;
36
import org.eclipse.m2m.internal.qvt.oml.expressions.Module;
35
import org.eclipse.m2m.internal.qvt.oml.expressions.Module;
37
import org.eclipse.m2m.internal.qvt.oml.expressions.VarParameter;
36
import org.eclipse.m2m.internal.qvt.oml.expressions.VarParameter;
38
import org.eclipse.m2m.internal.qvt.oml.stdlib.QVTUMLReflection;
37
import org.eclipse.m2m.internal.qvt.oml.stdlib.QVTUMLReflection;
38
import org.eclipse.m2m.qvt.oml.ecore.ImperativeOCL.ImperativeOCLPackage;
39
import org.eclipse.ocl.LookupException;
39
import org.eclipse.ocl.LookupException;
40
import org.eclipse.ocl.ecore.CallOperationAction;
40
import org.eclipse.ocl.ecore.CallOperationAction;
41
import org.eclipse.ocl.ecore.CollectionType;
41
import org.eclipse.ocl.ecore.CollectionType;
Lines 44-49 Link Here
44
import org.eclipse.ocl.ecore.EcorePackage;
44
import org.eclipse.ocl.ecore.EcorePackage;
45
import org.eclipse.ocl.ecore.SendSignalAction;
45
import org.eclipse.ocl.ecore.SendSignalAction;
46
import org.eclipse.ocl.expressions.Variable;
46
import org.eclipse.ocl.expressions.Variable;
47
import org.eclipse.ocl.options.ParsingOptions;
47
import org.eclipse.ocl.types.OCLStandardLibrary;
48
import org.eclipse.ocl.types.OCLStandardLibrary;
48
import org.eclipse.ocl.util.OCLStandardLibraryUtil;
49
import org.eclipse.ocl.util.OCLStandardLibraryUtil;
49
import org.eclipse.ocl.util.TypeUtil;
50
import org.eclipse.ocl.util.TypeUtil;
Lines 93-106 Link Here
93
94
94
	protected QvtEnvironmentBase(QvtEnvironmentBase parent) {
95
	protected QvtEnvironmentBase(QvtEnvironmentBase parent) {
95
		super(parent);
96
		super(parent);
97
		setOption(ParsingOptions.USE_BACKSLASH_ESCAPE_PROCESSING, true);
96
	}
98
	}
97
99
98
	protected QvtEnvironmentBase(EPackage.Registry reg, Resource resource) {
100
	protected QvtEnvironmentBase(EPackage.Registry reg, Resource resource) {
99
		super(reg, resource);
101
		super(reg, resource);
102
		setOption(ParsingOptions.USE_BACKSLASH_ESCAPE_PROCESSING, true);
100
	}
103
	}
101
104
102
	protected QvtEnvironmentBase(EPackage.Registry reg) {
105
	protected QvtEnvironmentBase(EPackage.Registry reg) {
103
		super(reg);
106
		super(reg);
107
		setOption(ParsingOptions.USE_BACKSLASH_ESCAPE_PROCESSING, true);
104
	}
108
	}
105
	
109
	
106
	public abstract Module getModuleContextType();	
110
	public abstract Module getModuleContextType();	
(-)src/org/eclipse/m2m/internal/qvt/oml/ast/parser/QvtOperationalVisitorCS.java (-56 lines)
Lines 225-233 Link Here
225
import org.eclipse.ocl.utilities.UMLReflection;
225
import org.eclipse.ocl.utilities.UMLReflection;
226
import org.eclipse.osgi.util.NLS;
226
import org.eclipse.osgi.util.NLS;
227
227
228
import com.ibm.icu.lang.UCharacter;
229
230
231
public class QvtOperationalVisitorCS
228
public class QvtOperationalVisitorCS
232
		extends AbstractOCLAnalyzer<EPackage, EClassifier, EOperation, EStructuralFeature, EEnumLiteral, EParameter, EObject, 
229
		extends AbstractOCLAnalyzer<EPackage, EClassifier, EOperation, EStructuralFeature, EEnumLiteral, EParameter, EObject, 
233
							CallOperationAction, SendSignalAction, Constraint, EClass, EObject> { 	// FIXME - changed in M3.4 migration
230
							CallOperationAction, SendSignalAction, Constraint, EClass, EObject> { 	// FIXME - changed in M3.4 migration
Lines 4454-4510 Link Here
4454
		annotation.getReferences().add(element);
4451
		annotation.getReferences().add(element);
4455
		return annotation;
4452
		return annotation;
4456
	}
4453
	}
4457
4458
	@Override
4459
	protected org.eclipse.ocl.expressions.StringLiteralExp<EClassifier> stringLiteralExpCS(
4460
			StringLiteralExpCS stringLiteralExpCS,
4461
			Environment<EPackage, EClassifier, EOperation, EStructuralFeature, EEnumLiteral, EParameter, EObject, CallOperationAction, SendSignalAction, Constraint, EClass, EObject> env) {
4462
4463
		StringLiteralExp<EClassifier> astNode = oclFactory.createStringLiteralExp();
4464
		initASTMapping(env, astNode, stringLiteralExpCS);
4465
		String stringLiteral = stringLiteralExpCS.getStringSymbol();
4466
		List<String> singlelineStringLiterals = splitMultilineStringLiteral(stringLiteral);
4467
		String[] processedSinglelineStringLiterals = new String[singlelineStringLiterals.size()];
4468
		for (int i = 0; i < processedSinglelineStringLiterals.length; i++) {
4469
			processedSinglelineStringLiterals[i] = processSinglelineStringLiteral(singlelineStringLiterals.get(i));
4470
		}
4471
		StringBuilder stringBuilder = new StringBuilder();
4472
		for (String processedSinglelineStringLiteral : processedSinglelineStringLiterals) {
4473
			stringBuilder.append(processedSinglelineStringLiteral);
4474
		}
4475
		astNode.setStringSymbol(stringBuilder.toString());
4476
		astNode.setType(env.getOCLStandardLibrary().getString());
4477
		
4478
		TRACE("stringLiteralExpCS", "String: " + stringLiteralExpCS.getSymbol());//$NON-NLS-2$//$NON-NLS-1$
4479
			
4480
		return astNode;
4481
	}
4482
4483
	private List<String> splitMultilineStringLiteral(String stringLiteral) {
4484
		List<String> singlelineStringLiterals = new ArrayList<String>();
4485
		char quote = stringLiteral.charAt(0);
4486
		boolean isInQuotes = true;
4487
		int leftIndex = 1;
4488
		for (int i = 1, n = stringLiteral.length(); i < n; i++) {
4489
			char ch = stringLiteral.charAt(i);
4490
			if (isInQuotes) {
4491
				if ((ch == quote)
4492
						&& (stringLiteral.charAt(i - 1) != '\\')) {
4493
						singlelineStringLiterals.add(stringLiteral.substring(leftIndex, i));
4494
						isInQuotes = false;
4495
					}
4496
			} else {
4497
				if (!UCharacter.isWhitespace(ch)) {
4498
					quote = ch;
4499
					leftIndex = i + 1;
4500
					isInQuotes = true;
4501
				}
4502
			}
4503
		}
4504
		return singlelineStringLiterals;
4505
	}
4506
	
4507
	private String processSinglelineStringLiteral(String rawString) {
4508
		return rawString;
4509
	}
4510
}
4454
}

Return to bug 250630