Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 146213 Details for
Bug 242153
[parser] Modification to support IMP and exploit LPG 2
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
provided patch
ocl242153_try3_a.patch (text/plain), 802.61 KB, created by
Adolfo Sanchez-Barbudo Herrera
on 2009-09-01 13:32:50 EDT
(
hide
)
Description:
provided patch
Filename:
MIME Type:
Creator:
Adolfo Sanchez-Barbudo Herrera
Created:
2009-09-01 13:32:50 EDT
Size:
802.61 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ocl >Index: src/org/eclipse/ocl/expressions/impl/BooleanLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/BooleanLiteralExpImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 BooleanLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/BooleanLiteralExpImpl.java 23 Jan 2009 17:16:03 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/BooleanLiteralExpImpl.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/UnlimitedNaturalLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/UnlimitedNaturalLiteralExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 UnlimitedNaturalLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/UnlimitedNaturalLiteralExpImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/UnlimitedNaturalLiteralExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,13 +18,11 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >-import org.eclipse.emf.common.notify.Notification; > >+import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >- > import org.eclipse.emf.ecore.impl.ENotificationImpl; >- > import org.eclipse.ocl.expressions.ExpressionsPackage; > import org.eclipse.ocl.expressions.UnlimitedNaturalLiteralExp; > import org.eclipse.ocl.expressions.operations.UnlimitedNaturalLiteralExpOperations; >Index: src/org/eclipse/ocl/expressions/impl/OCLExpressionImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/OCLExpressionImpl.java,v >retrieving revision 1.10 >diff -u -r1.10 OCLExpressionImpl.java >--- src/org/eclipse/ocl/expressions/impl/OCLExpressionImpl.java 23 Jan 2009 17:16:04 -0000 1.10 >+++ src/org/eclipse/ocl/expressions/impl/OCLExpressionImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -23,8 +23,6 @@ > import org.eclipse.emf.ecore.impl.EObjectImpl; > import org.eclipse.ocl.expressions.ExpressionsPackage; > import org.eclipse.ocl.expressions.OCLExpression; >- >-//import org.eclipse.ocl.expressions.operations.OCLExpressionOperations; > import org.eclipse.ocl.util.ToStringVisitor; > import org.eclipse.ocl.utilities.ASTNode; > import org.eclipse.ocl.utilities.UtilitiesPackage; >Index: src/org/eclipse/ocl/expressions/impl/IfExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/IfExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 IfExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/IfExpImpl.java 23 Jan 2009 17:16:03 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/IfExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/PropertyCallExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/PropertyCallExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 PropertyCallExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/PropertyCallExpImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/PropertyCallExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/EnumLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/EnumLiteralExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 EnumLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/EnumLiteralExpImpl.java 23 Jan 2009 17:16:03 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/EnumLiteralExpImpl.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/CollectionLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/CollectionLiteralExpImpl.java,v >retrieving revision 1.9 >diff -u -r1.9 CollectionLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/CollectionLiteralExpImpl.java 25 Jun 2009 19:23:52 -0000 1.9 >+++ src/org/eclipse/ocl/expressions/impl/CollectionLiteralExpImpl.java 1 Sep 2009 17:10:44 -0000 >@@ -18,8 +18,8 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Collection; >- > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/IteratorExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/IteratorExpImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 IteratorExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/IteratorExpImpl.java 23 Jan 2009 17:16:03 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/IteratorExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.ocl.expressions.ExpressionsPackage; >Index: src/org/eclipse/ocl/expressions/impl/CollectionLiteralPartImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/CollectionLiteralPartImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 CollectionLiteralPartImpl.java >--- src/org/eclipse/ocl/expressions/impl/CollectionLiteralPartImpl.java 24 Nov 2008 00:22:42 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/CollectionLiteralPartImpl.java 1 Sep 2009 17:10:44 -0000 >@@ -21,8 +21,6 @@ > import org.eclipse.emf.ecore.impl.EObjectImpl; > import org.eclipse.ocl.expressions.CollectionLiteralPart; > import org.eclipse.ocl.expressions.ExpressionsPackage; >- >-//import org.eclipse.ocl.expressions.operations.CollectionLiteralPartOperations; > import org.eclipse.ocl.utilities.Visitor; > > /** >Index: src/org/eclipse/ocl/expressions/impl/CollectionItemImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/CollectionItemImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 CollectionItemImpl.java >--- src/org/eclipse/ocl/expressions/impl/CollectionItemImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/CollectionItemImpl.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/MessageExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/MessageExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 MessageExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/MessageExpImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/MessageExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,8 +18,8 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Collection; >- > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/VariableExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/VariableExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 VariableExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/VariableExpImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/VariableExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/OperationCallExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/OperationCallExpImpl.java,v >retrieving revision 1.10 >diff -u -r1.10 OperationCallExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/OperationCallExpImpl.java 25 Jun 2009 19:23:52 -0000 1.10 >+++ src/org/eclipse/ocl/expressions/impl/OperationCallExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,8 +18,8 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Collection; >- > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/IntegerLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/IntegerLiteralExpImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 IntegerLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/IntegerLiteralExpImpl.java 23 Jan 2009 17:16:04 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/IntegerLiteralExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/RealLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/RealLiteralExpImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 RealLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/RealLiteralExpImpl.java 23 Jan 2009 17:16:03 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/RealLiteralExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/CollectionRangeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/CollectionRangeImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 CollectionRangeImpl.java >--- src/org/eclipse/ocl/expressions/impl/CollectionRangeImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/CollectionRangeImpl.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/StringLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/StringLiteralExpImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 StringLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/StringLiteralExpImpl.java 23 Jan 2009 17:16:03 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/StringLiteralExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/expressions/impl/TupleLiteralPartImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/TupleLiteralPartImpl.java,v >retrieving revision 1.10 >diff -u -r1.10 TupleLiteralPartImpl.java >--- src/org/eclipse/ocl/expressions/impl/TupleLiteralPartImpl.java 23 Jan 2009 17:16:03 -0000 1.10 >+++ src/org/eclipse/ocl/expressions/impl/TupleLiteralPartImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/TupleLiteralExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/TupleLiteralExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 TupleLiteralExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/TupleLiteralExpImpl.java 23 Jan 2009 17:16:03 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/TupleLiteralExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,8 +18,8 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Collection; >- > import java.util.Map; >+ > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; >Index: src/org/eclipse/ocl/expressions/impl/ExpressionsFactoryImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/ExpressionsFactoryImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 ExpressionsFactoryImpl.java >--- src/org/eclipse/ocl/expressions/impl/ExpressionsFactoryImpl.java 12 Oct 2008 01:09:49 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/impl/ExpressionsFactoryImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -23,8 +23,6 @@ > import org.eclipse.emf.ecore.EPackage; > import org.eclipse.emf.ecore.impl.EFactoryImpl; > import org.eclipse.emf.ecore.plugin.EcorePlugin; >- >-//import org.eclipse.ocl.expressions.*; > import org.eclipse.ocl.expressions.AssociationClassCallExp; > import org.eclipse.ocl.expressions.BooleanLiteralExp; > import org.eclipse.ocl.expressions.CollectionItem; >Index: src/org/eclipse/ocl/expressions/impl/IterateExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/IterateExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 IterateExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/IterateExpImpl.java 23 Jan 2009 17:16:03 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/IterateExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/VariableImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/VariableImpl.java,v >retrieving revision 1.10 >diff -u -r1.10 VariableImpl.java >--- src/org/eclipse/ocl/expressions/impl/VariableImpl.java 23 Jan 2009 17:16:04 -0000 1.10 >+++ src/org/eclipse/ocl/expressions/impl/VariableImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/LetExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/LetExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 LetExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/LetExpImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/LetExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/expressions/impl/LoopExpImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/impl/LoopExpImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 LoopExpImpl.java >--- src/org/eclipse/ocl/expressions/impl/LoopExpImpl.java 12 Oct 2008 01:09:49 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/impl/LoopExpImpl.java 1 Sep 2009 17:10:45 -0000 >@@ -18,8 +18,8 @@ > package org.eclipse.ocl.expressions.impl; > > import java.util.Collection; >- > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.DiagnosticChain; >Index: src/org/eclipse/ocl/types/operations/InvalidTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/InvalidTypeOperations.java,v >retrieving revision 1.1 >diff -u -r1.1 InvalidTypeOperations.java >--- src/org/eclipse/ocl/types/operations/InvalidTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.1 >+++ src/org/eclipse/ocl/types/operations/InvalidTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.types.operations; > > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.InvalidType; > > /** >Index: src/org/eclipse/ocl/types/operations/CollectionTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/CollectionTypeOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 CollectionTypeOperations.java >--- src/org/eclipse/ocl/types/operations/CollectionTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.3 >+++ src/org/eclipse/ocl/types/operations/CollectionTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -23,10 +23,8 @@ > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.CollectionType; >- > import org.eclipse.ocl.types.util.TypesValidator; > import org.eclipse.ocl.util.OCLUtil; > >Index: src/org/eclipse/ocl/types/operations/VoidTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/VoidTypeOperations.java,v >retrieving revision 1.1 >diff -u -r1.1 VoidTypeOperations.java >--- src/org/eclipse/ocl/types/operations/VoidTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.1 >+++ src/org/eclipse/ocl/types/operations/VoidTypeOperations.java 1 Sep 2009 17:10:52 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.types.operations; > > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.VoidType; > > /** >Index: src/org/eclipse/ocl/types/operations/PrimitiveTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/PrimitiveTypeOperations.java,v >retrieving revision 1.1 >diff -u -r1.1 PrimitiveTypeOperations.java >--- src/org/eclipse/ocl/types/operations/PrimitiveTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.1 >+++ src/org/eclipse/ocl/types/operations/PrimitiveTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.types.operations; > > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.PrimitiveType; > > /** >Index: src/org/eclipse/ocl/types/operations/MessageTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/MessageTypeOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 MessageTypeOperations.java >--- src/org/eclipse/ocl/types/operations/MessageTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.3 >+++ src/org/eclipse/ocl/types/operations/MessageTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -23,9 +23,7 @@ > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.MessageType; >- > import org.eclipse.ocl.types.util.TypesValidator; > > /** >Index: src/org/eclipse/ocl/types/operations/SequenceTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/SequenceTypeOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 SequenceTypeOperations.java >--- src/org/eclipse/ocl/types/operations/SequenceTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.4 >+++ src/org/eclipse/ocl/types/operations/SequenceTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.SequenceType; >- > import org.eclipse.ocl.types.util.TypesValidator; > import org.eclipse.ocl.util.OCLUtil; > >Index: src/org/eclipse/ocl/types/operations/BagTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/BagTypeOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 BagTypeOperations.java >--- src/org/eclipse/ocl/types/operations/BagTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.3 >+++ src/org/eclipse/ocl/types/operations/BagTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.BagType; >- > import org.eclipse.ocl.types.util.TypesValidator; > import org.eclipse.ocl.util.OCLUtil; > >Index: src/org/eclipse/ocl/types/operations/SetTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/SetTypeOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 SetTypeOperations.java >--- src/org/eclipse/ocl/types/operations/SetTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.3 >+++ src/org/eclipse/ocl/types/operations/SetTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.SetType; >- > import org.eclipse.ocl.types.util.TypesValidator; > import org.eclipse.ocl.util.OCLUtil; > >Index: src/org/eclipse/ocl/types/operations/TypeTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/TypeTypeOperations.java,v >retrieving revision 1.1 >diff -u -r1.1 TypeTypeOperations.java >--- src/org/eclipse/ocl/types/operations/TypeTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.1 >+++ src/org/eclipse/ocl/types/operations/TypeTypeOperations.java 1 Sep 2009 17:10:52 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.types.operations; > > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.TypeType; > > /** >Index: src/org/eclipse/ocl/types/operations/AnyTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/AnyTypeOperations.java,v >retrieving revision 1.1 >diff -u -r1.1 AnyTypeOperations.java >--- src/org/eclipse/ocl/types/operations/AnyTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.1 >+++ src/org/eclipse/ocl/types/operations/AnyTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.types.operations; > > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.AnyType; > > /** >Index: src/org/eclipse/ocl/types/operations/TupleTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/TupleTypeOperations.java,v >retrieving revision 1.2 >diff -u -r1.2 TupleTypeOperations.java >--- src/org/eclipse/ocl/types/operations/TupleTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.2 >+++ src/org/eclipse/ocl/types/operations/TupleTypeOperations.java 1 Sep 2009 17:10:52 -0000 >@@ -23,9 +23,7 @@ > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.ocl.types.TupleType; >- > import org.eclipse.ocl.types.util.TypesValidator; > > /** >Index: src/org/eclipse/ocl/types/operations/OrderedSetTypeOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/operations/OrderedSetTypeOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 OrderedSetTypeOperations.java >--- src/org/eclipse/ocl/types/operations/OrderedSetTypeOperations.java 12 Oct 2008 01:09:48 -0000 1.3 >+++ src/org/eclipse/ocl/types/operations/OrderedSetTypeOperations.java 1 Sep 2009 17:10:51 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.OrderedSetType; >- > import org.eclipse.ocl.types.util.TypesValidator; > import org.eclipse.ocl.util.OCLUtil; > >Index: src/org/eclipse/ocl/OCL.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/OCL.java,v >retrieving revision 1.10 >diff -u -r1.10 OCL.java >--- src/org/eclipse/ocl/OCL.java 25 Jun 2009 19:23:52 -0000 1.10 >+++ src/org/eclipse/ocl/OCL.java 1 Sep 2009 17:10:41 -0000 >@@ -275,7 +275,7 @@ > rootEnvironment, contentAsString.toCharArray()); > OCLBacktrackingParser parser = new OCLBacktrackingParser(lexer); > parser.setDefaultRepairCount(parserRepairCount); >- lexer.lexToTokens(parser); >+ lexer.lexer(parser.getIPrsStream()); > analyzer = new OCLAnalyzer<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E>( > parser); > } else { >Index: src/org/eclipse/ocl/expressions/PropertyCallExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/PropertyCallExp.java,v >retrieving revision 1.7 >diff -u -r1.7 PropertyCallExp.java >--- src/org/eclipse/ocl/expressions/PropertyCallExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/PropertyCallExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/CollectionLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/CollectionLiteralExp.java,v >retrieving revision 1.7 >diff -u -r1.7 CollectionLiteralExp.java >--- src/org/eclipse/ocl/expressions/CollectionLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/CollectionLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > >Index: src/org/eclipse/ocl/expressions/LoopExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/LoopExp.java,v >retrieving revision 1.8 >diff -u -r1.8 LoopExp.java >--- src/org/eclipse/ocl/expressions/LoopExp.java 30 Nov 2008 22:11:38 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/LoopExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > >Index: src/org/eclipse/ocl/expressions/MessageExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/MessageExp.java,v >retrieving revision 1.7 >diff -u -r1.7 MessageExp.java >--- src/org/eclipse/ocl/expressions/MessageExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/MessageExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > import org.eclipse.ocl.utilities.CallingASTNode; >Index: src/org/eclipse/ocl/expressions/OperationCallExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/OperationCallExp.java,v >retrieving revision 1.7 >diff -u -r1.7 OperationCallExp.java >--- src/org/eclipse/ocl/expressions/OperationCallExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/OperationCallExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > >Index: src/org/eclipse/ocl/expressions/TupleLiteralPart.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/TupleLiteralPart.java,v >retrieving revision 1.7 >diff -u -r1.7 TupleLiteralPart.java >--- src/org/eclipse/ocl/expressions/TupleLiteralPart.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/TupleLiteralPart.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.ocl.utilities.TypedASTNode; > import org.eclipse.ocl.utilities.TypedElement; >Index: src/org/eclipse/ocl/expressions/UnlimitedNaturalLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/UnlimitedNaturalLiteralExp.java,v >retrieving revision 1.7 >diff -u -r1.7 UnlimitedNaturalLiteralExp.java >--- src/org/eclipse/ocl/expressions/UnlimitedNaturalLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/UnlimitedNaturalLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/BooleanLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/BooleanLiteralExp.java,v >retrieving revision 1.6 >diff -u -r1.6 BooleanLiteralExp.java >--- src/org/eclipse/ocl/expressions/BooleanLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.6 >+++ src/org/eclipse/ocl/expressions/BooleanLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/CollectionRange.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/CollectionRange.java,v >retrieving revision 1.7 >diff -u -r1.7 CollectionRange.java >--- src/org/eclipse/ocl/expressions/CollectionRange.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/CollectionRange.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/Variable.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/Variable.java,v >retrieving revision 1.7 >diff -u -r1.7 Variable.java >--- src/org/eclipse/ocl/expressions/Variable.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/Variable.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.ocl.utilities.TypedASTNode; > import org.eclipse.ocl.utilities.TypedElement; >Index: src/org/eclipse/ocl/expressions/RealLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/RealLiteralExp.java,v >retrieving revision 1.6 >diff -u -r1.6 RealLiteralExp.java >--- src/org/eclipse/ocl/expressions/RealLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.6 >+++ src/org/eclipse/ocl/expressions/RealLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/LetExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/LetExp.java,v >retrieving revision 1.7 >diff -u -r1.7 LetExp.java >--- src/org/eclipse/ocl/expressions/LetExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/LetExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/EnumLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/EnumLiteralExp.java,v >retrieving revision 1.7 >diff -u -r1.7 EnumLiteralExp.java >--- src/org/eclipse/ocl/expressions/EnumLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/EnumLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/IntegerLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/IntegerLiteralExp.java,v >retrieving revision 1.6 >diff -u -r1.6 IntegerLiteralExp.java >--- src/org/eclipse/ocl/expressions/IntegerLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.6 >+++ src/org/eclipse/ocl/expressions/IntegerLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/VariableExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/VariableExp.java,v >retrieving revision 1.7 >diff -u -r1.7 VariableExp.java >--- src/org/eclipse/ocl/expressions/VariableExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/VariableExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/StringLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/StringLiteralExp.java,v >retrieving revision 1.6 >diff -u -r1.6 StringLiteralExp.java >--- src/org/eclipse/ocl/expressions/StringLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.6 >+++ src/org/eclipse/ocl/expressions/StringLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/IteratorExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/IteratorExp.java,v >retrieving revision 1.5 >diff -u -r1.5 IteratorExp.java >--- src/org/eclipse/ocl/expressions/IteratorExp.java 30 Nov 2008 22:11:38 -0000 1.5 >+++ src/org/eclipse/ocl/expressions/IteratorExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/CollectionItem.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/CollectionItem.java,v >retrieving revision 1.7 >diff -u -r1.7 CollectionItem.java >--- src/org/eclipse/ocl/expressions/CollectionItem.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/CollectionItem.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/TupleLiteralExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/TupleLiteralExp.java,v >retrieving revision 1.7 >diff -u -r1.7 TupleLiteralExp.java >--- src/org/eclipse/ocl/expressions/TupleLiteralExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/TupleLiteralExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > >Index: src/org/eclipse/ocl/expressions/IfExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/IfExp.java,v >retrieving revision 1.7 >diff -u -r1.7 IfExp.java >--- src/org/eclipse/ocl/expressions/IfExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/IfExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/expressions/IterateExp.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/IterateExp.java,v >retrieving revision 1.7 >diff -u -r1.7 IterateExp.java >--- src/org/eclipse/ocl/expressions/IterateExp.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/IterateExp.java 1 Sep 2009 17:10:44 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.expressions; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > > /** >Index: src/org/eclipse/ocl/cst/CSTNode.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/CSTNode.java,v >retrieving revision 1.3 >diff -u -r1.3 CSTNode.java >--- src/org/eclipse/ocl/cst/CSTNode.java 30 Nov 2008 22:11:38 -0000 1.3 >+++ src/org/eclipse/ocl/cst/CSTNode.java 1 Sep 2009 17:10:41 -0000 >@@ -17,7 +17,8 @@ > */ > package org.eclipse.ocl.cst; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; >+ > import org.eclipse.emf.ecore.EObject; > > /** >@@ -104,7 +105,7 @@ > * If the meaning of the '<em>Start Token</em>' attribute isn't clear, > * there really should be more of a description here... > * </p> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @return the value of the '<em>Start Token</em>' attribute. > * @see #setStartToken(IToken) >@@ -117,7 +118,7 @@ > /** > * Sets the value of the '{@link org.eclipse.ocl.cst.CSTNode#getStartToken <em>Start Token</em>}' attribute. > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @param value the new value of the '<em>Start Token</em>' attribute. > * @see #getStartToken() >@@ -132,7 +133,7 @@ > * If the meaning of the '<em>End Token</em>' attribute isn't clear, > * there really should be more of a description here... > * </p> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @return the value of the '<em>End Token</em>' attribute. > * @see #setEndToken(IToken) >@@ -145,7 +146,7 @@ > /** > * Sets the value of the '{@link org.eclipse.ocl.cst.CSTNode#getEndToken <em>End Token</em>}' attribute. > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @param value the new value of the '<em>End Token</em>' attribute. > * @see #getEndToken() >Index: src/org/eclipse/ocl/cst/CSTPackage.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/CSTPackage.java,v >retrieving revision 1.7 >diff -u -r1.7 CSTPackage.java >--- src/org/eclipse/ocl/cst/CSTPackage.java 5 Mar 2009 14:12:13 -0000 1.7 >+++ src/org/eclipse/ocl/cst/CSTPackage.java 1 Sep 2009 17:10:43 -0000 >@@ -4937,7 +4937,7 @@ > * The meta object id for the '<em>IToken</em>' data type. > * <!-- begin-user-doc --> > * <!-- end-user-doc --> >- * @see lpg.lpgjavaruntime.IToken >+ * @see lpg.runtime.IToken > * @see org.eclipse.ocl.cst.impl.CSTPackageImpl#getIToken() > * @generated > * @noreference This field is not intended to be referenced by clients. >@@ -6425,13 +6425,13 @@ > EEnum getDotOrArrowEnum(); > > /** >- * Returns the meta object for data type '{@link lpg.lpgjavaruntime.IToken <em>IToken</em>}'. >+ * Returns the meta object for data type '{@link lpg.runtime.IToken <em>IToken</em>}'. > * <!-- begin-user-doc --> > * @since 1.3 > * <!-- end-user-doc --> > * @return the meta object for data type '<em>IToken</em>'. >- * @see lpg.lpgjavaruntime.IToken >- * @model instanceClass="lpg.lpgjavaruntime.IToken" >+ * @see lpg.runtime.IToken >+ * @model instanceClass="lpg.runtime.IToken" > * @generated > */ > EDataType getIToken(); >@@ -7765,7 +7765,7 @@ > * <!-- begin-user-doc --> > * @since 1.3 > * <!-- end-user-doc --> >- * @see lpg.lpgjavaruntime.IToken >+ * @see lpg.runtime.IToken > * @see org.eclipse.ocl.cst.impl.CSTPackageImpl#getIToken() > * @generated > */ >Index: src/org/eclipse/ocl/cst/impl/CSTPackageImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/impl/CSTPackageImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 CSTPackageImpl.java >--- src/org/eclipse/ocl/cst/impl/CSTPackageImpl.java 26 May 2009 20:06:32 -0000 1.7 >+++ src/org/eclipse/ocl/cst/impl/CSTPackageImpl.java 1 Sep 2009 17:10:43 -0000 >@@ -18,7 +18,8 @@ > */ > package org.eclipse.ocl.cst.impl; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; >+ > import org.eclipse.emf.ecore.EAttribute; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EDataType; >Index: src/org/eclipse/ocl/cst/impl/ClassifierContextDeclCSImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/impl/ClassifierContextDeclCSImpl.java,v >retrieving revision 1.3 >diff -u -r1.3 ClassifierContextDeclCSImpl.java >--- src/org/eclipse/ocl/cst/impl/ClassifierContextDeclCSImpl.java 30 Nov 2008 22:11:37 -0000 1.3 >+++ src/org/eclipse/ocl/cst/impl/ClassifierContextDeclCSImpl.java 1 Sep 2009 17:10:43 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.cst.impl; > > import java.util.Collection; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.common.notify.NotificationChain; > import org.eclipse.emf.common.util.EList; >Index: src/org/eclipse/ocl/cst/impl/CSTNodeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/impl/CSTNodeImpl.java,v >retrieving revision 1.4 >diff -u -r1.4 CSTNodeImpl.java >--- src/org/eclipse/ocl/cst/impl/CSTNodeImpl.java 23 Jan 2009 17:16:04 -0000 1.4 >+++ src/org/eclipse/ocl/cst/impl/CSTNodeImpl.java 1 Sep 2009 17:10:43 -0000 >@@ -17,7 +17,8 @@ > */ > package org.eclipse.ocl.cst.impl; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; >+ > import org.eclipse.emf.common.notify.Notification; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.impl.ENotificationImpl; >@@ -217,7 +218,7 @@ > > /** > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @generated > */ >@@ -227,7 +228,7 @@ > > /** > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @generated > */ >@@ -241,7 +242,7 @@ > > /** > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @generated > */ >@@ -251,7 +252,7 @@ > > /** > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @generated > */ >Index: src/org/eclipse/ocl/cst/impl/CSTFactoryImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/impl/CSTFactoryImpl.java,v >retrieving revision 1.5 >diff -u -r1.5 CSTFactoryImpl.java >--- src/org/eclipse/ocl/cst/impl/CSTFactoryImpl.java 2 Dec 2008 11:58:50 -0000 1.5 >+++ src/org/eclipse/ocl/cst/impl/CSTFactoryImpl.java 1 Sep 2009 17:10:43 -0000 >@@ -17,15 +17,14 @@ > */ > package org.eclipse.ocl.cst.impl; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; >+ > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EDataType; > import org.eclipse.emf.ecore.EObject; > import org.eclipse.emf.ecore.EPackage; > import org.eclipse.emf.ecore.impl.EFactoryImpl; > import org.eclipse.emf.ecore.plugin.EcorePlugin; >- >-//import org.eclipse.ocl.cst.*; > import org.eclipse.ocl.cst.BooleanLiteralExpCS; > import org.eclipse.ocl.cst.CSTFactory; > import org.eclipse.ocl.cst.CSTPackage; >@@ -823,7 +822,7 @@ > > /** > * <!-- begin-user-doc --> >- * @since 1.3 >+ * @since 3.0 > * <!-- end-user-doc --> > * @generated > */ >Index: src/org/eclipse/ocl/cst/impl/OCLDocumentCSImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/impl/OCLDocumentCSImpl.java,v >retrieving revision 1.1 >diff -u -r1.1 OCLDocumentCSImpl.java >--- src/org/eclipse/ocl/cst/impl/OCLDocumentCSImpl.java 2 Dec 2008 11:58:50 -0000 1.1 >+++ src/org/eclipse/ocl/cst/impl/OCLDocumentCSImpl.java 1 Sep 2009 17:10:43 -0000 >@@ -19,15 +19,11 @@ > import java.util.Collection; > > import org.eclipse.emf.common.notify.NotificationChain; >- > import org.eclipse.emf.common.util.EList; >- > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.InternalEObject; >- > import org.eclipse.emf.ecore.util.EObjectContainmentEList; > import org.eclipse.emf.ecore.util.InternalEList; >- > import org.eclipse.ocl.cst.CSTPackage; > import org.eclipse.ocl.cst.OCLDocumentCS; > import org.eclipse.ocl.cst.PackageDeclarationCS; >Index: src/org/eclipse/ocl/parser/OCLParser.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParser.java,v >retrieving revision 1.8 >diff -u -r1.8 OCLParser.java >--- src/org/eclipse/ocl/parser/OCLParser.java 28 Aug 2009 20:43:11 -0000 1.8 >+++ src/org/eclipse/ocl/parser/OCLParser.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,8 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+* Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -14,10 +15,11 @@ > * E.D.Willink - Bugs 225493, 243976, 259818 > * Zeligsoft - Bug 243976 > * Borland - Bug 242880 >+* Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLParser.java,v 1.8 2009/08/28 20:43:11 ewillink Exp $ >+* $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ > */ > > package org.eclipse.ocl.parser; >@@ -43,16 +45,24 @@ > import org.eclipse.ocl.cst.VariableCS; > import org.eclipse.ocl.util.OCLStandardLibraryUtil; > import org.eclipse.ocl.utilities.PredefinedType; >+import org.eclipse.ocl.lpg.OCLParserStream; > >-import lpg.lpgjavaruntime.BadParseException; >-import lpg.lpgjavaruntime.BadParseSymFileException; >-import lpg.lpgjavaruntime.DeterministicParser; >-import lpg.lpgjavaruntime.DiagnoseParser; >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.Monitor; >-import lpg.lpgjavaruntime.NotDeterministicParseTableException; >-import lpg.lpgjavaruntime.ParseTable; >-import lpg.lpgjavaruntime.RuleAction; >+import lpg.runtime.BadParseException; >+import lpg.runtime.BadParseSymFileException; >+import lpg.runtime.DeterministicParser; >+import lpg.runtime.DiagnoseParser; >+import lpg.runtime.ErrorToken; >+import lpg.runtime.IToken; >+import lpg.runtime.ILexStream; >+import lpg.runtime.Monitor; >+import lpg.runtime.NotDeterministicParseTableException; >+import lpg.runtime.NullExportedSymbolsException; >+import lpg.runtime.NullTerminalSymbolsException; >+import lpg.runtime.ParseTable; >+import lpg.runtime.PrsStream; >+import lpg.runtime.RuleAction; >+import lpg.runtime.UndefinedEofSymbolException; >+import lpg.runtime.UnimplementedTerminalsException; > > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.cst.DefExpressionCS; >@@ -64,96 +74,206 @@ > > public class OCLParser extends AbstractOCLParser implements RuleAction > { >- protected static ParseTable prs = new OCLParserprs(); >- private DeterministicParser dtParser; >- >- public OCLParser(OCLLexer lexer) { >- super(lexer); >- } >- >- public int getEOFTokenKind() { return OCLParserprs.EOFT_SYMBOL; } >+ private OCLParserStream prsStream = null; >+ >+ private boolean unimplementedSymbolsWarning = false; > >- public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { >- return getLexer().getOCLEnvironment(); >- } >+ private static ParseTable prsTable = new OCLParserprs(); >+ public ParseTable getParseTable() { return prsTable; } > >- @Override >- public OCLLexer getLexer() { >- return (OCLLexer)super.getLexer(); >- } >+ private DeterministicParser dtParser = null; >+ public DeterministicParser getParser() { return dtParser; } >+ >+ private void setResult(Object object) { dtParser.setSym1(object); } >+ public Object getRhsSym(int i) { return dtParser.getSym(i); } > >- public String getTokenKindName(int kind) { return OCLParsersym.orderedTerminalSymbols[kind]; } >+ public int getRhsTokenIndex(int i) { return dtParser.getToken(i); } >+ public IToken getRhsIToken(int i) { return prsStream.getIToken(getRhsTokenIndex(i)); } >+ >+ public int getRhsFirstTokenIndex(int i) { return dtParser.getFirstToken(i); } >+ public IToken getRhsFirstIToken(int i) { return prsStream.getIToken(getRhsFirstTokenIndex(i)); } >+ >+ public int getRhsLastTokenIndex(int i) { return dtParser.getLastToken(i); } >+ public IToken getRhsLastIToken(int i) { return prsStream.getIToken(getRhsLastTokenIndex(i)); } >+ >+ public int getLeftSpan() { return dtParser.getFirstToken(); } >+ public IToken getLeftIToken() { return prsStream.getIToken(getLeftSpan()); } >+ >+ public int getRightSpan() { return dtParser.getLastToken(); } >+ public IToken getRightIToken() { return prsStream.getIToken(getRightSpan()); } >+ >+ public int getRhsErrorTokenIndex(int i) >+ { >+ int index = dtParser.getToken(i); >+ IToken err = prsStream.getIToken(index); >+ return (err instanceof ErrorToken ? index : 0); >+ } >+ public ErrorToken getRhsErrorIToken(int i) >+ { >+ int index = dtParser.getToken(i); >+ IToken err = prsStream.getIToken(index); >+ return (ErrorToken) (err instanceof ErrorToken ? err : null); >+ } >+ >+ public void reset(ILexStream lexStream) >+ { >+ prsStream = new OCLParserStream(getEnvironment(), lexStream); >+ dtParser.reset(prsStream); >+ >+ try >+ { >+ prsStream.remapTerminalSymbols(orderedTerminalSymbols(), prsTable.getEoftSymbol()); >+ } >+ catch(NullExportedSymbolsException e) { >+ } >+ catch(NullTerminalSymbolsException e) { >+ } >+ catch(UnimplementedTerminalsException e) >+ { >+ if (unimplementedSymbolsWarning) { >+ java.util.ArrayList<?> unimplemented_symbols = e.getSymbols(); >+ System.out.println("The Lexer will not scan the following token(s):"); >+ for (int i = 0; i < unimplemented_symbols.size(); i++) >+ { >+ Integer id = (Integer) unimplemented_symbols.get(i); >+ System.out.println(" " + OCLParsersym.orderedTerminalSymbols[id.intValue()]); >+ } >+ System.out.println(); >+ } >+ } >+ catch(UndefinedEofSymbolException e) >+ { >+ throw new Error(new UndefinedEofSymbolException >+ ("The Lexer does not implement the Eof symbol " + >+ OCLParsersym.orderedTerminalSymbols[prsTable.getEoftSymbol()])); >+ } >+ } >+ >+ public OCLParser(OCLLexer lexer) >+ { >+ super(lexer); >+ try >+ { >+ dtParser = new DeterministicParser(prsStream, prsTable, this); >+ } >+ catch (NotDeterministicParseTableException e) >+ { >+ throw new RuntimeException("****Error: Regenerate OCLParserprs.java with -NOBACKTRACK option"); >+ } >+ catch (BadParseSymFileException e) >+ { >+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- OCLParsersym.java. Regenerate OCLParserprs.java")); >+ } >+ >+ reset(lexer.getILexStream()); >+ } >+ >+ public int numTokenKinds() { return OCLParsersym.numTokenKinds; } >+ public String[] orderedTerminalSymbols() { return OCLParsersym.orderedTerminalSymbols; } >+ public String getTokenKindName(int kind) { return OCLParsersym.orderedTerminalSymbols[kind]; } >+ public int getEOFTokenKind() { return prsTable.getEoftSymbol(); } >+ public OCLParserStream getIPrsStream() { return prsStream; } > >- @Override >- public String[] orderedTerminalSymbols() { return OCLParsersym.orderedTerminalSymbols; } >- >- @SuppressWarnings("nls") >- @Override >- public CSTNode parseTokensToCST(Monitor monitor, int error_repair_count) { >- ParseTable prsTable = new OCLParserprs(); >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * >+ */ >+ public PrsStream getPrsStream() { return prsStream; } > >- try { >- dtParser = new DeterministicParser(monitor, this, prsTable, this); >- } >- catch (NotDeterministicParseTableException e) { >- throw new RuntimeException("****Error: Regenerate OCLParserprs.java with -NOBACKTRACK option"); >- } >- catch (BadParseSymFileException e) { >- throw new RuntimeException("****Error: Bad Parser Symbol File -- OCLParsersym.java. Regenerate OCLParserprs.java"); >- } >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * >+ */ >+ public PrsStream getParseStream() { return prsStream; } > >- try { >- return (CSTNode) dtParser.parse(); >- } >- catch (BadParseException e) { >- reset(e.error_token); // point to error token >+ public CSTNode parser() >+ { >+ return parser(null, getDefaultRepairCount()); >+ } >+ >+ public CSTNode parser(Monitor monitor) >+ { >+ return parser(monitor, getDefaultRepairCount()); >+ } >+ >+ public CSTNode parser(int error_repair_count) >+ { >+ return parser(null, error_repair_count); >+ } >+ >+ public CSTNode parser(Monitor monitor, int error_repair_count) >+ { >+ dtParser.setMonitor(monitor); >+ >+ try >+ { >+ return (CSTNode) dtParser.parse(); >+ } >+ catch (BadParseException e) >+ { >+ prsStream.reset(e.error_token); // point to error token >+ >+ DiagnoseParser diagnoseParser = new DiagnoseParser(prsStream, prsTable); >+ diagnoseParser.diagnose(e.error_token); >+ } >+ >+ return null; >+ } >+ >+ // >+ // Additional entry points, if any >+ // >+ > >- DiagnoseParser diagnoseParser = new DiagnoseParser(this, prsTable); >- diagnoseParser.diagnose(e.error_token); >- } >+ // OCL Additions > >- return null; >+ public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { >+ return getLexer().getOCLEnvironment(); > } >- >- /** >- * 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.setStartToken(firstToken); >- cstNode.setEndToken(firstToken); >- cstNode.setStartOffset(firstToken.getStartOffset()); >- cstNode.setEndOffset(firstToken.getEndOffset()-1); >+ >+ @Override >+ public OCLLexer getLexer() { >+ return (OCLLexer) super.getLexer(); > } > > >+// Some methods to keep compatibility backwards >+/** >+* @since 3.0 >+*/ >+protected IToken getIToken(int i) { >+ return prsStream.getIToken(i); >+} >+ >+protected String getTokenText(int i) { >+ return prsStream.getTokenText(i); >+} >+ > > @SuppressWarnings("unchecked") >- public void ruleAction(int ruleNumber) >- { >- switch (ruleNumber) { >- >+ public void ruleAction(int ruleNumber) >+ { >+ switch (ruleNumber) >+ { > > // > // Rule 46: binaryName ::= binaryIdentifier > // >+ > case 46: > > // > // Rule 47: keywordAsName ::= keywordAsIdentifier > // >+ > case 47: > > // > // Rule 48: keywordAsName1 ::= keywordAsIdentifier1 > // >+ > case 48: >- >+ > // > // Rule 49: unaryName ::= unaryIdentifier > // >@@ -161,23 +281,28 @@ > > SimpleNameCS result = createSimpleNameCS( > SimpleTypeEnum.IDENTIFIER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 50: iterateName ::= iterate > // >+ > case 50: > > // > // Rule 51: iteratorName ::= iteratorIdentifier > // >+ > case 51: >- >+ > // > // Rule 52: oclIsInStateName ::= oclIsInState > // >@@ -185,123 +310,158 @@ > > SimpleNameCS result = createSimpleNameCS( > SimpleTypeEnum.KEYWORD_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 55: operationCS1 ::= IDENTIFIER ( parametersCSopt ) : typeCSopt > // > case 55: { > > CSTNode result = createOperationCS( >- getTokenText(dtParser.getToken(1)), >- (EList)dtParser.getSym(3), >- (TypeCS)dtParser.getSym(6) >- ); >- if (dtParser.getSym(6) != null) { >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(6)); >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) != null) { >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6)); > } else { >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 56: operationCS2 ::= pathNameCS :: simpleNameCS ( parametersCSopt ) : typeCSopt > // > case 56: { > > CSTNode result = createOperationCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5), >- (TypeCS)dtParser.getSym(8) >- ); >- if (dtParser.getSym(8) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(8)); >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(7))); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); > } >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 57: parametersCSopt ::= $Empty > // >+ > case 57: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 59: parametersCS ::= variableCS > // > case 59: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 60: parametersCS ::= parametersCS , variableCS > // > case 60: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 61: simpleNameCSopt ::= $Empty > // > case 61: >- dtParser.setSym1(null); >- break; >+ setResult(null); >+ break; > > // > // Rule 67: impliesExpCS ::= impliesExpCS implies andOrXorExpCS > // >+ > case 67: > > // > // Rule 68: impliesWithLet ::= impliesExpCS implies andOrXorWithLet > // >+ > case 68: > > // > // Rule 71: andOrXorExpCS ::= andOrXorExpCS and equalityExpCS > // >+ > case 71: > > // > // Rule 72: andOrXorExpCS ::= andOrXorExpCS or equalityExpCS > // >+ > case 72: > > // > // Rule 73: andOrXorExpCS ::= andOrXorExpCS xor equalityExpCS > // >+ > case 73: > > // > // Rule 74: andOrXorWithLet ::= andOrXorExpCS and equalityWithLet > // >+ > case 74: > > // > // Rule 75: andOrXorWithLet ::= andOrXorExpCS or equalityWithLet > // >+ > case 75: >- >+ > // > // Rule 76: andOrXorWithLet ::= andOrXorExpCS xor equalityWithLet > // >@@ -309,26 +469,34 @@ > > SimpleNameCS simpleNameCS = createSimpleNameCS( > SimpleTypeEnum.STRING_LITERAL, >- getTokenText(dtParser.getToken(2)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 79: equalityExpCS ::= equalityExpCS = relationalExpCS > // >+ > case 79: >- >+ > // > // Rule 80: equalityWithLet ::= equalityExpCS = relationalWithLet > // >@@ -338,24 +506,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 81: equalityExpCS ::= equalityExpCS <> relationalExpCS > // >+ > case 81: >- >+ > // > // Rule 82: equalityWithLet ::= equalityExpCS <> relationalWithLet > // >@@ -365,24 +540,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.NOT_EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 85: relationalExpCS ::= relationalExpCS > ifExpCSPrec > // >+ > case 85: >- >+ > // > // Rule 86: relationalWithLet ::= relationalExpCS > additiveWithLet > // >@@ -392,24 +574,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.GREATER_THAN) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 87: relationalExpCS ::= relationalExpCS < ifExpCSPrec > // >+ > case 87: >- >+ > // > // Rule 88: relationalWithLet ::= relationalExpCS < additiveWithLet > // >@@ -419,24 +608,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.LESS_THAN) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 89: relationalExpCS ::= relationalExpCS >= ifExpCSPrec > // >+ > case 89: >- >+ > // > // Rule 90: relationalWithLet ::= relationalExpCS >= additiveWithLet > // >@@ -446,24 +642,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.GREATER_THAN_EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 91: relationalExpCS ::= relationalExpCS <= ifExpCSPrec > // >+ > case 91: >- >+ > // > // Rule 92: relationalWithLet ::= relationalExpCS <= additiveWithLet > // >@@ -473,24 +676,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.LESS_THAN_EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 97: additiveExpCS ::= additiveExpCS + multiplicativeExpCS > // >+ > case 97: >- >+ > // > // Rule 98: additiveWithLet ::= additiveExpCS + multiplicativeWithLet > // >@@ -500,24 +710,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.PLUS) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 99: additiveExpCS ::= additiveExpCS - multiplicativeExpCS > // >+ > case 99: >- >+ > // > // Rule 100: additiveWithLet ::= additiveExpCS - multiplicativeWithLet > // >@@ -527,24 +744,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.MINUS) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 103: multiplicativeExpCS ::= multiplicativeExpCS * unaryExpCS > // >+ > case 103: >- >+ > // > // Rule 104: multiplicativeWithLet ::= multiplicativeExpCS * unaryWithLet > // >@@ -554,24 +778,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.TIMES) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 105: multiplicativeExpCS ::= multiplicativeExpCS / unaryExpCS > // >+ > case 105: >- >+ > // > // Rule 106: multiplicativeWithLet ::= multiplicativeExpCS / unaryWithLet > // >@@ -581,19 +812,25 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.DIVIDE) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 109: unaryExpCS ::= - unaryExpCS > // >@@ -603,17 +840,22 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.MINUS) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(1))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > simpleNameCS, > new BasicEList() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 110: unaryExpCS ::= not unaryExpCS > // >@@ -621,43 +863,58 @@ > > SimpleNameCS simpleNameCS = createSimpleNameCS( > SimpleTypeEnum.STRING_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(1))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > simpleNameCS, > new BasicEList() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 112: dotArrowExpCS ::= dotArrowExpCS callExpCS > // > case 112: { > >- CallExpCS result = (CallExpCS)dtParser.getSym(2); >- result.setSource((OCLExpressionCS)dtParser.getSym(1)); >- setOffsets(result, (CSTNode)dtParser.getSym(1), result); >- dtParser.setSym1(result); >- break; >- } >- >+ CallExpCS result = (CallExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ result.setSource((OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), result); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 113: dotArrowExpCS ::= dotArrowExpCS messageExpCS > // > case 113: { > >- MessageExpCS result = (MessageExpCS)dtParser.getSym(2); >- result.setTarget((OCLExpressionCS)dtParser.getSym(1)); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ MessageExpCS result = (MessageExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ result.setTarget((OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 114: dotArrowExpCS ::= NUMERIC_OPERATION ( argumentsCSopt ) > // >@@ -670,7 +927,8 @@ > String simpleName = text.substring(index + 1); > > // create the IntegerLiteralExpCS >- IToken numericToken = getIToken(dtParser.getToken(1)); >+ IToken numericToken = getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)); > int startOffset = numericToken.getStartOffset(); > int endOffset = startOffset + integer.length() - 1; // inclusive > >@@ -681,7 +939,8 @@ > integerLiteralExpCS.setEndToken(numericToken); > > startOffset = endOffset + 2; // end of integerLiteral + 1('.') + 1(start of simpleName) >- endOffset = getIToken(dtParser.getToken(1)).getEndOffset(); >+ endOffset = getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)).getEndOffset(); > > // create the SimpleNameCS > SimpleNameCS simpleNameCS = createSimpleNameCS( >@@ -697,90 +956,120 @@ > CSTNode result = createOperationCallExpCS( > integerLiteralExpCS, > simpleNameCS, >- (EList)dtParser.getSym(3) >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 115: dotArrowExpCS ::= pathNameCS :: simpleNameCS ( argumentsCSopt ) > // > case 115: { > > OperationCallExpCS result = createOperationCallExpCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(6))); >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); > result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 120: oclExpCS ::= ( oclExpressionCS ) > // > case 120: { > >- CSTNode result = (CSTNode)dtParser.getSym(2); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >+ CSTNode result = (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 121: variableExpCS ::= simpleNameCS isMarkedPreCS > // >+ > case 121: >- >+ > // > // Rule 122: variableExpCS ::= keywordAsName1 isMarkedPreCS > // > case 122: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(2); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > CSTNode result = createVariableExpCS( >- (SimpleNameCS)dtParser.getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > new BasicEList(), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(2)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); > } >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 123: variableExpCS ::= simpleNameCS [ argumentsCS ] isMarkedPreCS > // >+ > case 123: >- >+ > // > // Rule 124: variableExpCS ::= keywordAsName1 [ argumentsCS ] isMarkedPreCS > // > case 124: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(5); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5); > CSTNode result = createVariableExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (EList)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(5)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(4))); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 126: simpleNameCS ::= self > // >@@ -788,13 +1077,16 @@ > > CSTNode result = createSimpleNameCS( > SimpleTypeEnum.SELF_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 127: simpleNameCS ::= IDENTIFIER > // >@@ -802,13 +1094,16 @@ > > CSTNode result = createSimpleNameCS( > SimpleTypeEnum.IDENTIFIER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 128: primitiveTypeCS ::= Integer > // >@@ -816,13 +1111,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.INTEGER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 129: primitiveTypeCS ::= UnlimitedNatural > // >@@ -830,13 +1128,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.UNLIMITED_NATURAL_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 130: primitiveTypeCS ::= String > // >@@ -844,13 +1145,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.STRING_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 131: primitiveTypeCS ::= Real > // >@@ -858,13 +1162,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.REAL_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 132: primitiveTypeCS ::= Boolean > // >@@ -872,13 +1179,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.BOOLEAN_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 133: primitiveTypeCS ::= OclAny > // >@@ -886,13 +1196,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.OCL_ANY_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 134: primitiveTypeCS ::= OclVoid > // >@@ -900,13 +1213,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.OCL_VOID_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 135: primitiveTypeCS ::= Invalid > // >@@ -914,13 +1230,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.INVALID_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 136: primitiveTypeCS ::= OclMessage > // >@@ -928,812 +1247,1027 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.OCL_MESSAGE_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 137: pathNameCS ::= IDENTIFIER > // > case 137: { > >- CSTNode result = createPathNameCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createPathNameCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 138: pathNameCS ::= pathNameCS :: simpleNameCS > // > case 138: { > >- PathNameCS result = (PathNameCS)dtParser.getSym(1); >+ PathNameCS result = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > result = extendPathNameCS(result, getTokenText(dtParser.getToken(3))); >- setOffsets(result, result, (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 139: pathNameCSOpt ::= $Empty > // > case 139: { > > CSTNode result = createPathNameCS(); >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 147: enumLiteralExpCS ::= pathNameCS :: keywordAsName > // >+ > case 147: >- >+ > // > // Rule 148: enumLiteralExpCS ::= pathNameCS :: simpleNameCS > // > case 148: { > > CSTNode result = createEnumLiteralExpCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 149: collectionLiteralExpCS ::= collectionTypeIdentifierCS { collectionLiteralPartsCSopt } > // > case 149: { > >- Object[] objs = (Object[])dtParser.getSym(1); >+ Object[] objs = (Object[]) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createCollectionLiteralExpCS( > (CollectionTypeIdentifierEnum)objs[1], >- (EList)dtParser.getSym(3) >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, (IToken)objs[0], getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (IToken)objs[0], getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 150: collectionTypeIdentifierCS ::= Set > // > case 150: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.SET_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.SET_LITERAL}); >+ break; >+ } >+ > // > // Rule 151: collectionTypeIdentifierCS ::= Bag > // > case 151: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.BAG_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.BAG_LITERAL}); >+ break; >+ } >+ > // > // Rule 152: collectionTypeIdentifierCS ::= Sequence > // > case 152: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.SEQUENCE_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.SEQUENCE_LITERAL}); >+ break; >+ } >+ > // > // Rule 153: collectionTypeIdentifierCS ::= Collection > // > case 153: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.COLLECTION_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.COLLECTION_LITERAL}); >+ break; >+ } >+ > // > // Rule 154: collectionTypeIdentifierCS ::= OrderedSet > // > case 154: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.ORDERED_SET_LITERAL}); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.ORDERED_SET_LITERAL}); >+ break; >+ } > > // > // Rule 155: collectionLiteralPartsCSopt ::= $Empty > // >+ > case 155: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 157: collectionLiteralPartsCS ::= collectionLiteralPartCS > // > case 157: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 158: collectionLiteralPartsCS ::= collectionLiteralPartsCS , collectionLiteralPartCS > // > case 158: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 160: collectionLiteralPartCS ::= oclExpressionCS > // > case 160: { > > CSTNode result = createCollectionLiteralPartCS( >- (OCLExpressionCS)dtParser.getSym(1) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 161: collectionRangeCS ::= - INTEGER_RANGE_START oclExpressionCS > // > case 161: { > > OCLExpressionCS rangeStart = createRangeStart( >- getTokenText(dtParser.getToken(2)), true); >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), true); > CSTNode result = createCollectionRangeCS( > rangeStart, >- (OCLExpressionCS)dtParser.getSym(3) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, rangeStart, (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, rangeStart, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 162: collectionRangeCS ::= INTEGER_RANGE_START oclExpressionCS > // > case 162: { > > OCLExpressionCS rangeStart = createRangeStart( >- getTokenText(dtParser.getToken(1)), false); >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), false); > CSTNode result = createCollectionRangeCS( > rangeStart, >- (OCLExpressionCS)dtParser.getSym(2) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2) > ); >- setOffsets(result, rangeStart, (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, rangeStart, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 163: collectionRangeCS ::= oclExpressionCS .. oclExpressionCS > // > case 163: { > > CSTNode result = createCollectionRangeCS( >- (OCLExpressionCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(3) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 169: tupleLiteralExpCS ::= Tuple { variableListCS2 } > // > case 169: { > >- CSTNode result = createTupleLiteralExpCS((EList)dtParser.getSym(3)); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createTupleLiteralExpCS((EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 170: integerLiteralExpCS ::= INTEGER_LITERAL > // > case 170: { > >- CSTNode result = createIntegerLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createIntegerLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 171: unlimitedNaturalLiteralExpCS ::= * > // > case 171: { > >- CSTNode result = createUnlimitedNaturalLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createUnlimitedNaturalLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 172: realLiteralExpCS ::= REAL_LITERAL > // > case 172: { > >- CSTNode result = createRealLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createRealLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 173: stringLiteralExpCS ::= STRING_LITERAL > // > case 173: { > >- IToken literalToken = getIToken(dtParser.getToken(1)); >+ IToken literalToken = getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)); > StringLiteralExpCS result = createStringLiteralExpCS(literalToken.toString()); > result.setUnescapedStringSymbol(unescape(literalToken)); > setOffsets(result, literalToken); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 174: booleanLiteralExpCS ::= true > // > case 174: { > >- CSTNode result = createBooleanLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createBooleanLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 175: booleanLiteralExpCS ::= false > // > case 175: { > >- CSTNode result = createBooleanLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createBooleanLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 176: nullLiteralExpCS ::= null > // > case 176: { > >- CSTNode result = createNullLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createNullLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 177: invalidLiteralExpCS ::= OclInvalid > // > case 177: { > >- CSTNode result = createInvalidLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >+ CSTNode result = createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 178: callExpCS ::= -> featureCallExpCS > // >+ > case 178: >- >+ > // > // Rule 179: callExpCS ::= -> loopExpCS > // > case 179: { > >- CallExpCS result = (CallExpCS)dtParser.getSym(2); >+ CallExpCS result = (CallExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > result.setAccessor(DotOrArrowEnum.ARROW_LITERAL); >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 180: callExpCS ::= . keywordOperationCallExpCS > // >+ > case 180: >- >+ > // > // Rule 181: callExpCS ::= . featureCallExpCS > // > case 181: { > >- CallExpCS result = (CallExpCS)dtParser.getSym(2); >+ CallExpCS result = (CallExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 184: iteratorExpCS ::= iteratorName ( oclExpressionCS ) > // > case 184: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIteratorExpCS( > simpleNameCS, > null, > null, >- (OCLExpressionCS)dtParser.getSym(3) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 185: iteratorExpCS ::= iteratorName ( variableCS | oclExpressionCS ) > // > case 185: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIteratorExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null, >- (OCLExpressionCS)dtParser.getSym(5) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) > ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(6))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 186: iteratorExpCS ::= iteratorName ( variableCS , variableCS | oclExpressionCS ) > // > case 186: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIteratorExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >- (VariableCS)dtParser.getSym(5), >- (OCLExpressionCS)dtParser.getSym(7) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(8))); >- dtParser.setSym1(result); >- break; >- } >- >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(8))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 187: iterateExpCS ::= iterateName ( variableCS | oclExpressionCS ) > // > case 187: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIterateExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null, >- (OCLExpressionCS)dtParser.getSym(5) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) > ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(6))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 188: iterateExpCS ::= iterateName ( variableCS ; variableCS | oclExpressionCS ) > // > case 188: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIterateExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >- (VariableCS)dtParser.getSym(5), >- (OCLExpressionCS)dtParser.getSym(7) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(8))); >- dtParser.setSym1(result); >- break; >- } >- >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(8))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 189: variableCS ::= IDENTIFIER > // > case 189: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > null, > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 190: typedVariableCS ::= IDENTIFIER : typeCS > // > case 190: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >- (TypeCS)dtParser.getSym(3), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 192: variableCS ::= IDENTIFIER : typeCS = oclExpressionCS > // > case 192: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >- (TypeCS)dtParser.getSym(3), >- (OCLExpressionCS)dtParser.getSym(5) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(5)); >- dtParser.setSym1(result); >- break; >- } >- >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 193: variableCS2 ::= IDENTIFIER = oclExpressionCS > // > case 193: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > null, >- (OCLExpressionCS)dtParser.getSym(3) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 194: typeCSopt ::= $Empty > // > case 194: >- dtParser.setSym1(null); >- break; >- >+ setResult(null); >+ break; >+ > // > // Rule 200: collectionTypeCS ::= collectionTypeIdentifierCS ( typeCS ) > // > case 200: { > >- Object[] objs = (Object[])dtParser.getSym(1); >+ Object[] objs = (Object[]) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createCollectionTypeCS( > (CollectionTypeIdentifierEnum)objs[1], >- (TypeCS)dtParser.getSym(3) >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, (IToken)objs[0], getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (IToken)objs[0], getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 201: tupleTypeCS ::= Tuple ( variableListCSopt ) > // > case 201: { > >- CSTNode result = createTupleTypeCS((EList)dtParser.getSym(3)); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >+ CSTNode result = createTupleTypeCS((EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 202: variableListCSopt ::= $Empty > // >+ > case 202: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 204: variableListCS ::= variableCS > // > case 204: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 205: variableListCS ::= variableListCS , variableCS > // > case 205: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 206: variableListCS2 ::= variableCS2 > // >+ > case 206: >- >+ > // > // Rule 207: variableListCS2 ::= variableCS > // > case 207: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 208: variableListCS2 ::= variableListCS2 , variableCS2 > // >+ > case 208: >- >+ > // > // Rule 209: variableListCS2 ::= variableListCS2 , variableCS > // > case 209: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 212: featureCallExpCS ::= unaryName isMarkedPreCS ( argumentsCSopt ) > // >+ > case 212: > > // > // Rule 213: operationCallExpCS ::= binaryName isMarkedPreCS ( argumentsCSopt ) > // >+ > case 213: >- >+ > // > // Rule 214: keywordOperationCallExpCS ::= keywordAsName isMarkedPreCS ( argumentsCSopt ) > // > case 214: { > > CSTNode result = createOperationCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (IsMarkedPreCS)dtParser.getSym(2), >- (EList)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 215: stateExpCS ::= pathNameCSOpt > // > case 215: { > >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > StateExpCS result = createStateExpCS(pathNameCS); > setOffsets(result, pathNameCS); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 216: operationCallExpCS ::= oclIsInStateName isMarkedPreCS ( stateExpCS ) > // > case 216: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCallExpCS( > simpleNameCS, >- (IsMarkedPreCS)dtParser.getSym(2), >- (StateExpCS)dtParser.getSym(4) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >+ (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (StateExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 217: attrOrNavCallExpCS ::= simpleNameCS isMarkedPreCS > // >+ > case 217: >- >+ > // > // Rule 218: attrOrNavCallExpCS ::= keywordAsName isMarkedPreCS > // > case 218: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(2); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > CSTNode result = createFeatureCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > new BasicEList(), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(2)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 219: attrOrNavCallExpCS ::= simpleNameCS [ argumentsCS ] isMarkedPreCS > // > case 219: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(5); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5); > CSTNode result = createFeatureCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (EList)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(5)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(4))); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 220: isMarkedPreCS ::= $Empty > // > case 220: { > > CSTNode result = createIsMarkedPreCS(false); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 221: isMarkedPreCS ::= @pre > // > case 221: { > > CSTNode result = createIsMarkedPreCS(true); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 222: argumentsCSopt ::= $Empty > // >+ > case 222: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 224: argumentsCS ::= oclExpressionCS > // > case 224: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 225: argumentsCS ::= argumentsCS , oclExpressionCS > // > case 225: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 226: letExpCS ::= let variableListCS in oclExpressionCS > // > case 226: { > > CSTNode result = createLetExpCS( >- (EList)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 227: ifExpCS ::= if oclExpressionCS then oclExpressionCS else oclExpressionCS endif > // > case 227: { > > CSTNode result = createIfExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4), >- (OCLExpressionCS)dtParser.getSym(6) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(7))); >- dtParser.setSym1(result); >- break; >- } >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 228: messageExpCS ::= ^ simpleNameCS ( oclMessageArgumentsCSopt ) > // >+ > case 228: >- >+ > // > // Rule 229: messageExpCS ::= ^^ simpleNameCS ( oclMessageArgumentsCSopt ) > // > case 229: { > > CSTNode result = createMessageExpCS( >- getIToken(dtParser.getToken(1)).getKind() == OCLParsersym.TK_CARET, >- (SimpleNameCS)dtParser.getSym(2), >- (EList<OCLMessageArgCS>)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >+ getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)).getKind() == OCLParsersym.TK_CARET, >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList<OCLMessageArgCS>) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 230: oclMessageArgumentsCSopt ::= $Empty > // >+ > case 230: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 232: oclMessageArgumentsCS ::= oclMessageArgCS > // > case 232: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 233: oclMessageArgumentsCS ::= oclMessageArgumentsCS , oclMessageArgCS > // > case 233: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 234: oclMessageArgCS ::= oclExpressionCS > // >@@ -1741,13 +2275,16 @@ > > CSTNode result = createOCLMessageArgCS( > null, >- (OCLExpressionCS)dtParser.getSym(1) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 235: oclMessageArgCS ::= ? > // >@@ -1757,234 +2294,301 @@ > null, > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 236: oclMessageArgCS ::= ? : typeCS > // > case 236: { > > CSTNode result = createOCLMessageArgCS( >- (TypeCS)dtParser.getSym(3), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 245: packageDeclarationCSm ::= packageDeclarationCSm packageDeclarationCS > // > case 245: { > >- PackageDeclarationCS result = (PackageDeclarationCS)dtParser.getSym(2); >- result.setPackageDeclarationCS((PackageDeclarationCS) dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ PackageDeclarationCS result = (PackageDeclarationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ result.setPackageDeclarationCS((PackageDeclarationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 246: packageDeclarationCS ::= package pathNameCS contextDeclCSmopt endpackage > // > case 246: { > > CSTNode result = createPackageDeclarationCS( >- (PathNameCS)dtParser.getSym(2), >- (EList)dtParser.getSym(3) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 247: packageDeclarationCS1 ::= contextDeclCSm > // > case 247: { > >- EList contextDecls = (EList)dtParser.getSym(1); >+ EList contextDecls = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createPackageDeclarationCS(null, contextDecls); > if (!contextDecls.isEmpty()) { > setOffsets(result, (CSTNode)contextDecls.get(0), (CSTNode)contextDecls.get(contextDecls.size()-1)); > } >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 248: contextDeclCSmopt ::= $Empty > // >+ > case 248: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 250: contextDeclCSm ::= contextDeclCS > // > case 250: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 251: contextDeclCSm ::= contextDeclCSm contextDeclCS > // > case 251: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 255: propertyContextCS ::= context pathNameCS :: simpleNameCS : typeCS initOrDerValueCS > // > case 255: { > > CSTNode result = createPropertyContextCS( >- (PathNameCS)dtParser.getSym(2), >- (SimpleNameCS)dtParser.getSym(4), >- (TypeCS)dtParser.getSym(6), >- (InitOrDerValueCS)dtParser.getSym(7) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(7)); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6), >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 256: initOrDerValueCS ::= initOrDerValueCSopt init : oclExpressionCS > // > case 256: { > > CSTNode result = createInitValueCS( >- (InitOrDerValueCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- if (dtParser.getSym(1) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(4)); >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } else { >- setOffsets(result, getIToken(dtParser.getToken(2)), (CSTNode)dtParser.getSym(4)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 257: initOrDerValueCS ::= initOrDerValueCSopt derive : oclExpressionCS > // > case 257: { > > CSTNode result = createDerValueCS( >- (InitOrDerValueCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- if (dtParser.getSym(1) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(4)); >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } else { >- setOffsets(result, getIToken(dtParser.getToken(2)), (CSTNode)dtParser.getSym(4)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 258: initOrDerValueCSopt ::= $Empty > // > case 258: >- dtParser.setSym1(null); >- break; >- >+ setResult(null); >+ break; >+ > // > // Rule 260: classifierContextDeclCS ::= context pathNameCS invOrDefCSm > // > case 260: { > >- EList<InvOrDefCS> list = (EList<InvOrDefCS>)dtParser.getSym(3); >+ EList<InvOrDefCS> list = (EList<InvOrDefCS>) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createClassifierContextDeclCS( >- (PathNameCS)dtParser.getSym(2), >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > list > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), list.get(list.size()-1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), list.get(list.size()-1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 261: invOrDefCSm ::= invOrDefCS > // > case 261: { > > EList<InvOrDefCS> result = new BasicEList<InvOrDefCS>(); >- result.add((InvOrDefCS)dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add((InvOrDefCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 262: invOrDefCSm ::= invOrDefCSm invOrDefCS > // > case 262: { > >- EList<InvOrDefCS> result = (EList<InvOrDefCS>)dtParser.getSym(1); >- result.add((InvOrDefCS)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList<InvOrDefCS> result = (EList<InvOrDefCS>) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add((InvOrDefCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 263: invOrDefCS ::= inv simpleNameCSopt : oclExpressionCS > // > case 263: { > > CSTNode result = createInvCS( >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 264: invOrDefCS ::= def simpleNameCSopt : defExpressionCS > // > case 264: { > > CSTNode result = createDefCS( >- (SimpleNameCS)dtParser.getSym(2), >- (DefExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (DefExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 265: defExpressionCS ::= typedVariableCS = oclExpressionCS > // > case 265: { > >- VariableCS variableCS = (VariableCS)dtParser.getSym(1); >- OCLExpressionCS expressionCS = (OCLExpressionCS)dtParser.getSym(3); >+ VariableCS variableCS = (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ OCLExpressionCS expressionCS = (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createDefExpressionCS( > variableCS, > null, > expressionCS > ); > setOffsets(result, variableCS, expressionCS); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 266: defExpressionCS ::= operationCS1 = oclExpressionCS > // >@@ -1992,51 +2596,65 @@ > > CSTNode result = createDefExpressionCS( > null, >- (OperationCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(3) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ (OperationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 267: operationContextDeclCS ::= context operationCS2 prePostOrBodyDeclCSm > // > case 267: { > >- EList prePostOrBodyDecls = (EList)dtParser.getSym(3); >+ EList prePostOrBodyDecls = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createOperationContextDeclCS( >- (OperationCS)dtParser.getSym(2), >+ (OperationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > prePostOrBodyDecls > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)prePostOrBodyDecls.get(prePostOrBodyDecls.size()-1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode)prePostOrBodyDecls.get(prePostOrBodyDecls.size()-1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 268: prePostOrBodyDeclCSm ::= prePostOrBodyDeclCS > // > case 268: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 269: prePostOrBodyDeclCSm ::= prePostOrBodyDeclCSm prePostOrBodyDeclCS > // > case 269: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 270: prePostOrBodyDeclCS ::= pre simpleNameCSopt : oclExpressionCS > // >@@ -2044,14 +2662,19 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.PRE_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 271: prePostOrBodyDeclCS ::= post simpleNameCSopt : oclExpressionCS > // >@@ -2059,14 +2682,19 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.POST_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 272: prePostOrBodyDeclCS ::= body simpleNameCSopt : oclExpressionCS > // >@@ -2074,15 +2702,20 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.BODY_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > >+ > default: > break; > } >Index: src/org/eclipse/ocl/parser/OCLProblemHandler.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLProblemHandler.java,v >retrieving revision 1.1 >diff -u -r1.1 OCLProblemHandler.java >--- src/org/eclipse/ocl/parser/OCLProblemHandler.java 11 Oct 2007 23:05:00 -0000 1.1 >+++ src/org/eclipse/ocl/parser/OCLProblemHandler.java 1 Sep 2009 17:10:49 -0000 >@@ -17,6 +17,8 @@ > */ > package org.eclipse.ocl.parser; > >+import lpg.runtime.IPrsStream; >+ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >@@ -81,17 +83,17 @@ > @Override > public void lexerProblem(Severity problemSeverity, String problemMessage, > String processingContext, int startOffset, int endOffset) { >- int leftToken = getParser().getTokenIndexAtCharacter(startOffset); >+ int leftToken = getIPrsStream().getTokenIndexAtCharacter(startOffset); > if (leftToken < 0) { > leftToken = -leftToken; > } > String message = problemMessage >- + " (" + getParser().getKind(leftToken) + ") : " //$NON-NLS-1$//$NON-NLS-2$ >- + getParser().getStartOffset(leftToken) >- + ":" + getParser().getLineNumberOfTokenAt(leftToken) //$NON-NLS-1$ >- + ":" + getParser().getColumnOfTokenAt(leftToken) //$NON-NLS-1$ >- + ":" + getParser().getTokenLength(leftToken) //$NON-NLS-1$ >- + " " + getParser().getTokenText(leftToken); //$NON-NLS-1$ >+ + " (" + getIPrsStream().getKind(leftToken) + ") : " //$NON-NLS-1$//$NON-NLS-2$ >+ + getIPrsStream().getStartOffset(leftToken) >+ + ":" + getIPrsStream().getLineNumberOfTokenAt(leftToken) //$NON-NLS-1$ >+ + ":" + getIPrsStream().getColumnOfTokenAt(leftToken) //$NON-NLS-1$ >+ + ":" + getIPrsStream().getTokenLength(leftToken) //$NON-NLS-1$ >+ + " " + getIPrsStream().getTokenText(leftToken); //$NON-NLS-1$ > handleProblem(problemSeverity, Phase.LEXER, message, > processingContext, startOffset, endOffset); > } >@@ -99,22 +101,29 @@ > @Override > public void parserProblem(Severity problemSeverity, String problemMessage, > String processingContext, int startOffset, int endOffset) { >- int leftToken = getParser().getTokenIndexAtCharacter(startOffset); >- int rightToken = getParser().getTokenIndexAtCharacter(endOffset); >+ int leftToken = getIPrsStream().getTokenIndexAtCharacter(startOffset); >+ int rightToken = getIPrsStream().getTokenIndexAtCharacter(endOffset); > int leftTokenLoc = (leftToken > rightToken ? rightToken : leftToken); > int rightTokenLoc = rightToken; >- int line = getParser().getLine(leftTokenLoc) + getErrorReportLineOffset(); >+ int line = getIPrsStream().getLine(leftTokenLoc) + getErrorReportLineOffset(); > if (line > 0) { > String locInfo = OCLMessages.bind(OCLMessages.ErrorReport_RowColumn, > new Object[]{ >- new Integer((getParser().getLine(leftTokenLoc) + getErrorReportLineOffset())), >- new Integer(getParser().getColumn(leftTokenLoc)), >- new Integer((getParser().getEndLine(rightTokenLoc) + getErrorReportLineOffset())), >- new Integer(getParser().getEndColumn(rightTokenLoc)) >+ new Integer((getIPrsStream().getLine(leftTokenLoc) + getErrorReportLineOffset())), >+ new Integer(getIPrsStream().getColumn(leftTokenLoc)), >+ new Integer((getIPrsStream().getEndLine(rightTokenLoc) + getErrorReportLineOffset())), >+ new Integer(getIPrsStream().getEndColumn(rightTokenLoc)) > }); > problemMessage = locInfo + " " + problemMessage; //$NON-NLS-1$ > } > handleProblem(problemSeverity, Phase.PARSER, problemMessage, > processingContext, startOffset, endOffset); > } >+ >+ /** >+ * @since 3.0 >+ */ >+ protected IPrsStream getIPrsStream() { >+ return getParser().getIPrsStream(); >+ } > } >Index: src/org/eclipse/ocl/parser/OCLParsersym.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParsersym.java,v >retrieving revision 1.6 >diff -u -r1.6 OCLParsersym.java >--- src/org/eclipse/ocl/parser/OCLParsersym.java 28 Aug 2009 20:43:11 -0000 1.6 >+++ src/org/eclipse/ocl/parser/OCLParsersym.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,8 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+* Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -14,25 +15,16 @@ > * E.D.Willink - Bugs 225493, 243976, 259818 > * Zeligsoft - Bug 243976 > * Borland - Bug 242880 >+* Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLParsersym.java,v 1.6 2009/08/28 20:43:11 ewillink Exp $ >+* $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ > */ > > package org.eclipse.ocl.parser; > >-/** >- * @noimplement This interface is not intended to be implemented by clients. >- * @noextend This interface is not intended to be extended by clients. >- */ >-@SuppressWarnings("nls") > public interface OCLParsersym { >- /** >- * Token kind codes. >- * >- * @noreference These constants are not intended to be referenced by clients. >- */ > public final static int > TK_NUMERIC_OPERATION = 60, > TK_STRING_LITERAL = 61, >@@ -136,7 +128,7 @@ > TK_MULTI_LINE_COMMENT = 100, > TK_ERROR_TOKEN = 101; > >- public final static String orderedTerminalSymbols[] = { >+ public final static String orderedTerminalSymbols[] = { > "", > "LPAREN", > "IDENTIFIER", >@@ -241,5 +233,6 @@ > "ERROR_TOKEN" > }; > >+ public final static int numTokenKinds = orderedTerminalSymbols.length; > public final static boolean isValidForParser = true; > } >Index: src/org/eclipse/ocl/parser/OCLKWLexer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLKWLexer.java,v >retrieving revision 1.3 >diff -u -r1.3 OCLKWLexer.java >--- src/org/eclipse/ocl/parser/OCLKWLexer.java 28 Aug 2009 20:43:11 -0000 1.3 >+++ src/org/eclipse/ocl/parser/OCLKWLexer.java 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2007 IBM Corporation and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,17 +10,18 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLKWLexer.java,v 1.3 2009/08/28 20:43:11 ewillink Exp $ >+* > */ > > package org.eclipse.ocl.parser; > > > >-public class OCLKWLexer extends OCLKWLexerprs implements OCLParsersym >+public class OCLKWLexer extends OCLKWLexerprs > { > private char[] inputChars; > private final int keywordKind[] = new int[63 + 1]; >@@ -57,66 +58,68 @@ > final static int tokenKind[] = new int[128]; > static > { >- tokenKind['$'] = Char_DollarSign; >- >- tokenKind['a'] = Char_a; >- tokenKind['b'] = Char_b; >- tokenKind['c'] = Char_c; >- tokenKind['d'] = Char_d; >- tokenKind['e'] = Char_e; >- tokenKind['f'] = Char_f; >- tokenKind['g'] = Char_g; >- tokenKind['h'] = Char_h; >- tokenKind['i'] = Char_i; >- tokenKind['j'] = Char_j; >- tokenKind['k'] = Char_k; >- tokenKind['l'] = Char_l; >- tokenKind['m'] = Char_m; >- tokenKind['n'] = Char_n; >- tokenKind['o'] = Char_o; >- tokenKind['p'] = Char_p; >- tokenKind['q'] = Char_q; >- tokenKind['r'] = Char_r; >- tokenKind['s'] = Char_s; >- tokenKind['t'] = Char_t; >- tokenKind['u'] = Char_u; >- tokenKind['v'] = Char_v; >- tokenKind['w'] = Char_w; >- tokenKind['x'] = Char_x; >- tokenKind['y'] = Char_y; >- tokenKind['z'] = Char_z; >- >- tokenKind['A'] = Char_A; >- tokenKind['B'] = Char_B; >- tokenKind['C'] = Char_C; >- tokenKind['D'] = Char_D; >- tokenKind['E'] = Char_E; >- tokenKind['F'] = Char_F; >- tokenKind['G'] = Char_G; >- tokenKind['H'] = Char_H; >- tokenKind['I'] = Char_I; >- tokenKind['J'] = Char_J; >- tokenKind['K'] = Char_K; >- tokenKind['L'] = Char_L; >- tokenKind['M'] = Char_M; >- tokenKind['N'] = Char_N; >- tokenKind['O'] = Char_O; >- tokenKind['P'] = Char_P; >- tokenKind['Q'] = Char_Q; >- tokenKind['R'] = Char_R; >- tokenKind['S'] = Char_S; >- tokenKind['T'] = Char_T; >- tokenKind['U'] = Char_U; >- tokenKind['V'] = Char_V; >- tokenKind['W'] = Char_W; >- tokenKind['X'] = Char_X; >- tokenKind['Y'] = Char_Y; >- tokenKind['Z'] = Char_Z; >+ tokenKind['$'] = OCLKWLexersym.Char_DollarSign; >+ tokenKind['%'] = OCLKWLexersym.Char_Percent; >+ tokenKind['_'] = OCLKWLexersym.Char__; >+ >+ tokenKind['a'] = OCLKWLexersym.Char_a; >+ tokenKind['b'] = OCLKWLexersym.Char_b; >+ tokenKind['c'] = OCLKWLexersym.Char_c; >+ tokenKind['d'] = OCLKWLexersym.Char_d; >+ tokenKind['e'] = OCLKWLexersym.Char_e; >+ tokenKind['f'] = OCLKWLexersym.Char_f; >+ tokenKind['g'] = OCLKWLexersym.Char_g; >+ tokenKind['h'] = OCLKWLexersym.Char_h; >+ tokenKind['i'] = OCLKWLexersym.Char_i; >+ tokenKind['j'] = OCLKWLexersym.Char_j; >+ tokenKind['k'] = OCLKWLexersym.Char_k; >+ tokenKind['l'] = OCLKWLexersym.Char_l; >+ tokenKind['m'] = OCLKWLexersym.Char_m; >+ tokenKind['n'] = OCLKWLexersym.Char_n; >+ tokenKind['o'] = OCLKWLexersym.Char_o; >+ tokenKind['p'] = OCLKWLexersym.Char_p; >+ tokenKind['q'] = OCLKWLexersym.Char_q; >+ tokenKind['r'] = OCLKWLexersym.Char_r; >+ tokenKind['s'] = OCLKWLexersym.Char_s; >+ tokenKind['t'] = OCLKWLexersym.Char_t; >+ tokenKind['u'] = OCLKWLexersym.Char_u; >+ tokenKind['v'] = OCLKWLexersym.Char_v; >+ tokenKind['w'] = OCLKWLexersym.Char_w; >+ tokenKind['x'] = OCLKWLexersym.Char_x; >+ tokenKind['y'] = OCLKWLexersym.Char_y; >+ tokenKind['z'] = OCLKWLexersym.Char_z; >+ >+ tokenKind['A'] = OCLKWLexersym.Char_A; >+ tokenKind['B'] = OCLKWLexersym.Char_B; >+ tokenKind['C'] = OCLKWLexersym.Char_C; >+ tokenKind['D'] = OCLKWLexersym.Char_D; >+ tokenKind['E'] = OCLKWLexersym.Char_E; >+ tokenKind['F'] = OCLKWLexersym.Char_F; >+ tokenKind['G'] = OCLKWLexersym.Char_G; >+ tokenKind['H'] = OCLKWLexersym.Char_H; >+ tokenKind['I'] = OCLKWLexersym.Char_I; >+ tokenKind['J'] = OCLKWLexersym.Char_J; >+ tokenKind['K'] = OCLKWLexersym.Char_K; >+ tokenKind['L'] = OCLKWLexersym.Char_L; >+ tokenKind['M'] = OCLKWLexersym.Char_M; >+ tokenKind['N'] = OCLKWLexersym.Char_N; >+ tokenKind['O'] = OCLKWLexersym.Char_O; >+ tokenKind['P'] = OCLKWLexersym.Char_P; >+ tokenKind['Q'] = OCLKWLexersym.Char_Q; >+ tokenKind['R'] = OCLKWLexersym.Char_R; >+ tokenKind['S'] = OCLKWLexersym.Char_S; >+ tokenKind['T'] = OCLKWLexersym.Char_T; >+ tokenKind['U'] = OCLKWLexersym.Char_U; >+ tokenKind['V'] = OCLKWLexersym.Char_V; >+ tokenKind['W'] = OCLKWLexersym.Char_W; >+ tokenKind['X'] = OCLKWLexersym.Char_X; >+ tokenKind['Y'] = OCLKWLexersym.Char_Y; >+ tokenKind['Z'] = OCLKWLexersym.Char_Z; > }; > > final int getKind(char c) > { >- return (c < 128 ? tokenKind[c] : 0); >+ return (((c & 0xFFFFFF80) == 0) /* 0 <= c < 128? */ ? tokenKind[c] : 0); > } > > >@@ -128,382 +131,444 @@ > // > // Rule 1: KeyWord ::= s e l f > // >- keywordKind[1] = (TK_self); >+ >+ keywordKind[1] = (OCLParsersym.TK_self); > > > // > // Rule 2: KeyWord ::= i n v > // >- keywordKind[2] = (TK_inv); >+ >+ keywordKind[2] = (OCLParsersym.TK_inv); > > > // > // Rule 3: KeyWord ::= p r e > // >- keywordKind[3] = (TK_pre); >+ >+ keywordKind[3] = (OCLParsersym.TK_pre); > > > // > // Rule 4: KeyWord ::= p o s t > // >- keywordKind[4] = (TK_post); >+ >+ keywordKind[4] = (OCLParsersym.TK_post); > > > // > // Rule 5: KeyWord ::= b o d y > // >- keywordKind[5] = (TK_body); >+ >+ keywordKind[5] = (OCLParsersym.TK_body); > > > // > // Rule 6: KeyWord ::= c o n t e x t > // >- keywordKind[6] = (TK_context); >+ >+ keywordKind[6] = (OCLParsersym.TK_context); > > > // > // Rule 7: KeyWord ::= p a c k a g e > // >- keywordKind[7] = (TK_package); >+ >+ keywordKind[7] = (OCLParsersym.TK_package); > > > // > // Rule 8: KeyWord ::= e n d p a c k a g e > // >- keywordKind[8] = (TK_endpackage); >+ >+ keywordKind[8] = (OCLParsersym.TK_endpackage); > > > // > // Rule 9: KeyWord ::= d e f > // >- keywordKind[9] = (TK_def); >+ >+ keywordKind[9] = (OCLParsersym.TK_def); > > > // > // Rule 10: KeyWord ::= d e r i v e > // >- keywordKind[10] = (TK_derive); >+ >+ keywordKind[10] = (OCLParsersym.TK_derive); > > > // > // Rule 11: KeyWord ::= i n i t > // >- keywordKind[11] = (TK_init); >+ >+ keywordKind[11] = (OCLParsersym.TK_init); > > > // > // Rule 12: KeyWord ::= i f > // >- keywordKind[12] = (TK_if); >+ >+ keywordKind[12] = (OCLParsersym.TK_if); > > > // > // Rule 13: KeyWord ::= t h e n > // >- keywordKind[13] = (TK_then); >+ >+ keywordKind[13] = (OCLParsersym.TK_then); > > > // > // Rule 14: KeyWord ::= e l s e > // >- keywordKind[14] = (TK_else); >+ >+ keywordKind[14] = (OCLParsersym.TK_else); > > > // > // Rule 15: KeyWord ::= e n d i f > // >- keywordKind[15] = (TK_endif); >+ >+ keywordKind[15] = (OCLParsersym.TK_endif); > > > // > // Rule 16: KeyWord ::= a n d > // >- keywordKind[16] = (TK_and); >+ >+ keywordKind[16] = (OCLParsersym.TK_and); > > > // > // Rule 17: KeyWord ::= o r > // >- keywordKind[17] = (TK_or); >+ >+ keywordKind[17] = (OCLParsersym.TK_or); > > > // > // Rule 18: KeyWord ::= x o r > // >- keywordKind[18] = (TK_xor); >+ >+ keywordKind[18] = (OCLParsersym.TK_xor); > > > // > // Rule 19: KeyWord ::= n o t > // >- keywordKind[19] = (TK_not); >+ >+ keywordKind[19] = (OCLParsersym.TK_not); > > > // > // Rule 20: KeyWord ::= i m p l i e s > // >- keywordKind[20] = (TK_implies); >+ >+ keywordKind[20] = (OCLParsersym.TK_implies); > > > // > // Rule 21: KeyWord ::= l e t > // >- keywordKind[21] = (TK_let); >+ >+ keywordKind[21] = (OCLParsersym.TK_let); > > > // > // Rule 22: KeyWord ::= i n > // >- keywordKind[22] = (TK_in); >+ >+ keywordKind[22] = (OCLParsersym.TK_in); > > > // > // Rule 23: KeyWord ::= t r u e > // >- keywordKind[23] = (TK_true); >+ >+ keywordKind[23] = (OCLParsersym.TK_true); > > > // > // Rule 24: KeyWord ::= f a l s e > // >- keywordKind[24] = (TK_false); >+ >+ keywordKind[24] = (OCLParsersym.TK_false); > > > // > // Rule 25: KeyWord ::= S e t > // >- keywordKind[25] = (TK_Set); >+ >+ keywordKind[25] = (OCLParsersym.TK_Set); > > > // > // Rule 26: KeyWord ::= B a g > // >- keywordKind[26] = (TK_Bag); >+ >+ keywordKind[26] = (OCLParsersym.TK_Bag); > > > // > // Rule 27: KeyWord ::= S e q u e n c e > // >- keywordKind[27] = (TK_Sequence); >+ >+ keywordKind[27] = (OCLParsersym.TK_Sequence); > > > // > // Rule 28: KeyWord ::= C o l l e c t i o n > // >- keywordKind[28] = (TK_Collection); >+ >+ keywordKind[28] = (OCLParsersym.TK_Collection); > > > // > // Rule 29: KeyWord ::= O r d e r e d S e t > // >- keywordKind[29] = (TK_OrderedSet); >+ >+ keywordKind[29] = (OCLParsersym.TK_OrderedSet); > > > // > // Rule 30: KeyWord ::= i t e r a t e > // >- keywordKind[30] = (TK_iterate); >+ >+ keywordKind[30] = (OCLParsersym.TK_iterate); > > > // > // Rule 31: KeyWord ::= f o r A l l > // >- keywordKind[31] = (TK_forAll); >+ >+ keywordKind[31] = (OCLParsersym.TK_forAll); > > > // > // Rule 32: KeyWord ::= e x i s t s > // >- keywordKind[32] = (TK_exists); >+ >+ keywordKind[32] = (OCLParsersym.TK_exists); > > > // > // Rule 33: KeyWord ::= i s U n i q u e > // >- keywordKind[33] = (TK_isUnique); >+ >+ keywordKind[33] = (OCLParsersym.TK_isUnique); > > > // > // Rule 34: KeyWord ::= a n y > // >- keywordKind[34] = (TK_any); >+ >+ keywordKind[34] = (OCLParsersym.TK_any); > > > // > // Rule 35: KeyWord ::= o n e > // >- keywordKind[35] = (TK_one); >+ >+ keywordKind[35] = (OCLParsersym.TK_one); > > > // > // Rule 36: KeyWord ::= c o l l e c t > // >- keywordKind[36] = (TK_collect); >+ >+ keywordKind[36] = (OCLParsersym.TK_collect); > > > // > // Rule 37: KeyWord ::= s e l e c t > // >- keywordKind[37] = (TK_select); >+ >+ keywordKind[37] = (OCLParsersym.TK_select); > > > // > // Rule 38: KeyWord ::= r e j e c t > // >- keywordKind[38] = (TK_reject); >+ >+ keywordKind[38] = (OCLParsersym.TK_reject); > > > // > // Rule 39: KeyWord ::= c o l l e c t N e s t e d > // >- keywordKind[39] = (TK_collectNested); >+ >+ keywordKind[39] = (OCLParsersym.TK_collectNested); > > > // > // Rule 40: KeyWord ::= s o r t e d B y > // >- keywordKind[40] = (TK_sortedBy); >+ >+ keywordKind[40] = (OCLParsersym.TK_sortedBy); > > > // > // Rule 41: KeyWord ::= c l o s u r e > // >- keywordKind[41] = (TK_closure); >+ >+ keywordKind[41] = (OCLParsersym.TK_closure); > > > // > // Rule 42: KeyWord ::= o c l I s K i n d O f > // >- keywordKind[42] = (TK_oclIsKindOf); >+ >+ keywordKind[42] = (OCLParsersym.TK_oclIsKindOf); > > > // > // Rule 43: KeyWord ::= o c l I s T y p e O f > // >- keywordKind[43] = (TK_oclIsTypeOf); >+ >+ keywordKind[43] = (OCLParsersym.TK_oclIsTypeOf); > > > // > // Rule 44: KeyWord ::= o c l A s T y p e > // >- keywordKind[44] = (TK_oclAsType); >+ >+ keywordKind[44] = (OCLParsersym.TK_oclAsType); > > > // > // Rule 45: KeyWord ::= o c l I s N e w > // >- keywordKind[45] = (TK_oclIsNew); >+ >+ keywordKind[45] = (OCLParsersym.TK_oclIsNew); > > > // > // Rule 46: KeyWord ::= o c l I s U n d e f i n e d > // >- keywordKind[46] = (TK_oclIsUndefined); >+ >+ keywordKind[46] = (OCLParsersym.TK_oclIsUndefined); > > > // > // Rule 47: KeyWord ::= o c l I s I n v a l i d > // >- keywordKind[47] = (TK_oclIsInvalid); >+ >+ keywordKind[47] = (OCLParsersym.TK_oclIsInvalid); > > > // > // Rule 48: KeyWord ::= o c l I s I n S t a t e > // >- keywordKind[48] = (TK_oclIsInState); >+ >+ keywordKind[48] = (OCLParsersym.TK_oclIsInState); > > > // > // Rule 49: KeyWord ::= a l l I n s t a n c e s > // >- keywordKind[49] = (TK_allInstances); >+ >+ keywordKind[49] = (OCLParsersym.TK_allInstances); > > > // > // Rule 50: KeyWord ::= S t r i n g > // >- keywordKind[50] = (TK_String); >+ >+ keywordKind[50] = (OCLParsersym.TK_String); > > > // > // Rule 51: KeyWord ::= I n t e g e r > // >- keywordKind[51] = (TK_Integer); >+ >+ keywordKind[51] = (OCLParsersym.TK_Integer); > > > // > // Rule 52: KeyWord ::= U n l i m i t e d N a t u r a l > // >- keywordKind[52] = (TK_UnlimitedNatural); >+ >+ keywordKind[52] = (OCLParsersym.TK_UnlimitedNatural); > > > // > // Rule 53: KeyWord ::= R e a l > // >- keywordKind[53] = (TK_Real); >+ >+ keywordKind[53] = (OCLParsersym.TK_Real); > > > // > // Rule 54: KeyWord ::= B o o l e a n > // >- keywordKind[54] = (TK_Boolean); >+ >+ keywordKind[54] = (OCLParsersym.TK_Boolean); > > > // > // Rule 55: KeyWord ::= T u p l e > // >- keywordKind[55] = (TK_Tuple); >+ >+ keywordKind[55] = (OCLParsersym.TK_Tuple); > > > // > // Rule 56: KeyWord ::= O c l A n y > // >- keywordKind[56] = (TK_OclAny); >+ >+ keywordKind[56] = (OCLParsersym.TK_OclAny); > > > // > // Rule 57: KeyWord ::= O c l V o i d > // >- keywordKind[57] = (TK_OclVoid); >+ >+ keywordKind[57] = (OCLParsersym.TK_OclVoid); > > > // > // Rule 58: KeyWord ::= I n v a l i d > // >- keywordKind[58] = (TK_Invalid); >+ >+ keywordKind[58] = (OCLParsersym.TK_Invalid); > > > // > // Rule 59: KeyWord ::= O c l M e s s a g e > // >- keywordKind[59] = (TK_OclMessage); >+ >+ keywordKind[59] = (OCLParsersym.TK_OclMessage); > > > // > // Rule 60: KeyWord ::= n u l l > // >- keywordKind[60] = (TK_null); >+ >+ keywordKind[60] = (OCLParsersym.TK_null); > > > // > // Rule 61: KeyWord ::= O c l I n v a l i d > // >- keywordKind[61] = (TK_OclInvalid); >+ >+ keywordKind[61] = (OCLParsersym.TK_OclInvalid); > > > // > // Rule 62: KeyWord ::= a t t r > // >- keywordKind[62] = (TK_attr); >+ >+ keywordKind[62] = (OCLParsersym.TK_attr); > > > // > // Rule 63: KeyWord ::= o p e r > // >- keywordKind[63] = (TK_oper); >+ >+ keywordKind[63] = (OCLParsersym.TK_oper); > > >- > for (int i = 0; i < keywordKind.length; i++) > { > if (keywordKind[i] == 0) >Index: src/org/eclipse/ocl/parser/OCLParser.g >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParser.g,v >retrieving revision 1.3 >diff -u -r1.3 OCLParser.g >--- src/org/eclipse/ocl/parser/OCLParser.g 13 Jan 2009 19:44:29 -0000 1.3 >+++ src/org/eclipse/ocl/parser/OCLParser.g 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > --/** > -- * <copyright> > -- * >--- * Copyright (c) 2005, 2009 IBM Corporation and others. >+-- * Copyright (c) 2005, 2009 IBM Corporation, Open Canarias S.L. and others. > -- * All rights reserved. This program and the accompanying materials > -- * are made available under the terms of the Eclipse Public License v1.0 > -- * which accompanies this distribution, and is available at >@@ -11,6 +11,7 @@ > -- * IBM - Initial API and implementation > -- * E.D. Willink - Elimination of some shift-reduce conflicts > -- * - Bug 259818 >+-- * Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > -- * > -- * </copyright> > -- * >@@ -22,34 +23,29 @@ > > %options escape=$ > %options la=2 >-%options table=java > %options fp=OCLParser,prefix=TK_ >-%options error-maps >-%options scopes >-%options margin=4 > %options noserialize > %options package=org.eclipse.ocl.parser >-%options import_terminals=OCLLexer.g >+%options import_terminals=OCLLexer.gi > %options ast_type=CSTNode >-%options programming_language=java >-%options action=("*.java", "/.", "./") >-%options ParseTable=lpg.lpgjavaruntime.ParseTable >+%options ParseTable=lpg.runtime.ParseTable >+%options template=dtParserTemplateF.gi > %options include_directory=".;../lpg" > >-$Start >+%Start > goal >-$End >+%End > >-$Include >- EssentialOCL.g >-$End >+%Import >+ EssentialOCL.gi >+%End > >-$Define >+%Define > $environment_class /.Environment<?,?,?,?,?,?,?,?,?,?,?,?>./ > $lex_stream_class /.OCLLexer./ >-$End >+%End > >-$Globals >+%Globals > /. > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.cst.DefExpressionCS; >@@ -59,9 +55,9 @@ > import org.eclipse.ocl.cst.PackageDeclarationCS; > import org.eclipse.ocl.cst.PrePostOrBodyEnum; > ./ >-$End >+%End > >-$KeyWords >+%KeyWords > context > package > >@@ -71,9 +67,9 @@ > -- > attr > oper >-$End >+%End > >-$Rules >+%Rules > -- opt = optional > -- m = multiple > >@@ -83,56 +79,56 @@ > goal -> prePostOrBodyDeclCS > goal -> initOrDerValueCS > goal -> variableCS >- goal -> $empty >+ goal -> %empty > > packageDeclarationCSm -> packageDeclarationCS > packageDeclarationCSm ::= packageDeclarationCSm packageDeclarationCS >- /.$BeginJava >+ /.$BeginCode > PackageDeclarationCS result = (PackageDeclarationCS)$getSym(2); > result.setPackageDeclarationCS((PackageDeclarationCS) $getSym(1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > packageDeclarationCS ::= package pathNameCS contextDeclCSmopt endpackage >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createPackageDeclarationCS( > (PathNameCS)$getSym(2), > (EList)$getSym(3) > ); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > packageDeclarationCS1 ::= contextDeclCSm >- /.$BeginJava >+ /.$BeginCode > EList contextDecls = (EList)$getSym(1); > CSTNode result = createPackageDeclarationCS(null, contextDecls); > if (!contextDecls.isEmpty()) { > setOffsets(result, (CSTNode)contextDecls.get(0), (CSTNode)contextDecls.get(contextDecls.size()-1)); > } > $setResult(result); >- $EndJava >+ $EndCode > ./ > > >- contextDeclCSmopt ::= $empty >+ contextDeclCSmopt ::= %empty > /.$EmptyListAction./ > contextDeclCSmopt -> contextDeclCSm > > contextDeclCSm ::= contextDeclCS >- /.$BeginJava >+ /.$BeginCode > EList result = new BasicEList(); > result.add($getSym(1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > contextDeclCSm ::= contextDeclCSm contextDeclCS >- /.$BeginJava >+ /.$BeginCode > EList result = (EList)$getSym(1); > result.add($getSym(2)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > contextDeclCS -> classifierContextDeclCS >@@ -140,7 +136,7 @@ > contextDeclCS -> propertyContextCS > > propertyContextCS ::= context pathNameCS '::' simpleNameCS ':' typeCS initOrDerValueCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createPropertyContextCS( > (PathNameCS)$getSym(2), > (SimpleNameCS)$getSym(4), >@@ -149,11 +145,11 @@ > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(7)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > initOrDerValueCS ::= initOrDerValueCSopt init ':' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createInitValueCS( > (InitOrDerValueCS)$getSym(1), > (OCLExpressionCS)$getSym(4) >@@ -164,11 +160,11 @@ > setOffsets(result, getIToken($getToken(2)), (CSTNode)$getSym(4)); > } > $setResult(result); >- $EndJava >+ $EndCode > ./ > > initOrDerValueCS ::= initOrDerValueCSopt derive ':' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createDerValueCS( > (InitOrDerValueCS)$getSym(1), > (OCLExpressionCS)$getSym(4) >@@ -179,15 +175,15 @@ > setOffsets(result, getIToken($getToken(2)), (CSTNode)$getSym(4)); > } > $setResult(result); >- $EndJava >+ $EndCode > ./ > >- initOrDerValueCSopt ::= $empty >+ initOrDerValueCSopt ::= %empty > /.$NullAction./ > initOrDerValueCSopt -> initOrDerValueCS > > classifierContextDeclCS ::= context pathNameCS invOrDefCSm >- /.$BeginJava >+ /.$BeginCode > EList<InvOrDefCS> list = (EList<InvOrDefCS>)$getSym(3); > CSTNode result = createClassifierContextDeclCS( > (PathNameCS)$getSym(2), >@@ -195,47 +191,47 @@ > ); > setOffsets(result, getIToken($getToken(1)), list.get(list.size()-1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > invOrDefCSm ::= invOrDefCS >- /.$BeginJava >+ /.$BeginCode > EList<InvOrDefCS> result = new BasicEList<InvOrDefCS>(); > result.add((InvOrDefCS)$getSym(1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > invOrDefCSm ::= invOrDefCSm invOrDefCS >- /.$BeginJava >+ /.$BeginCode > EList<InvOrDefCS> result = (EList<InvOrDefCS>)$getSym(1); > result.add((InvOrDefCS)$getSym(2)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > invOrDefCS ::= inv simpleNameCSopt ':' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createInvCS( > (SimpleNameCS)$getSym(2), > (OCLExpressionCS)$getSym(4) > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(4)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > invOrDefCS ::= def simpleNameCSopt ':' defExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createDefCS( > (SimpleNameCS)$getSym(2), > (DefExpressionCS)$getSym(4) > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(4)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > defExpressionCS ::= typedVariableCS '=' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > VariableCS variableCS = (VariableCS)$getSym(1); > OCLExpressionCS expressionCS = (OCLExpressionCS)$getSym(3); > CSTNode result = createDefExpressionCS( >@@ -245,10 +241,10 @@ > ); > setOffsets(result, variableCS, expressionCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > defExpressionCS ::= operationCS1 '=' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createDefExpressionCS( > null, > (OperationCS)$getSym(1), >@@ -256,11 +252,11 @@ > ); > setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > operationContextDeclCS ::= context operationCS2 prePostOrBodyDeclCSm >- /.$BeginJava >+ /.$BeginCode > EList prePostOrBodyDecls = (EList)$getSym(3); > CSTNode result = createOperationContextDeclCS( > (OperationCS)$getSym(2), >@@ -268,26 +264,26 @@ > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)prePostOrBodyDecls.get(prePostOrBodyDecls.size()-1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > prePostOrBodyDeclCSm ::= prePostOrBodyDeclCS >- /.$BeginJava >+ /.$BeginCode > EList result = new BasicEList(); > result.add($getSym(1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > prePostOrBodyDeclCSm ::= prePostOrBodyDeclCSm prePostOrBodyDeclCS >- /.$BeginJava >+ /.$BeginCode > EList result = (EList)$getSym(1); > result.add($getSym(2)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > prePostOrBodyDeclCS ::= pre simpleNameCSopt ':' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.PRE_LITERAL, > (SimpleNameCS)$getSym(2), >@@ -295,10 +291,10 @@ > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(4)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > prePostOrBodyDeclCS ::= post simpleNameCSopt ':' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.POST_LITERAL, > (SimpleNameCS)$getSym(2), >@@ -306,10 +302,10 @@ > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(4)); > $setResult(result); >- $EndJava >+ $EndCode > ./ > prePostOrBodyDeclCS ::= body simpleNameCSopt ':' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.BODY_LITERAL, > (SimpleNameCS)$getSym(2), >@@ -317,6 +313,6 @@ > ); > setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(4)); > $setResult(result); >- $EndJava >+ $EndCode > ./ >-$End >+%End >Index: src/org/eclipse/ocl/parser/OCLLexerprs.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLLexerprs.java,v >retrieving revision 1.4 >diff -u -r1.4 OCLLexerprs.java >--- src/org/eclipse/ocl/parser/OCLLexerprs.java 28 Aug 2009 20:43:11 -0000 1.4 >+++ src/org/eclipse/ocl/parser/OCLLexerprs.java 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,16 +10,112 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* - Bug 259818 > * Borland - Bug 242880 >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLLexerprs.java,v 1.4 2009/08/28 20:43:11 ewillink Exp $ >+* $Id$ > */ > > package org.eclipse.ocl.parser; > >-public class OCLLexerprs implements lpg.lpgjavaruntime.ParseTable, OCLLexersym { >+public class OCLLexerprs implements lpg.runtime.ParseTable, OCLLexersym { >+ public final static int ERROR_SYMBOL = 0; >+ public final int getErrorSymbol() { return ERROR_SYMBOL; } >+ >+ public final static int SCOPE_UBOUND = 0; >+ public final int getScopeUbound() { return SCOPE_UBOUND; } >+ >+ public final static int SCOPE_SIZE = 0; >+ public final int getScopeSize() { return SCOPE_SIZE; } >+ >+ public final static int MAX_NAME_LENGTH = 0; >+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >+ >+ public final static int NUM_STATES = 50; >+ public final int getNumStates() { return NUM_STATES; } >+ >+ public final static int NT_OFFSET = 103; >+ public final int getNtOffset() { return NT_OFFSET; } >+ >+ public final static int LA_STATE_OFFSET = 824; >+ public final int getLaStateOffset() { return LA_STATE_OFFSET; } >+ >+ public final static int MAX_LA = 1; >+ public final int getMaxLa() { return MAX_LA; } >+ >+ public final static int NUM_RULES = 309; >+ public final int getNumRules() { return NUM_RULES; } >+ >+ public final static int NUM_NONTERMINALS = 44; >+ public final int getNumNonterminals() { return NUM_NONTERMINALS; } >+ >+ public final static int NUM_SYMBOLS = 147; >+ public final int getNumSymbols() { return NUM_SYMBOLS; } >+ >+ public final static int SEGMENT_SIZE = 8192; >+ public final int getSegmentSize() { return SEGMENT_SIZE; } >+ >+ public final static int START_STATE = 310; >+ public final int getStartState() { return START_STATE; } >+ >+ public final static int IDENTIFIER_SYMBOL = 0; >+ public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; } >+ >+ public final static int EOFT_SYMBOL = 99; >+ public final int getEoftSymbol() { return EOFT_SYMBOL; } >+ >+ public final static int EOLT_SYMBOL = 104; >+ public final int getEoltSymbol() { return EOLT_SYMBOL; } >+ >+ public final static int ACCEPT_ACTION = 514; >+ public final int getAcceptAction() { return ACCEPT_ACTION; } >+ >+ public final static int ERROR_ACTION = 515; >+ public final int getErrorAction() { return ERROR_ACTION; } >+ >+ public final static boolean BACKTRACK = false; >+ public final boolean getBacktrack() { return BACKTRACK; } >+ >+ public final int getStartSymbol() { return lhs(0); } >+ public final boolean isValidForParser() { return OCLLexersym.isValidForParser; } >+ >+ >+ public interface IsNullable { >+ public final static byte isNullable[] = {0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,1,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,1,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0 >+ }; >+ }; >+ public final static byte isNullable[] = IsNullable.isNullable; >+ public final boolean isNullable(int index) { return isNullable[index] != 0; } >+ >+ public interface ProsthesesIndex { >+ public final static byte prosthesesIndex[] = {0, >+ 20,25,26,27,35,4,15,37,40,43, >+ 24,5,3,6,17,18,23,32,34,36, >+ 41,42,2,7,8,9,10,11,12,13, >+ 14,16,19,33,38,39,44,1,21,22, >+ 28,29,30,31 >+ }; >+ }; >+ public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex; >+ public final int prosthesesIndex(int index) { return prosthesesIndex[index]; } > > public interface IsKeyword { > public final static byte isKeyword[] = {0, >@@ -476,56 +572,21 @@ > public final int scopeState(int index) { return 0;} > public final int inSymb(int index) { return 0;} > public final String name(int index) { return null; } >- public final int getErrorSymbol() { return 0; } >- public final int getScopeUbound() { return 0; } >- public final int getScopeSize() { return 0; } >- public final int getMaxNameLength() { return 0; } >- >- public final static int >- NUM_STATES = 50, >- NT_OFFSET = 103, >- LA_STATE_OFFSET = 824, >- MAX_LA = 1, >- NUM_RULES = 309, >- NUM_NONTERMINALS = 44, >- NUM_SYMBOLS = 147, >- SEGMENT_SIZE = 8192, >- START_STATE = 310, >- IDENTIFIER_SYMBOL = 0, >- EOFT_SYMBOL = 99, >- EOLT_SYMBOL = 104, >- ACCEPT_ACTION = 514, >- ERROR_ACTION = 515; >- >- public final static boolean BACKTRACK = false; >- >- public final int getNumStates() { return NUM_STATES; } >- public final int getNtOffset() { return NT_OFFSET; } >- public final int getLaStateOffset() { return LA_STATE_OFFSET; } >- public final int getMaxLa() { return MAX_LA; } >- public final int getNumRules() { return NUM_RULES; } >- public final int getNumNonterminals() { return NUM_NONTERMINALS; } >- public final int getNumSymbols() { return NUM_SYMBOLS; } >- public final int getSegmentSize() { return SEGMENT_SIZE; } >- public final int getStartState() { return START_STATE; } >- public final int getStartSymbol() { return lhs[0]; } >- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } >- public final int getEoftSymbol() { return EOFT_SYMBOL; } >- public final int getEoltSymbol() { return EOLT_SYMBOL; } >- public final int getAcceptAction() { return ACCEPT_ACTION; } >- public final int getErrorAction() { return ERROR_ACTION; } >- public final boolean isValidForParser() { return isValidForParser; } >- public final boolean getBacktrack() { return BACKTRACK; } >- > public final int originalState(int state) { return 0; } > public final int asi(int state) { return 0; } > public final int nasi(int state) { return 0; } > public final int inSymbol(int state) { return 0; } > >+ /** >+ * assert(! goto_default); >+ */ > public final int ntAction(int state, int sym) { > return baseAction[state + sym]; > } > >+ /** >+ * assert(! shift_default); >+ */ > public final int tAction(int state, int sym) { > int i = baseAction[state], > k = i + sym; >Index: src/org/eclipse/ocl/parser/OCLAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLAnalyzer.java,v >retrieving revision 1.9 >diff -u -r1.9 OCLAnalyzer.java >--- src/org/eclipse/ocl/parser/OCLAnalyzer.java 13 Jan 2009 19:44:29 -0000 1.9 >+++ src/org/eclipse/ocl/parser/OCLAnalyzer.java 1 Sep 2009 17:10:48 -0000 >@@ -86,10 +86,10 @@ > * @param environment > * the symbolic and problem handling environment > */ >- public OCLAnalyzer( >+ /*public OCLAnalyzer( > Environment<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> environment) { > this(new OCLParser(new OCLLexer(environment))); >- } >+ }*/ > > /** > * Construct an OCL semantic analyzer with default syntactic and lexical >@@ -105,7 +105,7 @@ > Environment<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> environment, > String text) { > this(new OCLParser(new OCLLexer(environment, text.toCharArray()))); >- getLexer().lexToTokens(getAbstractParser()); >+ getLexer().lexer(getAbstractParser().getIPrsStream()); > } > > /** >@@ -137,7 +137,7 @@ > * @return the parsed CST, or <code>null</code> if it could not be parsed > */ > public CSTNode parseConcreteSyntax() { >- return getAbstractParser().parseTokensToCST(); >+ return getAbstractParser().parser(); > } > > /** >Index: src/org/eclipse/ocl/parser/OCLKWLexerprs.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLKWLexerprs.java,v >retrieving revision 1.3 >diff -u -r1.3 OCLKWLexerprs.java >--- src/org/eclipse/ocl/parser/OCLKWLexerprs.java 28 Aug 2009 20:43:11 -0000 1.3 >+++ src/org/eclipse/ocl/parser/OCLKWLexerprs.java 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2007 IBM Corporation and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,15 +10,97 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLKWLexerprs.java,v 1.3 2009/08/28 20:43:11 ewillink Exp $ >+* > */ > > package org.eclipse.ocl.parser; > >-public class OCLKWLexerprs implements lpg.lpgjavaruntime.ParseTable, OCLKWLexersym { >+public class OCLKWLexerprs implements lpg.runtime.ParseTable, OCLKWLexersym { >+ public final static int ERROR_SYMBOL = 0; >+ public final int getErrorSymbol() { return ERROR_SYMBOL; } >+ >+ public final static int SCOPE_UBOUND = 0; >+ public final int getScopeUbound() { return SCOPE_UBOUND; } >+ >+ public final static int SCOPE_SIZE = 0; >+ public final int getScopeSize() { return SCOPE_SIZE; } >+ >+ public final static int MAX_NAME_LENGTH = 0; >+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >+ >+ public final static int NUM_STATES = 256; >+ public final int getNumStates() { return NUM_STATES; } >+ >+ public final static int NT_OFFSET = 56; >+ public final int getNtOffset() { return NT_OFFSET; } >+ >+ public final static int LA_STATE_OFFSET = 386; >+ public final int getLaStateOffset() { return LA_STATE_OFFSET; } >+ >+ public final static int MAX_LA = 1; >+ public final int getMaxLa() { return MAX_LA; } >+ >+ public final static int NUM_RULES = 63; >+ public final int getNumRules() { return NUM_RULES; } >+ >+ public final static int NUM_NONTERMINALS = 2; >+ public final int getNumNonterminals() { return NUM_NONTERMINALS; } >+ >+ public final static int NUM_SYMBOLS = 58; >+ public final int getNumSymbols() { return NUM_SYMBOLS; } >+ >+ public final static int SEGMENT_SIZE = 8192; >+ public final int getSegmentSize() { return SEGMENT_SIZE; } >+ >+ public final static int START_STATE = 64; >+ public final int getStartState() { return START_STATE; } >+ >+ public final static int IDENTIFIER_SYMBOL = 0; >+ public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; } >+ >+ public final static int EOFT_SYMBOL = 39; >+ public final int getEoftSymbol() { return EOFT_SYMBOL; } >+ >+ public final static int EOLT_SYMBOL = 57; >+ public final int getEoltSymbol() { return EOLT_SYMBOL; } >+ >+ public final static int ACCEPT_ACTION = 322; >+ public final int getAcceptAction() { return ACCEPT_ACTION; } >+ >+ public final static int ERROR_ACTION = 323; >+ public final int getErrorAction() { return ERROR_ACTION; } >+ >+ public final static boolean BACKTRACK = false; >+ public final boolean getBacktrack() { return BACKTRACK; } >+ >+ public final int getStartSymbol() { return lhs(0); } >+ public final boolean isValidForParser() { return OCLKWLexersym.isValidForParser; } >+ >+ >+ public interface IsNullable { >+ public final static byte isNullable[] = {0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0 >+ }; >+ }; >+ public final static byte isNullable[] = IsNullable.isNullable; >+ public final boolean isNullable(int index) { return isNullable[index] != 0; } >+ >+ public interface ProsthesesIndex { >+ public final static byte prosthesesIndex[] = {0, >+ 2,1 >+ }; >+ }; >+ public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex; >+ public final int prosthesesIndex(int index) { return prosthesesIndex[index]; } > > public interface IsKeyword { > public final static byte isKeyword[] = {0, >@@ -27,7 +109,7 @@ > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, >- 0,0,0,0 >+ 0,0,0,0,0,0 > }; > }; > public final static byte isKeyword[] = IsKeyword.isKeyword; >@@ -156,7 +238,7 @@ > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, >- 0,0,0,0,0 >+ 0,0,0,0,0,0,0 > }; > }; > public final static byte termCheck[] = TermCheck.termCheck; >@@ -242,56 +324,21 @@ > public final int scopeState(int index) { return 0;} > public final int inSymb(int index) { return 0;} > public final String name(int index) { return null; } >- public final int getErrorSymbol() { return 0; } >- public final int getScopeUbound() { return 0; } >- public final int getScopeSize() { return 0; } >- public final int getMaxNameLength() { return 0; } >- >- public final static int >- NUM_STATES = 256, >- NT_OFFSET = 54, >- LA_STATE_OFFSET = 386, >- MAX_LA = 1, >- NUM_RULES = 63, >- NUM_NONTERMINALS = 2, >- NUM_SYMBOLS = 56, >- SEGMENT_SIZE = 8192, >- START_STATE = 64, >- IDENTIFIER_SYMBOL = 0, >- EOFT_SYMBOL = 39, >- EOLT_SYMBOL = 55, >- ACCEPT_ACTION = 322, >- ERROR_ACTION = 323; >- >- public final static boolean BACKTRACK = false; >- >- public final int getNumStates() { return NUM_STATES; } >- public final int getNtOffset() { return NT_OFFSET; } >- public final int getLaStateOffset() { return LA_STATE_OFFSET; } >- public final int getMaxLa() { return MAX_LA; } >- public final int getNumRules() { return NUM_RULES; } >- public final int getNumNonterminals() { return NUM_NONTERMINALS; } >- public final int getNumSymbols() { return NUM_SYMBOLS; } >- public final int getSegmentSize() { return SEGMENT_SIZE; } >- public final int getStartState() { return START_STATE; } >- public final int getStartSymbol() { return lhs[0]; } >- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } >- public final int getEoftSymbol() { return EOFT_SYMBOL; } >- public final int getEoltSymbol() { return EOLT_SYMBOL; } >- public final int getAcceptAction() { return ACCEPT_ACTION; } >- public final int getErrorAction() { return ERROR_ACTION; } >- public final boolean isValidForParser() { return isValidForParser; } >- public final boolean getBacktrack() { return BACKTRACK; } >- > public final int originalState(int state) { return 0; } > public final int asi(int state) { return 0; } > public final int nasi(int state) { return 0; } > public final int inSymbol(int state) { return 0; } > >+ /** >+ * assert(! goto_default); >+ */ > public final int ntAction(int state, int sym) { > return baseAction[state + sym]; > } > >+ /** >+ * assert(! shift_default); >+ */ > public final int tAction(int state, int sym) { > int i = baseAction[state], > k = i + sym; >Index: src/org/eclipse/ocl/parser/OCLKWLexersym.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLKWLexersym.java,v >retrieving revision 1.3 >diff -u -r1.3 OCLKWLexersym.java >--- src/org/eclipse/ocl/parser/OCLKWLexersym.java 28 Aug 2009 20:43:11 -0000 1.3 >+++ src/org/eclipse/ocl/parser/OCLKWLexersym.java 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2007 IBM Corporation and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,22 +10,20 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLKWLexersym.java,v 1.3 2009/08/28 20:43:11 ewillink Exp $ >+* > */ > > package org.eclipse.ocl.parser; > >-/** >- * @noimplement This interface is not intended to be implemented by clients. >- * @noextend This interface is not intended to be extended by clients. >- */ >-@SuppressWarnings("nls") > public interface OCLKWLexersym { > public final static int > Char_DollarSign = 40, >+ Char_Percent = 41, >+ Char__ = 42, > Char_a = 5, > Char_b = 30, > Char_c = 11, >@@ -51,36 +49,36 @@ > Char_w = 33, > Char_x = 19, > Char_y = 16, >- Char_z = 41, >+ Char_z = 43, > Char_A = 20, > Char_B = 29, > Char_C = 34, >- Char_D = 42, >- Char_E = 43, >- Char_F = 44, >- Char_G = 45, >- Char_H = 46, >+ Char_D = 44, >+ Char_E = 45, >+ Char_F = 46, >+ Char_G = 47, >+ Char_H = 48, > Char_I = 18, >- Char_J = 47, >+ Char_J = 49, > Char_K = 35, >- Char_L = 48, >+ Char_L = 50, > Char_M = 36, > Char_N = 21, > Char_O = 22, >- Char_P = 49, >- Char_Q = 50, >+ Char_P = 51, >+ Char_Q = 52, > Char_R = 37, > Char_S = 23, > Char_T = 24, > Char_U = 25, > Char_V = 38, >- Char_W = 51, >- Char_X = 52, >- Char_Y = 53, >- Char_Z = 54, >+ Char_W = 53, >+ Char_X = 54, >+ Char_Y = 55, >+ Char_Z = 56, > Char_EOF = 39; > >- public final static String orderedTerminalSymbols[] = { >+ public final static String orderedTerminalSymbols[] = { > "", > "e", > "t", >@@ -122,6 +120,8 @@ > "V", > "EOF", > "DollarSign", >+ "Percent", >+ "_", > "z", > "D", > "E", >@@ -138,5 +138,6 @@ > "Z" > }; > >+ public final static int numTokenKinds = orderedTerminalSymbols.length; > public final static boolean isValidForParser = true; > } >Index: src/org/eclipse/ocl/parser/AbstractOCLParser.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/AbstractOCLParser.java,v >retrieving revision 1.7 >diff -u -r1.7 AbstractOCLParser.java >--- src/org/eclipse/ocl/parser/AbstractOCLParser.java 5 Mar 2009 14:30:51 -0000 1.7 >+++ src/org/eclipse/ocl/parser/AbstractOCLParser.java 1 Sep 2009 17:10:48 -0000 >@@ -20,12 +20,8 @@ > */ > package org.eclipse.ocl.parser; > >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.NullExportedSymbolsException; >-import lpg.lpgjavaruntime.NullTerminalSymbolsException; >-import lpg.lpgjavaruntime.ParseErrorCodes; >-import lpg.lpgjavaruntime.UndefinedEofSymbolException; >-import lpg.lpgjavaruntime.UnimplementedTerminalsException; >+import lpg.runtime.IToken; >+import lpg.runtime.ParseErrorCodes; > > import org.eclipse.emf.common.util.EList; > import org.eclipse.ocl.cst.BooleanLiteralExpCS; >@@ -82,21 +78,17 @@ > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.lpg.AbstractLexer; > import org.eclipse.ocl.lpg.AbstractParser; >-import org.eclipse.ocl.lpg.BasicEnvironment; > import org.eclipse.ocl.lpg.ProblemHandler; > import org.eclipse.ocl.options.ParsingOptions; > import org.eclipse.ocl.options.ProblemOption; > >+ > public abstract class AbstractOCLParser > extends AbstractParser { > >- public AbstractOCLParser(BasicEnvironment environment) { >- super(environment); >- } >- >- @SuppressWarnings("nls") >- public AbstractOCLParser(AbstractLexer lexStream) { >- super(lexStream); >+ public AbstractOCLParser(AbstractLexer lexer) { >+ super(lexer); >+ /*super(lexStream); > > try { > super.remapTerminalSymbols(orderedTerminalSymbols(), >@@ -118,7 +110,7 @@ > throw new RuntimeException( > "The Lexer does not implement the Eof symbol " > + OCLParsersym.orderedTerminalSymbols[OCLParserprs.EOFT_SYMBOL]); >- } >+ }*/ > } > > protected PackageDeclarationCS createPackageDeclarationCS( >@@ -718,7 +710,7 @@ > * @param stringLiteral a string literal token with escape notation > * @return the unescaped string > * >- * @since 1.3 >+ * @since 3.0 > */ > protected String unescape(IToken stringLiteral) { > String rawString = stringLiteral.toString(); >@@ -741,9 +733,9 @@ > } > i++; > if (i >= n) { >- reportError( >+ getIPrsStream().reportError( > ParseErrorCodes.INVALID_CODE, >- "", stringLiteral.getTokenIndex(), stringLiteral.getTokenIndex(), //$NON-NLS-1$ >+ stringLiteral.getTokenIndex(), stringLiteral.getTokenIndex(), > OCLMessages.StringNotProperlyClosed_ERROR); > } > char nextCh = rawString.charAt(i); >@@ -810,9 +802,9 @@ > .append((char) unescapedChar); > } > if (unescapedChar < 0) { >- reportError( >+ getIPrsStream().reportError( > ParseErrorCodes.INVALID_CODE, >- "", stringLiteral.getTokenIndex(), stringLiteral.getTokenIndex(), //$NON-NLS-1$ >+ stringLiteral.getTokenIndex(), stringLiteral.getTokenIndex(), > OCLMessages.InvalidEscapeSequence_ERROR); > } > break; >Index: src/org/eclipse/ocl/parser/OCLParserprs.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLParserprs.java,v >retrieving revision 1.7 >diff -u -r1.7 OCLParserprs.java >--- src/org/eclipse/ocl/parser/OCLParserprs.java 28 Aug 2009 20:43:11 -0000 1.7 >+++ src/org/eclipse/ocl/parser/OCLParserprs.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,8 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+* Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -14,19 +15,122 @@ > * E.D.Willink - Bugs 225493, 243976, 259818 > * Zeligsoft - Bug 243976 > * Borland - Bug 242880 >+* Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLParserprs.java,v 1.7 2009/08/28 20:43:11 ewillink Exp $ >+* $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ > */ > > package org.eclipse.ocl.parser; > >-/** >- * @noextend This interface is not intended to be extended by clients. >- */ >-@SuppressWarnings("nls") >-public class OCLParserprs implements lpg.lpgjavaruntime.ParseTable, OCLParsersym { >+public class OCLParserprs implements lpg.runtime.ParseTable, OCLParsersym { >+ public final static int ERROR_SYMBOL = 101; >+ public final int getErrorSymbol() { return ERROR_SYMBOL; } >+ >+ public final static int SCOPE_UBOUND = 43; >+ public final int getScopeUbound() { return SCOPE_UBOUND; } >+ >+ public final static int SCOPE_SIZE = 44; >+ public final int getScopeSize() { return SCOPE_SIZE; } >+ >+ public final static int MAX_NAME_LENGTH = 26; >+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >+ >+ public final static int NUM_STATES = 214; >+ public final int getNumStates() { return NUM_STATES; } >+ >+ public final static int NT_OFFSET = 101; >+ public final int getNtOffset() { return NT_OFFSET; } >+ >+ public final static int LA_STATE_OFFSET = 3369; >+ public final int getLaStateOffset() { return LA_STATE_OFFSET; } >+ >+ public final static int MAX_LA = 2; >+ public final int getMaxLa() { return MAX_LA; } >+ >+ public final static int NUM_RULES = 272; >+ public final int getNumRules() { return NUM_RULES; } >+ >+ public final static int NUM_NONTERMINALS = 104; >+ public final int getNumNonterminals() { return NUM_NONTERMINALS; } >+ >+ public final static int NUM_SYMBOLS = 205; >+ public final int getNumSymbols() { return NUM_SYMBOLS; } >+ >+ public final static int SEGMENT_SIZE = 8192; >+ public final int getSegmentSize() { return SEGMENT_SIZE; } >+ >+ public final static int START_STATE = 2905; >+ public final int getStartState() { return START_STATE; } >+ >+ public final static int IDENTIFIER_SYMBOL = 2; >+ public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; } >+ >+ public final static int EOFT_SYMBOL = 79; >+ public final int getEoftSymbol() { return EOFT_SYMBOL; } >+ >+ public final static int EOLT_SYMBOL = 79; >+ public final int getEoltSymbol() { return EOLT_SYMBOL; } >+ >+ public final static int ACCEPT_ACTION = 3096; >+ public final int getAcceptAction() { return ACCEPT_ACTION; } >+ >+ public final static int ERROR_ACTION = 3097; >+ public final int getErrorAction() { return ERROR_ACTION; } >+ >+ public final static boolean BACKTRACK = false; >+ public final boolean getBacktrack() { return BACKTRACK; } >+ >+ public final int getStartSymbol() { return lhs(0); } >+ public final boolean isValidForParser() { return OCLParsersym.isValidForParser; } >+ >+ >+ public interface IsNullable { >+ public final static byte isNullable[] = {0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 1,0,0,0,0,1,1,0,0,0, >+ 0,0,0,0,0,0,1,1,0,0, >+ 0,0,0,0,0,1,0,0,0,0, >+ 1,1,0,0,0,0,0,0,1,1, >+ 0,0,0,0,0,1,1,0,0,1, >+ 0,0,0,0,0 >+ }; >+ }; >+ public final static byte isNullable[] = IsNullable.isNullable; >+ public final boolean isNullable(int index) { return isNullable[index] != 0; } >+ >+ public interface ProsthesesIndex { >+ public final static byte prosthesesIndex[] = {0, >+ 54,9,21,62,5,6,7,10,3,8, >+ 15,50,51,11,40,42,44,48,49,56, >+ 57,58,59,60,61,67,68,69,70,71, >+ 41,43,38,39,34,35,36,37,32,33, >+ 30,31,28,29,25,26,27,77,23,52, >+ 53,78,80,81,24,47,97,98,99,100, >+ 88,91,92,4,12,19,20,22,65,66, >+ 73,79,83,84,86,87,93,94,96,101, >+ 2,13,14,17,18,45,46,55,63,64, >+ 72,74,75,76,82,85,89,90,95,102, >+ 103,104,1,16 >+ }; >+ }; >+ public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex; >+ public final int prosthesesIndex(int index) { return prosthesesIndex[index]; } > > public interface IsKeyword { > public final static byte isKeyword[] = {0, >@@ -1193,29 +1297,29 @@ > > public interface ScopeRhs { > public final static char scopeRhs[] = {0, >- 176,1,103,88,0,12,0,176,1,103, >- 87,0,146,93,146,92,146,71,0,45, >- 0,146,92,146,71,0,44,118,45,0, >- 146,71,0,43,118,44,118,45,0,174, >- 68,0,52,118,0,152,81,103,0,16, >- 0,0,157,1,151,109,0,157,1,151, >+ 176,1,103,88,0,4,0,176,1,103, >+ 87,0,146,93,146,92,146,71,0,94, >+ 0,146,92,146,71,0,93,146,94,0, >+ 146,71,0,92,146,93,146,94,0,174, >+ 68,0,96,146,0,152,81,103,0,74, >+ 151,0,157,1,151,109,0,157,1,151, > 111,0,157,1,151,166,0,196,1,59, >- 0,153,1,105,0,153,24,2,0,7, >- 118,0,146,72,150,84,150,1,183,0, >- 150,84,150,1,183,0,18,118,12,0, >- 150,1,183,0,22,117,18,118,12,0, >+ 0,153,1,105,0,153,24,2,0,3, >+ 146,0,146,72,150,84,150,1,183,0, >+ 150,84,150,1,183,0,72,146,4,0, >+ 150,1,183,0,84,150,72,146,4,0, > 146,72,150,1,183,0,146,72,150,36, > 150,1,184,0,150,36,150,1,184,0, >- 150,1,184,0,19,117,18,118,12,0, >+ 150,1,184,0,36,150,72,146,4,0, > 146,72,150,1,184,0,146,1,184,0, >- 192,69,59,0,14,0,190,69,105,0, >+ 192,69,59,0,80,0,190,69,105,0, > 152,81,115,0,146,1,0,157,1,103, >- 67,104,0,157,1,60,0,134,0,4, >- 132,0,3,132,0,138,0,2,130,0, >- 1,130,0,140,0,9,127,0,8,127, >- 0,6,127,0,5,127,0,142,0,10, >- 125,0,7,125,0,144,0,48,123,0, >- 47,123,0,46,123,0 >+ 67,104,0,157,1,60,0,134,0,17, >+ 132,0,16,132,0,138,0,35,135,0, >+ 34,135,0,140,0,21,137,0,20,137, >+ 0,19,137,0,18,137,0,142,0,5, >+ 141,0,3,141,0,144,0,28,143,0, >+ 27,143,0,26,143,0 > }; > }; > public final static char scopeRhs[] = ScopeRhs.scopeRhs; >@@ -1433,53 +1537,6 @@ > public final static String name[] = Name.name; > public final String name(int index) { return name[index]; } > >- public final static int >- ERROR_SYMBOL = 101, >- SCOPE_UBOUND = 43, >- SCOPE_SIZE = 44, >- MAX_NAME_LENGTH = 26; >- >- public final int getErrorSymbol() { return ERROR_SYMBOL; } >- public final int getScopeUbound() { return SCOPE_UBOUND; } >- public final int getScopeSize() { return SCOPE_SIZE; } >- public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >- >- public final static int >- NUM_STATES = 214, >- NT_OFFSET = 101, >- LA_STATE_OFFSET = 3369, >- MAX_LA = 2, >- NUM_RULES = 272, >- NUM_NONTERMINALS = 104, >- NUM_SYMBOLS = 205, >- SEGMENT_SIZE = 8192, >- START_STATE = 2905, >- IDENTIFIER_SYMBOL = 2, >- EOFT_SYMBOL = 79, >- EOLT_SYMBOL = 79, >- ACCEPT_ACTION = 3096, >- ERROR_ACTION = 3097; >- >- public final static boolean BACKTRACK = false; >- >- public final int getNumStates() { return NUM_STATES; } >- public final int getNtOffset() { return NT_OFFSET; } >- public final int getLaStateOffset() { return LA_STATE_OFFSET; } >- public final int getMaxLa() { return MAX_LA; } >- public final int getNumRules() { return NUM_RULES; } >- public final int getNumNonterminals() { return NUM_NONTERMINALS; } >- public final int getNumSymbols() { return NUM_SYMBOLS; } >- public final int getSegmentSize() { return SEGMENT_SIZE; } >- public final int getStartState() { return START_STATE; } >- public final int getStartSymbol() { return lhs[0]; } >- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } >- public final int getEoftSymbol() { return EOFT_SYMBOL; } >- public final int getEoltSymbol() { return EOLT_SYMBOL; } >- public final int getAcceptAction() { return ACCEPT_ACTION; } >- public final int getErrorAction() { return ERROR_ACTION; } >- public final boolean isValidForParser() { return isValidForParser; } >- public final boolean getBacktrack() { return BACKTRACK; } >- > public final int originalState(int state) { > return -baseCheck[state]; > } >@@ -1493,10 +1550,16 @@ > return inSymb[originalState(state)]; > } > >+ /** >+ * assert(! goto_default); >+ */ > public final int ntAction(int state, int sym) { > return baseAction[state + sym]; > } > >+ /** >+ * assert(! shift_default); >+ */ > public final int tAction(int state, int sym) { > int i = baseAction[state], > k = i + sym; >Index: src/org/eclipse/ocl/parser/OCLLexersym.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLLexersym.java,v >retrieving revision 1.3 >diff -u -r1.3 OCLLexersym.java >--- src/org/eclipse/ocl/parser/OCLLexersym.java 28 Aug 2009 20:43:11 -0000 1.3 >+++ src/org/eclipse/ocl/parser/OCLLexersym.java 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,20 +10,17 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* - Bug 259818 > * Borland - Bug 242880 >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLLexersym.java,v 1.3 2009/08/28 20:43:11 ewillink Exp $ >+* $Id$ > */ > > package org.eclipse.ocl.parser; > >-/** >- * @noimplement This interface is not intended to be implemented by clients. >- * @noextend This interface is not intended to be extended by clients. >- */ >-@SuppressWarnings("nls") > public interface OCLLexersym { > public final static int > Char_CtlCharNotWS = 103, >@@ -130,7 +127,7 @@ > Char_Equal = 15, > Char_EOF = 99; > >- public final static String orderedTerminalSymbols[] = { >+ public final static String orderedTerminalSymbols[] = { > "", > "0", > "1", >@@ -237,5 +234,6 @@ > "CtlCharNotWS" > }; > >+ public final static int numTokenKinds = orderedTerminalSymbols.length; > public final static boolean isValidForParser = true; > } >Index: src/org/eclipse/ocl/parser/OCLLexer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/OCLLexer.java,v >retrieving revision 1.4 >diff -u -r1.4 OCLLexer.java >--- src/org/eclipse/ocl/parser/OCLLexer.java 28 Aug 2009 20:43:11 -0000 1.4 >+++ src/org/eclipse/ocl/parser/OCLLexer.java 1 Sep 2009 17:10:48 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,115 +10,243 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* - Bug 259818 > * Borland - Bug 242880 >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLLexer.java,v 1.4 2009/08/28 20:43:11 ewillink Exp $ >+* $Id$ > */ > > package org.eclipse.ocl.parser; > >-import lpg.lpgjavaruntime.*; >+import lpg.runtime.*; > import org.eclipse.ocl.lpg.AbstractLexer; >-import org.eclipse.ocl.lpg.AbstractParser; >+import org.eclipse.ocl.lpg.AbstractLexerStream; >+import org.eclipse.ocl.lpg.OCLParserStream; >+ >+import java.io.Reader; >+ > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.lpg.BasicEnvironment; > import org.eclipse.ocl.util.OCLUtil; > > @SuppressWarnings("nls") >-public class OCLLexer extends AbstractLexer implements OCLParsersym, OCLLexersym, RuleAction >+public class OCLLexer extends AbstractLexer implements RuleAction > { >+ private OCLLexerStream lexStream; >+ > private static ParseTable prs = new OCLLexerprs(); >- // >- // The Lexer contains an array of characters as the input stream to be parsed. >- // There are methods to retrieve and classify characters. >- // The lexparser "token" is implemented simply as the index of the next character in the array. >- // The Lexer extends the abstract class LpgLexStream with an implementation of the abstract >- // method getKind. The template defines the Lexer class and the lexer() method. >- // A driver creates the action class, "Lexer", passing an Option object to the constructor. >- // >- protected OCLKWLexer kwLexer; >- protected boolean printTokens; >- private AbstractParser parser; >- private LexParser lexParser = new LexParser(this, prs, this); >+ public ParseTable getParseTable() { return prs; } >+ >+ private LexParser lexParser = new LexParser(); >+ public LexParser getParser() { return lexParser; } >+ >+ public int getToken(int i) { return lexParser.getToken(i); } >+ public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); } >+ public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); } >+ >+ public int getLeftSpan() { return lexParser.getToken(1); } >+ public int getRightSpan() { return lexParser.getLastToken(); } >+ >+ public void resetKeywordLexer() >+ { >+ if (kwLexer == null) >+ this.kwLexer = new OCLKWLexer(lexStream.getInputChars(), OCLParsersym.TK_IDENTIFIER); >+ else this.kwLexer.setInputChars(lexStream.getInputChars()); >+ } >+ >+ public void reset(String filename, int tab) throws java.io.IOException >+ { >+ lexStream = new OCLLexerStream(getOCLEnvironment(), filename, tab); >+ lexParser.reset(lexStream, prs, this); >+ resetKeywordLexer(); >+ } >+ >+ public void reset(char[] input_chars, String filename) >+ { >+ reset(input_chars, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ public void reset(char[] input_chars, String filename, int tab) >+ { >+ lexStream = new OCLLexerStream(getOCLEnvironment(), input_chars, filename, tab); >+ lexParser.reset(lexStream, prs, this); >+ resetKeywordLexer(); >+ } >+ >+ // OCL addition to reset the lexer stream from an input reader >+ public void reset(Reader reader, String filename) throws java.io.IOException { >+ reset(reader, filename, ECLIPSE_TAB_VALUE); >+ } > >- private final Environment<?,?,?,?,?,?,?,?,?,?,?,?> oclEnvironment; >+ // OCL addition to reset the lexer stream from an input reader >+ public void reset(Reader reader, String filename, int tab) throws java.io.IOException { >+ char[] input_chars = getInputChars(reader); >+ reset(input_chars, filename, tab); >+ } > >- public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment) { >+ /** >+ * @since 3.0 >+ */ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, String filename, int tab) throws java.io.IOException { > super(OCLUtil.getAdapter(environment, BasicEnvironment.class)); >+ reset(filename, tab); > oclEnvironment = environment; > } >- >- public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] chars) { >- this(environment, chars, "OCL", ECLIPSE_TAB_VALUE); >- kwLexer = new OCLKWLexer(getInputChars(), TK_IDENTIFIER); >- } > >- public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename, int tab) { >- super(OCLUtil.getAdapter(environment, BasicEnvironment.class), input_chars, filename, tab); >+ /** >+ * @since 3.0 >+ */ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, String filename) throws java.io.IOException{ >+ this(environment, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename, int tab) { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class)); >+ reset(input_chars, filename, tab); > oclEnvironment = environment; > } >+ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] chars) { >+ this(environment, chars, "OCL", ECLIPSE_TAB_VALUE); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, Reader reader) throws java.io.IOException { >+ this(environment, reader, "OCL"); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, Reader reader, String filename) throws java.io.IOException { >+ this(environment, reader, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public OCLLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, Reader reader, String filename, int tab) throws java.io.IOException { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class)); >+ reset(reader, filename, tab); >+ oclEnvironment = environment; >+ } >+ >+ private final Environment<?,?,?,?,?,?,?,?,?,?,?,?> oclEnvironment; > >- public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { >+ public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { > return oclEnvironment; > } > >- @Override >- public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); } >+ public AbstractLexerStream getILexStream() { return lexStream; } > >- public int getLeftSpan() { return lexParser.getFirstToken(); } >- public AbstractParser getParser() { return parser; } >- public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); } >- public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); } >- public int getRightSpan() { return lexParser.getLastToken(); } >+ /** >+ * @deprecated replaced by {@link #getILexStream()} >+ */ >+ public ILexStream getLexStream() { return lexStream; } > >- @Override >- public int getToken(int i) { return lexParser.getToken(i); } >+ private void initializeLexer(OCLParserStream prsStream, int start_offset, int end_offset) >+ { >+ if (lexStream.getInputChars() == null) >+ throw new NullPointerException("LexStream was not initialized"); >+ lexStream.setPrsStream(prsStream); >+ prsStream.makeToken(start_offset, end_offset, 0); // Token list must start with a bad token >+ } > >- @Override >- public void initialize(char [] content, String filename) >+ private void addEOF(OCLParserStream prsStream, int end_offset) > { >- super.initialize(content, filename); >- if (kwLexer == null) >- kwLexer = new OCLKWLexer(getInputChars(), TK_IDENTIFIER); >- else >- kwLexer.setInputChars(getInputChars()); >+ prsStream.makeToken(end_offset, end_offset, OCLParsersym.TK_EOF_TOKEN); // and end with the end of file token >+ prsStream.setStreamLength(prsStream.getSize()); > } > >- @Override >- public String[] orderedExportedSymbols() { return OCLParsersym.orderedTerminalSymbols; } >+ public void lexer(OCLParserStream prsStream) >+ { >+ lexer(null, prsStream); >+ } > >- @Override >- public void setInputChars(char[] inputChars) { >- super.setInputChars(inputChars); >- kwLexer = new OCLKWLexer(getInputChars(), TK_IDENTIFIER); >- } >+ public void lexer(Monitor monitor, OCLParserStream prsStream) >+ { >+ initializeLexer(prsStream, 0, -1); >+ lexParser.parseCharacters(monitor); // Lex the input characters >+ addEOF(prsStream, lexStream.getStreamIndex()); >+ } >+ >+ public void lexer(OCLParserStream prsStream, int start_offset, int end_offset) >+ { >+ lexer(null, prsStream, start_offset, end_offset); >+ } > >- @Override >- public void lexToTokens(Monitor monitor, AbstractParser parser) >+ public void lexer(Monitor monitor, OCLParserStream prsStream, int start_offset, int end_offset) > { >- if (getInputChars() == null) >- throw new NullPointerException("LexStream was not initialized"); >+ if (start_offset <= 1) >+ initializeLexer(prsStream, 0, -1); >+ else initializeLexer(prsStream, start_offset - 1, start_offset - 1); >+ >+ lexParser.parseCharacters(monitor, start_offset, end_offset); >+ >+ addEOF(prsStream, (end_offset >= lexStream.getStreamIndex() ? lexStream.getStreamIndex() : end_offset + 1)); >+ } >+ >+ /** >+ * If a parse stream was not passed to this Lexical analyser then we >+ * simply report a lexical error. Otherwise, we produce a bad token. >+ */ >+ public void reportLexicalError(int startLoc, int endLoc) { >+ IPrsStream prs_stream = lexStream.getIPrsStream(); >+ if (prs_stream == null) >+ lexStream.reportLexicalError(startLoc, endLoc); >+ else { >+ // >+ // Remove any token that may have been processed that fall in the >+ // range of the lexical error... then add one error token that spans >+ // the error range. >+ // >+ for (int i = prs_stream.getSize() - 1; i > 0; i--) { >+ if (prs_stream.getStartOffset(i) >= startLoc) >+ prs_stream.removeLastToken(); >+ else break; >+ } >+ prs_stream.makeToken(startLoc, endLoc, 0); // add an error token to the prsStream >+ } >+ } > >- this.parser = parser; >+ // >+ // The Lexer contains an array of characters as the input stream to be parsed. >+ // There are methods to retrieve and classify characters. >+ // The lexparser "token" is implemented simply as the index of the next character in the array. >+ // The Lexer extends the abstract class LpgLexStream with an implementation of the abstract >+ // method getKind. The template defines the Lexer class and the lexer() method. >+ // A driver creates the action class, "Lexer", passing an Option object to the constructor. >+ // >+ OCLKWLexer kwLexer; >+ boolean printTokens; >+ private final static int ECLIPSE_TAB_VALUE = 4; > >- parser.makeToken(0, 0, 0); // Token list must start with a bad token >- >- lexParser.parseCharacters(monitor); // Lex the input characters >- >- int i = getStreamIndex(); >- parser.makeToken(i, i, TK_EOF_TOKEN); // and end with the end of file token >- parser.setStreamLength(parser.getSize()); >- >- return; >+ public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); } >+ >+ >+ /** >+ * @deprecated function replaced by {@link #reset(char [] content, String filename)} >+ */ >+ public void initialize(char [] content, String filename) >+ { >+ reset(content, filename); >+ } >+ >+ final void makeToken(int left_token, int right_token, int kind) >+ { >+ lexStream.makeToken(left_token, right_token, kind); > } > > final void makeToken(int kind) > { > int startOffset = getLeftSpan(), > endOffset = getRightSpan(); >- makeToken(startOffset, endOffset, kind); >+ lexStream.makeToken(startOffset, endOffset, kind); > if (printTokens) printValue(startOffset, endOffset); > } > >@@ -126,7 +254,7 @@ > { > int startOffset = getLeftSpan(), > endOffset = getRightSpan(); >- super.getPrsStream().makeAdjunct(startOffset, endOffset, kind); >+ lexStream.getIPrsStream().makeAdjunct(startOffset, endOffset, kind); > } > > final void skipToken() >@@ -138,491 +266,527 @@ > { > int startOffset = getLeftSpan(), > endOffset = getRightSpan(), >- kwKind = kwLexer.lexer(startOffset, endOffset); >- makeToken(startOffset, endOffset, kwKind); >+ kwKind = kwLexer.lexer(startOffset, endOffset); >+ lexStream.makeToken(startOffset, endOffset, kwKind); >+ if (printTokens) printValue(startOffset, endOffset); >+ } >+ >+ // >+ // This flavor of checkForKeyWord is necessary when the default kind >+ // (which is returned when the keyword filter doesn't match) is something >+ // other than _IDENTIFIER. >+ // >+ final void checkForKeyWord(int defaultKind) >+ { >+ int startOffset = getLeftSpan(), >+ endOffset = getRightSpan(), >+ kwKind = kwLexer.lexer(startOffset, endOffset); >+ if (kwKind == OCLParsersym.TK_IDENTIFIER) >+ kwKind = defaultKind; >+ lexStream.makeToken(startOffset, endOffset, kwKind); > if (printTokens) printValue(startOffset, endOffset); > } > > final void printValue(int startOffset, int endOffset) > { >- String s = new String(getInputChars(), startOffset, endOffset - startOffset + 1); >+ String s = new String(lexStream.getInputChars(), startOffset, endOffset - startOffset + 1); > System.out.print(s); > } > > // > // > // >+ static class OCLLexerStream extends AbstractLexerStream >+ { > public final static int tokenKind[] = > { >- Char_CtlCharNotWS, // 000 0x00 >- Char_CtlCharNotWS, // 001 0x01 >- Char_CtlCharNotWS, // 002 0x02 >- Char_CtlCharNotWS, // 003 0x03 >- Char_CtlCharNotWS, // 004 0x04 >- Char_CtlCharNotWS, // 005 0x05 >- Char_CtlCharNotWS, // 006 0x06 >- Char_CtlCharNotWS, // 007 0x07 >- Char_CtlCharNotWS, // 008 0x08 >- Char_HT, // 009 0x09 >- Char_LF, // 010 0x0A >- Char_CtlCharNotWS, // 011 0x0B >- Char_FF, // 012 0x0C >- Char_CR, // 013 0x0D >- Char_CtlCharNotWS, // 014 0x0E >- Char_CtlCharNotWS, // 015 0x0F >- Char_CtlCharNotWS, // 016 0x10 >- Char_CtlCharNotWS, // 017 0x11 >- Char_CtlCharNotWS, // 018 0x12 >- Char_CtlCharNotWS, // 019 0x13 >- Char_CtlCharNotWS, // 020 0x14 >- Char_CtlCharNotWS, // 021 0x15 >- Char_CtlCharNotWS, // 022 0x16 >- Char_CtlCharNotWS, // 023 0x17 >- Char_CtlCharNotWS, // 024 0x18 >- Char_CtlCharNotWS, // 025 0x19 >- Char_CtlCharNotWS, // 026 0x1A >- Char_CtlCharNotWS, // 027 0x1B >- Char_CtlCharNotWS, // 028 0x1C >- Char_CtlCharNotWS, // 029 0x1D >- Char_CtlCharNotWS, // 030 0x1E >- Char_CtlCharNotWS, // 031 0x1F >- Char_Space, // 032 0x20 >- Char_Exclamation, // 033 0x21 >- Char_DoubleQuote, // 034 0x22 >- Char_Sharp, // 035 0x23 >- Char_DollarSign, // 036 0x24 >- Char_Percent, // 037 0x25 >- Char_Ampersand, // 038 0x26 >- Char_SingleQuote, // 039 0x27 >- Char_LeftParen, // 040 0x28 >- Char_RightParen, // 041 0x29 >- Char_Star, // 042 0x2A >- Char_Plus, // 043 0x2B >- Char_Comma, // 044 0x2C >- Char_Minus, // 045 0x2D >- Char_Dot, // 046 0x2E >- Char_Slash, // 047 0x2F >- Char_0, // 048 0x30 >- Char_1, // 049 0x31 >- Char_2, // 050 0x32 >- Char_3, // 051 0x33 >- Char_4, // 052 0x34 >- Char_5, // 053 0x35 >- Char_6, // 054 0x36 >- Char_7, // 055 0x37 >- Char_8, // 056 0x38 >- Char_9, // 057 0x39 >- Char_Colon, // 058 0x3A >- Char_SemiColon, // 059 0x3B >- Char_LessThan, // 060 0x3C >- Char_Equal, // 061 0x3D >- Char_GreaterThan, // 062 0x3E >- Char_QuestionMark, // 063 0x3F >- Char_AtSign, // 064 0x40 >- Char_A, // 065 0x41 >- Char_B, // 066 0x42 >- Char_C, // 067 0x43 >- Char_D, // 068 0x44 >- Char_E, // 069 0x45 >- Char_F, // 070 0x46 >- Char_G, // 071 0x47 >- Char_H, // 072 0x48 >- Char_I, // 073 0x49 >- Char_J, // 074 0x4A >- Char_K, // 075 0x4B >- Char_L, // 076 0x4C >- Char_M, // 077 0x4D >- Char_N, // 078 0x4E >- Char_O, // 079 0x4F >- Char_P, // 080 0x50 >- Char_Q, // 081 0x51 >- Char_R, // 082 0x52 >- Char_S, // 083 0x53 >- Char_T, // 084 0x54 >- Char_U, // 085 0x55 >- Char_V, // 086 0x56 >- Char_W, // 087 0x57 >- Char_X, // 088 0x58 >- Char_Y, // 089 0x59 >- Char_Z, // 090 0x5A >- Char_LeftBracket, // 091 0x5B >- Char_BackSlash, // 092 0x5C >- Char_RightBracket, // 093 0x5D >- Char_Caret, // 094 0x5E >- Char__, // 095 0x5F >- Char_BackQuote, // 096 0x60 >- Char_a, // 097 0x61 >- Char_b, // 098 0x62 >- Char_c, // 099 0x63 >- Char_d, // 100 0x64 >- Char_e, // 101 0x65 >- Char_f, // 102 0x66 >- Char_g, // 103 0x67 >- Char_h, // 104 0x68 >- Char_i, // 105 0x69 >- Char_j, // 106 0x6A >- Char_k, // 107 0x6B >- Char_l, // 108 0x6C >- Char_m, // 109 0x6D >- Char_n, // 110 0x6E >- Char_o, // 111 0x6F >- Char_p, // 112 0x70 >- Char_q, // 113 0x71 >- Char_r, // 114 0x72 >- Char_s, // 115 0x73 >- Char_t, // 116 0x74 >- Char_u, // 117 0x75 >- Char_v, // 118 0x76 >- Char_w, // 119 0x77 >- Char_x, // 120 0x78 >- Char_y, // 121 0x79 >- Char_z, // 122 0x7A >- Char_LeftBrace, // 123 0x7B >- Char_VerticalBar, // 124 0x7C >- Char_RightBrace, // 125 0x7D >- Char_Tilde, // 126 0x7E >- Char_CtlCharNotWS, // 127 0x7F >- >- Char_Acute, // for the acute accent 0xb4 >- Char_AfterASCIINotAcute, // for all chars in range 0x80..0xfffe excluding the acute accent >- Char_EOF // for '\uffff' or 65535 >+ OCLLexersym.Char_CtlCharNotWS, // 000 0x00 >+ OCLLexersym.Char_CtlCharNotWS, // 001 0x01 >+ OCLLexersym.Char_CtlCharNotWS, // 002 0x02 >+ OCLLexersym.Char_CtlCharNotWS, // 003 0x03 >+ OCLLexersym.Char_CtlCharNotWS, // 004 0x04 >+ OCLLexersym.Char_CtlCharNotWS, // 005 0x05 >+ OCLLexersym.Char_CtlCharNotWS, // 006 0x06 >+ OCLLexersym.Char_CtlCharNotWS, // 007 0x07 >+ OCLLexersym.Char_CtlCharNotWS, // 008 0x08 >+ OCLLexersym.Char_HT, // 009 0x09 >+ OCLLexersym.Char_LF, // 010 0x0A >+ OCLLexersym.Char_CtlCharNotWS, // 011 0x0B >+ OCLLexersym.Char_FF, // 012 0x0C >+ OCLLexersym.Char_CR, // 013 0x0D >+ OCLLexersym.Char_CtlCharNotWS, // 014 0x0E >+ OCLLexersym.Char_CtlCharNotWS, // 015 0x0F >+ OCLLexersym.Char_CtlCharNotWS, // 016 0x10 >+ OCLLexersym.Char_CtlCharNotWS, // 017 0x11 >+ OCLLexersym.Char_CtlCharNotWS, // 018 0x12 >+ OCLLexersym.Char_CtlCharNotWS, // 019 0x13 >+ OCLLexersym.Char_CtlCharNotWS, // 020 0x14 >+ OCLLexersym.Char_CtlCharNotWS, // 021 0x15 >+ OCLLexersym.Char_CtlCharNotWS, // 022 0x16 >+ OCLLexersym.Char_CtlCharNotWS, // 023 0x17 >+ OCLLexersym.Char_CtlCharNotWS, // 024 0x18 >+ OCLLexersym.Char_CtlCharNotWS, // 025 0x19 >+ OCLLexersym.Char_CtlCharNotWS, // 026 0x1A >+ OCLLexersym.Char_CtlCharNotWS, // 027 0x1B >+ OCLLexersym.Char_CtlCharNotWS, // 028 0x1C >+ OCLLexersym.Char_CtlCharNotWS, // 029 0x1D >+ OCLLexersym.Char_CtlCharNotWS, // 030 0x1E >+ OCLLexersym.Char_CtlCharNotWS, // 031 0x1F >+ OCLLexersym.Char_Space, // 032 0x20 >+ OCLLexersym.Char_Exclamation, // 033 0x21 >+ OCLLexersym.Char_DoubleQuote, // 034 0x22 >+ OCLLexersym.Char_Sharp, // 035 0x23 >+ OCLLexersym.Char_DollarSign, // 036 0x24 >+ OCLLexersym.Char_Percent, // 037 0x25 >+ OCLLexersym.Char_Ampersand, // 038 0x26 >+ OCLLexersym.Char_SingleQuote, // 039 0x27 >+ OCLLexersym.Char_LeftParen, // 040 0x28 >+ OCLLexersym.Char_RightParen, // 041 0x29 >+ OCLLexersym.Char_Star, // 042 0x2A >+ OCLLexersym.Char_Plus, // 043 0x2B >+ OCLLexersym.Char_Comma, // 044 0x2C >+ OCLLexersym.Char_Minus, // 045 0x2D >+ OCLLexersym.Char_Dot, // 046 0x2E >+ OCLLexersym.Char_Slash, // 047 0x2F >+ OCLLexersym.Char_0, // 048 0x30 >+ OCLLexersym.Char_1, // 049 0x31 >+ OCLLexersym.Char_2, // 050 0x32 >+ OCLLexersym.Char_3, // 051 0x33 >+ OCLLexersym.Char_4, // 052 0x34 >+ OCLLexersym.Char_5, // 053 0x35 >+ OCLLexersym.Char_6, // 054 0x36 >+ OCLLexersym.Char_7, // 055 0x37 >+ OCLLexersym.Char_8, // 056 0x38 >+ OCLLexersym.Char_9, // 057 0x39 >+ OCLLexersym.Char_Colon, // 058 0x3A >+ OCLLexersym.Char_SemiColon, // 059 0x3B >+ OCLLexersym.Char_LessThan, // 060 0x3C >+ OCLLexersym.Char_Equal, // 061 0x3D >+ OCLLexersym.Char_GreaterThan, // 062 0x3E >+ OCLLexersym.Char_QuestionMark, // 063 0x3F >+ OCLLexersym.Char_AtSign, // 064 0x40 >+ OCLLexersym.Char_A, // 065 0x41 >+ OCLLexersym.Char_B, // 066 0x42 >+ OCLLexersym.Char_C, // 067 0x43 >+ OCLLexersym.Char_D, // 068 0x44 >+ OCLLexersym.Char_E, // 069 0x45 >+ OCLLexersym.Char_F, // 070 0x46 >+ OCLLexersym.Char_G, // 071 0x47 >+ OCLLexersym.Char_H, // 072 0x48 >+ OCLLexersym.Char_I, // 073 0x49 >+ OCLLexersym.Char_J, // 074 0x4A >+ OCLLexersym.Char_K, // 075 0x4B >+ OCLLexersym.Char_L, // 076 0x4C >+ OCLLexersym.Char_M, // 077 0x4D >+ OCLLexersym.Char_N, // 078 0x4E >+ OCLLexersym.Char_O, // 079 0x4F >+ OCLLexersym.Char_P, // 080 0x50 >+ OCLLexersym.Char_Q, // 081 0x51 >+ OCLLexersym.Char_R, // 082 0x52 >+ OCLLexersym.Char_S, // 083 0x53 >+ OCLLexersym.Char_T, // 084 0x54 >+ OCLLexersym.Char_U, // 085 0x55 >+ OCLLexersym.Char_V, // 086 0x56 >+ OCLLexersym.Char_W, // 087 0x57 >+ OCLLexersym.Char_X, // 088 0x58 >+ OCLLexersym.Char_Y, // 089 0x59 >+ OCLLexersym.Char_Z, // 090 0x5A >+ OCLLexersym.Char_LeftBracket, // 091 0x5B >+ OCLLexersym.Char_BackSlash, // 092 0x5C >+ OCLLexersym.Char_RightBracket, // 093 0x5D >+ OCLLexersym.Char_Caret, // 094 0x5E >+ OCLLexersym.Char__, // 095 0x5F >+ OCLLexersym.Char_BackQuote, // 096 0x60 >+ OCLLexersym.Char_a, // 097 0x61 >+ OCLLexersym.Char_b, // 098 0x62 >+ OCLLexersym.Char_c, // 099 0x63 >+ OCLLexersym.Char_d, // 100 0x64 >+ OCLLexersym.Char_e, // 101 0x65 >+ OCLLexersym.Char_f, // 102 0x66 >+ OCLLexersym.Char_g, // 103 0x67 >+ OCLLexersym.Char_h, // 104 0x68 >+ OCLLexersym.Char_i, // 105 0x69 >+ OCLLexersym.Char_j, // 106 0x6A >+ OCLLexersym.Char_k, // 107 0x6B >+ OCLLexersym.Char_l, // 108 0x6C >+ OCLLexersym.Char_m, // 109 0x6D >+ OCLLexersym.Char_n, // 110 0x6E >+ OCLLexersym.Char_o, // 111 0x6F >+ OCLLexersym.Char_p, // 112 0x70 >+ OCLLexersym.Char_q, // 113 0x71 >+ OCLLexersym.Char_r, // 114 0x72 >+ OCLLexersym.Char_s, // 115 0x73 >+ OCLLexersym.Char_t, // 116 0x74 >+ OCLLexersym.Char_u, // 117 0x75 >+ OCLLexersym.Char_v, // 118 0x76 >+ OCLLexersym.Char_w, // 119 0x77 >+ OCLLexersym.Char_x, // 120 0x78 >+ OCLLexersym.Char_y, // 121 0x79 >+ OCLLexersym.Char_z, // 122 0x7A >+ OCLLexersym.Char_LeftBrace, // 123 0x7B >+ OCLLexersym.Char_VerticalBar, // 124 0x7C >+ OCLLexersym.Char_RightBrace, // 125 0x7D >+ OCLLexersym.Char_Tilde, // 126 0x7E >+ OCLLexersym.Char_CtlCharNotWS, // 127 0x7F >+ >+ OCLLexersym.Char_Acute, // for the acute accent 0xb4 >+ OCLLexersym.Char_AfterASCIINotAcute, // for all chars in range 0x80..0xfffe excluding the acute accent >+ OCLLexersym.Char_EOF // for '\uffff' or 65535 > }; > >- @Override public final int getKind(int i) // Classify character at ith location >+ public final int getKind(int i) // Classify character at ith location > { > char c = (i >= getStreamLength() ? '\uffff' : getCharValue(i)); >- return (c < 128)? // ASCII Character >- tokenKind[c] : >- (c == '\uffff')? >- Char_EOF : >- (c == '\u00b4')? >- Char_Acute : >- Char_AfterASCIINotAcute; >+ return (c < 128) // ASCII Character >+ ? tokenKind[c] >+ : (c == '\uffff') >+ ?OCLLexersym.Char_EOF >+ : (c == '\u00b4') >+ ? OCLLexersym.Char_EOF >+ : OCLLexersym.Char_AfterASCIINotAcute; >+ } >+ >+ public String[] orderedExportedSymbols() { return OCLParsersym.orderedTerminalSymbols; } >+ >+ public OCLLexerStream(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, String filename, int tab) throws java.io.IOException >+ { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class), filename, tab); >+ } >+ >+ public OCLLexerStream(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename, int tab) >+ { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class), input_chars, filename, tab); >+ } >+ >+ public OCLLexerStream(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename) >+ { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class), input_chars, filename, 1); >+ } > } > >- public void ruleAction( int ruleNumber) >+ public void ruleAction(int ruleNumber) > { > switch(ruleNumber) > { >- >+ > // > // Rule 1: Token ::= Identifier > // > case 1: { > checkForKeyWord(); >- break; >+ break; > } >- >+ > // > // Rule 2: Token ::= EscapedSQ > // > case 2: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 3: Token ::= SingleQuote SLNotSQ SingleQuote > // > case 3: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 4: Token ::= Acute SLNotSQOpt Acute > // > case 4: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 5: Token ::= BackQuote SLNotSQOpt Acute > // > case 5: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 6: Token ::= IntegerLiteral > // > case 6: { >- makeToken(TK_INTEGER_LITERAL); >- break; >+ makeToken(OCLParsersym.TK_INTEGER_LITERAL); >+ break; > } >- >+ > // > // Rule 7: Token ::= RealLiteral > // > case 7: { >- makeToken(TK_REAL_LITERAL); >- break; >+ makeToken(OCLParsersym.TK_REAL_LITERAL); >+ break; > } >- >+ > // > // Rule 8: Token ::= NumericOperation > // > case 8: { >- makeToken(TK_NUMERIC_OPERATION); >- break; >+ makeToken(OCLParsersym.TK_NUMERIC_OPERATION); >+ break; > } >- >+ > // > // Rule 9: Token ::= IntegerRangeStart > // > case 9: { >- makeToken(TK_INTEGER_RANGE_START); >- break; >+ makeToken(OCLParsersym.TK_INTEGER_RANGE_START); >+ break; > } >- >+ > // > // Rule 10: Token ::= SLC > // > case 10: { >- makeComment(TK_SINGLE_LINE_COMMENT); >- break; >+ makeComment(OCLParsersym.TK_SINGLE_LINE_COMMENT); >+ break; > } >- >+ > // > // Rule 11: Token ::= / * Inside Stars / > // > case 11: { >- makeComment(TK_MULTI_LINE_COMMENT); >- break; >+ makeComment(OCLParsersym.TK_MULTI_LINE_COMMENT); >+ break; > } >- >+ > // > // Rule 12: Token ::= WS > // > case 12: { > skipToken(); >- break; >+ break; > } >- >+ > // > // Rule 13: Token ::= + > // > case 13: { >- makeToken(TK_PLUS); >- break; >+ makeToken(OCLParsersym.TK_PLUS); >+ break; > } >- >+ > // > // Rule 14: Token ::= - > // > case 14: { >- makeToken(TK_MINUS); >- break; >+ makeToken(OCLParsersym.TK_MINUS); >+ break; > } >- >+ > // > // Rule 15: Token ::= * > // > case 15: { >- makeToken(TK_MULTIPLY); >- break; >+ makeToken(OCLParsersym.TK_MULTIPLY); >+ break; > } >- >+ > // > // Rule 16: Token ::= / > // > case 16: { >- makeToken(TK_DIVIDE); >- break; >+ makeToken(OCLParsersym.TK_DIVIDE); >+ break; > } >- >+ > // > // Rule 17: Token ::= ( > // > case 17: { >- makeToken(TK_LPAREN); >- break; >+ makeToken(OCLParsersym.TK_LPAREN); >+ break; > } >- >+ > // > // Rule 18: Token ::= ) > // > case 18: { >- makeToken(TK_RPAREN); >- break; >+ makeToken(OCLParsersym.TK_RPAREN); >+ break; > } >- >+ > // > // Rule 19: Token ::= > > // > case 19: { >- makeToken(TK_GREATER); >- break; >+ makeToken(OCLParsersym.TK_GREATER); >+ break; > } >- >+ > // > // Rule 20: Token ::= < > // > case 20: { >- makeToken(TK_LESS); >- break; >+ makeToken(OCLParsersym.TK_LESS); >+ break; > } >- >+ > // > // Rule 21: Token ::= = > // > case 21: { >- makeToken(TK_EQUAL); >- break; >+ makeToken(OCLParsersym.TK_EQUAL); >+ break; > } >- >+ > // > // Rule 22: Token ::= > = > // > case 22: { >- makeToken(TK_GREATER_EQUAL); >- break; >+ makeToken(OCLParsersym.TK_GREATER_EQUAL); >+ break; > } >- >+ > // > // Rule 23: Token ::= < = > // > case 23: { >- makeToken(TK_LESS_EQUAL); >- break; >+ makeToken(OCLParsersym.TK_LESS_EQUAL); >+ break; > } >- >+ > // > // Rule 24: Token ::= < > > // > case 24: { >- makeToken(TK_NOT_EQUAL); >- break; >+ makeToken(OCLParsersym.TK_NOT_EQUAL); >+ break; > } >- >+ > // > // Rule 25: Token ::= [ > // > case 25: { >- makeToken(TK_LBRACKET); >- break; >+ makeToken(OCLParsersym.TK_LBRACKET); >+ break; > } >- >+ > // > // Rule 26: Token ::= ] > // > case 26: { >- makeToken(TK_RBRACKET); >- break; >+ makeToken(OCLParsersym.TK_RBRACKET); >+ break; > } >- >+ > // > // Rule 27: Token ::= { > // > case 27: { >- makeToken(TK_LBRACE); >- break; >+ makeToken(OCLParsersym.TK_LBRACE); >+ break; > } >- >+ > // > // Rule 28: Token ::= } > // > case 28: { >- makeToken(TK_RBRACE); >- break; >+ makeToken(OCLParsersym.TK_RBRACE); >+ break; > } >- >+ > // > // Rule 29: Token ::= - > > // > case 29: { >- makeToken(TK_ARROW); >- break; >+ makeToken(OCLParsersym.TK_ARROW); >+ break; > } >- >+ > // > // Rule 30: Token ::= | > // > case 30: { >- makeToken(TK_BAR); >- break; >+ makeToken(OCLParsersym.TK_BAR); >+ break; > } >- >+ > // > // Rule 31: Token ::= , > // > case 31: { >- makeToken(TK_COMMA); >- break; >+ makeToken(OCLParsersym.TK_COMMA); >+ break; > } >- >+ > // > // Rule 32: Token ::= : > // > case 32: { >- makeToken(TK_COLON); >- break; >+ makeToken(OCLParsersym.TK_COLON); >+ break; > } >- >+ > // > // Rule 33: Token ::= : : > // > case 33: { >- makeToken(TK_COLONCOLON); >- break; >+ makeToken(OCLParsersym.TK_COLONCOLON); >+ break; > } >- >+ > // > // Rule 34: Token ::= ; > // > case 34: { >- makeToken(TK_SEMICOLON); >- break; >+ makeToken(OCLParsersym.TK_SEMICOLON); >+ break; > } >- >+ > // > // Rule 35: Token ::= . > // > case 35: { >- makeToken(TK_DOT); >- break; >+ makeToken(OCLParsersym.TK_DOT); >+ break; > } >- >+ > // > // Rule 36: Token ::= . . > // > case 36: { >- makeToken(TK_DOTDOT); >- break; >+ makeToken(OCLParsersym.TK_DOTDOT); >+ break; > } >- >+ > // > // Rule 37: Token ::= @ p r e > // > case 37: { >- makeToken(TK_ATPRE); >- break; >+ makeToken(OCLParsersym.TK_ATPRE); >+ break; > } >- >+ > // > // Rule 38: Token ::= ^ > // > case 38: { >- makeToken(TK_CARET); >- break; >+ makeToken(OCLParsersym.TK_CARET); >+ break; > } >- >+ > // > // Rule 39: Token ::= ^ ^ > // > case 39: { >- makeToken(TK_CARETCARET); >- break; >+ makeToken(OCLParsersym.TK_CARETCARET); >+ break; > } >- >+ > // > // Rule 40: Token ::= ? > // > case 40: { >- makeToken(TK_QUESTIONMARK); >- break; >+ makeToken(OCLParsersym.TK_QUESTIONMARK); >+ break; > } > > >Index: src/org/eclipse/ocl/types/impl/MessageTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/MessageTypeImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 MessageTypeImpl.java >--- src/org/eclipse/ocl/types/impl/MessageTypeImpl.java 12 Oct 2008 01:09:48 -0000 1.7 >+++ src/org/eclipse/ocl/types/impl/MessageTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -18,9 +18,10 @@ > package org.eclipse.ocl.types.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.notify.Notification; >-import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.BasicEList; >+import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.ECollections; > import org.eclipse.emf.common.util.EList; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/ocl/types/impl/TypesFactoryImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/TypesFactoryImpl.java,v >retrieving revision 1.5 >diff -u -r1.5 TypesFactoryImpl.java >--- src/org/eclipse/ocl/types/impl/TypesFactoryImpl.java 12 Oct 2008 01:09:48 -0000 1.5 >+++ src/org/eclipse/ocl/types/impl/TypesFactoryImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -25,8 +25,6 @@ > import org.eclipse.emf.ecore.EPackage; > import org.eclipse.emf.ecore.impl.EFactoryImpl; > import org.eclipse.emf.ecore.plugin.EcorePlugin; >- >-//import org.eclipse.ocl.types.*; > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.CollectionKind; > import org.eclipse.ocl.types.AnyType; >Index: src/org/eclipse/ocl/types/impl/SetTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/SetTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 SetTypeImpl.java >--- src/org/eclipse/ocl/types/impl/SetTypeImpl.java 12 Oct 2008 01:09:48 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/SetTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.ocl.expressions.CollectionKind; >Index: src/org/eclipse/ocl/types/impl/AnyTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/AnyTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 AnyTypeImpl.java >--- src/org/eclipse/ocl/types/impl/AnyTypeImpl.java 24 Nov 2008 00:21:41 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/AnyTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -24,8 +24,6 @@ > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.AnyType; > import org.eclipse.ocl.types.TypesPackage; >- >-//import org.eclipse.ocl.types.operations.AnyTypeOperations; > import org.eclipse.ocl.util.OCLStandardLibraryUtil; > > /** >Index: src/org/eclipse/ocl/types/impl/TypeTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/TypeTypeImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 TypeTypeImpl.java >--- src/org/eclipse/ocl/types/impl/TypeTypeImpl.java 24 Nov 2008 00:21:26 -0000 1.7 >+++ src/org/eclipse/ocl/types/impl/TypeTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -28,8 +28,6 @@ > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.TypeType; > import org.eclipse.ocl.types.TypesPackage; >- >-//import org.eclipse.ocl.types.operations.TypeTypeOperations; > import org.eclipse.ocl.util.OCLStandardLibraryUtil; > > /** >Index: src/org/eclipse/ocl/types/impl/OrderedSetTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/OrderedSetTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 OrderedSetTypeImpl.java >--- src/org/eclipse/ocl/types/impl/OrderedSetTypeImpl.java 12 Oct 2008 01:09:48 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/OrderedSetTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.ocl.expressions.CollectionKind; >Index: src/org/eclipse/ocl/types/impl/BagTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/BagTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 BagTypeImpl.java >--- src/org/eclipse/ocl/types/impl/BagTypeImpl.java 12 Oct 2008 01:09:48 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/BagTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.ocl.expressions.CollectionKind; >Index: src/org/eclipse/ocl/types/impl/SequenceTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/SequenceTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 SequenceTypeImpl.java >--- src/org/eclipse/ocl/types/impl/SequenceTypeImpl.java 12 Oct 2008 01:09:48 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/SequenceTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types.impl; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.ocl.expressions.CollectionKind; >Index: src/org/eclipse/ocl/types/impl/TupleTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/TupleTypeImpl.java,v >retrieving revision 1.7 >diff -u -r1.7 TupleTypeImpl.java >--- src/org/eclipse/ocl/types/impl/TupleTypeImpl.java 12 Oct 2008 01:09:48 -0000 1.7 >+++ src/org/eclipse/ocl/types/impl/TupleTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -17,11 +17,11 @@ > */ > package org.eclipse.ocl.types.impl; > >-import java.util.Map; >-import org.eclipse.emf.common.util.DiagnosticChain; > import java.util.Iterator; >+import java.util.Map; > > import org.eclipse.emf.common.util.BasicEList; >+import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.impl.EObjectImpl; >Index: src/org/eclipse/ocl/types/impl/CollectionTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/CollectionTypeImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 CollectionTypeImpl.java >--- src/org/eclipse/ocl/types/impl/CollectionTypeImpl.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/types/impl/CollectionTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -17,12 +17,12 @@ > */ > package org.eclipse.ocl.types.impl; > >-import java.util.Map; > import java.util.List; >+import java.util.Map; > > import org.eclipse.emf.common.notify.Notification; >-import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.BasicEList; >+import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EObject; >Index: src/org/eclipse/ocl/types/impl/VoidTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/VoidTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 VoidTypeImpl.java >--- src/org/eclipse/ocl/types/impl/VoidTypeImpl.java 24 Nov 2008 00:21:34 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/VoidTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -24,8 +24,6 @@ > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.TypesPackage; > import org.eclipse.ocl.types.VoidType; >- >-//import org.eclipse.ocl.types.operations.VoidTypeOperations; > import org.eclipse.ocl.util.OCLStandardLibraryUtil; > > /** >Index: src/org/eclipse/ocl/types/impl/InvalidTypeImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/impl/InvalidTypeImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 InvalidTypeImpl.java >--- src/org/eclipse/ocl/types/impl/InvalidTypeImpl.java 24 Nov 2008 00:21:31 -0000 1.6 >+++ src/org/eclipse/ocl/types/impl/InvalidTypeImpl.java 1 Sep 2009 17:10:51 -0000 >@@ -24,8 +24,6 @@ > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.types.InvalidType; > import org.eclipse.ocl.types.TypesPackage; >- >-//import org.eclipse.ocl.types.operations.InvalidTypeOperations; > import org.eclipse.ocl.util.OCLStandardLibraryUtil; > > /** >Index: src/org/eclipse/ocl/expressions/operations/BooleanLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/BooleanLiteralExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 BooleanLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/BooleanLiteralExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/BooleanLiteralExpOperations.java 1 Sep 2009 17:10:45 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.BooleanLiteralExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/IterateExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/IterateExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 IterateExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/IterateExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/IterateExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,12 +22,10 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.IterateExp; > import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.Variable; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/IfExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/IfExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 IfExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/IfExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/IfExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,11 +22,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.IfExp; > import org.eclipse.ocl.expressions.OCLExpression; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/IteratorExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/IteratorExpOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 IteratorExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/IteratorExpOperations.java 25 Jun 2009 19:23:52 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/IteratorExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,11 +22,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.IteratorExp; > import org.eclipse.ocl.expressions.OCLExpression; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.types.BagType; >Index: src/org/eclipse/ocl/expressions/operations/OCLExpressionOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/OCLExpressionOperations.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLExpressionOperations.java >--- src/org/eclipse/ocl/expressions/operations/OCLExpressionOperations.java 24 Nov 2008 00:21:50 -0000 1.2 >+++ src/org/eclipse/ocl/expressions/operations/OCLExpressionOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.expressions.operations; > > import org.eclipse.ocl.expressions.OCLExpression; >- > import org.eclipse.ocl.utilities.Visitor; > > /** >Index: src/org/eclipse/ocl/expressions/operations/VariableExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/VariableExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 VariableExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/VariableExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/VariableExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,11 +22,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.Variable; > import org.eclipse.ocl.expressions.VariableExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/CollectionItemOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/CollectionItemOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 CollectionItemOperations.java >--- src/org/eclipse/ocl/expressions/operations/CollectionItemOperations.java 12 Oct 2008 01:09:48 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/CollectionItemOperations.java 1 Sep 2009 17:10:45 -0000 >@@ -22,11 +22,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.CollectionItem; > import org.eclipse.ocl.expressions.OCLExpression; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.util.OCLUtil; > import org.eclipse.ocl.util.TypeUtil; >Index: src/org/eclipse/ocl/expressions/operations/CollectionLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/CollectionLiteralExpOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 CollectionLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/CollectionLiteralExpOperations.java 25 Jun 2009 19:23:52 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/CollectionLiteralExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -23,12 +23,10 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.CollectionKind; > import org.eclipse.ocl.expressions.CollectionLiteralExp; > import org.eclipse.ocl.expressions.CollectionLiteralPart; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.types.CollectionType; >Index: src/org/eclipse/ocl/expressions/operations/PropertyCallExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/PropertyCallExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 PropertyCallExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/PropertyCallExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/PropertyCallExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,11 +22,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.PropertyCallExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.util.OCLUtil; > import org.eclipse.ocl.util.TypeUtil; >Index: src/org/eclipse/ocl/expressions/operations/EnumLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/EnumLiteralExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 EnumLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/EnumLiteralExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/EnumLiteralExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.EnumLiteralExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/CollectionLiteralPartOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/CollectionLiteralPartOperations.java,v >retrieving revision 1.1 >diff -u -r1.1 CollectionLiteralPartOperations.java >--- src/org/eclipse/ocl/expressions/operations/CollectionLiteralPartOperations.java 12 Oct 2008 01:09:49 -0000 1.1 >+++ src/org/eclipse/ocl/expressions/operations/CollectionLiteralPartOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -17,7 +17,6 @@ > package org.eclipse.ocl.expressions.operations; > > import org.eclipse.ocl.expressions.CollectionLiteralPart; >- > import org.eclipse.ocl.utilities.Visitor; > > /** >Index: src/org/eclipse/ocl/expressions/operations/MessageExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/MessageExpOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 MessageExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/MessageExpOperations.java 25 Jun 2009 19:23:52 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/MessageExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -24,11 +24,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.MessageExp; > import org.eclipse.ocl.expressions.OCLExpression; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.types.CollectionType; >Index: src/org/eclipse/ocl/expressions/operations/UnlimitedNaturalLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/UnlimitedNaturalLiteralExpOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 UnlimitedNaturalLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/UnlimitedNaturalLiteralExpOperations.java 12 Oct 2008 01:09:49 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/UnlimitedNaturalLiteralExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.UnlimitedNaturalLiteralExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/IntegerLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/IntegerLiteralExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 IntegerLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/IntegerLiteralExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/IntegerLiteralExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.IntegerLiteralExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/TupleLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/TupleLiteralExpOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 TupleLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/TupleLiteralExpOperations.java 25 Jun 2009 19:23:52 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/TupleLiteralExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -24,11 +24,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.TupleLiteralExp; > import org.eclipse.ocl.expressions.TupleLiteralPart; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.types.TupleType; >Index: src/org/eclipse/ocl/expressions/operations/LoopExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/LoopExpOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 LoopExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/LoopExpOperations.java 25 Jun 2009 19:23:52 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/LoopExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,12 +22,10 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.LoopExp; > import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.Variable; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.types.CollectionType; >Index: src/org/eclipse/ocl/expressions/operations/OperationCallExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/OperationCallExpOperations.java,v >retrieving revision 1.8 >diff -u -r1.8 OperationCallExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/OperationCallExpOperations.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/expressions/operations/OperationCallExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -25,11 +25,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.OperationCallExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/RealLiteralExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/RealLiteralExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 RealLiteralExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/RealLiteralExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/RealLiteralExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,10 +22,8 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.RealLiteralExp; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/expressions/operations/TupleLiteralPartOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/TupleLiteralPartOperations.java,v >retrieving revision 1.4 >diff -u -r1.4 TupleLiteralPartOperations.java >--- src/org/eclipse/ocl/expressions/operations/TupleLiteralPartOperations.java 25 Jun 2009 19:23:52 -0000 1.4 >+++ src/org/eclipse/ocl/expressions/operations/TupleLiteralPartOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,17 +22,15 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.TupleLiteralExp; > import org.eclipse.ocl.expressions.TupleLiteralPart; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; >-import org.eclipse.ocl.utilities.Visitor; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; > import org.eclipse.ocl.util.TypeUtil; >+import org.eclipse.ocl.utilities.Visitor; > > /** > * <!-- begin-user-doc --> >Index: src/org/eclipse/ocl/expressions/operations/VariableOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/VariableOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 VariableOperations.java >--- src/org/eclipse/ocl/expressions/operations/VariableOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/VariableOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,16 +22,14 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.Variable; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; >-import org.eclipse.ocl.utilities.Visitor; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; > import org.eclipse.ocl.util.TypeUtil; >+import org.eclipse.ocl.utilities.Visitor; > > /** > * <!-- begin-user-doc --> >Index: src/org/eclipse/ocl/expressions/operations/LetExpOperations.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/operations/LetExpOperations.java,v >retrieving revision 1.3 >diff -u -r1.3 LetExpOperations.java >--- src/org/eclipse/ocl/expressions/operations/LetExpOperations.java 12 Oct 2008 01:09:49 -0000 1.3 >+++ src/org/eclipse/ocl/expressions/operations/LetExpOperations.java 1 Sep 2009 17:10:46 -0000 >@@ -22,11 +22,9 @@ > import org.eclipse.emf.common.util.BasicDiagnostic; > import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; >- > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.expressions.LetExp; > import org.eclipse.ocl.expressions.OCLExpression; >- > import org.eclipse.ocl.expressions.util.ExpressionsValidator; > import org.eclipse.ocl.internal.l10n.OCLMessages; > import org.eclipse.ocl.util.OCLUtil; >Index: src/org/eclipse/ocl/lpg/AbstractAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/lpg/AbstractAnalyzer.java,v >retrieving revision 1.3 >diff -u -r1.3 AbstractAnalyzer.java >--- src/org/eclipse/ocl/lpg/AbstractAnalyzer.java 13 Jan 2009 19:44:29 -0000 1.3 >+++ src/org/eclipse/ocl/lpg/AbstractAnalyzer.java 1 Sep 2009 17:10:47 -0000 >@@ -79,7 +79,7 @@ > } > > public void dumpTokens() { >- parser.dumpTokens(); >+ parser.getIPrsStream().dumpTokens(); > } > > public String formatClass(Object object) { >@@ -276,7 +276,7 @@ > } > > public void setFileName(String filename) { >- getLexer().setFileName(filename); >+ getLexer().getILexStream().setFileName(filename); > } > > /** >@@ -284,9 +284,11 @@ > * > * @param buffer > * the characters >+ * >+ * @deprecated clients should invoke {@link #reset(char[], String)} > */ > public void initialize(char[] buffer) { >- getLexer().initialize(buffer); >+ reset(buffer, null); > } > > /** >@@ -296,14 +298,45 @@ > * providing the source text > * @throws IOException > * if reading fails >+ * >+ * @deprecated clients should invoke {@link #reset(Reader, String)} > */ > public void initialize(Reader reader) > throws IOException { >- getLexer().initialize(reader); >+ reset(reader, null); >+ } >+ >+ /** >+ * Define the input text as a given array of characters. >+ * >+ * @param buffer >+ * the characters >+ * @param fileName >+ * the associated finleName of the input, or <code>null</code> if none. >+ * @since 3.0 >+ */ >+ public void reset(char[] buffer, String fileName) { >+ getLexer().reset(buffer, fileName); >+ } >+ >+ /** >+ * Define the input text by reading from a reader. >+ * >+ * @param reader >+ * providing the source text >+ * @param fileName >+ * the associated finleName of the input, or <code>null</code> if none. >+ * @throws IOException >+ * if reading fails >+ * @since 3.0 >+ */ >+ public void reset(Reader reader, String fileName) >+ throws IOException { >+ getLexer().reset(reader, fileName); > } > > public void setTab(int tab) { >- getLexer().setTab(tab); >+ getLexer().getILexStream().setTab(tab); > } > > public void setTraceFlag(boolean flag) { >Index: src/org/eclipse/ocl/lpg/AbstractBasicEnvironment.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/lpg/AbstractBasicEnvironment.java,v >retrieving revision 1.7 >diff -u -r1.7 AbstractBasicEnvironment.java >--- src/org/eclipse/ocl/lpg/AbstractBasicEnvironment.java 5 Mar 2009 14:30:51 -0000 1.7 >+++ src/org/eclipse/ocl/lpg/AbstractBasicEnvironment.java 1 Sep 2009 17:10:47 -0000 >@@ -25,8 +25,8 @@ > import java.util.List; > import java.util.Map; > >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.ParseErrorCodes; >+import lpg.runtime.IToken; >+import lpg.runtime.ParseErrorCodes; > > import org.eclipse.ocl.cst.CSTNode; > import org.eclipse.ocl.internal.OCLDebugOptions; >@@ -238,9 +238,9 @@ > } > int leftTokenLoc = (leftToken > rightToken ? rightToken : leftToken); > int rightTokenLoc = rightToken; >- int startOffset = parser.getStartOffset(leftTokenLoc); >- int endOffset = parser.getEndOffset(rightTokenLoc); >- int line = leftTokenLoc >= 0 ? parser.getLine(leftTokenLoc) : -1; >+ int startOffset = parser.getIPrsStream().getStartOffset(leftTokenLoc); >+ int endOffset = parser.getIPrsStream().getEndOffset(rightTokenLoc); >+ int line = leftTokenLoc >= 0 ? parser.getIPrsStream().getLine(leftTokenLoc) : -1; > String message; > if (line <= 0) { > message = OCLMessages.InvalidOCL_ERROR_; >Index: src/org/eclipse/ocl/lpg/AbstractParser.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/lpg/AbstractParser.java,v >retrieving revision 1.4 >diff -u -r1.4 AbstractParser.java >--- src/org/eclipse/ocl/lpg/AbstractParser.java 13 Jan 2009 19:44:29 -0000 1.4 >+++ src/org/eclipse/ocl/lpg/AbstractParser.java 1 Sep 2009 17:10:47 -0000 >@@ -19,15 +19,13 @@ > */ > package org.eclipse.ocl.lpg; > >-import java.util.ArrayList; >- >-import lpg.lpgjavaruntime.ErrorToken; >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.LexStream; >-import lpg.lpgjavaruntime.Monitor; >-import lpg.lpgjavaruntime.ParseErrorCodes; >-import lpg.lpgjavaruntime.PrsStream; >-import lpg.lpgjavaruntime.Token; >+import lpg.runtime.ErrorToken; >+import lpg.runtime.ILexStream; >+import lpg.runtime.IToken; >+import lpg.runtime.Monitor; >+import lpg.runtime.ParseErrorCodes; >+import lpg.runtime.ParseTable; >+import lpg.runtime.PrsStream; > > import org.eclipse.ocl.cst.CSTNode; > import org.eclipse.ocl.internal.l10n.OCLMessages; >@@ -43,24 +41,28 @@ > * tokens from text parsing and analysis to support the AST and CST classes > * appropriate to a particular language. > */ >-public abstract class AbstractParser >- extends PrsStream { >- >+public abstract class AbstractParser { >+ > private final BasicEnvironment environment; > > private int defaultRepairCount = 0; >+ >+ private AbstractLexer lexer; > >- public AbstractParser(BasicEnvironment environment) { >+ /*public AbstractParser(BasicEnvironment environment) { > this.environment = environment; > environment.setParser(this); >- } >+ }*/ > > public AbstractParser(AbstractLexer lexer) { >- super(lexer); >+ this.lexer = lexer; > this.environment = lexer.getEnvironment(); >- environment.setParser(this); >+ environment.setParser(this); >+ } >+ >+ public AbstractLexer getLexer() { >+ return lexer; > } >- > /** > * Returns a single line string representation of the input chars for the > * given range. >@@ -73,7 +75,7 @@ > */ > public String computeInputString(int left, int right) { > StringBuffer result = new StringBuffer(right - left + 1); >- char[] chars = getInputChars(); >+ char[] chars = getIPrsStream().getInputChars(); > if (chars.length > 0) { > for (int i = left; i <= right; i++) { > if (chars[i] == '\t') { >@@ -97,148 +99,7 @@ > public BasicEnvironment getEnvironment() { > return environment; > } >- >- /** >- * This function returns the index of the token element containing the >- * offset specified. If such a token does not exist, it returns the negation >- * of the index of the element immediately preceding the offset. >- * >- * @since 1.3 >- */ >- public ErrorToken getErrorTokenAtCharacter(int offset) { >- ErrorToken bestToken = null; >- for (int i = getSize(); --i >= 0;) { >- IToken token = getTokenAt(i); >- if (!(token instanceof ErrorToken)) { >- break; >- } >- IToken errorToken = ((ErrorToken) token).getErrorToken(); >- if (offset >= errorToken.getStartOffset() >- && offset <= errorToken.getEndOffset()) { >- if ((bestToken == null) >- || ((bestToken.getStartOffset() <= errorToken >- .getStartOffset()) && (token.getEndOffset() <= errorToken >- .getEndOffset()))) { >- bestToken = (ErrorToken) token; >- } >- } >- } >- return bestToken; >- } >- >- /** >- * @since 1.3 >- */ >- public int getDefaultRepairCount() { >- return defaultRepairCount; >- } >- >- /** >- * @since 1.3 >- */ >- public int getErrorTokens() { >- return getTokens().size() - getStreamLength(); >- } >- >- public AbstractLexer getLexer() { >- return (AbstractLexer) super.getLexStream(); >- } >- >- /** >- * Overridden to search only the non-Error nodes, which are the only tokens >- * in monotonic order. >- */ >- @Override >- public int getTokenIndexAtCharacter(int offset) { >- int low = 0; >- int high = getSize(); >- while (high > low) { >- IToken highToken = getTokenAt(high - 1); >- if (!(highToken instanceof ErrorToken)) { >- break; >- } >- high--; >- } >- while (high > low) { >- int mid = (high + low) / 2; >- IToken mid_element = getTokenAt(mid); >- if (offset >= mid_element.getStartOffset() >- && offset <= mid_element.getEndOffset()) { >- return mid; >- } else if (offset < mid_element.getStartOffset()) { >- high = mid; >- } else { >- low = mid + 1; >- } >- } >- >- return -(low - 1); >- } >- >- @Override >- public int makeErrorToken(int firsttok, int lasttok, int errortok, int kind) { >- @SuppressWarnings("unchecked") >- ArrayList<IToken> tokens = getTokens(); >- int index = tokens.size(); // the next index >- >- // >- // Note that when creating an error token, we do not remap its kind. >- // Since this is not a lexical operation, it is the responsibility of >- // the calling program (a parser driver) to pass to us the proper kind >- // that it wants for an error token. >- // >- Token token = new ErrorToken(getIToken(firsttok), getIToken(lasttok), >- getIToken(errortok), getStartOffset(firsttok), >- getEndOffset(lasttok), kind) { >- >- @Override >- public String toString() { >- if (getPrsStream() == null) { >- return "<toString>"; //$NON-NLS-1$ >- } >- int startOffset = getStartOffset(); >- int length = getEndOffset() - startOffset; >- if (length < 0) { >- length = -length - 1; >- startOffset = getEndOffset(); >- } >- if ((startOffset + length) > getPrsStream().getInputChars().length) { >- return String.valueOf(IToken.EOF); >- } >- return new String(getPrsStream().getInputChars(), startOffset, >- length); >- } >- >- }; >- token.setTokenIndex(index); >- tokens.add(token); >- token.setAdjunctIndex(getAdjuncts().size()); >- return index; >- } >- >- public CSTNode parseTokensToCST() { >- return parseTokensToCST(null, defaultRepairCount); >- } >- >- public abstract CSTNode parseTokensToCST(Monitor monitor, >- int error_repair_count); >- >- @Override >- public void reportError(int errorCode, String locationInfo, int leftToken, >- int rightToken, String tokenText) { >- BasicEnvironment environment = getEnvironment(); >- if (environment == null) { >- super.reportError(errorCode, locationInfo, leftToken, rightToken, >- tokenText); >- } else { >- if (errorCode == DELETION_CODE || errorCode == MISPLACED_CODE) { >- tokenText = ""; //$NON-NLS-1$ >- } >- environment >- .parserError(errorCode, leftToken, rightToken, tokenText); >- } >- } >- >+ > /** > * Report error message for given error_token. > * >@@ -250,29 +111,50 @@ > * @since 1.3 > */ > public final void reportErrorTokenMessage(int error_token, String msg) { >- int firsttok = super.getFirstRealToken(error_token); >- int lasttok = super.getLastRealToken(error_token); >+ int firsttok = getIPrsStream().getFirstRealToken(error_token); >+ int lasttok = getIPrsStream().getLastRealToken(error_token); > if (firsttok > lasttok) { >- String location = super.getFileName() + ':' >+ /*String location = super.getFileName() + ':' > + super.getEndLine(lasttok) + ':' + super.getEndColumn(lasttok) >- + ": "; //$NON-NLS-1$ >- reportError(ParseErrorCodes.INSERTION_CODE, location, lasttok, >+ + ": "; //$NON-NLS-1$*/ >+ getIPrsStream().reportError(ParseErrorCodes.INSERTION_CODE, lasttok, > lasttok, msg); > } else { >- String location = super.getFileName() + ':' >+ /*String location = super.getFileName() + ':' > + super.getLine(error_token) + ':' > + super.getColumn(error_token) + ':' > + super.getEndLine(error_token) + ':' >- + super.getEndColumn(error_token) + ": "; //$NON-NLS-1$ >- reportError(ParseErrorCodes.SUBSTITUTION_CODE, location, firsttok, >+ + super.getEndColumn(error_token) + ": "; //$NON-NLS-1$*/ >+ getIPrsStream().reportError(ParseErrorCodes.SUBSTITUTION_CODE, firsttok, > lasttok, msg); > } > } > >- @Override >+ /** >+ * @return >+ * @deprecated clients should invoke {@link #parser()} >+ */ >+ public CSTNode parseTokensToCST() { >+ return parser(null, defaultRepairCount); >+ } >+ >+ /** >+ * @param monitor >+ * @param error_repair_count >+ * @return >+ * >+ * @deprecated clients should invoke {@link #parser(Monitor, int)} >+ * @since 3.0 >+ */ >+ public CSTNode parseTokensToCST(Monitor monitor, >+ int error_repair_count) { >+ return parser(monitor, error_repair_count); >+ } >+ >+ /*@Override > public void resetLexStream(LexStream lexStream) { > setLexStream((AbstractLexer) lexStream); >- } >+ }*/ > > /** > * Sets the number of repairs to be performed by a parser capable of >@@ -294,9 +176,12 @@ > > this.defaultRepairCount = defaultRepairCount; > } >- >- public void setLexStream(AbstractLexer lexStream) { >- super.resetLexStream(lexStream); >+ >+ /** >+ * @since 1.3 >+ */ >+ public int getDefaultRepairCount() { >+ return defaultRepairCount; > } > > /** >@@ -307,6 +192,7 @@ > * <code>CSTNode</code> to set offsets > * @param startEnd > * <code>IToken</code> to retrieve offsets from >+ * @since 3.0 > */ > protected void setOffsets(CSTNode cstNode, IToken startEnd) { > cstNode.setStartToken(startEnd); >@@ -368,6 +254,7 @@ > * <code>CSTNode</code> to retrieve start offset from > * @param end > * <code>IToken</code> to retrieve end offset from >+ * @since 3.0 > */ > protected void setOffsets(CSTNode cstNode, CSTNode start, IToken end) { > cstNode.setStartToken(start.getStartToken()); >@@ -387,6 +274,7 @@ > * <code>IToken</code> to retrieve start offset from > * @param end > * <code>CSTNode</code> to retrieve end offset from >+ * @since 3.0 > */ > protected void setOffsets(CSTNode cstNode, IToken start, CSTNode end) { > cstNode.setStartToken(start); >@@ -406,6 +294,7 @@ > * <code>IToken</code> to retrieve start offset from > * @param end > * <code>IToken</code> to retrieve end offset from >+ * @since 3.0 > */ > protected void setOffsets(CSTNode cstNode, IToken start, IToken end) { > cstNode.setStartToken(start); >@@ -413,6 +302,29 @@ > cstNode.setStartOffset(start.getStartOffset()); > cstNode.setEndOffset(end.getEndOffset()); > } >+ >+ /** >+ * <p> >+ * Initializes a concrete-syntax node's start and end offsets from the >+ * current token in the parser stream. >+ * <p> >+ * >+ * <p> >+ * <b>Note:</b> this method resided in the OCLEssential.g template since 1.2 >+ * It has been incorporated in the abstract parser since 3.0 >+ * </p> >+ * >+ * @param cstNode a concrete-syntax node >+ * >+ * @since 3.0 >+ */ >+ protected void setOffsets(CSTNode cstNode) { >+ IToken firstToken = getRhsIToken(1); >+ cstNode.setStartToken(firstToken); >+ cstNode.setEndToken(firstToken); >+ cstNode.setStartOffset(firstToken.getStartOffset()); >+ cstNode.setEndOffset(firstToken.getEndOffset()-1); >+ } > > /** > * Removes the "s surrounding a quoted string, if any. >@@ -457,4 +369,126 @@ > > return result; > } >+ >+ // Some useful methods which will be implemented in the generated Parser >+ abstract public String[] orderedTerminalSymbols(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public OCLParserStream getIPrsStream(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public void reset(ILexStream lexStream); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public CSTNode parser(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public CSTNode parser(Monitor monitor); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public CSTNode parser(int error_repair_count); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public CSTNode parser(Monitor monitor, int error_repair_count); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public ParseTable getParseTable(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public Object getRhsSym(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int getRhsTokenIndex(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public IToken getRhsIToken(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int getRhsFirstTokenIndex(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public IToken getRhsFirstIToken(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int getRhsLastTokenIndex(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public IToken getRhsLastIToken(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int getLeftSpan(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public IToken getLeftIToken(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int getRightSpan(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public IToken getRightIToken(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int getRhsErrorTokenIndex(int i); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public ErrorToken getRhsErrorIToken(int i); >+ >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * @since 3.0 >+ * >+ */ >+ abstract public PrsStream getPrsStream(); >+ >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * @since 3.0 >+ * >+ */ >+ abstract public PrsStream getParseStream(); >+ >+ /** >+ * @since 3.0 >+ */ >+ abstract public int numTokenKinds(); > } >Index: src/org/eclipse/ocl/lpg/AbstractLexer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/lpg/AbstractLexer.java,v >retrieving revision 1.2 >diff -u -r1.2 AbstractLexer.java >--- src/org/eclipse/ocl/lpg/AbstractLexer.java 4 Oct 2008 00:54:10 -0000 1.2 >+++ src/org/eclipse/ocl/lpg/AbstractLexer.java 1 Sep 2009 17:10:47 -0000 >@@ -23,9 +23,10 @@ > import java.io.IOException; > import java.io.Reader; > >-import lpg.lpgjavaruntime.LpgLexStream; >-import lpg.lpgjavaruntime.Monitor; >-import lpg.lpgjavaruntime.RuleAction; >+import lpg.runtime.ILexStream; >+import lpg.runtime.LexParser; >+import lpg.runtime.Monitor; >+import lpg.runtime.ParseTable; > > > /** >@@ -36,10 +37,11 @@ > * > * Derived classes should extend the abstract support for AST from CST from tokens from text > * parsing and analysis to support the AST and CST classes appropriate to a particular language. >+ * @since 3.0 > */ >-public abstract class AbstractLexer extends LpgLexStream implements RuleAction >+public abstract class AbstractLexer > { >- protected final static int ECLIPSE_TAB_VALUE = 4; >+ > > /** > * Read all input characters from a reader. >@@ -70,38 +72,62 @@ > return buffer; > } > >- private final BasicEnvironment environment; >- >- public AbstractLexer(BasicEnvironment environment, String filename, int tab) throws java.io.IOException >+ private final BasicEnvironment environment; >+ >+ // Constructor >+ public AbstractLexer(BasicEnvironment environment) > { >- super(filename, tab); > this.environment = environment; > } > >- public AbstractLexer(BasicEnvironment environment, char[] input_chars, String filename, int tab) >- { >- super(input_chars, filename, tab); >- this.environment = environment; >- } >+ public BasicEnvironment getEnvironment() { >+ return environment; >+ } > >- public AbstractLexer(BasicEnvironment environment) { >- setTab(ECLIPSE_TAB_VALUE); >- this.environment = environment; >+ /** >+ * Define the input text as a given array of characters. >+ * @param buffer the characters >+ * @deprecated clients should use {@link #reset(char[], String)} >+ */ >+ public void initialize(char[] inputChars) { >+ /*setInputChars(inputChars); >+ setStreamLength(inputChars.length); >+ computeLineOffsets();*/ >+ reset(inputChars, null); >+ } >+ >+ /** >+ * Define the input text by reading from a reader. >+ * @param reader providing the source text >+ * @throws IOException if reading fails >+ * >+ * @deprecated clients should invoke {@link #reset(Reader, String)} >+ */ >+ public void initialize(Reader reader) throws IOException { >+ char[] buffer = getInputChars(reader); >+ reset(buffer, null); > } > >- protected int computeErrorCode(int leftToken, int rightToken) { >- if (rightToken >= getStreamLength()) >- return EOF_CODE; >- else if (leftToken == rightToken) >- return LEX_ERROR_CODE; >- else >- return INVALID_TOKEN_CODE; >+ /** >+ * @param parser the {@link OCLParserStream} instance >+ * @deprecated clients should invoke {@link #lexer(OCLParserStream)} >+ * @since 3.0 >+ */ >+ public void lexToTokens(OCLParserStream parser) { >+ lexer(parser); > } > >- public BasicEnvironment getEnvironment() { >- return environment; >- } >- >+ /** >+ * @param parser the {@link OCLParserStream} instance >+ * @deprecated clients should invoke {@link #lexer(Monitor, OCLParserStream)} >+ * @since 3.0 >+ */ >+ public void lexToTokens(Monitor monitor, OCLParserStream prsStream) >+ { >+ lexer(monitor, prsStream); >+ } >+ >+ // Some methods which will be implemented by the generated lexer > /** > * Queries the token kinds, as defined by my keyword lexer, of tokens that > * are keywords in by grammar. >@@ -110,48 +136,82 @@ > * > * @since 1.3 > */ >- public int [] getKeywordKinds() { >- return new int[0]; >- } >- >- public void lexToTokens(AbstractParser parser) { >- lexToTokens(null, parser); >- } >+ public abstract int [] getKeywordKinds(); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract AbstractLexerStream getILexStream(); > >- public abstract void lexToTokens(Monitor monitor, AbstractParser parser); >- > /** >- * Errors generated within the lexer are redirected to the error handler if there is one. >- * >- * Note that other variants of reportError either feed this one, are fed from a default implementation >- * of this one or originate in the parser, where a ParserErrorHandler can intercept them. >+ * @since 3.0 > */ >- @Override public void reportError(int leftToken, int rightToken) { >- BasicEnvironment environment = getEnvironment(); >- if (environment != null) >- environment.lexerError(computeErrorCode(leftToken, rightToken), leftToken, rightToken); >- else >- super.reportError(leftToken, rightToken); >- } >+ public abstract void reset(String filename, int tab) throws java.io.IOException; > > /** >- * Define the input text as a given array of characters. >- * @param buffer the characters >- */ >- public void initialize(char[] inputChars) { >- setInputChars(inputChars); >- setStreamLength(inputChars.length); >- computeLineOffsets(); >- } >+ * @since 3.0 >+ */ >+ public abstract void reset(char[] input_chars, String filename); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void reset(char[] input_chars, String filename, int tab); > >+ /** >+ * @since 3.0 >+ */ >+ public abstract void reset(Reader reader, String filename) throws java.io.IOException; >+ > /** >- * Define the input text by reading from a reader. >- * @param reader providing the source text >- * @throws IOException if reading fails >- */ >- public void initialize(Reader reader) throws IOException { >- char[] buffer = getInputChars(reader); >- initialize(buffer); >- } >+ * @since 3.0 >+ */ >+ public abstract void reset(Reader reader, String filename, int tab) throws java.io.IOException; >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void lexer(OCLParserStream prsStream); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void lexer(Monitor monitor, OCLParserStream prsStream); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void lexer(OCLParserStream prsStream, int start_offset, int end_offset); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void lexer(Monitor monitor, OCLParserStream prsStream, int start_offset, int end_offset); >+ >+ // We also include some new 3.0 methods in order not to change the template with the @since >+ /** >+ * @since 3.0 >+ */ >+ public abstract ParseTable getParseTable(); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract LexParser getParser(); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void resetKeywordLexer(); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract ILexStream getLexStream(); >+ >+ /** >+ * @since 3.0 >+ */ >+ public abstract void reportLexicalError(int startLoc, int endLoc); > } > >Index: src/org/eclipse/ocl/lpg/AbstractProblemHandler.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/lpg/AbstractProblemHandler.java,v >retrieving revision 1.1 >diff -u -r1.1 AbstractProblemHandler.java >--- src/org/eclipse/ocl/lpg/AbstractProblemHandler.java 11 Oct 2007 23:04:53 -0000 1.1 >+++ src/org/eclipse/ocl/lpg/AbstractProblemHandler.java 1 Sep 2009 17:10:47 -0000 >@@ -17,7 +17,7 @@ > */ > package org.eclipse.ocl.lpg; > >-import lpg.lpgjavaruntime.ParseErrorCodes; >+import lpg.runtime.ParseErrorCodes; > > import org.eclipse.emf.common.util.Monitor; > import org.eclipse.ocl.internal.l10n.OCLMessages; >@@ -102,7 +102,7 @@ > */ > public void handleProblem(Severity problemSeverity, Phase processingPhase, > String problemMessage, String processingContext, int startOffset, int endOffset) { >- int lineNumber = parser.getTokenAtCharacter(startOffset).getLine(); >+ int lineNumber = parser.getIPrsStream().getTokenAtCharacter(startOffset).getLine(); > String message = OCLMessages.bind( > OCLMessages.ProblemMessage_ERROR_, > new Object[] { >Index: model/OCLCST.ecore >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/model/OCLCST.ecore,v >retrieving revision 1.8 >diff -u -r1.8 OCLCST.ecore >--- model/OCLCST.ecore 5 Mar 2009 14:12:13 -0000 1.8 >+++ model/OCLCST.ecore 1 Sep 2009 17:10:41 -0000 >@@ -15,7 +15,7 @@ > eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject" > transient="true"/> > </eClassifiers> >- <eClassifiers xsi:type="ecore:EDataType" name="IToken" instanceClassName="lpg.lpgjavaruntime.IToken"/> >+ <eClassifiers xsi:type="ecore:EDataType" name="IToken" instanceClassName="lpg.runtime.IToken"/> > <eClassifiers xsi:type="ecore:EClass" name="PackageDeclarationCS" eSuperTypes="#//cst/CSTNode"> > <eStructuralFeatures xsi:type="ecore:EReference" name="pathNameCS" eType="#//cst/PathNameCS" > containment="true"/> >Index: model/OCLCST.uml >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/model/OCLCST.uml,v >retrieving revision 1.5 >diff -u -r1.5 OCLCST.uml >--- model/OCLCST.uml 5 Mar 2009 14:12:13 -0000 1.5 >+++ model/OCLCST.uml 1 Sep 2009 17:10:41 -0000 >@@ -874,7 +874,7 @@ > <Ecore:EClass xmi:id="_qf-8J_8fEduhWtVvKtiQ7w" base_Class="_qdx-Vf8fEduhWtVvKtiQ7w"/> > <Ecore:EClass xmi:id="_qf-8KP8fEduhWtVvKtiQ7w" base_Class="_qdx-V_8fEduhWtVvKtiQ7w"/> > <Ecore:EAttribute xmi:id="_qf-8Kf8fEduhWtVvKtiQ7w" base_Property="_qdx-Wf8fEduhWtVvKtiQ7w"/> >- <Ecore:EDataType xmi:id="_wn-44I2FEd2mlKUM3HGxZg" instanceClassName="lpg.lpgjavaruntime.IToken" base_PrimitiveType="_tvVQwI2FEd2mlKUM3HGxZg"/> >+ <Ecore:EDataType xmi:id="_wn-44I2FEd2mlKUM3HGxZg" instanceClassName="lpg.runtime.IToken" base_PrimitiveType="_tvVQwI2FEd2mlKUM3HGxZg"/> > <Ecore:EAttribute xmi:id="_qkehgI2JEd2mlKUM3HGxZg" isTransient="true" base_Property="_PkTnII2GEd2mlKUM3HGxZg"/> > <Ecore:EAttribute xmi:id="_na5BwI2GEd2mlKUM3HGxZg" isTransient="true" base_Property="_kTt1cI2GEd2mlKUM3HGxZg"/> > <Ecore:EAttribute xmi:id="_CoEkwI2HEd2mlKUM3HGxZg" isTransient="true" base_Property="_xJpmEI2GEd2mlKUM3HGxZg"/> >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingKWLexer.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2007 IBM Corporation and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,17 +10,18 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingKWLexer.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* > */ > > package org.eclipse.ocl.parser.backtracking; > > > >-public class OCLBacktrackingKWLexer extends OCLBacktrackingKWLexerprs implements OCLBacktrackingParsersym >+public class OCLBacktrackingKWLexer extends OCLBacktrackingKWLexerprs > { > private char[] inputChars; > private final int keywordKind[] = new int[63 + 1]; >@@ -57,66 +58,68 @@ > final static int tokenKind[] = new int[128]; > static > { >- tokenKind['$'] = Char_DollarSign; >- >- tokenKind['a'] = Char_a; >- tokenKind['b'] = Char_b; >- tokenKind['c'] = Char_c; >- tokenKind['d'] = Char_d; >- tokenKind['e'] = Char_e; >- tokenKind['f'] = Char_f; >- tokenKind['g'] = Char_g; >- tokenKind['h'] = Char_h; >- tokenKind['i'] = Char_i; >- tokenKind['j'] = Char_j; >- tokenKind['k'] = Char_k; >- tokenKind['l'] = Char_l; >- tokenKind['m'] = Char_m; >- tokenKind['n'] = Char_n; >- tokenKind['o'] = Char_o; >- tokenKind['p'] = Char_p; >- tokenKind['q'] = Char_q; >- tokenKind['r'] = Char_r; >- tokenKind['s'] = Char_s; >- tokenKind['t'] = Char_t; >- tokenKind['u'] = Char_u; >- tokenKind['v'] = Char_v; >- tokenKind['w'] = Char_w; >- tokenKind['x'] = Char_x; >- tokenKind['y'] = Char_y; >- tokenKind['z'] = Char_z; >- >- tokenKind['A'] = Char_A; >- tokenKind['B'] = Char_B; >- tokenKind['C'] = Char_C; >- tokenKind['D'] = Char_D; >- tokenKind['E'] = Char_E; >- tokenKind['F'] = Char_F; >- tokenKind['G'] = Char_G; >- tokenKind['H'] = Char_H; >- tokenKind['I'] = Char_I; >- tokenKind['J'] = Char_J; >- tokenKind['K'] = Char_K; >- tokenKind['L'] = Char_L; >- tokenKind['M'] = Char_M; >- tokenKind['N'] = Char_N; >- tokenKind['O'] = Char_O; >- tokenKind['P'] = Char_P; >- tokenKind['Q'] = Char_Q; >- tokenKind['R'] = Char_R; >- tokenKind['S'] = Char_S; >- tokenKind['T'] = Char_T; >- tokenKind['U'] = Char_U; >- tokenKind['V'] = Char_V; >- tokenKind['W'] = Char_W; >- tokenKind['X'] = Char_X; >- tokenKind['Y'] = Char_Y; >- tokenKind['Z'] = Char_Z; >+ tokenKind['$'] = OCLBacktrackingKWLexersym.Char_DollarSign; >+ tokenKind['%'] = OCLBacktrackingKWLexersym.Char_Percent; >+ tokenKind['_'] = OCLBacktrackingKWLexersym.Char__; >+ >+ tokenKind['a'] = OCLBacktrackingKWLexersym.Char_a; >+ tokenKind['b'] = OCLBacktrackingKWLexersym.Char_b; >+ tokenKind['c'] = OCLBacktrackingKWLexersym.Char_c; >+ tokenKind['d'] = OCLBacktrackingKWLexersym.Char_d; >+ tokenKind['e'] = OCLBacktrackingKWLexersym.Char_e; >+ tokenKind['f'] = OCLBacktrackingKWLexersym.Char_f; >+ tokenKind['g'] = OCLBacktrackingKWLexersym.Char_g; >+ tokenKind['h'] = OCLBacktrackingKWLexersym.Char_h; >+ tokenKind['i'] = OCLBacktrackingKWLexersym.Char_i; >+ tokenKind['j'] = OCLBacktrackingKWLexersym.Char_j; >+ tokenKind['k'] = OCLBacktrackingKWLexersym.Char_k; >+ tokenKind['l'] = OCLBacktrackingKWLexersym.Char_l; >+ tokenKind['m'] = OCLBacktrackingKWLexersym.Char_m; >+ tokenKind['n'] = OCLBacktrackingKWLexersym.Char_n; >+ tokenKind['o'] = OCLBacktrackingKWLexersym.Char_o; >+ tokenKind['p'] = OCLBacktrackingKWLexersym.Char_p; >+ tokenKind['q'] = OCLBacktrackingKWLexersym.Char_q; >+ tokenKind['r'] = OCLBacktrackingKWLexersym.Char_r; >+ tokenKind['s'] = OCLBacktrackingKWLexersym.Char_s; >+ tokenKind['t'] = OCLBacktrackingKWLexersym.Char_t; >+ tokenKind['u'] = OCLBacktrackingKWLexersym.Char_u; >+ tokenKind['v'] = OCLBacktrackingKWLexersym.Char_v; >+ tokenKind['w'] = OCLBacktrackingKWLexersym.Char_w; >+ tokenKind['x'] = OCLBacktrackingKWLexersym.Char_x; >+ tokenKind['y'] = OCLBacktrackingKWLexersym.Char_y; >+ tokenKind['z'] = OCLBacktrackingKWLexersym.Char_z; >+ >+ tokenKind['A'] = OCLBacktrackingKWLexersym.Char_A; >+ tokenKind['B'] = OCLBacktrackingKWLexersym.Char_B; >+ tokenKind['C'] = OCLBacktrackingKWLexersym.Char_C; >+ tokenKind['D'] = OCLBacktrackingKWLexersym.Char_D; >+ tokenKind['E'] = OCLBacktrackingKWLexersym.Char_E; >+ tokenKind['F'] = OCLBacktrackingKWLexersym.Char_F; >+ tokenKind['G'] = OCLBacktrackingKWLexersym.Char_G; >+ tokenKind['H'] = OCLBacktrackingKWLexersym.Char_H; >+ tokenKind['I'] = OCLBacktrackingKWLexersym.Char_I; >+ tokenKind['J'] = OCLBacktrackingKWLexersym.Char_J; >+ tokenKind['K'] = OCLBacktrackingKWLexersym.Char_K; >+ tokenKind['L'] = OCLBacktrackingKWLexersym.Char_L; >+ tokenKind['M'] = OCLBacktrackingKWLexersym.Char_M; >+ tokenKind['N'] = OCLBacktrackingKWLexersym.Char_N; >+ tokenKind['O'] = OCLBacktrackingKWLexersym.Char_O; >+ tokenKind['P'] = OCLBacktrackingKWLexersym.Char_P; >+ tokenKind['Q'] = OCLBacktrackingKWLexersym.Char_Q; >+ tokenKind['R'] = OCLBacktrackingKWLexersym.Char_R; >+ tokenKind['S'] = OCLBacktrackingKWLexersym.Char_S; >+ tokenKind['T'] = OCLBacktrackingKWLexersym.Char_T; >+ tokenKind['U'] = OCLBacktrackingKWLexersym.Char_U; >+ tokenKind['V'] = OCLBacktrackingKWLexersym.Char_V; >+ tokenKind['W'] = OCLBacktrackingKWLexersym.Char_W; >+ tokenKind['X'] = OCLBacktrackingKWLexersym.Char_X; >+ tokenKind['Y'] = OCLBacktrackingKWLexersym.Char_Y; >+ tokenKind['Z'] = OCLBacktrackingKWLexersym.Char_Z; > }; > > final int getKind(char c) > { >- return (c < 128 ? tokenKind[c] : 0); >+ return (((c & 0xFFFFFF80) == 0) /* 0 <= c < 128? */ ? tokenKind[c] : 0); > } > > >@@ -128,382 +131,444 @@ > // > // Rule 1: KeyWord ::= s e l f > // >- keywordKind[1] = (TK_self); >+ >+ keywordKind[1] = (OCLBacktrackingParsersym.TK_self); > > > // > // Rule 2: KeyWord ::= i n v > // >- keywordKind[2] = (TK_inv); >+ >+ keywordKind[2] = (OCLBacktrackingParsersym.TK_inv); > > > // > // Rule 3: KeyWord ::= p r e > // >- keywordKind[3] = (TK_pre); >+ >+ keywordKind[3] = (OCLBacktrackingParsersym.TK_pre); > > > // > // Rule 4: KeyWord ::= p o s t > // >- keywordKind[4] = (TK_post); >+ >+ keywordKind[4] = (OCLBacktrackingParsersym.TK_post); > > > // > // Rule 5: KeyWord ::= b o d y > // >- keywordKind[5] = (TK_body); >+ >+ keywordKind[5] = (OCLBacktrackingParsersym.TK_body); > > > // > // Rule 6: KeyWord ::= c o n t e x t > // >- keywordKind[6] = (TK_context); >+ >+ keywordKind[6] = (OCLBacktrackingParsersym.TK_context); > > > // > // Rule 7: KeyWord ::= p a c k a g e > // >- keywordKind[7] = (TK_package); >+ >+ keywordKind[7] = (OCLBacktrackingParsersym.TK_package); > > > // > // Rule 8: KeyWord ::= e n d p a c k a g e > // >- keywordKind[8] = (TK_endpackage); >+ >+ keywordKind[8] = (OCLBacktrackingParsersym.TK_endpackage); > > > // > // Rule 9: KeyWord ::= d e f > // >- keywordKind[9] = (TK_def); >+ >+ keywordKind[9] = (OCLBacktrackingParsersym.TK_def); > > > // > // Rule 10: KeyWord ::= d e r i v e > // >- keywordKind[10] = (TK_derive); >+ >+ keywordKind[10] = (OCLBacktrackingParsersym.TK_derive); > > > // > // Rule 11: KeyWord ::= i n i t > // >- keywordKind[11] = (TK_init); >+ >+ keywordKind[11] = (OCLBacktrackingParsersym.TK_init); > > > // > // Rule 12: KeyWord ::= i f > // >- keywordKind[12] = (TK_if); >+ >+ keywordKind[12] = (OCLBacktrackingParsersym.TK_if); > > > // > // Rule 13: KeyWord ::= t h e n > // >- keywordKind[13] = (TK_then); >+ >+ keywordKind[13] = (OCLBacktrackingParsersym.TK_then); > > > // > // Rule 14: KeyWord ::= e l s e > // >- keywordKind[14] = (TK_else); >+ >+ keywordKind[14] = (OCLBacktrackingParsersym.TK_else); > > > // > // Rule 15: KeyWord ::= e n d i f > // >- keywordKind[15] = (TK_endif); >+ >+ keywordKind[15] = (OCLBacktrackingParsersym.TK_endif); > > > // > // Rule 16: KeyWord ::= a n d > // >- keywordKind[16] = (TK_and); >+ >+ keywordKind[16] = (OCLBacktrackingParsersym.TK_and); > > > // > // Rule 17: KeyWord ::= o r > // >- keywordKind[17] = (TK_or); >+ >+ keywordKind[17] = (OCLBacktrackingParsersym.TK_or); > > > // > // Rule 18: KeyWord ::= x o r > // >- keywordKind[18] = (TK_xor); >+ >+ keywordKind[18] = (OCLBacktrackingParsersym.TK_xor); > > > // > // Rule 19: KeyWord ::= n o t > // >- keywordKind[19] = (TK_not); >+ >+ keywordKind[19] = (OCLBacktrackingParsersym.TK_not); > > > // > // Rule 20: KeyWord ::= i m p l i e s > // >- keywordKind[20] = (TK_implies); >+ >+ keywordKind[20] = (OCLBacktrackingParsersym.TK_implies); > > > // > // Rule 21: KeyWord ::= l e t > // >- keywordKind[21] = (TK_let); >+ >+ keywordKind[21] = (OCLBacktrackingParsersym.TK_let); > > > // > // Rule 22: KeyWord ::= i n > // >- keywordKind[22] = (TK_in); >+ >+ keywordKind[22] = (OCLBacktrackingParsersym.TK_in); > > > // > // Rule 23: KeyWord ::= t r u e > // >- keywordKind[23] = (TK_true); >+ >+ keywordKind[23] = (OCLBacktrackingParsersym.TK_true); > > > // > // Rule 24: KeyWord ::= f a l s e > // >- keywordKind[24] = (TK_false); >+ >+ keywordKind[24] = (OCLBacktrackingParsersym.TK_false); > > > // > // Rule 25: KeyWord ::= S e t > // >- keywordKind[25] = (TK_Set); >+ >+ keywordKind[25] = (OCLBacktrackingParsersym.TK_Set); > > > // > // Rule 26: KeyWord ::= B a g > // >- keywordKind[26] = (TK_Bag); >+ >+ keywordKind[26] = (OCLBacktrackingParsersym.TK_Bag); > > > // > // Rule 27: KeyWord ::= S e q u e n c e > // >- keywordKind[27] = (TK_Sequence); >+ >+ keywordKind[27] = (OCLBacktrackingParsersym.TK_Sequence); > > > // > // Rule 28: KeyWord ::= C o l l e c t i o n > // >- keywordKind[28] = (TK_Collection); >+ >+ keywordKind[28] = (OCLBacktrackingParsersym.TK_Collection); > > > // > // Rule 29: KeyWord ::= O r d e r e d S e t > // >- keywordKind[29] = (TK_OrderedSet); >+ >+ keywordKind[29] = (OCLBacktrackingParsersym.TK_OrderedSet); > > > // > // Rule 30: KeyWord ::= i t e r a t e > // >- keywordKind[30] = (TK_iterate); >+ >+ keywordKind[30] = (OCLBacktrackingParsersym.TK_iterate); > > > // > // Rule 31: KeyWord ::= f o r A l l > // >- keywordKind[31] = (TK_forAll); >+ >+ keywordKind[31] = (OCLBacktrackingParsersym.TK_forAll); > > > // > // Rule 32: KeyWord ::= e x i s t s > // >- keywordKind[32] = (TK_exists); >+ >+ keywordKind[32] = (OCLBacktrackingParsersym.TK_exists); > > > // > // Rule 33: KeyWord ::= i s U n i q u e > // >- keywordKind[33] = (TK_isUnique); >+ >+ keywordKind[33] = (OCLBacktrackingParsersym.TK_isUnique); > > > // > // Rule 34: KeyWord ::= a n y > // >- keywordKind[34] = (TK_any); >+ >+ keywordKind[34] = (OCLBacktrackingParsersym.TK_any); > > > // > // Rule 35: KeyWord ::= o n e > // >- keywordKind[35] = (TK_one); >+ >+ keywordKind[35] = (OCLBacktrackingParsersym.TK_one); > > > // > // Rule 36: KeyWord ::= c o l l e c t > // >- keywordKind[36] = (TK_collect); >+ >+ keywordKind[36] = (OCLBacktrackingParsersym.TK_collect); > > > // > // Rule 37: KeyWord ::= s e l e c t > // >- keywordKind[37] = (TK_select); >+ >+ keywordKind[37] = (OCLBacktrackingParsersym.TK_select); > > > // > // Rule 38: KeyWord ::= r e j e c t > // >- keywordKind[38] = (TK_reject); >+ >+ keywordKind[38] = (OCLBacktrackingParsersym.TK_reject); > > > // > // Rule 39: KeyWord ::= c o l l e c t N e s t e d > // >- keywordKind[39] = (TK_collectNested); >+ >+ keywordKind[39] = (OCLBacktrackingParsersym.TK_collectNested); > > > // > // Rule 40: KeyWord ::= s o r t e d B y > // >- keywordKind[40] = (TK_sortedBy); >+ >+ keywordKind[40] = (OCLBacktrackingParsersym.TK_sortedBy); > > > // > // Rule 41: KeyWord ::= c l o s u r e > // >- keywordKind[41] = (TK_closure); >+ >+ keywordKind[41] = (OCLBacktrackingParsersym.TK_closure); > > > // > // Rule 42: KeyWord ::= o c l I s K i n d O f > // >- keywordKind[42] = (TK_oclIsKindOf); >+ >+ keywordKind[42] = (OCLBacktrackingParsersym.TK_oclIsKindOf); > > > // > // Rule 43: KeyWord ::= o c l I s T y p e O f > // >- keywordKind[43] = (TK_oclIsTypeOf); >+ >+ keywordKind[43] = (OCLBacktrackingParsersym.TK_oclIsTypeOf); > > > // > // Rule 44: KeyWord ::= o c l A s T y p e > // >- keywordKind[44] = (TK_oclAsType); >+ >+ keywordKind[44] = (OCLBacktrackingParsersym.TK_oclAsType); > > > // > // Rule 45: KeyWord ::= o c l I s N e w > // >- keywordKind[45] = (TK_oclIsNew); >+ >+ keywordKind[45] = (OCLBacktrackingParsersym.TK_oclIsNew); > > > // > // Rule 46: KeyWord ::= o c l I s U n d e f i n e d > // >- keywordKind[46] = (TK_oclIsUndefined); >+ >+ keywordKind[46] = (OCLBacktrackingParsersym.TK_oclIsUndefined); > > > // > // Rule 47: KeyWord ::= o c l I s I n v a l i d > // >- keywordKind[47] = (TK_oclIsInvalid); >+ >+ keywordKind[47] = (OCLBacktrackingParsersym.TK_oclIsInvalid); > > > // > // Rule 48: KeyWord ::= o c l I s I n S t a t e > // >- keywordKind[48] = (TK_oclIsInState); >+ >+ keywordKind[48] = (OCLBacktrackingParsersym.TK_oclIsInState); > > > // > // Rule 49: KeyWord ::= a l l I n s t a n c e s > // >- keywordKind[49] = (TK_allInstances); >+ >+ keywordKind[49] = (OCLBacktrackingParsersym.TK_allInstances); > > > // > // Rule 50: KeyWord ::= S t r i n g > // >- keywordKind[50] = (TK_String); >+ >+ keywordKind[50] = (OCLBacktrackingParsersym.TK_String); > > > // > // Rule 51: KeyWord ::= I n t e g e r > // >- keywordKind[51] = (TK_Integer); >+ >+ keywordKind[51] = (OCLBacktrackingParsersym.TK_Integer); > > > // > // Rule 52: KeyWord ::= U n l i m i t e d N a t u r a l > // >- keywordKind[52] = (TK_UnlimitedNatural); >+ >+ keywordKind[52] = (OCLBacktrackingParsersym.TK_UnlimitedNatural); > > > // > // Rule 53: KeyWord ::= R e a l > // >- keywordKind[53] = (TK_Real); >+ >+ keywordKind[53] = (OCLBacktrackingParsersym.TK_Real); > > > // > // Rule 54: KeyWord ::= B o o l e a n > // >- keywordKind[54] = (TK_Boolean); >+ >+ keywordKind[54] = (OCLBacktrackingParsersym.TK_Boolean); > > > // > // Rule 55: KeyWord ::= T u p l e > // >- keywordKind[55] = (TK_Tuple); >+ >+ keywordKind[55] = (OCLBacktrackingParsersym.TK_Tuple); > > > // > // Rule 56: KeyWord ::= O c l A n y > // >- keywordKind[56] = (TK_OclAny); >+ >+ keywordKind[56] = (OCLBacktrackingParsersym.TK_OclAny); > > > // > // Rule 57: KeyWord ::= O c l V o i d > // >- keywordKind[57] = (TK_OclVoid); >+ >+ keywordKind[57] = (OCLBacktrackingParsersym.TK_OclVoid); > > > // > // Rule 58: KeyWord ::= I n v a l i d > // >- keywordKind[58] = (TK_Invalid); >+ >+ keywordKind[58] = (OCLBacktrackingParsersym.TK_Invalid); > > > // > // Rule 59: KeyWord ::= O c l M e s s a g e > // >- keywordKind[59] = (TK_OclMessage); >+ >+ keywordKind[59] = (OCLBacktrackingParsersym.TK_OclMessage); > > > // > // Rule 60: KeyWord ::= n u l l > // >- keywordKind[60] = (TK_null); >+ >+ keywordKind[60] = (OCLBacktrackingParsersym.TK_null); > > > // > // Rule 61: KeyWord ::= O c l I n v a l i d > // >- keywordKind[61] = (TK_OclInvalid); >+ >+ keywordKind[61] = (OCLBacktrackingParsersym.TK_OclInvalid); > > > // > // Rule 62: KeyWord ::= a t t r > // >- keywordKind[62] = (TK_attr); >+ >+ keywordKind[62] = (OCLBacktrackingParsersym.TK_attr); > > > // > // Rule 63: KeyWord ::= o p e r > // >- keywordKind[63] = (TK_oper); >+ >+ keywordKind[63] = (OCLBacktrackingParsersym.TK_oper); > > >- > for (int i = 0; i < keywordKind.length; i++) > { > if (keywordKind[i] == 0) >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParsersym.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParsersym.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingParsersym.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParsersym.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParsersym.java 1 Sep 2009 17:10:51 -0000 >@@ -1,7 +1,8 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+* Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -14,23 +15,15 @@ > * E.D.Willink - Bugs 225493, 243976, 259818 > * Zeligsoft - Bug 243976 > * Borland - Bug 242880 >+* Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingParsersym.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ > */ > > package org.eclipse.ocl.parser.backtracking; > >-/** >- * The backtracking variant of the OCL parser symbol table. >- * >- * @noimplement This interface is not intended to be implemented by clients. >- * @noextend This interface is not intended to be extended by clients. >- * >- * @since 1.3 >- */ >-@SuppressWarnings("nls") > public interface OCLBacktrackingParsersym { > public final static int > TK_NUMERIC_OPERATION = 61, >@@ -135,7 +128,7 @@ > TK_MULTI_LINE_COMMENT = 101, > TK_ERROR_TOKEN = 1; > >- public final static String orderedTerminalSymbols[] = { >+ public final static String orderedTerminalSymbols[] = { > "", > "ERROR_TOKEN", > "LPAREN", >@@ -240,5 +233,6 @@ > "MULTI_LINE_COMMENT" > }; > >+ public final static int numTokenKinds = orderedTerminalSymbols.length; > public final static boolean isValidForParser = true; > } >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingLexerprs.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,16 +10,112 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* - Bug 259818 > * Borland - Bug 242880 >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingLexerprs.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* $Id$ > */ > > package org.eclipse.ocl.parser.backtracking; > >-public class OCLBacktrackingLexerprs implements lpg.lpgjavaruntime.ParseTable, OCLBacktrackingLexersym { >+public class OCLBacktrackingLexerprs implements lpg.runtime.ParseTable, OCLBacktrackingLexersym { >+ public final static int ERROR_SYMBOL = 0; >+ public final int getErrorSymbol() { return ERROR_SYMBOL; } >+ >+ public final static int SCOPE_UBOUND = 0; >+ public final int getScopeUbound() { return SCOPE_UBOUND; } >+ >+ public final static int SCOPE_SIZE = 0; >+ public final int getScopeSize() { return SCOPE_SIZE; } >+ >+ public final static int MAX_NAME_LENGTH = 0; >+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >+ >+ public final static int NUM_STATES = 50; >+ public final int getNumStates() { return NUM_STATES; } >+ >+ public final static int NT_OFFSET = 103; >+ public final int getNtOffset() { return NT_OFFSET; } >+ >+ public final static int LA_STATE_OFFSET = 824; >+ public final int getLaStateOffset() { return LA_STATE_OFFSET; } >+ >+ public final static int MAX_LA = 1; >+ public final int getMaxLa() { return MAX_LA; } >+ >+ public final static int NUM_RULES = 309; >+ public final int getNumRules() { return NUM_RULES; } >+ >+ public final static int NUM_NONTERMINALS = 44; >+ public final int getNumNonterminals() { return NUM_NONTERMINALS; } >+ >+ public final static int NUM_SYMBOLS = 147; >+ public final int getNumSymbols() { return NUM_SYMBOLS; } >+ >+ public final static int SEGMENT_SIZE = 8192; >+ public final int getSegmentSize() { return SEGMENT_SIZE; } >+ >+ public final static int START_STATE = 310; >+ public final int getStartState() { return START_STATE; } >+ >+ public final static int IDENTIFIER_SYMBOL = 0; >+ public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; } >+ >+ public final static int EOFT_SYMBOL = 99; >+ public final int getEoftSymbol() { return EOFT_SYMBOL; } >+ >+ public final static int EOLT_SYMBOL = 104; >+ public final int getEoltSymbol() { return EOLT_SYMBOL; } >+ >+ public final static int ACCEPT_ACTION = 514; >+ public final int getAcceptAction() { return ACCEPT_ACTION; } >+ >+ public final static int ERROR_ACTION = 515; >+ public final int getErrorAction() { return ERROR_ACTION; } >+ >+ public final static boolean BACKTRACK = false; >+ public final boolean getBacktrack() { return BACKTRACK; } >+ >+ public final int getStartSymbol() { return lhs(0); } >+ public final boolean isValidForParser() { return OCLBacktrackingLexersym.isValidForParser; } >+ >+ >+ public interface IsNullable { >+ public final static byte isNullable[] = {0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,1,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,1,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0 >+ }; >+ }; >+ public final static byte isNullable[] = IsNullable.isNullable; >+ public final boolean isNullable(int index) { return isNullable[index] != 0; } >+ >+ public interface ProsthesesIndex { >+ public final static byte prosthesesIndex[] = {0, >+ 20,25,26,27,35,4,15,37,40,43, >+ 24,5,3,6,17,18,23,32,34,36, >+ 41,42,2,7,8,9,10,11,12,13, >+ 14,16,19,33,38,39,44,1,21,22, >+ 28,29,30,31 >+ }; >+ }; >+ public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex; >+ public final int prosthesesIndex(int index) { return prosthesesIndex[index]; } > > public interface IsKeyword { > public final static byte isKeyword[] = {0, >@@ -476,56 +572,21 @@ > public final int scopeState(int index) { return 0;} > public final int inSymb(int index) { return 0;} > public final String name(int index) { return null; } >- public final int getErrorSymbol() { return 0; } >- public final int getScopeUbound() { return 0; } >- public final int getScopeSize() { return 0; } >- public final int getMaxNameLength() { return 0; } >- >- public final static int >- NUM_STATES = 50, >- NT_OFFSET = 103, >- LA_STATE_OFFSET = 824, >- MAX_LA = 1, >- NUM_RULES = 309, >- NUM_NONTERMINALS = 44, >- NUM_SYMBOLS = 147, >- SEGMENT_SIZE = 8192, >- START_STATE = 310, >- IDENTIFIER_SYMBOL = 0, >- EOFT_SYMBOL = 99, >- EOLT_SYMBOL = 104, >- ACCEPT_ACTION = 514, >- ERROR_ACTION = 515; >- >- public final static boolean BACKTRACK = false; >- >- public final int getNumStates() { return NUM_STATES; } >- public final int getNtOffset() { return NT_OFFSET; } >- public final int getLaStateOffset() { return LA_STATE_OFFSET; } >- public final int getMaxLa() { return MAX_LA; } >- public final int getNumRules() { return NUM_RULES; } >- public final int getNumNonterminals() { return NUM_NONTERMINALS; } >- public final int getNumSymbols() { return NUM_SYMBOLS; } >- public final int getSegmentSize() { return SEGMENT_SIZE; } >- public final int getStartState() { return START_STATE; } >- public final int getStartSymbol() { return lhs[0]; } >- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } >- public final int getEoftSymbol() { return EOFT_SYMBOL; } >- public final int getEoltSymbol() { return EOLT_SYMBOL; } >- public final int getAcceptAction() { return ACCEPT_ACTION; } >- public final int getErrorAction() { return ERROR_ACTION; } >- public final boolean isValidForParser() { return isValidForParser; } >- public final boolean getBacktrack() { return BACKTRACK; } >- > public final int originalState(int state) { return 0; } > public final int asi(int state) { return 0; } > public final int nasi(int state) { return 0; } > public final int inSymbol(int state) { return 0; } > >+ /** >+ * assert(! goto_default); >+ */ > public final int ntAction(int state, int sym) { > return baseAction[state + sym]; > } > >+ /** >+ * assert(! shift_default); >+ */ > public final int tAction(int state, int sym) { > int i = baseAction[state], > k = i + sym; >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.java,v >retrieving revision 1.3 >diff -u -r1.3 OCLBacktrackingParser.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.java 28 Aug 2009 20:43:11 -0000 1.3 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.java 1 Sep 2009 17:10:50 -0000 >@@ -1,7 +1,8 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+* Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -14,10 +15,11 @@ > * E.D.Willink - Bugs 225493, 243976, 259818 > * Zeligsoft - Bug 243976 > * Borland - Bug 242880 >+* Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingParser.java,v 1.3 2009/08/28 20:43:11 ewillink Exp $ >+* $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ > */ > > package org.eclipse.ocl.parser.backtracking; >@@ -43,16 +45,24 @@ > import org.eclipse.ocl.cst.VariableCS; > import org.eclipse.ocl.util.OCLStandardLibraryUtil; > import org.eclipse.ocl.utilities.PredefinedType; >+import org.eclipse.ocl.lpg.OCLParserStream; > >-import lpg.lpgjavaruntime.BadParseException; >-import lpg.lpgjavaruntime.BadParseSymFileException; >-import lpg.lpgjavaruntime.BacktrackingParser; >-import lpg.lpgjavaruntime.DiagnoseParser; >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.Monitor; >-import lpg.lpgjavaruntime.NotBacktrackParseTableException; >-import lpg.lpgjavaruntime.ParseTable; >-import lpg.lpgjavaruntime.RuleAction; >+import lpg.runtime.BadParseException; >+import lpg.runtime.BadParseSymFileException; >+import lpg.runtime.BacktrackingParser; >+import lpg.runtime.DiagnoseParser; >+import lpg.runtime.ErrorToken; >+import lpg.runtime.IToken; >+import lpg.runtime.ILexStream; >+import lpg.runtime.Monitor; >+import lpg.runtime.NotBacktrackParseTableException; >+import lpg.runtime.NullExportedSymbolsException; >+import lpg.runtime.NullTerminalSymbolsException; >+import lpg.runtime.ParseTable; >+import lpg.runtime.PrsStream; >+import lpg.runtime.RuleAction; >+import lpg.runtime.UndefinedEofSymbolException; >+import lpg.runtime.UnimplementedTerminalsException; > > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.cst.DefExpressionCS; >@@ -66,96 +76,206 @@ > > public class OCLBacktrackingParser extends AbstractOCLParser implements RuleAction > { >- protected static ParseTable prs = new OCLBacktrackingParserprs(); >- private BacktrackingParser dtParser; >- >- public OCLBacktrackingParser(OCLBacktrackingLexer lexer) { >- super(lexer); >- } >- >- public int getEOFTokenKind() { return OCLBacktrackingParserprs.EOFT_SYMBOL; } >+ private OCLParserStream prsStream = null; >+ >+ private boolean unimplementedSymbolsWarning = false; > >- public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { >- return getLexer().getOCLEnvironment(); >- } >+ private static ParseTable prsTable = new OCLBacktrackingParserprs(); >+ public ParseTable getParseTable() { return prsTable; } > >- @Override >- public OCLBacktrackingLexer getLexer() { >- return (OCLBacktrackingLexer)super.getLexer(); >- } >+ private BacktrackingParser dtParser = null; >+ public BacktrackingParser getParser() { return dtParser; } >+ >+ private void setResult(Object object) { dtParser.setSym1(object); } >+ public Object getRhsSym(int i) { return dtParser.getSym(i); } > >- public String getTokenKindName(int kind) { return OCLBacktrackingParsersym.orderedTerminalSymbols[kind]; } >+ public int getRhsTokenIndex(int i) { return dtParser.getToken(i); } >+ public IToken getRhsIToken(int i) { return prsStream.getIToken(getRhsTokenIndex(i)); } >+ >+ public int getRhsFirstTokenIndex(int i) { return dtParser.getFirstToken(i); } >+ public IToken getRhsFirstIToken(int i) { return prsStream.getIToken(getRhsFirstTokenIndex(i)); } >+ >+ public int getRhsLastTokenIndex(int i) { return dtParser.getLastToken(i); } >+ public IToken getRhsLastIToken(int i) { return prsStream.getIToken(getRhsLastTokenIndex(i)); } >+ >+ public int getLeftSpan() { return dtParser.getFirstToken(); } >+ public IToken getLeftIToken() { return prsStream.getIToken(getLeftSpan()); } >+ >+ public int getRightSpan() { return dtParser.getLastToken(); } >+ public IToken getRightIToken() { return prsStream.getIToken(getRightSpan()); } >+ >+ public int getRhsErrorTokenIndex(int i) >+ { >+ int index = dtParser.getToken(i); >+ IToken err = prsStream.getIToken(index); >+ return (err instanceof ErrorToken ? index : 0); >+ } >+ public ErrorToken getRhsErrorIToken(int i) >+ { >+ int index = dtParser.getToken(i); >+ IToken err = prsStream.getIToken(index); >+ return (ErrorToken) (err instanceof ErrorToken ? err : null); >+ } >+ >+ public void reset(ILexStream lexStream) >+ { >+ prsStream = new OCLParserStream(getEnvironment(), lexStream); >+ dtParser.reset(prsStream); >+ >+ try >+ { >+ prsStream.remapTerminalSymbols(orderedTerminalSymbols(), prsTable.getEoftSymbol()); >+ } >+ catch(NullExportedSymbolsException e) { >+ } >+ catch(NullTerminalSymbolsException e) { >+ } >+ catch(UnimplementedTerminalsException e) >+ { >+ if (unimplementedSymbolsWarning) { >+ java.util.ArrayList<?> unimplemented_symbols = e.getSymbols(); >+ System.out.println("The Lexer will not scan the following token(s):"); >+ for (int i = 0; i < unimplemented_symbols.size(); i++) >+ { >+ Integer id = (Integer) unimplemented_symbols.get(i); >+ System.out.println(" " + OCLBacktrackingParsersym.orderedTerminalSymbols[id.intValue()]); >+ } >+ System.out.println(); >+ } >+ } >+ catch(UndefinedEofSymbolException e) >+ { >+ throw new Error(new UndefinedEofSymbolException >+ ("The Lexer does not implement the Eof symbol " + >+ OCLBacktrackingParsersym.orderedTerminalSymbols[prsTable.getEoftSymbol()])); >+ } >+ } >+ >+ public OCLBacktrackingParser(OCLBacktrackingLexer lexer) >+ { >+ super(lexer); >+ try >+ { >+ dtParser = new BacktrackingParser(prsStream, prsTable, this); >+ } >+ catch (NotBacktrackParseTableException e) >+ { >+ throw new RuntimeException("****Error: Regenerate OCLBacktrackingParserprs.java with -BACKTRACK option"); >+ } >+ catch (BadParseSymFileException e) >+ { >+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- OCLBacktrackingParsersym.java. Regenerate OCLBacktrackingParserprs.java")); >+ } >+ >+ reset(lexer.getILexStream()); >+ } >+ >+ public int numTokenKinds() { return OCLBacktrackingParsersym.numTokenKinds; } >+ public String[] orderedTerminalSymbols() { return OCLBacktrackingParsersym.orderedTerminalSymbols; } >+ public String getTokenKindName(int kind) { return OCLBacktrackingParsersym.orderedTerminalSymbols[kind]; } >+ public int getEOFTokenKind() { return prsTable.getEoftSymbol(); } >+ public OCLParserStream getIPrsStream() { return prsStream; } > >- @Override >- public String[] orderedTerminalSymbols() { return OCLBacktrackingParsersym.orderedTerminalSymbols; } >- >- @SuppressWarnings("nls") >- @Override >- public CSTNode parseTokensToCST(Monitor monitor, int error_repair_count) { >- ParseTable prsTable = new OCLBacktrackingParserprs(); >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * >+ */ >+ public PrsStream getPrsStream() { return prsStream; } > >- try { >- dtParser = new BacktrackingParser(monitor, this, prsTable, this); >- } >- catch (NotBacktrackParseTableException e) { >- throw new RuntimeException("****Error: Regenerate OCLBacktrackingParserprs.java with -BACKTRACK option"); >- } >- catch (BadParseSymFileException e) { >- throw new RuntimeException("****Error: Bad Parser Symbol File -- OCLBacktrackingParsersym.java. Regenerate OCLBacktrackingParserprs.java"); >- } >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * >+ */ >+ public PrsStream getParseStream() { return prsStream; } > >- try { >- return (CSTNode) dtParser.parse(error_repair_count); >- } >- catch (BadParseException e) { >- reset(e.error_token); // point to error token >+ public CSTNode parser() >+ { >+ return parser(null, getDefaultRepairCount()); >+ } >+ >+ public CSTNode parser(Monitor monitor) >+ { >+ return parser(monitor, getDefaultRepairCount()); >+ } >+ >+ public CSTNode parser(int error_repair_count) >+ { >+ return parser(null, error_repair_count); >+ } >+ >+ public CSTNode parser(Monitor monitor, int error_repair_count) >+ { >+ dtParser.setMonitor(monitor); >+ >+ try >+ { >+ return (CSTNode) dtParser.parse(); >+ } >+ catch (BadParseException e) >+ { >+ prsStream.reset(e.error_token); // point to error token >+ >+ DiagnoseParser diagnoseParser = new DiagnoseParser(prsStream, prsTable); >+ diagnoseParser.diagnose(e.error_token); >+ } >+ >+ return null; >+ } >+ >+ // >+ // Additional entry points, if any >+ // >+ > >- DiagnoseParser diagnoseParser = new DiagnoseParser(this, prsTable); >- diagnoseParser.diagnose(e.error_token); >- } >+ // OCL Additions > >- return null; >+ public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { >+ return getLexer().getOCLEnvironment(); > } >- >- /** >- * 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.setStartToken(firstToken); >- cstNode.setEndToken(firstToken); >- cstNode.setStartOffset(firstToken.getStartOffset()); >- cstNode.setEndOffset(firstToken.getEndOffset()-1); >+ >+ @Override >+ public OCLBacktrackingLexer getLexer() { >+ return (OCLBacktrackingLexer) super.getLexer(); > } > > >+// Some methods to keep compatibility backwards >+/** >+* @since 3.0 >+*/ >+protected IToken getIToken(int i) { >+ return prsStream.getIToken(i); >+} >+ >+protected String getTokenText(int i) { >+ return prsStream.getTokenText(i); >+} >+ > > @SuppressWarnings("unchecked") >- public void ruleAction(int ruleNumber) >- { >- switch (ruleNumber) { >- >+ public void ruleAction(int ruleNumber) >+ { >+ switch (ruleNumber) >+ { > > // > // Rule 46: binaryName ::= binaryIdentifier > // >+ > case 46: > > // > // Rule 47: keywordAsName ::= keywordAsIdentifier > // >+ > case 47: > > // > // Rule 48: keywordAsName1 ::= keywordAsIdentifier1 > // >+ > case 48: >- >+ > // > // Rule 49: unaryName ::= unaryIdentifier > // >@@ -163,23 +283,28 @@ > > SimpleNameCS result = createSimpleNameCS( > SimpleTypeEnum.IDENTIFIER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 50: iterateName ::= iterate > // >+ > case 50: > > // > // Rule 51: iteratorName ::= iteratorIdentifier > // >+ > case 51: >- >+ > // > // Rule 52: oclIsInStateName ::= oclIsInState > // >@@ -187,123 +312,158 @@ > > SimpleNameCS result = createSimpleNameCS( > SimpleTypeEnum.KEYWORD_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 55: operationCS1 ::= IDENTIFIER ( parametersCSopt ) : typeCSopt > // > case 55: { > > CSTNode result = createOperationCS( >- getTokenText(dtParser.getToken(1)), >- (EList)dtParser.getSym(3), >- (TypeCS)dtParser.getSym(6) >- ); >- if (dtParser.getSym(6) != null) { >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(6)); >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) != null) { >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6)); > } else { >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 56: operationCS2 ::= pathNameCS :: simpleNameCS ( parametersCSopt ) : typeCSopt > // > case 56: { > > CSTNode result = createOperationCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5), >- (TypeCS)dtParser.getSym(8) >- ); >- if (dtParser.getSym(8) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(8)); >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(7))); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); > } >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 57: parametersCSopt ::= $Empty > // >+ > case 57: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 59: parametersCS ::= variableCS > // > case 59: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 60: parametersCS ::= parametersCS , variableCS > // > case 60: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 61: simpleNameCSopt ::= $Empty > // > case 61: >- dtParser.setSym1(null); >- break; >+ setResult(null); >+ break; > > // > // Rule 67: impliesExpCS ::= impliesExpCS implies andOrXorExpCS > // >+ > case 67: > > // > // Rule 68: impliesWithLet ::= impliesExpCS implies andOrXorWithLet > // >+ > case 68: > > // > // Rule 71: andOrXorExpCS ::= andOrXorExpCS and equalityExpCS > // >+ > case 71: > > // > // Rule 72: andOrXorExpCS ::= andOrXorExpCS or equalityExpCS > // >+ > case 72: > > // > // Rule 73: andOrXorExpCS ::= andOrXorExpCS xor equalityExpCS > // >+ > case 73: > > // > // Rule 74: andOrXorWithLet ::= andOrXorExpCS and equalityWithLet > // >+ > case 74: > > // > // Rule 75: andOrXorWithLet ::= andOrXorExpCS or equalityWithLet > // >+ > case 75: >- >+ > // > // Rule 76: andOrXorWithLet ::= andOrXorExpCS xor equalityWithLet > // >@@ -311,26 +471,34 @@ > > SimpleNameCS simpleNameCS = createSimpleNameCS( > SimpleTypeEnum.STRING_LITERAL, >- getTokenText(dtParser.getToken(2)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 79: equalityExpCS ::= equalityExpCS = relationalExpCS > // >+ > case 79: >- >+ > // > // Rule 80: equalityWithLet ::= equalityExpCS = relationalWithLet > // >@@ -340,24 +508,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 81: equalityExpCS ::= equalityExpCS <> relationalExpCS > // >+ > case 81: >- >+ > // > // Rule 82: equalityWithLet ::= equalityExpCS <> relationalWithLet > // >@@ -367,24 +542,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.NOT_EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 85: relationalExpCS ::= relationalExpCS > ifExpCSPrec > // >+ > case 85: >- >+ > // > // Rule 86: relationalWithLet ::= relationalExpCS > additiveWithLet > // >@@ -394,24 +576,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.GREATER_THAN) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 87: relationalExpCS ::= relationalExpCS < ifExpCSPrec > // >+ > case 87: >- >+ > // > // Rule 88: relationalWithLet ::= relationalExpCS < additiveWithLet > // >@@ -421,24 +610,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.LESS_THAN) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 89: relationalExpCS ::= relationalExpCS >= ifExpCSPrec > // >+ > case 89: >- >+ > // > // Rule 90: relationalWithLet ::= relationalExpCS >= additiveWithLet > // >@@ -448,24 +644,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.GREATER_THAN_EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 91: relationalExpCS ::= relationalExpCS <= ifExpCSPrec > // >+ > case 91: >- >+ > // > // Rule 92: relationalWithLet ::= relationalExpCS <= additiveWithLet > // >@@ -475,24 +678,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.LESS_THAN_EQUAL) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 97: additiveExpCS ::= additiveExpCS + multiplicativeExpCS > // >+ > case 97: >- >+ > // > // Rule 98: additiveWithLet ::= additiveExpCS + multiplicativeWithLet > // >@@ -502,24 +712,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.PLUS) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 99: additiveExpCS ::= additiveExpCS - multiplicativeExpCS > // >+ > case 99: >- >+ > // > // Rule 100: additiveWithLet ::= additiveExpCS - multiplicativeWithLet > // >@@ -529,24 +746,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.MINUS) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 103: multiplicativeExpCS ::= multiplicativeExpCS * unaryExpCS > // >+ > case 103: >- >+ > // > // Rule 104: multiplicativeWithLet ::= multiplicativeExpCS * unaryWithLet > // >@@ -556,24 +780,31 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.TIMES) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 105: multiplicativeExpCS ::= multiplicativeExpCS / unaryExpCS > // >+ > case 105: >- >+ > // > // Rule 106: multiplicativeWithLet ::= multiplicativeExpCS / unaryWithLet > // >@@ -583,19 +814,25 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.DIVIDE) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(2))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > EList args = new BasicEList(); >- args.add(dtParser.getSym(3)); >+ args.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > simpleNameCS, > args > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 109: unaryExpCS ::= - unaryExpCS > // >@@ -605,17 +842,22 @@ > SimpleTypeEnum.STRING_LITERAL, > OCLStandardLibraryUtil.getOperationName(PredefinedType.MINUS) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(1))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > simpleNameCS, > new BasicEList() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 110: unaryExpCS ::= not unaryExpCS > // >@@ -623,43 +865,58 @@ > > SimpleNameCS simpleNameCS = createSimpleNameCS( > SimpleTypeEnum.STRING_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(simpleNameCS, getIToken(dtParser.getToken(1))); >+ setOffsets(simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); > CSTNode result = createOperationCallExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > simpleNameCS, > new BasicEList() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 112: dotArrowExpCS ::= dotArrowExpCS callExpCS > // > case 112: { > >- CallExpCS result = (CallExpCS)dtParser.getSym(2); >- result.setSource((OCLExpressionCS)dtParser.getSym(1)); >- setOffsets(result, (CSTNode)dtParser.getSym(1), result); >- dtParser.setSym1(result); >- break; >- } >- >+ CallExpCS result = (CallExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ result.setSource((OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), result); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 113: dotArrowExpCS ::= dotArrowExpCS messageExpCS > // > case 113: { > >- MessageExpCS result = (MessageExpCS)dtParser.getSym(2); >- result.setTarget((OCLExpressionCS)dtParser.getSym(1)); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ MessageExpCS result = (MessageExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ result.setTarget((OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 114: dotArrowExpCS ::= NUMERIC_OPERATION ( argumentsCSopt ) > // >@@ -672,7 +929,8 @@ > String simpleName = text.substring(index + 1); > > // create the IntegerLiteralExpCS >- IToken numericToken = getIToken(dtParser.getToken(1)); >+ IToken numericToken = getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)); > int startOffset = numericToken.getStartOffset(); > int endOffset = startOffset + integer.length() - 1; // inclusive > >@@ -683,7 +941,8 @@ > integerLiteralExpCS.setEndToken(numericToken); > > startOffset = endOffset + 2; // end of integerLiteral + 1('.') + 1(start of simpleName) >- endOffset = getIToken(dtParser.getToken(1)).getEndOffset(); >+ endOffset = getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)).getEndOffset(); > > // create the SimpleNameCS > SimpleNameCS simpleNameCS = createSimpleNameCS( >@@ -699,90 +958,120 @@ > CSTNode result = createOperationCallExpCS( > integerLiteralExpCS, > simpleNameCS, >- (EList)dtParser.getSym(3) >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 115: dotArrowExpCS ::= pathNameCS :: simpleNameCS ( argumentsCSopt ) > // > case 115: { > > OperationCallExpCS result = createOperationCallExpCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(6))); >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); > result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 120: oclExpCS ::= ( oclExpressionCS ) > // > case 120: { > >- CSTNode result = (CSTNode)dtParser.getSym(2); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >+ CSTNode result = (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 121: variableExpCS ::= simpleNameCS isMarkedPreCS > // >+ > case 121: >- >+ > // > // Rule 122: variableExpCS ::= keywordAsName1 isMarkedPreCS > // > case 122: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(2); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > CSTNode result = createVariableExpCS( >- (SimpleNameCS)dtParser.getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > new BasicEList(), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(2)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); > } >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 123: variableExpCS ::= simpleNameCS [ argumentsCS ] isMarkedPreCS > // >+ > case 123: >- >+ > // > // Rule 124: variableExpCS ::= keywordAsName1 [ argumentsCS ] isMarkedPreCS > // > case 124: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(5); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5); > CSTNode result = createVariableExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (EList)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(5)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(4))); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 126: simpleNameCS ::= self > // >@@ -790,13 +1079,16 @@ > > CSTNode result = createSimpleNameCS( > SimpleTypeEnum.SELF_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 127: simpleNameCS ::= IDENTIFIER > // >@@ -804,13 +1096,16 @@ > > CSTNode result = createSimpleNameCS( > SimpleTypeEnum.IDENTIFIER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 128: primitiveTypeCS ::= Integer > // >@@ -818,13 +1113,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.INTEGER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 129: primitiveTypeCS ::= UnlimitedNatural > // >@@ -832,13 +1130,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.UNLIMITED_NATURAL_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 130: primitiveTypeCS ::= String > // >@@ -846,13 +1147,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.STRING_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 131: primitiveTypeCS ::= Real > // >@@ -860,13 +1164,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.REAL_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 132: primitiveTypeCS ::= Boolean > // >@@ -874,13 +1181,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.BOOLEAN_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 133: primitiveTypeCS ::= OclAny > // >@@ -888,13 +1198,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.OCL_ANY_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 134: primitiveTypeCS ::= OclVoid > // >@@ -902,13 +1215,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.OCL_VOID_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 135: primitiveTypeCS ::= Invalid > // >@@ -916,13 +1232,16 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.INVALID_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 136: primitiveTypeCS ::= OclMessage > // >@@ -930,812 +1249,1027 @@ > > CSTNode result = createPrimitiveTypeCS( > SimpleTypeEnum.OCL_MESSAGE_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 137: pathNameCS ::= IDENTIFIER > // > case 137: { > >- CSTNode result = createPathNameCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createPathNameCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 138: pathNameCS ::= pathNameCS :: simpleNameCS > // > case 138: { > >- PathNameCS result = (PathNameCS)dtParser.getSym(1); >+ PathNameCS result = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > result = extendPathNameCS(result, getTokenText(dtParser.getToken(3))); >- setOffsets(result, result, (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 139: pathNameCSOpt ::= $Empty > // > case 139: { > > CSTNode result = createPathNameCS(); >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 147: enumLiteralExpCS ::= pathNameCS :: keywordAsName > // >+ > case 147: >- >+ > // > // Rule 148: enumLiteralExpCS ::= pathNameCS :: simpleNameCS > // > case 148: { > > CSTNode result = createEnumLiteralExpCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 149: collectionLiteralExpCS ::= collectionTypeIdentifierCS { collectionLiteralPartsCSopt } > // > case 149: { > >- Object[] objs = (Object[])dtParser.getSym(1); >+ Object[] objs = (Object[]) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createCollectionLiteralExpCS( > (CollectionTypeIdentifierEnum)objs[1], >- (EList)dtParser.getSym(3) >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, (IToken)objs[0], getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (IToken)objs[0], getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 150: collectionTypeIdentifierCS ::= Set > // > case 150: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.SET_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.SET_LITERAL}); >+ break; >+ } >+ > // > // Rule 151: collectionTypeIdentifierCS ::= Bag > // > case 151: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.BAG_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.BAG_LITERAL}); >+ break; >+ } >+ > // > // Rule 152: collectionTypeIdentifierCS ::= Sequence > // > case 152: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.SEQUENCE_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.SEQUENCE_LITERAL}); >+ break; >+ } >+ > // > // Rule 153: collectionTypeIdentifierCS ::= Collection > // > case 153: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.COLLECTION_LITERAL}); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.COLLECTION_LITERAL}); >+ break; >+ } >+ > // > // Rule 154: collectionTypeIdentifierCS ::= OrderedSet > // > case 154: { > >- dtParser.setSym1(new Object[]{getIToken(dtParser.getToken(1)), CollectionTypeIdentifierEnum.ORDERED_SET_LITERAL}); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(new Object[]{getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), CollectionTypeIdentifierEnum.ORDERED_SET_LITERAL}); >+ break; >+ } > > // > // Rule 155: collectionLiteralPartsCSopt ::= $Empty > // >+ > case 155: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 157: collectionLiteralPartsCS ::= collectionLiteralPartCS > // > case 157: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 158: collectionLiteralPartsCS ::= collectionLiteralPartsCS , collectionLiteralPartCS > // > case 158: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 160: collectionLiteralPartCS ::= oclExpressionCS > // > case 160: { > > CSTNode result = createCollectionLiteralPartCS( >- (OCLExpressionCS)dtParser.getSym(1) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 161: collectionRangeCS ::= - INTEGER_RANGE_START oclExpressionCS > // > case 161: { > > OCLExpressionCS rangeStart = createRangeStart( >- getTokenText(dtParser.getToken(2)), true); >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), true); > CSTNode result = createCollectionRangeCS( > rangeStart, >- (OCLExpressionCS)dtParser.getSym(3) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, rangeStart, (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, rangeStart, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 162: collectionRangeCS ::= INTEGER_RANGE_START oclExpressionCS > // > case 162: { > > OCLExpressionCS rangeStart = createRangeStart( >- getTokenText(dtParser.getToken(1)), false); >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), false); > CSTNode result = createCollectionRangeCS( > rangeStart, >- (OCLExpressionCS)dtParser.getSym(2) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2) > ); >- setOffsets(result, rangeStart, (CSTNode)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, rangeStart, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 163: collectionRangeCS ::= oclExpressionCS .. oclExpressionCS > // > case 163: { > > CSTNode result = createCollectionRangeCS( >- (OCLExpressionCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(3) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 169: tupleLiteralExpCS ::= Tuple { variableListCS2 } > // > case 169: { > >- CSTNode result = createTupleLiteralExpCS((EList)dtParser.getSym(3)); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createTupleLiteralExpCS((EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 170: integerLiteralExpCS ::= INTEGER_LITERAL > // > case 170: { > >- CSTNode result = createIntegerLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createIntegerLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 171: unlimitedNaturalLiteralExpCS ::= * > // > case 171: { > >- CSTNode result = createUnlimitedNaturalLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createUnlimitedNaturalLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 172: realLiteralExpCS ::= REAL_LITERAL > // > case 172: { > >- CSTNode result = createRealLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createRealLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 173: stringLiteralExpCS ::= STRING_LITERAL > // > case 173: { > >- IToken literalToken = getIToken(dtParser.getToken(1)); >+ IToken literalToken = getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)); > StringLiteralExpCS result = createStringLiteralExpCS(literalToken.toString()); > result.setUnescapedStringSymbol(unescape(literalToken)); > setOffsets(result, literalToken); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 174: booleanLiteralExpCS ::= true > // > case 174: { > >- CSTNode result = createBooleanLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createBooleanLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 175: booleanLiteralExpCS ::= false > // > case 175: { > >- CSTNode result = createBooleanLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createBooleanLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 176: nullLiteralExpCS ::= null > // > case 176: { > >- CSTNode result = createNullLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ CSTNode result = createNullLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 177: invalidLiteralExpCS ::= OclInvalid > // > case 177: { > >- CSTNode result = createInvalidLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >+ CSTNode result = createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 178: callExpCS ::= -> featureCallExpCS > // >+ > case 178: >- >+ > // > // Rule 179: callExpCS ::= -> loopExpCS > // > case 179: { > >- CallExpCS result = (CallExpCS)dtParser.getSym(2); >+ CallExpCS result = (CallExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > result.setAccessor(DotOrArrowEnum.ARROW_LITERAL); >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 180: callExpCS ::= . keywordOperationCallExpCS > // >+ > case 180: >- >+ > // > // Rule 181: callExpCS ::= . featureCallExpCS > // > case 181: { > >- CallExpCS result = (CallExpCS)dtParser.getSym(2); >+ CallExpCS result = (CallExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 184: iteratorExpCS ::= iteratorName ( oclExpressionCS ) > // > case 184: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIteratorExpCS( > simpleNameCS, > null, > null, >- (OCLExpressionCS)dtParser.getSym(3) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 185: iteratorExpCS ::= iteratorName ( variableCS | oclExpressionCS ) > // > case 185: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIteratorExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null, >- (OCLExpressionCS)dtParser.getSym(5) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) > ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(6))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 186: iteratorExpCS ::= iteratorName ( variableCS , variableCS | oclExpressionCS ) > // > case 186: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIteratorExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >- (VariableCS)dtParser.getSym(5), >- (OCLExpressionCS)dtParser.getSym(7) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(8))); >- dtParser.setSym1(result); >- break; >- } >- >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(8))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 187: iterateExpCS ::= iterateName ( variableCS | oclExpressionCS ) > // > case 187: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIterateExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null, >- (OCLExpressionCS)dtParser.getSym(5) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) > ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(6))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 188: iterateExpCS ::= iterateName ( variableCS ; variableCS | oclExpressionCS ) > // > case 188: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createIterateExpCS( > simpleNameCS, >- (VariableCS)dtParser.getSym(3), >- (VariableCS)dtParser.getSym(5), >- (OCLExpressionCS)dtParser.getSym(7) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(8))); >- dtParser.setSym1(result); >- break; >- } >- >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(8))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 189: variableCS ::= IDENTIFIER > // > case 189: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > null, > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 190: typedVariableCS ::= IDENTIFIER : typeCS > // > case 190: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >- (TypeCS)dtParser.getSym(3), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 192: variableCS ::= IDENTIFIER : typeCS = oclExpressionCS > // > case 192: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >- (TypeCS)dtParser.getSym(3), >- (OCLExpressionCS)dtParser.getSym(5) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(5)); >- dtParser.setSym1(result); >- break; >- } >- >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 193: variableCS2 ::= IDENTIFIER = oclExpressionCS > // > case 193: { > > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > null, >- (OCLExpressionCS)dtParser.getSym(3) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 194: typeCSopt ::= $Empty > // > case 194: >- dtParser.setSym1(null); >- break; >- >+ setResult(null); >+ break; >+ > // > // Rule 200: collectionTypeCS ::= collectionTypeIdentifierCS ( typeCS ) > // > case 200: { > >- Object[] objs = (Object[])dtParser.getSym(1); >+ Object[] objs = (Object[]) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createCollectionTypeCS( > (CollectionTypeIdentifierEnum)objs[1], >- (TypeCS)dtParser.getSym(3) >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, (IToken)objs[0], getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (IToken)objs[0], getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 201: tupleTypeCS ::= Tuple ( variableListCSopt ) > // > case 201: { > >- CSTNode result = createTupleTypeCS((EList)dtParser.getSym(3)); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >+ CSTNode result = createTupleTypeCS((EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 202: variableListCSopt ::= $Empty > // >+ > case 202: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 204: variableListCS ::= variableCS > // > case 204: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 205: variableListCS ::= variableListCS , variableCS > // > case 205: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 206: variableListCS2 ::= variableCS2 > // >+ > case 206: >- >+ > // > // Rule 207: variableListCS2 ::= variableCS > // > case 207: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 208: variableListCS2 ::= variableListCS2 , variableCS2 > // >+ > case 208: >- >+ > // > // Rule 209: variableListCS2 ::= variableListCS2 , variableCS > // > case 209: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 212: featureCallExpCS ::= unaryName isMarkedPreCS ( argumentsCSopt ) > // >+ > case 212: > > // > // Rule 213: operationCallExpCS ::= binaryName isMarkedPreCS ( argumentsCSopt ) > // >+ > case 213: >- >+ > // > // Rule 214: keywordOperationCallExpCS ::= keywordAsName isMarkedPreCS ( argumentsCSopt ) > // > case 214: { > > CSTNode result = createOperationCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (IsMarkedPreCS)dtParser.getSym(2), >- (EList)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 215: stateExpCS ::= pathNameCSOpt > // > case 215: { > >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > StateExpCS result = createStateExpCS(pathNameCS); > setOffsets(result, pathNameCS); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 216: operationCallExpCS ::= oclIsInStateName isMarkedPreCS ( stateExpCS ) > // > case 216: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCallExpCS( > simpleNameCS, >- (IsMarkedPreCS)dtParser.getSym(2), >- (StateExpCS)dtParser.getSym(4) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >+ (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (StateExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 217: attrOrNavCallExpCS ::= simpleNameCS isMarkedPreCS > // >+ > case 217: >- >+ > // > // Rule 218: attrOrNavCallExpCS ::= keywordAsName isMarkedPreCS > // > case 218: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(2); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > CSTNode result = createFeatureCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > new BasicEList(), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(2)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 219: attrOrNavCallExpCS ::= simpleNameCS [ argumentsCS ] isMarkedPreCS > // > case 219: { > >- IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)dtParser.getSym(5); >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5); > CSTNode result = createFeatureCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (EList)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > isMarkedPreCS > ); > if (isMarkedPreCS.isPre()) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(5)); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5)); > } else { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(4))); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 220: isMarkedPreCS ::= $Empty > // > case 220: { > > CSTNode result = createIsMarkedPreCS(false); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 221: isMarkedPreCS ::= @pre > // > case 221: { > > CSTNode result = createIsMarkedPreCS(true); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 222: argumentsCSopt ::= $Empty > // >+ > case 222: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 224: argumentsCS ::= oclExpressionCS > // > case 224: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 225: argumentsCS ::= argumentsCS , oclExpressionCS > // > case 225: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 226: letExpCS ::= let variableListCS in oclExpressionCS > // > case 226: { > > CSTNode result = createLetExpCS( >- (EList)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 227: ifExpCS ::= if oclExpressionCS then oclExpressionCS else oclExpressionCS endif > // > case 227: { > > CSTNode result = createIfExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4), >- (OCLExpressionCS)dtParser.getSym(6) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(7))); >- dtParser.setSym1(result); >- break; >- } >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 228: messageExpCS ::= ^ simpleNameCS ( oclMessageArgumentsCSopt ) > // >+ > case 228: >- >+ > // > // Rule 229: messageExpCS ::= ^^ simpleNameCS ( oclMessageArgumentsCSopt ) > // > case 229: { > > CSTNode result = createMessageExpCS( >- getIToken(dtParser.getToken(1)).getKind() == OCLBacktrackingParsersym.TK_CARET, >- (SimpleNameCS)dtParser.getSym(2), >- (EList<OCLMessageArgCS>)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >+ getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)).getKind() == OCLBacktrackingParsersym.TK_CARET, >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList<OCLMessageArgCS>) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 230: oclMessageArgumentsCSopt ::= $Empty > // >+ > case 230: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 232: oclMessageArgumentsCS ::= oclMessageArgCS > // > case 232: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 233: oclMessageArgumentsCS ::= oclMessageArgumentsCS , oclMessageArgCS > // > case 233: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 234: oclMessageArgCS ::= oclExpressionCS > // >@@ -1743,13 +2277,16 @@ > > CSTNode result = createOCLMessageArgCS( > null, >- (OCLExpressionCS)dtParser.getSym(1) >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 235: oclMessageArgCS ::= ? > // >@@ -1759,234 +2296,301 @@ > null, > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 236: oclMessageArgCS ::= ? : typeCS > // > case 236: { > > CSTNode result = createOCLMessageArgCS( >- (TypeCS)dtParser.getSym(3), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 245: packageDeclarationCSm ::= packageDeclarationCSm packageDeclarationCS > // > case 245: { > >- PackageDeclarationCS result = (PackageDeclarationCS)dtParser.getSym(2); >- result.setPackageDeclarationCS((PackageDeclarationCS) dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ PackageDeclarationCS result = (PackageDeclarationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ result.setPackageDeclarationCS((PackageDeclarationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 246: packageDeclarationCS ::= package pathNameCS contextDeclCSmopt endpackage > // > case 246: { > > CSTNode result = createPackageDeclarationCS( >- (PathNameCS)dtParser.getSym(2), >- (EList)dtParser.getSym(3) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 247: packageDeclarationCS1 ::= contextDeclCSm > // > case 247: { > >- EList contextDecls = (EList)dtParser.getSym(1); >+ EList contextDecls = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createPackageDeclarationCS(null, contextDecls); > if (!contextDecls.isEmpty()) { > setOffsets(result, (CSTNode)contextDecls.get(0), (CSTNode)contextDecls.get(contextDecls.size()-1)); > } >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 248: contextDeclCSmopt ::= $Empty > // >+ > case 248: >- dtParser.setSym1(new BasicEList()); >+ setResult(new BasicEList()); > break; >- >+ > // > // Rule 250: contextDeclCSm ::= contextDeclCS > // > case 250: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 251: contextDeclCSm ::= contextDeclCSm contextDeclCS > // > case 251: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 255: propertyContextCS ::= context pathNameCS :: simpleNameCS : typeCS initOrDerValueCS > // > case 255: { > > CSTNode result = createPropertyContextCS( >- (PathNameCS)dtParser.getSym(2), >- (SimpleNameCS)dtParser.getSym(4), >- (TypeCS)dtParser.getSym(6), >- (InitOrDerValueCS)dtParser.getSym(7) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(7)); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6), >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(7)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 256: initOrDerValueCS ::= initOrDerValueCSopt init : oclExpressionCS > // > case 256: { > > CSTNode result = createInitValueCS( >- (InitOrDerValueCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- if (dtParser.getSym(1) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(4)); >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } else { >- setOffsets(result, getIToken(dtParser.getToken(2)), (CSTNode)dtParser.getSym(4)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 257: initOrDerValueCS ::= initOrDerValueCSopt derive : oclExpressionCS > // > case 257: { > > CSTNode result = createDerValueCS( >- (InitOrDerValueCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- if (dtParser.getSym(1) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(4)); >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } else { >- setOffsets(result, getIToken(dtParser.getToken(2)), (CSTNode)dtParser.getSym(4)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 258: initOrDerValueCSopt ::= $Empty > // > case 258: >- dtParser.setSym1(null); >- break; >- >+ setResult(null); >+ break; >+ > // > // Rule 260: classifierContextDeclCS ::= context pathNameCS invOrDefCSm > // > case 260: { > >- EList<InvOrDefCS> list = (EList<InvOrDefCS>)dtParser.getSym(3); >+ EList<InvOrDefCS> list = (EList<InvOrDefCS>) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createClassifierContextDeclCS( >- (PathNameCS)dtParser.getSym(2), >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > list > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), list.get(list.size()-1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), list.get(list.size()-1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 261: invOrDefCSm ::= invOrDefCS > // > case 261: { > > EList<InvOrDefCS> result = new BasicEList<InvOrDefCS>(); >- result.add((InvOrDefCS)dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add((InvOrDefCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 262: invOrDefCSm ::= invOrDefCSm invOrDefCS > // > case 262: { > >- EList<InvOrDefCS> result = (EList<InvOrDefCS>)dtParser.getSym(1); >- result.add((InvOrDefCS)dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList<InvOrDefCS> result = (EList<InvOrDefCS>) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add((InvOrDefCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 263: invOrDefCS ::= inv simpleNameCSopt : oclExpressionCS > // > case 263: { > > CSTNode result = createInvCS( >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 264: invOrDefCS ::= def simpleNameCSopt : defExpressionCS > // > case 264: { > > CSTNode result = createDefCS( >- (SimpleNameCS)dtParser.getSym(2), >- (DefExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (DefExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 265: defExpressionCS ::= typedVariableCS = oclExpressionCS > // > case 265: { > >- VariableCS variableCS = (VariableCS)dtParser.getSym(1); >- OCLExpressionCS expressionCS = (OCLExpressionCS)dtParser.getSym(3); >+ VariableCS variableCS = (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ OCLExpressionCS expressionCS = (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createDefExpressionCS( > variableCS, > null, > expressionCS > ); > setOffsets(result, variableCS, expressionCS); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 266: defExpressionCS ::= operationCS1 = oclExpressionCS > // >@@ -1994,51 +2598,65 @@ > > CSTNode result = createDefExpressionCS( > null, >- (OperationCS)dtParser.getSym(1), >- (OCLExpressionCS)dtParser.getSym(3) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), (CSTNode)dtParser.getSym(3)); >- dtParser.setSym1(result); >- break; >- } >- >+ (OperationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 267: operationContextDeclCS ::= context operationCS2 prePostOrBodyDeclCSm > // > case 267: { > >- EList prePostOrBodyDecls = (EList)dtParser.getSym(3); >+ EList prePostOrBodyDecls = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createOperationContextDeclCS( >- (OperationCS)dtParser.getSym(2), >+ (OperationCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > prePostOrBodyDecls > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)prePostOrBodyDecls.get(prePostOrBodyDecls.size()-1)); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode)prePostOrBodyDecls.get(prePostOrBodyDecls.size()-1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 268: prePostOrBodyDeclCSm ::= prePostOrBodyDeclCS > // > case 268: { > > EList result = new BasicEList(); >- result.add(dtParser.getSym(1)); >- dtParser.setSym1(result); >- break; >- } >- >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 269: prePostOrBodyDeclCSm ::= prePostOrBodyDeclCSm prePostOrBodyDeclCS > // > case 269: { > >- EList result = (EList)dtParser.getSym(1); >- result.add(dtParser.getSym(2)); >- dtParser.setSym1(result); >- break; >- } >- >+ EList result = (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ result.add( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 270: prePostOrBodyDeclCS ::= pre simpleNameCSopt : oclExpressionCS > // >@@ -2046,14 +2664,19 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.PRE_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 271: prePostOrBodyDeclCS ::= post simpleNameCSopt : oclExpressionCS > // >@@ -2061,14 +2684,19 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.POST_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 272: prePostOrBodyDeclCS ::= body simpleNameCSopt : oclExpressionCS > // >@@ -2076,446 +2704,588 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.BODY_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), (CSTNode)dtParser.getSym(4)); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4)); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 273: ERROR_Colon ::= ERROR_TOKEN > // > case 273: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_COLON); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_COLON); >+ break; >+ } >+ > // > // Rule 274: ERROR_Empty ::= ERROR_TOKEN > // > case 274: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.EXTRA_TOKENS); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.EXTRA_TOKENS); >+ break; >+ } >+ > // > // Rule 275: ERROR_IsMarkedPreCS ::= ERROR_TOKEN > // > case 275: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_AT_PRE); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_AT_PRE); > IsMarkedPreCS result = createIsMarkedPreCS(false); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 276: ERROR_PathNameCS ::= ERROR_TOKEN > // > case 276: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_PATH_NAME); >- CSTNode result = createPathNameCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_PATH_NAME); >+ CSTNode result = createPathNameCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 277: ERROR_SimpleNameCS ::= ERROR_TOKEN > // > case 277: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_SIMPLE_NAME); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_SIMPLE_NAME); > SimpleNameCS result = createSimpleNameCS( > SimpleTypeEnum.IDENTIFIER_LITERAL, >- getTokenText(dtParser.getToken(1)) >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)) > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 278: attrOrNavCallExpCS ::= simpleNameCS [ argumentsCS ERROR_TOKEN > // > case 278: { > >- reportErrorTokenMessage(dtParser.getToken(4), OCLParserErrors.MISSING_RBRACK); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4), OCLParserErrors.MISSING_RBRACK); > CSTNode result = createFeatureCallExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (EList)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > createIsMarkedPreCS(false) > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 279: collectionTypeCS ::= collectionTypeIdentifierCS ( typeCS ERROR_TOKEN > // > case 279: { > >- reportErrorTokenMessage(dtParser.getToken(4), OCLParserErrors.MISSING_RPAREN); >- Object[] objs = (Object[])dtParser.getSym(1); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4), OCLParserErrors.MISSING_RPAREN); >+ Object[] objs = (Object[]) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createCollectionTypeCS( > (CollectionTypeIdentifierEnum)objs[1], >- (TypeCS)dtParser.getSym(3) >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) > ); >- setOffsets(result, (IToken)objs[0], getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (IToken)objs[0], getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 280: collectionTypeCS ::= collectionTypeIdentifierCS ERROR_TOKEN > // > case 280: { > >- reportErrorTokenMessage(dtParser.getToken(2), OCLParserErrors.MISSING_LPAREN); >- Object[] objs = (Object[])dtParser.getSym(1); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2), OCLParserErrors.MISSING_LPAREN); >+ Object[] objs = (Object[]) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createCollectionTypeCS( > (CollectionTypeIdentifierEnum)objs[1], > null > ); >- setOffsets(result, (IToken)objs[0], getIToken(dtParser.getToken(2))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, (IToken)objs[0], getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 281: dotArrowExpCS ::= pathNameCS :: ERROR_SimpleNameCS ( argumentsCSopt ) > // > case 281: { > > OperationCallExpCS result = createOperationCallExpCS( >- (PathNameCS)dtParser.getSym(1), >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5) >- ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(6))); >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5) >+ ); >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6))); > result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 282: enumLiteralExpCS ::= pathNameCS :: ERROR_SimpleNameCS > // > case 282: { > >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(3); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createEnumLiteralExpCS( > pathNameCS, > simpleNameCS > ); > setOffsets(result, pathNameCS, simpleNameCS); >- dtParser.setSym1(result); >- break; >- } >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 283: featureCallExpCS ::= unaryName ERROR_IsMarkedPreCS ( argumentsCSopt ) > // >+ > case 283: > > // > // Rule 284: keywordOperationCallExpCS ::= keywordAsName ERROR_IsMarkedPreCS ( argumentsCSopt ) > // >+ > case 284: >- >+ > // > // Rule 285: operationCallExpCS ::= binaryName ERROR_IsMarkedPreCS ( argumentsCSopt ) > // > case 285: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCallExpCS( > simpleNameCS, >- (IsMarkedPreCS)dtParser.getSym(2), >- (EList)dtParser.getSym(4) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 286: operationCallExpCS ::= oclIsInStateName ERROR_IsMarkedPreCS ( stateExpCS ) > // > case 286: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCallExpCS( > simpleNameCS, >- (IsMarkedPreCS)dtParser.getSym(2), >- (StateExpCS)dtParser.getSym(4) >- ); >- setOffsets(result, simpleNameCS, getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ (IsMarkedPreCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (StateExpCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 287: ifExpCS ::= if oclExpressionCS then oclExpressionCS else oclExpressionCS ERROR_TOKEN > // > case 287: { > >- reportErrorTokenMessage(dtParser.getToken(7), OCLParserErrors.MISSING_ENDIF); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7), OCLParserErrors.MISSING_ENDIF); > CSTNode result = createIfExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4), >- (OCLExpressionCS)dtParser.getSym(6) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(7))); >- dtParser.setSym1(result); >- break; >- } >- >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(6) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 288: ifExpCS ::= if oclExpressionCS then oclExpressionCS ERROR_TOKEN > // > case 288: { > >- reportErrorTokenMessage(dtParser.getToken(5), OCLParserErrors.MISSING_ELSE_ENDIF); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5), OCLParserErrors.MISSING_ELSE_ENDIF); > CSTNode result = createIfExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >- (OCLExpressionCS)dtParser.getSym(4), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(5))) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 289: ifExpCS ::= if oclExpressionCS ERROR_TOKEN > // > case 289: { > >- reportErrorTokenMessage(dtParser.getToken(3), OCLParserErrors.MISSING_THEN_ELSE_ENDIF); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3), OCLParserErrors.MISSING_THEN_ELSE_ENDIF); > CSTNode result = createIfExpCS( >- (OCLExpressionCS)dtParser.getSym(2), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(3))), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(3))) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ (OCLExpressionCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 290: ifExpCS ::= if ERROR_TOKEN endif > // > case 290: { > >- reportErrorTokenMessage(dtParser.getToken(3), OCLParserErrors.MISSING_THEN_ELSE); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3), OCLParserErrors.MISSING_THEN_ELSE); > CSTNode result = createIfExpCS( >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(2))), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(2))), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(2))) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 291: messageExpCS ::= ^ simpleNameCS ERROR_TOKEN > // >+ > case 291: >- >+ > // > // Rule 292: messageExpCS ::= ^^ simpleNameCS ERROR_TOKEN > // > case 292: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_MESSAGE_ARGUMENTS); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_MESSAGE_ARGUMENTS); > CSTNode result = createMessageExpCS( >- getIToken(dtParser.getToken(1)).getKind() == OCLBacktrackingParsersym.TK_CARET, >- (SimpleNameCS)dtParser.getSym(2), >+ getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)).getKind() == OCLBacktrackingParsersym.TK_CARET, >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > new BasicEList<OCLMessageArgCS>() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 293: messageExpCS ::= ^ ERROR_SimpleNameCS > // >+ > case 293: >- >+ > // > // Rule 294: messageExpCS ::= ^^ ERROR_SimpleNameCS > // > case 294: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(2); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); > CSTNode result = createMessageExpCS( >- getIToken(dtParser.getToken(1)).getKind() == OCLBacktrackingParsersym.TK_CARET, >+ getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)).getKind() == OCLBacktrackingParsersym.TK_CARET, > simpleNameCS, > new BasicEList<OCLMessageArgCS>() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), simpleNameCS); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), simpleNameCS); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 295: oclExpCS ::= ERROR_TOKEN > // > case 295: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_EXPR); >- CSTNode result = createInvalidLiteralExpCS(getTokenText(dtParser.getToken(1))); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_EXPR); >+ CSTNode result = createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 296: oclExpCS ::= ( oclExpressionCS ERROR_TOKEN > // > case 296: { > >- reportErrorTokenMessage(dtParser.getToken(3), OCLParserErrors.MISSING_RPAREN); >- CSTNode result = (CSTNode)dtParser.getSym(2); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3), OCLParserErrors.MISSING_RPAREN); >+ CSTNode result = (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 297: operationCS1 ::= IDENTIFIER ( parametersCSopt ) ERROR_Colon > // > case 297: { > > CSTNode result = createOperationCS( >- getTokenText(dtParser.getToken(1)), >- (EList)dtParser.getSym(3), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 298: operationCS1 ::= IDENTIFIER ( parametersCSopt ERROR_TOKEN > // > case 298: { > >- reportErrorTokenMessage(dtParser.getToken(4), OCLParserErrors.MISSING_RPAREN); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4), OCLParserErrors.MISSING_RPAREN); > CSTNode result = createOperationCS( >- getTokenText(dtParser.getToken(1)), >- (EList)dtParser.getSym(3), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 299: operationCS1 ::= IDENTIFIER ERROR_TOKEN > // > case 299: { > >- reportErrorTokenMessage(dtParser.getToken(2), OCLParserErrors.MISSING_LPAREN); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2), OCLParserErrors.MISSING_LPAREN); > CSTNode result = createOperationCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > new BasicEList(), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(2))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 300: operationCS1 ::= ERROR_TOKEN > // > case 300: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_IDENTIFIER); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_IDENTIFIER); > CSTNode result = createOperationCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > new BasicEList(), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 301: operationCS2 ::= pathNameCS :: simpleNameCS ( parametersCSopt ) ERROR_Colon > // > case 301: { > >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCS( > pathNameCS, >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5), >- (TypeCS)dtParser.getSym(8) >- ); >- setOffsets(result, pathNameCS, getIToken(dtParser.getToken(7))); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), >+ (TypeCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(8) >+ ); >+ setOffsets(result, pathNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 302: operationCS2 ::= pathNameCS :: simpleNameCS ( parametersCSopt ERROR_TOKEN > // > case 302: { > >- reportErrorTokenMessage(dtParser.getToken(6), OCLParserErrors.MISSING_RPAREN); >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(6), OCLParserErrors.MISSING_RPAREN); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCS( > pathNameCS, >- (SimpleNameCS)dtParser.getSym(3), >- (EList)dtParser.getSym(5), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(5), > null > ); >- setOffsets(result, pathNameCS, getIToken(dtParser.getToken(7))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, pathNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 303: operationCS2 ::= pathNameCS :: simpleNameCS ERROR_TOKEN > // > case 303: { > >- reportErrorTokenMessage(dtParser.getToken(4), OCLParserErrors.MISSING_LPAREN); >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4), OCLParserErrors.MISSING_LPAREN); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createOperationCS( > pathNameCS, >- (SimpleNameCS)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > new BasicEList(), > null > ); >- setOffsets(result, pathNameCS, getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, pathNameCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 304: operationCS2 ::= pathNameCS :: ERROR_SimpleNameCS > // > case 304: { > >- PathNameCS pathNameCS = (PathNameCS)dtParser.getSym(1); >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(3); >+ PathNameCS pathNameCS = (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3); > CSTNode result = createOperationCS( > pathNameCS, > simpleNameCS, >@@ -2523,255 +3293,330 @@ > null > ); > setOffsets(result, pathNameCS, simpleNameCS); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 305: parametersCS ::= ERROR_TOKEN > // > case 305: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_PARAMETERS); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_PARAMETERS); > EList result = new BasicEList(); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 306: parametersCS ::= parametersCS , ERROR_TOKEN > // > case 306: { > >- reportErrorTokenMessage(dtParser.getToken(3), OCLParserErrors.MISSING_PARAMETER); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3), OCLParserErrors.MISSING_PARAMETER); >+ break; >+ } >+ > // > // Rule 309: tupleLiteralExpCS ::= Tuple ERROR_TOKEN > // > case 309: { > >- reportErrorTokenMessage(dtParser.getToken(7), OCLParserErrors.MISSING_LBRACE); >- CSTNode result = createTupleLiteralExpCS((EList)dtParser.getSym(3)); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(7), OCLParserErrors.MISSING_LBRACE); >+ CSTNode result = createTupleLiteralExpCS((EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3)); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 310: variableCS ::= IDENTIFIER ERROR_TOKEN > // > case 310: { > >- reportErrorTokenMessage(dtParser.getToken(2), OCLParserErrors.MISSING_VARIABLE_TYPE); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2), OCLParserErrors.MISSING_VARIABLE_TYPE); > CSTNode result = createVariableCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > null, > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(2))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 311: variableExpCS ::= simpleNameCS [ argumentsCS ERROR_TOKEN > // >+ > case 311: >- >+ > // > // Rule 312: variableExpCS ::= keywordAsName1 [ argumentsCS ERROR_TOKEN > // > case 312: { > >- reportErrorTokenMessage(dtParser.getToken(4), OCLParserErrors.MISSING_RBRACK); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4), OCLParserErrors.MISSING_RBRACK); > CSTNode result = createVariableExpCS( >- (SimpleNameCS)dtParser.getSym(1), >- (EList)dtParser.getSym(3), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3), > createIsMarkedPreCS(false) > ); >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > > // > // Rule 313: variableListCS ::= ERROR_TOKEN > // >+ > case 313: >- >+ > // > // Rule 314: variableListCS2 ::= ERROR_TOKEN > // > case 314: { > >- reportErrorTokenMessage(dtParser.getToken(1), OCLParserErrors.MISSING_VARIABLES); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1), OCLParserErrors.MISSING_VARIABLES); > EList result = new BasicEList(); >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 315: classifierContextDeclCS ::= context pathNameCS ERROR_TOKEN > // > case 315: { > >- reportErrorTokenMessage(dtParser.getToken(3), OCLParserErrors.MISSING_INV_OR_DEF); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3), OCLParserErrors.MISSING_INV_OR_DEF); > CSTNode result = createClassifierContextDeclCS( >- (PathNameCS)dtParser.getSym(2), >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > new BasicEList<InvOrDefCS>() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 316: defExpressionCS ::= typedVariableCS ERROR_TOKEN > // > case 316: { > >- reportErrorTokenMessage(dtParser.getToken(2), OCLParserErrors.MISSING_EQUALS); >- VariableCS variableCS = (VariableCS)dtParser.getSym(1); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2), OCLParserErrors.MISSING_EQUALS); >+ VariableCS variableCS = (VariableCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1); > CSTNode result = createDefExpressionCS( > variableCS, > null, > null > ); >- setOffsets(result, variableCS, getIToken(dtParser.getToken(2))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, variableCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 317: defExpressionCS ::= IDENTIFIER ERROR_Colon > // > case 317: { > > VariableCS variableCS = createVariableCS( >- getTokenText(dtParser.getToken(1)), >+ getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), > null, > null > ); >- setOffsets(variableCS, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(2))); >+ setOffsets(variableCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); > CSTNode result = createDefExpressionCS( > variableCS, > null, > null > ); >- setOffsets(result, variableCS, getIToken(dtParser.getToken(2))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, variableCS, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 318: initOrDerValueCS ::= initOrDerValueCSopt init ERROR_Colon > // > case 318: { > > CSTNode result = createInitValueCS( >- (InitOrDerValueCS)dtParser.getSym(1), >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > null > ); >- if (dtParser.getSym(1) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(3))); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); > } else { >- setOffsets(result, getIToken(dtParser.getToken(2)), getIToken(dtParser.getToken(3))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 319: initOrDerValueCS ::= initOrDerValueCSopt derive ERROR_Colon > // > case 319: { > > CSTNode result = createDerValueCS( >- (InitOrDerValueCS)dtParser.getSym(1), >+ (InitOrDerValueCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), > null > ); >- if (dtParser.getSym(1) != null) { >- setOffsets(result, (CSTNode)dtParser.getSym(1), getIToken(dtParser.getToken(3))); >+ if ( // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1) != null) { >+ setOffsets(result, (CSTNode) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(1), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); > } else { >- setOffsets(result, getIToken(dtParser.getToken(2)), getIToken(dtParser.getToken(3))); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); > } >- dtParser.setSym1(result); >- break; >- } >- >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 320: invOrDefCS ::= inv simpleNameCS ERROR_Colon > // > case 320: { > > CSTNode result = createInvCS( >- (SimpleNameCS)dtParser.getSym(2), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 321: invOrDefCS ::= def simpleNameCS ERROR_Colon > // > case 321: { > > CSTNode result = createDefCS( >- (SimpleNameCS)dtParser.getSym(2), >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 322: packageDeclarationCS ::= package pathNameCS contextDeclCSmopt ERROR_Empty endpackage > // > case 322: { > > CSTNode result = createPackageDeclarationCS( >- (PathNameCS)dtParser.getSym(2), >- (EList)dtParser.getSym(3) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(5))); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(5))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 323: packageDeclarationCS ::= package pathNameCS contextDeclCSmopt ERROR_TOKEN > // > case 323: { > >- reportErrorTokenMessage(dtParser.getToken(4), OCLParserErrors.MISSING_ENDPACKAGE); >+ reportErrorTokenMessage( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4), OCLParserErrors.MISSING_ENDPACKAGE); > CSTNode result = createPackageDeclarationCS( >- (PathNameCS)dtParser.getSym(2), >- (EList)dtParser.getSym(3) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(4))); >- dtParser.setSym1(result); >- break; >- } >- >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ (EList) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(3) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(4))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 324: packageDeclarationCS ::= package ERROR_PathNameCS > // > case 324: { > > CSTNode result = createPackageDeclarationCS( >- (PathNameCS)dtParser.getSym(2), >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > new BasicEList() > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(2))); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(2))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 325: prePostOrBodyDeclCS ::= pre simpleNameCS ERROR_Colon > // >@@ -2779,14 +3624,19 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.PRE_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(3))) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 326: prePostOrBodyDeclCS ::= post simpleNameCS ERROR_Colon > // >@@ -2794,14 +3644,19 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.POST_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(3))) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 327: prePostOrBodyDeclCS ::= body simpleNameCS ERROR_Colon > // >@@ -2809,32 +3664,41 @@ > > CSTNode result = createPrePostOrBodyDeclCS( > PrePostOrBodyEnum.BODY_LITERAL, >- (SimpleNameCS)dtParser.getSym(2), >- createInvalidLiteralExpCS(getTokenText(dtParser.getToken(3))) >- ); >- setOffsets(result, getIToken(dtParser.getToken(1)), getIToken(dtParser.getToken(3))); >- dtParser.setSym1(result); >- break; >- } >- >+ (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), >+ createInvalidLiteralExpCS(getTokenText( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))) >+ ); >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(3))); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } >+ > // > // Rule 328: propertyContextCS ::= context pathNameCS :: ERROR_SimpleNameCS > // > case 328: { > >- SimpleNameCS simpleNameCS = (SimpleNameCS)dtParser.getSym(4); >+ SimpleNameCS simpleNameCS = (SimpleNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(4); > CSTNode result = createPropertyContextCS( >- (PathNameCS)dtParser.getSym(2), >+ (PathNameCS) // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym(2), > simpleNameCS, > null, > null > ); >- setOffsets(result, getIToken(dtParser.getToken(1)), simpleNameCS); >- dtParser.setSym1(result); >- break; >- } >- >+ setOffsets(result, getIToken( // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken(1)), simpleNameCS); >+ // macro setResult is deprecated. Use function setResult >+ getParser().setSym1(result); >+ break; >+ } > >+ > default: > break; > } >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.g >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.g,v >retrieving revision 1.1 >diff -u -r1.1 OCLBacktrackingParser.g >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.g 13 Jan 2009 20:31:30 -0000 1.1 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.g 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > --/** > -- * <copyright> > -- * >--- * Copyright (c) 2008, 2009 Eclipse.org and others. >+-- * Copyright (c) 2008, 2009 Eclipse.org, Open Canarias S.L. and others. > -- * All rights reserved. This program and the accompanying materials > -- * are made available under the terms of the Eclipse Public License v1.0 > -- * which accompanies this distribution, and is available at >@@ -9,6 +9,7 @@ > -- * > -- * Contributors: > -- * E.D. Willink - Initial API and implementation >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > -- * > -- * </copyright> > -- * >@@ -25,35 +26,31 @@ > > %options escape=$ > %options la=2 >-%options table=java > %options fp=OCLBacktrackingParser,prefix=TK_ >-%options error-maps >-%options scopes >-%options margin=4 > %options backtrack > %options noserialize > %options package=org.eclipse.ocl.parser.backtracking >-%options import_terminals=OCLBacktrackingLexer.g >+%options import_terminals=OCLBacktrackingLexer.gi > %options ast_type=CSTNode >-%options programming_language=java >-%options action=("*.java", "/.", "./") >-%options ParseTable=lpg.lpgjavaruntime.ParseTable >+%options ParseTable=lpg.runtime.ParseTable >+%options template=dtParserTemplateF.gi > %options include_directory=".;..;../../lpg" > >-$Include >- OCLParserErrors.g >-$End >+%Import >+ OCLParserErrors.gi >+%End > >-$Globals >+%Globals > /. > import org.eclipse.ocl.parser.AbstractOCLParser; > ./ >-$End >+%End > >-$Define >+%Define > $lex_stream_class /.OCLBacktrackingLexer./ > $prs_parser_class /.BacktrackingParser./ > $prs_parser_exception /.NotBacktrackParseTableException./ > $prs_parser_throw /.throw new RuntimeException("****Error: Regenerate $prs_type.java with -BACKTRACK option")./ > $prs_parse_args /.error_repair_count./ >-$End >+%End >+ >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingLexer.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,115 +10,243 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* - Bug 259818 > * Borland - Bug 242880 >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingLexer.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* $Id$ > */ > > package org.eclipse.ocl.parser.backtracking; > >-import lpg.lpgjavaruntime.*; >+import lpg.runtime.*; > import org.eclipse.ocl.lpg.AbstractLexer; >-import org.eclipse.ocl.lpg.AbstractParser; >+import org.eclipse.ocl.lpg.AbstractLexerStream; >+import org.eclipse.ocl.lpg.OCLParserStream; >+ >+import java.io.Reader; >+ > import org.eclipse.ocl.Environment; > import org.eclipse.ocl.lpg.BasicEnvironment; > import org.eclipse.ocl.util.OCLUtil; > > @SuppressWarnings("nls") >-public class OCLBacktrackingLexer extends AbstractLexer implements OCLBacktrackingParsersym, OCLBacktrackingLexersym, RuleAction >+public class OCLBacktrackingLexer extends AbstractLexer implements RuleAction > { >+ private OCLBacktrackingLexerStream lexStream; >+ > private static ParseTable prs = new OCLBacktrackingLexerprs(); >- // >- // The Lexer contains an array of characters as the input stream to be parsed. >- // There are methods to retrieve and classify characters. >- // The lexparser "token" is implemented simply as the index of the next character in the array. >- // The Lexer extends the abstract class LpgLexStream with an implementation of the abstract >- // method getKind. The template defines the Lexer class and the lexer() method. >- // A driver creates the action class, "Lexer", passing an Option object to the constructor. >- // >- protected OCLBacktrackingKWLexer kwLexer; >- protected boolean printTokens; >- private AbstractParser parser; >- private LexParser lexParser = new LexParser(this, prs, this); >+ public ParseTable getParseTable() { return prs; } >+ >+ private LexParser lexParser = new LexParser(); >+ public LexParser getParser() { return lexParser; } >+ >+ public int getToken(int i) { return lexParser.getToken(i); } >+ public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); } >+ public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); } >+ >+ public int getLeftSpan() { return lexParser.getToken(1); } >+ public int getRightSpan() { return lexParser.getLastToken(); } >+ >+ public void resetKeywordLexer() >+ { >+ if (kwLexer == null) >+ this.kwLexer = new OCLBacktrackingKWLexer(lexStream.getInputChars(), OCLBacktrackingParsersym.TK_IDENTIFIER); >+ else this.kwLexer.setInputChars(lexStream.getInputChars()); >+ } >+ >+ public void reset(String filename, int tab) throws java.io.IOException >+ { >+ lexStream = new OCLBacktrackingLexerStream(getOCLEnvironment(), filename, tab); >+ lexParser.reset(lexStream, prs, this); >+ resetKeywordLexer(); >+ } >+ >+ public void reset(char[] input_chars, String filename) >+ { >+ reset(input_chars, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ public void reset(char[] input_chars, String filename, int tab) >+ { >+ lexStream = new OCLBacktrackingLexerStream(getOCLEnvironment(), input_chars, filename, tab); >+ lexParser.reset(lexStream, prs, this); >+ resetKeywordLexer(); >+ } >+ >+ // OCL addition to reset the lexer stream from an input reader >+ public void reset(Reader reader, String filename) throws java.io.IOException { >+ reset(reader, filename, ECLIPSE_TAB_VALUE); >+ } > >- private final Environment<?,?,?,?,?,?,?,?,?,?,?,?> oclEnvironment; >+ // OCL addition to reset the lexer stream from an input reader >+ public void reset(Reader reader, String filename, int tab) throws java.io.IOException { >+ char[] input_chars = getInputChars(reader); >+ reset(input_chars, filename, tab); >+ } > >- public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment) { >+ /** >+ * @since 3.0 >+ */ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, String filename, int tab) throws java.io.IOException { > super(OCLUtil.getAdapter(environment, BasicEnvironment.class)); >+ reset(filename, tab); > oclEnvironment = environment; > } >- >- public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] chars) { >- this(environment, chars, "OCL", ECLIPSE_TAB_VALUE); >- kwLexer = new OCLBacktrackingKWLexer(getInputChars(), TK_IDENTIFIER); >- } > >- public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename, int tab) { >- super(OCLUtil.getAdapter(environment, BasicEnvironment.class), input_chars, filename, tab); >+ /** >+ * @since 3.0 >+ */ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, String filename) throws java.io.IOException{ >+ this(environment, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename, int tab) { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class)); >+ reset(input_chars, filename, tab); > oclEnvironment = environment; > } >+ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] chars) { >+ this(environment, chars, "OCL", ECLIPSE_TAB_VALUE); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, Reader reader) throws java.io.IOException { >+ this(environment, reader, "OCL"); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, Reader reader, String filename) throws java.io.IOException { >+ this(environment, reader, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public OCLBacktrackingLexer(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, Reader reader, String filename, int tab) throws java.io.IOException { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class)); >+ reset(reader, filename, tab); >+ oclEnvironment = environment; >+ } >+ >+ private final Environment<?,?,?,?,?,?,?,?,?,?,?,?> oclEnvironment; > >- public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { >+ public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { > return oclEnvironment; > } > >- @Override >- public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); } >+ public AbstractLexerStream getILexStream() { return lexStream; } > >- public int getLeftSpan() { return lexParser.getFirstToken(); } >- public AbstractParser getParser() { return parser; } >- public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); } >- public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); } >- public int getRightSpan() { return lexParser.getLastToken(); } >+ /** >+ * @deprecated replaced by {@link #getILexStream()} >+ */ >+ public ILexStream getLexStream() { return lexStream; } > >- @Override >- public int getToken(int i) { return lexParser.getToken(i); } >+ private void initializeLexer(OCLParserStream prsStream, int start_offset, int end_offset) >+ { >+ if (lexStream.getInputChars() == null) >+ throw new NullPointerException("LexStream was not initialized"); >+ lexStream.setPrsStream(prsStream); >+ prsStream.makeToken(start_offset, end_offset, 0); // Token list must start with a bad token >+ } > >- @Override >- public void initialize(char [] content, String filename) >+ private void addEOF(OCLParserStream prsStream, int end_offset) > { >- super.initialize(content, filename); >- if (kwLexer == null) >- kwLexer = new OCLBacktrackingKWLexer(getInputChars(), TK_IDENTIFIER); >- else >- kwLexer.setInputChars(getInputChars()); >+ prsStream.makeToken(end_offset, end_offset, OCLBacktrackingParsersym.TK_EOF_TOKEN); // and end with the end of file token >+ prsStream.setStreamLength(prsStream.getSize()); > } > >- @Override >- public String[] orderedExportedSymbols() { return OCLBacktrackingParsersym.orderedTerminalSymbols; } >+ public void lexer(OCLParserStream prsStream) >+ { >+ lexer(null, prsStream); >+ } > >- @Override >- public void setInputChars(char[] inputChars) { >- super.setInputChars(inputChars); >- kwLexer = new OCLBacktrackingKWLexer(getInputChars(), TK_IDENTIFIER); >- } >+ public void lexer(Monitor monitor, OCLParserStream prsStream) >+ { >+ initializeLexer(prsStream, 0, -1); >+ lexParser.parseCharacters(monitor); // Lex the input characters >+ addEOF(prsStream, lexStream.getStreamIndex()); >+ } >+ >+ public void lexer(OCLParserStream prsStream, int start_offset, int end_offset) >+ { >+ lexer(null, prsStream, start_offset, end_offset); >+ } > >- @Override >- public void lexToTokens(Monitor monitor, AbstractParser parser) >+ public void lexer(Monitor monitor, OCLParserStream prsStream, int start_offset, int end_offset) > { >- if (getInputChars() == null) >- throw new NullPointerException("LexStream was not initialized"); >+ if (start_offset <= 1) >+ initializeLexer(prsStream, 0, -1); >+ else initializeLexer(prsStream, start_offset - 1, start_offset - 1); >+ >+ lexParser.parseCharacters(monitor, start_offset, end_offset); >+ >+ addEOF(prsStream, (end_offset >= lexStream.getStreamIndex() ? lexStream.getStreamIndex() : end_offset + 1)); >+ } >+ >+ /** >+ * If a parse stream was not passed to this Lexical analyser then we >+ * simply report a lexical error. Otherwise, we produce a bad token. >+ */ >+ public void reportLexicalError(int startLoc, int endLoc) { >+ IPrsStream prs_stream = lexStream.getIPrsStream(); >+ if (prs_stream == null) >+ lexStream.reportLexicalError(startLoc, endLoc); >+ else { >+ // >+ // Remove any token that may have been processed that fall in the >+ // range of the lexical error... then add one error token that spans >+ // the error range. >+ // >+ for (int i = prs_stream.getSize() - 1; i > 0; i--) { >+ if (prs_stream.getStartOffset(i) >= startLoc) >+ prs_stream.removeLastToken(); >+ else break; >+ } >+ prs_stream.makeToken(startLoc, endLoc, 0); // add an error token to the prsStream >+ } >+ } > >- this.parser = parser; >+ // >+ // The Lexer contains an array of characters as the input stream to be parsed. >+ // There are methods to retrieve and classify characters. >+ // The lexparser "token" is implemented simply as the index of the next character in the array. >+ // The Lexer extends the abstract class LpgLexStream with an implementation of the abstract >+ // method getKind. The template defines the Lexer class and the lexer() method. >+ // A driver creates the action class, "Lexer", passing an Option object to the constructor. >+ // >+ OCLBacktrackingKWLexer kwLexer; >+ boolean printTokens; >+ private final static int ECLIPSE_TAB_VALUE = 4; > >- parser.makeToken(0, 0, 0); // Token list must start with a bad token >- >- lexParser.parseCharacters(monitor); // Lex the input characters >- >- int i = getStreamIndex(); >- parser.makeToken(i, i, TK_EOF_TOKEN); // and end with the end of file token >- parser.setStreamLength(parser.getSize()); >- >- return; >+ public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); } >+ >+ >+ /** >+ * @deprecated function replaced by {@link #reset(char [] content, String filename)} >+ */ >+ public void initialize(char [] content, String filename) >+ { >+ reset(content, filename); >+ } >+ >+ final void makeToken(int left_token, int right_token, int kind) >+ { >+ lexStream.makeToken(left_token, right_token, kind); > } > > final void makeToken(int kind) > { > int startOffset = getLeftSpan(), > endOffset = getRightSpan(); >- makeToken(startOffset, endOffset, kind); >+ lexStream.makeToken(startOffset, endOffset, kind); > if (printTokens) printValue(startOffset, endOffset); > } > >@@ -126,7 +254,7 @@ > { > int startOffset = getLeftSpan(), > endOffset = getRightSpan(); >- super.getPrsStream().makeAdjunct(startOffset, endOffset, kind); >+ lexStream.getIPrsStream().makeAdjunct(startOffset, endOffset, kind); > } > > final void skipToken() >@@ -138,491 +266,527 @@ > { > int startOffset = getLeftSpan(), > endOffset = getRightSpan(), >- kwKind = kwLexer.lexer(startOffset, endOffset); >- makeToken(startOffset, endOffset, kwKind); >+ kwKind = kwLexer.lexer(startOffset, endOffset); >+ lexStream.makeToken(startOffset, endOffset, kwKind); >+ if (printTokens) printValue(startOffset, endOffset); >+ } >+ >+ // >+ // This flavor of checkForKeyWord is necessary when the default kind >+ // (which is returned when the keyword filter doesn't match) is something >+ // other than _IDENTIFIER. >+ // >+ final void checkForKeyWord(int defaultKind) >+ { >+ int startOffset = getLeftSpan(), >+ endOffset = getRightSpan(), >+ kwKind = kwLexer.lexer(startOffset, endOffset); >+ if (kwKind == OCLBacktrackingParsersym.TK_IDENTIFIER) >+ kwKind = defaultKind; >+ lexStream.makeToken(startOffset, endOffset, kwKind); > if (printTokens) printValue(startOffset, endOffset); > } > > final void printValue(int startOffset, int endOffset) > { >- String s = new String(getInputChars(), startOffset, endOffset - startOffset + 1); >+ String s = new String(lexStream.getInputChars(), startOffset, endOffset - startOffset + 1); > System.out.print(s); > } > > // > // > // >+ static class OCLBacktrackingLexerStream extends AbstractLexerStream >+ { > public final static int tokenKind[] = > { >- Char_CtlCharNotWS, // 000 0x00 >- Char_CtlCharNotWS, // 001 0x01 >- Char_CtlCharNotWS, // 002 0x02 >- Char_CtlCharNotWS, // 003 0x03 >- Char_CtlCharNotWS, // 004 0x04 >- Char_CtlCharNotWS, // 005 0x05 >- Char_CtlCharNotWS, // 006 0x06 >- Char_CtlCharNotWS, // 007 0x07 >- Char_CtlCharNotWS, // 008 0x08 >- Char_HT, // 009 0x09 >- Char_LF, // 010 0x0A >- Char_CtlCharNotWS, // 011 0x0B >- Char_FF, // 012 0x0C >- Char_CR, // 013 0x0D >- Char_CtlCharNotWS, // 014 0x0E >- Char_CtlCharNotWS, // 015 0x0F >- Char_CtlCharNotWS, // 016 0x10 >- Char_CtlCharNotWS, // 017 0x11 >- Char_CtlCharNotWS, // 018 0x12 >- Char_CtlCharNotWS, // 019 0x13 >- Char_CtlCharNotWS, // 020 0x14 >- Char_CtlCharNotWS, // 021 0x15 >- Char_CtlCharNotWS, // 022 0x16 >- Char_CtlCharNotWS, // 023 0x17 >- Char_CtlCharNotWS, // 024 0x18 >- Char_CtlCharNotWS, // 025 0x19 >- Char_CtlCharNotWS, // 026 0x1A >- Char_CtlCharNotWS, // 027 0x1B >- Char_CtlCharNotWS, // 028 0x1C >- Char_CtlCharNotWS, // 029 0x1D >- Char_CtlCharNotWS, // 030 0x1E >- Char_CtlCharNotWS, // 031 0x1F >- Char_Space, // 032 0x20 >- Char_Exclamation, // 033 0x21 >- Char_DoubleQuote, // 034 0x22 >- Char_Sharp, // 035 0x23 >- Char_DollarSign, // 036 0x24 >- Char_Percent, // 037 0x25 >- Char_Ampersand, // 038 0x26 >- Char_SingleQuote, // 039 0x27 >- Char_LeftParen, // 040 0x28 >- Char_RightParen, // 041 0x29 >- Char_Star, // 042 0x2A >- Char_Plus, // 043 0x2B >- Char_Comma, // 044 0x2C >- Char_Minus, // 045 0x2D >- Char_Dot, // 046 0x2E >- Char_Slash, // 047 0x2F >- Char_0, // 048 0x30 >- Char_1, // 049 0x31 >- Char_2, // 050 0x32 >- Char_3, // 051 0x33 >- Char_4, // 052 0x34 >- Char_5, // 053 0x35 >- Char_6, // 054 0x36 >- Char_7, // 055 0x37 >- Char_8, // 056 0x38 >- Char_9, // 057 0x39 >- Char_Colon, // 058 0x3A >- Char_SemiColon, // 059 0x3B >- Char_LessThan, // 060 0x3C >- Char_Equal, // 061 0x3D >- Char_GreaterThan, // 062 0x3E >- Char_QuestionMark, // 063 0x3F >- Char_AtSign, // 064 0x40 >- Char_A, // 065 0x41 >- Char_B, // 066 0x42 >- Char_C, // 067 0x43 >- Char_D, // 068 0x44 >- Char_E, // 069 0x45 >- Char_F, // 070 0x46 >- Char_G, // 071 0x47 >- Char_H, // 072 0x48 >- Char_I, // 073 0x49 >- Char_J, // 074 0x4A >- Char_K, // 075 0x4B >- Char_L, // 076 0x4C >- Char_M, // 077 0x4D >- Char_N, // 078 0x4E >- Char_O, // 079 0x4F >- Char_P, // 080 0x50 >- Char_Q, // 081 0x51 >- Char_R, // 082 0x52 >- Char_S, // 083 0x53 >- Char_T, // 084 0x54 >- Char_U, // 085 0x55 >- Char_V, // 086 0x56 >- Char_W, // 087 0x57 >- Char_X, // 088 0x58 >- Char_Y, // 089 0x59 >- Char_Z, // 090 0x5A >- Char_LeftBracket, // 091 0x5B >- Char_BackSlash, // 092 0x5C >- Char_RightBracket, // 093 0x5D >- Char_Caret, // 094 0x5E >- Char__, // 095 0x5F >- Char_BackQuote, // 096 0x60 >- Char_a, // 097 0x61 >- Char_b, // 098 0x62 >- Char_c, // 099 0x63 >- Char_d, // 100 0x64 >- Char_e, // 101 0x65 >- Char_f, // 102 0x66 >- Char_g, // 103 0x67 >- Char_h, // 104 0x68 >- Char_i, // 105 0x69 >- Char_j, // 106 0x6A >- Char_k, // 107 0x6B >- Char_l, // 108 0x6C >- Char_m, // 109 0x6D >- Char_n, // 110 0x6E >- Char_o, // 111 0x6F >- Char_p, // 112 0x70 >- Char_q, // 113 0x71 >- Char_r, // 114 0x72 >- Char_s, // 115 0x73 >- Char_t, // 116 0x74 >- Char_u, // 117 0x75 >- Char_v, // 118 0x76 >- Char_w, // 119 0x77 >- Char_x, // 120 0x78 >- Char_y, // 121 0x79 >- Char_z, // 122 0x7A >- Char_LeftBrace, // 123 0x7B >- Char_VerticalBar, // 124 0x7C >- Char_RightBrace, // 125 0x7D >- Char_Tilde, // 126 0x7E >- Char_CtlCharNotWS, // 127 0x7F >- >- Char_Acute, // for the acute accent 0xb4 >- Char_AfterASCIINotAcute, // for all chars in range 0x80..0xfffe excluding the acute accent >- Char_EOF // for '\uffff' or 65535 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 000 0x00 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 001 0x01 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 002 0x02 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 003 0x03 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 004 0x04 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 005 0x05 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 006 0x06 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 007 0x07 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 008 0x08 >+ OCLBacktrackingLexersym.Char_HT, // 009 0x09 >+ OCLBacktrackingLexersym.Char_LF, // 010 0x0A >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 011 0x0B >+ OCLBacktrackingLexersym.Char_FF, // 012 0x0C >+ OCLBacktrackingLexersym.Char_CR, // 013 0x0D >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 014 0x0E >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 015 0x0F >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 016 0x10 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 017 0x11 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 018 0x12 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 019 0x13 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 020 0x14 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 021 0x15 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 022 0x16 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 023 0x17 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 024 0x18 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 025 0x19 >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 026 0x1A >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 027 0x1B >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 028 0x1C >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 029 0x1D >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 030 0x1E >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 031 0x1F >+ OCLBacktrackingLexersym.Char_Space, // 032 0x20 >+ OCLBacktrackingLexersym.Char_Exclamation, // 033 0x21 >+ OCLBacktrackingLexersym.Char_DoubleQuote, // 034 0x22 >+ OCLBacktrackingLexersym.Char_Sharp, // 035 0x23 >+ OCLBacktrackingLexersym.Char_DollarSign, // 036 0x24 >+ OCLBacktrackingLexersym.Char_Percent, // 037 0x25 >+ OCLBacktrackingLexersym.Char_Ampersand, // 038 0x26 >+ OCLBacktrackingLexersym.Char_SingleQuote, // 039 0x27 >+ OCLBacktrackingLexersym.Char_LeftParen, // 040 0x28 >+ OCLBacktrackingLexersym.Char_RightParen, // 041 0x29 >+ OCLBacktrackingLexersym.Char_Star, // 042 0x2A >+ OCLBacktrackingLexersym.Char_Plus, // 043 0x2B >+ OCLBacktrackingLexersym.Char_Comma, // 044 0x2C >+ OCLBacktrackingLexersym.Char_Minus, // 045 0x2D >+ OCLBacktrackingLexersym.Char_Dot, // 046 0x2E >+ OCLBacktrackingLexersym.Char_Slash, // 047 0x2F >+ OCLBacktrackingLexersym.Char_0, // 048 0x30 >+ OCLBacktrackingLexersym.Char_1, // 049 0x31 >+ OCLBacktrackingLexersym.Char_2, // 050 0x32 >+ OCLBacktrackingLexersym.Char_3, // 051 0x33 >+ OCLBacktrackingLexersym.Char_4, // 052 0x34 >+ OCLBacktrackingLexersym.Char_5, // 053 0x35 >+ OCLBacktrackingLexersym.Char_6, // 054 0x36 >+ OCLBacktrackingLexersym.Char_7, // 055 0x37 >+ OCLBacktrackingLexersym.Char_8, // 056 0x38 >+ OCLBacktrackingLexersym.Char_9, // 057 0x39 >+ OCLBacktrackingLexersym.Char_Colon, // 058 0x3A >+ OCLBacktrackingLexersym.Char_SemiColon, // 059 0x3B >+ OCLBacktrackingLexersym.Char_LessThan, // 060 0x3C >+ OCLBacktrackingLexersym.Char_Equal, // 061 0x3D >+ OCLBacktrackingLexersym.Char_GreaterThan, // 062 0x3E >+ OCLBacktrackingLexersym.Char_QuestionMark, // 063 0x3F >+ OCLBacktrackingLexersym.Char_AtSign, // 064 0x40 >+ OCLBacktrackingLexersym.Char_A, // 065 0x41 >+ OCLBacktrackingLexersym.Char_B, // 066 0x42 >+ OCLBacktrackingLexersym.Char_C, // 067 0x43 >+ OCLBacktrackingLexersym.Char_D, // 068 0x44 >+ OCLBacktrackingLexersym.Char_E, // 069 0x45 >+ OCLBacktrackingLexersym.Char_F, // 070 0x46 >+ OCLBacktrackingLexersym.Char_G, // 071 0x47 >+ OCLBacktrackingLexersym.Char_H, // 072 0x48 >+ OCLBacktrackingLexersym.Char_I, // 073 0x49 >+ OCLBacktrackingLexersym.Char_J, // 074 0x4A >+ OCLBacktrackingLexersym.Char_K, // 075 0x4B >+ OCLBacktrackingLexersym.Char_L, // 076 0x4C >+ OCLBacktrackingLexersym.Char_M, // 077 0x4D >+ OCLBacktrackingLexersym.Char_N, // 078 0x4E >+ OCLBacktrackingLexersym.Char_O, // 079 0x4F >+ OCLBacktrackingLexersym.Char_P, // 080 0x50 >+ OCLBacktrackingLexersym.Char_Q, // 081 0x51 >+ OCLBacktrackingLexersym.Char_R, // 082 0x52 >+ OCLBacktrackingLexersym.Char_S, // 083 0x53 >+ OCLBacktrackingLexersym.Char_T, // 084 0x54 >+ OCLBacktrackingLexersym.Char_U, // 085 0x55 >+ OCLBacktrackingLexersym.Char_V, // 086 0x56 >+ OCLBacktrackingLexersym.Char_W, // 087 0x57 >+ OCLBacktrackingLexersym.Char_X, // 088 0x58 >+ OCLBacktrackingLexersym.Char_Y, // 089 0x59 >+ OCLBacktrackingLexersym.Char_Z, // 090 0x5A >+ OCLBacktrackingLexersym.Char_LeftBracket, // 091 0x5B >+ OCLBacktrackingLexersym.Char_BackSlash, // 092 0x5C >+ OCLBacktrackingLexersym.Char_RightBracket, // 093 0x5D >+ OCLBacktrackingLexersym.Char_Caret, // 094 0x5E >+ OCLBacktrackingLexersym.Char__, // 095 0x5F >+ OCLBacktrackingLexersym.Char_BackQuote, // 096 0x60 >+ OCLBacktrackingLexersym.Char_a, // 097 0x61 >+ OCLBacktrackingLexersym.Char_b, // 098 0x62 >+ OCLBacktrackingLexersym.Char_c, // 099 0x63 >+ OCLBacktrackingLexersym.Char_d, // 100 0x64 >+ OCLBacktrackingLexersym.Char_e, // 101 0x65 >+ OCLBacktrackingLexersym.Char_f, // 102 0x66 >+ OCLBacktrackingLexersym.Char_g, // 103 0x67 >+ OCLBacktrackingLexersym.Char_h, // 104 0x68 >+ OCLBacktrackingLexersym.Char_i, // 105 0x69 >+ OCLBacktrackingLexersym.Char_j, // 106 0x6A >+ OCLBacktrackingLexersym.Char_k, // 107 0x6B >+ OCLBacktrackingLexersym.Char_l, // 108 0x6C >+ OCLBacktrackingLexersym.Char_m, // 109 0x6D >+ OCLBacktrackingLexersym.Char_n, // 110 0x6E >+ OCLBacktrackingLexersym.Char_o, // 111 0x6F >+ OCLBacktrackingLexersym.Char_p, // 112 0x70 >+ OCLBacktrackingLexersym.Char_q, // 113 0x71 >+ OCLBacktrackingLexersym.Char_r, // 114 0x72 >+ OCLBacktrackingLexersym.Char_s, // 115 0x73 >+ OCLBacktrackingLexersym.Char_t, // 116 0x74 >+ OCLBacktrackingLexersym.Char_u, // 117 0x75 >+ OCLBacktrackingLexersym.Char_v, // 118 0x76 >+ OCLBacktrackingLexersym.Char_w, // 119 0x77 >+ OCLBacktrackingLexersym.Char_x, // 120 0x78 >+ OCLBacktrackingLexersym.Char_y, // 121 0x79 >+ OCLBacktrackingLexersym.Char_z, // 122 0x7A >+ OCLBacktrackingLexersym.Char_LeftBrace, // 123 0x7B >+ OCLBacktrackingLexersym.Char_VerticalBar, // 124 0x7C >+ OCLBacktrackingLexersym.Char_RightBrace, // 125 0x7D >+ OCLBacktrackingLexersym.Char_Tilde, // 126 0x7E >+ OCLBacktrackingLexersym.Char_CtlCharNotWS, // 127 0x7F >+ >+ OCLBacktrackingLexersym.Char_Acute, // for the acute accent 0xb4 >+ OCLBacktrackingLexersym.Char_AfterASCIINotAcute, // for all chars in range 0x80..0xfffe excluding the acute accent >+ OCLBacktrackingLexersym.Char_EOF // for '\uffff' or 65535 > }; > >- @Override public final int getKind(int i) // Classify character at ith location >+ public final int getKind(int i) // Classify character at ith location > { > char c = (i >= getStreamLength() ? '\uffff' : getCharValue(i)); >- return (c < 128)? // ASCII Character >- tokenKind[c] : >- (c == '\uffff')? >- Char_EOF : >- (c == '\u00b4')? >- Char_Acute : >- Char_AfterASCIINotAcute; >+ return (c < 128) // ASCII Character >+ ? tokenKind[c] >+ : (c == '\uffff') >+ ?OCLBacktrackingLexersym.Char_EOF >+ : (c == '\u00b4') >+ ? OCLBacktrackingLexersym.Char_EOF >+ : OCLBacktrackingLexersym.Char_AfterASCIINotAcute; >+ } >+ >+ public String[] orderedExportedSymbols() { return OCLBacktrackingParsersym.orderedTerminalSymbols; } >+ >+ public OCLBacktrackingLexerStream(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, String filename, int tab) throws java.io.IOException >+ { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class), filename, tab); >+ } >+ >+ public OCLBacktrackingLexerStream(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename, int tab) >+ { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class), input_chars, filename, tab); >+ } >+ >+ public OCLBacktrackingLexerStream(Environment<?,?,?,?,?,?,?,?,?,?,?,?> environment, char[] input_chars, String filename) >+ { >+ super(OCLUtil.getAdapter(environment, BasicEnvironment.class), input_chars, filename, 1); >+ } > } > >- public void ruleAction( int ruleNumber) >+ public void ruleAction(int ruleNumber) > { > switch(ruleNumber) > { >- >+ > // > // Rule 1: Token ::= Identifier > // > case 1: { > checkForKeyWord(); >- break; >+ break; > } >- >+ > // > // Rule 2: Token ::= EscapedSQ > // > case 2: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 3: Token ::= SingleQuote SLNotSQ SingleQuote > // > case 3: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 4: Token ::= Acute SLNotSQOpt Acute > // > case 4: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 5: Token ::= BackQuote SLNotSQOpt Acute > // > case 5: { >- makeToken(TK_STRING_LITERAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_STRING_LITERAL); >+ break; > } >- >+ > // > // Rule 6: Token ::= IntegerLiteral > // > case 6: { >- makeToken(TK_INTEGER_LITERAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_INTEGER_LITERAL); >+ break; > } >- >+ > // > // Rule 7: Token ::= RealLiteral > // > case 7: { >- makeToken(TK_REAL_LITERAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_REAL_LITERAL); >+ break; > } >- >+ > // > // Rule 8: Token ::= NumericOperation > // > case 8: { >- makeToken(TK_NUMERIC_OPERATION); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_NUMERIC_OPERATION); >+ break; > } >- >+ > // > // Rule 9: Token ::= IntegerRangeStart > // > case 9: { >- makeToken(TK_INTEGER_RANGE_START); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_INTEGER_RANGE_START); >+ break; > } >- >+ > // > // Rule 10: Token ::= SLC > // > case 10: { >- makeComment(TK_SINGLE_LINE_COMMENT); >- break; >+ makeComment(OCLBacktrackingParsersym.TK_SINGLE_LINE_COMMENT); >+ break; > } >- >+ > // > // Rule 11: Token ::= / * Inside Stars / > // > case 11: { >- makeComment(TK_MULTI_LINE_COMMENT); >- break; >+ makeComment(OCLBacktrackingParsersym.TK_MULTI_LINE_COMMENT); >+ break; > } >- >+ > // > // Rule 12: Token ::= WS > // > case 12: { > skipToken(); >- break; >+ break; > } >- >+ > // > // Rule 13: Token ::= + > // > case 13: { >- makeToken(TK_PLUS); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_PLUS); >+ break; > } >- >+ > // > // Rule 14: Token ::= - > // > case 14: { >- makeToken(TK_MINUS); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_MINUS); >+ break; > } >- >+ > // > // Rule 15: Token ::= * > // > case 15: { >- makeToken(TK_MULTIPLY); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_MULTIPLY); >+ break; > } >- >+ > // > // Rule 16: Token ::= / > // > case 16: { >- makeToken(TK_DIVIDE); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_DIVIDE); >+ break; > } >- >+ > // > // Rule 17: Token ::= ( > // > case 17: { >- makeToken(TK_LPAREN); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_LPAREN); >+ break; > } >- >+ > // > // Rule 18: Token ::= ) > // > case 18: { >- makeToken(TK_RPAREN); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_RPAREN); >+ break; > } >- >+ > // > // Rule 19: Token ::= > > // > case 19: { >- makeToken(TK_GREATER); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_GREATER); >+ break; > } >- >+ > // > // Rule 20: Token ::= < > // > case 20: { >- makeToken(TK_LESS); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_LESS); >+ break; > } >- >+ > // > // Rule 21: Token ::= = > // > case 21: { >- makeToken(TK_EQUAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_EQUAL); >+ break; > } >- >+ > // > // Rule 22: Token ::= > = > // > case 22: { >- makeToken(TK_GREATER_EQUAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_GREATER_EQUAL); >+ break; > } >- >+ > // > // Rule 23: Token ::= < = > // > case 23: { >- makeToken(TK_LESS_EQUAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_LESS_EQUAL); >+ break; > } >- >+ > // > // Rule 24: Token ::= < > > // > case 24: { >- makeToken(TK_NOT_EQUAL); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_NOT_EQUAL); >+ break; > } >- >+ > // > // Rule 25: Token ::= [ > // > case 25: { >- makeToken(TK_LBRACKET); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_LBRACKET); >+ break; > } >- >+ > // > // Rule 26: Token ::= ] > // > case 26: { >- makeToken(TK_RBRACKET); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_RBRACKET); >+ break; > } >- >+ > // > // Rule 27: Token ::= { > // > case 27: { >- makeToken(TK_LBRACE); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_LBRACE); >+ break; > } >- >+ > // > // Rule 28: Token ::= } > // > case 28: { >- makeToken(TK_RBRACE); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_RBRACE); >+ break; > } >- >+ > // > // Rule 29: Token ::= - > > // > case 29: { >- makeToken(TK_ARROW); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_ARROW); >+ break; > } >- >+ > // > // Rule 30: Token ::= | > // > case 30: { >- makeToken(TK_BAR); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_BAR); >+ break; > } >- >+ > // > // Rule 31: Token ::= , > // > case 31: { >- makeToken(TK_COMMA); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_COMMA); >+ break; > } >- >+ > // > // Rule 32: Token ::= : > // > case 32: { >- makeToken(TK_COLON); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_COLON); >+ break; > } >- >+ > // > // Rule 33: Token ::= : : > // > case 33: { >- makeToken(TK_COLONCOLON); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_COLONCOLON); >+ break; > } >- >+ > // > // Rule 34: Token ::= ; > // > case 34: { >- makeToken(TK_SEMICOLON); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_SEMICOLON); >+ break; > } >- >+ > // > // Rule 35: Token ::= . > // > case 35: { >- makeToken(TK_DOT); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_DOT); >+ break; > } >- >+ > // > // Rule 36: Token ::= . . > // > case 36: { >- makeToken(TK_DOTDOT); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_DOTDOT); >+ break; > } >- >+ > // > // Rule 37: Token ::= @ p r e > // > case 37: { >- makeToken(TK_ATPRE); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_ATPRE); >+ break; > } >- >+ > // > // Rule 38: Token ::= ^ > // > case 38: { >- makeToken(TK_CARET); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_CARET); >+ break; > } >- >+ > // > // Rule 39: Token ::= ^ ^ > // > case 39: { >- makeToken(TK_CARETCARET); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_CARETCARET); >+ break; > } >- >+ > // > // Rule 40: Token ::= ? > // > case 40: { >- makeToken(TK_QUESTIONMARK); >- break; >+ makeToken(OCLBacktrackingParsersym.TK_QUESTIONMARK); >+ break; > } > > >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingParserprs.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java 1 Sep 2009 17:10:51 -0000 >@@ -1,7 +1,8 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+* Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -14,23 +15,122 @@ > * E.D.Willink - Bugs 225493, 243976, 259818 > * Zeligsoft - Bug 243976 > * Borland - Bug 242880 >+* Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingParserprs.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ > */ > > package org.eclipse.ocl.parser.backtracking; > >-/** >- * The backtracking variant of the OCL parser parse table. >- * >- * @noextend This class is not intended to be subclassed by clients. >- * >- * @since 1.3 >- */ >-@SuppressWarnings("nls") >-public class OCLBacktrackingParserprs implements lpg.lpgjavaruntime.ParseTable, OCLBacktrackingParsersym { >+public class OCLBacktrackingParserprs implements lpg.runtime.ParseTable, OCLBacktrackingParsersym { >+ public final static int ERROR_SYMBOL = 1; >+ public final int getErrorSymbol() { return ERROR_SYMBOL; } >+ >+ public final static int SCOPE_UBOUND = 58; >+ public final int getScopeUbound() { return SCOPE_UBOUND; } >+ >+ public final static int SCOPE_SIZE = 59; >+ public final int getScopeSize() { return SCOPE_SIZE; } >+ >+ public final static int MAX_NAME_LENGTH = 26; >+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >+ >+ public final static int NUM_STATES = 241; >+ public final int getNumStates() { return NUM_STATES; } >+ >+ public final static int NT_OFFSET = 101; >+ public final int getNtOffset() { return NT_OFFSET; } >+ >+ public final static int LA_STATE_OFFSET = 3795; >+ public final int getLaStateOffset() { return LA_STATE_OFFSET; } >+ >+ public final static int MAX_LA = 2; >+ public final int getMaxLa() { return MAX_LA; } >+ >+ public final static int NUM_RULES = 328; >+ public final int getNumRules() { return NUM_RULES; } >+ >+ public final static int NUM_NONTERMINALS = 109; >+ public final int getNumNonterminals() { return NUM_NONTERMINALS; } >+ >+ public final static int NUM_SYMBOLS = 210; >+ public final int getNumSymbols() { return NUM_SYMBOLS; } >+ >+ public final static int SEGMENT_SIZE = 8192; >+ public final int getSegmentSize() { return SEGMENT_SIZE; } >+ >+ public final static int START_STATE = 3223; >+ public final int getStartState() { return START_STATE; } >+ >+ public final static int IDENTIFIER_SYMBOL = 4; >+ public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; } >+ >+ public final static int EOFT_SYMBOL = 73; >+ public final int getEoftSymbol() { return EOFT_SYMBOL; } >+ >+ public final static int EOLT_SYMBOL = 73; >+ public final int getEoltSymbol() { return EOLT_SYMBOL; } >+ >+ public final static int ACCEPT_ACTION = 3466; >+ public final int getAcceptAction() { return ACCEPT_ACTION; } >+ >+ public final static int ERROR_ACTION = 3467; >+ public final int getErrorAction() { return ERROR_ACTION; } >+ >+ public final static boolean BACKTRACK = true; >+ public final boolean getBacktrack() { return BACKTRACK; } >+ >+ public final int getStartSymbol() { return lhs(0); } >+ public final boolean isValidForParser() { return OCLBacktrackingParsersym.isValidForParser; } >+ >+ >+ public interface IsNullable { >+ public final static byte isNullable[] = {0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,1,0,0,1,0,0,0,0,1, >+ 0,0,0,0,0,0,0,0,0,0, >+ 1,1,0,1,0,0,0,0,0,0, >+ 1,1,0,0,0,0,1,1,0,0, >+ 0,0,0,0,1,0,0,0,0,0, >+ 1,0,0,1,0,0,0,0,0,0 >+ }; >+ }; >+ public final static byte isNullable[] = IsNullable.isNullable; >+ public final boolean isNullable(int index) { return isNullable[index] != 0; } >+ >+ public interface ProsthesesIndex { >+ public final static byte prosthesesIndex[] = {0, >+ 54,9,21,108,62,5,6,7,10,3, >+ 8,15,50,51,11,40,42,44,48,49, >+ 56,57,58,59,60,61,67,68,69,70, >+ 71,41,43,38,39,34,35,36,37,32, >+ 33,30,31,28,29,25,26,27,77,23, >+ 52,53,105,47,109,78,80,81,24,107, >+ 97,98,99,100,88,91,92,4,12,19, >+ 20,22,55,65,66,73,79,83,84,85, >+ 86,87,93,94,96,101,2,13,14,17, >+ 18,45,46,63,64,72,74,75,76,82, >+ 89,90,95,102,103,104,106,1,16 >+ }; >+ }; >+ public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex; >+ public final int prosthesesIndex(int index) { return prosthesesIndex[index]; } > > public interface IsKeyword { > public final static byte isKeyword[] = {0, >@@ -1545,33 +1645,33 @@ > > public interface ScopeRhs { > public final static char scopeRhs[] = {0, >- 153,94,116,0,102,0,153,94,103,0, >+ 153,94,116,0,1,0,153,94,103,0, > 147,2,0,147,69,0,147,90,147,69, >- 0,43,118,102,0,147,91,147,90,147, >- 69,0,44,118,102,0,43,118,44,118, >- 102,0,155,2,161,112,0,12,0,155, >+ 0,90,147,1,0,147,91,147,90,147, >+ 69,0,91,147,1,0,90,147,91,147, >+ 1,0,155,2,161,112,0,3,0,155, > 2,161,110,0,155,2,161,170,0,155, > 2,156,80,104,0,157,2,106,0,182, >- 2,103,89,0,182,2,103,88,0,45, >- 0,44,118,45,0,43,118,44,118,45, >- 0,179,68,0,52,118,0,16,0,0, >+ 2,103,89,0,182,2,103,88,0,84, >+ 0,91,147,84,0,90,147,91,147,84, >+ 0,179,68,0,83,147,0,79,152,0, > 155,2,152,110,0,155,2,152,112,0, > 155,2,152,170,0,201,2,52,0,157, >- 37,4,0,7,118,0,147,70,151,81, >+ 37,4,0,5,147,0,147,70,151,81, > 151,2,189,0,151,81,151,2,189,0, >- 18,118,12,0,151,2,189,0,22,117, >- 18,118,12,0,147,70,151,2,189,0, >+ 70,147,3,0,151,2,189,0,81,151, >+ 70,147,3,0,147,70,151,2,189,0, > 147,70,151,31,151,2,190,0,151,31, >- 151,2,190,0,151,2,190,0,19,117, >- 18,118,12,0,147,70,151,2,190,0, >- 147,2,190,0,197,93,52,0,14,0, >+ 151,2,190,0,151,2,190,0,31,151, >+ 70,147,3,0,147,70,151,2,190,0, >+ 147,2,190,0,197,93,52,0,74,0, > 195,93,106,0,155,2,103,80,104,0, >- 155,2,61,0,135,0,4,132,0,3, >- 132,0,139,0,2,130,0,1,130,0, >- 141,0,9,127,0,8,127,0,6,127, >- 0,5,127,0,143,0,10,125,0,7, >- 125,0,145,0,48,123,0,47,123,0, >- 46,123,0 >+ 155,2,61,0,135,0,9,133,0,8, >+ 133,0,139,0,29,136,0,28,136,0, >+ 141,0,13,138,0,12,138,0,11,138, >+ 0,10,138,0,143,0,7,142,0,5, >+ 142,0,145,0,27,144,0,26,144,0, >+ 25,144,0 > }; > }; > public final static char scopeRhs[] = ScopeRhs.scopeRhs; >@@ -1797,53 +1897,6 @@ > public final static String name[] = Name.name; > public final String name(int index) { return name[index]; } > >- public final static int >- ERROR_SYMBOL = 1, >- SCOPE_UBOUND = 58, >- SCOPE_SIZE = 59, >- MAX_NAME_LENGTH = 26; >- >- public final int getErrorSymbol() { return ERROR_SYMBOL; } >- public final int getScopeUbound() { return SCOPE_UBOUND; } >- public final int getScopeSize() { return SCOPE_SIZE; } >- public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >- >- public final static int >- NUM_STATES = 241, >- NT_OFFSET = 101, >- LA_STATE_OFFSET = 3795, >- MAX_LA = 2, >- NUM_RULES = 328, >- NUM_NONTERMINALS = 109, >- NUM_SYMBOLS = 210, >- SEGMENT_SIZE = 8192, >- START_STATE = 3223, >- IDENTIFIER_SYMBOL = 4, >- EOFT_SYMBOL = 73, >- EOLT_SYMBOL = 73, >- ACCEPT_ACTION = 3466, >- ERROR_ACTION = 3467; >- >- public final static boolean BACKTRACK = true; >- >- public final int getNumStates() { return NUM_STATES; } >- public final int getNtOffset() { return NT_OFFSET; } >- public final int getLaStateOffset() { return LA_STATE_OFFSET; } >- public final int getMaxLa() { return MAX_LA; } >- public final int getNumRules() { return NUM_RULES; } >- public final int getNumNonterminals() { return NUM_NONTERMINALS; } >- public final int getNumSymbols() { return NUM_SYMBOLS; } >- public final int getSegmentSize() { return SEGMENT_SIZE; } >- public final int getStartState() { return START_STATE; } >- public final int getStartSymbol() { return lhs[0]; } >- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } >- public final int getEoftSymbol() { return EOFT_SYMBOL; } >- public final int getEoltSymbol() { return EOLT_SYMBOL; } >- public final int getAcceptAction() { return ACCEPT_ACTION; } >- public final int getErrorAction() { return ERROR_ACTION; } >- public final boolean isValidForParser() { return isValidForParser; } >- public final boolean getBacktrack() { return BACKTRACK; } >- > public final int originalState(int state) { > return -baseCheck[state]; > } >@@ -1857,10 +1910,16 @@ > return inSymb[originalState(state)]; > } > >+ /** >+ * assert(! goto_default); >+ */ > public final int ntAction(int state, int sym) { > return baseAction[state + sym]; > } > >+ /** >+ * assert(! shift_default); >+ */ > public final int tAction(int state, int sym) { > int i = baseAction[state], > k = i + sym; >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexersym.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexersym.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingKWLexersym.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexersym.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexersym.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2007 IBM Corporation and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,26 +10,20 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingKWLexersym.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* > */ > > package org.eclipse.ocl.parser.backtracking; > >-/** >- * The backtracking variant of the OCL keyword lexer symbol table. >- * >- * @noimplement This interface is not intended to be implemented by clients. >- * @noextend This interface is not intended to be extended by clients. >- * >- * @since 1.3 >- */ >-@SuppressWarnings("nls") > public interface OCLBacktrackingKWLexersym { > public final static int > Char_DollarSign = 40, >+ Char_Percent = 41, >+ Char__ = 42, > Char_a = 5, > Char_b = 30, > Char_c = 11, >@@ -55,36 +49,36 @@ > Char_w = 33, > Char_x = 19, > Char_y = 16, >- Char_z = 41, >+ Char_z = 43, > Char_A = 20, > Char_B = 29, > Char_C = 34, >- Char_D = 42, >- Char_E = 43, >- Char_F = 44, >- Char_G = 45, >- Char_H = 46, >+ Char_D = 44, >+ Char_E = 45, >+ Char_F = 46, >+ Char_G = 47, >+ Char_H = 48, > Char_I = 18, >- Char_J = 47, >+ Char_J = 49, > Char_K = 35, >- Char_L = 48, >+ Char_L = 50, > Char_M = 36, > Char_N = 21, > Char_O = 22, >- Char_P = 49, >- Char_Q = 50, >+ Char_P = 51, >+ Char_Q = 52, > Char_R = 37, > Char_S = 23, > Char_T = 24, > Char_U = 25, > Char_V = 38, >- Char_W = 51, >- Char_X = 52, >- Char_Y = 53, >- Char_Z = 54, >+ Char_W = 53, >+ Char_X = 54, >+ Char_Y = 55, >+ Char_Z = 56, > Char_EOF = 39; > >- public final static String orderedTerminalSymbols[] = { >+ public final static String orderedTerminalSymbols[] = { > "", > "e", > "t", >@@ -126,6 +120,8 @@ > "V", > "EOF", > "DollarSign", >+ "Percent", >+ "_", > "z", > "D", > "E", >@@ -142,5 +138,6 @@ > "Z" > }; > >+ public final static int numTokenKinds = orderedTerminalSymbols.length; > public final static boolean isValidForParser = true; > } >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexersym.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexersym.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingLexersym.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexersym.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexersym.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,24 +10,17 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* - Bug 259818 > * Borland - Bug 242880 >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingLexersym.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* $Id$ > */ > > package org.eclipse.ocl.parser.backtracking; > >-/** >- * The backtracking variant of the OCL lexer symbol table. >- * >- * @noimplement This interface is not intended to be implemented by clients. >- * @noextend This interface is not intended to be extended by clients. >- * >- * @since 1.3 >- */ >-@SuppressWarnings("nls") > public interface OCLBacktrackingLexersym { > public final static int > Char_CtlCharNotWS = 103, >@@ -134,7 +127,7 @@ > Char_Equal = 15, > Char_EOF = 99; > >- public final static String orderedTerminalSymbols[] = { >+ public final static String orderedTerminalSymbols[] = { > "", > "0", > "1", >@@ -241,5 +234,6 @@ > "CtlCharNotWS" > }; > >+ public final static int numTokenKinds = orderedTerminalSymbols.length; > public final static boolean isValidForParser = true; > } >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java,v >retrieving revision 1.2 >diff -u -r1.2 OCLBacktrackingKWLexerprs.java >--- src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java 28 Aug 2009 20:43:11 -0000 1.2 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java 1 Sep 2009 17:10:49 -0000 >@@ -1,7 +1,7 @@ > /** > * <copyright> > * >-* Copyright (c) 2005, 2007 IBM Corporation and others. >+* Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -10,15 +10,97 @@ > * Contributors: > * IBM - Initial API and implementation > * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+* Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption > * > * </copyright> > * >-* $Id: OCLBacktrackingKWLexerprs.java,v 1.2 2009/08/28 20:43:11 ewillink Exp $ >+* > */ > > package org.eclipse.ocl.parser.backtracking; > >-public class OCLBacktrackingKWLexerprs implements lpg.lpgjavaruntime.ParseTable, OCLBacktrackingKWLexersym { >+public class OCLBacktrackingKWLexerprs implements lpg.runtime.ParseTable, OCLBacktrackingKWLexersym { >+ public final static int ERROR_SYMBOL = 0; >+ public final int getErrorSymbol() { return ERROR_SYMBOL; } >+ >+ public final static int SCOPE_UBOUND = 0; >+ public final int getScopeUbound() { return SCOPE_UBOUND; } >+ >+ public final static int SCOPE_SIZE = 0; >+ public final int getScopeSize() { return SCOPE_SIZE; } >+ >+ public final static int MAX_NAME_LENGTH = 0; >+ public final int getMaxNameLength() { return MAX_NAME_LENGTH; } >+ >+ public final static int NUM_STATES = 256; >+ public final int getNumStates() { return NUM_STATES; } >+ >+ public final static int NT_OFFSET = 56; >+ public final int getNtOffset() { return NT_OFFSET; } >+ >+ public final static int LA_STATE_OFFSET = 386; >+ public final int getLaStateOffset() { return LA_STATE_OFFSET; } >+ >+ public final static int MAX_LA = 1; >+ public final int getMaxLa() { return MAX_LA; } >+ >+ public final static int NUM_RULES = 63; >+ public final int getNumRules() { return NUM_RULES; } >+ >+ public final static int NUM_NONTERMINALS = 2; >+ public final int getNumNonterminals() { return NUM_NONTERMINALS; } >+ >+ public final static int NUM_SYMBOLS = 58; >+ public final int getNumSymbols() { return NUM_SYMBOLS; } >+ >+ public final static int SEGMENT_SIZE = 8192; >+ public final int getSegmentSize() { return SEGMENT_SIZE; } >+ >+ public final static int START_STATE = 64; >+ public final int getStartState() { return START_STATE; } >+ >+ public final static int IDENTIFIER_SYMBOL = 0; >+ public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; } >+ >+ public final static int EOFT_SYMBOL = 39; >+ public final int getEoftSymbol() { return EOFT_SYMBOL; } >+ >+ public final static int EOLT_SYMBOL = 57; >+ public final int getEoltSymbol() { return EOLT_SYMBOL; } >+ >+ public final static int ACCEPT_ACTION = 322; >+ public final int getAcceptAction() { return ACCEPT_ACTION; } >+ >+ public final static int ERROR_ACTION = 323; >+ public final int getErrorAction() { return ERROR_ACTION; } >+ >+ public final static boolean BACKTRACK = false; >+ public final boolean getBacktrack() { return BACKTRACK; } >+ >+ public final int getStartSymbol() { return lhs(0); } >+ public final boolean isValidForParser() { return OCLBacktrackingKWLexersym.isValidForParser; } >+ >+ >+ public interface IsNullable { >+ public final static byte isNullable[] = {0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0,0,0, >+ 0,0,0,0,0,0,0,0 >+ }; >+ }; >+ public final static byte isNullable[] = IsNullable.isNullable; >+ public final boolean isNullable(int index) { return isNullable[index] != 0; } >+ >+ public interface ProsthesesIndex { >+ public final static byte prosthesesIndex[] = {0, >+ 2,1 >+ }; >+ }; >+ public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex; >+ public final int prosthesesIndex(int index) { return prosthesesIndex[index]; } > > public interface IsKeyword { > public final static byte isKeyword[] = {0, >@@ -27,7 +109,7 @@ > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, >- 0,0,0,0 >+ 0,0,0,0,0,0 > }; > }; > public final static byte isKeyword[] = IsKeyword.isKeyword; >@@ -156,7 +238,7 @@ > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0, >- 0,0,0,0,0 >+ 0,0,0,0,0,0,0 > }; > }; > public final static byte termCheck[] = TermCheck.termCheck; >@@ -242,56 +324,21 @@ > public final int scopeState(int index) { return 0;} > public final int inSymb(int index) { return 0;} > public final String name(int index) { return null; } >- public final int getErrorSymbol() { return 0; } >- public final int getScopeUbound() { return 0; } >- public final int getScopeSize() { return 0; } >- public final int getMaxNameLength() { return 0; } >- >- public final static int >- NUM_STATES = 256, >- NT_OFFSET = 54, >- LA_STATE_OFFSET = 386, >- MAX_LA = 1, >- NUM_RULES = 63, >- NUM_NONTERMINALS = 2, >- NUM_SYMBOLS = 56, >- SEGMENT_SIZE = 8192, >- START_STATE = 64, >- IDENTIFIER_SYMBOL = 0, >- EOFT_SYMBOL = 39, >- EOLT_SYMBOL = 55, >- ACCEPT_ACTION = 322, >- ERROR_ACTION = 323; >- >- public final static boolean BACKTRACK = false; >- >- public final int getNumStates() { return NUM_STATES; } >- public final int getNtOffset() { return NT_OFFSET; } >- public final int getLaStateOffset() { return LA_STATE_OFFSET; } >- public final int getMaxLa() { return MAX_LA; } >- public final int getNumRules() { return NUM_RULES; } >- public final int getNumNonterminals() { return NUM_NONTERMINALS; } >- public final int getNumSymbols() { return NUM_SYMBOLS; } >- public final int getSegmentSize() { return SEGMENT_SIZE; } >- public final int getStartState() { return START_STATE; } >- public final int getStartSymbol() { return lhs[0]; } >- public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } >- public final int getEoftSymbol() { return EOFT_SYMBOL; } >- public final int getEoltSymbol() { return EOLT_SYMBOL; } >- public final int getAcceptAction() { return ACCEPT_ACTION; } >- public final int getErrorAction() { return ERROR_ACTION; } >- public final boolean isValidForParser() { return isValidForParser; } >- public final boolean getBacktrack() { return BACKTRACK; } >- > public final int originalState(int state) { return 0; } > public final int asi(int state) { return 0; } > public final int nasi(int state) { return 0; } > public final int inSymbol(int state) { return 0; } > >+ /** >+ * assert(! goto_default); >+ */ > public final int ntAction(int state, int sym) { > return baseAction[state + sym]; > } > >+ /** >+ * assert(! shift_default); >+ */ > public final int tAction(int state, int sym) { > int i = baseAction[state], > k = i + sym; >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/META-INF/MANIFEST.MF,v >retrieving revision 1.14 >diff -u -r1.14 MANIFEST.MF >--- META-INF/MANIFEST.MF 25 Aug 2009 20:30:37 -0000 1.14 >+++ META-INF/MANIFEST.MF 1 Sep 2009 17:10:40 -0000 >@@ -32,7 +32,7 @@ > Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", > org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport, > org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)";visibility:=reexport, >- net.sourceforge.lpg.lpgjavaruntime;version="[1.0.0,1.2.0)";visibility:=reexport >+ lpg.runtime;bundle-version="2.0.17";visibility:=reexport > Bundle-Activator: org.eclipse.ocl.internal.OCLPlugin$Implementation > Eclipse-LazyStart: true > Bundle-ActivationPolicy: lazy >Index: src/org/eclipse/ocl/util/TypeUtil.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/util/TypeUtil.java,v >retrieving revision 1.17 >diff -u -r1.17 TypeUtil.java >--- src/org/eclipse/ocl/util/TypeUtil.java 25 Jun 2009 19:23:52 -0000 1.17 >+++ src/org/eclipse/ocl/util/TypeUtil.java 1 Sep 2009 17:10:53 -0000 >@@ -12,7 +12,7 @@ > * E.D.Willink - Refactoring to support extensibility and flexible error handling > * Zeligsoft - Bugs 244886, 245619, 233673, 179990, 242236 > * Stefan Schulze - Bug 245619 >- * Adolfo Sánchez-Barbudo Herrera - Bug 233673 >+ * Adolfo S�nchez-Barbudo Herrera - Bug 233673 > * > * </copyright> > * >@@ -33,6 +33,7 @@ > import org.eclipse.ocl.SemanticException; > import org.eclipse.ocl.TypeChecker; > import org.eclipse.ocl.expressions.CollectionKind; >+import org.eclipse.ocl.expressions.OCLExpression; > import org.eclipse.ocl.expressions.Variable; > import org.eclipse.ocl.internal.OCLPlugin; > import org.eclipse.ocl.internal.l10n.OCLMessages; >Index: src/org/eclipse/ocl/internal/helper/OCLSyntaxHelper.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/internal/helper/OCLSyntaxHelper.java,v >retrieving revision 1.14 >diff -u -r1.14 OCLSyntaxHelper.java >--- src/org/eclipse/ocl/internal/helper/OCLSyntaxHelper.java 25 Jun 2009 19:23:52 -0000 1.14 >+++ src/org/eclipse/ocl/internal/helper/OCLSyntaxHelper.java 1 Sep 2009 17:10:47 -0000 >@@ -28,7 +28,8 @@ > import java.util.ListIterator; > import java.util.Set; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IPrsStream; >+import lpg.runtime.IToken; > > import org.eclipse.emf.ecore.EObject; > import org.eclipse.emf.ecore.util.EcoreUtil; >@@ -69,7 +70,6 @@ > import org.eclipse.ocl.helper.Choice; > import org.eclipse.ocl.helper.ChoiceKind; > import org.eclipse.ocl.helper.ConstraintKind; >-import org.eclipse.ocl.lpg.AbstractParser; > import org.eclipse.ocl.lpg.ProblemHandler; > import org.eclipse.ocl.parser.AbstractOCLAnalyzer; > import org.eclipse.ocl.parser.OCLAnalyzer; >@@ -865,7 +865,7 @@ > private List<IToken> tokenize(OCLAnalyzer<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> analyzer) { > IToken token = null; > List<IToken> result = new ArrayList<IToken>(); >- AbstractParser parser = analyzer.getAbstractParser(); >+ IPrsStream parser = analyzer.getAbstractParser().getIPrsStream(); > for (;;) { > try { > token = parser.getIToken(parser.getToken()); >@@ -949,7 +949,7 @@ > OCLAnalyzer<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> analyzer = > new OCLAnalyzer<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E>( > environment, txt); >- AbstractParser parser = analyzer.getAbstractParser(); >+ IPrsStream parser = analyzer.getAbstractParser().getIPrsStream(); > List<IToken> tokens = tokenize(analyzer); > > ListIterator<IToken> iter = tokens.listIterator(tokens.size()); >@@ -1100,7 +1100,7 @@ > private List<String> parseTokensPathNameCS( > OCLAnalyzer<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> analyzer, > List<IToken> tokens) { >- AbstractParser parser = analyzer.getAbstractParser(); >+ IPrsStream parser = analyzer.getAbstractParser().getIPrsStream(); > ArrayList<String> path = new ArrayList<String>(); > IToken token; > int index = tokens.size() - 1; >@@ -1145,7 +1145,7 @@ > // right-most subexpression that parses > > // initialize the token list >- analyzer.getLexer().reset(); >+ analyzer.getLexer().getILexStream().reset(); > List<IToken> tokens = tokenize(analyzer); > > ListIterator<IToken> it = tokens.listIterator(tokens.size()); >@@ -1350,7 +1350,7 @@ > env, variables); > > if (!parseVariableDeclaration(env, mainAnalyzer)) { >- AbstractParser parser = mainAnalyzer.getAbstractParser(); >+ IPrsStream parser = mainAnalyzer.getAbstractParser().getIPrsStream(); > parser.reset(); > OCLAnalyzer<PK, C, O, P, EL, PM, S, COA, SSA, CT, CLS, E> analyzer; > String newTxt; >Index: src/org/eclipse/ocl/cst/util/CSTSwitch.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/util/CSTSwitch.java,v >retrieving revision 1.5 >diff -u -r1.5 CSTSwitch.java >--- src/org/eclipse/ocl/cst/util/CSTSwitch.java 2 Dec 2008 11:58:50 -0000 1.5 >+++ src/org/eclipse/ocl/cst/util/CSTSwitch.java 1 Sep 2009 17:10:44 -0000 >@@ -21,8 +21,6 @@ > > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.cst.*; > import org.eclipse.ocl.cst.BooleanLiteralExpCS; > import org.eclipse.ocl.cst.CSTNode; > import org.eclipse.ocl.cst.CSTPackage; >Index: src/org/eclipse/ocl/cst/util/CSTAdapterFactory.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/cst/util/CSTAdapterFactory.java,v >retrieving revision 1.6 >diff -u -r1.6 CSTAdapterFactory.java >--- src/org/eclipse/ocl/cst/util/CSTAdapterFactory.java 2 Dec 2008 11:58:50 -0000 1.6 >+++ src/org/eclipse/ocl/cst/util/CSTAdapterFactory.java 1 Sep 2009 17:10:44 -0000 >@@ -21,8 +21,6 @@ > import org.eclipse.emf.common.notify.Notifier; > import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.cst.*; > import org.eclipse.ocl.cst.BooleanLiteralExpCS; > import org.eclipse.ocl.cst.CSTNode; > import org.eclipse.ocl.cst.CSTPackage; >Index: src/org/eclipse/ocl/types/TupleType.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/TupleType.java,v >retrieving revision 1.7 >diff -u -r1.7 TupleType.java >--- src/org/eclipse/ocl/types/TupleType.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/types/TupleType.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > import org.eclipse.ocl.utilities.PredefinedType; >Index: src/org/eclipse/ocl/types/MessageType.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/MessageType.java,v >retrieving revision 1.7 >diff -u -r1.7 MessageType.java >--- src/org/eclipse/ocl/types/MessageType.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/types/MessageType.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > import org.eclipse.ocl.utilities.PredefinedType; >Index: src/org/eclipse/ocl/types/CollectionType.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/CollectionType.java,v >retrieving revision 1.7 >diff -u -r1.7 CollectionType.java >--- src/org/eclipse/ocl/types/CollectionType.java 30 Nov 2008 22:11:38 -0000 1.7 >+++ src/org/eclipse/ocl/types/CollectionType.java 1 Sep 2009 17:10:51 -0000 >@@ -18,6 +18,7 @@ > package org.eclipse.ocl.types; > > import java.util.Map; >+ > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.EList; > import org.eclipse.ocl.expressions.CollectionKind; >Index: .settings/.api_filters >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/.settings/.api_filters,v >retrieving revision 1.6 >diff -u -r1.6 .api_filters >--- .settings/.api_filters 28 Aug 2009 20:43:11 -0000 1.6 >+++ .settings/.api_filters 1 Sep 2009 17:10:40 -0000 >@@ -1,8 +1,207 @@ > <?xml version="1.0" encoding="UTF-8" standalone="no"?> > <component id="org.eclipse.ocl" version="2"> >+ <resource path="src/org/eclipse/ocl/parser/OCLKWLexerprs.java" type="org.eclipse.ocl.parser.OCLKWLexerprs"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="MAX_NAME_LENGTH"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_SIZE"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_UBOUND"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getIdentifier_SYMBOL()"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ERROR_SYMBOL"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex(int)"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLKWLexerprs.java" type="org.eclipse.ocl.parser.OCLKWLexerprs$IsNullable"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="IsNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLKWLexerprs.java" type="org.eclipse.ocl.parser.OCLKWLexerprs$ProsthesesIndex"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ProsthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLKWLexersym.java" type="org.eclipse.ocl.parser.OCLKWLexersym"> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="Char__"/> >+ </message_arguments> >+ </filter> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="numTokenKinds"/> >+ </message_arguments> >+ </filter> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="Char_Percent"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLLexerprs.java" type="org.eclipse.ocl.parser.OCLLexerprs"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_UBOUND"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="MAX_NAME_LENGTH"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getIdentifier_SYMBOL()"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_SIZE"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ERROR_SYMBOL"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLLexerprs.java" type="org.eclipse.ocl.parser.OCLLexerprs$IsNullable"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="IsNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLLexerprs.java" type="org.eclipse.ocl.parser.OCLLexerprs$ProsthesesIndex"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ProsthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLLexersym.java" type="org.eclipse.ocl.parser.OCLLexersym"> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="numTokenKinds"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLParser.java" type="org.eclipse.ocl.parser.OCLParser"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getParser()"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLParserprs.java" type="org.eclipse.ocl.parser.OCLParserprs"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getIdentifier_SYMBOL()"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLParserprs.java" type="org.eclipse.ocl.parser.OCLParserprs$IsNullable"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="IsNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/OCLParserprs.java" type="org.eclipse.ocl.parser.OCLParserprs$ProsthesesIndex"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ProsthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> > <resource path="src/org/eclipse/ocl/parser/OCLParsersym.java" type="org.eclipse.ocl.parser.OCLParsersym"> > <filter id="1211105284"> > <message_arguments> >+ <message_argument value="numTokenKinds"/> >+ </message_arguments> >+ </filter> >+ <filter id="1211105284"> >+ <message_arguments> > <message_argument value="TK_MULTI_LINE_COMMENT"/> > </message_arguments> > </filter> >@@ -12,6 +211,200 @@ > </message_arguments> > </filter> > </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingKWLexerprs"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="MAX_NAME_LENGTH"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ERROR_SYMBOL"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getIdentifier_SYMBOL()"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_SIZE"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_UBOUND"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable(int)"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingKWLexerprs$IsNullable"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="IsNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexerprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingKWLexerprs$ProsthesesIndex"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ProsthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexersym.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingKWLexersym"> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="Char__"/> >+ </message_arguments> >+ </filter> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="Char_Percent"/> >+ </message_arguments> >+ </filter> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="numTokenKinds"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingLexerprs"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getIdentifier_SYMBOL()"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="MAX_NAME_LENGTH"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ERROR_SYMBOL"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_SIZE"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="SCOPE_UBOUND"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex(int)"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingLexerprs$IsNullable"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="IsNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexerprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingLexerprs$ProsthesesIndex"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ProsthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexersym.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingLexersym"> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="numTokenKinds"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParser.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingParser"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getParser()"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingParserprs"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="prosthesesIndex"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="getIdentifier_SYMBOL()"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable(int)"/> >+ </message_arguments> >+ </filter> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="isNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingParserprs$IsNullable"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="IsNullable"/> >+ </message_arguments> >+ </filter> >+ </resource> >+ <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParserprs.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingParserprs$ProsthesesIndex"> >+ <filter id="1143996420"> >+ <message_arguments> >+ <message_argument value="ProsthesesIndex"/> >+ </message_arguments> >+ </filter> >+ </resource> > <resource path="src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingParsersym.java" type="org.eclipse.ocl.parser.backtracking.OCLBacktrackingParsersym"> > <filter id="1211105284"> > <message_arguments> >@@ -23,5 +416,10 @@ > <message_argument value="TK_SINGLE_LINE_COMMENT"/> > </message_arguments> > </filter> >+ <filter id="1211105284"> >+ <message_arguments> >+ <message_argument value="numTokenKinds"/> >+ </message_arguments> >+ </filter> > </resource> > </component> >Index: src/org/eclipse/ocl/utilities/util/UtilitiesSwitch.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/utilities/util/UtilitiesSwitch.java,v >retrieving revision 1.8 >diff -u -r1.8 UtilitiesSwitch.java >--- src/org/eclipse/ocl/utilities/util/UtilitiesSwitch.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/utilities/util/UtilitiesSwitch.java 1 Sep 2009 17:10:53 -0000 >@@ -19,8 +19,6 @@ > > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.utilities.*; > import org.eclipse.ocl.utilities.ASTNode; > import org.eclipse.ocl.utilities.CallingASTNode; > import org.eclipse.ocl.utilities.ExpressionInOCL; >Index: src/org/eclipse/ocl/utilities/util/UtilitiesAdapterFactory.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/utilities/util/UtilitiesAdapterFactory.java,v >retrieving revision 1.8 >diff -u -r1.8 UtilitiesAdapterFactory.java >--- src/org/eclipse/ocl/utilities/util/UtilitiesAdapterFactory.java 23 Jan 2009 17:16:04 -0000 1.8 >+++ src/org/eclipse/ocl/utilities/util/UtilitiesAdapterFactory.java 1 Sep 2009 17:10:53 -0000 >@@ -19,8 +19,6 @@ > import org.eclipse.emf.common.notify.Notifier; > import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.utilities.*; > import org.eclipse.ocl.utilities.ASTNode; > import org.eclipse.ocl.utilities.CallingASTNode; > import org.eclipse.ocl.utilities.ExpressionInOCL; >Index: src/org/eclipse/ocl/utilities/impl/UtilitiesFactoryImpl.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/utilities/impl/UtilitiesFactoryImpl.java,v >retrieving revision 1.6 >diff -u -r1.6 UtilitiesFactoryImpl.java >--- src/org/eclipse/ocl/utilities/impl/UtilitiesFactoryImpl.java 23 Jan 2009 17:16:04 -0000 1.6 >+++ src/org/eclipse/ocl/utilities/impl/UtilitiesFactoryImpl.java 1 Sep 2009 17:10:53 -0000 >@@ -20,8 +20,6 @@ > import org.eclipse.emf.ecore.EPackage; > import org.eclipse.emf.ecore.impl.EFactoryImpl; > import org.eclipse.emf.ecore.plugin.EcorePlugin; >- >-//import org.eclipse.ocl.utilities.*; > import org.eclipse.ocl.utilities.UtilitiesFactory; > import org.eclipse.ocl.utilities.UtilitiesPackage; > >Index: src/org/eclipse/ocl/types/util/TypesSwitch.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/util/TypesSwitch.java,v >retrieving revision 1.6 >diff -u -r1.6 TypesSwitch.java >--- src/org/eclipse/ocl/types/util/TypesSwitch.java 12 Oct 2008 01:09:50 -0000 1.6 >+++ src/org/eclipse/ocl/types/util/TypesSwitch.java 1 Sep 2009 17:10:52 -0000 >@@ -20,8 +20,6 @@ > //import java.util.List; > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.types.*; > import org.eclipse.ocl.types.AnyType; > import org.eclipse.ocl.types.BagType; > import org.eclipse.ocl.types.CollectionType; >Index: src/org/eclipse/ocl/types/util/TypesValidator.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/util/TypesValidator.java,v >retrieving revision 1.3 >diff -u -r1.3 TypesValidator.java >--- src/org/eclipse/ocl/types/util/TypesValidator.java 24 Nov 2008 00:22:24 -0000 1.3 >+++ src/org/eclipse/ocl/types/util/TypesValidator.java 1 Sep 2009 17:10:52 -0000 >@@ -19,14 +19,11 @@ > > import java.util.Map; > >-//import org.eclipse.emf.common.util.Diagnostic; > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.ResourceLocator; > import org.eclipse.emf.ecore.EPackage; > import org.eclipse.emf.ecore.util.EObjectValidator; > import org.eclipse.ocl.internal.OCLPlugin; >- >-//import org.eclipse.ocl.types.*; > import org.eclipse.ocl.types.AnyType; > import org.eclipse.ocl.types.BagType; > import org.eclipse.ocl.types.CollectionType; >Index: src/org/eclipse/ocl/types/util/TypesAdapterFactory.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/types/util/TypesAdapterFactory.java,v >retrieving revision 1.7 >diff -u -r1.7 TypesAdapterFactory.java >--- src/org/eclipse/ocl/types/util/TypesAdapterFactory.java 12 Oct 2008 01:09:50 -0000 1.7 >+++ src/org/eclipse/ocl/types/util/TypesAdapterFactory.java 1 Sep 2009 17:10:52 -0000 >@@ -21,8 +21,6 @@ > import org.eclipse.emf.common.notify.Notifier; > import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.types.*; > import org.eclipse.ocl.types.AnyType; > import org.eclipse.ocl.types.BagType; > import org.eclipse.ocl.types.CollectionType; >Index: src/org/eclipse/ocl/expressions/util/ExpressionsValidator.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/util/ExpressionsValidator.java,v >retrieving revision 1.2 >diff -u -r1.2 ExpressionsValidator.java >--- src/org/eclipse/ocl/expressions/util/ExpressionsValidator.java 12 Oct 2008 01:09:50 -0000 1.2 >+++ src/org/eclipse/ocl/expressions/util/ExpressionsValidator.java 1 Sep 2009 17:10:47 -0000 >@@ -21,12 +21,45 @@ > > import org.eclipse.emf.common.util.DiagnosticChain; > import org.eclipse.emf.common.util.ResourceLocator; >- > import org.eclipse.emf.ecore.EPackage; >- > import org.eclipse.emf.ecore.util.EObjectValidator; >- >-import org.eclipse.ocl.expressions.*; >+import org.eclipse.ocl.expressions.AssociationClassCallExp; >+import org.eclipse.ocl.expressions.BooleanLiteralExp; >+import org.eclipse.ocl.expressions.CallExp; >+import org.eclipse.ocl.expressions.CollectionItem; >+import org.eclipse.ocl.expressions.CollectionKind; >+import org.eclipse.ocl.expressions.CollectionLiteralExp; >+import org.eclipse.ocl.expressions.CollectionLiteralPart; >+import org.eclipse.ocl.expressions.CollectionRange; >+import org.eclipse.ocl.expressions.EnumLiteralExp; >+import org.eclipse.ocl.expressions.ExpressionsPackage; >+import org.eclipse.ocl.expressions.FeatureCallExp; >+import org.eclipse.ocl.expressions.IfExp; >+import org.eclipse.ocl.expressions.IntegerLiteralExp; >+import org.eclipse.ocl.expressions.InvalidLiteralExp; >+import org.eclipse.ocl.expressions.IterateExp; >+import org.eclipse.ocl.expressions.IteratorExp; >+import org.eclipse.ocl.expressions.LetExp; >+import org.eclipse.ocl.expressions.LiteralExp; >+import org.eclipse.ocl.expressions.LoopExp; >+import org.eclipse.ocl.expressions.MessageExp; >+import org.eclipse.ocl.expressions.NavigationCallExp; >+import org.eclipse.ocl.expressions.NullLiteralExp; >+import org.eclipse.ocl.expressions.NumericLiteralExp; >+import org.eclipse.ocl.expressions.OCLExpression; >+import org.eclipse.ocl.expressions.OperationCallExp; >+import org.eclipse.ocl.expressions.PrimitiveLiteralExp; >+import org.eclipse.ocl.expressions.PropertyCallExp; >+import org.eclipse.ocl.expressions.RealLiteralExp; >+import org.eclipse.ocl.expressions.StateExp; >+import org.eclipse.ocl.expressions.StringLiteralExp; >+import org.eclipse.ocl.expressions.TupleLiteralExp; >+import org.eclipse.ocl.expressions.TupleLiteralPart; >+import org.eclipse.ocl.expressions.TypeExp; >+import org.eclipse.ocl.expressions.UnlimitedNaturalLiteralExp; >+import org.eclipse.ocl.expressions.UnspecifiedValueExp; >+import org.eclipse.ocl.expressions.Variable; >+import org.eclipse.ocl.expressions.VariableExp; > import org.eclipse.ocl.internal.OCLPlugin; > > /** >Index: src/org/eclipse/ocl/expressions/util/ExpressionsSwitch.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/util/ExpressionsSwitch.java,v >retrieving revision 1.7 >diff -u -r1.7 ExpressionsSwitch.java >--- src/org/eclipse/ocl/expressions/util/ExpressionsSwitch.java 12 Oct 2008 01:09:50 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/util/ExpressionsSwitch.java 1 Sep 2009 17:10:46 -0000 >@@ -21,8 +21,6 @@ > > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.expressions.*; > import org.eclipse.ocl.expressions.AssociationClassCallExp; > import org.eclipse.ocl.expressions.BooleanLiteralExp; > import org.eclipse.ocl.expressions.CallExp; >Index: src/org/eclipse/ocl/expressions/util/ExpressionsAdapterFactory.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/plugins/org.eclipse.ocl/src/org/eclipse/ocl/expressions/util/ExpressionsAdapterFactory.java,v >retrieving revision 1.7 >diff -u -r1.7 ExpressionsAdapterFactory.java >--- src/org/eclipse/ocl/expressions/util/ExpressionsAdapterFactory.java 12 Oct 2008 01:09:50 -0000 1.7 >+++ src/org/eclipse/ocl/expressions/util/ExpressionsAdapterFactory.java 1 Sep 2009 17:10:46 -0000 >@@ -21,8 +21,6 @@ > import org.eclipse.emf.common.notify.Notifier; > import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; > import org.eclipse.emf.ecore.EObject; >- >-//import org.eclipse.ocl.expressions.*; > import org.eclipse.ocl.expressions.AssociationClassCallExp; > import org.eclipse.ocl.expressions.BooleanLiteralExp; > import org.eclipse.ocl.expressions.CallExp; >Index: src/org/eclipse/ocl/lpg/KeywordTemplateF.gi >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/KeywordTemplateF.gi >diff -N src/org/eclipse/ocl/lpg/KeywordTemplateF.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/KeywordTemplateF.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,119 @@ >+-- >+-- An LPG Lexer Template Using lpg.jar >+-- >+-- An instance of this template must have a $Export section and the export_terminals option >+-- There must be only one non-terminal, the start symbol, for the keywords >+-- The action for each keyword should be a call to $setResult(terminal_symbol) >+-- >+-- Macro that may be redefined in an instance of this template >+-- >+-- $eof_char >+-- >+-- B E G I N N I N G O F T E M P L A T E KeywordTemplateF (Similar to KeywordTemplateD) >+-- >+%Options Programming_Language=java,margin=4 >+%Options table >+%options action-block=("*.java", "/.", "./") >+%options ParseTable=lpg.runtime.ParseTable >+%Options prefix=Char_ >+%Options single-productions >+ >+-- >+-- This template requires that the name of the EOF token be set >+-- to EOF and that the prefix be "Char_" to be consistent with >+-- LexerTemplateD. >+-- >+%Eof >+ EOF >+%End >+ >+%Define >+ -- >+ -- Macro that may be respecified in an instance of this template >+ -- >+ $eof_char /.$sym_type$.$prefix$EOF$suffix$./ >+ >+ -- >+ -- Macros useful for specifying actions >+ -- >+ $setResult /.keywordKind[$rule_number] = ./ >+ >+ $Header >+ /. >+ // >+ // Rule $rule_number: $rule_text >+ // >+ ./ >+ >+ $BeginAction /.$Header./ >+ >+ $EndAction /../ >+ >+ $BeginJava /.$BeginAction./ >+ >+ $EndJava /.$EndAction./ >+%End >+ >+%Headers >+ /. >+ public class $action_type extends $prs_type >+ { >+ private char[] inputChars; >+ private final int keywordKind[] = new int[$num_rules + 1]; >+ >+ public int[] getKeywordKinds() { return keywordKind; } >+ >+ public int lexer(int curtok, int lasttok) >+ { >+ int current_kind = getKind(inputChars[curtok]), >+ act; >+ >+ for (act = tAction(START_STATE, current_kind); >+ act > NUM_RULES && act < ACCEPT_ACTION; >+ act = tAction(act, current_kind)) >+ { >+ curtok++; >+ current_kind = (curtok > lasttok >+ ? $eof_char >+ : getKind(inputChars[curtok])); >+ } >+ >+ if (act > ERROR_ACTION) >+ { >+ curtok++; >+ act -= ERROR_ACTION; >+ } >+ >+ return keywordKind[act == ERROR_ACTION || curtok <= lasttok ? 0 : act]; >+ } >+ >+ public void setInputChars(char[] inputChars) { this.inputChars = inputChars; } >+ >+ ./ >+%End >+ >+%Rules >+ /. >+ >+ public $action_type(char[] inputChars, int identifierKind) >+ { >+ this.inputChars = inputChars; >+ keywordKind[0] = identifierKind; >+ ./ >+%End >+ >+%Trailers >+ /. >+ for (int i = 0; i < keywordKind.length; i++) >+ { >+ if (keywordKind[i] == 0) >+ keywordKind[i] = identifierKind; >+ } >+ } >+ } >+ ./ >+%End >+ >+-- >+-- E N D O F T E M P L A T E >+-- >Index: src/org/eclipse/ocl/parser/backtracking/OCLParserErrors.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/backtracking/OCLParserErrors.gi >diff -N src/org/eclipse/ocl/parser/backtracking/OCLParserErrors.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/backtracking/OCLParserErrors.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,205 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2008 Eclipse.org, Open Canarias S.L. and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * E.D. Willink - Initial API and implementation >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: OCLParserErrors.g,v 1.1 2009/01/13 20:31:30 cdamus Exp $ >+-- */ >+-- >+-- Additional ERROR_TOKEN rules for The OCL Parser >+-- >+ >+%Import >+ OCLParser.g >+%End >+ >+%Import >+ EssentialOCLErrors.gi >+%End >+ >+%Rules >+ >+ classifierContextDeclCS ::= context pathNameCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(3), OCLParserErrors.MISSING_INV_OR_DEF); >+ CSTNode result = createClassifierContextDeclCS( >+ (PathNameCS)$getSym(2), >+ new BasicEList<InvOrDefCS>() >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ defExpressionCS ::= typedVariableCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(2), OCLParserErrors.MISSING_EQUALS); >+ VariableCS variableCS = (VariableCS)$getSym(1); >+ CSTNode result = createDefExpressionCS( >+ variableCS, >+ null, >+ null >+ ); >+ setOffsets(result, variableCS, getIToken($getToken(2))); >+ $setResult(result); >+ $EndCode >+ ./ >+ defExpressionCS ::= IDENTIFIER ERROR_Colon >+ /.$BeginCode >+ VariableCS variableCS = createVariableCS( >+ getTokenText($getToken(1)), >+ null, >+ null >+ ); >+ setOffsets(variableCS, getIToken($getToken(1)), getIToken($getToken(2))); >+ CSTNode result = createDefExpressionCS( >+ variableCS, >+ null, >+ null >+ ); >+ setOffsets(result, variableCS, getIToken($getToken(2))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ initOrDerValueCS ::= initOrDerValueCSopt init ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createInitValueCS( >+ (InitOrDerValueCS)$getSym(1), >+ null >+ ); >+ if ($getSym(1) != null) { >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(3))); >+ } else { >+ setOffsets(result, getIToken($getToken(2)), getIToken($getToken(3))); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ initOrDerValueCS ::= initOrDerValueCSopt derive ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createDerValueCS( >+ (InitOrDerValueCS)$getSym(1), >+ null >+ ); >+ if ($getSym(1) != null) { >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(3))); >+ } else { >+ setOffsets(result, getIToken($getToken(2)), getIToken($getToken(3))); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ invOrDefCS ::= inv simpleNameCS ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createInvCS( >+ (SimpleNameCS)$getSym(2), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ invOrDefCS ::= def simpleNameCS ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createDefCS( >+ (SimpleNameCS)$getSym(2), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ packageDeclarationCS ::= package pathNameCS contextDeclCSmopt ERROR_Empty endpackage >+ /.$BeginCode >+ CSTNode result = createPackageDeclarationCS( >+ (PathNameCS)$getSym(2), >+ (EList)$getSym(3) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ packageDeclarationCS ::= package pathNameCS contextDeclCSmopt ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(4), OCLParserErrors.MISSING_ENDPACKAGE); >+ CSTNode result = createPackageDeclarationCS( >+ (PathNameCS)$getSym(2), >+ (EList)$getSym(3) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ packageDeclarationCS ::= package ERROR_PathNameCS >+ /.$BeginCode >+ CSTNode result = createPackageDeclarationCS( >+ (PathNameCS)$getSym(2), >+ new BasicEList() >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(2))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ prePostOrBodyDeclCS ::= pre simpleNameCS ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createPrePostOrBodyDeclCS( >+ PrePostOrBodyEnum.PRE_LITERAL, >+ (SimpleNameCS)$getSym(2), >+ createInvalidLiteralExpCS(getTokenText($getToken(3))) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ prePostOrBodyDeclCS ::= post simpleNameCS ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createPrePostOrBodyDeclCS( >+ PrePostOrBodyEnum.POST_LITERAL, >+ (SimpleNameCS)$getSym(2), >+ createInvalidLiteralExpCS(getTokenText($getToken(3))) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ prePostOrBodyDeclCS ::= body simpleNameCS ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createPrePostOrBodyDeclCS( >+ PrePostOrBodyEnum.BODY_LITERAL, >+ (SimpleNameCS)$getSym(2), >+ createInvalidLiteralExpCS(getTokenText($getToken(3))) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ propertyContextCS ::= context pathNameCS '::' ERROR_SimpleNameCS >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(4); >+ CSTNode result = createPropertyContextCS( >+ (PathNameCS)$getSym(2), >+ simpleNameCS, >+ null, >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), simpleNameCS); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+%End >Index: src/org/eclipse/ocl/parser/OCLKWLexer.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/OCLKWLexer.gi >diff -N src/org/eclipse/ocl/parser/OCLKWLexer.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/OCLKWLexer.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,548 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2005, 2009 IBM Corporation Zeligsoft Inc, Open Canarias S.L., and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * IBM - Initial API and implementation >+-- * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: OCLKWLexer.g,v 1.1 2007/10/11 23:05:00 cdamus Exp $ >+-- */ >+-- >+-- The OCL KeyWord Lexer >+-- >+ >+%Options slr >+%Options fp=OCLKWLexer,prefix=Char_ >+%options noserialize >+%options package=org.eclipse.ocl.parser >+%options template=../lpg/KeywordTemplateF.gi >+%options export_terminals=("OCLParsersym.java", "TK_") >+%options include_directory="../lpg" >+ >+%Define >+ >+ -- >+ -- Definition of macros used in the template >+ -- >+ $action_class /.$file_prefix./ >+ $eof_char /.Char_EOF./ >+ $copyright_contributions /.*./ >+ >+%End >+ >+%Notice >+ /./** >+ * <copyright> >+ * >+ * Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc, Open Canarias S.L., and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM - Initial API and implementation >+ * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+ * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+$copyright_contributions >+ * </copyright> >+ * >+ * >+ */ >+ ./ >+%End >+ >+%Globals >+ /../ >+%End >+ >+%Import >+ KWLexerMapF.gi >+%End >+ >+%Export >+ self >+ inv >+ pre >+ post >+ context >+ package >+ endpackage >+ def >+ if >+ then >+ else >+ endif >+ and >+ or >+ xor >+ not >+ implies >+ let >+ in >+ true >+ false >+ >+ -- >+ -- the following appear to have been omitted from the list of >+ -- OCL reserved words in Section 7.4.9. They will be treated >+ -- as unreserved for compliance >+ -- >+ body >+ derive >+ init >+ null >+-- return -- don't need a keyword for LPG purposes >+ >+ -- >+ -- the following are not used in the OCL concrete syntax, but >+ -- are defined as reserved words in the Spec 7.4.9 >+ -- >+ attr >+ oper >+ >+ -- >+ -- the remainder of the LPG keywords are defined as such for the >+ -- purpose of constructing the CST grammar. They are not OCL >+ -- reserved words >+ -- >+ Set >+ Bag >+ Sequence >+ Collection >+ OrderedSet >+ >+ iterate >+ forAll >+ exists >+ isUnique >+ any >+ one >+ >+ collect >+ select >+ reject >+ collectNested >+ sortedBy >+ >+ closure >+ >+ oclIsKindOf >+ oclIsTypeOf >+ oclAsType >+ oclIsNew >+ oclIsUndefined >+ oclIsInvalid >+ oclIsInState >+ allInstances >+ >+ String >+ Integer >+ UnlimitedNatural >+ Real >+ Boolean >+ Tuple >+ OclAny >+ OclVoid >+ Invalid >+ OclMessage >+ >+ OclInvalid >+%End >+ >+%Start >+ KeyWord >+%End >+ >+%Rules >+ >+-- The Goal for the parser is a single Keyword >+ >+ KeyWord ::= >+ s e l f >+ /.$BeginAction >+ $setResult($_self); >+ $EndAction >+ ./ >+ >+ | i n v >+ /.$BeginAction >+ $setResult($_inv); >+ $EndAction >+ ./ >+ >+ | p r e >+ /.$BeginAction >+ $setResult($_pre); >+ $EndAction >+ ./ >+ >+ | p o s t >+ /.$BeginAction >+ $setResult($_post); >+ $EndAction >+ ./ >+ >+ | b o d y >+ /.$BeginAction >+ $setResult($_body); >+ $EndAction >+ ./ >+ >+ | c o n t e x t >+ /.$BeginAction >+ $setResult($_context); >+ $EndAction >+ ./ >+ >+ | p a c k a g e >+ /.$BeginAction >+ $setResult($_package); >+ $EndAction >+ ./ >+ >+ | e n d p a c k a g e >+ /.$BeginAction >+ $setResult($_endpackage); >+ $EndAction >+ ./ >+ >+ | d e f >+ /.$BeginAction >+ $setResult($_def); >+ $EndAction >+ ./ >+ >+ | d e r i v e >+ /.$BeginAction >+ $setResult($_derive); >+ $EndAction >+ ./ >+ >+ | i n i t >+ /.$BeginAction >+ $setResult($_init); >+ $EndAction >+ ./ >+ >+ | i f >+ /.$BeginAction >+ $setResult($_if); >+ $EndAction >+ ./ >+ >+ | t h e n >+ /.$BeginAction >+ $setResult($_then); >+ $EndAction >+ ./ >+ >+ | e l s e >+ /.$BeginAction >+ $setResult($_else); >+ $EndAction >+ ./ >+ >+ | e n d i f >+ /.$BeginAction >+ $setResult($_endif); >+ $EndAction >+ ./ >+ >+ | a n d >+ /.$BeginAction >+ $setResult($_and); >+ $EndAction >+ ./ >+ >+ | o r >+ /.$BeginAction >+ $setResult($_or); >+ $EndAction >+ ./ >+ >+ | x o r >+ /.$BeginAction >+ $setResult($_xor); >+ $EndAction >+ ./ >+ >+ | n o t >+ /.$BeginAction >+ $setResult($_not); >+ $EndAction >+ ./ >+ >+ | i m p l i e s >+ /.$BeginAction >+ $setResult($_implies); >+ $EndAction >+ ./ >+ >+ | l e t >+ /.$BeginAction >+ $setResult($_let); >+ $EndAction >+ ./ >+ >+ | i n >+ /.$BeginAction >+ $setResult($_in); >+ $EndAction >+ ./ >+ >+ | t r u e >+ /.$BeginAction >+ $setResult($_true); >+ $EndAction >+ ./ >+ >+ | f a l s e >+ /.$BeginAction >+ $setResult($_false); >+ $EndAction >+ ./ >+ >+ | S e t >+ /.$BeginAction >+ $setResult($_Set); >+ $EndAction >+ ./ >+ >+ | B a g >+ /.$BeginAction >+ $setResult($_Bag); >+ $EndAction >+ ./ >+ >+ | S e q u e n c e >+ /.$BeginAction >+ $setResult($_Sequence); >+ $EndAction >+ ./ >+ >+ | C o l l e c t i o n >+ /.$BeginAction >+ $setResult($_Collection); >+ $EndAction >+ ./ >+ >+ | O r d e r e d S e t >+ /.$BeginAction >+ $setResult($_OrderedSet); >+ $EndAction >+ ./ >+ >+ | i t e r a t e >+ /.$BeginAction >+ $setResult($_iterate); >+ $EndAction >+ ./ >+ >+ | f o r A l l >+ /.$BeginAction >+ $setResult($_forAll); >+ $EndAction >+ ./ >+ >+ | e x i s t s >+ /.$BeginAction >+ $setResult($_exists); >+ $EndAction >+ ./ >+ >+ | i s U n i q u e >+ /.$BeginAction >+ $setResult($_isUnique); >+ $EndAction >+ ./ >+ >+ | a n y >+ /.$BeginAction >+ $setResult($_any); >+ $EndAction >+ ./ >+ >+ | o n e >+ /.$BeginAction >+ $setResult($_one); >+ $EndAction >+ ./ >+ >+ | c o l l e c t >+ /.$BeginAction >+ $setResult($_collect); >+ $EndAction >+ ./ >+ >+ | s e l e c t >+ /.$BeginAction >+ $setResult($_select); >+ $EndAction >+ ./ >+ >+ | r e j e c t >+ /.$BeginAction >+ $setResult($_reject); >+ $EndAction >+ ./ >+ >+ | c o l l e c t N e s t e d >+ /.$BeginAction >+ $setResult($_collectNested); >+ $EndAction >+ ./ >+ >+ | s o r t e d B y >+ /.$BeginAction >+ $setResult($_sortedBy); >+ $EndAction >+ ./ >+ >+ | c l o s u r e >+ /.$BeginAction >+ $setResult($_closure); >+ $EndAction >+ ./ >+ >+ | o c l I s K i n d O f >+ /.$BeginAction >+ $setResult($_oclIsKindOf); >+ $EndAction >+ ./ >+ >+ | o c l I s T y p e O f >+ /.$BeginAction >+ $setResult($_oclIsTypeOf); >+ $EndAction >+ ./ >+ >+ | o c l A s T y p e >+ /.$BeginAction >+ $setResult($_oclAsType); >+ $EndAction >+ ./ >+ >+ | o c l I s N e w >+ /.$BeginAction >+ $setResult($_oclIsNew); >+ $EndAction >+ ./ >+ >+ | o c l I s U n d e f i n e d >+ /.$BeginAction >+ $setResult($_oclIsUndefined); >+ $EndAction >+ ./ >+ >+ | o c l I s I n v a l i d >+ /.$BeginAction >+ $setResult($_oclIsInvalid); >+ $EndAction >+ ./ >+ >+ | o c l I s I n S t a t e >+ /.$BeginAction >+ $setResult($_oclIsInState); >+ $EndAction >+ ./ >+ >+ | a l l I n s t a n c e s >+ /.$BeginAction >+ $setResult($_allInstances); >+ $EndAction >+ ./ >+ >+ | S t r i n g >+ /.$BeginAction >+ $setResult($_String); >+ $EndAction >+ ./ >+ >+ | I n t e g e r >+ /.$BeginAction >+ $setResult($_Integer); >+ $EndAction >+ ./ >+ >+ | U n l i m i t e d N a t u r a l >+ /.$BeginAction >+ $setResult($_UnlimitedNatural); >+ $EndAction >+ ./ >+ >+ | R e a l >+ /.$BeginAction >+ $setResult($_Real); >+ $EndAction >+ ./ >+ >+ | B o o l e a n >+ /.$BeginAction >+ $setResult($_Boolean); >+ $EndAction >+ ./ >+ >+ | T u p l e >+ /.$BeginAction >+ $setResult($_Tuple); >+ $EndAction >+ ./ >+ >+ | O c l A n y >+ /.$BeginAction >+ $setResult($_OclAny); >+ $EndAction >+ ./ >+ >+ | O c l V o i d >+ /.$BeginAction >+ $setResult($_OclVoid); >+ $EndAction >+ ./ >+ >+ | I n v a l i d >+ /.$BeginAction >+ $setResult($_Invalid); >+ $EndAction >+ ./ >+ >+ | O c l M e s s a g e >+ /.$BeginAction >+ $setResult($_OclMessage); >+ $EndAction >+ ./ >+ >+ | n u l l >+ /.$BeginAction >+ $setResult($_null); >+ $EndAction >+ ./ >+ >+ | O c l I n v a l i d >+ /.$BeginAction >+ $setResult($_OclInvalid); >+ $EndAction >+ ./ >+ >+ | a t t r >+ /.$BeginAction >+ $setResult($_attr); >+ $EndAction >+ ./ >+ >+ | o p e r >+ /.$BeginAction >+ $setResult($_oper); >+ $EndAction >+ ./ >+%End >Index: src/org/eclipse/ocl/lpg/KWLexerMapF.gi >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/KWLexerMapF.gi >diff -N src/org/eclipse/ocl/lpg/KWLexerMapF.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/KWLexerMapF.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,78 @@ >+%Terminals >+ DollarSign ::= '$' >+ Percent ::= '%' >+ _ >+ a b c d e f g h i j k l m n o p q r s t u v w x y z >+ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z >+%End >+ >+%Headers >+ /. >+ final static int tokenKind[] = new int[128]; >+ static >+ { >+ tokenKind['$'] = $sym_type.$prefix$DollarSign$suffix$; >+ tokenKind['%'] = $sym_type.$prefix$Percent$suffix$; >+ tokenKind['_'] = $sym_type.$prefix$_$suffix$; >+ >+ tokenKind['a'] = $sym_type.$prefix$a$suffix$; >+ tokenKind['b'] = $sym_type.$prefix$b$suffix$; >+ tokenKind['c'] = $sym_type.$prefix$c$suffix$; >+ tokenKind['d'] = $sym_type.$prefix$d$suffix$; >+ tokenKind['e'] = $sym_type.$prefix$e$suffix$; >+ tokenKind['f'] = $sym_type.$prefix$f$suffix$; >+ tokenKind['g'] = $sym_type.$prefix$g$suffix$; >+ tokenKind['h'] = $sym_type.$prefix$h$suffix$; >+ tokenKind['i'] = $sym_type.$prefix$i$suffix$; >+ tokenKind['j'] = $sym_type.$prefix$j$suffix$; >+ tokenKind['k'] = $sym_type.$prefix$k$suffix$; >+ tokenKind['l'] = $sym_type.$prefix$l$suffix$; >+ tokenKind['m'] = $sym_type.$prefix$m$suffix$; >+ tokenKind['n'] = $sym_type.$prefix$n$suffix$; >+ tokenKind['o'] = $sym_type.$prefix$o$suffix$; >+ tokenKind['p'] = $sym_type.$prefix$p$suffix$; >+ tokenKind['q'] = $sym_type.$prefix$q$suffix$; >+ tokenKind['r'] = $sym_type.$prefix$r$suffix$; >+ tokenKind['s'] = $sym_type.$prefix$s$suffix$; >+ tokenKind['t'] = $sym_type.$prefix$t$suffix$; >+ tokenKind['u'] = $sym_type.$prefix$u$suffix$; >+ tokenKind['v'] = $sym_type.$prefix$v$suffix$; >+ tokenKind['w'] = $sym_type.$prefix$w$suffix$; >+ tokenKind['x'] = $sym_type.$prefix$x$suffix$; >+ tokenKind['y'] = $sym_type.$prefix$y$suffix$; >+ tokenKind['z'] = $sym_type.$prefix$z$suffix$; >+ >+ tokenKind['A'] = $sym_type.$prefix$A$suffix$; >+ tokenKind['B'] = $sym_type.$prefix$B$suffix$; >+ tokenKind['C'] = $sym_type.$prefix$C$suffix$; >+ tokenKind['D'] = $sym_type.$prefix$D$suffix$; >+ tokenKind['E'] = $sym_type.$prefix$E$suffix$; >+ tokenKind['F'] = $sym_type.$prefix$F$suffix$; >+ tokenKind['G'] = $sym_type.$prefix$G$suffix$; >+ tokenKind['H'] = $sym_type.$prefix$H$suffix$; >+ tokenKind['I'] = $sym_type.$prefix$I$suffix$; >+ tokenKind['J'] = $sym_type.$prefix$J$suffix$; >+ tokenKind['K'] = $sym_type.$prefix$K$suffix$; >+ tokenKind['L'] = $sym_type.$prefix$L$suffix$; >+ tokenKind['M'] = $sym_type.$prefix$M$suffix$; >+ tokenKind['N'] = $sym_type.$prefix$N$suffix$; >+ tokenKind['O'] = $sym_type.$prefix$O$suffix$; >+ tokenKind['P'] = $sym_type.$prefix$P$suffix$; >+ tokenKind['Q'] = $sym_type.$prefix$Q$suffix$; >+ tokenKind['R'] = $sym_type.$prefix$R$suffix$; >+ tokenKind['S'] = $sym_type.$prefix$S$suffix$; >+ tokenKind['T'] = $sym_type.$prefix$T$suffix$; >+ tokenKind['U'] = $sym_type.$prefix$U$suffix$; >+ tokenKind['V'] = $sym_type.$prefix$V$suffix$; >+ tokenKind['W'] = $sym_type.$prefix$W$suffix$; >+ tokenKind['X'] = $sym_type.$prefix$X$suffix$; >+ tokenKind['Y'] = $sym_type.$prefix$Y$suffix$; >+ tokenKind['Z'] = $sym_type.$prefix$Z$suffix$; >+ }; >+ >+ final int getKind(char c) >+ { >+ return (((c & 0xFFFFFF80) == 0) /* 0 <= c < 128? */ ? tokenKind[c] : 0); >+ } >+ ./ >+%End >Index: src/org/eclipse/ocl/lpg/LexerBasicMapF.gi >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/LexerBasicMapF.gi >diff -N src/org/eclipse/ocl/lpg/LexerBasicMapF.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/LexerBasicMapF.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,269 @@ >+%Headers >+ -- >+ -- Additional methods for the action class not provided in the template >+ -- >+ >+ -- >+ -- In grammar file including this .gi file should define the following macros >+ -- $kw_lexeR_class => the keyword lexer class >+ -- $super_stream_class => the class which the generated lexer inherits from >+ -- >+ -- [cwd] Template provided by LPG defines a constructor that uses an Option >+ -- class that does not exist in LPG Runtime. Deleted this constructor >+ >+ -- [adolfosbh] The previous old cwd's comment has been corrected in this >+ -- template version >+ >+ -- [adolfosbh] a constructor method has been moved to LexerTemplate D.gi file >+ /. >+ // >+ // The Lexer contains an array of characters as the input stream to be parsed. >+ // There are methods to retrieve and classify characters. >+ // The lexparser "token" is implemented simply as the index of the next character in the array. >+ // The Lexer extends the abstract class LpgLexStream with an implementation of the abstract >+ // method getKind. The template defines the Lexer class and the lexer() method. >+ // A driver creates the action class, "Lexer", passing an Option object to the constructor. >+ // >+ $kw_lexer_class kwLexer; >+ boolean printTokens; >+ private final static int ECLIPSE_TAB_VALUE = 4; >+ >+ public int [] getKeywordKinds() { return kwLexer.getKeywordKinds(); } >+ >+ >+ /** >+ * @deprecated function replaced by {@link #reset(char [] content, String filename)} >+ */ >+ public void initialize(char [] content, String filename) >+ { >+ reset(content, filename); >+ } >+ >+ final void makeToken(int left_token, int right_token, int kind) >+ { >+ lexStream.makeToken(left_token, right_token, kind); >+ } >+ >+ final void makeToken(int kind) >+ { >+ int startOffset = getLeftSpan(), >+ endOffset = getRightSpan(); >+ lexStream.makeToken(startOffset, endOffset, kind); >+ if (printTokens) printValue(startOffset, endOffset); >+ } >+ >+ final void makeComment(int kind) >+ { >+ int startOffset = getLeftSpan(), >+ endOffset = getRightSpan(); >+ lexStream.getIPrsStream().makeAdjunct(startOffset, endOffset, kind); >+ } >+ >+ final void skipToken() >+ { >+ if (printTokens) printValue(getLeftSpan(), getRightSpan()); >+ } >+ >+ final void checkForKeyWord() >+ { >+ int startOffset = getLeftSpan(), >+ endOffset = getRightSpan(), >+ kwKind = kwLexer.lexer(startOffset, endOffset); >+ lexStream.makeToken(startOffset, endOffset, kwKind); >+ if (printTokens) printValue(startOffset, endOffset); >+ } >+ >+ // >+ // This flavor of checkForKeyWord is necessary when the default kind >+ // (which is returned when the keyword filter doesn't match) is something >+ // other than _IDENTIFIER. >+ // >+ final void checkForKeyWord(int defaultKind) >+ { >+ int startOffset = getLeftSpan(), >+ endOffset = getRightSpan(), >+ kwKind = kwLexer.lexer(startOffset, endOffset); >+ if (kwKind == $_IDENTIFIER) >+ kwKind = defaultKind; >+ lexStream.makeToken(startOffset, endOffset, kwKind); >+ if (printTokens) printValue(startOffset, endOffset); >+ } >+ >+ final void printValue(int startOffset, int endOffset) >+ { >+ String s = new String(lexStream.getInputChars(), startOffset, endOffset - startOffset + 1); >+ System.out.print(s); >+ } >+ >+ // >+ // >+ // >+ static class $super_stream_class extends AbstractLexerStream >+ { >+ public final static int tokenKind[] = >+ { >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 000 0x00 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 001 0x01 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 002 0x02 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 003 0x03 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 004 0x04 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 005 0x05 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 006 0x06 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 007 0x07 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 008 0x08 >+ $sym_type.$prefix$HT$suffix$, // 009 0x09 >+ $sym_type.$prefix$LF$suffix$, // 010 0x0A >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 011 0x0B >+ $sym_type.$prefix$FF$suffix$, // 012 0x0C >+ $sym_type.$prefix$CR$suffix$, // 013 0x0D >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 014 0x0E >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 015 0x0F >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 016 0x10 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 017 0x11 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 018 0x12 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 019 0x13 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 020 0x14 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 021 0x15 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 022 0x16 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 023 0x17 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 024 0x18 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 025 0x19 >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 026 0x1A >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 027 0x1B >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 028 0x1C >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 029 0x1D >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 030 0x1E >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 031 0x1F >+ $sym_type.$prefix$Space$suffix$, // 032 0x20 >+ $sym_type.$prefix$Exclamation$suffix$, // 033 0x21 >+ $sym_type.$prefix$DoubleQuote$suffix$, // 034 0x22 >+ $sym_type.$prefix$Sharp$suffix$, // 035 0x23 >+ $sym_type.$prefix$DollarSign$suffix$, // 036 0x24 >+ $sym_type.$prefix$Percent$suffix$, // 037 0x25 >+ $sym_type.$prefix$Ampersand$suffix$, // 038 0x26 >+ $sym_type.$prefix$SingleQuote$suffix$, // 039 0x27 >+ $sym_type.$prefix$LeftParen$suffix$, // 040 0x28 >+ $sym_type.$prefix$RightParen$suffix$, // 041 0x29 >+ $sym_type.$prefix$Star$suffix$, // 042 0x2A >+ $sym_type.$prefix$Plus$suffix$, // 043 0x2B >+ $sym_type.$prefix$Comma$suffix$, // 044 0x2C >+ $sym_type.$prefix$Minus$suffix$, // 045 0x2D >+ $sym_type.$prefix$Dot$suffix$, // 046 0x2E >+ $sym_type.$prefix$Slash$suffix$, // 047 0x2F >+ $sym_type.$prefix$0$suffix$, // 048 0x30 >+ $sym_type.$prefix$1$suffix$, // 049 0x31 >+ $sym_type.$prefix$2$suffix$, // 050 0x32 >+ $sym_type.$prefix$3$suffix$, // 051 0x33 >+ $sym_type.$prefix$4$suffix$, // 052 0x34 >+ $sym_type.$prefix$5$suffix$, // 053 0x35 >+ $sym_type.$prefix$6$suffix$, // 054 0x36 >+ $sym_type.$prefix$7$suffix$, // 055 0x37 >+ $sym_type.$prefix$8$suffix$, // 056 0x38 >+ $sym_type.$prefix$9$suffix$, // 057 0x39 >+ $sym_type.$prefix$Colon$suffix$, // 058 0x3A >+ $sym_type.$prefix$SemiColon$suffix$, // 059 0x3B >+ $sym_type.$prefix$LessThan$suffix$, // 060 0x3C >+ $sym_type.$prefix$Equal$suffix$, // 061 0x3D >+ $sym_type.$prefix$GreaterThan$suffix$, // 062 0x3E >+ $sym_type.$prefix$QuestionMark$suffix$, // 063 0x3F >+ $sym_type.$prefix$AtSign$suffix$, // 064 0x40 >+ $sym_type.$prefix$A$suffix$, // 065 0x41 >+ $sym_type.$prefix$B$suffix$, // 066 0x42 >+ $sym_type.$prefix$C$suffix$, // 067 0x43 >+ $sym_type.$prefix$D$suffix$, // 068 0x44 >+ $sym_type.$prefix$E$suffix$, // 069 0x45 >+ $sym_type.$prefix$F$suffix$, // 070 0x46 >+ $sym_type.$prefix$G$suffix$, // 071 0x47 >+ $sym_type.$prefix$H$suffix$, // 072 0x48 >+ $sym_type.$prefix$I$suffix$, // 073 0x49 >+ $sym_type.$prefix$J$suffix$, // 074 0x4A >+ $sym_type.$prefix$K$suffix$, // 075 0x4B >+ $sym_type.$prefix$L$suffix$, // 076 0x4C >+ $sym_type.$prefix$M$suffix$, // 077 0x4D >+ $sym_type.$prefix$N$suffix$, // 078 0x4E >+ $sym_type.$prefix$O$suffix$, // 079 0x4F >+ $sym_type.$prefix$P$suffix$, // 080 0x50 >+ $sym_type.$prefix$Q$suffix$, // 081 0x51 >+ $sym_type.$prefix$R$suffix$, // 082 0x52 >+ $sym_type.$prefix$S$suffix$, // 083 0x53 >+ $sym_type.$prefix$T$suffix$, // 084 0x54 >+ $sym_type.$prefix$U$suffix$, // 085 0x55 >+ $sym_type.$prefix$V$suffix$, // 086 0x56 >+ $sym_type.$prefix$W$suffix$, // 087 0x57 >+ $sym_type.$prefix$X$suffix$, // 088 0x58 >+ $sym_type.$prefix$Y$suffix$, // 089 0x59 >+ $sym_type.$prefix$Z$suffix$, // 090 0x5A >+ $sym_type.$prefix$LeftBracket$suffix$, // 091 0x5B >+ $sym_type.$prefix$BackSlash$suffix$, // 092 0x5C >+ $sym_type.$prefix$RightBracket$suffix$, // 093 0x5D >+ $sym_type.$prefix$Caret$suffix$, // 094 0x5E >+ $sym_type.$prefix$_$suffix$, // 095 0x5F >+ $sym_type.$prefix$BackQuote$suffix$, // 096 0x60 >+ $sym_type.$prefix$a$suffix$, // 097 0x61 >+ $sym_type.$prefix$b$suffix$, // 098 0x62 >+ $sym_type.$prefix$c$suffix$, // 099 0x63 >+ $sym_type.$prefix$d$suffix$, // 100 0x64 >+ $sym_type.$prefix$e$suffix$, // 101 0x65 >+ $sym_type.$prefix$f$suffix$, // 102 0x66 >+ $sym_type.$prefix$g$suffix$, // 103 0x67 >+ $sym_type.$prefix$h$suffix$, // 104 0x68 >+ $sym_type.$prefix$i$suffix$, // 105 0x69 >+ $sym_type.$prefix$j$suffix$, // 106 0x6A >+ $sym_type.$prefix$k$suffix$, // 107 0x6B >+ $sym_type.$prefix$l$suffix$, // 108 0x6C >+ $sym_type.$prefix$m$suffix$, // 109 0x6D >+ $sym_type.$prefix$n$suffix$, // 110 0x6E >+ $sym_type.$prefix$o$suffix$, // 111 0x6F >+ $sym_type.$prefix$p$suffix$, // 112 0x70 >+ $sym_type.$prefix$q$suffix$, // 113 0x71 >+ $sym_type.$prefix$r$suffix$, // 114 0x72 >+ $sym_type.$prefix$s$suffix$, // 115 0x73 >+ $sym_type.$prefix$t$suffix$, // 116 0x74 >+ $sym_type.$prefix$u$suffix$, // 117 0x75 >+ $sym_type.$prefix$v$suffix$, // 118 0x76 >+ $sym_type.$prefix$w$suffix$, // 119 0x77 >+ $sym_type.$prefix$x$suffix$, // 120 0x78 >+ $sym_type.$prefix$y$suffix$, // 121 0x79 >+ $sym_type.$prefix$z$suffix$, // 122 0x7A >+ $sym_type.$prefix$LeftBrace$suffix$, // 123 0x7B >+ $sym_type.$prefix$VerticalBar$suffix$, // 124 0x7C >+ $sym_type.$prefix$RightBrace$suffix$, // 125 0x7D >+ $sym_type.$prefix$Tilde$suffix$, // 126 0x7E >+ $sym_type.$prefix$CtlCharNotWS$suffix$, // 127 0x7F >+ >+ $sym_type.$prefix$Acute$suffix$, // for the acute accent 0xb4 >+ $sym_type.$prefix$AfterASCIINotAcute$suffix$, // for all chars in range 0x80..0xfffe excluding the acute accent >+ $sym_type.$prefix$EOF$suffix$ // for '\uffff' or 65535 >+ }; >+ >+ public final int getKind(int i) // Classify character at ith location >+ { >+ char c = (i >= getStreamLength() ? '\uffff' : getCharValue(i)); >+ return (c < 128) // ASCII Character >+ ? tokenKind[c] >+ : (c == '\uffff') >+ ?$sym_type.$prefix$EOF$suffix$ >+ : (c == '\u00b4') >+ ? $sym_type.$prefix$EOF$suffix$ >+ : $sym_type.$prefix$AfterASCIINotAcute$suffix$; >+ } >+ >+ public String[] orderedExportedSymbols() { return $exp_type.orderedTerminalSymbols; } >+ >+ public $super_stream_class($environment_class environment, String filename, int tab) throws java.io.IOException >+ { >+ super($adapt_environment, filename, tab); >+ } >+ >+ public $super_stream_class($environment_class environment, char[] input_chars, String filename, int tab) >+ { >+ super($adapt_environment, input_chars, filename, tab); >+ } >+ >+ public $super_stream_class($environment_class environment, char[] input_chars, String filename) >+ { >+ super($adapt_environment, input_chars, filename, 1); >+ } >+ } >+ ./ >+%End >Index: src/org/eclipse/ocl/lpg/AbstractLexerStream.java >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/AbstractLexerStream.java >diff -N src/org/eclipse/ocl/lpg/AbstractLexerStream.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/AbstractLexerStream.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,63 @@ >+package org.eclipse.ocl.lpg; >+ >+import lpg.runtime.LpgLexStream; >+ >+ >+/** >+ * @since 3.0 >+ */ >+public abstract class AbstractLexerStream extends LpgLexStream { >+ >+ protected final static int ECLIPSE_TAB_VALUE = 4; >+ private BasicEnvironment environment; >+ >+ public AbstractLexerStream(BasicEnvironment environment, String filename, int tab) throws java.io.IOException >+ { >+ super(filename, tab); >+ this.environment = environment; >+ } >+ >+ public AbstractLexerStream(BasicEnvironment environment, char[] input_chars, String filename, int tab) >+ { >+ super(input_chars, filename, tab); >+ this.environment = environment; >+ } >+ >+ public AbstractLexerStream() { >+ super(); >+ setTab(ECLIPSE_TAB_VALUE); >+ } >+ >+ protected int computeErrorCode(int leftToken, int rightToken) { >+ if (rightToken >= getStreamLength()) >+ return EOF_CODE; >+ else if (leftToken == rightToken) >+ return LEX_ERROR_CODE; >+ else >+ return INVALID_TOKEN_CODE; >+ } >+ >+ /** >+ * Define the input text as a given array of characters. >+ * @param buffer the characters >+ */ >+ public void initialize(char[] inputChars) { >+ setInputChars(inputChars); >+ setStreamLength(inputChars.length); >+ computeLineOffsets(); >+ } >+ >+ /** >+ * Errors generated within the lexer are redirected to the error handler if there is one. >+ * >+ * Note that other variants of reportError either feed this one, are fed from a default implementation >+ * of this one or originate in the parser, where a ParserErrorHandler can intercept them. >+ */ >+ public void reportError(int errorCode, int leftToken, int errorToken, >+ int rightToken, String[] errorInfo) { >+ if (environment != null) >+ environment.lexerError(errorCode, errorToken, rightToken); >+ reportError(errorCode, leftToken, errorToken, rightToken, errorInfo); >+ } >+ >+} >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.gi >diff -N src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingKWLexer.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,35 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2008, 2009 IBM Corporation, Open Canarias S.L. and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * IBM - Initial API and implementation >+-- * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: OCLBacktrackingKWLexer.g,v 1.1 2009/01/13 20:31:30 cdamus Exp $ >+-- */ >+-- >+-- The OCL Backtracking KeyWord Lexer, which is nominally identical to the >+-- normal KeyWord Lexer, however the extra ERROR_TOKEN symbol makes it difficult >+-- to share reliably. >+-- >+ >+%options slr >+%options fp=OCLBacktrackingKWLexer,prefix=Char_ >+%options noserialize >+%options package=org.eclipse.ocl.parser.backtracking >+%options template=../../lpg/KeywordTemplateF.gi >+%options export_terminals=("OCLBacktrackingParsersym.java", "TK_") >+%options include_directory="..;../../lpg" >+ >+%Import >+ OCLKWLexer.gi >+%End >Index: src/org/eclipse/ocl/lpg/OCLParserStream.java >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/OCLParserStream.java >diff -N src/org/eclipse/ocl/lpg/OCLParserStream.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/OCLParserStream.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,150 @@ >+package org.eclipse.ocl.lpg; >+ >+import java.util.ArrayList; >+ >+import lpg.runtime.ErrorToken; >+import lpg.runtime.ILexStream; >+import lpg.runtime.IToken; >+import lpg.runtime.PrsStream; >+import lpg.runtime.Token; >+ >+ >+/** >+ * @since 3.0 >+ */ >+public class OCLParserStream extends PrsStream { >+ >+ private BasicEnvironment environment; >+ >+ public OCLParserStream(BasicEnvironment env, ILexStream iLexStream) { >+ super(iLexStream); >+ this.environment = env; >+ } >+ >+ @Override >+ public void reportError(int errorCode, int leftToken, int errorToken, >+ int rightToken, String errorInfo[]) { >+ if (environment == null) { >+ super.reportError(errorCode, leftToken, errorToken, rightToken, errorInfo); >+ } else { >+ // TODO Revise this. BasicEnvironment.parserError doesn't have a String[] argument >+ String tokenText = errorInfo.length > 0 ? errorInfo[0] : ""; //$NON-NLS-1$ >+ if (errorCode == PrsStream.DELETION_CODE || errorCode == PrsStream.MISPLACED_CODE) { >+ tokenText = ""; //$NON-NLS-1$ >+ } >+ environment >+ .parserError(errorCode, leftToken, rightToken, tokenText); >+ } >+ } >+ /** >+ * Overridden to search only the non-Error nodes, which are the only tokens >+ * in monotonic order. >+ */ >+ @Override >+ public int getTokenIndexAtCharacter(int offset) { >+ int low = 0; >+ int high = getSize(); >+ while (high > low) { >+ IToken highToken = getTokenAt(high - 1); >+ if (!(highToken instanceof ErrorToken)) { >+ break; >+ } >+ high--; >+ } >+ while (high > low) { >+ int mid = (high + low) / 2; >+ IToken mid_element = getTokenAt(mid); >+ if (offset >= mid_element.getStartOffset() >+ && offset <= mid_element.getEndOffset()) { >+ return mid; >+ } else if (offset < mid_element.getStartOffset()) { >+ high = mid; >+ } else { >+ low = mid + 1; >+ } >+ } >+ >+ return -(low - 1); >+ } >+ >+ @Override >+ public int makeErrorToken(int firsttok, int lasttok, int errortok, int kind) { >+ @SuppressWarnings("unchecked") >+ ArrayList<IToken> tokens = getTokens(); >+ int index = tokens.size(); // the next index >+ >+ // >+ // Note that when creating an error token, we do not remap its kind. >+ // Since this is not a lexical operation, it is the responsibility of >+ // the calling program (a parser driver) to pass to us the proper kind >+ // that it wants for an error token. >+ // >+ Token token = new ErrorToken(getIToken(firsttok), getIToken(lasttok), >+ getIToken(errortok), getStartOffset(firsttok), >+ getEndOffset(lasttok), kind) { >+ >+ @Override >+ public String toString() { >+ if (getIPrsStream() == null) { >+ return "<toString>"; //$NON-NLS-1$ >+ } >+ int startOffset = getStartOffset(); >+ int length = getEndOffset() - startOffset; >+ if (length < 0) { >+ length = -length - 1; >+ startOffset = getEndOffset(); >+ } >+ if ((startOffset + length) > getIPrsStream().getInputChars().length) { >+ return String.valueOf(IToken.EOF); >+ } >+ return new String(getIPrsStream().getInputChars(), startOffset, >+ length); >+ } >+ >+ }; >+ token.setTokenIndex(index); >+ tokens.add(token); >+ token.setAdjunctIndex(getAdjuncts().size()); >+ return index; >+ } >+ >+ /** >+ * @since 1.3 >+ */ >+ public int getErrorTokens() { >+ return getTokens().size() - getStreamLength(); >+ } >+ >+ /** >+ * This function returns the index of the token element containing the >+ * offset specified. If such a token does not exist, it returns the negation >+ * of the index of the element immediately preceding the offset. >+ * >+ * @since 1.3 >+ */ >+ public ErrorToken getErrorTokenAtCharacter(int offset) { >+ ErrorToken bestToken = null; >+ for (int i = getSize(); --i >= 0;) { >+ IToken token = getTokenAt(i); >+ if (!(token instanceof ErrorToken)) { >+ break; >+ } >+ IToken errorToken = ((ErrorToken) token).getErrorToken(); >+ if (offset >= errorToken.getStartOffset() >+ && offset <= errorToken.getEndOffset()) { >+ if ((bestToken == null) >+ || ((bestToken.getStartOffset() <= errorToken >+ .getStartOffset()) && (token.getEndOffset() <= errorToken >+ .getEndOffset()))) { >+ bestToken = (ErrorToken) token; >+ } >+ } >+ } >+ return bestToken; >+ } >+ public AbstractLexer getLexer() { >+ return (AbstractLexer) super.getILexStream(); >+ } >+ >+ >+} >\ No newline at end of file >Index: src/org/eclipse/ocl/lpg/dtParserTemplateF.gi >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/dtParserTemplateF.gi >diff -N src/org/eclipse/ocl/lpg/dtParserTemplateF.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/dtParserTemplateF.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,377 @@ >+-- >+-- In a parser using this template, the following macro may be redefined: >+-- >+-- $additional_interfaces >+-- $ast_class >+-- >+-- B E G I N N I N G O F T E M P L A T E dtParserTemplateF >+-- >+%Options programming_language=java,margin=4 >+%Options table,error_maps,scopes >+%Options prefix=TK_ >+%Options action-block=("*.java", "/.", "./") >+%Options ParseTable=lpg.runtime.ParseTable >+ >+-- >+-- This template requires that the name of the EOF token be set >+-- to EOF_TOKEN to be consistent with LexerTemplateD and LexerTemplateE >+-- >+%EOF >+ EOF_TOKEN >+%End >+ >+%ERROR >+ ERROR_TOKEN >+%End >+ >+%Define >+ $Header >+ /. >+ // >+ // Rule $rule_number: $rule_text >+ // >+ ./ >+ >+ $BeginAction >+ /.$Header$case $rule_number: {./ >+ >+ $EndAction >+ /. break; >+ }./ >+ >+ -- BeginJava does nothing >+ -- block-actions should call BeginCode, instead >+ $BeginJava /../ >+ >+ -- EndJava does nothing >+ -- block-actions should call EndCode, instead >+ $EndJava /../ >+ >+ $BeginCode >+ /.$BeginAction >+ $symbol_declarations./ >+ >+ $EndCode /.$EndAction./ >+ >+ $NoAction >+ /.$Header$case $rule_number: >+ break;./ >+ >+ $BadAction >+ /.$Header$case $rule_number: >+ throw new Error("No action specified for rule " + $rule_number);./ >+ >+ $NullAction >+ /.$Header$case $rule_number: >+ setResult(null); >+ break;./ >+ >+ $EmptyListAction >+ /. $Header >+ case $rule_number: >+ setResult(new BasicEList()); >+ break;./ >+ >+ $BeginActions >+ /. >+ @SuppressWarnings("unchecked") >+ public void ruleAction(int ruleNumber) >+ { >+ switch (ruleNumber) >+ {./ >+ >+ $SplitActions >+ /. >+ default: >+ ruleAction$rule_number(ruleNumber); >+ break; >+ } >+ return; >+ } >+ >+ public void ruleAction$rule_number(int ruleNumber) >+ { >+ switch (ruleNumber) >+ {./ >+ >+ $EndActions >+ /. >+ default: >+ break; >+ } >+ return; >+ }./ >+ >+ $entry_declarations >+ /. >+ public $ast_class parse$entry_name() >+ { >+ return parse$entry_name(null, getDefaultRepairCount()); >+ } >+ >+ public $ast_class parse$entry_name(Monitor monitor) >+ { >+ return parse$entry_name(monitor, getDefaultRepairCount()); >+ } >+ >+ public $ast_class parse$entry_name(int error_repair_count) >+ { >+ return parse$entry_name(null, error_repair_count); >+ } >+ >+ public void resetParse$entry_name() >+ { >+ dtParser.resetParserEntry($sym_type.$entry_marker); >+ } >+ >+ public $ast_class parse$entry_name(Monitor monitor, int error_repair_count) >+ { >+ dtParser.setMonitor(monitor); >+ >+ try >+ { >+ return ($ast_class) dtParser.parseEntry($sym_type.$entry_marker); >+ } >+ catch (BadParseException e) >+ { >+ prsStream.reset(e.error_token); // point to error token >+ >+ DiagnoseParser diagnoseParser = new DiagnoseParser(prsStream, prsTable); >+ diagnoseParser.diagnoseEntry($sym_type.$entry_marker, e.error_token); >+ } >+ >+ return null; >+ } >+ ./ >+ >+ $additional_interfaces /../ >+ $ast_class /.$ast_type./ >+ $unimplemented_symbols_warning /.false./ >+ >+ $setSym1 /. // macro setSym1 is deprecated. Use function setResult >+ getParser().setSym1./ >+ $setResult /. // macro setResult is deprecated. Use function setResult >+ getParser().setSym1./ >+ $getSym /. // macro getSym is deprecated. Use function getRhsSym >+ getParser().getSym./ >+ $getToken /. // macro getToken is deprecated. Use function getRhsTokenIndex >+ getParser().getToken./ >+ $getIToken /. // macro getIToken is deprecated. Use function getRhsIToken >+ prsStream.getIToken./ >+ $getLeftSpan /. // macro getLeftSpan is deprecated. Use function getLeftSpan >+ getParser().getFirstToken./ >+ $getRightSpan /. // macro getRightSpan is deprecated. Use function getRightSpan >+ getParser().getLastToken./ >+ >+ $prs_stream /.prsStream./ -- DEPRECATED >+ >+ -- modified to include throwing exceptions >+ $parserCore >+ /. >+ >+ ./ >+ -- OCL ADDITIONS >+ >+ -- Definition of macros used in the parser template >+ -- >+ $super_parser_class /.AbstractOCLParser./ >+ $prs_stream_class /.OCLParserStream./ >+ $prs_parser_class /.DeterministicParser./ >+ $prs_parser_exception /.NotDeterministicParseTableException./ >+ $prs_parser_throw /.throw new RuntimeException("****Error: Regenerate $prs_type.java with -NOBACKTRACK option")./ >+ $prs_parse_args /../ >+ $lex_stream_class /.AbstractLexer./ >+ $action_class /.$file_prefix./ -- DEPRECATED >+ $copyright_contributions /.*./ >+ >+ -- package namespace of the LPG Runtime API >+ $lpg_ns /.lpg.runtime./ >+ >+ $NewCase >+ /. $Header >+ case $rule_number:./ >+%End >+ >+%Headers >+ /. >+ public class $action_type extends $super_parser_class implements RuleAction$additional_interfaces >+ { >+ private $prs_stream_class prsStream = null; >+ >+ private boolean unimplementedSymbolsWarning = $unimplemented_symbols_warning; >+ >+ private static ParseTable prsTable = new $prs_type(); >+ public ParseTable getParseTable() { return prsTable; } >+ >+ private $prs_parser_class dtParser = null; >+ public $prs_parser_class getParser() { return dtParser; } >+ >+ private void setResult(Object object) { dtParser.setSym1(object); } >+ public Object getRhsSym(int i) { return dtParser.getSym(i); } >+ >+ public int getRhsTokenIndex(int i) { return dtParser.getToken(i); } >+ public IToken getRhsIToken(int i) { return prsStream.getIToken(getRhsTokenIndex(i)); } >+ >+ public int getRhsFirstTokenIndex(int i) { return dtParser.getFirstToken(i); } >+ public IToken getRhsFirstIToken(int i) { return prsStream.getIToken(getRhsFirstTokenIndex(i)); } >+ >+ public int getRhsLastTokenIndex(int i) { return dtParser.getLastToken(i); } >+ public IToken getRhsLastIToken(int i) { return prsStream.getIToken(getRhsLastTokenIndex(i)); } >+ >+ public int getLeftSpan() { return dtParser.getFirstToken(); } >+ public IToken getLeftIToken() { return prsStream.getIToken(getLeftSpan()); } >+ >+ public int getRightSpan() { return dtParser.getLastToken(); } >+ public IToken getRightIToken() { return prsStream.getIToken(getRightSpan()); } >+ >+ public int getRhsErrorTokenIndex(int i) >+ { >+ int index = dtParser.getToken(i); >+ IToken err = prsStream.getIToken(index); >+ return (err instanceof ErrorToken ? index : 0); >+ } >+ public ErrorToken getRhsErrorIToken(int i) >+ { >+ int index = dtParser.getToken(i); >+ IToken err = prsStream.getIToken(index); >+ return (ErrorToken) (err instanceof ErrorToken ? err : null); >+ } >+ >+ public void reset(ILexStream lexStream) >+ { >+ prsStream = new $prs_stream_class(getEnvironment(), lexStream); >+ dtParser.reset(prsStream); >+ >+ try >+ { >+ prsStream.remapTerminalSymbols(orderedTerminalSymbols(), prsTable.getEoftSymbol()); >+ } >+ catch(NullExportedSymbolsException e) { >+ } >+ catch(NullTerminalSymbolsException e) { >+ } >+ catch(UnimplementedTerminalsException e) >+ { >+ if (unimplementedSymbolsWarning) { >+ java.util.ArrayList<?> unimplemented_symbols = e.getSymbols(); >+ System.out.println("The Lexer will not scan the following token(s):"); >+ for (int i = 0; i < unimplemented_symbols.size(); i++) >+ { >+ Integer id = (Integer) unimplemented_symbols.get(i); >+ System.out.println(" " + $sym_type.orderedTerminalSymbols[id.intValue()]); >+ } >+ System.out.println(); >+ } >+ } >+ catch(UndefinedEofSymbolException e) >+ { >+ throw new Error(new UndefinedEofSymbolException >+ ("The Lexer does not implement the Eof symbol " + >+ $sym_type.orderedTerminalSymbols[prsTable.getEoftSymbol()])); >+ } >+ } >+ >+ public $action_type($lex_stream_class lexer) >+ { >+ super(lexer); >+ try >+ { >+ dtParser = new $prs_parser_class(prsStream, prsTable, this); >+ } >+ catch ($prs_parser_exception e) >+ { >+ $prs_parser_throw; >+ } >+ catch (BadParseSymFileException e) >+ { >+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- $sym_type.java. Regenerate $prs_type.java")); >+ } >+ >+ reset(lexer.getILexStream()); >+ } >+ >+ public int numTokenKinds() { return $sym_type.numTokenKinds; } >+ public String[] orderedTerminalSymbols() { return $sym_type.orderedTerminalSymbols; } >+ public String getTokenKindName(int kind) { return $sym_type.orderedTerminalSymbols[kind]; } >+ public int getEOFTokenKind() { return prsTable.getEoftSymbol(); } >+ public $prs_stream_class getIPrsStream() { return prsStream; } >+ >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * >+ */ >+ public PrsStream getPrsStream() { return prsStream; } >+ >+ /** >+ * @deprecated replaced by {@link #getIPrsStream()} >+ * >+ */ >+ public PrsStream getParseStream() { return prsStream; } >+ >+ public $ast_class parser() >+ { >+ return parser(null, getDefaultRepairCount()); >+ } >+ >+ public $ast_class parser(Monitor monitor) >+ { >+ return parser(monitor, getDefaultRepairCount()); >+ } >+ >+ public $ast_class parser(int error_repair_count) >+ { >+ return parser(null, error_repair_count); >+ } >+ >+ public $ast_class parser(Monitor monitor, int error_repair_count) >+ { >+ dtParser.setMonitor(monitor); >+ >+ try >+ { >+ return ($ast_class) dtParser.parse(); >+ } >+ catch (BadParseException e) >+ { >+ prsStream.reset(e.error_token); // point to error token >+ >+ DiagnoseParser diagnoseParser = new DiagnoseParser(prsStream, prsTable); >+ diagnoseParser.diagnose(e.error_token); >+ } >+ >+ return null; >+ } >+ >+ // >+ // Additional entry points, if any >+ // >+ $entry_declarations >+ >+ // OCL Additions >+ >+ public $environment_class getOCLEnvironment() { >+ return getLexer().getOCLEnvironment(); >+ } >+ >+ @Override >+ public $lex_stream_class getLexer() { >+ return ($lex_stream_class) super.getLexer(); >+ } >+ ./ >+ >+%End >+ >+%Rules >+ /.$BeginActions./ >+%End >+ >+%Trailers >+ /. >+ $EndActions >+ } >+ ./ >+%End >+ >+-- >+-- E N D O F T E M P L A T E >+-- >Index: src/org/eclipse/ocl/parser/EssentialOCL.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/EssentialOCL.gi >diff -N src/org/eclipse/ocl/parser/EssentialOCL.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/EssentialOCL.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,1572 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+-- * Open Canarias S.L and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * IBM - Initial API and implementation >+-- * E.D.Willink - Elimination of some shift-reduce conflicts >+-- * E.D.Willink - Remove unnecessary warning suppression >+-- * E.D.Willink - Bugs 225493, 243976, 259818 >+-- * Zeligsoft - Bug 243976 >+-- * Borland - Bug 242880 >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v 2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: EssentialOCL.gi,v 1.7 2009/03/05 14:12:14 cdamus Exp $ >+-- */ >+-- >+-- The EssentialOCL Parser >+-- >+ >+ >+%Notice >+ /./** >+ * <copyright> >+ * >+ * Copyright (c) 2005, 2009 IBM Corporation, Zeligsoft Inc., Borland Software Corp., >+ * Open Canarias S.L. and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM - Initial API and implementation >+ * E.D.Willink - Elimination of some shift-reduce conflicts >+ * E.D.Willink - Remove unnecessary warning suppression >+ * E.D.Willink - Bugs 225493, 243976, 259818 >+ * Zeligsoft - Bug 243976 >+ * Borland - Bug 242880 >+ * Adolfo Sanchez- Barbudo Herrera - LPG v 2.0.17 adoption >+$copyright_contributions >+ * </copyright> >+ * >+ * $Id: EssentialOCL.g,v 1.7 2009/03/05 14:12:14 cdamus Exp $ >+ */ >+ ./ >+%End >+ >+%Globals >+ /.import org.eclipse.emf.common.util.BasicEList; >+ import org.eclipse.emf.common.util.EList; >+ import org.eclipse.ocl.cst.CSTNode; >+ import org.eclipse.ocl.cst.CallExpCS; >+ import org.eclipse.ocl.cst.CollectionTypeIdentifierEnum; >+ import org.eclipse.ocl.cst.DotOrArrowEnum; >+ import org.eclipse.ocl.cst.IntegerLiteralExpCS; >+ import org.eclipse.ocl.cst.IsMarkedPreCS; >+ import org.eclipse.ocl.cst.MessageExpCS; >+ import org.eclipse.ocl.cst.OCLExpressionCS; >+ import org.eclipse.ocl.cst.OCLMessageArgCS; >+ import org.eclipse.ocl.cst.OperationCallExpCS; >+ import org.eclipse.ocl.cst.PathNameCS; >+ 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; >+ import org.eclipse.ocl.utilities.PredefinedType; >+ import org.eclipse.ocl.lpg.OCLParserStream; >+ >+ import $lpg_ns.BadParseException; >+ import $lpg_ns.BadParseSymFileException; >+ import $lpg_ns.$prs_parser_class; >+ import $lpg_ns.DiagnoseParser; >+ import $lpg_ns.ErrorToken; >+ import $lpg_ns.IToken; >+ import $lpg_ns.ILexStream; >+ import $lpg_ns.Monitor; >+ import $lpg_ns.$prs_parser_exception; >+ import $lpg_ns.NullExportedSymbolsException; >+ import $lpg_ns.NullTerminalSymbolsException; >+ import $lpg_ns.ParseTable; >+ import $lpg_ns.PrsStream; >+ import $lpg_ns.RuleAction; >+ import $lpg_ns.UndefinedEofSymbolException; >+ import $lpg_ns.UnimplementedTerminalsException; >+ ./ >+%End >+ >+%KeyWords >+ self >+ inv >+ pre >+ post >+ endpackage >+ def >+ if >+ then >+ else >+ endif >+ and >+ or >+ xor >+ not >+ implies >+ let >+ in >+ true >+ false >+ >+ -- >+ -- the following appear to have been omitted from the list of >+ -- OCL reserved words in Section 7.4.9. They will be treated >+ -- as unreserved for compliance >+ -- >+ body >+ derive >+ init >+ null >+-- return -- don't need a keyword for LPG purposes >+ >+ -- >+ -- the remainder of the LPG keywords are defined as such for the >+ -- purpose of constructing the CST grammar. They are not OCL >+ -- reserved words >+ -- >+ Set >+ Bag >+ Sequence >+ Collection >+ OrderedSet >+ >+ iterate >+ forAll >+ exists >+ isUnique >+ any >+ one >+ >+ collect >+ select >+ reject >+ collectNested >+ sortedBy >+ >+ closure >+ >+ oclIsKindOf >+ oclIsTypeOf >+ oclAsType >+ oclIsNew >+ oclIsUndefined >+ oclIsInvalid >+ oclIsInState >+ allInstances >+ >+ String >+ Integer >+ UnlimitedNatural >+ Real >+ Boolean >+ Tuple >+ OclAny >+ OclVoid >+ Invalid >+ OclMessage >+ >+ OclInvalid >+%End >+ >+%Identifier >+ IDENTIFIER >+%End >+ >+%Terminals >+ >+ NUMERIC_OPERATION >+ >+ STRING_LITERAL >+ INTEGER_LITERAL >+ REAL_LITERAL >+ >+ PLUS ::= '+' >+ MINUS ::= '-' >+ MULTIPLY ::= '*' >+ DIVIDE ::= '/' >+ >+ GREATER ::= '>' >+ LESS ::= '<' >+ EQUAL ::= '=' >+ GREATER_EQUAL ::= '>=' >+ LESS_EQUAL ::= '<=' >+ NOT_EQUAL ::= '<>' >+ >+ LPAREN ::= '(' >+ RPAREN ::= ')' >+ LBRACE ::= '{' >+ RBRACE ::= '}' >+ LBRACKET ::= '[' >+ RBRACKET ::= ']' >+ >+ ARROW ::= '->' >+ BAR ::= '|' >+ COMMA ::= ',' >+ COLON ::= ':' >+ COLONCOLON ::= '::' >+ SEMICOLON ::= ';' >+ DOT ::= '.' >+ DOTDOT ::= '..' >+ ATPRE ::= '@pre' >+ >+ CARET ::= '^' >+ CARETCARET ::= '^^' >+ QUESTIONMARK ::= '?' >+ >+%End >+ >+--$EOL >+-- SEMICOLON >+--$End >+ >+--$Start >+-- goal >+--$End >+ >+%Headers >+ /. >+ >+ // Some methods to keep compatibility backwards >+ /** >+ * @since 3.0 >+ */ >+ protected IToken getIToken(int i) { >+ return prsStream.getIToken(i); >+ } >+ >+ protected String getTokenText(int i) { >+ return prsStream.getTokenText(i); >+ } >+ >+ ./ >+%End >+ >+%Rules >+ >+ -- opt = optional >+ -- m = multiple >+ >+ -- >+ -- Define a group of names that we define as keywords for the purpose >+ -- of constructing an LPG grammar, but that are not reserved by OCL >+ -- and are commonly used in models such as the UML metamodel, itself >+ -- >+ >+ binaryIdentifier -> oclIsUndefined >+ binaryIdentifier -> oclIsInvalid >+ binaryIdentifier -> oclIsNew >+ binaryIdentifier -> oclAsType >+ binaryIdentifier -> oclIsKindOf >+ binaryIdentifier -> oclIsTypeOf >+ binaryIdentifier -> EQUAL >+ binaryIdentifier -> NOT_EQUAL >+ binaryIdentifier -> PLUS >+ binaryIdentifier -> MULTIPLY >+ binaryIdentifier -> DIVIDE >+ binaryIdentifier -> GREATER >+ binaryIdentifier -> LESS >+ binaryIdentifier -> GREATER_EQUAL >+ binaryIdentifier -> LESS_EQUAL >+ binaryIdentifier -> and >+ binaryIdentifier -> or >+ binaryIdentifier -> xor >+ >+ unaryIdentifier -> MINUS >+ unaryIdentifier -> not >+ >+ iteratorIdentifier -> forAll >+ iteratorIdentifier -> exists >+ iteratorIdentifier -> isUnique >+ iteratorIdentifier -> any >+ iteratorIdentifier -> one >+ iteratorIdentifier -> collect >+ iteratorIdentifier -> select >+ iteratorIdentifier -> reject >+ iteratorIdentifier -> collectNested >+ iteratorIdentifier -> sortedBy >+ iteratorIdentifier -> closure >+ >+ keywordAsIdentifier1 -> iterate >+ keywordAsIdentifier1 -> iteratorIdentifier >+ keywordAsIdentifier1 -> allInstances >+ keywordAsIdentifier1 -> body >+ keywordAsIdentifier1 -> derive >+ keywordAsIdentifier1 -> init >+ keywordAsIdentifier1 -> Set >+ keywordAsIdentifier1 -> Bag >+ keywordAsIdentifier1 -> Sequence >+ keywordAsIdentifier1 -> Collection >+ keywordAsIdentifier1 -> OrderedSet >+ -------- >+ keywordAsIdentifier -> keywordAsIdentifier1 >+ keywordAsIdentifier -> null >+ >+ binaryName -> simpleNameCS >+ binaryName ::= binaryIdentifier >+ /.$NewCase./ >+ keywordAsName ::= keywordAsIdentifier >+ /.$NewCase./ >+ keywordAsName1 ::= keywordAsIdentifier1 >+ /.$NewCase./ >+ unaryName ::= unaryIdentifier >+ /.$BeginCode >+ SimpleNameCS result = createSimpleNameCS( >+ SimpleTypeEnum.IDENTIFIER_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ iterateName ::= iterate >+ /.$NewCase./ >+ iteratorName ::= iteratorIdentifier >+ /.$NewCase./ >+ oclIsInStateName ::= oclIsInState >+ /.$BeginCode >+ SimpleNameCS result = createSimpleNameCS( >+ SimpleTypeEnum.KEYWORD_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ -- >+ -- the 'operationCS' non-terminal is not referenced in this grammar >+ -- >+ operationCS -> operationCS1 >+ operationCS -> operationCS2 >+ operationCS1 ::= IDENTIFIER '(' parametersCSopt ')' ':' typeCSopt >+ /.$BeginCode >+ CSTNode result = createOperationCS( >+ getTokenText($getToken(1)), >+ (EList)$getSym(3), >+ (TypeCS)$getSym(6) >+ ); >+ if ($getSym(6) != null) { >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(6)); >+ } else { >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(5))); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS2 ::= pathNameCS '::' simpleNameCS '(' parametersCSopt ')' ':' typeCSopt >+ /.$BeginCode >+ CSTNode result = createOperationCS( >+ (PathNameCS)$getSym(1), >+ (SimpleNameCS)$getSym(3), >+ (EList)$getSym(5), >+ (TypeCS)$getSym(8) >+ ); >+ if ($getSym(8) != null) { >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(8)); >+ } else { >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(7))); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ >+ parametersCSopt ::= %empty >+ /.$EmptyListAction./ >+ parametersCSopt -> parametersCS >+ parametersCS ::= variableCS >+ /.$BeginCode >+ EList result = new BasicEList(); >+ result.add($getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ parametersCS ::= parametersCS ',' variableCS >+ /.$BeginCode >+ EList result = (EList)$getSym(1); >+ result.add($getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ simpleNameCSopt ::= %empty >+ /.$NullAction./ >+ simpleNameCSopt -> simpleNameCS >+ >+ oclExpressionCS -> impliesExpCS >+ oclExpressionCS -> impliesWithLet >+ >+ impliesExpCS -> andOrXorExpCS >+ impliesWithLet -> andOrXorWithLet >+ impliesExpCS ::= impliesExpCS implies andOrXorExpCS >+ /.$NewCase./ >+ impliesWithLet ::= impliesExpCS implies andOrXorWithLet >+ /.$NewCase./ >+ >+ andOrXorExpCS -> equalityExpCS >+ andOrXorWithLet -> equalityWithLet >+ andOrXorExpCS ::= andOrXorExpCS and equalityExpCS >+ /.$NewCase./ >+ andOrXorExpCS ::= andOrXorExpCS or equalityExpCS >+ /.$NewCase./ >+ andOrXorExpCS ::= andOrXorExpCS xor equalityExpCS >+ /.$NewCase./ >+ andOrXorWithLet ::= andOrXorExpCS and equalityWithLet >+ /.$NewCase./ >+ andOrXorWithLet ::= andOrXorExpCS or equalityWithLet >+ /.$NewCase./ >+ andOrXorWithLet ::= andOrXorExpCS xor equalityWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ getTokenText($getToken(2)) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ equalityExpCS -> relationalExpCS >+ equalityWithLet -> relationalWithLet >+ equalityExpCS ::= equalityExpCS '=' relationalExpCS >+ /.$NewCase./ >+ equalityWithLet ::= equalityExpCS '=' relationalWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.EQUAL) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ equalityExpCS ::= equalityExpCS '<>' relationalExpCS >+ /.$NewCase./ >+ equalityWithLet ::= equalityExpCS '<>' relationalWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.NOT_EQUAL) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ relationalExpCS -> ifExpCSPrec >+ -- Note that ifExp already embeds let, so we needn't deal with it here >+ relationalWithLet -> additiveWithLet >+ relationalExpCS ::= relationalExpCS '>' ifExpCSPrec >+ /.$NewCase./ >+ relationalWithLet ::= relationalExpCS '>' additiveWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.GREATER_THAN) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ relationalExpCS ::= relationalExpCS '<' ifExpCSPrec >+ /.$NewCase./ >+ relationalWithLet ::= relationalExpCS '<' additiveWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.LESS_THAN) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ relationalExpCS ::= relationalExpCS '>=' ifExpCSPrec >+ /.$NewCase./ >+ relationalWithLet ::= relationalExpCS '>=' additiveWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.GREATER_THAN_EQUAL) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ relationalExpCS ::= relationalExpCS '<=' ifExpCSPrec >+ /.$NewCase./ >+ relationalWithLet ::= relationalExpCS '<=' additiveWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.LESS_THAN_EQUAL) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ ifExpCSPrec -> additiveExpCS >+ ifExpCSPrec -> ifExpCS >+ >+ additiveExpCS -> multiplicativeExpCS >+ additiveWithLet -> multiplicativeWithLet >+ additiveExpCS ::= additiveExpCS '+' multiplicativeExpCS >+ /.$NewCase./ >+ additiveWithLet ::= additiveExpCS '+' multiplicativeWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.PLUS) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ additiveExpCS ::= additiveExpCS '-' multiplicativeExpCS >+ /.$NewCase./ >+ additiveWithLet ::= additiveExpCS '-' multiplicativeWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.MINUS) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ multiplicativeExpCS -> unaryExpCS >+ multiplicativeWithLet -> unaryWithLet >+ multiplicativeExpCS ::= multiplicativeExpCS '*' unaryExpCS >+ /.$NewCase./ >+ multiplicativeWithLet ::= multiplicativeExpCS '*' unaryWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.TIMES) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ multiplicativeExpCS ::= multiplicativeExpCS '/' unaryExpCS >+ /.$NewCase./ >+ multiplicativeWithLet ::= multiplicativeExpCS '/' unaryWithLet >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.DIVIDE) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(2))); >+ EList args = new BasicEList(); >+ args.add($getSym(3)); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(1), >+ simpleNameCS, >+ args >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ unaryExpCS -> dotArrowExpCS >+ unaryWithLet -> letExpCS >+ unaryExpCS ::= '-' unaryExpCS >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ OCLStandardLibraryUtil.getOperationName(PredefinedType.MINUS) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(1))); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(2), >+ simpleNameCS, >+ new BasicEList() >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(2)); >+ $setResult(result); >+ $EndCode >+ ./ >+ unaryExpCS ::= not unaryExpCS >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(simpleNameCS, getIToken($getToken(1))); >+ CSTNode result = createOperationCallExpCS( >+ (OCLExpressionCS)$getSym(2), >+ simpleNameCS, >+ new BasicEList() >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(2)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ dotArrowExpCS -> oclExpCS >+ dotArrowExpCS ::= dotArrowExpCS callExpCS >+ /.$BeginCode >+ CallExpCS result = (CallExpCS)$getSym(2); >+ result.setSource((OCLExpressionCS)$getSym(1)); >+ setOffsets(result, (CSTNode)$getSym(1), result); >+ $setResult(result); >+ $EndCode >+ ./ >+ dotArrowExpCS ::= dotArrowExpCS messageExpCS >+ /.$BeginCode >+ MessageExpCS result = (MessageExpCS)$getSym(2); >+ result.setTarget((OCLExpressionCS)$getSym(1)); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(2)); >+ $setResult(result); >+ $EndCode >+ ./ >+ dotArrowExpCS ::= NUMERIC_OPERATION '(' argumentsCSopt ')' >+ /.$BeginCode >+ // NUMERIC_OPERATION -> Integer '.' Identifier >+ String text = getTokenText(dtParser.getToken(1)); >+ int index = text.indexOf('.'); >+ String integer = text.substring(0, index); >+ String simpleName = text.substring(index + 1); >+ >+ // create the IntegerLiteralExpCS >+ IToken numericToken = getIToken($getToken(1)); >+ int startOffset = numericToken.getStartOffset(); >+ int endOffset = startOffset + integer.length() - 1; // inclusive >+ >+ IntegerLiteralExpCS integerLiteralExpCS = createIntegerLiteralExpCS(integer); >+ integerLiteralExpCS.setStartOffset(startOffset); >+ integerLiteralExpCS.setEndOffset(endOffset); >+ integerLiteralExpCS.setStartToken(numericToken); >+ integerLiteralExpCS.setEndToken(numericToken); >+ >+ startOffset = endOffset + 2; // end of integerLiteral + 1('.') + 1(start of simpleName) >+ endOffset = getIToken($getToken(1)).getEndOffset(); >+ >+ // create the SimpleNameCS >+ SimpleNameCS simpleNameCS = createSimpleNameCS( >+ SimpleTypeEnum.IDENTIFIER_LITERAL, >+ simpleName >+ ); >+ simpleNameCS.setStartOffset(startOffset); >+ simpleNameCS.setEndOffset(endOffset); >+ simpleNameCS.setStartToken(numericToken); >+ simpleNameCS.setEndToken(numericToken); >+ >+ // create the OperationCallExpCS >+ CSTNode result = createOperationCallExpCS( >+ integerLiteralExpCS, >+ simpleNameCS, >+ (EList)$getSym(3) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ -- static operation call (@pre is not permitted in this context) >+ dotArrowExpCS ::= pathNameCS '::' simpleNameCS '(' argumentsCSopt ')' >+ /.$BeginCode >+ OperationCallExpCS result = createOperationCallExpCS( >+ (PathNameCS)$getSym(1), >+ (SimpleNameCS)$getSym(3), >+ (EList)$getSym(5) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(6))); >+ result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ >+ oclExpCS -> variableExpCS >+ oclExpCS -> literalExpCS >+ oclExpCS -> operationCallExpCS >+ oclExpCS -> keywordOperationCallExpCS >+ >+ oclExpCS ::= '(' oclExpressionCS ')' >+ /.$BeginCode >+ CSTNode result = (CSTNode)$getSym(2); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ variableExpCS ::= simpleNameCS isMarkedPreCS >+ /.$NewCase./ >+ variableExpCS ::= keywordAsName1 isMarkedPreCS >+ /.$BeginCode >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)$getSym(2); >+ CSTNode result = createVariableExpCS( >+ (SimpleNameCS)$getSym(1), >+ new BasicEList(), >+ isMarkedPreCS >+ ); >+ if (isMarkedPreCS.isPre()) { >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(2)); >+ } else { >+ setOffsets(result, (CSTNode)$getSym(1)); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ variableExpCS ::= simpleNameCS '[' argumentsCS ']' isMarkedPreCS >+ /.$NewCase./ >+ variableExpCS ::= keywordAsName1 '[' argumentsCS ']' isMarkedPreCS >+ /.$BeginCode >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)$getSym(5); >+ CSTNode result = createVariableExpCS( >+ (SimpleNameCS)$getSym(1), >+ (EList)$getSym(3), >+ isMarkedPreCS >+ ); >+ if (isMarkedPreCS.isPre()) { >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(5)); >+ } else { >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(4))); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ >+ simpleNameCS -> primitiveTypeCS >+ simpleNameCS ::= self >+ /.$BeginCode >+ CSTNode result = createSimpleNameCS( >+ SimpleTypeEnum.SELF_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ simpleNameCS ::= IDENTIFIER >+ /.$BeginCode >+ CSTNode result = createSimpleNameCS( >+ SimpleTypeEnum.IDENTIFIER_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ primitiveTypeCS ::= Integer >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.INTEGER_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= UnlimitedNatural >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.UNLIMITED_NATURAL_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= String >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.STRING_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= Real >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.REAL_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= Boolean >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.BOOLEAN_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= OclAny >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.OCL_ANY_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= OclVoid >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.OCL_VOID_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= Invalid >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.INVALID_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ primitiveTypeCS ::= OclMessage >+ /.$BeginCode >+ CSTNode result = createPrimitiveTypeCS( >+ SimpleTypeEnum.OCL_MESSAGE_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ pathNameCS ::= IDENTIFIER >+ /.$BeginCode >+ CSTNode result = createPathNameCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ pathNameCS ::= pathNameCS '::' simpleNameCS >+ /.$BeginCode >+ PathNameCS result = (PathNameCS)$getSym(1); >+ result = extendPathNameCS(result, getTokenText(dtParser.getToken(3))); >+ setOffsets(result, result, (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ pathNameCSOpt ::= %empty >+ /.$BeginCode >+ CSTNode result = createPathNameCS(); >+ $setResult(result); >+ $EndCode >+ ./ >+ pathNameCSOpt -> pathNameCS >+ >+ literalExpCS -> enumLiteralExpCS >+ literalExpCS -> collectionLiteralExpCS >+ literalExpCS -> tupleLiteralExpCS >+ literalExpCS -> primitiveLiteralExpCS >+ literalExpCS -> nullLiteralExpCS >+ literalExpCS -> invalidLiteralExpCS >+ >+ -- also covers the case of static attribute call, in which >+ -- case @pre is not allowed anyway >+ enumLiteralExpCS ::= pathNameCS '::' keywordAsName >+ /.$NewCase./ >+ enumLiteralExpCS ::= pathNameCS '::' simpleNameCS >+ /.$BeginCode >+ CSTNode result = createEnumLiteralExpCS( >+ (PathNameCS)$getSym(1), >+ (SimpleNameCS)$getSym(3) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ collectionLiteralExpCS ::= collectionTypeIdentifierCS '{' collectionLiteralPartsCSopt '}' >+ /.$BeginCode >+ Object[] objs = (Object[])$getSym(1); >+ CSTNode result = createCollectionLiteralExpCS( >+ (CollectionTypeIdentifierEnum)objs[1], >+ (EList)$getSym(3) >+ ); >+ setOffsets(result, (IToken)objs[0], getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ collectionTypeIdentifierCS ::= Set >+ /.$BeginCode >+ $setResult(new Object[]{getIToken($getToken(1)), CollectionTypeIdentifierEnum.SET_LITERAL}); >+ $EndCode >+ ./ >+ collectionTypeIdentifierCS ::= Bag >+ /.$BeginCode >+ $setResult(new Object[]{getIToken($getToken(1)), CollectionTypeIdentifierEnum.BAG_LITERAL}); >+ $EndCode >+ ./ >+ collectionTypeIdentifierCS ::= Sequence >+ /.$BeginCode >+ $setResult(new Object[]{getIToken($getToken(1)), CollectionTypeIdentifierEnum.SEQUENCE_LITERAL}); >+ $EndCode >+ ./ >+ collectionTypeIdentifierCS ::= Collection >+ /.$BeginCode >+ $setResult(new Object[]{getIToken($getToken(1)), CollectionTypeIdentifierEnum.COLLECTION_LITERAL}); >+ $EndCode >+ ./ >+ collectionTypeIdentifierCS ::= OrderedSet >+ /.$BeginCode >+ $setResult(new Object[]{getIToken($getToken(1)), CollectionTypeIdentifierEnum.ORDERED_SET_LITERAL}); >+ $EndCode >+ ./ >+ >+ collectionLiteralPartsCSopt ::= %empty >+ /.$EmptyListAction./ >+ collectionLiteralPartsCSopt -> collectionLiteralPartsCS >+ >+ collectionLiteralPartsCS ::= collectionLiteralPartCS >+ /.$BeginCode >+ EList result = new BasicEList(); >+ result.add($getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ collectionLiteralPartsCS ::= collectionLiteralPartsCS ',' collectionLiteralPartCS >+ /.$BeginCode >+ EList result = (EList)$getSym(1); >+ result.add($getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ collectionLiteralPartCS -> collectionRangeCS >+ collectionLiteralPartCS ::= oclExpressionCS >+ /.$BeginCode >+ CSTNode result = createCollectionLiteralPartCS( >+ (OCLExpressionCS)$getSym(1) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ collectionRangeCS ::= '-' INTEGER_RANGE_START oclExpressionCS >+ /.$BeginCode >+ OCLExpressionCS rangeStart = createRangeStart( >+ getTokenText($getToken(2)), true); >+ CSTNode result = createCollectionRangeCS( >+ rangeStart, >+ (OCLExpressionCS)$getSym(3) >+ ); >+ setOffsets(result, rangeStart, (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ collectionRangeCS ::= INTEGER_RANGE_START oclExpressionCS >+ /.$BeginCode >+ OCLExpressionCS rangeStart = createRangeStart( >+ getTokenText($getToken(1)), false); >+ CSTNode result = createCollectionRangeCS( >+ rangeStart, >+ (OCLExpressionCS)$getSym(2) >+ ); >+ setOffsets(result, rangeStart, (CSTNode)$getSym(2)); >+ $setResult(result); >+ $EndCode >+ ./ >+ collectionRangeCS ::= oclExpressionCS '..' oclExpressionCS >+ /.$BeginCode >+ CSTNode result = createCollectionRangeCS( >+ (OCLExpressionCS)$getSym(1), >+ (OCLExpressionCS)$getSym(3) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ primitiveLiteralExpCS -> integerLiteralExpCS >+ primitiveLiteralExpCS -> unlimitedNaturalLiteralExpCS >+ primitiveLiteralExpCS -> realLiteralExpCS >+ primitiveLiteralExpCS -> stringLiteralExpCS >+ primitiveLiteralExpCS -> booleanLiteralExpCS >+ >+ tupleLiteralExpCS ::= Tuple '{' variableListCS2 '}' >+ /.$BeginCode >+ CSTNode result = createTupleLiteralExpCS((EList)$getSym(3)); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ integerLiteralExpCS ::= INTEGER_LITERAL >+ /.$BeginCode >+ CSTNode result = createIntegerLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ unlimitedNaturalLiteralExpCS ::= '*' >+ /.$BeginCode >+ CSTNode result = createUnlimitedNaturalLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ realLiteralExpCS ::= REAL_LITERAL >+ /.$BeginCode >+ CSTNode result = createRealLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ stringLiteralExpCS ::= STRING_LITERAL >+ /.$BeginCode >+ IToken literalToken = getIToken($getToken(1)); >+ StringLiteralExpCS result = createStringLiteralExpCS(literalToken.toString()); >+ result.setUnescapedStringSymbol(unescape(literalToken)); >+ setOffsets(result, literalToken); >+ $setResult(result); >+ $EndCode >+ ./ >+ booleanLiteralExpCS ::= true >+ /.$BeginCode >+ CSTNode result = createBooleanLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ booleanLiteralExpCS ::= false >+ /.$BeginCode >+ CSTNode result = createBooleanLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ nullLiteralExpCS ::= null >+ /.$BeginCode >+ CSTNode result = createNullLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ invalidLiteralExpCS ::= OclInvalid >+ /.$BeginCode >+ CSTNode result = createInvalidLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ >+ callExpCS ::= '->' featureCallExpCS >+ /.$NewCase./ >+ callExpCS ::= '->' loopExpCS >+ /.$BeginCode >+ CallExpCS result = (CallExpCS)$getSym(2); >+ result.setAccessor(DotOrArrowEnum.ARROW_LITERAL); >+ $setResult(result); >+ $EndCode >+ ./ >+ callExpCS ::= '.' keywordOperationCallExpCS >+ /.$NewCase./ >+ callExpCS ::= '.' featureCallExpCS >+ /.$BeginCode >+ CallExpCS result = (CallExpCS)$getSym(2); >+ result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ loopExpCS -> iteratorExpCS >+ loopExpCS -> iterateExpCS >+ >+ iteratorExpCS ::= iteratorName '(' oclExpressionCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createIteratorExpCS( >+ simpleNameCS, >+ null, >+ null, >+ (OCLExpressionCS)$getSym(3) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ iteratorExpCS ::= iteratorName '(' variableCS '|' oclExpressionCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createIteratorExpCS( >+ simpleNameCS, >+ (VariableCS)$getSym(3), >+ null, >+ (OCLExpressionCS)$getSym(5) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(6))); >+ $setResult(result); >+ $EndCode >+ ./ >+ iteratorExpCS ::= iteratorName '(' variableCS ',' variableCS '|' oclExpressionCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createIteratorExpCS( >+ simpleNameCS, >+ (VariableCS)$getSym(3), >+ (VariableCS)$getSym(5), >+ (OCLExpressionCS)$getSym(7) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(8))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ iterateExpCS ::= iterateName '(' variableCS '|' oclExpressionCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createIterateExpCS( >+ simpleNameCS, >+ (VariableCS)$getSym(3), >+ null, >+ (OCLExpressionCS)$getSym(5) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(6))); >+ $setResult(result); >+ $EndCode >+ ./ >+ iterateExpCS ::= iterateName '(' variableCS ';' variableCS '|' oclExpressionCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createIterateExpCS( >+ simpleNameCS, >+ (VariableCS)$getSym(3), >+ (VariableCS)$getSym(5), >+ (OCLExpressionCS)$getSym(7) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(8))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ variableCS ::= IDENTIFIER >+ /.$BeginCode >+ CSTNode result = createVariableCS( >+ getTokenText($getToken(1)), >+ null, >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ typedVariableCS ::= IDENTIFIER ':' typeCS >+ /.$BeginCode >+ CSTNode result = createVariableCS( >+ getTokenText($getToken(1)), >+ (TypeCS)$getSym(3), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ variableCS -> typedVariableCS >+ variableCS ::= IDENTIFIER ':' typeCS '=' oclExpressionCS >+ /.$BeginCode >+ CSTNode result = createVariableCS( >+ getTokenText($getToken(1)), >+ (TypeCS)$getSym(3), >+ (OCLExpressionCS)$getSym(5) >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(5)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ -- this form of variable declaration is only used in tuple literals >+ variableCS2 ::= IDENTIFIER '=' oclExpressionCS >+ /.$BeginCode >+ CSTNode result = createVariableCS( >+ getTokenText($getToken(1)), >+ null, >+ (OCLExpressionCS)$getSym(3) >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ typeCSopt ::= %empty >+ /.$NullAction./ >+ typeCSopt -> typeCS >+ >+ -- the order of these rules is important! Try to match primitives >+ -- first, then tuples (more complex), and finally collections. >+ -- Looking for type names in the Ecore model is a last resort >+ typeCS -> primitiveTypeCS >+ typeCS -> tupleTypeCS >+ typeCS -> collectionTypeCS >+ typeCS -> pathNameCS >+ >+ collectionTypeCS ::= collectionTypeIdentifierCS '(' typeCS ')' >+ /.$BeginCode >+ Object[] objs = (Object[])$getSym(1); >+ CSTNode result = createCollectionTypeCS( >+ (CollectionTypeIdentifierEnum)objs[1], >+ (TypeCS)$getSym(3) >+ ); >+ setOffsets(result, (IToken)objs[0], getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ tupleTypeCS ::= Tuple '(' variableListCSopt ')' >+ /.$BeginCode >+ CSTNode result = createTupleTypeCS((EList)$getSym(3)); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ >+ variableListCSopt ::= %empty >+ /.$EmptyListAction./ >+ variableListCSopt -> variableListCS >+ variableListCS ::= variableCS >+ /.$BeginCode >+ EList result = new BasicEList(); >+ result.add($getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ variableListCS ::= variableListCS ',' variableCS >+ /.$BeginCode >+ EList result = (EList)$getSym(1); >+ result.add($getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ -- this form of variable declaration list is only used in tuple literals >+ variableListCS2 ::= variableCS2 >+ /.$NewCase./ >+ variableListCS2 ::= variableCS >+ /.$BeginCode >+ EList result = new BasicEList(); >+ result.add($getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ variableListCS2 ::= variableListCS2 ',' variableCS2 >+ /.$NewCase./ >+ variableListCS2 ::= variableListCS2 ',' variableCS >+ /.$BeginCode >+ EList result = (EList)$getSym(1); >+ result.add($getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ -- covers attributeCallExpCS and navigationCallExpCS >+ featureCallExpCS -> attrOrNavCallExpCS >+ >+ featureCallExpCS -> operationCallExpCS >+ featureCallExpCS ::= unaryName isMarkedPreCS '(' argumentsCSopt ')' >+ /.$NewCase./ >+ -- even though these operations do not use @pre or do not accept multiple arguments >+ -- in order to get better error reporting, the rule signature must comply with >+ -- the full rule of an operationCallExpCS >+ -- the alternative would be to remove these as keywords, but then the parser >+ -- would accept variable declarations where the var can be named "oclIsNew" for example >+ operationCallExpCS ::= binaryName isMarkedPreCS '(' argumentsCSopt ')' >+ /.$NewCase./ >+ keywordOperationCallExpCS ::= keywordAsName isMarkedPreCS '(' argumentsCSopt ')' >+ /.$BeginCode >+ CSTNode result = createOperationCallExpCS( >+ (SimpleNameCS)$getSym(1), >+ (IsMarkedPreCS)$getSym(2), >+ (EList)$getSym(4) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ stateExpCS ::= pathNameCSOpt >+ /.$BeginCode >+ PathNameCS pathNameCS = (PathNameCS)$getSym(1); >+ StateExpCS result = createStateExpCS(pathNameCS); >+ setOffsets(result, pathNameCS); >+ $setResult(result); >+ $EndCode >+ ./ >+ -- FIXME StateExpCS creates a needless irregularity; unwrap its content as an argument list >+ operationCallExpCS ::= oclIsInStateName isMarkedPreCS '(' stateExpCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createOperationCallExpCS( >+ simpleNameCS, >+ (IsMarkedPreCS)$getSym(2), >+ (StateExpCS)$getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ attrOrNavCallExpCS ::= simpleNameCS isMarkedPreCS >+ /.$NewCase./ >+ attrOrNavCallExpCS ::= keywordAsName isMarkedPreCS >+ /.$BeginCode >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)$getSym(2); >+ CSTNode result = createFeatureCallExpCS( >+ (SimpleNameCS)$getSym(1), >+ new BasicEList(), >+ isMarkedPreCS >+ ); >+ if (isMarkedPreCS.isPre()) { >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(2)); >+ } else { >+ setOffsets(result, (CSTNode)$getSym(1)); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ attrOrNavCallExpCS ::= simpleNameCS '[' argumentsCS ']' isMarkedPreCS >+ /.$BeginCode >+ IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)$getSym(5); >+ CSTNode result = createFeatureCallExpCS( >+ (SimpleNameCS)$getSym(1), >+ (EList)$getSym(3), >+ isMarkedPreCS >+ ); >+ if (isMarkedPreCS.isPre()) { >+ setOffsets(result, (CSTNode)$getSym(1), (CSTNode)$getSym(5)); >+ } else { >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(4))); >+ } >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ isMarkedPreCS ::= %empty >+ /.$BeginCode >+ CSTNode result = createIsMarkedPreCS(false); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ isMarkedPreCS ::= '@pre' >+ /.$BeginCode >+ CSTNode result = createIsMarkedPreCS(true); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ argumentsCSopt ::= %empty >+ /.$EmptyListAction./ >+ argumentsCSopt -> argumentsCS >+ >+ argumentsCS ::= oclExpressionCS >+ /.$BeginCode >+ EList result = new BasicEList(); >+ result.add($getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ argumentsCS ::= argumentsCS ',' oclExpressionCS >+ /.$BeginCode >+ EList result = (EList)$getSym(1); >+ result.add($getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ letExpCS ::= let variableListCS in oclExpressionCS >+ /.$BeginCode >+ CSTNode result = createLetExpCS( >+ (EList)$getSym(2), >+ (OCLExpressionCS)$getSym(4) >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(4)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ ifExpCS ::= if oclExpressionCS then oclExpressionCS else oclExpressionCS endif >+ /.$BeginCode >+ CSTNode result = createIfExpCS( >+ (OCLExpressionCS)$getSym(2), >+ (OCLExpressionCS)$getSym(4), >+ (OCLExpressionCS)$getSym(6) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(7))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ messageExpCS ::= '^' simpleNameCS '(' oclMessageArgumentsCSopt ')' >+ /.$NewCase./ >+ messageExpCS ::= '^^' simpleNameCS '(' oclMessageArgumentsCSopt ')' >+ /.$BeginCode >+ CSTNode result = createMessageExpCS( >+ getIToken($getToken(1)).getKind() == $sym_type.TK_CARET, >+ (SimpleNameCS)$getSym(2), >+ (EList<OCLMessageArgCS>)$getSym(4) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ oclMessageArgumentsCSopt ::= %empty >+ /.$EmptyListAction./ >+ oclMessageArgumentsCSopt -> oclMessageArgumentsCS >+ >+ oclMessageArgumentsCS ::= oclMessageArgCS >+ /.$BeginCode >+ EList result = new BasicEList(); >+ result.add($getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ oclMessageArgumentsCS ::= oclMessageArgumentsCS ',' oclMessageArgCS >+ /.$BeginCode >+ EList result = (EList)$getSym(1); >+ result.add($getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ oclMessageArgCS ::= oclExpressionCS >+ /.$BeginCode >+ CSTNode result = createOCLMessageArgCS( >+ null, >+ (OCLExpressionCS)$getSym(1) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1)); >+ $setResult(result); >+ $EndCode >+ ./ >+ oclMessageArgCS ::= '?' >+ /.$BeginCode >+ CSTNode result = createOCLMessageArgCS( >+ null, >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ oclMessageArgCS ::= '?' ':' typeCS >+ /.$BeginCode >+ CSTNode result = createOCLMessageArgCS( >+ (TypeCS)$getSym(3), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), (CSTNode)$getSym(3)); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+%End >Index: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.gi >diff -N src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/backtracking/OCLBacktrackingLexer.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,42 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2008, 2009 Eclipse.org, Open Canarias S.L., and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * IBM - Initial API and implementation >+-- * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: OCLBacktrackingLexer.g,v 1.1 2009/01/13 20:31:30 cdamus Exp $ >+-- */ >+-- >+-- The OCL Backtracking Lexer, which is nominally identical to the >+-- normal Lexer, however the extra ERROR_TOKEN symbol makes it difficult >+-- to share reliably. >+-- >+ >+%options escape=$ >+%options la=2 >+%options fp=OCLBacktrackingLexer,prefix=Char_ >+%options single-productions >+%options noserialize >+%options package=org.eclipse.ocl.parser.backtracking >+%options template=../../lpg/LexerTemplateF.gi >+%options filter=OCLBacktrackingKWLexer.gi >+%options export_terminals=("OCLBacktrackingParsersym.java", "TK_") >+%options include_directory="..;../../lpg" >+ >+%Import >+ OCLLexer.gi >+%End >+ >+%Define >+ $kw_lexer_class /.OCLBacktrackingKWLexer./ >+%End >Index: src/org/eclipse/ocl/parser/backtracking/EssentialOCLErrors.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/backtracking/EssentialOCLErrors.gi >diff -N src/org/eclipse/ocl/parser/backtracking/EssentialOCLErrors.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/backtracking/EssentialOCLErrors.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,419 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2008, 2009 Eclipse.org, Open Canarias S.L, and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * E.D.Willink - Initial API and implementation >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: EssentialOCLErrors.g,v 1.1 2009/01/13 20:31:30 cdamus Exp $ >+-- */ >+-- >+-- Additional ERROR_TOKEN rules for The EssentialOCL Backtracking Parser >+-- >+ >+%Rules >+ ERROR_Colon ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_COLON); >+ $EndCode >+ ./ >+ ERROR_Empty ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.EXTRA_TOKENS); >+ $EndCode >+ ./ >+ ERROR_IsMarkedPreCS ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_AT_PRE); >+ IsMarkedPreCS result = createIsMarkedPreCS(false); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ ERROR_PathNameCS ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_PATH_NAME); >+ CSTNode result = createPathNameCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ ERROR_SimpleNameCS ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_SIMPLE_NAME); >+ SimpleNameCS result = createSimpleNameCS( >+ SimpleTypeEnum.IDENTIFIER_LITERAL, >+ getTokenText($getToken(1)) >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ attrOrNavCallExpCS ::= simpleNameCS '[' argumentsCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(4), OCLParserErrors.MISSING_RBRACK); >+ CSTNode result = createFeatureCallExpCS( >+ (SimpleNameCS)$getSym(1), >+ (EList)$getSym(3), >+ createIsMarkedPreCS(false) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ collectionTypeCS ::= collectionTypeIdentifierCS '(' typeCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(4), OCLParserErrors.MISSING_RPAREN); >+ Object[] objs = (Object[])$getSym(1); >+ CSTNode result = createCollectionTypeCS( >+ (CollectionTypeIdentifierEnum)objs[1], >+ (TypeCS)$getSym(3) >+ ); >+ setOffsets(result, (IToken)objs[0], getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ collectionTypeCS ::= collectionTypeIdentifierCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(2), OCLParserErrors.MISSING_LPAREN); >+ Object[] objs = (Object[])$getSym(1); >+ CSTNode result = createCollectionTypeCS( >+ (CollectionTypeIdentifierEnum)objs[1], >+ null >+ ); >+ setOffsets(result, (IToken)objs[0], getIToken($getToken(2))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ dotArrowExpCS ::= pathNameCS '::' ERROR_SimpleNameCS '(' argumentsCSopt ')' >+ /.$BeginCode >+ OperationCallExpCS result = createOperationCallExpCS( >+ (PathNameCS)$getSym(1), >+ (SimpleNameCS)$getSym(3), >+ (EList)$getSym(5) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(6))); >+ result.setAccessor(DotOrArrowEnum.DOT_LITERAL); >+ $setResult(result); >+ $EndCode >+ ./ >+-- FIXME dotArrowExpCS ::= NUMERIC_OPERATION ERROR_SimpleNameCS >+ >+ enumLiteralExpCS ::= pathNameCS '::' ERROR_SimpleNameCS >+ /.$BeginCode >+ PathNameCS pathNameCS = (PathNameCS)$getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(3); >+ CSTNode result = createEnumLiteralExpCS( >+ pathNameCS, >+ simpleNameCS >+ ); >+ setOffsets(result, pathNameCS, simpleNameCS); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ featureCallExpCS ::= unaryName ERROR_IsMarkedPreCS '(' argumentsCSopt ')' >+ /.$NewCase./ >+ keywordOperationCallExpCS ::= keywordAsName ERROR_IsMarkedPreCS '(' argumentsCSopt ')' >+ /.$NewCase./ >+ operationCallExpCS ::= binaryName ERROR_IsMarkedPreCS '(' argumentsCSopt ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createOperationCallExpCS( >+ simpleNameCS, >+ (IsMarkedPreCS)$getSym(2), >+ (EList)$getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCallExpCS ::= oclIsInStateName ERROR_IsMarkedPreCS '(' stateExpCS ')' >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(1); >+ CSTNode result = createOperationCallExpCS( >+ simpleNameCS, >+ (IsMarkedPreCS)$getSym(2), >+ (StateExpCS)$getSym(4) >+ ); >+ setOffsets(result, simpleNameCS, getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ ifExpCS ::= if oclExpressionCS then oclExpressionCS else oclExpressionCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(7), OCLParserErrors.MISSING_ENDIF); >+ CSTNode result = createIfExpCS( >+ (OCLExpressionCS)$getSym(2), >+ (OCLExpressionCS)$getSym(4), >+ (OCLExpressionCS)$getSym(6) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(7))); >+ $setResult(result); >+ $EndCode >+ ./ >+ ifExpCS ::= if oclExpressionCS then oclExpressionCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(5), OCLParserErrors.MISSING_ELSE_ENDIF); >+ CSTNode result = createIfExpCS( >+ (OCLExpressionCS)$getSym(2), >+ (OCLExpressionCS)$getSym(4), >+ createInvalidLiteralExpCS(getTokenText($getToken(5))) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ ifExpCS ::= if oclExpressionCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(3), OCLParserErrors.MISSING_THEN_ELSE_ENDIF); >+ CSTNode result = createIfExpCS( >+ (OCLExpressionCS)$getSym(2), >+ createInvalidLiteralExpCS(getTokenText($getToken(3))), >+ createInvalidLiteralExpCS(getTokenText($getToken(3))) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ ifExpCS ::= if ERROR_TOKEN endif >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(3), OCLParserErrors.MISSING_THEN_ELSE); >+ CSTNode result = createIfExpCS( >+ createInvalidLiteralExpCS(getTokenText($getToken(2))), >+ createInvalidLiteralExpCS(getTokenText($getToken(2))), >+ createInvalidLiteralExpCS(getTokenText($getToken(2))) >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ messageExpCS ::= '^' simpleNameCS ERROR_TOKEN >+ /.$NewCase./ >+ messageExpCS ::= '^^' simpleNameCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_MESSAGE_ARGUMENTS); >+ CSTNode result = createMessageExpCS( >+ getIToken($getToken(1)).getKind() == $sym_type.TK_CARET, >+ (SimpleNameCS)$getSym(2), >+ new BasicEList<OCLMessageArgCS>() >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ messageExpCS ::= '^' ERROR_SimpleNameCS >+ /.$NewCase./ >+ messageExpCS ::= '^^' ERROR_SimpleNameCS >+ /.$BeginCode >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(2); >+ CSTNode result = createMessageExpCS( >+ getIToken($getToken(1)).getKind() == $sym_type.TK_CARET, >+ simpleNameCS, >+ new BasicEList<OCLMessageArgCS>() >+ ); >+ setOffsets(result, getIToken($getToken(1)), simpleNameCS); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ oclExpCS ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_EXPR); >+ CSTNode result = createInvalidLiteralExpCS(getTokenText($getToken(1))); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ oclExpCS ::= '(' oclExpressionCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(3), OCLParserErrors.MISSING_RPAREN); >+ CSTNode result = (CSTNode)$getSym(2); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ operationCS1 ::= IDENTIFIER '(' parametersCSopt ')' ERROR_Colon >+ /.$BeginCode >+ CSTNode result = createOperationCS( >+ getTokenText($getToken(1)), >+ (EList)$getSym(3), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(5))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS1 ::= IDENTIFIER '(' parametersCSopt ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(4), OCLParserErrors.MISSING_RPAREN); >+ CSTNode result = createOperationCS( >+ getTokenText($getToken(1)), >+ (EList)$getSym(3), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS1 ::= IDENTIFIER ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(2), OCLParserErrors.MISSING_LPAREN); >+ CSTNode result = createOperationCS( >+ getTokenText($getToken(1)), >+ new BasicEList(), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(2))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS1 ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_IDENTIFIER); >+ CSTNode result = createOperationCS( >+ getTokenText($getToken(1)), >+ new BasicEList(), >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS2 ::= pathNameCS '::' simpleNameCS '(' parametersCSopt ')' ERROR_Colon >+ /.$BeginCode >+ PathNameCS pathNameCS = (PathNameCS)$getSym(1); >+ CSTNode result = createOperationCS( >+ pathNameCS, >+ (SimpleNameCS)$getSym(3), >+ (EList)$getSym(5), >+ (TypeCS)$getSym(8) >+ ); >+ setOffsets(result, pathNameCS, getIToken($getToken(7))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS2 ::= pathNameCS '::' simpleNameCS '(' parametersCSopt ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(6), OCLParserErrors.MISSING_RPAREN); >+ PathNameCS pathNameCS = (PathNameCS)$getSym(1); >+ CSTNode result = createOperationCS( >+ pathNameCS, >+ (SimpleNameCS)$getSym(3), >+ (EList)$getSym(5), >+ null >+ ); >+ setOffsets(result, pathNameCS, getIToken($getToken(7))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS2 ::= pathNameCS '::' simpleNameCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(4), OCLParserErrors.MISSING_LPAREN); >+ PathNameCS pathNameCS = (PathNameCS)$getSym(1); >+ CSTNode result = createOperationCS( >+ pathNameCS, >+ (SimpleNameCS)$getSym(3), >+ new BasicEList(), >+ null >+ ); >+ setOffsets(result, pathNameCS, getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ operationCS2 ::= pathNameCS '::' ERROR_SimpleNameCS >+ /.$BeginCode >+ PathNameCS pathNameCS = (PathNameCS)$getSym(1); >+ SimpleNameCS simpleNameCS = (SimpleNameCS)$getSym(3); >+ CSTNode result = createOperationCS( >+ pathNameCS, >+ simpleNameCS, >+ new BasicEList(), >+ null >+ ); >+ setOffsets(result, pathNameCS, simpleNameCS); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ parametersCS ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_PARAMETERS); >+ EList result = new BasicEList(); >+ $setResult(result); >+ $EndCode >+ ./ >+ parametersCS ::= parametersCS ',' ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(3), OCLParserErrors.MISSING_PARAMETER); >+ $EndCode >+ ./ >+ >+ pathNameCS -> ERROR_PathNameCS >+ >+ simpleNameCSopt -> ERROR_SimpleNameCS >+ >+ tupleLiteralExpCS ::= Tuple ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(7), OCLParserErrors.MISSING_LBRACE); >+ CSTNode result = createTupleLiteralExpCS((EList)$getSym(3)); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ variableCS ::= IDENTIFIER ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(2), OCLParserErrors.MISSING_VARIABLE_TYPE); >+ CSTNode result = createVariableCS( >+ getTokenText($getToken(1)), >+ null, >+ null >+ ); >+ setOffsets(result, getIToken($getToken(1)), getIToken($getToken(2))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ variableExpCS ::= simpleNameCS '[' argumentsCS ERROR_TOKEN >+ /.$NewCase./ >+ variableExpCS ::= keywordAsName1 '[' argumentsCS ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(4), OCLParserErrors.MISSING_RBRACK); >+ CSTNode result = createVariableExpCS( >+ (SimpleNameCS)$getSym(1), >+ (EList)$getSym(3), >+ createIsMarkedPreCS(false) >+ ); >+ setOffsets(result, (CSTNode)$getSym(1), getIToken($getToken(4))); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+ variableListCS ::= ERROR_TOKEN >+ /.$NewCase./ >+ variableListCS2 ::= ERROR_TOKEN >+ /.$BeginCode >+ reportErrorTokenMessage($getToken(1), OCLParserErrors.MISSING_VARIABLES); >+ EList result = new BasicEList(); >+ $setResult(result); >+ $EndCode >+ ./ >+ >+%End >Index: src/org/eclipse/ocl/lpg/LexerTemplateF.gi >=================================================================== >RCS file: src/org/eclipse/ocl/lpg/LexerTemplateF.gi >diff -N src/org/eclipse/ocl/lpg/LexerTemplateF.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/lpg/LexerTemplateF.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,331 @@ >+-- >+-- An instance of this template must have a $Export section and the export_terminals option >+-- >+-- Macros that may be redefined in an instance of this template >+-- >+-- $eof_token >+-- $additional_interfaces >+-- $super_stream_class -- subclass com.ibm.lpg.LpgLexStream for getKind >+-- $prs_stream_class -- use /.PrsStream./ if not subclassing >+-- >+-- B E G I N N I N G O F T E M P L A T E LexerTemplateF >+-- >+%Options programming_language=java,margin=4 >+%Options table >+%options action-block=("*.java", "/.", "./") >+%options ParseTable=lpg.runtime.ParseTable >+%Options prefix=Char_ >+ >+-- >+-- This template requires that the name of the EOF token be set >+-- to EOF and that the prefix be "Char_" to be consistent with >+-- KeywordTemplateD. >+-- >+%Eof >+ EOF >+%End >+ >+-- >+-- This template also requires that the name of the parser EOF >+-- Token to be exported be set to EOF_TOKEN >+-- >+%Export >+ EOF_TOKEN >+%End >+ >+%Define >+ -- >+ -- Macros that are be needed in an instance of this template >+ -- >+ $eof_token /.$_EOF_TOKEN./ >+ >+ $additional_interfaces /../ >+ $super_lexer_class /.AbstractLexer./ >+ $super_stream_class /.$file_prefix$Stream./ >+ $prs_stream_class /.OCLParserStream./ >+ >+ $environment_class /.BasicEnvironment./ >+ $adapt_environment /.environment./ >+ >+ $prs_stream /. // macro prs_stream is deprecated. Use function getPrsStream >+ getPrsStream()./ >+ $setSym1 /. // macro setSym1 is deprecated. Use function setResult >+ lexParser.setSym1./ >+ $setResult /. // macro setResult is deprecated. Use function setResult >+ lexParser.setSym1./ >+ $getSym /. // macro getSym is deprecated. Use function getLastToken >+ lexParser.getSym./ >+ $getToken /. // macro getToken is deprecated. Use function getToken >+ lexParser.getToken./ >+ $getLeftSpan /. // macro getLeftSpan is deprecated. Use function getLeftSpan >+ lexParser.getFirstToken./ >+ $getRightSpan /. // macro getRightSpan is deprecated. Use function getRightSpan >+ lexParser.getLastToken./ >+ >+ -- >+ -- Macros useful for specifying actions >+ -- >+ $Header >+ /. >+ // >+ // Rule $rule_number: $rule_text >+ // >+ ./ >+ >+ $DefaultAction >+ /.$Header$case $rule_number: { ./ >+ >+ $BeginAction /.$DefaultAction./ >+ >+ $EndAction >+ /. break; >+ }./ >+ >+ $BeginJava >+ /.$BeginAction >+ $symbol_declarations./ >+ >+ $EndJava /.$EndAction./ >+ >+ $NoAction >+ /.$Header$case $rule_number: >+ break; ./ >+ >+ $BeginActions >+ /. >+ public void ruleAction(int ruleNumber) >+ { >+ switch(ruleNumber) >+ {./ >+ >+ $SplitActions >+ /. >+ default: >+ ruleAction$rule_number(ruleNumber); >+ break; >+ } >+ return; >+ } >+ >+ public void ruleAction$rule_number(int ruleNumber) >+ { >+ switch (ruleNumber) >+ {./ >+ >+ $EndActions >+ /. >+ default: >+ break; >+ } >+ return; >+ }./ >+%End >+ >+%Globals >+ /.import lpg.runtime.*; >+ import org.eclipse.ocl.lpg.AbstractLexer; >+ import org.eclipse.ocl.lpg.AbstractLexerStream; >+ import org.eclipse.ocl.lpg.OCLParserStream; >+ ./ >+%End >+ >+%Headers >+ /. >+ @SuppressWarnings("nls") >+ public class $action_type extends $super_lexer_class implements RuleAction$additional_interfaces >+ { >+ private $super_stream_class lexStream; >+ >+ private static ParseTable prs = new $prs_type(); >+ public ParseTable getParseTable() { return prs; } >+ >+ private LexParser lexParser = new LexParser(); >+ public LexParser getParser() { return lexParser; } >+ >+ public int getToken(int i) { return lexParser.getToken(i); } >+ public int getRhsFirstTokenIndex(int i) { return lexParser.getFirstToken(i); } >+ public int getRhsLastTokenIndex(int i) { return lexParser.getLastToken(i); } >+ >+ public int getLeftSpan() { return lexParser.getToken(1); } >+ public int getRightSpan() { return lexParser.getLastToken(); } >+ >+ public void resetKeywordLexer() >+ { >+ if (kwLexer == null) >+ this.kwLexer = new $kw_lexer_class(lexStream.getInputChars(), $_IDENTIFIER); >+ else this.kwLexer.setInputChars(lexStream.getInputChars()); >+ } >+ >+ public void reset(String filename, int tab) throws java.io.IOException >+ { >+ lexStream = new $super_stream_class(getOCLEnvironment(), filename, tab); >+ lexParser.reset(lexStream, prs, this); >+ resetKeywordLexer(); >+ } >+ >+ public void reset(char[] input_chars, String filename) >+ { >+ reset(input_chars, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ public void reset(char[] input_chars, String filename, int tab) >+ { >+ lexStream = new $super_stream_class(getOCLEnvironment(), input_chars, filename, tab); >+ lexParser.reset(lexStream, prs, this); >+ resetKeywordLexer(); >+ } >+ >+ // OCL addition to reset the lexer stream from an input reader >+ public void reset(Reader reader, String filename) throws java.io.IOException { >+ reset(reader, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ // OCL addition to reset the lexer stream from an input reader >+ public void reset(Reader reader, String filename, int tab) throws java.io.IOException { >+ char[] input_chars = getInputChars(reader); >+ reset(input_chars, filename, tab); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public $action_type($environment_class environment, String filename, int tab) throws java.io.IOException { >+ super($adapt_environment); >+ reset(filename, tab); >+ oclEnvironment = environment; >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public $action_type($environment_class environment, String filename) throws java.io.IOException{ >+ this(environment, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ public $action_type($environment_class environment, char[] input_chars, String filename, int tab) { >+ super($adapt_environment); >+ reset(input_chars, filename, tab); >+ oclEnvironment = environment; >+ } >+ >+ public $action_type($environment_class environment, char[] chars) { >+ this(environment, chars, "OCL", ECLIPSE_TAB_VALUE); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public $action_type($environment_class environment, Reader reader) throws java.io.IOException { >+ this(environment, reader, "OCL"); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public $action_type($environment_class environment, Reader reader, String filename) throws java.io.IOException { >+ this(environment, reader, filename, ECLIPSE_TAB_VALUE); >+ } >+ >+ /** >+ * @since 3.0 >+ */ >+ public $action_type($environment_class environment, Reader reader, String filename, int tab) throws java.io.IOException { >+ super($adapt_environment); >+ reset(reader, filename, tab); >+ oclEnvironment = environment; >+ } >+ >+ private final $environment_class oclEnvironment; >+ >+ public $environment_class getOCLEnvironment() { >+ return oclEnvironment; >+ } >+ >+ public AbstractLexerStream getILexStream() { return lexStream; } >+ >+ /** >+ * @deprecated replaced by {@link #getILexStream()} >+ */ >+ public ILexStream getLexStream() { return lexStream; } >+ >+ private void initializeLexer($prs_stream_class prsStream, int start_offset, int end_offset) >+ { >+ if (lexStream.getInputChars() == null) >+ throw new NullPointerException("LexStream was not initialized"); >+ lexStream.setPrsStream(prsStream); >+ prsStream.makeToken(start_offset, end_offset, 0); // Token list must start with a bad token >+ } >+ >+ private void addEOF($prs_stream_class prsStream, int end_offset) >+ { >+ prsStream.makeToken(end_offset, end_offset, $eof_token); // and end with the end of file token >+ prsStream.setStreamLength(prsStream.getSize()); >+ } >+ >+ public void lexer($prs_stream_class prsStream) >+ { >+ lexer(null, prsStream); >+ } >+ >+ public void lexer(Monitor monitor, $prs_stream_class prsStream) >+ { >+ initializeLexer(prsStream, 0, -1); >+ lexParser.parseCharacters(monitor); // Lex the input characters >+ addEOF(prsStream, lexStream.getStreamIndex()); >+ } >+ >+ public void lexer($prs_stream_class prsStream, int start_offset, int end_offset) >+ { >+ lexer(null, prsStream, start_offset, end_offset); >+ } >+ >+ public void lexer(Monitor monitor, $prs_stream_class prsStream, int start_offset, int end_offset) >+ { >+ if (start_offset <= 1) >+ initializeLexer(prsStream, 0, -1); >+ else initializeLexer(prsStream, start_offset - 1, start_offset - 1); >+ >+ lexParser.parseCharacters(monitor, start_offset, end_offset); >+ >+ addEOF(prsStream, (end_offset >= lexStream.getStreamIndex() ? lexStream.getStreamIndex() : end_offset + 1)); >+ } >+ >+ /** >+ * If a parse stream was not passed to this Lexical analyser then we >+ * simply report a lexical error. Otherwise, we produce a bad token. >+ */ >+ public void reportLexicalError(int startLoc, int endLoc) { >+ IPrsStream prs_stream = lexStream.getIPrsStream(); >+ if (prs_stream == null) >+ lexStream.reportLexicalError(startLoc, endLoc); >+ else { >+ // >+ // Remove any token that may have been processed that fall in the >+ // range of the lexical error... then add one error token that spans >+ // the error range. >+ // >+ for (int i = prs_stream.getSize() - 1; i > 0; i--) { >+ if (prs_stream.getStartOffset(i) >= startLoc) >+ prs_stream.removeLastToken(); >+ else break; >+ } >+ prs_stream.makeToken(startLoc, endLoc, 0); // add an error token to the prsStream >+ } >+ } >+ ./ >+%End >+ >+%Rules >+ /.$BeginActions./ >+%End >+ >+%Trailers >+ /. >+ $EndActions >+ } >+ ./ >+%End >+ >+-- >+-- E N D O F T E M P L A T E >+-- >Index: src/org/eclipse/ocl/parser/OCLLexer.gi >=================================================================== >RCS file: src/org/eclipse/ocl/parser/OCLLexer.gi >diff -N src/org/eclipse/ocl/parser/OCLLexer.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/ocl/parser/OCLLexer.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,620 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. >+-- * All rights reserved. This program and the accompanying materials >+-- * are made available under the terms of the Eclipse Public License v1.0 >+-- * which accompanies this distribution, and is available at >+-- * http://www.eclipse.org/legal/epl-v10.html >+-- * >+-- * Contributors: >+-- * IBM - Initial API and implementation >+-- * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+-- * - Bug 259818 >+-- * Borland - Bug 242880 >+-- * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+-- * >+-- * </copyright> >+-- * >+-- * $Id: OCLLexer.g,v 1.2 2009/02/12 00:04:09 cdamus Exp $ >+-- */ >+-- >+-- The OCL Lexer >+-- >+ >+%options escape=$ >+%options la=2 >+%options fp=OCLLexer,prefix=Char_ >+%options single-productions >+%options noserialize >+%options package=org.eclipse.ocl.parser >+%options template=../lpg/LexerTemplateF.gi >+%options filter=OCLKWLexer.gi >+%options export_terminals=("OCLParsersym.java", "TK_") >+%options include_directory="../lpg" >+ >+%Define >+ >+ -- >+ -- Definition of macros used in the template >+ -- >+ $action_class /.$file_prefix./ -- Deprecated. >+ $eof_token /.$_EOF_TOKEN./ >+ $environment_class /.Environment<?,?,?,?,?,?,?,?,?,?,?,?>./ >+ $adapt_environment /.OCLUtil.getAdapter(environment, BasicEnvironment.class)./ >+ $environment_import /.org.eclipse.ocl.Environment./ >+ >+ -- >+ -- Definition of macro used in the included file LexerBasicMap.g >+ -- >+ $kw_lexer_class /.OCLKWLexer./ >+ $copyright_contributions /.*./ >+ >+%End >+ >+%Notice >+ /./** >+ * <copyright> >+ * >+ * Copyright (c) 2005, 2009 IBM Corporation, Borland Software Corp., Open Canarias S.L. and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM - Initial API and implementation >+ * E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling >+ * - Bug 259818 >+ * Borland - Bug 242880 >+ * Adolfo Sanchez-Barbudo Herrera - LPG v2.0.17 adoption >+ $copyright_contributions >+ * </copyright> >+ * >+ * $Id$ >+ */ >+ ./ >+%End >+ >+%Import >+ LexerBasicMapF.gi >+%End >+ >+%Globals >+ /. >+ import java.io.Reader; >+ >+ import $environment_import; >+ import org.eclipse.ocl.lpg.BasicEnvironment; >+ import org.eclipse.ocl.util.OCLUtil; >+ ./ >+%End >+ >+%Export >+ >+ IDENTIFIER >+ STRING_LITERAL >+ INTEGER_LITERAL >+ REAL_LITERAL >+ NUMERIC_OPERATION >+ INTEGER_RANGE_START >+ >+ PLUS >+ MINUS >+ MULTIPLY >+ DIVIDE >+ >+ GREATER >+ LESS >+ EQUAL >+ GREATER_EQUAL >+ LESS_EQUAL >+ NOT_EQUAL >+ >+ LPAREN >+ RPAREN >+ LBRACE >+ RBRACE >+ LBRACKET >+ RBRACKET >+ >+ ARROW >+ BAR >+ COMMA >+ COLON >+ COLONCOLON >+ SEMICOLON >+ DOT >+ DOTDOT >+ ATPRE >+ >+ CARET >+ CARETCARET >+ QUESTIONMARK >+ >+ SINGLE_LINE_COMMENT >+ MULTI_LINE_COMMENT >+ >+%End >+ >+%Terminals >+ CtlCharNotWS >+ >+ LF CR HT FF >+ >+ a b c d e f g h i j k l m n o p q r s t u v w x y z >+ _ >+ >+ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z >+ >+ 0 1 2 3 4 5 6 7 8 9 >+ >+ AfterASCIINotAcute >+ Space ::= ' ' >+ LF ::= NewLine >+ CR ::= Return >+ HT ::= HorizontalTab >+ FF ::= FormFeed >+ DoubleQuote ::= '"' >+ SingleQuote ::= "'" >+ Percent ::= '%' >+ VerticalBar ::= '|' >+ Exclamation ::= '!' >+ AtSign ::= '@' >+ BackQuote ::= '`' >+ Acute ::= '�' >+ Tilde ::= '~' >+ Sharp ::= '#' >+ DollarSign ::= '$' >+ Ampersand ::= '&' >+ Caret ::= '^' >+ Colon ::= ':' >+ SemiColon ::= ';' >+ BackSlash ::= '\' >+ LeftBrace ::= '{' >+ RightBrace ::= '}' >+ LeftBracket ::= '[' >+ RightBracket ::= ']' >+ QuestionMark ::= '?' >+ Comma ::= ',' >+ Dot ::= '.' >+ LessThan ::= '<' >+ GreaterThan ::= '>' >+ Plus ::= '+' >+ Minus ::= '-' >+ Slash ::= '/' >+ Star ::= '*' >+ LeftParen ::= '(' >+ RightParen ::= ')' >+ Equal ::= '=' >+ >+%End >+ >+%Start >+ Token >+%End >+ >+%Rules >+ >+ --------------------- Rules for Scanned Tokens -------------------------------- >+ -- The lexer creates an array list of tokens which is defined in the PrsStream class. >+ -- A token has three attributes: a start offset, an end offset and a kind. >+ -- >+ -- Only rules that produce complete tokens have actions to create token objects. >+ -- When making a token, calls to the methods, $getToken(1) and $getRightSpan(), >+ -- provide the offsets (i.e. the span) of a rule's right hand side (rhs) and thus of the token. >+ -- For a rule of the form A ::= A1 A2 ... An, the start offset of the rhs of A is given by >+ -- $getToken(1) or by $getLeftSpan() and the end offset by $getRightSpan(). >+ -- >+ -- Regarding rules for parsing in general, note that for a rhs symbol Ai, the >+ -- method $getToken(i) returns the location of the leftmost character derived from Ai. >+ -- The method $getLeftSpan(i) returns the same location unless Ai produces %empty in which case >+ -- it returns the location of the last character derived before reducing Ai to %empty. >+ -- The method $getRightSpan(i) returns the location of the rightmost character derived from Ai >+ -- unless Ai produces %empty in which case it returns the location of the last character >+ -- derived before reducing Ai to %empty. >+ -------------------------------------------------------------------------------- >+ Token ::= Identifier >+ /.$BeginAction >+ checkForKeyWord(); >+ $EndAction >+ ./ >+ >+ -- an empty String literal looks just like an escaped single-quote >+ Token ::= EscapedSQ >+ /.$BeginAction >+ makeToken($_STRING_LITERAL); >+ $EndAction >+ ./ >+ >+ Token ::= SingleQuote SLNotSQ SingleQuote >+ /.$BeginAction >+ makeToken($_STRING_LITERAL); >+ $EndAction >+ ./ >+ >+ Token ::= Acute SLNotSQOpt Acute >+ /.$BeginAction >+ makeToken($_STRING_LITERAL); >+ $EndAction >+ ./ >+ >+ Token ::= BackQuote SLNotSQOpt Acute >+ /.$BeginAction >+ makeToken($_STRING_LITERAL); >+ $EndAction >+ ./ >+ >+ Token ::= IntegerLiteral >+ /.$BeginAction >+ makeToken($_INTEGER_LITERAL); >+ $EndAction >+ ./ >+ >+ Token ::= RealLiteral >+ /.$BeginAction >+ makeToken($_REAL_LITERAL); >+ $EndAction >+ ./ >+ >+ Token ::= NumericOperation >+ /.$BeginAction >+ makeToken($_NUMERIC_OPERATION); >+ $EndAction >+ ./ >+ >+ Token ::= IntegerRangeStart >+ /.$BeginAction >+ makeToken($_INTEGER_RANGE_START); >+ $EndAction >+ ./ >+ >+ Token ::= SLC >+ /.$BeginAction >+ makeComment($_SINGLE_LINE_COMMENT); >+ $EndAction >+ ./ >+ >+ Token ::= '/' '*' Inside Stars '/' >+ /.$BeginAction >+ makeComment($_MULTI_LINE_COMMENT); >+ $EndAction >+ ./ >+ >+ Token ::= WS -- White Space is scanned but not added to output vector >+ /.$BeginAction >+ skipToken(); >+ $EndAction >+ ./ >+ >+ Token ::= '+' >+ /.$BeginAction >+ makeToken($_PLUS); >+ $EndAction >+ ./ >+ >+ Token ::= '-' >+ /.$BeginAction >+ makeToken($_MINUS); >+ $EndAction >+ ./ >+ >+ Token ::= '*' >+ /.$BeginAction >+ makeToken($_MULTIPLY); >+ $EndAction >+ ./ >+ >+ Token ::= '/' >+ /.$BeginAction >+ makeToken($_DIVIDE); >+ $EndAction >+ ./ >+ >+ Token ::= '(' >+ /.$BeginAction >+ makeToken($_LPAREN); >+ $EndAction >+ ./ >+ >+ Token ::= ')' >+ /.$BeginAction >+ makeToken($_RPAREN); >+ $EndAction >+ ./ >+ >+ Token ::= '>' >+ /.$BeginAction >+ makeToken($_GREATER); >+ $EndAction >+ ./ >+ >+ Token ::= '<' >+ /.$BeginAction >+ makeToken($_LESS); >+ $EndAction >+ ./ >+ >+ Token ::= '=' >+ /.$BeginAction >+ makeToken($_EQUAL); >+ $EndAction >+ ./ >+ >+ Token ::= '>' '=' >+ /.$BeginAction >+ makeToken($_GREATER_EQUAL); >+ $EndAction >+ ./ >+ >+ Token ::= '<' '=' >+ /.$BeginAction >+ makeToken($_LESS_EQUAL); >+ $EndAction >+ ./ >+ >+ Token ::= '<' '>' >+ /.$BeginAction >+ makeToken($_NOT_EQUAL); >+ $EndAction >+ ./ >+ >+ Token ::= '[' >+ /.$BeginAction >+ makeToken($_LBRACKET); >+ $EndAction >+ ./ >+ >+ Token ::= ']' >+ /.$BeginAction >+ makeToken($_RBRACKET); >+ $EndAction >+ ./ >+ >+ Token ::= '{' >+ /.$BeginAction >+ makeToken($_LBRACE); >+ $EndAction >+ ./ >+ >+ Token ::= '}' >+ /.$BeginAction >+ makeToken($_RBRACE); >+ $EndAction >+ ./ >+ >+ Token ::= '-' '>' >+ /.$BeginAction >+ makeToken($_ARROW); >+ $EndAction >+ ./ >+ >+ Token ::= '|' >+ /.$BeginAction >+ makeToken($_BAR); >+ $EndAction >+ ./ >+ >+ Token ::= ',' >+ /.$BeginAction >+ makeToken($_COMMA); >+ $EndAction >+ ./ >+ >+ Token ::= ':' >+ /.$BeginAction >+ makeToken($_COLON); >+ $EndAction >+ ./ >+ >+ Token ::= ':' ':' >+ /.$BeginAction >+ makeToken($_COLONCOLON); >+ $EndAction >+ ./ >+ >+ Token ::= ';' >+ /.$BeginAction >+ makeToken($_SEMICOLON); >+ $EndAction >+ ./ >+ >+ Token ::= '.' >+ /.$BeginAction >+ makeToken($_DOT); >+ $EndAction >+ ./ >+ >+ Token ::= '.' '.' >+ /.$BeginAction >+ makeToken($_DOTDOT); >+ $EndAction >+ ./ >+ >+ Token ::= '@' p r e >+ /.$BeginAction >+ makeToken($_ATPRE); >+ $EndAction >+ ./ >+ >+ >+ Token ::= '^' >+ /.$BeginAction >+ makeToken($_CARET); >+ $EndAction >+ ./ >+ >+ Token ::= '^' '^' >+ /.$BeginAction >+ makeToken($_CARETCARET); >+ $EndAction >+ ./ >+ >+ Token ::= '?' >+ /.$BeginAction >+ makeToken($_QUESTIONMARK); >+ $EndAction >+ ./ >+ >+ >+ IntegerLiteral -> Integer >+ -- | '0' LetterXx HexDigits >+ >+ RealLiteral -> Decimal >+ | Decimal Exponent >+ | Integer Exponent >+ >+ Inside ::= Inside Stars NotSlashOrStar >+ | Inside '/' >+ | Inside NotSlashOrStar >+ | %empty >+ >+ Stars -> '*' >+ | Stars '*' >+ >+ SLC -> '-' '-' >+ | SLC NotEol >+ >+ Integer -> Digit >+ | Integer Digit >+ >+ HexDigits -> HexDigit >+ | HexDigits HexDigit >+ >+ Decimal -> Integer '.' Integer >+ >+ Exponent -> LetterEe Integer >+ | LetterEe '-' Integer >+ | LetterEe '+' Integer >+ >+ WSChar -> Space >+ | LF >+ | CR >+ | HT >+ | FF >+ >+ Letter -> LowerCaseLetter >+ | UpperCaseLetter >+ | _ >+ | AfterASCIINotAcute >+ >+ LowerCaseLetter -> a | b | c | d | e | f | g | h | i | j | k | l | m | >+ n | o | p | q | r | s | t | u | v | w | x | y | z >+ >+ UpperCaseLetter -> A | B | C | D | E | F | G | H | I | J | K | L | M | >+ N | O | P | Q | R | S | T | U | V | W | X | Y | Z >+ >+ Digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 >+ >+ OctalDigit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 >+ >+ a..fA..F -> a | b | c | d | e | f | A | B | C | D | E | F >+ >+ HexDigit -> Digit >+ | a..fA..F >+ >+ OctalDigits3 -> OctalDigit >+ | OctalDigit OctalDigit >+ | OctalDigit OctalDigit OctalDigit >+ >+ LetterEe -> 'E' >+ | 'e' >+ >+ LetterXx -> 'X' >+ | 'x' >+ >+ WS -> WSChar >+ | WS WSChar >+ >+ Identifier -> Letter >+ | Identifier Letter >+ | Identifier Digit >+ | Identifier DollarSign >+ | QuotedName >+ >+ SpecialNotStar -> '+' | '-' | '/' | '(' | ')' | '"' | '!' | '@' | '`' | '~' | >+ '%' | '&' | '^' | ':' | ';' | "'" | '\' | '|' | '{' | '}' | >+ '[' | ']' | '?' | ',' | '.' | '<' | '>' | '=' | '#' | DollarSign >+ >+ SpecialNotSlash -> '+' | '-' | -- exclude the star as well >+ '(' | ')' | '"' | '!' | '@' | '`' | '~' | >+ '%' | '&' | '^' | ':' | ';' | "'" | '\' | '|' | '{' | '}' | >+ '[' | ']' | '?' | ',' | '.' | '<' | '>' | '=' | '#' | DollarSign >+ >+ SpecialNotSQNotDQ -> '+' | '-' | '/' | '(' | ')' | '*' | '!' | '@' | '`' | '~' | >+ '%' | '&' | '^' | ':' | ';' | '|' | '{' | '}' | >+ '[' | ']' | '?' | ',' | '.' | '<' | '>' | '=' | '#' | DollarSign >+ >+ >+ SpecialNotDQ -> SpecialNotSQNotDQ | "'" >+ SpecialNotSQ -> SpecialNotSQNotDQ | '"' >+ >+ EscapedSymbols -> NotSQNotDQ | '"' | "'" | '\' >+ BackslashEscapedSymbol -> '\' EscapedSymbols >+ >+ NotSlashOrStar -> Letter >+ | Digit >+ | SpecialNotSlash >+ | WSChar >+ >+ NotEol -> Letter >+ | Digit >+ | Space >+ | '*' >+ | SpecialNotStar >+ | HT >+ | FF >+ | CtlCharNotWS >+ >+ NotSQNotDQ -> Letter >+ | Digit >+ | SpecialNotSQNotDQ >+ | Space >+ >+ NotDQ -> Letter >+ | Digit >+ | SpecialNotDQ >+ | Space >+ | EscapedDQ >+ --| '\' u HexDigit HexDigit HexDigit HexDigit >+ --| '\' OctalDigit >+ >+ NotSQ -> Letter >+ | Digit >+ | SpecialNotSQ >+ | Space >+ | EscapedSQ >+ | BackslashEscapedSymbol >+ --| '\' u HexDigit HexDigit HexDigit HexDigit >+ --| '\' OctalDigit >+ >+ EscapedSQ -> SingleQuote SingleQuote >+ >+ -- maintain this for compatibility with the "...\"..." escapes in an >+ -- escape mechanism (double-quotes) that isn't compliant, anyway >+ EscapedDQ -> '\' DoubleQuote >+ >+ SLNotDQ -> NotDQ >+ | SLNotDQ NotDQ >+ >+ SLNotSQ -> NotSQ >+ | SLNotSQ NotSQ >+ >+ SLNotSQOpt -> %empty >+ | SLNotSQ >+ >+ QuotedName -> '"' SLNotDQ '"' >+ >+ NumericOperation -> Integer '.' Identifier >+ NumericOperation -> Integer '.' '+' >+ NumericOperation -> Integer '.' '-' >+ NumericOperation -> Integer '.' '*' >+ NumericOperation -> Integer '.' '/' >+ NumericOperation -> Integer '.' '<' >+ NumericOperation -> Integer '.' '<' '=' >+ NumericOperation -> Integer '.' '>' '=' >+ NumericOperation -> Integer '.' '>' >+ >+ IntegerRangeStart -> Integer '.' '.' >+ >+%End
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 242153
:
113562
|
144433
|
144559
|
144561
|
146213
|
146215
|
146307
|
146308
|
146322
|
146527
|
146557
|
154939
|
154947
|
155049
|
155227
|
155269