Skip to content
Snippets Groups Projects
Commit b8a9e7a4 authored by Fabian Brosig's avatar Fabian Brosig
Browse files

Share project "edu.kit.ipd.descartes.mm.workload.text" into...

Share project "edu.kit.ipd.descartes.mm.workload.text" into "https://svnserver.informatik.kit.edu/i43/svn/descartes/code"
Share project "edu.kit.ipd.descartes.mm.workload.text.ui" into "https://svnserver.informatik.kit.edu/i43/svn/descartes/code"

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@13590 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parent 9a607ccd
No related branches found
No related tags found
No related merge requests found
Showing
with 439 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>edu.kit.ipd.descartes.mm.workload.text.ui</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
</natures>
</projectDescription>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: edu.kit.ipd.descartes.mm.workload.text.ui
Bundle-Vendor: My Company
Bundle-Version: 1.0.0.qualifier
Bundle-SymbolicName: edu.kit.ipd.descartes.mm.workload.text.ui; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: edu.kit.ipd.descartes.mm.workload.text;visibility:=reexport,
org.eclipse.xtext.ui,
org.eclipse.ui.editors;bundle-version="3.5.0",
org.eclipse.ui.ide;bundle-version="3.5.0"
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: J2SE-1.5
source.. = src/,\
src-gen/
bin.includes = META-INF/,\
.,\
plugin.xml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>edu.kit.ipd.descartes.mm.workload.text</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
</natures>
</projectDescription>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: edu.kit.ipd.descartes.mm.workload.text
Bundle-Vendor: My Company
Bundle-Version: 1.0.0.qualifier
Bundle-SymbolicName: edu.kit.ipd.descartes.mm.workload.text; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.xtext;visibility:=reexport,
org.eclipse.xtext.xbase;resolution:=optional;visibility:=reexport,
org.eclipse.xtext.generator;resolution:=optional,
org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
org.eclipse.emf.codegen.ecore;resolution:=optional,
org.eclipse.emf.mwe.utils;resolution:=optional,
org.eclipse.emf.mwe2.launch;resolution:=optional,
edu.kit.ipd.descartes.mm.workload
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: J2SE-1.5
source.. = src/,\
src-gen/,\
xtend-gen/
bin.includes = META-INF/,\
.,\
plugin.xml
\ No newline at end of file
module edu.kit.ipd.descartes.mm.workload.text.WorkloadDSL
import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*
var grammarURI = "classpath:/edu/kit/ipd/descartes/mm/workload/text/WorkloadDSL.xtext"
var file.extensions = "workloadDsl"
var projectName = "edu.kit.ipd.descartes.mm.workload.text"
var runtimeProject = "../${projectName}"
Workflow {
bean = StandaloneSetup {
scanClassPath = true
platformUri = "${runtimeProject}/.."
registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage"
registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.applicationlevel.repository.RepositoryPackage"
registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.applicationlevel.functions.FunctionsPackage"
registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.applicationlevel.system.SystemPackage"
registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.workload.WorkloadPackage"
// registerGenModelFile = "platform:/resource/edu.kit.ipd.descartes.mm.workload/model/workload.genmodel"
}
component = DirectoryCleaner {
directory = "${runtimeProject}/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.ui/src-gen"
}
component = Generator {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
language = {
uri = grammarURI
fileExtensions = file.extensions
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.GrammarAccessFragment {}
// generates Java API for the generated EPackages
// fragment = ecore.EcoreGeneratorFragment {}
// the serialization component
fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment {
fileExtensions = file.extensions
}
// the Antlr parser
fragment = parser.antlr.XtextAntlrGeneratorFragment {
options = {
classSplitting = true
}
}
// the Ecore2Xtext specific terminal converter
fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment {}
// java-based API for validation
fragment = validation.JavaValidatorFragment {
// composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
// scoping and exporting API
fragment = scoping.ImportURIScopingFragment {}
fragment = exporting.SimpleNamesFragment {}
// scoping and exporting API
// fragment = scoping.ImportNamespacesScopingFragment {}
// fragment = exporting.QualifiedNamesFragment {}
// formatter API
fragment = ecore2xtext.FormatterFragment {}
// labeling API
fragment = labeling.LabelProviderFragment {}
// outline API
fragment = outline.OutlineTreeProviderFragment {}
fragment = outline.QuickOutlineFragment {}
// java-based API for content assistance
fragment = contentAssist.JavaBasedContentAssistFragment {}
// antlr parser generator tailored for content assist
fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
options = {
classSplitting = true
}
}
// provides a compare view
fragment = compare.CompareFragment {
fileExtensions = file.extensions
}
fragment = builder.BuilderIntegrationFragment {}
// project wizard (optional)
// fragment = projectWizard.SimpleProjectWizardFragment {
// generatorProjectName = "${projectName}.generator"
// modelFileExtension = file.extensions
// }
// quickfix API
fragment = quickfix.QuickfixProviderFragment {}
}
}
}
// automatically generated by Xtext
grammar edu.kit.ipd.descartes.mm.workload.text.WorkloadDSL with org.eclipse.xtext.common.Terminals
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
import "http://www.descartes-research.net/metamodel/functions/0.1" as functions
import "http://www.descartes-research.net/metamodel/system/0.1" as system
import "http://www.descartes-research.net/metamodel/repository/0.1" as repository
import "http://www.descartes-research.net/metamodel/parameterdependencies/0.1" as parameterdependencies
// import "http://www.descartes-research.net/metamodel/workload/0.1" as workload
import "platform:/resource/edu.kit.ipd.descartes.mm.workload/model/workload.ecore" as workload
Workload returns workload::Workload:
'Workload'
id=EString
'{'
'name' name=EString
('system' system=[system::System|EString])?
('usageScenarios' '{' usageScenarios+=UsageScenario ( "," usageScenarios+=UsageScenario)* '}' )?
'}';
EString returns ecore::EString:
STRING | ID;
EBigInteger returns ecore::EBigInteger :
'-'? INT;
EBigDecimal returns ecore::EBigDecimal:
'-'? INT '.' INT; // (('e'|'E') '-'? INT)?;
// TODO: maybe overlap with EBigDecimal
EProbability returns ecore::EBigDecimal:
'0'?'.'INT
;
EBoolean returns ecore::EBoolean:
'true' | 'false';
UsageScenario returns workload::UsageScenario:
workloadType=WorkloadType
scenarioBehavior=ScenarioBehavior
;
WorkloadType returns workload::WorkloadType:
OpenWorkloadType | ClosedWorkloadType;
ScenarioBehavior returns workload::ScenarioBehavior:
{workload::ScenarioBehavior}
'ScenarioBehavior'
'{'
('actions' '{' actions+=AbstractUserAction ( "," actions+=AbstractUserAction)* '}' )?
'}';
AbstractUserAction returns workload::AbstractUserAction:
LoopUserAction | DelayUserAction | BranchUserAction | EntryLevelSystemCall;
LoopUserAction returns workload::LoopUserAction:
'LoopUserAction'
'{'
'loopIterationCount' loopIterationCount=[functions::RandomVariable|EString]
'loopBodyScenarioBehavior' loopBodyScenarioBehavior=ScenarioBehavior
'}';
DelayUserAction returns workload::DelayUserAction:
'DelayUserAction'
'{'
'timeSpecification' timeSpecification=[functions::RandomVariable|EString]
'}';
BranchUserAction returns workload::BranchUserAction:
'BranchUserAction'
'{'
('branches' '{' branches+=ScenarioBehavior ( "," branches+=ScenarioBehavior)* '}' )?
'branchUserProbabilities' branchUserProbabilities=RandomVariable
'}';
EntryLevelSystemCall returns workload::EntryLevelSystemCall:
'EntryLevelSystemCall'
'{'
'providingRole' providingRole=[repository::InterfaceProvidingRole|EString]
'signature' signature=[repository::Signature|EString]
('inputParameterSettings' '{' inputParameterSettings+=CallParameterSetting ( "," inputParameterSettings+=CallParameterSetting)* '}' )?
'}';
CallParameterSetting returns workload::CallParameterSetting:
'CallParameterSetting'
name=EString
'{'
'characterization' characterization=ParameterCharacterizationType
'value' value=[functions::RandomVariable|EString]
'}';
OpenWorkloadType returns workload::OpenWorkloadType:
'OpenWorkloadType'
'{'
'interArrivalTime' interArrivalTime=[functions::RandomVariable|EString]
'}';
ClosedWorkloadType returns workload::ClosedWorkloadType:
'ClosedWorkloadType'
'{'
'population' population=EBigInteger
'thinkTime' thinkTime=[functions::RandomVariable|EString]
'}';
ParameterCharacterizationType returns parameterdependencies::ParameterCharacterizationType:
'CharacterizationType'; // TODO: implement this rule and an appropriate IValueConverter
/*######################## PROBABILITY DISTRIBUTIONS - Duplicate from RepositoryDSL.xtext ########################*/
RandomVariable returns functions::RandomVariable:
'RandomVariable'
'{'
'specification' specification=EString
'probFunction' probFunction=ProbabilityFunction
'}';
ProbabilityFunction returns functions::ProbabilityFunction:
ProbabilityMassFunction | ProbabilityDensityFunction | Literal
;
Literal returns functions::ProbabilityFunction:
NumberLiteral | BooleanLiteral;
BooleanLiteral returns functions::BooleanLiteral:
value=EBoolean;
NumberLiteral returns functions::ProbabilityFunction:
IntLiteral | DoubleLiteral;
IntLiteral returns functions::IntLiteral:
value=EBigInteger;
DoubleLiteral returns functions::DoubleLiteral:
value=EBigDecimal;
ProbabilityMassFunction returns functions::ProbabilityMassFunction:
('IntPMF' samples=IntSampleList) |
('DoublePMF' samples=DoubleSampleList) |
('BooleanPMF' samples=BoolSampleList) |
('EnumPMF' samples=EnumSampleList)
;
IntSampleList returns functions::IntSampleList:
{functions::IntSampleList}
'[' (items+=IntSample)* ']'
;
DoubleSampleList returns functions::DoubleSampleList:
{functions::DoubleSampleList}
'[' (items+=DoubleSample)* ']'
;
BoolSampleList returns functions::BoolSampleList:
{functions::BoolSampleList}
'[' (items+=BoolSample)* ']'
;
EnumSampleList returns functions::EnumSampleList:
{functions::EnumSampleList}
'[' (items+=EnumSample)* ']'
;
IntSample returns functions::IntSample:
'('value=EBigInteger ';' probability=EProbability')';
DoubleSample returns functions::DoubleSample:
'('value=EBigDecimal ';' probability=EProbability')';
BoolSample returns functions::BoolSample:
'('value=EBoolean ';' probability=EProbability')';
EnumSample returns functions::EnumSample:
'('value=EString ';' probability=EProbability')';
ProbabilityDensityFunction returns functions::ProbabilityDensityFunction:
BoxedPDF | ContinuousPDF
;
BoxedPDF returns functions::BoxedPDF:
{functions::BoxedPDF}
'DoublePDF' '[' (sample+=ContinuousSample)* ']'
;
ContinuousSample returns functions::ContinuousSample:
'('value=EBigDecimal ';' probability=EProbability')'
;
ContinuousPDF returns functions::ContinuousPDF:
NormalDistribution | ExponentialDistribution
;
NormalDistribution returns functions::NormalDistribution:
'NormalDist'
'('
'mu' '=' mu=EBigDecimal ';'
'sigma' '=' sigma=EBigDecimal
')';
ExponentialDistribution returns functions::ExponentialDistribution:
'ExpDist'
'('
'rate' '=' rate=EBigDecimal
')';
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment