Skip to content

ATL Eclipse Modeling Tools #16

@jouinifatma

Description

@jouinifatma

I tried to create an ATL file that contains the transformation from a model to another. Basically, I developed 3 models: an abstract user interface, concrete UI, and final UI. There are 2 transformations created: AUI2CUI.atl and CUI2FUI.atl.
I have a problem with the second file that I did not recognize. The error is below:

mismatched input '(' expecting SEMI CUI2FUI.atl /ATLTransformationProject/Trans_Rules line 30, column 19 ATL Problem
can you pleaze help me to hundle this problem, however i'm not an expert on java and eclipse.
Capture d'écran 2024-11-05 101852

the file is below:

`
-- @path CUI=/ATLTransformationProject/Meta_Model/MyCUI.ecore
-- @path FUI=/ATLTransformationProject/Meta_Model/MyFUI.ecore
module CUI2FUI;
create OUT : FUI from IN : CUI;


rule CUIModelToFUIModel {
from
cuiModel : CUI!CUIModel
to
fuiModel : FUI!FUIModel ( ) }


-- Règle pour transformer l'énumération UIView en une classe UITextType
rule UIViewToUITextType {
from
uiView : CUI!UIView -- Référence à l'énumération dans le modèle source
to
textType : FUI!UITextType ( -- Nouvelle classe dans le modèle cible
name <- uiView.name, -- Copie le nom de l'énumération en nom de classe
UITextField <- thisModule.createAttribute(uiView, 'UITextField'),
UIDatePicker <- thisModule.createAttribute(uiView, 'UIDatePicker'),
UITextContentTypeEmailAddress <- thisModule.createAttribute(uiView, 'UITextContentTypeEmailAddress'),
UITextContentTypeTelephoneNumber <- thisModule.createAttribute(uiView, 'UITextContentTypeTelephoneNumber'),
UITextView <- thisModule.createAttribute(uiView, 'UITextView')
)
}

-- Helper pour créer des attributs dans la classe UITextType
helper def : createAttribute(uiView : CUI!UIView, attributeName : String) : FUI!Attribute =
FUI!Attribute (
name <- attributeName,
value <- if uiView.ownedLiteral->exists(l | l.name = attributeName)
then attributeName
else null
);


rule UIButtonTypeToUIButton {
from
cuiButtonType : CUI!UIButtonType
to
fuiButton : FUI!UIButton ( ) }


rule CICToWidget {
from
cuiCIC : CUI!CIC
to
fuiWidget : FUI!Widget ( ) }


rule CCToUIView {
from
cuiCC : CUI!CC
to
fuiView : FUI!UIView (
id <- cuiCC.id ) }


rule UITextComponentToUITextField {
from
cuiTextComponent : CUI!UITextComponent
to
fuiTextField : FUI!UITextField ( ) }
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions