[225493] ewillink cdamus - Provide setOffsets for epsilon productions
diff --git a/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/EssentialOCL.g b/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/EssentialOCL.g
index 83504e2..f160204 100644
--- a/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/EssentialOCL.g
+++ b/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/EssentialOCL.g
@@ -11,10 +11,11 @@
-- * IBM - Initial API and implementation
-- * E.D.Willink - Elimination of some shift-reduce conflicts
-- * E.D.Willink - Remove unnecessary warning suppression
+-- * E.D.Willink - 225493 Need ability to set CSTNode offsets
-- *
-- * </copyright>
-- *
--- * $Id: EssentialOCL.g,v 1.2 2008/01/02 20:12:59 cdamus Exp $
+-- * $Id: EssentialOCL.g,v 1.3 2008/04/03 13:00:10 cdamus Exp $
-- */
--
-- The EssentialOCL Parser
@@ -158,7 +159,20 @@
return null;
}
-
+
+ /**
+ * Initializes a concrete-syntax node's start and end offsets from the
+ * current token in the parser stream.
+ *
+ * @param cstNode a concrete-syntax node
+ *
+ * @since 1.2
+ */
+ protected void setOffsets(CSTNode cstNode) {
+ IToken firstToken = getIToken($getToken(1));
+ cstNode.setStartOffset(firstToken.getStartOffset());
+ cstNode.setEndOffset(firstToken.getEndOffset()-1);
+ }
./
$End
@@ -176,10 +190,11 @@
* IBM - Initial API and implementation
* E.D.Willink - Elimination of some shift-reduce conflicts
* E.D.Willink - Remove unnecessary warning suppression
+ * E.D.Willink - 225493 Need ability to set CSTNode offsets
$copyright_contributions
* </copyright>
*
- * $Id: EssentialOCL.g,v 1.2 2008/01/02 20:12:59 cdamus Exp $
+ * $Id: EssentialOCL.g,v 1.3 2008/04/03 13:00:10 cdamus Exp $
*/
./
$End
diff --git a/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParser.java b/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParser.java
index 3cb859e..5825288 100644
--- a/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParser.java
+++ b/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParser.java
@@ -11,10 +11,11 @@
* IBM - Initial API and implementation
* E.D.Willink - Elimination of some shift-reduce conflicts
* E.D.Willink - Remove unnecessary warning suppression
+* E.D.Willink - 225493 Need ability to set CSTNode offsets
*
* </copyright>
*
-* $Id: OCLParser.java,v 1.2 2008/01/02 20:12:59 cdamus Exp $
+* $Id: OCLParser.java,v 1.3 2008/04/03 13:00:10 cdamus Exp $
*/
package org.eclipse.ocl.parser;
@@ -110,6 +111,20 @@
return null;
}
+
+ /**
+ * Initializes a concrete-syntax node's start and end offsets from the
+ * current token in the parser stream.
+ *
+ * @param cstNode a concrete-syntax node
+ *
+ * @since 1.2
+ */
+ protected void setOffsets(CSTNode cstNode) {
+ IToken firstToken = getIToken(dtParser.getToken(1));
+ cstNode.setStartOffset(firstToken.getStartOffset());
+ cstNode.setEndOffset(firstToken.getEndOffset()-1);
+ }