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/ocl/lpg/AbstractLexer.java (+2 lines)
Lines 99-104 Link Here
99
	public BasicEnvironment getEnvironment() {
99
	public BasicEnvironment getEnvironment() {
100
		return environment;
100
		return environment;
101
	}
101
	}
102
	
103
    public abstract int [] getKeywordKinds();
102
104
103
	public void lexToTokens(AbstractParser parser) {
105
	public void lexToTokens(AbstractParser parser) {
104
		lexToTokens(null, parser);
106
		lexToTokens(null, parser);
(-)src/org/eclipse/ocl/lpg/AbstractBasicEnvironment.java (+1 lines)
Lines 172-177 Link Here
172
	public void initASTMapping(Object astNode, CSTNode cstNode) {
172
	public void initASTMapping(Object astNode, CSTNode cstNode) {
173
		if ((astNode != null) && (cstNode != null)) {
173
		if ((astNode != null) && (cstNode != null)) {
174
			CSTNode oldCSTNode = getASTNodeToCSTNodeMap().put(astNode, cstNode);
174
			CSTNode oldCSTNode = getASTNodeToCSTNodeMap().put(astNode, cstNode);
175
			cstNode.setAstNode(astNode);
175
			if (oldCSTNode != null && OCLPlugin.shouldTrace(OCLDebugOptions.PARSING)) {
176
			if (oldCSTNode != null && OCLPlugin.shouldTrace(OCLDebugOptions.PARSING)) {
176
				OCLPlugin.trace("Displaced " + oldCSTNode); //$NON-NLS-1$
177
				OCLPlugin.trace("Displaced " + oldCSTNode); //$NON-NLS-1$
177
			}
178
			}
(-)src/org/eclipse/ocl/lpg/LexerTemplateD.g (-1 / +5 lines)
Lines 169-181 Link Here
169
        	return oclEnvironment;
169
        	return oclEnvironment;
170
        }
170
        }
171
171
172
        @Override
172
        public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); }
173
        public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); }
174
173
        public int getLeftSpan() { return lexParser.getFirstToken(); }
175
        public int getLeftSpan() { return lexParser.getFirstToken(); }
174
        public $prs_stream_class getParser() { return parser; }
176
        public $prs_stream_class getParser() { return parser; }
175
        public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); }
177
        public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); }
176
        public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); }
178
        public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); }
177
        public int getRightSpan() { return lexParser.getLastToken(); }
179
        public int getRightSpan() { return lexParser.getLastToken(); }
178
        @Override public int getToken(int i) { return lexParser.getToken(i); }
180
181
        @Override
182
        public int getToken(int i) { return lexParser.getToken(i); }
179
183
180
        @Override
184
        @Override
181
        public void initialize(char [] content, String filename)
185
        public void initialize(char [] content, String filename)
(-)src/org/eclipse/ocl/lpg/AbstractParser.java (-12 / +12 lines)
Lines 127-134 Link Here
127
	 * @param startEnd <code>IToken</code> to retrieve offsets from
127
	 * @param startEnd <code>IToken</code> to retrieve offsets from
128
	 */
128
	 */
129
	protected void setOffsets(CSTNode cstNode, IToken startEnd) {
129
	protected void setOffsets(CSTNode cstNode, IToken startEnd) {
130
		cstNode.setStartOffset(startEnd.getStartOffset());
130
		cstNode.setStartToken(startEnd);
131
		cstNode.setEndOffset(startEnd.getEndOffset());
131
		cstNode.setEndToken(startEnd);
132
	}
132
	}
133
133
134
	/**
134
	/**
Lines 139-146 Link Here
139
	 * @param startEnd <code>CSTNode</code> to retrieve offsets from
139
	 * @param startEnd <code>CSTNode</code> to retrieve offsets from
140
	 */
140
	 */
141
	protected void setOffsets(CSTNode cstNode, CSTNode startEnd) {
141
	protected void setOffsets(CSTNode cstNode, CSTNode startEnd) {
142
		cstNode.setStartOffset(startEnd.getStartOffset());
142
		cstNode.setStartToken(startEnd.getStartToken());
143
		cstNode.setEndOffset(startEnd.getEndOffset());
143
		cstNode.setEndToken(startEnd.getEndToken());
144
	}
144
	}
145
145
146
	/**
146
	/**
Lines 153-160 Link Here
153
	 * @param end <code>CSTNode</code> to retrieve end offset from
153
	 * @param end <code>CSTNode</code> to retrieve end offset from
154
	 */
154
	 */
155
	protected void setOffsets(CSTNode cstNode, CSTNode start, CSTNode end) {
155
	protected void setOffsets(CSTNode cstNode, CSTNode start, CSTNode end) {
156
		cstNode.setStartOffset(start.getStartOffset());
156
		cstNode.setStartToken(start.getStartToken());
157
		cstNode.setEndOffset(end.getEndOffset());
157
		cstNode.setEndToken(end.getEndToken());
158
	}
158
	}
159
159
160
	/**
160
	/**
Lines 167-174 Link Here
167
	 * @param end <code>IToken</code> to retrieve end offset from
167
	 * @param end <code>IToken</code> to retrieve end offset from
168
	 */
168
	 */
169
	protected void setOffsets(CSTNode cstNode, CSTNode start, IToken end) {
169
	protected void setOffsets(CSTNode cstNode, CSTNode start, IToken end) {
170
		cstNode.setStartOffset(start.getStartOffset());
170
		cstNode.setStartToken(start.getStartToken());
171
		cstNode.setEndOffset(end.getEndOffset());
171
		cstNode.setEndToken(end);
172
	}
172
	}
173
173
174
	/**
174
	/**
Lines 181-188 Link Here
181
	 * @param end <code>CSTNode</code> to retrieve end offset from
181
	 * @param end <code>CSTNode</code> to retrieve end offset from
182
	 */
182
	 */
183
	protected void setOffsets(CSTNode cstNode, IToken start, CSTNode end) {
183
	protected void setOffsets(CSTNode cstNode, IToken start, CSTNode end) {
184
		cstNode.setStartOffset(start.getStartOffset());
184
		cstNode.setStartToken(start);
185
		cstNode.setEndOffset(end.getEndOffset());
185
		cstNode.setEndToken(end.getEndToken());
186
	}
186
	}
187
187
188
	/**
188
	/**
Lines 195-202 Link Here
195
	 * @param end <code>IToken</code> to retrieve end offset from
195
	 * @param end <code>IToken</code> to retrieve end offset from
196
	 */
196
	 */
197
	protected void setOffsets(CSTNode cstNode, IToken start, IToken end) {
197
	protected void setOffsets(CSTNode cstNode, IToken start, IToken end) {
198
		cstNode.setStartOffset(start.getStartOffset());
198
		cstNode.setStartToken(start);
199
		cstNode.setEndOffset(end.getEndOffset());
199
		cstNode.setEndToken(end);
200
	}
200
	}
201
201
202
	/**
202
	/**
(-)plugin.xml (+7 lines)
Lines 32-35 Link Here
32
       genModel = "model/OCL.genmodel" /> 
32
       genModel = "model/OCL.genmodel" /> 
33
  </extension>
33
  </extension>
34
34
35
  <extension point="org.eclipse.emf.ecore.generated_package">
36
    <package 
37
       uri = "http://www.eclipse.org/ocl/1.1.0/OCL/CST" 
38
       class = "org.eclipse.ocl.cst.CSTPackage"
39
       genModel = "model/OCLCST.genmodel" /> 
40
  </extension>
41
35
</plugin>
42
</plugin>
(-)src/org/eclipse/ocl/parser/EssentialOCL.g (-7 / +12 lines)
Lines 170-177 Link Here
170
         */
170
         */
171
		protected void setOffsets(CSTNode cstNode) {
171
		protected void setOffsets(CSTNode cstNode) {
172
			IToken firstToken = getIToken($getToken(1));
172
			IToken firstToken = getIToken($getToken(1));
173
			cstNode.setStartOffset(firstToken.getStartOffset());
173
			cstNode.setStartToken(firstToken);
174
			cstNode.setEndOffset(firstToken.getEndOffset()-1);
174
			cstNode.setEndToken(firstToken);
175
		}
175
		}
176
	./
176
	./
177
$End
177
$End
Lines 798-809 Link Here
798
					String simpleName = text.substring(index + 1);
798
					String simpleName = text.substring(index + 1);
799
799
800
					// create the IntegerLiteralExpCS
800
					// create the IntegerLiteralExpCS
801
					int startOffset = getIToken($getToken(1)).getStartOffset();
801
					IToken numericToken = getIToken($getToken(1));
802
					int startOffset = numericToken.getStartOffset();
802
					int endOffset = startOffset + integer.length() - 1; // inclusive
803
					int endOffset = startOffset + integer.length() - 1; // inclusive
803
804
804
					IntegerLiteralExpCS integerLiteralExpCS = createIntegerLiteralExpCS(integer);
805
					IntegerLiteralExpCS integerLiteralExpCS = createIntegerLiteralExpCS(integer);
805
					integerLiteralExpCS.setStartOffset(startOffset);
806
//					integerLiteralExpCS.setStartOffset(startOffset);
806
					integerLiteralExpCS.setEndOffset(endOffset);
807
//					integerLiteralExpCS.setEndOffset(endOffset);
808
					integerLiteralExpCS.setStartToken(numericToken);
809
					integerLiteralExpCS.setEndToken(numericToken);
807
810
808
					startOffset = endOffset + 2; // end of integerLiteral + 1('.') + 1(start of simpleName)
811
					startOffset = endOffset + 2; // end of integerLiteral + 1('.') + 1(start of simpleName)
809
					endOffset = getIToken($getToken(1)).getEndOffset();
812
					endOffset = getIToken($getToken(1)).getEndOffset();
Lines 813-820 Link Here
813
								SimpleTypeEnum.IDENTIFIER_LITERAL,
816
								SimpleTypeEnum.IDENTIFIER_LITERAL,
814
								simpleName
817
								simpleName
815
							);
818
							);
816
					simpleNameCS.setStartOffset(startOffset);
819
//					simpleNameCS.setStartOffset(startOffset);
817
					simpleNameCS.setEndOffset(endOffset);
820
//					simpleNameCS.setEndOffset(endOffset);
821
					simpleNameCS.setStartToken(numericToken);
822
					simpleNameCS.setEndToken(numericToken);
818
823
819
					// create the OperationCallExpCS
824
					// create the OperationCallExpCS
820
					CSTNode result = createOperationCallExpCS(
825
					CSTNode result = createOperationCallExpCS(
(-)model/OCLCST.ecore (-2 / +8 lines)
Lines 5-12 Link Here
5
    nsURI="http://www.eclipse.org/ocl/1.1.0/OCLCST" nsPrefix="ocl">
5
    nsURI="http://www.eclipse.org/ocl/1.1.0/OCLCST" nsPrefix="ocl">
6
  <eSubpackages name="cst" nsURI="http://www.eclipse.org/ocl/1.1.0/OCL/CST" nsPrefix="ocl.cst">
6
  <eSubpackages name="cst" nsURI="http://www.eclipse.org/ocl/1.1.0/OCL/CST" nsPrefix="ocl.cst">
7
    <eClassifiers xsi:type="ecore:EClass" name="CSTNode" abstract="true">
7
    <eClassifiers xsi:type="ecore:EClass" name="CSTNode" abstract="true">
8
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="startOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
8
      <eOperations name="getEndOffset" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
9
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="endOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
9
      <eOperations name="getStartOffset" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
10
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="startToken" eType="#//cst/IToken"/>
11
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="endToken" eType="#//cst/IToken"/>
12
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="astNode" eType="#//cst/Object"
13
          transient="true"/>
10
    </eClassifiers>
14
    </eClassifiers>
11
    <eClassifiers xsi:type="ecore:EClass" name="PackageDeclarationCS" eSuperTypes="#//cst/CSTNode">
15
    <eClassifiers xsi:type="ecore:EClass" name="PackageDeclarationCS" eSuperTypes="#//cst/CSTNode">
12
      <eStructuralFeatures xsi:type="ecore:EReference" name="pathNameCS" eType="#//cst/PathNameCS"
16
      <eStructuralFeatures xsi:type="ecore:EReference" name="pathNameCS" eType="#//cst/PathNameCS"
Lines 300-304 Link Here
300
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sequenceOfNames" upperBound="-1"
303
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sequenceOfNames" upperBound="-1"
301
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
304
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
302
    </eClassifiers>
305
    </eClassifiers>
306
    <eClassifiers xsi:type="ecore:EDataType" name="IToken" instanceClassName="lpg.lpgjavaruntime.IToken"/>
307
    <eClassifiers xsi:type="ecore:EDataType" name="Object" instanceClassName="java.lang.Object"/>
303
  </eSubpackages>
308
  </eSubpackages>
304
</ecore:EPackage>
309
</ecore:EPackage>

Return to bug 242153