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 146308 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]
Patch to align new API and extenfing languages (QVTr)
ocl242153_try4_b.patch (text/plain), 75.56 KB, created by
Adolfo Sanchez-Barbudo Herrera
on 2009-09-02 14:41:18 EDT
(
hide
)
Description:
Patch to align new API and extenfing languages (QVTr)
Filename:
MIME Type:
Creator:
Adolfo Sanchez-Barbudo Herrera
Created:
2009-09-02 14:41:18 EDT
Size:
75.56 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.qvt.declarative.parser.qvtrelation >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrParser.g >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtrelation/src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrParser.g,v >retrieving revision 1.8 >diff -u -r1.8 QVTrParser.g >--- src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrParser.g 30 Dec 2008 12:54:05 -0000 1.8 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrParser.g 2 Sep 2009 18:15:43 -0000 >@@ -14,22 +14,17 @@ > > %options escape=$ > %options la=2 >-%options table=java > %options fp=QVTrParser,prefix=TK_ >-%options error-maps >-%options scopes >-%options margin=4 > %options backtrack > %options noserialize > %options package=org.eclipse.qvt.declarative.parser.qvtrelation >-%options import_terminals=QVTrLexer.g >+%options import_terminals=QVTrLexer.gi > %options ast_type=CSTNode >-%options programming_language=java >-%options action=("*.java", "/.", "./") >-%options ParseTable=lpg.lpgjavaruntime.ParseTable >+%options ParseTable=lpg.runtime.ParseTable >+%options template=../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/dtParserTemplateF.gi > %options include_directory=".;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/parser;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/parser/backtracking" > >-$KeyWords >+%KeyWords > checkonly > default_values > domain >@@ -53,49 +48,49 @@ > inv > post > pre >-$End >+%End > >-$Terminals >+%Terminals > PLUS_PLUS ::= '++' >-$End >+%End > >-$Globals >+%Globals > /. > import org.eclipse.qvt.declarative.parser.qvt.cst.*; > import org.eclipse.qvt.declarative.parser.qvtrelation.cst.*; > import org.eclipse.qvt.declarative.parser.environment.ICSTFileEnvironment; > import org.eclipse.ocl.cst.CollectionTypeCS; >-import org.eclipse.ocl.parser.$prs_stream_class; >+import org.eclipse.ocl.parser.$super_parser_class; > import org.eclipse.ocl.parser.backtracking.OCLParserErrors; > > ./ >-$End >+%End > >-$Start >+%Start > topLevelCS >-$End >+%End > >-$Include >- EssentialOCL.g >-$End >+%Import >+ EssentialOCL.gi >+%End > >-$Include >- EssentialOCLErrors.g >-$End >+%Import >+ EssentialOCLErrors.gi >+%End > >-$Define >+%Define > $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./ >- $environment_class /.ICSTFileEnvironment./ >+ $environment_class /.ICSTFileEnvironment./ > $lex_stream_class /.QVTrLexer./ >- $LPGParsersym_class /.QVTrParserSymbols./ >+ $LPGParsersym_class /.QVTrParserSymbols./ > $copyright_contributions /.* E.D.Willink - Extended API and implementation for QVTr > *./ >-$End >+%End > >-$Headers >+%Headers > /. > protected IdentifierCS createIdentifierCS(int token) { > IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS(); >@@ -113,65 +108,65 @@ > return result; > } > ./ >-$End >+%End > >-$Rules >+%Rules > --<topLevel> ::= ('import' <unit> ';' )* <transformation>* >- topLevelCS_0_ ::= $empty >- /.$BeginJava >+ topLevelCS_0_ ::= %empty >+ /.$BeginCode > TopLevelCS result = QVTrCSTFactory.eINSTANCE.createTopLevelCS(); > setOffsets(result, getIToken($getToken(1))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > topLevelCS_0_ ::= topLevelCS_0_ import unitCS ';' >- /.$BeginJava >+ /.$BeginCode > TopLevelCS result = (TopLevelCS)$getSym(1); > result.getImportClause().add((UnitCS)$getSym(3)); > setOffsets(result, result, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > topLevelCS_0_ ::= topLevelCS_0_ ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_TOPLEVEL); >- $EndJava >+ $EndCode > ./ > topLevelCS_1_ ::= topLevelCS transformationCS >- /.$BeginJava >+ /.$BeginCode > TransformationCS transformationCS = (TransformationCS)$getSym(2); > TopLevelCS result = (TopLevelCS)$getSym(1); > result.getTransformation().add(transformationCS); > setOffsets(result, result, transformationCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > topLevelCS_1_ ::= topLevelCS_1_ ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_TRANSFORMATION); >- $EndJava >+ $EndCode > ./ > topLevelCS -> topLevelCS_0_ > topLevelCS -> topLevelCS_1_ > > --<unit> ::= <identifier> ('.' <identifier>)* > unitCS ::= identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(1); > UnitCS result = QVTrCSTFactory.eINSTANCE.createUnitCS(); > result.getIdentifier().add(identifierCS); > setOffsets(result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > unitCS ::= unitCS '.' identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(3); > UnitCS result = (UnitCS)$getSym(1); > result.getIdentifier().add(identifierCS); > setOffsets(result, result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<transformation> ::= 'transformation' <identifier> >@@ -179,7 +174,7 @@ > -- ['extends' <identifier> (',' <identifier>)* ] > -- '{' <keyDecl>* ( <relation> | <query> )* '}' > transformationCS_0_ ::= transformation identifierCS '(' modelDeclCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(2); > ModelDeclCS modelDeclCS = (ModelDeclCS)$getSym(4); > TransformationCS result = QVTrCSTFactory.eINSTANCE.createTransformationCS(); >@@ -187,118 +182,118 @@ > result.getModelDecl().add(modelDeclCS); > setOffsets(result, getIToken($getToken(1)), modelDeclCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_0_ ::= transformationCS_0_ ',' modelDeclCS >- /.$BeginJava >+ /.$BeginCode > ModelDeclCS modelDeclCS = (ModelDeclCS)$getSym(3); > TransformationCS result = (TransformationCS)$getSym(1); > result.getModelDecl().add(modelDeclCS); > setOffsets(result, result, modelDeclCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_0_ ::= transformationCS_0_ ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_MODELDECL); >- $EndJava >+ $EndCode > ./ > transformationCS_1_ ::= transformationCS_0_ ')' >- /.$BeginJava >+ /.$BeginCode > TransformationCS result = (TransformationCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_2_ -> transformationCS_1_ > transformationCS_2_ ::= transformationCS_1_ extends identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(3); > TransformationCS result = (TransformationCS)$getSym(1); > result.setExtends(identifierCS); > setOffsets(result, result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_3_ -> transformationCS_2_ '{' > transformationCS_3_ ::= transformationCS_3_ keyDeclCS >- /.$BeginJava >+ /.$BeginCode > KeyDeclCS keyDeclCS = (KeyDeclCS)$getSym(2); > TransformationCS result = (TransformationCS)$getSym(1); > result.getKeyDecl().add(keyDeclCS); > setOffsets(result, result, keyDeclCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_4_ -> transformationCS_3_ > transformationCS_4_ ::= transformationCS_4_ queryCS >- /.$BeginJava >+ /.$BeginCode > QueryCS queryCS =(QueryCS)$getSym(2); > TransformationCS result = (TransformationCS)$getSym(1); > result.getQuery().add(queryCS); > setOffsets(result, result, queryCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_4_ ::= transformationCS_4_ relationCS >- /.$BeginJava >+ /.$BeginCode > RelationCS relationCS = (RelationCS)$getSym(2); > TransformationCS result = (TransformationCS)$getSym(1); > result.getRelation().add(relationCS); > setOffsets(result, result, relationCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > transformationCS_4_ ::= transformationCS_4_ ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_TRANSFORMATION_ELEMENT); >- $EndJava >+ $EndCode > ./ > transformationCS ::= transformationCS_4_ '}' >- /.$BeginJava >+ /.$BeginCode > TransformationCS result = (TransformationCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<modelDecl> ::= <modelId> ':' <metaModelId> > --**<modelDecl> ::= <modelId> ':' '{' <metaModelId> (',' <metaModelId>)* '}' > modelDeclCS_0_ ::= modelIdCS ':' >- /.$BeginJava >+ /.$BeginCode > IdentifierCS modelIdCS = (IdentifierCS)$getSym(1); > ModelDeclCS result = QVTrCSTFactory.eINSTANCE.createModelDeclCS(); > result.setModelId(modelIdCS); > setOffsets(result, modelIdCS, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > modelDeclCS_1_ -> modelDeclCS_0_ '{' > modelDeclCS_1_ -> modelDeclCS_2_ ',' > modelDeclCS_2_ ::= modelDeclCS_1_ metaModelIdCS > /.$NewCase ./ > modelDeclCS ::= modelDeclCS_0_ metaModelIdCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS metaModelIdCS = (IdentifierCS)$getSym(2); > ModelDeclCS result = (ModelDeclCS)$getSym(1); > result.getMetaModelId().add(metaModelIdCS); > setOffsets(result, result, metaModelIdCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > modelDeclCS_2_ ::= modelDeclCS_1_ ERROR_TOKEN > /.$NewCase ./ > modelDeclCS ::= modelDeclCS_0_ ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_MODELDECL_ELEMENT); >- $EndJava >+ $EndCode > ./ > modelDeclCS ::= modelDeclCS_2_ '}' >- /.$BeginJava >+ /.$BeginCode > ModelDeclCS result = (ModelDeclCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<modelId> ::= <identifier> >@@ -309,35 +304,35 @@ > > --<keyDecl> ::= 'key' <classId> '{' <propertyId> (, <propertyId>)* '}' ';' > keyDeclCS_0_ ::= key classIdCS '{' >- /.$BeginJava >+ /.$BeginCode > PathNameCS classIdCS = (PathNameCS)$getSym(2); > KeyDeclCS result = QVTrCSTFactory.eINSTANCE.createKeyDeclCS(); > result.setClassId(classIdCS); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > keyDeclCS_0_ -> keyDeclCS_1_ ',' > keyDeclCS_1_ ::= keyDeclCS_0_ propertyIdCS >- /.$BeginJava >+ /.$BeginCode > IdentifiedCS propertyIdCS = (IdentifiedCS)$getSym(2); > KeyDeclCS result = (KeyDeclCS)$getSym(1); > result.getPropertyId().add(propertyIdCS); > setOffsets(result, result, propertyIdCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > keyDeclCS_1_ ::= keyDeclCS_0_ ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_KEYDECL_ELEMENT); >- $EndJava >+ $EndCode > ./ > keyDeclCS ::= keyDeclCS_1_ '}' ';' >- /.$BeginJava >+ /.$BeginCode > KeyDeclCS result = (KeyDeclCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<classId> ::= <PathNameCS> >@@ -345,13 +340,13 @@ > > --<propertyId> ::= <identifier> > propertyIdCS ::= identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(1); > IdentifiedCS result = QVTCSTFactory.eINSTANCE.createIdentifiedCS(); > result.setIdentifier(identifierCS); > setOffsets(result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<relation> ::= ['top'] 'relation' <identifier> >@@ -364,172 +359,172 @@ > --<when> ::= 'when' '{' (<OclExpressionCS> ';')* '}' > --<where> ::= 'where' '{' (<OclExpressionCS> ';')* '}' > relationCS_0_ ::= relation identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(2); > RelationCS result = QVTrCSTFactory.eINSTANCE.createRelationCS(); > result.setIdentifier(identifierCS); > setOffsets(result, getIToken($getToken(1)), identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS_1_ -> relationCS_0_ > relationCS_1_ ::= top relationCS_0_ >- /.$BeginJava >+ /.$BeginCode > RelationCS result = (RelationCS)$getSym(2); > result.setTop(true); > setOffsets(result, getIToken($getToken(1)), result); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS_2_ -> relationCS_1_ > relationCS_2_ ::= relationCS_1_ overrides identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(3); > RelationCS result = (RelationCS)$getSym(1); > result.setOverrides(identifierCS); > setOffsets(result, result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS_3_ -> relationCS_2_ '{' > relationCS_3_ ::= relationCS_3_ varDeclarationCS >- /.$BeginJava >+ /.$BeginCode > VarDeclarationCS varDeclarationCS = (VarDeclarationCS)$getSym(2); > RelationCS result = (RelationCS)$getSym(1); > result.getVarDeclaration().add(varDeclarationCS); > setOffsets(result, result, varDeclarationCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS_preDomain -> relationCS_3_ > relationCS_preDomain -> relationCS_postDomain > relationCS_postDomain ::= relationCS_preDomain domainCS > /.$NewCase ./ > relationCS_postDomain ::= relationCS_preDomain primitiveTypeDomainCS >- /.$BeginJava >+ /.$BeginCode > AbstractDomainCS domainCS = (AbstractDomainCS)$getSym(2); > RelationCS result = (RelationCS)$getSym(1); > result.getDomain().add(domainCS); > setOffsets(result, result, domainCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS_postWhen -> relationCS_postDomain > relationCS_postWhen ::= relationCS_postDomain whenCS >- /.$BeginJava >+ /.$BeginCode > RelationCS result = (RelationCS)$getSym(1); > WhenCS whenCS = (WhenCS)$getSym(2); > result.setWhen(whenCS); > setOffsets(result, result, whenCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS_postWhere -> relationCS_postWhen > relationCS_postWhere ::= relationCS_postWhen whereCS >- /.$BeginJava >+ /.$BeginCode > RelationCS result = (RelationCS)$getSym(1); > WhereCS whereCS = (WhereCS)$getSym(2); > result.setWhere(whereCS); > setOffsets(result, result, whereCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > relationCS ::= relationCS_postWhere '}' >- /.$BeginJava >+ /.$BeginCode > RelationCS result = (RelationCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > whenCS_0 ::= when '{' >- /.$BeginJava >+ /.$BeginCode > WhenCS result = QVTrCSTFactory.eINSTANCE.createWhenCS(); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > whenCS_0 ::= when ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_WHEN); >- $EndJava >+ $EndCode > ./ > whenCS_1 -> whenCS_0 > whenCS_1 ::= whenCS_1 oclExpressionCS ';' >- /.$BeginJava >+ /.$BeginCode > WhenCS result = (WhenCS)$getSym(1); > OCLExpressionCS oclExpressionCS = (OCLExpressionCS)$getSym(2); > result.getExpr().add(oclExpressionCS); > setOffsets(result, result, getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > whenCS ::= whenCS_1 '}' >- /.$BeginJava >+ /.$BeginCode > WhenCS result = (WhenCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > > whereCS_0 ::= where '{' >- /.$BeginJava >+ /.$BeginCode > WhereCS result = QVTrCSTFactory.eINSTANCE.createWhereCS(); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > whereCS_0 ::= where ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_WHERE); >- $EndJava >+ $EndCode > ./ > whereCS_1 -> whereCS_0 > whereCS_1 ::= whereCS_1 oclExpressionCS ';' >- /.$BeginJava >+ /.$BeginCode > WhereCS result = (WhereCS)$getSym(1); > OCLExpressionCS oclExpressionCS = (OCLExpressionCS)$getSym(2); > result.getExpr().add(oclExpressionCS); > setOffsets(result, result, getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > whereCS ::= whereCS_1 '}' >- /.$BeginJava >+ /.$BeginCode > WhereCS result = (WhereCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > > --<varDeclaration> ::= <identifier> (, <identifier>)* ':' <TypeCS> ';' > varDeclarationCS_0 ::= identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(1); > VarDeclarationCS result = QVTrCSTFactory.eINSTANCE.createVarDeclarationCS(); > result.getVarDeclarationId().add(identifierCS); > setOffsets(result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > varDeclarationCS_0 ::= varDeclarationCS_0 ',' identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(3); > VarDeclarationCS result = (VarDeclarationCS)$getSym(1); > result.getVarDeclarationId().add(identifierCS); > setOffsets(result, result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > varDeclarationCS ::= varDeclarationCS_0 ':' typeCS ';' >- /.$BeginJava >+ /.$BeginCode > VarDeclarationCS result = (VarDeclarationCS)$getSym(1); > result.setType((TypeCS)$getSym(3)); > setOffsets(result, result, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<domain> ::= [<checkEnforceQualifier>] 'domain' <modelId> <template> >@@ -538,7 +533,7 @@ > -- ';' > --<checkEnforceQualifier> ::= 'checkonly' | 'enforce' > domainCS_0_ ::= domain modelIdCS templateCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(2); > TemplateCS templateCS = (TemplateCS)$getSym(3); > DomainCS result = QVTrCSTFactory.eINSTANCE.createDomainCS(); >@@ -546,72 +541,72 @@ > result.setTemplate(templateCS); > setOffsets(result, getIToken($getToken(1)), templateCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS_1_ -> domainCS_0_ > domainCS_1_ ::= checkonly domainCS_0_ >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(2); > result.setCheckonly(true); > setOffsets(result, getIToken($getToken(1)), result); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS_1_ ::= enforce domainCS_0_ >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(2); > result.setEnforce(true); > setOffsets(result, getIToken($getToken(1)), result); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS_1_ ::= replace domainCS_0_ >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(2); > result.setReplace(true); > setOffsets(result, getIToken($getToken(1)), result); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS_postImplementedby -> domainCS_1_ > domainCS_postImplementedby ::= domainCS_1_ implementedby operationCallExpCS >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(1); > OperationCallExpCS operationCallExpCS =(OperationCallExpCS)$getSym(3); > result.setImplementedBy(operationCallExpCS); > setOffsets(result, result, operationCallExpCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS_preDefaultValue -> domainCS_postImplementedby default_values '{' > domainCS_preDefaultValue ::= domainCS_preDefaultValue defaultValueCS >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(1); > DefaultValueCS defaultValueCS = (DefaultValueCS)$getSym(2); > result.getDefaultValue().add(defaultValueCS); > setOffsets(result, result, defaultValueCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS_postDefaultValues -> domainCS_postImplementedby > domainCS_postDefaultValues ::= domainCS_preDefaultValue '}' >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > domainCS ::= domainCS_postDefaultValues ';' >- /.$BeginJava >+ /.$BeginCode > DomainCS result = (DomainCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<primitiveTypeDomain> ::= 'primitive' 'domain' <identifier> ':' <TypeCS> ';' > primitiveTypeDomainCS ::= primitive domain identifierCS ':' typeCS ';' >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(3); > TypeCS typeCS = (TypeCS)$getSym(5); > PrimitiveTypeDomainCS result = QVTrCSTFactory.eINSTANCE.createPrimitiveTypeDomainCS(); >@@ -619,7 +614,7 @@ > result.setType(typeCS); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(6))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > >@@ -629,13 +624,13 @@ > templateCS_0_ -> collectionTemplateCS > templateCS -> templateCS_0_ > templateCS ::= templateCS_0_ '{' oclExpressionCS '}' >- /.$BeginJava >+ /.$BeginCode > TemplateCS result = (TemplateCS)$getSym(1); > OCLExpressionCS oclExpressionCS = (OCLExpressionCS)$getSym(3); > result.setGuardExpression(oclExpressionCS); > setOffsets(result, result, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<objectTemplate> ::= [<identifier>] ':' <pathNameCS> '{' [<propertyTemplateList>] '}' >@@ -645,7 +640,7 @@ > objectTemplateCS_prePropertyTemplates ::= relationIdentifier ':' pathNameCS '{' > /.$NewCase./ > objectTemplateCS_prePropertyTemplates ::= self ':' pathNameCS '{' >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = createIdentifierCS($getToken(1)); > TypeCS typeCS = (TypeCS)$getSym(3); > ObjectTemplateCS result = QVTrCSTFactory.eINSTANCE.createObjectTemplateCS(); >@@ -653,41 +648,41 @@ > result.setIdentifier(identifierCS); > setOffsets(result, identifierCS, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > objectTemplateCS_prePropertyTemplates ::= ':' pathNameCS '{' >- /.$BeginJava >+ /.$BeginCode > ObjectTemplateCS result = QVTrCSTFactory.eINSTANCE.createObjectTemplateCS(); > result.setIdentifier(createUniqueIdentifierCS($getToken(1))); > result.setType((TypeCS)$getSym(2)); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > objectTemplateCS_prePropertyTemplate -> objectTemplateCS_prePropertyTemplates > objectTemplateCS_prePropertyTemplate -> objectTemplateCS_postPropertyTemplate ',' > objectTemplateCS_postPropertyTemplate ::= objectTemplateCS_prePropertyTemplate propertyTemplateCS >- /.$BeginJava >+ /.$BeginCode > ObjectTemplateCS result = (ObjectTemplateCS)$getSym(1); > PropertyTemplateCS propertyTemplateCS = (PropertyTemplateCS)$getSym(2); > result.getPropertyTemplate().add(propertyTemplateCS); > setOffsets(result, result, propertyTemplateCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > objectTemplateCS ::= objectTemplateCS_prePropertyTemplates '}' > /.$NewCase./ > objectTemplateCS ::= objectTemplateCS_postPropertyTemplate '}' >- /.$BeginJava >+ /.$BeginCode > ObjectTemplateCS result = (ObjectTemplateCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<propertyTemplate> ::= <identifier> '=' <OclExpressionCS> > propertyTemplateCS ::= propertyIdCS '=' oclExpressionCS >- /.$BeginJava >+ /.$BeginCode > IdentifiedCS propertyIdCS = (IdentifiedCS)$getSym(1); > PropertyTemplateCS result = QVTrCSTFactory.eINSTANCE.createPropertyTemplateCS(); > OCLExpressionCS oclExpressionCS = (OCLExpressionCS)$getSym(3); >@@ -695,31 +690,31 @@ > result.setOclExpression(oclExpressionCS); > setOffsets(result, propertyIdCS, oclExpressionCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<collectionTemplate> ::= [<identifier>] ':' <CollectionTypeIdentifierCS> '(' <TypeCS> ')' > -- '{' [<memberSelection>] '}' > --<memberSelection> ::= (<identifier> | <template> | '_') >--- (, (<identifier> | <template> | '_'))* >+-- (?,? (<identifier> | <template> | '_'))* > -- '++' > -- (<identifier> | '_') > collectionTemplateCS_1_ ::= ':' collectionTypeCS >- /.$BeginJava >+ /.$BeginCode > CollectionTypeCS collectionTypeCS = (CollectionTypeCS)$getSym(2); > CollectionTemplateCS result = QVTrCSTFactory.eINSTANCE.createCollectionTemplateCS(); > result.setType(collectionTypeCS); > result.setIdentifier(createUniqueIdentifierCS($getToken(1))); > setOffsets(result, getIToken($getToken(1)), collectionTypeCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > collectionTemplateCS_1_ ::= IDENTIFIER ':' collectionTypeCS > /.$NewCase./ > collectionTemplateCS_1_ ::= relationIdentifier ':' collectionTypeCS > /.$NewCase./ > collectionTemplateCS_1_ ::= self ':' collectionTypeCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = createIdentifierCS($getToken(1)); > CollectionTypeCS collectionTypeCS = (CollectionTypeCS)$getSym(3); > CollectionTemplateCS result = QVTrCSTFactory.eINSTANCE.createCollectionTemplateCS(); >@@ -727,62 +722,62 @@ > result.setIdentifier(identifierCS); > setOffsets(result, identifierCS, collectionTypeCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > collectionTemplateCS_preMemberSelections -> collectionTemplateCS_1_ '{' > collectionTemplateCS_preMemberSelection -> collectionTemplateCS_preMemberSelections > collectionTemplateCS_preMemberSelection -> collectionTemplateCS_postMemberSelection ',' > collectionTemplateCS_postMemberSelection ::= collectionTemplateCS_preMemberSelection memberSelectorCS >- /.$BeginJava >+ /.$BeginCode > IdentifiedCS memberSelectorCS = (IdentifiedCS)$getSym(2); > CollectionTemplateCS result = (CollectionTemplateCS)$getSym(1); > result.getMemberIdentifier().add(memberSelectorCS); > setOffsets(result, result, memberSelectorCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > collectionTemplateCS ::= collectionTemplateCS_postMemberSelection PLUS_PLUS identifierCS '}' >- /.$BeginJava >+ /.$BeginCode > IdentifierCS restIdentifier = (IdentifierCS)$getSym(3); > CollectionTemplateCS result = (CollectionTemplateCS)$getSym(1); > result.setRestIdentifier(restIdentifier); > setOffsets(result, result, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > collectionTemplateCS ::= collectionTemplateCS_postMemberSelection ERROR_TOKEN '}' >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_REST); > IdentifierCS restIdentifier = createUniqueIdentifierCS($getToken(2)); > CollectionTemplateCS result = (CollectionTemplateCS)$getSym(1); > result.setRestIdentifier(restIdentifier); > setOffsets(result, result, getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > collectionTemplateCS ::= collectionTemplateCS_preMemberSelections '}' >- /.$BeginJava >+ /.$BeginCode > CollectionTemplateCS result = (CollectionTemplateCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(2))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<memberSelector> ::= (<identifier> | <template> | '_') > memberSelectorCS ::= identifierCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(1); > IdentifiedCS result = QVTCSTFactory.eINSTANCE.createIdentifiedCS(); > result.setIdentifier(identifierCS); > setOffsets(result, identifierCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > memberSelectorCS -> templateCS > > --<assignmentExp> ::= <identifier> '=' <OclExpressionCS> ';' > defaultValueCS ::= identifierCS '=' oclExpressionCS ';' >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(1); > OCLExpressionCS oclExpressionCS = (OCLExpressionCS)$getSym(3); > DefaultValueCS result = QVTrCSTFactory.eINSTANCE.createDefaultValueCS(); >@@ -790,7 +785,7 @@ > result.setInitialiser(oclExpressionCS); > setOffsets(result, identifierCS, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<query> ::= 'query' <PathNameCS> >@@ -798,51 +793,51 @@ > -- ':' <TypeCS> > -- (';' | '{' <OclExpressionCS> '}') > queryCS_preParamDeclaration ::= query pathNameCS '(' >- /.$BeginJava >+ /.$BeginCode > QueryCS result = QVTrCSTFactory.eINSTANCE.createQueryCS(); > result.setPathName((PathNameCS)$getSym(2)); > setOffsets(result, getIToken($getToken(1)), getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > queryCS_preParamDeclaration -> queryCS_postParamDeclaration ',' > queryCS_postParamDeclaration ::= queryCS_preParamDeclaration paramDeclarationCS >- /.$BeginJava >+ /.$BeginCode > ParamDeclarationCS paramDeclarationCS = (ParamDeclarationCS)$getSym(2); > QueryCS result = (QueryCS)$getSym(1); > result.getInputParamDeclaration().add(paramDeclarationCS); > setOffsets(result, result, paramDeclarationCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > queryCS_postType ::= queryCS_postParamDeclaration ')' ':' typeCS >- /.$BeginJava >+ /.$BeginCode > TypeCS typeCS = (TypeCS)$getSym(4); > QueryCS result = (QueryCS)$getSym(1); > result.setType(typeCS); > setOffsets(result, result, typeCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > queryCS ::= queryCS_postType ';' >- /.$BeginJava >+ /.$BeginCode > QueryCS result = (QueryCS)$getSym(1); > setOffsets(result, result, getIToken($getToken(3))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > queryCS ::= queryCS_postType '{' oclExpressionCS '}' >- /.$BeginJava >+ /.$BeginCode > QueryCS result = (QueryCS)$getSym(1); > result.setOclExpression((OCLExpressionCS)$getSym(3)); > setOffsets(result, result, getIToken($getToken(4))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > --<paramDeclaration> ::= <identifier> ':' <TypeCS> > paramDeclarationCS ::= identifierCS ':' typeCS >- /.$BeginJava >+ /.$BeginCode > IdentifierCS identifierCS = (IdentifierCS)$getSym(1); > TypeCS typeCS = (TypeCS)$getSym(3); > ParamDeclarationCS result = QVTrCSTFactory.eINSTANCE.createParamDeclarationCS(); >@@ -850,12 +845,12 @@ > result.setType(typeCS); > setOffsets(result, identifierCS, typeCS); > $setResult(result); >- $EndJava >+ $EndCode > ./ > paramDeclarationCS ::= identifierCS ERROR_TOKEN >- /.$BeginJava >+ /.$BeginCode > reportErrorTokenMessage($getToken(2), QVTrParserErrors.INCOMPLETE_PARAM_DECLARATION); >- $EndJava >+ $EndCode > ./ > > --<OclExpressionCS> ::= <PropertyCallExpCS> >@@ -892,23 +887,23 @@ > relationIdentifier -> pre > > pathNameCS ::= relationIdentifier >- /.$BeginJava >+ /.$BeginCode > PathNameCS result = createPathNameCS(); > result.getSequenceOfNames().add(getTokenText($getToken(1))); > setOffsets(result, getIToken($getToken(1))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > simpleNameCS ::= relationIdentifier >- /.$BeginJava >+ /.$BeginCode > SimpleNameCS result = createSimpleNameCS( > SimpleTypeEnum.IDENTIFIER_LITERAL, > getTokenText($getToken(1)) > ); > setOffsets(result, getIToken($getToken(1))); > $setResult(result); >- $EndJava >+ $EndCode > ./ > > identifierCS ::= IDENTIFIER >@@ -916,10 +911,10 @@ > identifierCS ::= relationIdentifier > /.$NewCase ./ > identifierCS ::= self >- /.$BeginJava >+ /.$BeginCode > IdentifierCS result = createIdentifierCS($getToken(1)); > $setResult(result); >- $EndJava >+ $EndCode > ./ >-$End >+%End > >\ No newline at end of file >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/AbstractQVTrAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtrelation/src/org/eclipse/qvt/declarative/parser/qvtrelation/AbstractQVTrAnalyzer.java,v >retrieving revision 1.17 >diff -u -r1.17 AbstractQVTrAnalyzer.java >--- src/org/eclipse/qvt/declarative/parser/qvtrelation/AbstractQVTrAnalyzer.java 5 Mar 2009 22:03:05 -0000 1.17 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/AbstractQVTrAnalyzer.java 2 Sep 2009 18:15:43 -0000 >@@ -17,7 +17,7 @@ > import java.util.ArrayList; > import java.util.List; > >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.Monitor; > > import org.eclipse.emf.common.util.EList; > import org.eclipse.emf.common.util.TreeIterator; >@@ -486,12 +486,10 @@ > } > try { > Reader fileReader = new FileReader(file); >- QVTrLexer lexer = new QVTrLexer(env.getFileEnvironment()); >+ QVTrLexer lexer = new QVTrLexer(env.getFileEnvironment(), fileReader, file.toString()); > QVTrParser parser = new QVTrParser(lexer); >- lexer.setFileName(file.toString()); >- lexer.initialize(fileReader); >- lexer.lexToTokens(parser); >- CSTNode cstNode = parser.parseTokensToCST(); >+ lexer.lexer(parser.getIPrsStream()); >+ CSTNode cstNode = parser.parser(); > if (cstNode == null) > return null; > List<TransformationCS> importedTransformationCS = ((TopLevelCS) cstNode).getTransformation(); >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtrelation/src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrAnalyzer.java,v >retrieving revision 1.4 >diff -u -r1.4 QVTrAnalyzer.java >--- src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrAnalyzer.java 11 Oct 2008 15:27:50 -0000 1.4 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrAnalyzer.java 2 Sep 2009 18:15:43 -0000 >@@ -10,7 +10,10 @@ > *******************************************************************************/ > package org.eclipse.qvt.declarative.parser.qvtrelation; > >-import lpg.lpgjavaruntime.Monitor; >+import java.io.IOException; >+import java.io.Reader; >+ >+import lpg.runtime.Monitor; > > import org.eclipse.qvt.declarative.parser.environment.ICSTFileAnalyzer; > import org.eclipse.qvt.declarative.parser.qvtrelation.environment.QVTrFileEnvironment; >@@ -18,8 +21,8 @@ > > public class QVTrAnalyzer extends AbstractQVTrAnalyzer implements ICSTFileAnalyzer<QVTrTopLevelEnvironment> > { >- public QVTrAnalyzer(QVTrFileEnvironment environment, Monitor monitor) { >- super(new QVTrParser(new QVTrLexer(environment)), monitor); >+ public QVTrAnalyzer(QVTrFileEnvironment environment, Monitor monitor, Reader reader, String fileName) throws IOException { >+ super(new QVTrParser(new QVTrLexer(environment, reader, fileName)), monitor); > } > > public boolean analyze(QVTrTopLevelEnvironment environment) { >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/QVTrFileEnvironment.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtrelation/src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/QVTrFileEnvironment.java,v >retrieving revision 1.1 >diff -u -r1.1 QVTrFileEnvironment.java >--- src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/QVTrFileEnvironment.java 11 Oct 2008 15:27:50 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/QVTrFileEnvironment.java 2 Sep 2009 18:15:44 -0000 >@@ -10,7 +10,10 @@ > *******************************************************************************/ > package org.eclipse.qvt.declarative.parser.qvtrelation.environment; > >-import lpg.lpgjavaruntime.Monitor; >+import java.io.IOException; >+import java.io.Reader; >+ >+import lpg.runtime.Monitor; > > import org.eclipse.emf.ecore.resource.ResourceSet; > import org.eclipse.emf.ecore.xmi.XMIResource; >@@ -27,8 +30,9 @@ > } > > @Override >- public QVTrAnalyzer createAnalyzer(Monitor monitor) { >- return new QVTrAnalyzer(this, monitor); >+ protected QVTrAnalyzer createAnalyzer( >+ Monitor monitor, Reader reader, String fileName) throws IOException { >+ return new QVTrAnalyzer(this, monitor, reader, fileName); > } > > @Override >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/PrintStreamProblemHandler.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.qvtrelation/src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/PrintStreamProblemHandler.java,v >retrieving revision 1.1 >diff -u -r1.1 PrintStreamProblemHandler.java >--- src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/PrintStreamProblemHandler.java 23 Jul 2008 10:07:42 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/environment/PrintStreamProblemHandler.java 2 Sep 2009 18:15:44 -0000 >@@ -29,7 +29,7 @@ > > @Override public void handleProblem(Severity problemSeverity, Phase processingPhase, > String problemMessage, String processingContext, int startOffset, int endOffset) { >- int lineNumber = getParser().getTokenAtCharacter(startOffset).getLine(); >+ int lineNumber = getParser().getIPrsStream().getTokenAtCharacter(startOffset).getLine(); > stream.println(file.getName() + ":" + lineNumber + ": " + String.valueOf(processingPhase) + "-" + String.valueOf(problemSeverity) + ": " + problemMessage + ": " + getParser().computeInputString(startOffset, endOffset)); > } > } >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrLexer.gi >=================================================================== >RCS file: src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrLexer.gi >diff -N src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrLexer.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrLexer.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,58 @@ >+--/** >+-- * <copyright> >+-- * >+-- * Copyright (c) 2007,2008 E.D.Willink 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 >+-- * >+-- * </copyright> >+-- */ >+-- >+-- The QVTr Lexer >+-- >+ >+%options escape=$ >+%options la=2 >+%options fp=QVTrLexer,prefix=Char_ >+%options single-productions >+%options noserialize >+%options package=org.eclipse.qvt.declarative.parser.qvtrelation >+%options template=../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/LexerTemplateF.gi >+%options filter=QVTrKWLexer.gi >+%options export_terminals=("QVTrParsersym.java", "TK_") >+%options include_directory=".;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/parser" >+ >+%Import >+ OCLLexer.gi >+%End >+ >+%Define >+ -- >+ -- Definition of macro used in the included file LexerBasicMap.g >+ -- >+ $kw_lexer_class /.QVTrKWLexer./ >+ $environment_class /.ICSTFileEnvironment./ >+ $environment_import /.org.eclipse.qvt.declarative.parser.environment.ICSTFileEnvironment./ >+ $copyright_contributions /.* E.D.Willink - Extended API and implementation for QVTr >+*./ >+%End >+ >+%Export >+ PLUS_PLUS >+%End >+ >+%Rules >+ >+ Token ::= '+' '+' >+ /.$BeginAction >+ makeToken($_PLUS_PLUS); >+ $EndAction >+ ./ >+ >+ SLC -> '/' '/' >+%End >Index: src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrKWLexer.gi >=================================================================== >RCS file: src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrKWLexer.gi >diff -N src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrKWLexer.gi >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/qvt/declarative/parser/qvtrelation/QVTrKWLexer.gi 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,171 @@ >+--/** >+-- * Copyright (c) 2007,2008 E.D.Willink 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 >+-- */ >+-- >+-- The QVTr KeyWord Lexer >+-- >+ >+%Options slr >+%Options fp=QVTrKWLexer,prefix=Char_ >+%options noserialize >+%options package=org.eclipse.qvt.declarative.parser.qvtrelation >+%options template=../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/KeywordTemplateF.gi >+%options export_terminals=("QVTrParsersym.java", "TK_") >+%options include_directory=".;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg;../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/parser" >+ >+%Import >+ OCLKWLexer.gi >+%End >+ >+%Define >+ $copyright_contributions /.* E.D.Willink - Extended API and implementation for QVTr >+*./ >+%End >+ >+%Export >+ checkonly >+ default_values >+ domain >+ enforce >+ extends >+ implementedby >+ import >+ key >+ overrides >+ primitive >+ query >+ relation >+ replace >+ top >+ transformation >+ when >+ where >+%End >+ >+%Terminals >+ _ >+%End >+ >+%Headers >+ /. >+ static >+ { >+ tokenKind['_'] = Char__; >+ }; >+ ./ >+%End >+ >+%Rules >+ >+-- The Goal for the parser is a single Keyword >+ >+ KeyWord ::= >+ c h e c k o n l y >+ /.$BeginAction >+ $setResult($_checkonly); >+ $EndAction >+ ./ >+ >+ | d e f a u l t _ v a l u e s >+ /.$BeginAction >+ $setResult($_default_values); >+ $EndAction >+ ./ >+ >+ | d o m a i n >+ /.$BeginAction >+ $setResult($_domain); >+ $EndAction >+ ./ >+ >+ | e n f o r c e >+ /.$BeginAction >+ $setResult($_enforce); >+ $EndAction >+ ./ >+ >+ | e x t e n d s >+ /.$BeginAction >+ $setResult($_extends); >+ $EndAction >+ ./ >+ >+ | i m p l e m e n t e d b y >+ /.$BeginAction >+ $setResult($_implementedby); >+ $EndAction >+ ./ >+ >+ | i m p o r t >+ /.$BeginAction >+ $setResult($_import); >+ $EndAction >+ ./ >+ >+ | k e y >+ /.$BeginAction >+ $setResult($_key); >+ $EndAction >+ ./ >+ >+ | o v e r r i d e s >+ /.$BeginAction >+ $setResult($_overrides); >+ $EndAction >+ ./ >+ >+ | p r i m i t i v e >+ /.$BeginAction >+ $setResult($_primitive); >+ $EndAction >+ ./ >+ >+ | q u e r y >+ /.$BeginAction >+ $setResult($_query); >+ $EndAction >+ ./ >+ >+ | r e l a t i o n >+ /.$BeginAction >+ $setResult($_relation); >+ $EndAction >+ ./ >+ >+ | r e p l a c e >+ /.$BeginAction >+ $setResult($_replace); >+ $EndAction >+ ./ >+ >+ | t o p >+ /.$BeginAction >+ $setResult($_top); >+ $EndAction >+ ./ >+ >+ | t r a n s f o r m a t i o n >+ /.$BeginAction >+ $setResult($_transformation); >+ $EndAction >+ ./ >+ >+ | w h e n >+ /.$BeginAction >+ $setResult($_when); >+ $EndAction >+ ./ >+ >+ | w h e r e >+ /.$BeginAction >+ $setResult($_where); >+ $EndAction >+ ./ >+%End >#P org.eclipse.qvt.declarative.editor.ocl.ui >Index: src/org/eclipse/qvt/declarative/editor/ocl/ui/imp/OCLParseController.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ocl.ui/src/org/eclipse/qvt/declarative/editor/ocl/ui/imp/OCLParseController.java,v >retrieving revision 1.6 >diff -u -r1.6 OCLParseController.java >--- src/org/eclipse/qvt/declarative/editor/ocl/ui/imp/OCLParseController.java 20 Aug 2009 20:22:07 -0000 1.6 >+++ src/org/eclipse/qvt/declarative/editor/ocl/ui/imp/OCLParseController.java 2 Sep 2009 18:15:46 -0000 >@@ -17,7 +17,7 @@ > package org.eclipse.qvt.declarative.editor.ocl.ui.imp; > > import org.eclipse.ocl.cst.CSTPackage; >-import org.eclipse.ocl.parser.backtracking.OCLBacktrackingLexer; >+import org.eclipse.ocl.parser.backtracking.OCLBacktrackingParsersym; > import org.eclipse.qvt.declarative.editor.ocl.ui.OCLCreationFactory; > import org.eclipse.qvt.declarative.editor.ui.imp.CommonKeyword; > import org.eclipse.qvt.declarative.editor.ui.imp.CommonParseController; >@@ -100,19 +100,19 @@ > > public TokenKind getTokenKind(int kind) { > switch (kind) { >- case OCLBacktrackingLexer.TK_EOF_TOKEN: >+ case OCLBacktrackingParsersym.TK_EOF_TOKEN: > return TokenKind.EOF; >- case OCLBacktrackingLexer.TK_IDENTIFIER: >+ case OCLBacktrackingParsersym.TK_IDENTIFIER: > return TokenKind.IDENTIFIER; >- case OCLBacktrackingLexer.TK_INTEGER_LITERAL: >+ case OCLBacktrackingParsersym.TK_INTEGER_LITERAL: > return TokenKind.INTEGER; >- case OCLBacktrackingLexer.TK_REAL_LITERAL: >+ case OCLBacktrackingParsersym.TK_REAL_LITERAL: > return TokenKind.REAL; >- case OCLBacktrackingLexer.TK_STRING_LITERAL: >+ case OCLBacktrackingParsersym.TK_STRING_LITERAL: > return TokenKind.STRING; >- case OCLBacktrackingLexer.TK_SINGLE_LINE_COMMENT: >+ case OCLBacktrackingParsersym.TK_SINGLE_LINE_COMMENT: > return TokenKind.LINE_COMMENT; >- case OCLBacktrackingLexer.TK_MULTI_LINE_COMMENT: >+ case OCLBacktrackingParsersym.TK_MULTI_LINE_COMMENT: > return TokenKind.PARAGRAPH_COMMENT; > default: > if (isKeyword(kind)) >#P org.eclipse.qvt.declarative.parser >Index: src/org/eclipse/qvt/declarative/parser/AbstractQVTAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/AbstractQVTAnalyzer.java,v >retrieving revision 1.10 >diff -u -r1.10 AbstractQVTAnalyzer.java >--- src/org/eclipse/qvt/declarative/parser/AbstractQVTAnalyzer.java 17 Feb 2009 21:51:43 -0000 1.10 >+++ src/org/eclipse/qvt/declarative/parser/AbstractQVTAnalyzer.java 2 Sep 2009 18:15:47 -0000 >@@ -14,7 +14,7 @@ > import java.util.Comparator; > import java.util.List; > >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.Monitor; > > import org.eclipse.emf.common.util.EList; > import org.eclipse.emf.ecore.EClass; >Index: src/org/eclipse/qvt/declarative/parser/environment/CSTRootEnvironment.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/environment/CSTRootEnvironment.java,v >retrieving revision 1.5 >diff -u -r1.5 CSTRootEnvironment.java >--- src/org/eclipse/qvt/declarative/parser/environment/CSTRootEnvironment.java 17 Feb 2009 21:51:43 -0000 1.5 >+++ src/org/eclipse/qvt/declarative/parser/environment/CSTRootEnvironment.java 2 Sep 2009 18:15:47 -0000 >@@ -266,7 +266,7 @@ > } > > public int getCSTErrorTokens() { >- return getParser().getErrorTokens(); >+ return getParser().getIPrsStream().getErrorTokens(); > } > > public ICSTFileEnvironment getFileEnvironment() { >Index: src/org/eclipse/qvt/declarative/parser/environment/ICSTFileEnvironment.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/environment/ICSTFileEnvironment.java,v >retrieving revision 1.1 >diff -u -r1.1 ICSTFileEnvironment.java >--- src/org/eclipse/qvt/declarative/parser/environment/ICSTFileEnvironment.java 11 Oct 2008 15:27:46 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/parser/environment/ICSTFileEnvironment.java 2 Sep 2009 18:15:47 -0000 >@@ -20,7 +20,7 @@ > import java.io.Reader; > import java.util.Collection; > >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.Monitor; > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IProgressMonitor; >@@ -34,7 +34,7 @@ > > public interface ICSTFileEnvironment extends ICSTEnvironment > { >- public ICSTFileAnalyzer<?> createAnalyzer(Monitor monitor); >+ public ICSTFileAnalyzer<?> getAnalyzer(Monitor monitor, Reader reader, String fileName) throws IOException; > > public XMIResource getASTResource(); > >Index: src/org/eclipse/qvt/declarative/parser/environment/CSTFileEnvironment.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/environment/CSTFileEnvironment.java,v >retrieving revision 1.4 >diff -u -r1.4 CSTFileEnvironment.java >--- src/org/eclipse/qvt/declarative/parser/environment/CSTFileEnvironment.java 6 Mar 2009 17:30:00 -0000 1.4 >+++ src/org/eclipse/qvt/declarative/parser/environment/CSTFileEnvironment.java 2 Sep 2009 18:15:47 -0000 >@@ -16,7 +16,7 @@ > import java.util.ArrayList; > import java.util.List; > >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.Monitor; > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IProgressMonitor; >@@ -42,7 +42,10 @@ > { > protected final EPackage.Registry registryToo; > protected final XMIResource ast; >- protected final AbstractModelResolver resolver; >+ protected final AbstractModelResolver resolver; >+ >+ private ICSTFileAnalyzer<R> analyzer; >+ > private TypeResolver<EClassifier, EOperation, EStructuralFeature> typeResolver; // FIXME Duplicated to support reset > // inherited functionality should allow typeResolver to be in CSTRootEnvironment > >@@ -63,7 +66,17 @@ > this(new EPackageRegistryImpl(), file, resourceSet, astResource); > } > >- public abstract ICSTFileAnalyzer<R> createAnalyzer(Monitor monitor); >+ public ICSTFileAnalyzer<R> getAnalyzer(Monitor monitor, Reader reader, String fileName) throws IOException { >+ >+ if (analyzer == null) { >+ analyzer = createAnalyzer(monitor, reader, fileName); >+ } else { >+ analyzer.reset(reader, null); >+ } >+ return analyzer; >+ } >+ >+ protected abstract ICSTFileAnalyzer<R> createAnalyzer(Monitor monitor, Reader reader, String fileName) throws IOException; > > protected abstract R createRootEnvironment(XMIResource ast, CST cst); > >@@ -110,25 +123,25 @@ > > public ICSTRootEnvironment parse(Reader reader, AbstractFileHandle file, IProgressMonitor monitor) throws IOException, CoreException { > Monitor lpgMonitor = new LPGProgressMonitor(monitor); >- ICSTFileAnalyzer<R> analyzer = createAnalyzer(lpgMonitor); >- analyzer.setFileName(file.getName()); > if (reader == null) > reader = new InputStreamReader(file.getContents()); > else if (!file.exists()) > return null; >- analyzer.initialize(reader); >+ >+ ICSTFileAnalyzer<R> analyzer = getAnalyzer(lpgMonitor, reader, file.getName()); > AbstractParser parser = getParser(); > if ((monitor != null) && monitor.isCanceled()) > return null; >- parser.getLexer().lexToTokens(parser); >+ parser.getLexer().lexer(parser.getIPrsStream()); > if ((monitor != null) && monitor.isCanceled()) > return null; > @SuppressWarnings("unchecked") // Maybe this should be a generic parameter >- CST cst = (CST) parser.parseTokensToCST(lpgMonitor, -1); >+ CST cst = (CST) parser.parser(lpgMonitor, -1); > if (cst == null) > return null; > if ((monitor != null) && monitor.isCanceled()) > return null; >+ > R rootEnvironment; > try { > reset(); >Index: src/org/eclipse/qvt/declarative/parser/environment/ICSTFileAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/environment/ICSTFileAnalyzer.java,v >retrieving revision 1.1 >diff -u -r1.1 ICSTFileAnalyzer.java >--- src/org/eclipse/qvt/declarative/parser/environment/ICSTFileAnalyzer.java 11 Oct 2008 14:43:14 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/parser/environment/ICSTFileAnalyzer.java 2 Sep 2009 18:15:47 -0000 >@@ -31,7 +31,14 @@ > > public AbstractParser getParser(); > >+ /** >+ * @param reader >+ * @throws IOException >+ * @deprecated clients should invoke {@link #reset(Reader, String)} >+ */ > public void initialize(Reader reader) throws IOException; >+ >+ public void reset(Reader reader, String fileName) throws IOException; > > public void setFileName(String name); > } >Index: src/org/eclipse/qvt/declarative/parser/qvt/environment/LPGProgressMonitor.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/qvt/environment/LPGProgressMonitor.java,v >retrieving revision 1.1 >diff -u -r1.1 LPGProgressMonitor.java >--- src/org/eclipse/qvt/declarative/parser/qvt/environment/LPGProgressMonitor.java 10 Oct 2008 08:13:52 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/parser/qvt/environment/LPGProgressMonitor.java 2 Sep 2009 18:15:47 -0000 >@@ -10,7 +10,7 @@ > *******************************************************************************/ > package org.eclipse.qvt.declarative.parser.qvt.environment; > >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.Monitor; > > import org.eclipse.core.runtime.IProgressMonitor; > >Index: src/org/eclipse/qvt/declarative/parser/utils/ProblemLog.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser/src/org/eclipse/qvt/declarative/parser/utils/ProblemLog.java,v >retrieving revision 1.3 >diff -u -r1.3 ProblemLog.java >--- src/org/eclipse/qvt/declarative/parser/utils/ProblemLog.java 31 Dec 2008 17:47:14 -0000 1.3 >+++ src/org/eclipse/qvt/declarative/parser/utils/ProblemLog.java 2 Sep 2009 18:15:47 -0000 >@@ -17,6 +17,8 @@ > import java.util.Map; > import java.util.Set; > >+import lpg.runtime.IPrsStream; >+ > import org.eclipse.ocl.lpg.AbstractProblemHandler; > import org.eclipse.ocl.lpg.ProblemHandler; > import org.eclipse.osgi.util.NLS; >@@ -134,17 +136,18 @@ > if (problem.endOffset >= 0) { > s.append(" : "); > s.append(problem.endOffset); >- if (getParser() != null) { >- int token = getParser().getTokenIndexAtCharacter(problem.startOffset); >+ IPrsStream stream = getParser().getIPrsStream(); >+ if (stream != null) { >+ int token =stream.getTokenIndexAtCharacter(problem.startOffset); > s.append(" "); > try { >- s.append(getParser().getLine(token)); >+ s.append(stream.getLine(token)); > } catch (ArrayIndexOutOfBoundsException e) { > s.append("???"); > } > s.append(":"); > try { >- s.append(getParser().getColumn(token)); >+ s.append(stream.getColumn(token)); > } catch (ArrayIndexOutOfBoundsException e) { > s.append("???"); > } >#P org.eclipse.qvt.declarative.editor.ui >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseResult.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseResult.java,v >retrieving revision 1.1 >diff -u -r1.1 CommonParseResult.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseResult.java 20 Aug 2009 20:14:22 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseResult.java 2 Sep 2009 18:15:50 -0000 >@@ -22,9 +22,9 @@ > import java.util.Iterator; > import java.util.List; > >-import lpg.lpgjavaruntime.ErrorToken; >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.PrsStream; >+import lpg.runtime.ErrorToken; >+import lpg.runtime.IPrsStream; >+import lpg.runtime.IToken; > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IProgressMonitor; >@@ -59,7 +59,7 @@ > > static final class TokenIterator implements Iterator<IToken> > { >- final PrsStream stream; >+ final IPrsStream stream; > final int firstTokIdx; > final int lastTokIdx; > int curTokIdx; // skip bogus initial token >@@ -81,7 +81,7 @@ > private boolean finalTokenReturned; > private boolean finalAdjunctsReturned; > >- private TokenIterator(PrsStream stream, int regionEnd, int regionOffset) { >+ private TokenIterator(IPrsStream stream, int regionEnd, int regionOffset) { > this.stream = stream; > firstTokIdx = getTokenIndexAtCharacter(regionOffset); > curTokIdx = Math.max(1, firstTokIdx); >@@ -270,7 +270,7 @@ > } > > public String getTextRange(int start, int length) { >- return new String(getLexer().getInputChars(), start, length); >+ return new String(getLexer().getILexStream().getInputChars(), start, length); > } > > protected int[] getKeywordKinds() { >@@ -309,7 +309,7 @@ > int regionOffset= region.getOffset(); > int regionLength= region.getLength(); > int regionEnd = regionOffset + regionLength - 1; >- PrsStream stream = getParser(); >+ IPrsStream stream = getParser().getIPrsStream(); > if (stream != null) > return new TokenIterator(stream, regionEnd, regionOffset); > else >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonContentProposals.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonContentProposals.java,v >retrieving revision 1.15 >diff -u -r1.15 CommonContentProposals.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonContentProposals.java 20 Aug 2009 20:16:37 -0000 1.15 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonContentProposals.java 2 Sep 2009 18:15:49 -0000 >@@ -25,8 +25,8 @@ > import java.util.Map; > import java.util.Set; > >-import lpg.lpgjavaruntime.ErrorToken; >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.ErrorToken; >+import lpg.runtime.IToken; > > import org.eclipse.emf.common.util.TreeIterator; > import org.eclipse.emf.ecore.EClass; >@@ -45,7 +45,7 @@ > import org.eclipse.ocl.cst.PathNameCS; > import org.eclipse.ocl.cst.SimpleNameCS; > import org.eclipse.ocl.expressions.StringLiteralExp; >-import org.eclipse.ocl.lpg.AbstractParser; >+import org.eclipse.ocl.lpg.OCLParserStream; > import org.eclipse.qvt.declarative.ecore.utils.EcoreUtils; > import org.eclipse.qvt.declarative.ecore.utils.TracingOption; > import org.eclipse.qvt.declarative.editor.ui.QVTEditorPlugin; >@@ -370,7 +370,7 @@ > } > > protected IToken getToken() { >- AbstractParser stream = parseResult.getParser(); >+ OCLParserStream stream = parseResult.getParser().getIPrsStream(); > IToken errorToken = stream.getErrorTokenAtCharacter(offset); > if (errorToken != null) > return errorToken; >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonTokenColorer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonTokenColorer.java,v >retrieving revision 1.5 >diff -u -r1.5 CommonTokenColorer.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonTokenColorer.java 16 Aug 2009 10:28:51 -0000 1.5 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonTokenColorer.java 2 Sep 2009 18:15:50 -0000 >@@ -16,7 +16,7 @@ > */ > package org.eclipse.qvt.declarative.editor.ui.imp; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; > > import org.eclipse.imp.parser.IParseController; > import org.eclipse.imp.services.ITokenColorer; >@@ -73,4 +73,10 @@ > return super.getColoring(controller, token); > } > } >+ >+ public TextAttribute getInterColoring(IParseController controller, >+ Object prevToken, Object nextToken) { >+ // TODO Auto-generated method stub >+ return null; >+ } > } >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonSourcePositionLocator.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonSourcePositionLocator.java,v >retrieving revision 1.2 >diff -u -r1.2 CommonSourcePositionLocator.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonSourcePositionLocator.java 20 Aug 2009 20:12:09 -0000 1.2 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonSourcePositionLocator.java 2 Sep 2009 18:15:50 -0000 >@@ -16,7 +16,7 @@ > */ > package org.eclipse.qvt.declarative.editor.ui.imp; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; > > import org.eclipse.core.runtime.IPath; > import org.eclipse.core.runtime.Path; >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseController.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseController.java,v >retrieving revision 1.23 >diff -u -r1.23 CommonParseController.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseController.java 20 Aug 2009 20:21:40 -0000 1.23 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseController.java 2 Sep 2009 18:15:49 -0000 >@@ -33,7 +33,7 @@ > import java.util.Iterator; > import java.util.List; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IToken; > > import org.eclipse.core.resources.IProject; > import org.eclipse.core.runtime.CoreException; >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonFoldingUpdater.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonFoldingUpdater.java,v >retrieving revision 1.6 >diff -u -r1.6 CommonFoldingUpdater.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonFoldingUpdater.java 20 Aug 2009 20:17:34 -0000 1.6 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonFoldingUpdater.java 2 Sep 2009 18:15:49 -0000 >@@ -20,10 +20,10 @@ > import java.util.HashMap; > import java.util.List; > >-import lpg.lpgjavaruntime.Adjunct; >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.LexStream; >-import lpg.lpgjavaruntime.PrsStream; >+import lpg.runtime.Adjunct; >+import lpg.runtime.ILexStream; >+import lpg.runtime.IPrsStream; >+import lpg.runtime.IToken; > > import org.eclipse.imp.services.base.FolderBase; > import org.eclipse.jface.text.Position; >@@ -62,12 +62,12 @@ > } > }; > >- protected PrsStream prsStream = null; >+ protected IPrsStream prsStream = null; > > protected abstract ICommonPlugin getPlugin(); > > protected void makeAdjunctAnnotations(CSTNode theAST) { >- LexStream lexStream = prsStream.getLexStream(); >+ ILexStream lexStream = prsStream.getILexStream(); > if (lexStream == null) > return; > @SuppressWarnings("unchecked") >@@ -106,7 +106,7 @@ > IToken gate_token = adjuncts.length == 0 ? next_token : adjuncts[0]; > makeAnnotationWithOffsets(first_token.getStartOffset(), gate_token > .getLine() > last_token.getEndLine() ? prsStream >- .getLexStream().getLineOffset(gate_token.getLine() - 1) >+ .getILexStream().getLineOffset(gate_token.getLine() - 1) > : last_token.getEndOffset()); > } > } >@@ -127,7 +127,7 @@ > if (theCST != null) { > IToken startToken = theCST.getStartToken(); > if (startToken != null) { >- prsStream = startToken.getPrsStream(); >+ prsStream = startToken.getIPrsStream(); > FoldingCSTVisitor visitor = new FoldingCSTVisitor(getPlugin().getEditorDefinition()); > visitor.enter(theCST); > makeAdjunctAnnotations(theCST); >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseHelper.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseHelper.java,v >retrieving revision 1.1 >diff -u -r1.1 CommonParseHelper.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseHelper.java 20 Aug 2009 20:20:19 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonParseHelper.java 2 Sep 2009 18:15:50 -0000 >@@ -39,7 +39,7 @@ > keywords = new ArrayList<ICommonKeyword>(); > int[] keywordKinds= parser.getLexer().getKeywordKinds(); > for(int i= 1; i < keywordKinds.length; i++) { >- int index= parser.mapKind(keywordKinds[i]); >+ int index= parser.getIPrsStream().mapKind(keywordKinds[i]); > fIsKeyword[index]= true; > keywords.add(createKeyword(tokenKindNames[index])); > } >Index: src/org/eclipse/qvt/declarative/editor/ui/imp/CommonProblemHandler.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/imp/CommonProblemHandler.java,v >retrieving revision 1.5 >diff -u -r1.5 CommonProblemHandler.java >--- src/org/eclipse/qvt/declarative/editor/ui/imp/CommonProblemHandler.java 20 Nov 2008 08:10:31 -0000 1.5 >+++ src/org/eclipse/qvt/declarative/editor/ui/imp/CommonProblemHandler.java 2 Sep 2009 18:15:50 -0000 >@@ -16,7 +16,8 @@ > */ > package org.eclipse.qvt.declarative.editor.ui.imp; > >-import lpg.lpgjavaruntime.IToken; >+import lpg.runtime.IPrsStream; >+import lpg.runtime.IToken; > > import org.eclipse.core.resources.IMarker; > import org.eclipse.imp.parser.IMessageHandler; >@@ -42,7 +43,7 @@ > } > > public IToken getNearestTokenAtCharacter(int offset) { // FIXME Move to AbstractParser >- AbstractParser parser = getParser(); >+ IPrsStream parser = getParser().getIPrsStream(); > int maxIndex = parser.getSize(); > if (maxIndex <= 0) > return null; >Index: src/org/eclipse/qvt/declarative/editor/ui/utils/EditorModelUtils.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/utils/EditorModelUtils.java,v >retrieving revision 1.1 >diff -u -r1.1 EditorModelUtils.java >--- src/org/eclipse/qvt/declarative/editor/ui/utils/EditorModelUtils.java 17 Jan 2009 20:18:43 -0000 1.1 >+++ src/org/eclipse/qvt/declarative/editor/ui/utils/EditorModelUtils.java 2 Sep 2009 18:15:50 -0000 >@@ -16,9 +16,9 @@ > */ > package org.eclipse.qvt.declarative.editor.ui.utils; > >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.LexStream; >-import lpg.lpgjavaruntime.PrsStream; >+import lpg.runtime.ILexStream; >+import lpg.runtime.IPrsStream; >+import lpg.runtime.IToken; > > import org.eclipse.ocl.cst.CSTNode; > >@@ -28,10 +28,10 @@ > IToken token = cstNode.getStartToken(); > if (token == null) > return null; >- PrsStream prsStream = token.getPrsStream(); >+ IPrsStream prsStream = token.getIPrsStream(); > if (prsStream == null) > return null; >- LexStream lexStream = prsStream.getLexStream(); >+ ILexStream lexStream = prsStream.getILexStream(); > if (lexStream == null) > return null; > return lexStream.getFileName(); >Index: src/org/eclipse/qvt/declarative/editor/ui/builder/MarkerProblemHandler.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.ui/src/org/eclipse/qvt/declarative/editor/ui/builder/MarkerProblemHandler.java,v >retrieving revision 1.4 >diff -u -r1.4 MarkerProblemHandler.java >--- src/org/eclipse/qvt/declarative/editor/ui/builder/MarkerProblemHandler.java 31 Oct 2008 20:42:49 -0000 1.4 >+++ src/org/eclipse/qvt/declarative/editor/ui/builder/MarkerProblemHandler.java 2 Sep 2009 18:15:49 -0000 >@@ -22,6 +22,8 @@ > import java.util.Map; > import java.util.Set; > >+import lpg.runtime.IPrsStream; >+ > import org.eclipse.core.resources.IMarker; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.IWorkspace; >@@ -172,9 +174,10 @@ > String problemMessage, String processingContext, int startOffset, int endOffset) { > int line = -1; > if (startOffset >= 0) { >- int leftToken = Math.abs(getParser().getTokenIndexAtCharacter(startOffset)); // abs to move non-token to predecessor >+ IPrsStream stream = getParser().getIPrsStream(); >+ int leftToken = Math.abs(stream.getTokenIndexAtCharacter(startOffset)); // abs to move non-token to predecessor > if (leftToken >= 0) >- line = getParser().getLine(leftToken); >+ line = stream.getLine(leftToken); > } > Integer severity = severityMap.get(problemSeverity); > addMarker(severity != null ? severity.intValue() : IMarker.SEVERITY_ERROR, >#P org.eclipse.qvt.declarative.parser.ocl >Index: src/org/eclipse/qvt/declarative/parser/ocl/OCLFileAnalyzer.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.ocl/src/org/eclipse/qvt/declarative/parser/ocl/OCLFileAnalyzer.java,v >retrieving revision 1.7 >diff -u -r1.7 OCLFileAnalyzer.java >--- src/org/eclipse/qvt/declarative/parser/ocl/OCLFileAnalyzer.java 18 Dec 2008 07:12:30 -0000 1.7 >+++ src/org/eclipse/qvt/declarative/parser/ocl/OCLFileAnalyzer.java 2 Sep 2009 18:15:50 -0000 >@@ -16,10 +16,12 @@ > */ > package org.eclipse.qvt.declarative.parser.ocl; > >+import java.io.IOException; >+import java.io.Reader; > import java.util.ArrayList; > import java.util.List; > >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.Monitor; > > import org.eclipse.emf.ecore.EClass; > import org.eclipse.emf.ecore.EClassifier; >@@ -52,8 +54,8 @@ > private OCLTopLevelEnvironment topLevelEnvironment = null; > private EClass iteratorsClass = null; > >- public OCLFileAnalyzer(OCLFileEnvironment environment, Monitor monitor) { >- super(new OCLBacktrackingParser(new OCLBacktrackingLexer(environment))); >+ public OCLFileAnalyzer(OCLFileEnvironment environment, Monitor monitor, Reader reader, String fileName) throws IOException { >+ super(new OCLBacktrackingParser(new OCLBacktrackingLexer(environment, reader, fileName))); > this.monitor = monitor; > } > >Index: src/org/eclipse/qvt/declarative/parser/ocl/environment/OCLFileEnvironment.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.parser.ocl/src/org/eclipse/qvt/declarative/parser/ocl/environment/OCLFileEnvironment.java,v >retrieving revision 1.5 >diff -u -r1.5 OCLFileEnvironment.java >--- src/org/eclipse/qvt/declarative/parser/ocl/environment/OCLFileEnvironment.java 5 Feb 2009 09:39:21 -0000 1.5 >+++ src/org/eclipse/qvt/declarative/parser/ocl/environment/OCLFileEnvironment.java 2 Sep 2009 18:15:51 -0000 >@@ -16,12 +16,14 @@ > */ > package org.eclipse.qvt.declarative.parser.ocl.environment; > >+import java.io.IOException; >+import java.io.Reader; > import java.util.ArrayList; > import java.util.Collection; > import java.util.List; > >-import lpg.lpgjavaruntime.IToken; >-import lpg.lpgjavaruntime.Monitor; >+import lpg.runtime.IToken; >+import lpg.runtime.Monitor; > > import org.eclipse.emf.common.notify.Notifier; > import org.eclipse.emf.ecore.EClass; >@@ -115,8 +117,9 @@ > } > > @Override >- public OCLFileAnalyzer createAnalyzer(Monitor monitor) { >- return new OCLFileAnalyzer(this, monitor); >+ protected OCLFileAnalyzer createAnalyzer( >+ Monitor monitor, Reader reader, String fileName) throws IOException { >+ return new OCLFileAnalyzer(this, monitor, reader, fileName); > } > > @Override >#P org.eclipse.qvt.declarative.editor.qvtrelation.ui >Index: src/org/eclipse/qvt/declarative/editor/qvtrelation/ui/imp/QVTrParseController.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt.declarative.editor.qvtrelation.ui/src/org/eclipse/qvt/declarative/editor/qvtrelation/ui/imp/QVTrParseController.java,v >retrieving revision 1.6 >diff -u -r1.6 QVTrParseController.java >--- src/org/eclipse/qvt/declarative/editor/qvtrelation/ui/imp/QVTrParseController.java 20 Aug 2009 20:22:09 -0000 1.6 >+++ src/org/eclipse/qvt/declarative/editor/qvtrelation/ui/imp/QVTrParseController.java 2 Sep 2009 18:15:52 -0000 >@@ -20,7 +20,7 @@ > import org.eclipse.qvt.declarative.editor.qvtrelation.ui.QVTrCreationFactory; > import org.eclipse.qvt.declarative.editor.ui.imp.CommonParseController; > import org.eclipse.qvt.declarative.editor.ui.imp.ICommonKeyword; >-import org.eclipse.qvt.declarative.parser.qvtrelation.QVTrLexer; >+import org.eclipse.qvt.declarative.parser.qvtrelation.QVTrParsersym; > import org.eclipse.qvt.declarative.parser.qvtrelation.cst.QVTrCSTPackage; > > public class QVTrParseController extends CommonParseController >@@ -38,19 +38,19 @@ > > public TokenKind getTokenKind(int kind) { > switch (kind) { >- case QVTrLexer.TK_EOF_TOKEN: >+ case QVTrParsersym.TK_EOF_TOKEN: > return TokenKind.EOF; >- case QVTrLexer.TK_IDENTIFIER: >+ case QVTrParsersym.TK_IDENTIFIER: > return TokenKind.IDENTIFIER; >- case QVTrLexer.TK_INTEGER_LITERAL: >+ case QVTrParsersym.TK_INTEGER_LITERAL: > return TokenKind.INTEGER; >- case QVTrLexer.TK_REAL_LITERAL: >+ case QVTrParsersym.TK_REAL_LITERAL: > return TokenKind.REAL; >- case QVTrLexer.TK_STRING_LITERAL: >+ case QVTrParsersym.TK_STRING_LITERAL: > return TokenKind.STRING; >- case QVTrLexer.TK_SINGLE_LINE_COMMENT: >+ case QVTrParsersym.TK_SINGLE_LINE_COMMENT: > return TokenKind.LINE_COMMENT; >- case QVTrLexer.TK_MULTI_LINE_COMMENT: >+ case QVTrParsersym.TK_MULTI_LINE_COMMENT: > return TokenKind.PARAGRAPH_COMMENT; > default: > if (isKeyword(kind))
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