Index: cst/miscellaneous.g =================================================================== RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.m2m.qvt.oml/plugins/org.eclipse.m2m.qvt.oml.cst.parser/cst/miscellaneous.g,v retrieving revision 1.22 diff -u -r1.22 miscellaneous.g --- cst/miscellaneous.g 12 Feb 2009 16:49:33 -0000 1.22 +++ cst/miscellaneous.g 24 Feb 2009 18:45:58 -0000 @@ -986,15 +986,17 @@ stringLiteralExpCS ::= stringLiteralExpCS STRING_LITERAL /.$BeginJava + IToken literalToken = getIToken($getToken(2)); StringLiteralExpCS result = (StringLiteralExpCS) $getSym(1); - result.setStringSymbol(result.getStringSymbol() + unescape(getIToken(($getToken(2))))); - IToken token = getIToken($getToken(2)); - int tokenLine = token.getLine(); - setOffsets(result, result, token); - IToken prevToken = getParseStream().getTokenAt(token.getTokenIndex() - 1); + result.setSymbol(result.getSymbol() + literalToken.toString()); + result.setStringSymbol(result.getStringSymbol() + literalToken.toString()); + result.setUnescapedStringSymbol(result.getUnescapedStringSymbol() + unescape(literalToken)); + int tokenLine = literalToken.getLine(); + setOffsets(result, result, literalToken); + IToken prevToken = getParseStream().getTokenAt(literalToken.getTokenIndex() - 1); int prevTokenLine = prevToken.getLine(); if (prevTokenLine == tokenLine) { - reportError(lpg.lpgjavaruntime.ParseErrorCodes.INVALID_CODE, "", prevToken.getTokenIndex(), token.getTokenIndex(), "Multiline string literals must be located in different lines!"); //$NON-NLS-1$ //$NON-NLS-2$ + reportError(lpg.lpgjavaruntime.ParseErrorCodes.INVALID_CODE, "", prevToken.getTokenIndex(), literalToken.getTokenIndex(), "Multiline string literals must be located in different lines!"); //$NON-NLS-1$ //$NON-NLS-2$ } $setResult(result); $EndJava Index: cst/EssentialOCL.g =================================================================== RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.m2m.qvt.oml/plugins/org.eclipse.m2m.qvt.oml.cst.parser/cst/EssentialOCL.g,v retrieving revision 1.2 diff -u -r1.2 EssentialOCL.g --- cst/EssentialOCL.g 12 Feb 2009 16:49:33 -0000 1.2 +++ cst/EssentialOCL.g 24 Feb 2009 18:45:58 -0000 @@ -216,6 +216,7 @@ import org.eclipse.ocl.cst.SimpleNameCS; import org.eclipse.ocl.cst.SimpleTypeEnum; import org.eclipse.ocl.cst.StateExpCS; + import org.eclipse.ocl.cst.StringLiteralExpCS; import org.eclipse.ocl.cst.TypeCS; import org.eclipse.ocl.cst.VariableCS; import org.eclipse.ocl.util.OCLStandardLibraryUtil; @@ -1237,8 +1238,10 @@ ./ stringLiteralExpCS ::= STRING_LITERAL /.$BeginJava - CSTNode result = createStringLiteralExpCS(unescape(getIToken(($getToken(1))))); - setOffsets(result, getIToken($getToken(1))); + IToken literalToken = getIToken($getToken(1)); + StringLiteralExpCS result = createStringLiteralExpCS(literalToken.toString()); + result.setUnescapedStringSymbol(unescape(literalToken)); + setOffsets(result, literalToken); $setResult(result); $EndJava ./