Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » Error on migrating from oaw to TMF Xtext -> leads to error (114)
Error on migrating from oaw to TMF Xtext -> leads to error (114) [message #56032] Tue, 07 July 2009 14:48 Go to next message
Martin Kuhn is currently offline Martin KuhnFriend
Messages: 49
Registered: July 2009
Member
Hi,

I tried to switch from oaw to xtext. So I did the changes explained in
reference manual and now the syntax of my xtext grammar seems o.k.

When I started the workflow I got many warnings (-> Decision can match
input such as "'XYZ'" using multiple alternatives: 1, 2 As a result,
alternative(s) 2 were disabled for that input ...)

Than, I found a forum thread
( http://www.eclipse.org/newsportal/article.php?id=1240&gr oup=eclipse.modeling.tmf#1240)
with the advice of enabling backtracking.

I changed the following in my workflow -> here are the relevant code
fragments:

<!--<fragment class="org.eclipse.xtext.generator.AntlrDelegatingFragment"
/>-->
<fragment class="de.itemis.xtext.antlr.XtextAntlrGeneratorFragment">
<options backtrack="true"/>
</fragment>

AND

<!-- the following fragment tries to use the Antlr based content assist
fragment which can be downloaded from http://www.itemis.com
and will be ignored if it's not available. -->
<!-- <fragment
class="org.eclipse.xtext.generator.DelegatingGeneratorFragment "
delegate="de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment "
message="You are generating without ANTLR. It is highly recommended to
download and use the plugin 'de.itemis.xtext.antlr' \n\t using the update
site http://download.itemis.com/updates/milestones.">
</fragment> -->
<!-- <fragment
class="de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment"/ > -->
<fragment class="de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment" >
<options backtrack="true"/>
</fragment>


But now I get some errors like:

error(114):
../tfact.dsl/src-gen/com/tfact/parser/antlr/internal/Interna lTfactDsl.g:6370:3:
attribute is not a token, parameter, or return value: current
...

Can anybody of you give me a hint what's wrong?

TIA

Martin

===============================

Here is my xtext grammar:

grammar com.tfact.TfactDsl with org.eclipse.xtext.common.Terminals

generate tfactDsl "http://www.tfact.com/TfactDsl"

AppModel :
(imports+=Import)*

("EnumModel" "{"
(enums+=EnumDef)*
"}")?
("PermissionModel" "{"
((permissionGroups+=PermissionGroup) | (permGroups+=PermGroup))*
"}")?
("ServiceModel" "{"
((dtos+=GeneralDtoDef) | (services+=Service))*
"}")?
("ViewModel" "{"
((views+=SingleView) | (containerViews+=ContainerView) |
(masterDetailViews+=MasterDetailView))*
"}")?
("VarAttributeModel" "{"
(varGroups+=VarGroup)*
"}")?

;

BaseVar:
VarAttribute | VarGroup;

VarAttribute :
name=ID ":"
type=DataType
("length" ("=")? length=INT)?
("minLength" ("=")? minLength=INT)?
("doc" ("=")? doc=STRING)?
;

VarGroup :
"VarGroup" name=ID
("belongsToEntity" ("=")? entity=[Entity])
("doc" ("=")? doc=STRING)?
("{"
(attributes+=VarAttribute)*
"}")?
;



Import :
'import' importURI=STRING;

DomainObject:
Entity | Embedded;

Entity :
"Entity" name=ID ("extends" extends=[Entity])?
("accessCreate" "=" accessCreate=SystemAccessLevel)?
("accessRead" "=" accessRead =SystemAccessLevel)?
("accessUpdate" "=" accessUpdate=SystemAccessLevel)?
("accessDelete" "=" accessDelete=SystemAccessLevel)?
(noOptimisticLockingRequired?="noOptimisticLockingRequired")?
(noCreatedHistory?="noCreatedHistory")?
(noUpdatedHistory?="noUpdatedHistory")? (keyAssigned?="keyAssigned")?
("tableName" "=" tableName=STRING)?
("doc" "=" doc=STRING)?
"{"
(features+=Feature)*
"}";

Embedded :

"Embedded" name=ID ("extends" extends=[Embedded])? ("doc" "="
doc=STRING)?
"{"
(features+=Feature)*
"}";

// Feature is superclass of Attribute, Association, EnumRef, EmbeddedRef
Feature :
EntityAttribute | Association | EnumRef | EmbeddedRef;


EntityAttribute :
name=ID ":"
type=DataType
("template" "=" template=[EntityAttributeTemplate])?
(validators=Validators)?
("length" "=" length=INT)?
("minLength" "=" minLength=INT)?
(transient?="transient")?
(unique?="unique")?
("def" "=" def=STRING)?
("doc" "=" doc=STRING)?
;

EntityAttributeTemplate :
"Template" name=ID
(validators=Validators)?
("length" "=" length=INT)?
("minLength" "=" minLength=INT)?
;

// Validators start

Validators:
"validators" "=" "["validatorList=ValidatorList"]"
;

ValidatorList :
(validators+=Validator) (", " (validators+=Validator))*
;

Validator :
NotNullValidator | EmailValidator | RegexValidator | RangeValidator
;

NotNullValidator : "notNull";
EmailValidator : "eMail";

RegexValidator :
"regex" "(" regex=STRING ("," regexFlags=RegexFlags)? ")";

RegexFlags:
flags+=RegexFlag ("+" flags+=RegexFlag)*
;

enum RegexFlag : CASE_INSENSITIVE="CASE_INSENSITIVE" |
MULTILINE="MULTILINE" | DOTALL="DOTALL" | UNICODE_CASE="UNICODE_CASE" |
CANON_EQ="CANON_EQ";

RangeValidator :
"range" "("min=INT ", " max=INT ")";

// Validators end

Association :
"Ref" name=ID ":" type=[Entity] multiplicity=Multiplicity
(bidirectional?="bidirectional")?
(cascading=Cascading)?
(inverseCascading=InverseCascading)?
(eager?= "eager")?
(inverseEager ?= "inverseEager")?
(required?="required" | NOT "required")?
("doc" "=" doc=STRING)?
;

Cascading :
"cascading" "=" "["cascadingTypeList=CascadingTypeList"]"
;

InverseCascading :
"inverseCascading" "=" "["cascadingTypeList=CascadingTypeList"]"
;

CascadingTypeList:
cascadingTypes+=CascadeType (", " cascadingTypes+=CascadeType)*
;

EnumRef :
"EnumRef" name=ID ":" type=[EnumDef] ("def" "=" def=STRING)? ("doc" "="
doc=STRING)?
;

EnumDef :
"Enum" name=ID (noMultiLanguage?="noMultiLanguage")? ("doc" "="
doc=STRING)? "{"
values+=EnumValue ("," values+=EnumValue )*
"}";

EnumValue:
value=ID ("doc" "=" doc=STRING)?
;

EmbeddedRef :
"EmbeddedRef" name=ID ":" type=[Embedded] ("doc" "=" doc=STRING)?
;

PermGroup :
"PermGroup" name=ID "entityRef" "=" entityRef=[Entity] "{"
(permissions+=Perm)+
"}"
;

Perm :
name=ID "(" systemAccessLevel=SystemAccessLevel
")" ("doc" "=" doc=STRING)?
;

PermissionGroup :
"PermissionGroup" name=ID "entityRef" "=" entityRef=[Entity] "{"
(permissions+=Permission)+
"}"
;

Permission :
name=ID "(" matAdmin=MemberAccessType
(","|", ") matMaintainer=MemberAccessType
(","|", ") matMember=MemberAccessType
(","|", ") matGuest=MemberAccessType
")" ("doc" "=" doc=STRING)?
;

Service :
"Service" name=ID ((backendOnly?="backendOnly") |
(frontendOnly?="frontendOnly"))?
("entityRef" "=" entityRef=[Entity])?
("access" "=" defaultSystemAccessLevel=SystemAccessLevel)?
("doc" "=" doc=STRING)?
("{"
(serviceMethods+=ServiceMethod)*
"}")?;

ServiceMethod :
(permissionAnnotation=ServiceMethodPermissionAnnotation)?
name=ID (noDaoMethod?="noDaoMethod")?
(enforceMultiResult?="enforceMultiResult")? ((backendOnly?="backendOnly")
| (frontendOnly?="frontendOnly"))?
"(" (params=ServiceParams)? ")"
(RESULT results=ServiceResults )?
("access" "=" systemAccessLevel=SystemAccessLevel)?
("doc" "=" doc=STRING)?
;

ServiceMethodPermissionAnnotation:
"@" perm=[Perm|JavaIdentifier] "("idVarName=JavaIdentifier")"
;

GeneralDtoDef:
DTODef | EntityDtoDef
;

EntityDtoDef:
"EntityDto" name=ID "entityRef" "=" entityRef=[Entity] ("doc" "="
doc=STRING)? "{"
(members+=EntityDtoMemberDef)+
"}"
;

EntityDtoMemberDef:
member=EntityMemberIdentifier";"
;

// MTR this is almost the same as: ViewMemberDetailDef
// we should remove ViewMemberDetailDef in favour of this definition
EntityMemberIdentifier:
(memberParts+=ID)?("." memberParts+=ID)*
;

DTODef :
"DTO" name=ID ("parentClass" "=" parentClass=JavaIdentifier)? ("doc" "="
doc=STRING)? "{"
(members+=DTOMemberDef)*
"}"
;

DTOMemberDef:
param=ServiceParameter ("doc" "=" doc=STRING)? ";"
;

ServiceBaseParams :
ServiceParams | ServiceResults
;

ServiceResults :
(parameters+=ServiceParameter)?( (","|", ")
parameters+=ServiceParameter)*
;

ServiceParams :
(parameters+=ServiceParameter)?( (","|", ")
parameters+=ServiceParameter)*
;


ServiceParameter :
DomainObjectParameter | DataTypeParameter;

ExtDomainObject:
DomainObject | EnumDef | GeneralDtoDef;

DomainObjectParameter :
name=ID ":" type=[ExtDomainObject] (collection?="*")?;

DataTypeParameter :
name=ID ":" type=DataType (collection?="*")?;

View :
ContainerView | SingleView | MasterDetailView
;

SingleView:
CommonView | EntityRefView | InfoView | EntityEditView;

CommonViewData:
(hasViewControllerHandler?="hasHandler")? ("access" "="
systemAccessLevel=SystemAccessLevel)?
;

ContainerView :
"ContainerView" name=ID (commonViewData=CommonViewData)? ("style" "="
style=ContainerViewStyle)? (("package" "=" package=ID) |
("belongsToEntity" "=" belongsToEntity=[Entity]))? ("parentClass" "="
parentClass=JavaIdentifier)? ("doc" "=" doc=STRING)?
"{"
(views+=ViewRef)?((","|", ") views+=ViewRef)*
"}";



ViewRef :
type=[View] ("doc" "=" doc=STRING)?
;
CommonView:
"CommonView" name=ID (commonViewData=CommonViewData)? (("package" "="
package=ID) | ("belongsToEntity" "=" belongsToEntity=[Entity]))?
("parentClass" "=" parentClass=JavaIdentifier)? ("doc" "=" doc=STRING)?
;

EntityRefView:
DetailView | BaseListView ;

BaseListView:
ListView | SelectionView;

DetailView:
"DetailView" name=ID (commonViewData=CommonViewData)? "entityRef" "="
entityRef=[DomainObject] ("package" "=" package=ID)? ("parentClass" "="
parentClass=JavaIdentifier)? ("doc" "=" doc=STRING)?
("{"
("membersToInclude" "=" "[" membersToInclude=ViewMemberDef "]")
"}");

EntityEditView:
"EntityEditView" name=ID (commonViewData=CommonViewData)? "entityDtoRef"
"=" entityDtoRef=[EntityDtoDef] ("package" "=" package=ID)? ("parentClass"
"=" parentClass=JavaIdentifier)? ("doc" "=" doc=STRING)?;

InfoView:
"InfoView" name=ID (commonViewData=CommonViewData)? ("entityRef" "="
entityRef=[DomainObject])? ("package" "=" package=ID)? ("parentClass" "="
parentClass=JavaIdentifier)? ("doc" "=" doc=STRING)?
;

ListView:
"ListView" name=ID (isPagingAware?="isPagingAware")?
(commonViewData=CommonViewData)? (("entityRef" "="
entityRef=[DomainObject]) | ("dtoRef" "=" dtoRef=[DTODef]) |
("entityDtoRef" "=" entityDtoRef=[EntityDtoDef]) ) ("package" "="
package=ID)? ("parentClass" "=" parentClass=JavaIdentifier)? ("doc" "="
doc=STRING)?
("{"
("membersToInclude" "=" "[" membersToInclude=ViewMemberDef "]")
"}")?;

SelectionView:
"SelectionView" name=ID (isPagingAware?="isPagingAware")?
(commonViewData=CommonViewData)? (("entityRef" "="
entityRef=[DomainObject])? | ("dtoRef" "=" dtoRef=[DTODef])? |
("entityDtoRef" "=" entityDtoRef=[EntityDtoDef])?) ("package" "="
package=ID)? ("parentClass" "=" parentClass=JavaIdentifier)? ("doc" "="
doc=STRING)?
("{"
("membersToInclude" "=" "[" membersToInclude=ViewMemberDef "]")
"}")?;

MasterDetailView:
"MasterDetailView" name=ID (commonViewData=CommonViewData)? "listView"
"=" listView=[ListView] "detailView" "=" detailView=[DetailView]
("package" "=" package=ID)? ("parentClass" "="
parentClass=JavaIdentifier)? ("doc" "=" doc=STRING)?
;

ViewMemberDef:
(members+=ViewMemberDetailDef)?((","|", ") members+=ViewMemberDetailDef)*
;

ViewMemberDetailDef:
(membersPart+=ID)?("." membersPart+=ID)*
;

terminal NOT : ('!'|'not');

terminal RESULT : ('->');

// if a cascade type is added make sure, that you also update the
cascading functions in EntityUtilExt.ext
enum CascadeType : All="ct_all" | Save_update="ct_save_update" |
Delete="ct_delete" | Delete_orphan="ct_delete_orphan";
enum SystemAccessLevel: Public="public" | User="user" | Admin="admin";
enum MemberAccessType: Granted="matGranted" | Creator="matCreator" |
Denied="matDenied";

DataType:("string"|"integer"|"long"|"double"|"boolean "|"date"|"date_time"|"money"|"short"|"text"|"htmltext "|"time"|"binary"|"large_binary"|"class"|"object"| "map"|"collection");
Multiplicity : ("oneToMany"|"oneToOne"|"manyToOne");
ContainerViewStyle : ("wizard"|"tab"|"card"|"composite");
JavaIdentifier: ID ("." ID)*;
Re: Error on migrating from oaw to TMF Xtext -> leads to error (114) [message #56064 is a reply to message #56032] Tue, 07 July 2009 15:21 Go to previous messageGo to next message
Sven Efftinge is currently offline Sven EfftingeFriend
Messages: 1823
Registered: July 2009
Senior Member
Hi Martin,

in ...

>
> SelectionView:
> "SelectionView" name=ID (isPagingAware?="isPagingAware")?
> (commonViewData=CommonViewData)? (("entityRef" "="
> entityRef=[DomainObject])? | ("dtoRef" "=" dtoRef=[DTODef])? |
> ("entityDtoRef" "=" entityDtoRef=[EntityDtoDef])?) ...

it should read

("entityRef" "=" entityRef=[DomainObject] | "dtoRef" "=" dtoRef=[DTODef]
| "entityDtoRef" "=" entityDtoRef=[EntityDtoDef])?

instead.
I'm not sure what the actual problem is, but it seems to be a problem in
Antlr.

Cheers,
Sven
Re: Error on migrating from oaw to TMF Xtext -> leads to error (114) [message #56090 is a reply to message #56064] Tue, 07 July 2009 15:57 Go to previous message
Martin Kuhn is currently offline Martin KuhnFriend
Messages: 49
Registered: July 2009
Member
Sven,

great -> that solved the problem.

Thanks!!

Regards,
Martin
Previous Topic:DataType XMLGregorianCalendar
Next Topic:Trouble migrating grammar from oAW to TMF Xtext
Goto Forum:
  


Current Time: Sun Oct 06 14:24:53 GMT 2024

Powered by FUDForum. Page generated in 0.03603 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top