Вверх ↑
Ответов: 1841
Рейтинг: 369
#1: 2012-01-07 00:19:57 ЛС | профиль | цитата
Dilma писал(а):
это похоже на решение?

Это решение, но оно естественно нуждается в оптимизации и применять его на данный момент нельзя
------------ Дoбавленo в 00.19:
Думаю это мой окончательный вариант, т.к. больше мыслей по упрощению нет...
Реализовал на примере элемента Message из пакета CNET.
hiSys.hws

исходник
hisys.hws

добавил глобальную переменную cil.
добавил массив cil.
добавил функцию cil (Check_Infinite_Loop)

//Check_Infinite_Loop
func cil(id)
for(i = 0; i < cil.size(); i++)
if(cil.get(i) == id)
i = cil.size()
cp = 1
end
end
return(cp)
end
hiMessage.hws

исходник
himessage.hws

С этими изменениями, следующая конструкция:

Add(EntryPoint,2953706,21,105)
{
link(onCreate,9561305:doEvent1,[])
}
Add(Message,7319166,140,105)
{
}
Add(Hub,9561305,70,105)
{
OutCount=3
link(onEvent1,1428281:doWork2,[])
link(onEvent2,1428281:doWork3,[(109,118)])
link(onEvent3,3686637:doWork2,[(112,125)(112,167)])
}
Add(HubEx,1428281,105,105)
{
link(onEvent,7319166:doMessage,[])
}
Add(Message,3837821,140,161)
{
link(onMessage,3686637:doWork1,[(184,167)(184,158)(123,158)])
}
Add(HubEx,3686637,119,161)
{
link(onEvent,3837821:doMessage,[])
}
из пакета CNET, компилируется без вылетов, а в окне отладке будет вот такой текст:

Подготовка к сборке проекта...
Генерация кода целевого языка
Кольцевание Message4001
Компоновка проекта...
Command line: csc.exe "/out:C:UsersAdminDesktopProject1.exe" /target:winexe "/win32res:D:Program FilesHiAsm_AltBuildElementscnetcodeallres.res" "D:Program FilesHiAsm_AltBuildElementscnetcodeProject1.cs"
Љ®¬ЇЁ«пв®а Microsoft (R) Visual C# 2010, ўҐабЁп 4.0.30319.1
(C) Љ®аЇ®а жЁп Њ ©Єа®б®дв (Microsoft Corp.). ‚ᥠЇа ў  § йЁйҐ­л.

Сборка завершена.

Вот
карма: 1
0
файлы: 2hisys.sha [8.2KB] [343], himessage.sha [669B] [335]