#32017 - Mon Oct 10 2011 12:09 AM
Что в имени тебе моем? :)
|
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
|
|
Наверх
|
|
|
|
#32659 - Fri Oct 28 2011 03:06 PM
Еще одно, последнее сказанье...
[Re: Nektodron]
|
journeyman
Registered: Fri Apr 08 2011
Записи: 60
Loc: Саратов
|
Это ограничение связано с не очень хорошим алгоритмом парсинга выражений Не скажу, что ответ на вопрос был неожиданным, но вот время ожидания ответа даже после нескольких пингующих постов действительно превзошло все ожидания!  Сохраню-ка я все-таки здесь ссылки на эти посты из другой ветки, чтобы они не затерялись в истории - а то вдруг чувство иронии оставит меня или не представиться больше поводов и я так больше не напишу. http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=32318#Post32326http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=32318&page=2#Post32356Может быть здесь действительно так принято, сначала надо создать ветку, задать в ней вопрос, а потом бегать по всему форуму за разработчиками, чтобы получить ответ на свой вопрос? А так... что ж, успехов вам конечно в разработке новой версии, в которой "алгоритм парсинга уже исправлен и подобных ограничений нет".
|
|
Наверх
|
|
|
|
|
|