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 242153 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/qvt/declarative/parser/AbstractQVTAnalyzer.java (-1 / +1 lines)
Lines 14-20 Link Here
14
import java.util.Comparator;
14
import java.util.Comparator;
15
import java.util.List;
15
import java.util.List;
16
16
17
import lpg.lpgjavaruntime.Monitor;
17
import lpg.runtime.Monitor;
18
18
19
import org.eclipse.emf.common.util.EList;
19
import org.eclipse.emf.common.util.EList;
20
import org.eclipse.emf.ecore.EClass;
20
import org.eclipse.emf.ecore.EClass;
(-)src/org/eclipse/qvt/declarative/parser/environment/CSTRootEnvironment.java (-1 / +1 lines)
Lines 266-272 Link Here
266
	}
266
	}
267
267
268
	public int getCSTErrorTokens() {
268
	public int getCSTErrorTokens() {
269
		return getParser().getErrorTokens();
269
		return getParser().getIPrsStream().getErrorTokens();
270
	}
270
	}
271
	
271
	
272
	public ICSTFileEnvironment getFileEnvironment() {
272
	public ICSTFileEnvironment getFileEnvironment() {
(-)src/org/eclipse/qvt/declarative/parser/environment/ICSTFileEnvironment.java (-2 / +2 lines)
Lines 20-26 Link Here
20
import java.io.Reader;
20
import java.io.Reader;
21
import java.util.Collection;
21
import java.util.Collection;
22
22
23
import lpg.lpgjavaruntime.Monitor;
23
import lpg.runtime.Monitor;
24
24
25
import org.eclipse.core.runtime.CoreException;
25
import org.eclipse.core.runtime.CoreException;
26
import org.eclipse.core.runtime.IProgressMonitor;
26
import org.eclipse.core.runtime.IProgressMonitor;
Lines 34-40 Link Here
34
34
35
public interface ICSTFileEnvironment extends ICSTEnvironment
35
public interface ICSTFileEnvironment extends ICSTEnvironment
36
{
36
{
37
	public ICSTFileAnalyzer<?> createAnalyzer(Monitor monitor);
37
	public ICSTFileAnalyzer<?> getAnalyzer(Monitor monitor, Reader reader, String fileName) throws IOException;
38
	
38
	
39
	public XMIResource getASTResource();
39
	public XMIResource getASTResource();
40
40
(-)src/org/eclipse/qvt/declarative/parser/environment/ICSTFileAnalyzer.java (+7 lines)
Lines 31-37 Link Here
31
31
32
	public AbstractParser getParser();
32
	public AbstractParser getParser();
33
33
34
	/**
35
	 * @param reader
36
	 * @throws IOException
37
	 * @deprecated clients should invoke {@link #reset(Reader, String)}
38
	 */
34
	public void initialize(Reader reader) throws IOException;
39
	public void initialize(Reader reader) throws IOException;
40
	
41
	public void reset(Reader reader, String fileName) throws IOException;
35
42
36
	public void setFileName(String name);
43
	public void setFileName(String name);
37
}
44
}
(-)src/org/eclipse/qvt/declarative/parser/environment/CSTFileEnvironment.java (-8 / +22 lines)
Lines 16-22 Link Here
16
import java.util.ArrayList;
16
import java.util.ArrayList;
17
import java.util.List;
17
import java.util.List;
18
18
19
import lpg.lpgjavaruntime.Monitor;
19
import lpg.runtime.Monitor;
20
20
21
import org.eclipse.core.runtime.CoreException;
21
import org.eclipse.core.runtime.CoreException;
22
import org.eclipse.core.runtime.IProgressMonitor;
22
import org.eclipse.core.runtime.IProgressMonitor;
Lines 42-48 Link Here
42
{
42
{
43
	protected final EPackage.Registry registryToo;
43
	protected final EPackage.Registry registryToo;
44
	protected final XMIResource ast;
44
	protected final XMIResource ast;
45
	protected final AbstractModelResolver resolver;	
45
	protected final AbstractModelResolver resolver;
46
	
47
	private ICSTFileAnalyzer<R> analyzer;
48
	
46
	private TypeResolver<EClassifier, EOperation, EStructuralFeature> typeResolver;	// FIXME Duplicated to support reset
49
	private TypeResolver<EClassifier, EOperation, EStructuralFeature> typeResolver;	// FIXME Duplicated to support reset
47
		// inherited functionality should allow typeResolver to be in CSTRootEnvironment
50
		// inherited functionality should allow typeResolver to be in CSTRootEnvironment
48
51
Lines 63-69 Link Here
63
		this(new EPackageRegistryImpl(), file, resourceSet, astResource);
66
		this(new EPackageRegistryImpl(), file, resourceSet, astResource);
64
	}
67
	}
65
68
66
	public abstract ICSTFileAnalyzer<R> createAnalyzer(Monitor monitor);
69
	public ICSTFileAnalyzer<R> getAnalyzer(Monitor monitor, Reader reader, String fileName) throws IOException {
70
		
71
		if (analyzer == null) {
72
			analyzer = createAnalyzer(monitor, reader, fileName);
73
		} else {
74
			analyzer.reset(reader, null);
75
		}
76
		return analyzer;
77
	}
78
	
79
	protected abstract ICSTFileAnalyzer<R> createAnalyzer(Monitor monitor, Reader reader, String fileName) throws IOException;
67
80
68
	protected abstract R createRootEnvironment(XMIResource ast, CST cst);
81
	protected abstract R createRootEnvironment(XMIResource ast, CST cst);
69
82
Lines 110-134 Link Here
110
123
111
	public ICSTRootEnvironment parse(Reader reader, AbstractFileHandle file, IProgressMonitor monitor) throws IOException, CoreException {
124
	public ICSTRootEnvironment parse(Reader reader, AbstractFileHandle file, IProgressMonitor monitor) throws IOException, CoreException {
112
		Monitor lpgMonitor = new LPGProgressMonitor(monitor);
125
		Monitor lpgMonitor = new LPGProgressMonitor(monitor);
113
		ICSTFileAnalyzer<R> analyzer = createAnalyzer(lpgMonitor);
114
		analyzer.setFileName(file.getName());
115
		if (reader == null)
126
		if (reader == null)
116
			reader = new InputStreamReader(file.getContents());
127
			reader = new InputStreamReader(file.getContents());
117
		else if (!file.exists())
128
		else if (!file.exists())
118
			return null;
129
			return null;
119
		analyzer.initialize(reader);
130
		
131
		ICSTFileAnalyzer<R> analyzer = getAnalyzer(lpgMonitor, reader, file.getName());
132
		// analyzer.initialize(reader);
120
		AbstractParser parser = getParser();
133
		AbstractParser parser = getParser();
121
		if ((monitor != null) && monitor.isCanceled())
134
		if ((monitor != null) && monitor.isCanceled())
122
			return null;
135
			return null;
123
		parser.getLexer().lexToTokens(parser);
136
		parser.getLexer().lexer(parser.getIPrsStream());
124
		if ((monitor != null) && monitor.isCanceled())
137
		if ((monitor != null) && monitor.isCanceled())
125
			return null;
138
			return null;
126
		@SuppressWarnings("unchecked")		// Maybe this should be a generic parameter
139
		@SuppressWarnings("unchecked")		// Maybe this should be a generic parameter
127
		CST cst = (CST) parser.parseTokensToCST(lpgMonitor, -1);
140
		CST cst = (CST) parser.parser(lpgMonitor, -1);
128
		if (cst == null)
141
		if (cst == null)
129
			return null;
142
			return null;
130
		if ((monitor != null) && monitor.isCanceled())
143
		if ((monitor != null) && monitor.isCanceled())
131
			return null;
144
			return null;
145
		
132
		R rootEnvironment;
146
		R rootEnvironment;
133
		try {
147
		try {
134
			reset();
148
			reset();
(-)src/org/eclipse/qvt/declarative/parser/qvt/environment/LPGProgressMonitor.java (-1 / +1 lines)
Lines 10-16 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.qvt.declarative.parser.qvt.environment;
11
package org.eclipse.qvt.declarative.parser.qvt.environment;
12
12
13
import lpg.lpgjavaruntime.Monitor;
13
import lpg.runtime.Monitor;
14
14
15
import org.eclipse.core.runtime.IProgressMonitor;
15
import org.eclipse.core.runtime.IProgressMonitor;
16
16
(-)src/org/eclipse/qvt/declarative/parser/utils/ProblemLog.java (-4 / +7 lines)
Lines 17-22 Link Here
17
import java.util.Map;
17
import java.util.Map;
18
import java.util.Set;
18
import java.util.Set;
19
19
20
import lpg.runtime.IPrsStream;
21
20
import org.eclipse.ocl.lpg.AbstractProblemHandler;
22
import org.eclipse.ocl.lpg.AbstractProblemHandler;
21
import org.eclipse.ocl.lpg.ProblemHandler;
23
import org.eclipse.ocl.lpg.ProblemHandler;
22
import org.eclipse.osgi.util.NLS;
24
import org.eclipse.osgi.util.NLS;
Lines 134-150 Link Here
134
						if (problem.endOffset >= 0) {
136
						if (problem.endOffset >= 0) {
135
							s.append(" : ");
137
							s.append(" : ");
136
							s.append(problem.endOffset);
138
							s.append(problem.endOffset);
137
							if (getParser() != null) {
139
							IPrsStream stream = getParser().getIPrsStream();
138
								int token = getParser().getTokenIndexAtCharacter(problem.startOffset);
140
							if (stream != null) {
141
								int token =stream.getTokenIndexAtCharacter(problem.startOffset);
139
								s.append(" ");
142
								s.append(" ");
140
								try {
143
								try {
141
									s.append(getParser().getLine(token));
144
									s.append(stream.getLine(token));
142
								} catch (ArrayIndexOutOfBoundsException e) {
145
								} catch (ArrayIndexOutOfBoundsException e) {
143
									s.append("???");
146
									s.append("???");
144
								}
147
								}
145
								s.append(":");
148
								s.append(":");
146
								try {
149
								try {
147
									s.append(getParser().getColumn(token));
150
									s.append(stream.getColumn(token));
148
								} catch (ArrayIndexOutOfBoundsException e) {
151
								} catch (ArrayIndexOutOfBoundsException e) {
149
									s.append("???");
152
									s.append("???");
150
								}
153
								}
(-)META-INF/MANIFEST.MF (-2 / +2 lines)
Lines 18-25 Link Here
18
 org.eclipse.qvt.declarative.parser.utils
18
 org.eclipse.qvt.declarative.parser.utils
19
Require-Bundle: org.eclipse.core.runtime,
19
Require-Bundle: org.eclipse.core.runtime,
20
 org.eclipse.emf.ecore;visibility:=reexport,
20
 org.eclipse.emf.ecore;visibility:=reexport,
21
 org.eclipse.ocl;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
21
 org.eclipse.ocl;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
22
 org.eclipse.ocl.ecore;visibility:=reexport,
22
 org.eclipse.ocl.ecore;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
23
 org.eclipse.qvt.declarative.ecore.qvtbase;visibility:=reexport,
23
 org.eclipse.qvt.declarative.ecore.qvtbase;visibility:=reexport,
24
 org.eclipse.qvt.declarative.parser.unresolved;resolution:=optional,
24
 org.eclipse.qvt.declarative.parser.unresolved;resolution:=optional,
25
 org.eclipse.qvt.declarative.modelregistry;visibility:=reexport
25
 org.eclipse.qvt.declarative.modelregistry;visibility:=reexport
(-)src/org/eclipse/qvt/declarative/editor/ocl/ui/imp/OCLParseController.java (-8 / +8 lines)
Lines 17-23 Link Here
17
package org.eclipse.qvt.declarative.editor.ocl.ui.imp;
17
package org.eclipse.qvt.declarative.editor.ocl.ui.imp;
18
18
19
import org.eclipse.ocl.cst.CSTPackage;
19
import org.eclipse.ocl.cst.CSTPackage;
20
import org.eclipse.ocl.parser.backtracking.OCLBacktrackingLexer;
20
import org.eclipse.ocl.parser.backtracking.OCLBacktrackingParsersym;
21
import org.eclipse.qvt.declarative.editor.ocl.ui.OCLCreationFactory;
21
import org.eclipse.qvt.declarative.editor.ocl.ui.OCLCreationFactory;
22
import org.eclipse.qvt.declarative.editor.ui.imp.CommonKeyword;
22
import org.eclipse.qvt.declarative.editor.ui.imp.CommonKeyword;
23
import org.eclipse.qvt.declarative.editor.ui.imp.CommonParseController;
23
import org.eclipse.qvt.declarative.editor.ui.imp.CommonParseController;
Lines 100-118 Link Here
100
100
101
	public TokenKind getTokenKind(int kind) {
101
	public TokenKind getTokenKind(int kind) {
102
		switch (kind) {
102
		switch (kind) {
103
		case OCLBacktrackingLexer.TK_EOF_TOKEN:
103
		case OCLBacktrackingParsersym.TK_EOF_TOKEN:
104
			return TokenKind.EOF;
104
			return TokenKind.EOF;
105
		case OCLBacktrackingLexer.TK_IDENTIFIER:
105
		case OCLBacktrackingParsersym.TK_IDENTIFIER:
106
			return TokenKind.IDENTIFIER;
106
			return TokenKind.IDENTIFIER;
107
		case OCLBacktrackingLexer.TK_INTEGER_LITERAL:
107
		case OCLBacktrackingParsersym.TK_INTEGER_LITERAL:
108
			return TokenKind.INTEGER;
108
			return TokenKind.INTEGER;
109
		case OCLBacktrackingLexer.TK_REAL_LITERAL:
109
		case OCLBacktrackingParsersym.TK_REAL_LITERAL:
110
			return TokenKind.REAL;
110
			return TokenKind.REAL;
111
        case OCLBacktrackingLexer.TK_STRING_LITERAL:
111
        case OCLBacktrackingParsersym.TK_STRING_LITERAL:
112
            return TokenKind.STRING;
112
            return TokenKind.STRING;
113
        case OCLBacktrackingLexer.TK_SINGLE_LINE_COMMENT:
113
        case OCLBacktrackingParsersym.TK_SINGLE_LINE_COMMENT:
114
            return TokenKind.LINE_COMMENT;
114
            return TokenKind.LINE_COMMENT;
115
        case OCLBacktrackingLexer.TK_MULTI_LINE_COMMENT:
115
        case OCLBacktrackingParsersym.TK_MULTI_LINE_COMMENT:
116
            return TokenKind.PARAGRAPH_COMMENT;
116
            return TokenKind.PARAGRAPH_COMMENT;
117
		default:
117
		default:
118
			if (isKeyword(kind))
118
			if (isKeyword(kind))
(-)src/org/eclipse/qvt/declarative/parser/ocl/OCLFileAnalyzer.java (-3 / +5 lines)
Lines 16-25 Link Here
16
 */
16
 */
17
package org.eclipse.qvt.declarative.parser.ocl;
17
package org.eclipse.qvt.declarative.parser.ocl;
18
18
19
import java.io.IOException;
20
import java.io.Reader;
19
import java.util.ArrayList;
21
import java.util.ArrayList;
20
import java.util.List;
22
import java.util.List;
21
23
22
import lpg.lpgjavaruntime.Monitor;
24
import lpg.runtime.Monitor;
23
25
24
import org.eclipse.emf.ecore.EClass;
26
import org.eclipse.emf.ecore.EClass;
25
import org.eclipse.emf.ecore.EClassifier;
27
import org.eclipse.emf.ecore.EClassifier;
Lines 52-59 Link Here
52
	private OCLTopLevelEnvironment topLevelEnvironment = null;
54
	private OCLTopLevelEnvironment topLevelEnvironment = null;
53
	private EClass iteratorsClass = null;
55
	private EClass iteratorsClass = null;
54
56
55
	public OCLFileAnalyzer(OCLFileEnvironment environment, Monitor monitor) {
57
	public OCLFileAnalyzer(OCLFileEnvironment environment, Monitor monitor, Reader reader, String fileName) throws IOException {
56
		super(new OCLBacktrackingParser(new OCLBacktrackingLexer(environment)));
58
		super(new OCLBacktrackingParser(new OCLBacktrackingLexer(environment, reader, fileName)));
57
		this.monitor = monitor;
59
		this.monitor = monitor;
58
	}
60
	}
59
61
(-)src/org/eclipse/qvt/declarative/parser/ocl/environment/OCLFileEnvironment.java (-4 / +7 lines)
Lines 16-27 Link Here
16
 */
16
 */
17
package org.eclipse.qvt.declarative.parser.ocl.environment;
17
package org.eclipse.qvt.declarative.parser.ocl.environment;
18
18
19
import java.io.IOException;
20
import java.io.Reader;
19
import java.util.ArrayList;
21
import java.util.ArrayList;
20
import java.util.Collection;
22
import java.util.Collection;
21
import java.util.List;
23
import java.util.List;
22
24
23
import lpg.lpgjavaruntime.IToken;
25
import lpg.runtime.IToken;
24
import lpg.lpgjavaruntime.Monitor;
26
import lpg.runtime.Monitor;
25
27
26
import org.eclipse.emf.common.notify.Notifier;
28
import org.eclipse.emf.common.notify.Notifier;
27
import org.eclipse.emf.ecore.EClass;
29
import org.eclipse.emf.ecore.EClass;
Lines 115-122 Link Here
115
	}
117
	}
116
118
117
	@Override
119
	@Override
118
	public OCLFileAnalyzer createAnalyzer(Monitor monitor) {
120
	protected OCLFileAnalyzer createAnalyzer(
119
		return new OCLFileAnalyzer(this, monitor);
121
			Monitor monitor, Reader reader, String fileName) throws IOException {
122
		return new OCLFileAnalyzer(this, monitor, reader, fileName);
120
	}
123
	}
121
124
122
	@Override
125
	@Override
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseResult.java (-7 / +7 lines)
Lines 22-30 Link Here
22
import java.util.Iterator;
22
import java.util.Iterator;
23
import java.util.List;
23
import java.util.List;
24
24
25
import lpg.lpgjavaruntime.ErrorToken;
25
import lpg.runtime.ErrorToken;
26
import lpg.lpgjavaruntime.IToken;
26
import lpg.runtime.IPrsStream;
27
import lpg.lpgjavaruntime.PrsStream;
27
import lpg.runtime.IToken;
28
28
29
import org.eclipse.core.runtime.CoreException;
29
import org.eclipse.core.runtime.CoreException;
30
import org.eclipse.core.runtime.IProgressMonitor;
30
import org.eclipse.core.runtime.IProgressMonitor;
Lines 59-65 Link Here
59
59
60
	static final class TokenIterator implements Iterator<IToken>
60
	static final class TokenIterator implements Iterator<IToken>
61
	{
61
	{
62
		final PrsStream stream;
62
		final IPrsStream stream;
63
		final int firstTokIdx;
63
		final int firstTokIdx;
64
		final int lastTokIdx;
64
		final int lastTokIdx;
65
		int curTokIdx; // skip bogus initial token
65
		int curTokIdx; // skip bogus initial token
Lines 81-87 Link Here
81
		private boolean finalTokenReturned;
81
		private boolean finalTokenReturned;
82
		private boolean finalAdjunctsReturned;
82
		private boolean finalAdjunctsReturned;
83
83
84
		private TokenIterator(PrsStream stream, int regionEnd, int regionOffset) {
84
		private TokenIterator(IPrsStream stream, int regionEnd, int regionOffset) {
85
			this.stream = stream;
85
			this.stream = stream;
86
			firstTokIdx = getTokenIndexAtCharacter(regionOffset);
86
			firstTokIdx = getTokenIndexAtCharacter(regionOffset);
87
			curTokIdx = Math.max(1, firstTokIdx);
87
			curTokIdx = Math.max(1, firstTokIdx);
Lines 270-276 Link Here
270
	}
270
	}
271
271
272
	public String getTextRange(int start, int length) {
272
	public String getTextRange(int start, int length) {
273
		return new String(getLexer().getInputChars(), start, length);
273
		return new String(getLexer().getILexStream().getInputChars(), start, length);
274
	}
274
	}
275
275
276
	protected int[] getKeywordKinds() {
276
	protected int[] getKeywordKinds() {
Lines 309-315 Link Here
309
        int regionOffset= region.getOffset();
309
        int regionOffset= region.getOffset();
310
        int regionLength= region.getLength();
310
        int regionLength= region.getLength();
311
    	int regionEnd = regionOffset + regionLength - 1;
311
    	int regionEnd = regionOffset + regionLength - 1;
312
		PrsStream stream =  getParser();
312
		IPrsStream stream =  getParser().getIPrsStream();
313
		if (stream != null)
313
		if (stream != null)
314
			return new TokenIterator(stream, regionEnd, regionOffset);
314
			return new TokenIterator(stream, regionEnd, regionOffset);
315
		else
315
		else
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonContentProposals.java (-4 / +4 lines)
Lines 25-32 Link Here
25
import java.util.Map;
25
import java.util.Map;
26
import java.util.Set;
26
import java.util.Set;
27
27
28
import lpg.lpgjavaruntime.ErrorToken;
28
import lpg.runtime.ErrorToken;
29
import lpg.lpgjavaruntime.IToken;
29
import lpg.runtime.IToken;
30
30
31
import org.eclipse.emf.common.util.TreeIterator;
31
import org.eclipse.emf.common.util.TreeIterator;
32
import org.eclipse.emf.ecore.EClass;
32
import org.eclipse.emf.ecore.EClass;
Lines 45-51 Link Here
45
import org.eclipse.ocl.cst.PathNameCS;
45
import org.eclipse.ocl.cst.PathNameCS;
46
import org.eclipse.ocl.cst.SimpleNameCS;
46
import org.eclipse.ocl.cst.SimpleNameCS;
47
import org.eclipse.ocl.expressions.StringLiteralExp;
47
import org.eclipse.ocl.expressions.StringLiteralExp;
48
import org.eclipse.ocl.lpg.AbstractParser;
48
import org.eclipse.ocl.lpg.OCLParserStream;
49
import org.eclipse.qvt.declarative.ecore.utils.EcoreUtils;
49
import org.eclipse.qvt.declarative.ecore.utils.EcoreUtils;
50
import org.eclipse.qvt.declarative.ecore.utils.TracingOption;
50
import org.eclipse.qvt.declarative.ecore.utils.TracingOption;
51
import org.eclipse.qvt.declarative.editor.ui.QVTEditorPlugin;
51
import org.eclipse.qvt.declarative.editor.ui.QVTEditorPlugin;
Lines 370-376 Link Here
370
	}
370
	}
371
	
371
	
372
	protected IToken getToken() {
372
	protected IToken getToken() {
373
		AbstractParser stream = parseResult.getParser();
373
		OCLParserStream stream = parseResult.getParser().getIPrsStream();
374
		IToken errorToken = stream.getErrorTokenAtCharacter(offset);
374
		IToken errorToken = stream.getErrorTokenAtCharacter(offset);
375
		if (errorToken != null)
375
		if (errorToken != null)
376
			return errorToken;
376
			return errorToken;
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonTokenColorer.java (-1 / +7 lines)
Lines 16-22 Link Here
16
 */
16
 */
17
package org.eclipse.qvt.declarative.editor.ui.imp;
17
package org.eclipse.qvt.declarative.editor.ui.imp;
18
18
19
import lpg.lpgjavaruntime.IToken;
19
import lpg.runtime.IToken;
20
20
21
import org.eclipse.imp.parser.IParseController;
21
import org.eclipse.imp.parser.IParseController;
22
import org.eclipse.imp.services.ITokenColorer;
22
import org.eclipse.imp.services.ITokenColorer;
Lines 73-76 Link Here
73
			return super.getColoring(controller, token);
73
			return super.getColoring(controller, token);
74
		}
74
		}
75
	}
75
	}
76
77
	public TextAttribute getInterColoring(IParseController controller,
78
			Object prevToken, Object nextToken) {
79
		// TODO Auto-generated method stub
80
		return null;
81
	}
76
}
82
}
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonSourcePositionLocator.java (-1 / +1 lines)
Lines 16-22 Link Here
16
 */
16
 */
17
package org.eclipse.qvt.declarative.editor.ui.imp;
17
package org.eclipse.qvt.declarative.editor.ui.imp;
18
18
19
import lpg.lpgjavaruntime.IToken;
19
import lpg.runtime.IToken;
20
20
21
import org.eclipse.core.runtime.IPath;
21
import org.eclipse.core.runtime.IPath;
22
import org.eclipse.core.runtime.Path;
22
import org.eclipse.core.runtime.Path;
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseController.java (-1 / +1 lines)
Lines 33-39 Link Here
33
import java.util.Iterator;
33
import java.util.Iterator;
34
import java.util.List;
34
import java.util.List;
35
35
36
import lpg.lpgjavaruntime.IToken;
36
import lpg.runtime.IToken;
37
37
38
import org.eclipse.core.resources.IProject;
38
import org.eclipse.core.resources.IProject;
39
import org.eclipse.core.runtime.CoreException;
39
import org.eclipse.core.runtime.CoreException;
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonFoldingUpdater.java (-8 / +8 lines)
Lines 20-29 Link Here
20
import java.util.HashMap;
20
import java.util.HashMap;
21
import java.util.List;
21
import java.util.List;
22
22
23
import lpg.lpgjavaruntime.Adjunct;
23
import lpg.runtime.Adjunct;
24
import lpg.lpgjavaruntime.IToken;
24
import lpg.runtime.ILexStream;
25
import lpg.lpgjavaruntime.LexStream;
25
import lpg.runtime.IPrsStream;
26
import lpg.lpgjavaruntime.PrsStream;
26
import lpg.runtime.IToken;
27
27
28
import org.eclipse.imp.services.base.FolderBase;
28
import org.eclipse.imp.services.base.FolderBase;
29
import org.eclipse.jface.text.Position;
29
import org.eclipse.jface.text.Position;
Lines 62-73 Link Here
62
		}
62
		}
63
	};
63
	};
64
64
65
	protected PrsStream prsStream = null;
65
	protected IPrsStream prsStream = null;
66
66
67
	protected abstract ICommonPlugin getPlugin();
67
	protected abstract ICommonPlugin getPlugin();
68
68
69
	protected void makeAdjunctAnnotations(CSTNode theAST) {
69
	protected void makeAdjunctAnnotations(CSTNode theAST) {
70
		LexStream lexStream = prsStream.getLexStream();
70
		ILexStream lexStream = prsStream.getILexStream();
71
		if (lexStream == null)
71
		if (lexStream == null)
72
			return;
72
			return;
73
		@SuppressWarnings("unchecked")
73
		@SuppressWarnings("unchecked")
Lines 106-112 Link Here
106
			IToken gate_token = adjuncts.length == 0 ? next_token : adjuncts[0];
106
			IToken gate_token = adjuncts.length == 0 ? next_token : adjuncts[0];
107
			makeAnnotationWithOffsets(first_token.getStartOffset(), gate_token
107
			makeAnnotationWithOffsets(first_token.getStartOffset(), gate_token
108
					.getLine() > last_token.getEndLine() ? prsStream
108
					.getLine() > last_token.getEndLine() ? prsStream
109
					.getLexStream().getLineOffset(gate_token.getLine() - 1)
109
					.getILexStream().getLineOffset(gate_token.getLine() - 1)
110
					: last_token.getEndOffset());
110
					: last_token.getEndOffset());
111
		}
111
		}
112
	}
112
	}
Lines 127-133 Link Here
127
		if (theCST != null) {
127
		if (theCST != null) {
128
			IToken startToken = theCST.getStartToken();
128
			IToken startToken = theCST.getStartToken();
129
			if (startToken != null) {
129
			if (startToken != null) {
130
				prsStream = startToken.getPrsStream();
130
				prsStream = startToken.getIPrsStream();
131
				FoldingCSTVisitor visitor = new FoldingCSTVisitor(getPlugin().getEditorDefinition());
131
				FoldingCSTVisitor visitor = new FoldingCSTVisitor(getPlugin().getEditorDefinition());
132
				visitor.enter(theCST);
132
				visitor.enter(theCST);
133
				makeAdjunctAnnotations(theCST);
133
				makeAdjunctAnnotations(theCST);
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseHelper.java (-1 / +1 lines)
Lines 39-45 Link Here
39
        keywords = new ArrayList<ICommonKeyword>();
39
        keywords = new ArrayList<ICommonKeyword>();
40
        int[] keywordKinds= parser.getLexer().getKeywordKinds();
40
        int[] keywordKinds= parser.getLexer().getKeywordKinds();
41
        for(int i= 1; i < keywordKinds.length; i++) {
41
        for(int i= 1; i < keywordKinds.length; i++) {
42
            int index= parser.mapKind(keywordKinds[i]);
42
            int index= parser.getIPrsStream().mapKind(keywordKinds[i]);
43
            fIsKeyword[index]= true;
43
            fIsKeyword[index]= true;
44
            keywords.add(createKeyword(tokenKindNames[index]));
44
            keywords.add(createKeyword(tokenKindNames[index]));
45
        }
45
        }
(-)src/org/eclipse/qvt/declarative/editor/ui/imp/CommonProblemHandler.java (-2 / +3 lines)
Lines 16-22 Link Here
16
 */
16
 */
17
package org.eclipse.qvt.declarative.editor.ui.imp;
17
package org.eclipse.qvt.declarative.editor.ui.imp;
18
18
19
import lpg.lpgjavaruntime.IToken;
19
import lpg.runtime.IPrsStream;
20
import lpg.runtime.IToken;
20
21
21
import org.eclipse.core.resources.IMarker;
22
import org.eclipse.core.resources.IMarker;
22
import org.eclipse.imp.parser.IMessageHandler;
23
import org.eclipse.imp.parser.IMessageHandler;
Lines 42-48 Link Here
42
	}
43
	}
43
44
44
	public IToken getNearestTokenAtCharacter(int offset) {		// FIXME Move to AbstractParser
45
	public IToken getNearestTokenAtCharacter(int offset) {		// FIXME Move to AbstractParser
45
        AbstractParser parser = getParser();
46
        IPrsStream parser = getParser().getIPrsStream();
46
        int maxIndex = parser.getSize();
47
        int maxIndex = parser.getSize();
47
        if (maxIndex <= 0)
48
        if (maxIndex <= 0)
48
        	return null;
49
        	return null;
(-)src/org/eclipse/qvt/declarative/editor/ui/utils/EditorModelUtils.java (-5 / +5 lines)
Lines 16-24 Link Here
16
 */
16
 */
17
package org.eclipse.qvt.declarative.editor.ui.utils;
17
package org.eclipse.qvt.declarative.editor.ui.utils;
18
18
19
import lpg.lpgjavaruntime.IToken;
19
import lpg.runtime.ILexStream;
20
import lpg.lpgjavaruntime.LexStream;
20
import lpg.runtime.IPrsStream;
21
import lpg.lpgjavaruntime.PrsStream;
21
import lpg.runtime.IToken;
22
22
23
import org.eclipse.ocl.cst.CSTNode;
23
import org.eclipse.ocl.cst.CSTNode;
24
24
Lines 28-37 Link Here
28
		IToken token = cstNode.getStartToken();
28
		IToken token = cstNode.getStartToken();
29
		if (token == null)
29
		if (token == null)
30
			return null;
30
			return null;
31
		PrsStream prsStream = token.getPrsStream();
31
		IPrsStream prsStream = token.getIPrsStream();
32
		if (prsStream == null)
32
		if (prsStream == null)
33
			return null;
33
			return null;
34
		LexStream lexStream = prsStream.getLexStream();
34
		ILexStream lexStream = prsStream.getILexStream();
35
		if (lexStream == null)
35
		if (lexStream == null)
36
			return null;
36
			return null;
37
		return lexStream.getFileName();
37
		return lexStream.getFileName();
(-)src/org/eclipse/qvt/declarative/editor/ui/builder/MarkerProblemHandler.java (-2 / +5 lines)
Lines 22-27 Link Here
22
import java.util.Map;
22
import java.util.Map;
23
import java.util.Set;
23
import java.util.Set;
24
24
25
import lpg.runtime.IPrsStream;
26
25
import org.eclipse.core.resources.IMarker;
27
import org.eclipse.core.resources.IMarker;
26
import org.eclipse.core.resources.IResource;
28
import org.eclipse.core.resources.IResource;
27
import org.eclipse.core.resources.IWorkspace;
29
import org.eclipse.core.resources.IWorkspace;
Lines 172-180 Link Here
172
			String problemMessage, String processingContext, int startOffset, int endOffset) {
174
			String problemMessage, String processingContext, int startOffset, int endOffset) {
173
		int line = -1;
175
		int line = -1;
174
		if (startOffset >= 0) {
176
		if (startOffset >= 0) {
175
			int leftToken = Math.abs(getParser().getTokenIndexAtCharacter(startOffset));	// abs to move non-token to predecessor
177
			IPrsStream stream = getParser().getIPrsStream();
178
			int leftToken = Math.abs(stream.getTokenIndexAtCharacter(startOffset));	// abs to move non-token to predecessor
176
			if (leftToken >= 0)
179
			if (leftToken >= 0)
177
				line = getParser().getLine(leftToken);
180
				line = stream.getLine(leftToken);
178
		}
181
		}
179
		Integer severity = severityMap.get(problemSeverity);
182
		Integer severity = severityMap.get(problemSeverity);
180
		addMarker(severity != null ? severity.intValue() : IMarker.SEVERITY_ERROR,
183
		addMarker(severity != null ? severity.intValue() : IMarker.SEVERITY_ERROR,

Return to bug 242153