diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext index e414476a29fb8e5b8fddfde8a0b58afc278a55b3..90d32c9103717e5d9e19afdcdf6593e08100854d 100644 --- a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext +++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext @@ -1,5 +1,5 @@ // automatically generated by Xtext -grammar edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage with org.eclipse.xtext.common.Terminals +grammar org.xtext.example.mydsl.Temp with org.eclipse.xtext.common.Terminals import "platform:/resource/edu.kit.ipd.descartes.mm.adaptation/model/adaptation.ecore" import "http://www.eclipse.org/emf/2002/Ecore" as ecore @@ -12,8 +12,8 @@ AdaptationProcess returns AdaptationProcess: id=EString '{' 'name' name=EString - 'actions' '{' actions+=Action ( "," actions+=Action)* '}' 'tactics' '{' tactics+=Tactic ( "," tactics+=Tactic)* '}' + 'actions' '{' actions+=Action ( "," actions+=Action)* '}' 'strategies' '{' strategies+=Strategy ( "," strategies+=Strategy)* '}' ('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}' )? 'goal' goal=OverallGoal @@ -32,10 +32,12 @@ AdaptationPoint returns adaptationpoints::AdaptationPoint: + AbstractControlFlowElement returns AbstractControlFlowElement: StartAction | StopAction | LoopAction | BranchAction | ActionReference; + VariationType returns adaptationpoints::VariationType: PropertyRange | SetOfConfigurations; @@ -46,7 +48,6 @@ VariationType returns adaptationpoints::VariationType: - EString returns ecore::EString: STRING | ID; @@ -65,10 +66,10 @@ Action returns Action: id=EString '{' 'name' name=EString - 'operationType' operationType=OperationType ('outputParam' outputParam=[Parameter|EString])? ('inputParams' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )? 'referredAdaptationPoint' referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] + 'adaptationActionOperation' adaptationActionOperation=AdaptationActionOperation '}'; Strategy returns Strategy: @@ -139,7 +140,9 @@ BranchAction returns BranchAction: ('condition' condition=EString)? ('predecessor' predecessor=[AbstractControlFlowElement|EString])? ('successor' successor=[AbstractControlFlowElement|EString])? - 'branches' '{' branches+=AdaptationPlan ( "," branches+=AdaptationPlan)* '}' + ('context' context=[core::Entity|EString])? + 'conditionTrueBranch' conditionTrueBranch=AdaptationPlan + 'conditionFalseBranch' conditionFalseBranch=AdaptationPlan '}'; ActionReference returns ActionReference: @@ -154,8 +157,12 @@ ActionReference returns ActionReference: EInt returns ecore::EInt: '-'? INT; -OperationType returns adaptationpoints::OperationType: - 'OperationType' /* TODO: implement this rule and an appropriate IValueConverter */; +AdaptationActionOperation returns AdaptationActionOperation: + 'AdaptationActionOperation' + '{' + 'adaptationOperationScope' adaptationOperationScope=AdaptationScope + 'adaptationOperationDirection' adaptationOperationDirection=AdaptationDirection + '}'; ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange: 'ModelVariableConfigurationRange' @@ -189,20 +196,22 @@ PropertyRange returns adaptationpoints::PropertyRange: SetOfConfigurations returns adaptationpoints::SetOfConfigurations: 'SetOfConfigurations' '{' - ('variants' '(' variants+=[ecore::EObject|EString] ( "," variants+=[ecore::EObject|EString])* ')' )? + ('variants' '(' variants+=[core::Entity|EString] ( "," variants+=[core::Entity|EString])* ')' )? 'valueConstraint' valueConstraint=OclConstraint '}'; OclConstraint returns adaptationpoints::OclConstraint: 'OclConstraint' + name=EString '{' 'oclString' oclString=EString '}'; -EObject returns ecore::EObject: - {ecore::EObject} - 'EObject' - ; +AdaptationScope returns AdaptationScope: + 'AdaptationScope' /* TODO: implement this rule and an appropriate IValueConverter */; + +AdaptationDirection returns AdaptationDirection: + 'AdaptationDirection' /* TODO: implement this rule and an appropriate IValueConverter */; Objective returns Objective: 'Objective' @@ -265,9 +274,18 @@ MetricValue returns perfdatarepo::MetricValue: '{' 'name' name=EString 'value' value=EDouble + 'measuredEntity' measuredEntity=[perfdatarepo::MeasuredEntity|EString] 'metricType' metricType=[perfdatarepo::MetricType|EString] '}'; +MeasuredEntity returns perfdatarepo::MeasuredEntity: + 'MeasuredEntity' + id=EString + '{' + 'name' name=EString + 'metricTypes' '(' metricTypes+=[perfdatarepo::MetricType|EString] ( "," metricTypes+=[perfdatarepo::MetricType|EString])* ')' + '}'; + MetricType returns perfdatarepo::MetricType: 'MetricType' id=EString