У вас не стоит Flash Player
Настройки
#32017 - Mon Oct 10 2011 12:09 AM Что в имени тебе моем? :)
Scriptolog Offline
journeyman

Registered: Fri Apr 08 2011
Записи: 60
Loc: Саратов
Давно хотел спросить, откуда взялось такое ограничение на выбор имен блоков?

Не раз уже сталкивался с такой проблемой. Допустим, в скрипте уже есть блок с именем XXX и я хочу добавить новый блок с именем XXX_YYY, т.е. имя нового блока получается из имени существующего блока плюс еще некоторое имя через знак подчеркивания.

До тех пор пока эти блоки существуют безотносительно друг к другу - компиляция скрипта проходит без ошибок. Но при попытке задействовать оба имени в одной формуле, TSLab выдает непонятные ошибки. Например, при сравнении двух значений в логической формуле XXX>XXX_YYY, получаем следующее сообщение об ошибке:

Не могу запустить скрипт.
c:\Documents\TSLab\temp\code6.cs(70,44): error CS1002:; expected

И только анализ кода на C# позволяет понять эту ошибку. Оказывается код в файле *.cs содержит интересную синтаксическую конструкцию: XXX[i]_YYY[i], из которой явно следует, что "кто-то" надругался над именем XXX_YYY, порезал его на части и внедрил в него индексное выражение:

for (int i = 0; (i < count); i++)
{
list[i] = XXX[i]>XXX[i]_YYY[i];
}

До сих пор я просто пока обходил эту проблему путем переименования нового блока, например, блок с именем XXX_YYY переименовывается в YYY_XXX и компиляция проходит без ошибок.

Вопрос: почему при проектирования пространства имен скрипта я должен думать о том, пропустит TSLab такое имя или нет? Откуда следует такое ограничение?

Про то, что при сборке скрипта все русские названия заменяются на латинские (для правильной компиляции), хорошо известно.

Но вот что за подмены делаются в именах, состоящих только из разрешенного набора букв латинского алфавита и знака подчеркивания? И как с этим бороться?

Возможно ли при генерации кода на C# дать указание TSLab, чтобы он воспринимал имя целиком и не делил его на части?


Attachments
Error_TSLab.JPG (151 downloads)
Description: Пример конфликта имен ATR и ATR_MIN



Наверх
#32088 - Wed Oct 12 2011 01:43 PM Re: "Что в имени тебе моем?" [Re: Scriptolog]
Scriptolog Offline
journeyman

Registered: Fri Apr 08 2011
Записи: 60
Loc: Саратов
Я конечно понимаю, что молчание - это знак согласия. Но хотелось бы все-таки услышать ответы на извечные вопросы: кто виноват и что делать?

Что же все-таки так не нравится TSLab'у в некоторых именах блоках, имеющих общий префикс, что он позволяет себе так бесцеремонно вмешиваться в их названия, внедряя индексные выражения внутрь имен?

Наверх
#32232 - Wed Oct 19 2011 12:30 AM Что в имени тебе моем? Что в нем? Забытое давно... [Re: Scriptolog]
Scriptolog Offline
journeyman

Registered: Fri Apr 08 2011
Записи: 60
Loc: Саратов
Складывается впечатление, что куда проще послать очередного надоедливого неофита куда-нибудь подальше по ссылке на старый пост, чем ответить по-существу на реальную проблему, которая поджидает любого пользователя, ничего не подозревающего о такой засаде...

Наверх
#32362 - Fri Oct 21 2011 03:02 PM Re: Что в имени тебе моем? Что в нем? Забытое давно... [Re: Scriptolog]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Это ограничение связано с не очень хорошим алгоритм парсинга выражений, в разрабатываемой версии он уже исправлен и подобных ограничений нет.

Наверх
#32659 - Fri Oct 28 2011 03:06 PM Еще одно, последнее сказанье... [Re: Nektodron]
Scriptolog Offline
journeyman

Registered: Fri Apr 08 2011
Записи: 60
Loc: Саратов
Originally Posted By: Nektodron
Это ограничение связано с не очень хорошим алгоритмом парсинга выражений

Не скажу, что ответ на вопрос был неожиданным, но вот время ожидания ответа даже после нескольких пингующих постов действительно превзошло все ожидания! shocked Сохраню-ка я все-таки здесь ссылки на эти посты из другой ветки, чтобы они не затерялись в истории - а то вдруг чувство иронии оставит меня или не представиться больше поводов и я так больше не напишу. smile

http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=32318#Post32326
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=32318&page=2#Post32356

Может быть здесь действительно так принято, сначала надо создать ветку, задать в ней вопрос, а потом бегать по всему форуму за разработчиками, чтобы получить ответ на свой вопрос?

А так... что ж, успехов вам конечно в разработке новой версии, в которой "алгоритм парсинга уже исправлен и подобных ограничений нет".

Наверх


Moderator:  ViL, sar