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

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

?? checkmarte4cheddar.atl

?? papyrus插件MARTE例子,uml建模
?? ATL
?? 第 1 頁 / 共 2 頁
字號(hào):
-- Thales MARTE to Cheddar (Copyright (c) THALES 2007 All rights reserved) is free software; you can redistribute itand/or modify-- it under the terms of the Eclipse Public License as published in http://www.eclipse.org/legal/epl-v10.html---- Thales MARTE to Cheddar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License for more details.---------------------------------------------------- Nicolas VIENNE-- Eric MAES---------------------------------------------------- Check the if MARTE model is well formed for MARTE2Cheddar transform ...--------------------------------------------------module CheckMARTE4cheddar;create  OUT:PROBLEM from IN:UML, parameters:XML;------ Libraries----uses MARTE;uses UML2;uses MARTE4CHEDDAR;uses XMLPARAMETERS;------ Check if the element is the element targeted by parameters----helper context UML!Element def : isTarget() : Boolean = 	if thisModule.hasParameter('targetElement') then 			if self.oclIsKindOf(UML!NamedElement) then				if thisModule.getParameter('targetElement') = self.getQualifiedName() then					true				else false endif			else true endif		else true endif;helper def : getErrorTarget(): String = 	if thisModule.hasParameter('targetElement')  then		' (' + thisModule.getParameter('targetElement') + ')'	else '' endif;------ Helping Rules----rule critic(e:UML!NamedElement, s:String) {	to p:PROBLEM!Problem (		severity <- #critic,		location <- e.getQualifiedName() + thisModule.getErrorTarget(),		description <-s	)}rule error(e:UML!NamedElement, s:String) {	to p:PROBLEM!Problem (		severity <- #error,		location <- e.getQualifiedName() + thisModule.getErrorTarget(),		description <-s	)}rule warning(e:UML!NamedElement, s:String) {	to p:PROBLEM!Problem (		severity <- #warning,		location <- e.getQualifiedName() + thisModule.getErrorTarget(),		description <-s	)}rule info(loc: String, descr:String) {	to p:PROBLEM!Problem (		severity <- #warning,		location <- loc + thisModule.getErrorTarget(),		description <- 'INFO: '+descr	)}rule unkerror2(e:UML!NamedElement,cont:String) {	to p:PROBLEM!Problem (		severity <- #error,		location <- cont + thisModule.getErrorTarget(),		description <-e.getQualifiedName() + ' is not a known element (it may be missing in a resources list)'	)}rule undeferror(e:UML!NamedElement, s:String) {	do {		thisModule.error(e,s+' is not defined');	}}rule unkerror(e:UML!NamedElement,e2:UML!NamedElement) {	do {		thisModule.error(e,e2.getQualifiedName() + ' is not a known element (it may be missing in a resources list)');	}}rule unkwarning(e:UML!NamedElement,e2:UML!NamedElement) {	do {		thisModule.warning(e,e2.getQualifiedName() + ' is not a known element (it may be missing in a resources list)');	}}rule undefwarning(e:UML!NamedElement, s:String) {	do {		thisModule.warning(e,s+' is not defined');	}}------ Rules----helper def : KnownNames : Sequence(String) = Sequence {};helper def : ProcessorNames : Sequence(String) = Sequence {};helper def : TaskNames : Sequence(String) = Sequence {};helper def : AddressSpaceNames : Sequence(String) = Sequence {};helper def : ResourceNames : Sequence(String) = Sequence {};helper def : MessageNames : Sequence(String) = Sequence {};helper def : BufferNames : Sequence(String) = Sequence {};helper def : EANames : Sequence(String) = Sequence {};helper def : AnalysisContextCount : Integer = 0;------ Rules----rule scheduler(e:UML!Element) {	do {		-- Scheduling Policy		let sp : String = e.marteGetAttributeValue(e.Scheduler(), e.Scheduler_schedPolicy()).toString() in 		if sp='IN!'+e.SchedPolicyKind_EarliestDeadlineFirst() then			0		else if sp='IN!'+e.SchedPolicyKind_LeastLaxityFirst() then			0		else if sp='IN!'+e.SchedPolicyKind_FixedPriority() then			0		else if sp='IN!'+e.SchedPolicyKind_RoundRobin() then			0		else if sp='IN!'+e.SchedPolicyKind_Other() then			if e.marteHasAttributeValue(e.Scheduler(), e.Scheduler_otherSchedPolicy()) then				let sp2 : String = e.marteGetAttributeValue(e.Scheduler(), e.Scheduler_otherSchedPolicy()) in				if sp2 = 'RATE_MONOTONIC_PROTOCOL' then					0				else if sp2 = 'DEADLINE_MONOTONIC_PROTOCOL' then					0				else if sp2 = 'TIME_SHARING_BASED_ON_WAIT_TIME_PROTOCOL' then					0				else if sp2 = 'MAXIMUM_URGENCY_FIRST_BASED_ON_LAXITY_PROTOCOL' then					0				else if sp2 = 'MAXIMUM_URGENCY_FIRST_BASED_ON_DEADLINE_PROTOCOL' then					0				else if sp2 = 'D_OVER_PROTOCOL' then					0				else if sp2 = 'TIME_SHARING_BASED_ON_CPU_USAGE_PROTOCOL' then					0				else 						thisModule.error(e,'Invalid scheduling policy, Scheduler::schedPolicy and/or Scheduler::otherSchedPolicy seems to be invalid')				endif					endif				endif				endif				endif				endif				endif			else					thisModule.error(e,'Invalid scheduling policy, Scheduler::schedPolicy and/or Scheduler::otherSchedPolicy seems to be invalid')			endif		else if sp='IN!'+e.SchedPolicyKind_Undef() then			#PIPELINE_USER_DEFINED_PROTOCOL		else			thisModule.error(e,'Invalid scheduling policy, Scheduler::schedPolicy and/or Scheduler::otherSchedPolicy seems to be invalid')		endif		endif		endif		endif		endif		endif;						-- Preemptibility		if(e.marteHasAttributeValue(e.Scheduler(), e.Scheduler_isPreemptible())) {			if(not (e.marteGetAttributeValue(e.Scheduler(), e.Scheduler_isPreemptible()) = 'true') and not (e.marteGetAttributeValue(e.Scheduler(), e.Scheduler_isPreemptible()) = 'false')) {				thisModule.error(e, 'Scheduler::isPreemtible invalid');			}		} else {			thisModule.undefwarning(e, 'Scheduler::isPreemtible');		}				-- parametric_filename		if (e.marteGetAttributeValue(e.Scheduler(), e.Scheduler_schedPolicy()).toString() = 'IN!'+e.SchedPolicyKind_Undef()) {			if( not e.marteHasAttributeValue(e.Scheduler(), e.Scheduler_otherSchedPolicy())) {				thisModule.error(e, 'otherSchedPolicy (parametric_filename) undefined with scheduling policy Undef');			}		}	}}rule processor( e:UML!Element) {	do {		e.verboseMessage('processor ' + e.getQName());		let s : UML!Element = e.getStereotypeAttributeValue(if e.marteIsTypeOf(e.SaExecHost()) then e.SaExecHost() else e.GaExecHost() endif,e.ProcessingResource_mainScheduler())		in if s.oclIsUndefined() then thisModule.undefwarning(e, 'mainScheduler')		else thisModule.scheduler(s) 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.ProcessorNames <- thisModule.ProcessorNames->append(e.getQName());		}	}}rule address_space (e:UML!Element) {		do {		e.verboseMessage('address_space '+e.getQName());		 let proc : UML!Element = e.getFirstStereotypedTypeOfStereotypeAttribute_Seq(			e.MemoryPartition(), e.MemoryPartition_concurrentResources(),			Sequence {e.GaExecHost(), e.SaExecHost()})		in if not proc.oclIsUndefined() then			if thisModule.ProcessorNames->exists(s | s = proc.getQName()) then OclUndefined -- the processor referenced exists			else thisModule.unkerror(e,proc) endif		else thisModule.error(e, 'No <<GaExecHost>> or <<SaExecHost>> found in concurrentResources') endif;				let sched : UML!Element = e.getFirstStereotypedTypeOfStereotypeAttribute(			e.MemoryPartition(), e.MemoryPartition_concurrentResources(), e.Scheduler())		in if not sched.oclIsUndefined() then			thisModule.scheduler(sched)		else thisModule.error(e, 'No <<Scheduler>> found in concurrentResources') 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.AddressSpaceNames <- thisModule.AddressSpaceNames->append(e.getQName());		}	}}rule task ( e:UML!Element) {	do {		e.verboseMessage('task '+e.getQName());				-- address_space (matched by name)		let as : UML!Element = e.getFirstStereotypedTypeOfStereotypeAttribute(e.SwSchedulableResource(), e.SwConcurrentResource_addressSpace(), e.MemoryPartition())			in if not as.oclIsUndefined() then 				if thisModule.AddressSpaceNames->exists(s | s = as.getQName()) then OclUndefined -- the referenced address_space exists				else thisModule.unkerror(e,as) endif			else thisModule.error(e,'No address_space defined (addressSpace should contain a element which type is an existing <<MemoryPartition>> element)') endif;						-- activation capacity		if(not e.marteHasAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_activationCapacity())) {			thisModule.undeferror(e,'activationCapacity'); 		} else {			if( e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_activationCapacity())='') {				thisModule.undeferror(e,'activationCapacity');			} else  if(not( e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_activationCapacity()).toInteger() > 0)) {				thisModule.error(e,'activationCapacity must be > 0');			}		}				-- priority		if(e.getIntSADVBN(e.SwSchedulableResource(), e.SwConcurrentResource_priorityElements(), 'priority').oclIsUndefined()) {			thisModule.undeferror(e,'priority'); 		} else {			if(not (e.getIntSADVBN(e.SwSchedulableResource(), e.SwConcurrentResource_priorityElements(), 'priority') > 0)) {			thisModule.error(e,'priority must be > 0'); 			}		}		--  		-- /!\		--		-- WARNING : VSL Workaround		 if(e.marteHasAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_type())) {		 	if(e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_type()) =  'PERIODIC_TYPE'		 			or e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_type()) =  'SPORADIC_TYPE'					or e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_type()) =  'POISSON_TYPE' ) {		 		if(e.getIntSADVBN(e.SwSchedulableResource(), e.SwConcurrentResource_periodElements(), 'period').oclIsUndefined()) {		 			thisModule.error(e,'a period must be defined for this task\'s kind');		 		}		 	} else  if(e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_type()) =  'PARAMETRIC_TYPE') {		 		if(e.getStrSADVBN(e.SwSchedulableResource(), e.SwResource_stateElements(), 'activation_rule').oclIsUndefined()) {		 			thisModule.error(e,'an activation rule must be defined for this task\'s kind');		 		}		 	} else  if(e.marteGetAttributeValue(e.SwSchedulableResource(), e.SwConcurrentResource_type()) =  'APERIODIC_TYPE') {		 		OclUndefined; -- 		 	} else {		 		thisModule.undeferror(e,'type');		 	}		 } else {		 	thisModule.undeferror(e,'type');		 }		--  		-- /!\		--		-- WARNING : <<SchedulableResourceInheritance>> Workaround		if(e.hasStereotypeKindOf(e.SchedulableResource())) {			if(e.hasStereotypeAttributeValue(e.SchedulableResource(), e.SchedulableResource_host())) {				-- CPU_NAME				 let exechost : UML!Element =					let scheduler : UML!Element = e.getStereotypeAttributeValue(e.SchedulableResource(), e.SchedulableResource_host())					in if not scheduler.oclIsUndefined() then						if scheduler.hasStereotypeKindOf(e.Scheduler()) then							scheduler.getStereotypeAttributeValue(e.Scheduler(), e.Scheduler_host())						else  thisModule.error(e,'host is not a valid scheduler')endif					else  thisModule.undeferror(e,'host') endif				in if not exechost.oclIsUndefined() then					if thisModule.ProcessorNames->exists(s | s = exechost.getQName()) then OclUndefined					else thisModule.unkerror(e,exechost) endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米影视在线99精品| 狠狠色2019综合网| 久久嫩草精品久久久久| 91麻豆国产福利精品| 免费久久99精品国产| 中文字幕日韩欧美一区二区三区| 欧美一区二区三区影视| 99久久99久久精品国产片果冻| 日韩av不卡在线观看| 亚洲视频一二三区| 国产日韩欧美一区二区三区乱码 | 成人app软件下载大全免费| 亚洲国产一二三| 中文幕一区二区三区久久蜜桃| 91精品国产综合久久精品app| 成人动漫一区二区| 国产一区二区伦理| 免费在线观看精品| 婷婷综合在线观看| 一区二区三区四区蜜桃| 国产精品视频看| 久久久91精品国产一区二区精品| 欧美二区在线观看| 在线观看国产91| 91麻豆高清视频| 91亚洲国产成人精品一区二三| 国产成人精品aa毛片| 国产精品一线二线三线精华| 美腿丝袜亚洲三区| 男人的天堂久久精品| 午夜精品国产更新| 午夜精品免费在线| 亚洲成人av免费| 亚洲成人在线网站| 丝袜国产日韩另类美女| 亚洲成人动漫精品| 婷婷综合另类小说色区| 亚洲国产成人高清精品| 亚洲成人精品在线观看| 亚洲第一福利一区| 三级在线观看一区二区| 无吗不卡中文字幕| 奇米影视一区二区三区小说| 免费人成网站在线观看欧美高清| 免费黄网站欧美| 久久草av在线| 国产精品一区二区在线观看网站 | 亚洲人成网站在线| 亚洲日本丝袜连裤袜办公室| 亚洲欧美日韩在线| 亚洲第一电影网| 青青草国产成人99久久| 久久精品国产亚洲高清剧情介绍| 久久精品国产成人一区二区三区| 精品中文字幕一区二区小辣椒| 精彩视频一区二区三区| 国产高清不卡一区| 99久久精品国产精品久久| 色狠狠一区二区| 7777精品伊人久久久大香线蕉| 日韩一区二区三区视频在线观看 | 国产日韩欧美精品综合| 一区二区中文视频| 亚洲国产综合色| 九九视频精品免费| yourporn久久国产精品| 欧美在线一区二区| 欧美电影免费观看高清完整版在| 久久久久久免费毛片精品| 亚洲欧洲av另类| 丝袜诱惑制服诱惑色一区在线观看| 青草国产精品久久久久久| 国产成人夜色高潮福利影视| 97精品国产97久久久久久久久久久久| 色丁香久综合在线久综合在线观看| 欧美电影在线免费观看| 国产三级精品三级在线专区| 一区二区三区欧美| 国内精品国产成人| 成人av电影免费观看| 3751色影院一区二区三区| 久久九九久精品国产免费直播| 亚洲特黄一级片| 老色鬼精品视频在线观看播放| 不卡一区二区在线| 宅男噜噜噜66一区二区66| 中文在线一区二区| 日韩精品电影在线| gogo大胆日本视频一区| 日韩视频免费观看高清完整版 | 日韩美女一区二区三区| 成人免费视频在线观看| 日本视频一区二区三区| 91色视频在线| 久久久久久毛片| 石原莉奈一区二区三区在线观看| 粉嫩高潮美女一区二区三区| 欧美久久久久久蜜桃| 国产精品热久久久久夜色精品三区| 无码av免费一区二区三区试看| 成人a免费在线看| 精品国产乱码久久久久久久久| 亚洲精品videosex极品| 国产成人精品三级| 欧美成人一区二区三区在线观看| 亚洲人午夜精品天堂一二香蕉| 国产又粗又猛又爽又黄91精品| 欧美三级三级三级| 亚洲美腿欧美偷拍| 成人午夜激情在线| 久久综合999| 日本aⅴ精品一区二区三区| 色欧美乱欧美15图片| 国产精品麻豆一区二区| 韩国在线一区二区| 日韩精品中文字幕一区| 亚洲高清久久久| 色综合天天综合在线视频| 国产精品每日更新在线播放网址 | 欧美三级日韩在线| 亚洲精品中文在线| 成人黄色网址在线观看| 久久精品视频一区| 国产在线播放一区三区四| 精品少妇一区二区三区在线播放| 日韩中文字幕亚洲一区二区va在线 | 欧美日韩亚洲丝袜制服| 亚洲美女电影在线| 91啦中文在线观看| 亚洲美女在线一区| 色诱亚洲精品久久久久久| 最新国产の精品合集bt伙计| 成人av资源在线观看| 国产女同互慰高潮91漫画| 国产精华液一区二区三区| 久久蜜臀精品av| 国产美女视频91| 亚洲国产精品激情在线观看| 国产成人精品免费网站| 中文字幕不卡三区| 99re这里只有精品首页| 亚洲免费大片在线观看| 在线观看国产日韩| 丝袜诱惑亚洲看片| 日韩一区二区电影在线| 久久精品99国产精品| 久久久不卡影院| 成人av在线一区二区三区| 亚洲欧洲av色图| 欧美三区在线观看| 美女性感视频久久| 久久久久久久综合日本| 国产成人精品综合在线观看| av成人免费在线| 中日韩免费视频中文字幕| 成人综合婷婷国产精品久久蜜臀 | 亚洲精品乱码久久久久久| 在线免费观看不卡av| 夜夜夜精品看看| 欧美区在线观看| 精久久久久久久久久久| 欧美激情一区二区三区蜜桃视频| 99国产精品久久久久久久久久| 亚洲精品中文在线影院| 欧美一区二区视频在线观看2022 | 国产.精品.日韩.另类.中文.在线.播放 | 99在线热播精品免费| 亚洲蜜臀av乱码久久精品蜜桃| 欧美丰满美乳xxx高潮www| 韩国欧美一区二区| 亚洲欧美一区二区三区孕妇| 欧美日本高清视频在线观看| 久久91精品久久久久久秒播| 国产精品久久久久精k8| 555www色欧美视频| 国产+成+人+亚洲欧洲自线| 亚洲一区av在线| wwwwxxxxx欧美| 欧美主播一区二区三区美女| 久热成人在线视频| 亚洲视频一二区| 欧美xxxx在线观看| 色诱视频网站一区| 国产一区不卡在线| 午夜欧美电影在线观看| 国产精品免费视频观看| 日韩一级二级三级| 日本黄色一区二区| 国产福利91精品一区| 亚洲国产婷婷综合在线精品| 久久久久国产精品麻豆| 欧美日本一区二区| 91在线视频在线| 国产在线麻豆精品观看| 亚洲一区中文日韩| 国产精品国模大尺度视频| 日韩视频中午一区| 欧美在线观看一区| www.亚洲精品| 精品一区二区三区蜜桃|