亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? checkmarte4cheddar.atl

?? papyrus插件MARTE例子,uml建模
?? ATL
?? 第 1 頁 / 共 2 頁
字號:
				else thisModule.undeferror(e, 'ExecHost of host scheduler') endif;			}		} else {			thisModule.error(e,'<<SchedulableResource>> must be applied.');		}				-- check for duplicate names		if(thisModule.KnownNames->exists(s | s = e.getQName())) {			thisModule.error(e, 'Duplicate name found');		} else {			thisModule.KnownNames <- thisModule.KnownNames->append(e.getQName());			thisModule.TaskNames <- thisModule.TaskNames->append(e.getQName());		}	}}rule resource_user (link:UML!Dependency) {	do {		link.verboseMessage('resource_user ' +link.getClients().first().getQName());				if thisModule.TaskNames->exists(s | s =  link.getClients().first().getQName()) then OclUndefined		else thisModule.unkwarning(link.getSuppliers().first(),link.getClients().first()) endif;				let mc : UML!Constraint = UML!Constraint.allInstances()->select(c | c.getConstrainedElements()->exists(ce | ce=link))->first()		in if not mc.oclIsUndefined() then			if not mc.getSpecification().isIntegral() then				thisModule.error(link.getSuppliers().first(), 'Invalid constraint on resource used by' + link.getClients().first().getQualifiedName())			else OclUndefined endif		else 			thisModule.error(link.getSuppliers().first(), 'No start time constraint on resource used by' + link.getClients().first().getQualifiedName())		endif;					if link.marteHasVSLInteger(link.ResourceUsage(), link.ResourceUsage_execTime(),Sequence{'value'})		then			OclUndefined		else			thisModule.error(link.getSuppliers().first(), 'execTime is required on resource used by' + link.getClients().first().getQualifiedName())		endif;					}}rule resource ( e:UML!Element) {	do {		e.verboseMessage('resource ' + e.getQName());				let cap: String  = e.getStereotypeAttributeValue(e.SwMutualExclusionResource(),e.SwMutualExclusionResource_concurrentAccessProtocol()).toString()		in 	if cap = 'IN!'+e.ConcurrentAccessProtocolKind_PIP() then OclUndefined			else 	if cap = 'IN!'+e.ConcurrentAccessProtocolKind_PCP() then  OclUndefined			else 	if cap = 'IN!'+e.ConcurrentAccessProtocolKind_NoPreemption() then  OclUndefined			else 	if cap = 'IN!'+e.ConcurrentAccessProtocolKind_Other() then					if not e.getOwnedAttributes()->select(e|e.name='cheddar_IPCP').first().oclIsUndefined() then OclUndefined					else thisModule.error(e,'element must have a cheddar_IPCP attribute if the concurrent access protocol is Other') endif			else thisModule.undeferror(e,'concurrentAccessProtocol') endif endif endif endif;						let m : String =  e.getStereotypeAttributeValue(e.SwMutualExclusionResource(),e.SwMutualExclusionResource_mechanism()).toString()		in 		if m = 'IN!'+ e.MutualExclusionResourceKind_BooleanSemaphore() then 0			else		if m = 'IN!'+ e.MutualExclusionResourceKind_Mutex() then 1			else		if m = 'IN!'+ e.MutualExclusionResourceKind_CountSemaphore() then				if 	e.getIntSADVBN(e.SwMutualExclusionResource(), e.SwResource_stateElements(), 'cheddar_state').oclIsUndefined() then					thisModule.warning(e,'cheddar_state is missing, using default value 0 for count semaphore initial state')				else OclUndefined endif			else thisModule.error(e,'mechanism is invalid') endif endif endif;				let mas : String = thisModule.AddressSpaceNames->select(as | e.getSuppliersKindOf(e.MemoryPartition())->exists(a | a.getQName() = as))->first()			in if  mas.oclIsUndefined() then thisModule.undeferror(e,'address space') else OclUndefined 	endif;						for(d in e.getSupplyingDependencies()->select(dep | dep.marteIsKindOf(e.ResourceUsage()))) {			thisModule.resource_user(d);		}				-- check for duplicate names		if(thisModule.KnownNames->exists(s | s = e.getQName())) {			thisModule.error(e, 'Duplicate name found');		} else {			thisModule.KnownNames <- thisModule.KnownNames->append(e.getQName());			thisModule.ResourceNames <- thisModule.ResourceNames->append(e.getQName());		}	}}rule buffer_user (link:UML!Dependency) {	do {		link.verboseMessage('buffer_user ' + link.getClients().first().getQName());				if thisModule.TaskNames->exists(s | s =  link.getClients().first().getQName()) then OclUndefined		else thisModule.unkwarning(link.getSuppliers().first(),link.getClients().first()) endif;				let mc : UML!Constraint = UML!Constraint.allInstances()->select(c | c.getConstrainedElements()->exists(ce | ce=link))->first()		in if not mc.oclIsUndefined() then			if not mc.getSpecification().isIntegral() then				thisModule.error(link.getSuppliers().first(), 'Invalid constraint on buffer used by ' + link.getClients().first().getQualifiedName())			else OclUndefined endif		else 			thisModule.error(link.getSuppliers().first(), 'No time constraint on buffer used by ' + link.getClients().first().getQualifiedName())		endif;			if link.marteHasVSLInteger(link.ResourceUsage(), link.ResourceUsage_msgSize(),Sequence{'value'})		then			OclUndefined		else			thisModule.error(link.getSuppliers().first(), 'msgSize is required on buffer used by' + link.getClients().first().getQualifiedName())		endif;	}}rule buffer (e:UML!Element ) {	do {		e.verboseMessage('buffer ' + e.getQName());				let s: String = e.getDefaultValueAttributeByName('cheddar_qs') in			if s <> 'QS_PP1' and s <> 'QS_MM1' and s <> 'QS_MD1'  and s <> 'QS_MP1'			and s <> 'QS_MG1'  and s <> 'QS_MMS'  and s <> 'QS_MDS' and s <> 'QS_MPS'			and s <> 'QS_MGS' 	and s <> 'QS_MM1N'  and s <> 'QS_MD1N' and s <> 'QS_MP1N' 			and s <> 'QS_MG1N' and s <> 'QS_MMSN' and s <> 'QS_MDSN'  and s <> 'QS_MPSN'  and s <> 'QS_MGSN' 			then thisModule.error(e,'cheddar_qs is invalid') else OclUndefined endif;				if e.marteHasAttributeValue(e.StorageResource(), e.StorageResource_elementSize()) then			if e.marteGetAttributeValue(e.StorageResource(), e.StorageResource_elementSize())='' then				thisModule.error(e,'elementSize is invalid')			else OclUndefined endif			else thisModule.undeferror(e,'elementSize') endif;			let mas : String = thisModule.AddressSpaceNames->select(as | e.getSuppliersKindOf(e.MemoryPartition())->exists(a | a.getQName() = as))->first()		in if  mas.oclIsUndefined() then thisModule.undeferror(e,'address space') else OclUndefined 	endif;				for(d in e.getSupplyingDependencies()->select(dep | dep.marteIsTypeOf(e.ResourceUsage()))) {			thisModule.buffer_user(d);		}				-- check for duplicate names		if(thisModule.KnownNames->exists(s | s = e.getQName())) {			thisModule.error(e, 'Duplicate name found');		} else {			thisModule.KnownNames <- thisModule.KnownNames->append(e.getQName());			thisModule.BufferNames <- thisModule.BufferNames->append(e.getQName());		}	}}rule message ( e:UML!Element) {		do {		e.verboseMessage('message '+e.getQName());				if e.marteHasVSLInteger(e.SaCommStep(), e.GaCommStep_msgSize(),Sequence{'value'}) then			if e.marteGetVSLInteger(e.SaCommStep(), e.GaCommStep_msgSize(),Sequence{'value'}) > 0 then OclUndefined			else  thisModule.error(e,'msgSize must be >0') endif		else thisModule.undeferror(e,'msgSize') endif;					-- check for duplicate names		if(thisModule.KnownNames->exists(s | s = e.getQName())) {			thisModule.error(e, 'Duplicate name found');		} else {			thisModule.KnownNames <- thisModule.KnownNames->append(e.getQName());			thisModule.MessageNames <- thisModule.MessageNames->append(e.getQName());		}	}}rule event_analyzer (e : String) {	do {		e.verboseMessage('event_analyzer '+e);		-- check for duplicate names		if(thisModule.KnownNames->exists(s | s = e)) {			thisModule.error(e, 'Duplicate name found');		} else {			thisModule.KnownNames <- thisModule.KnownNames->append(e);			thisModule.EANames <- thisModule.EANames->append(e);		}	}}rule dependency (link: UML!dependency) {	do {		link.verboseMessage('dependency '+link.getSuppliers()->first().getQName() + ' -> ' + link.getClients()->first().getQName());				if (thisModule.TaskNames->exists(s | s =  link.getClients().first().getQName())			or thisModule.BufferNames->exists(s | s =  link.getClients().first().getQName())			or thisModule.MessageNames->exists(s | s =  link.getClients().first().getQName()))		then OclUndefined		else thisModule.unkerror2(link.getClients().first(), 'dependency') endif;				if (thisModule.TaskNames->exists(s | s =  link.getSuppliers().first().getQName()) 			or thisModule.BufferNames->exists(s | s =  link.getSuppliers().first().getQName()) 			or thisModule.MessageNames->exists(s | s =  link.getSuppliers().first().getQName()))		then OclUndefined		else thisModule.unkerror2(link.getSuppliers().first(),'dependency') endif;	}	}------ Root rule----rule AnalysisContext {	from e:UML!Element ((e.marteIsTypeOf(e.GaAnalysisContext()) or e.marteIsTypeOf(e.SaAnalysisContext()))  and e.isTarget())		do {		e.verboseMessage('Checking for errors ...');				thisModule.AnalysisContextCount <- thisModule.AnalysisContextCount + 1;				if(thisModule.AnalysisContextCount > 1) {			thisModule.info('','Multiple analysis context are defined.');		}				if(thisModule.hasParameter('targetElement')) {			if(e.oclIsKindOf(UML!NamedElement)){				if (thisModule.getParameter('targetElement') = e.getQualifiedName()) {					thisModule.info('', 'Analyzing targeted element : ' + e.getQualifiedName() );				}			}		}				if(e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())->size()=0) {			thisModule.error(e, 'No platform found');		}				-- processors		if(not e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())				->exists(elem|elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.GaExecHost())->size()<>0)) {			thisModule.error(e, 'No processor(s) declared');		}		for( elem in e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())) {			for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.GaExecHost())){				thisModule.processor(elem2);			}		}				-- address spaces		if(not e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())			->exists(elem|elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.MemoryPartition())->size()<>0)) {			thisModule.error(e, 'No address space(s) declared');		}		for( elem in e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())) {			for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.MemoryPartition())){				thisModule.address_space(elem2);			}		}				-- tasks		if(not e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())			->exists(elem|elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.SwSchedulableResource())->size()<>0)) {			thisModule.error(e, 'No task(s) declared');		}		for( elem in e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())) {			for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.SwSchedulableResource())){				thisModule.task( elem2);			}		}				-- resources		for( elem in e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())) {			for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.SwMutualExclusionResource())){				thisModule.resource(elem2);			}		}				-- buffer		for( elem in e.getStereoElemsKindOfStereoAttrib(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_platform(), e.GaResourcesPlatform())) {						for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaResourcesPlatform(),e.GaResourcesPlatform_resources(), e.StorageResource())){				thisModule.buffer(elem2);			}		}				-- event_analyzers		for( elem in e.marteGetAttributeValueSequence(if e.marteIsTypeOf(e.GaAnalysisContext()) then e.GaAnalysisContext() else e.SaAnalysisContext() endif, e.GaAnalysisContext_contextParams())) {			thisModule.event_analyzer(elem);		}				-- messages		if(e.getStereoElemsKindOfStereoAttrib(e.ACV(), e.GaAnalysisContext_workload(), e.GaWorkloadBehavior())->first().oclIsUndefined()) {			thisModule.warning(e, 'no workload found');		}		for(elem in e.getStereoElemsKindOfStereoAttrib(e.ACV(), e.GaAnalysisContext_workload(), e.GaWorkloadBehavior())) {			if( elem.getStereoElemsKindOfStereoAttrib(e.GaWorkloadBehavior(), e.GaWorkloadBehavior_behavior(), e.GaScenario())->first().oclIsUndefined()) {				thisModule.warning(elem, 'no behavior found');			}						for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaWorkloadBehavior(), e.GaWorkloadBehavior_behavior(), e.GaScenario()) ) {				for(elem3 in elem2.getStereoElemsKindOfStereoAttrib(e.GaScenario(),e.GaScenario_steps(), e.SaCommStep())){					thisModule.message(elem3);				}			}		} 				-- dependencies		for(elem in e.getStereoElemsKindOfStereoAttrib(e.ACV(), e.GaAnalysisContext_workload(), e.GaWorkloadBehavior())) {			for(elem2 in elem.getStereoElemsKindOfStereoAttrib(e.GaWorkloadBehavior(), e.GaWorkloadBehavior_behavior(), e.GaScenario()) ) {				for(step in elem2.getStereotypeAttributeValue(e.GaScenario(), e.GaScenario_steps())) {					if(step.oclType() = UML!Dependency and step.marteIsKindOf(step.GaStep())) {						thisModule.dependency( step);					}				}			}		} 	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日韩在线| 五月天精品一区二区三区| 青娱乐精品视频| 欧美在线免费观看视频| 亚洲天堂久久久久久久| 91美女精品福利| 艳妇臀荡乳欲伦亚洲一区| 色一情一乱一乱一91av| 亚洲福利一二三区| 欧美电视剧免费全集观看 | 亚洲欧洲无码一区二区三区| 国产成人精品www牛牛影视| 国产欧美日本一区视频| 99国产精品久| 亚洲成人免费观看| 欧美tickling网站挠脚心| 国产精品亚洲午夜一区二区三区| 国产精品天美传媒| 欧美日韩精品电影| 极品少妇xxxx精品少妇| 国产精品―色哟哟| 欧美日韩中文国产| 国产在线播精品第三| 欧美国产日本韩| 欧洲中文字幕精品| 狠狠色丁香久久婷婷综| 国产精品丝袜在线| 欧美绝品在线观看成人午夜影视| 精品一区二区三区在线播放视频 | 亚洲国产欧美一区二区三区丁香婷| 欧美三区免费完整视频在线观看| 美女国产一区二区三区| 国产精品另类一区| 制服.丝袜.亚洲.另类.中文| 国产传媒一区在线| 亚洲午夜激情网页| 国产精品天美传媒| 欧美一区二区高清| 99re热这里只有精品视频| 青青草国产成人av片免费| 17c精品麻豆一区二区免费| 在线播放视频一区| a4yy欧美一区二区三区| 另类小说欧美激情| 亚洲色图视频网| 久久综合成人精品亚洲另类欧美| 91国产精品成人| 久草精品在线观看| 亚洲国产一区二区视频| 国产精品亲子乱子伦xxxx裸| 日韩丝袜美女视频| 欧美中文字幕久久| 成人精品一区二区三区中文字幕| 美女在线视频一区| 亚洲第一主播视频| 亚洲欧美欧美一区二区三区| 久久久久久亚洲综合| 777xxx欧美| 色老综合老女人久久久| 成人黄色777网| 狠狠色丁香久久婷婷综合_中 | 免费人成黄页网站在线一区二区| 亚洲视频一区二区免费在线观看| 久久综合九色欧美综合狠狠| 51午夜精品国产| 欧美日韩一二三| 色94色欧美sute亚洲线路一久| 成人午夜视频福利| 国产专区欧美精品| 裸体歌舞表演一区二区| 五月综合激情日本mⅴ| 亚洲一区二区视频在线| 一区二区三区四区视频精品免费| 中文字幕在线不卡国产视频| 国产免费成人在线视频| 国产蜜臀av在线一区二区三区| 久久久久国产成人精品亚洲午夜| 欧美电影免费观看高清完整版在线| 在线不卡一区二区| 4438x成人网最大色成网站| 欧美日韩国产小视频在线观看| 欧美性受极品xxxx喷水| 欧美色手机在线观看| 欧美色电影在线| 欧美久久一区二区| 91精品午夜视频| 欧美电影免费提供在线观看| 精品久久人人做人人爰| 久久精品网站免费观看| 国产欧美精品一区二区三区四区| 国产色产综合产在线视频| 欧美国产97人人爽人人喊| 国产三级精品三级| 亚洲视频网在线直播| 一片黄亚洲嫩模| 三级久久三级久久| 经典一区二区三区| 国产999精品久久久久久| 成人黄色国产精品网站大全在线免费观看 | 中文字幕乱码久久午夜不卡 | 一色屋精品亚洲香蕉网站| 亚洲男人都懂的| 亚洲一区二区3| 日本亚洲最大的色成网站www| 老色鬼精品视频在线观看播放| 国内成人精品2018免费看| 成人黄色在线视频| 欧美丝袜丝交足nylons图片| 日韩欧美亚洲另类制服综合在线| 久久综合九色综合97_久久久| 综合亚洲深深色噜噜狠狠网站| 亚洲宅男天堂在线观看无病毒| 免费在线观看一区二区三区| 国产成人精品免费看| 欧美视频中文一区二区三区在线观看| 欧美美女一区二区在线观看| 日韩欧美亚洲国产另类| 综合婷婷亚洲小说| 精品一区二区av| 99国内精品久久| 日韩视频免费观看高清完整版在线观看 | 日韩欧美第一区| 中文字幕高清不卡| 日韩成人一区二区| 成人h动漫精品| 91.xcao| 国产精品久久久久久一区二区三区 | 久久久蜜桃精品| 一区二区在线观看av| 久久99精品国产麻豆不卡| 91精品福利视频| 国产欧美视频一区二区三区| 亚洲www啪成人一区二区麻豆| 国产精品一线二线三线精华| 欧美日韩一区二区欧美激情| 中文字幕va一区二区三区| 天堂一区二区在线| 一本到高清视频免费精品| 欧美精品一区二区三区在线| 亚洲国产综合91精品麻豆| 成人av免费在线观看| 欧美成人女星排行榜| 亚洲国产日日夜夜| 97久久精品人人做人人爽50路| 精品99999| 日韩精品亚洲专区| 欧美在线|欧美| 国产精品美女一区二区在线观看| 美女脱光内衣内裤视频久久影院| 色老头久久综合| 国产精品麻豆视频| 国产一区二区三区香蕉| 欧美一区2区视频在线观看| 夜夜嗨av一区二区三区| 99精品一区二区| 国产精品美女久久久久aⅴ| 狠狠色2019综合网| 精品日韩在线观看| 美女www一区二区| 日韩一级视频免费观看在线| 亚洲国产中文字幕在线视频综合| 日本二三区不卡| 中文字幕色av一区二区三区| 国产jizzjizz一区二区| 国产亚洲污的网站| 国产麻豆视频一区二区| 久久夜色精品国产欧美乱极品| 免费成人美女在线观看.| 3atv在线一区二区三区| 午夜av电影一区| 欧美日本在线播放| 午夜视频在线观看一区二区| 欧美三级在线播放| 香蕉成人伊视频在线观看| 欧美乱妇23p| 美女视频黄a大片欧美| 日韩一区二区免费在线电影| 美腿丝袜在线亚洲一区| 日韩美一区二区三区| 国产一区二区影院| 国产欧美精品一区二区三区四区| 国产91精品免费| 亚洲欧洲日韩女同| 欧美亚洲日本国产| 视频一区二区欧美| 亚洲精品一区二区三区在线观看| 国产美女精品一区二区三区| 国产亚洲精品aa午夜观看| 成人av午夜影院| 一个色妞综合视频在线观看| 欧美日韩国产区一| 久久99国产精品尤物| 欧美精彩视频一区二区三区| 色婷婷激情一区二区三区| 午夜国产不卡在线观看视频| 日韩欧美亚洲国产另类| 成人va在线观看| 婷婷久久综合九色综合绿巨人| 欧美一区二区三区人| 国产一区二区调教|