kuhtiov писал(а):Команда параметр,параметр;
где “,” – разделитель между параметрами
“;” – разделитель команд.
Денис писал(а):поскольку хороший интерпретатор, как мы выяснили на бейсике написать все равно не получится, я просто заменю в нем синтаксис и Split заменю на Mid$
Хакер писал(а):Left вообще не нужна в принципе, она генерирует копию подстроки, а копия никому не нужна.Split тоже генерирует копии и этим плох
Хакер писал(а):InStr — самая хорошая из всех названных. Но ей не хватает следующей функции: вместо одной искомой подстроки, задать целое множество искомых символов, да так, чтобы она возвращала не только позицию найденного вхождения, но и номер элемента из множества искомых вхождений.
предлагаемая тобой не хватающая функция
Mikle писал(а):Хакер
Да как ты не поймешь, что 99% людей мыслят, и выражают свои мысли, точно так же, как kuhtiov
Хакер, ты такой же как все и был точно таким же наивным новичком, помни это. Я не пойму почему ты стал такой озлобленный, в тех же первых постах видно, что там ты был нормальный человек.
Хакер писал(а):никто не назовёт адекватного разделителя, разделение с помощью которого улучшило бы ситуацию, а не ухудшило её
private x as long
private y as long
private sub Main()
dim i as long
for i = 0 to 10
if i mod 2 = 0 then
x = i y = i +1
end if
next
end sub
Мы сейчас говорим о разделителе между командами, я правильно понимаю?
Денис писал(а):kuhtiov писал(а):Команда параметр,параметр;
где “,” – разделитель между параметрами
“;” – разделитель команд.
Подредактирую свой пример (поскольку хороший интерпретатор, как мы выяснили на бейсике написать все равно не получится, я просто заменю в нем синтаксис и Split заменю на Mid$) и выложу после обеда.
kuhtiov писал(а):Денис, а где обещанный пример?
Хакер писал(а):Улучшит ситуацию означает примерно следующее: после разделения получил набор подстрок о которых можно сказать: «это набор XXXX», где «XXXX» — всё что угодно, кроме «подстрок, полученных в результате разделения этим же разделителем».
Поставить курсор на первый символ.
Цикл:
искать разделители по списку до первого вхождения, начиная с текущей позиции курсора
определить наименьшую позицию с одним из разделителей
установить курсор в эту позицию
записать в массив подстроку от предыдущего курсора до текущего
конец цикла.
Денис писал(а):Я понял! Это потому, что в коде несколько разделителей! Идеальный сплит должен на входе получать строку и коллекцию разделителей, использующихся в строке. Тогда мы получим массив как раз таки неделимых, атомарных элементов: ключевых слов, инструкций, операторов, параметров.
Денис писал(а):На первой странице. В моем первом ответе. Чего еще тебе нужно? Готовый компилятор? Бабки плати! 15000 руб. И два месяца на разработку. У меня тарифы такие (Потому что я не программист).
Хакер писал(а):Поэтому правильный подход: проходить строку слева направо так, что встреча какого-нибудь символа меняет логику дальнейшего следования строки.
Денис писал(а):• строку
Денис писал(а):• коллекцию простых разделителей
• коллекцию составных разделителей, блочных (включая начальный, конечный и описатель режима, в который переводится автомат в начале блока и описатель режима, в который следует вернуться в конце блока)
• коллекцию ключевых слов, операторов, в общем синтаксиса
Хакер писал(а):Не оно
Откуда цикл, проходящийся по строке будет знать, что при встрече кавычки надо переключиться в другой режим (изменить логику сканирования строки)?
Хакер писал(а):Потому что он так написан. Это вложено в него при создании создателем.
Хакер писал(а):Придумал, как на VB с помощью классов без единого внешнего API изобразить концепцию. Могу изобразить.
Хакер писал(а):Мы обсуждали эволюцию Сплит-функции.Сейчас речь идёт об огромном монстре, который на вход получает полностью сырую строку, а на выходе даёт полностью обратотанные данные
как без длинных портянок Case'ов организовать в дальнейшем сравнения?
Ладно, допустим там нет сравнений вообще, а есть графы (я предпочитаю классическое советское название блок-схемы).
У меня мозг кипит, как сравнивать не сравнивая?
Хакер писал(а):Докажи мне обратное: докажи, что что-то (и расскажи что) нужно сравнивать с чем-то (и расскажи чем).
Хакер писал(а):если только один тип сущностей может начинаться на «О», то первый маршрутизатор (селектор) направит выполнение на другой маршрутизатор
Хакер писал(а):другой маршрутизатор, который посмотрит на следующий символ, и либо направит выполнение в ветку, занимающуюся идентификаторами, либо в ветку — занимающуюся числами
Сейчас этот форум просматривают: Yandex-бот и гости: 111