KLIMaka
Пользователь
Posts: 72
|
|
tokenize
« on: 17 March 2009, 14:40:12 » |
|
Ковыряясь в документации по внутренностям скриптов я обнаружил интересную ф-ю - tokenize(...), которая разбивает строку на токены. Заинтересовался и решил ее опробовать. Но sslc бодренько мне сказал, что такого имени не существует, и компилировать все это он отказываеся. Хм... Причем get_exp (809F) и SelectFileList(80A1) есть, а вот tokenize(80А0) нету! Полез я в исходники, и оказалось, что об tokenize(...) просто забыли! В списке опкодов он есть, а вот в списке токенов его уже нет. Ну подкорректировал я немного исходнички, и вуаля, tokenize(...) работает! Потом вспомнил я, что в Самоделкине токенизация происходила ну очень извращенным способом ( способ-то очень интересный, но безумно тяжелый для исполнения ), и решил испробовать tokenize(...) на практике. Что из этого вышло можно посмотреть ниже http://narod.ru/disk/6722750000/tok_ssl.rar.html
|
|
|
|
Alchemist
Модератор
Posts: 117
Ортодоксальный Сектант
|
|
Re: tokenize
« Reply #1 on: 17 March 2009, 19:44:13 » |
|
Интересно. Сам на практике уже проверял?
|
//Это добром не кончится...
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: tokenize
« Reply #2 on: 17 March 2009, 20:44:12 » |
|
Проверил работает. Осталось обновить программу на сайте.
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
Alchemist
Модератор
Posts: 117
Ортодоксальный Сектант
|
|
Re: tokenize
« Reply #3 on: 17 March 2009, 21:06:39 » |
|
Осталось обновить программу на сайте. И декомпилятор, вероятно, тоже.
|
//Это добром не кончится...
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: tokenize
« Reply #4 on: 17 March 2009, 21:23:43 » |
|
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
binyan
Пользователь
Posts: 41
|
|
Re: tokenize
« Reply #5 on: 03 April 2009, 16:23:01 » |
|
"На сайте" - подразумевалось все таки тут, наверное. На Тимыксе.
|
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: tokenize
« Reply #6 on: 03 April 2009, 21:26:34 » |
|
Пару компилер/декомпилер дайте — обновлю. А то как-то половинчато получается...
|
|
|
|
KLIMaka
Пользователь
Posts: 72
|
|
Re: tokenize
« Reply #7 on: 04 April 2009, 18:58:32 » |
|
декомпилятор обновлять не нужно, он tikenize замечательно понимает. Бинарник компилятора можно с моекго первого поста взять, а исходник я чуть позже выкину.
|
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: tokenize
« Reply #8 on: 05 April 2009, 10:23:51 » |
|
Ясно. А что по поводу версий, с Анхоритом не связывался? Да и Таймслиповские изменения тоже бы интегрировать...
|
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: tokenize
« Reply #9 on: 05 April 2009, 12:09:06 » |
|
Вот здесь компилятор в который Таймслип внес изменения. В архиве программма и исходники. http://timeslip.chorrol.com/current/sslc.7z
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
Alchemist
Модератор
Posts: 117
Ортодоксальный Сектант
|
|
Re: tokenize
« Reply #10 on: 05 April 2009, 19:07:49 » |
|
2 KLIMaka: Бинарник компилятора можно с моекго первого поста взять У компилятора ДВА бинарника. Потому что-то официально выкладывать, пока не готовы оба -- бессмысленно и даже вредно. Более того, следуя стандарту, заданному Anchorite, в архивы обязательно нужно вложить и исходники. Чтобы всё было как в пердыдущих версиях. декомпилятор обновлять не нужно На самом деле -- надо. Но не из-за tokenize. Там ещё куча изменений подоспела. 2 Jordan: Вот здесь компилятор в который Таймслип внес изменения. Но tokenize как выражение там отсутствует. Давай-ка тогда не будем пороть горячку, как в случае с sslc, и переделаем сорцы под три цели компиляции. Дабы на выходе получались: экзешник для F1, экзешник для F2 и экзешник для F2 с поддержкой опкодов Sfall. И всё одним архивом вместе с исходниками. Во избежание разночтений.
|
|
« Last Edit: 05 April 2009, 20:17:16 by Alchemist »
|
|
//Это добром не кончится...
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: tokenize
« Reply #11 on: 06 April 2009, 08:22:59 » |
|
Давайте-ка все обсуждения собственно утилит компиляции/декомпиляции перенесём в соответствующую тему.
|
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: tokenize
« Reply #12 on: 30 September 2009, 14:52:36 » |
|
KLIMaka Ковыряясь в документации по внутренностям скриптов я обнаружил интересную ф-ю - tokenize(...), которая разбивает строку на токены. Заинтересовался и решил ее опробовать. Но sslc бодренько мне сказал, что такого имени не существует, и компилировать все это он отказываеся. Хм... Причем get_exp (809F) и SelectFileList(80A1) есть, а вот tokenize(80А0) нету! Полез я в исходники, и оказалось, что об tokenize(...) просто забыли! В списке опкодов он есть, а вот в списке токенов его уже нет. Ну подкорректировал я немного исходнички, и вуаля, tokenize(...) работает! Потом вспомнил я, что в Самоделкине токенизация происходила ну очень извращенным способом ( способ-то очень интересный, но безумно тяжелый для исполнения ), и решил испробовать tokenize(...) на практике. Что из этого вышло можно посмотреть ниже http://narod.ru/disk/6722750000/tok_ssl.rar.htmlВыложи еще раз этот архив.
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
rws5
Пользователь
Posts: 53
|
|
Re: tokenize
« Reply #13 on: 21 April 2010, 23:27:11 » |
|
Так что с tokenize()? Ее можно использовать? Как?
|
|
|
|
Alchemist
Модератор
Posts: 117
Ортодоксальный Сектант
|
|
Re: tokenize
« Reply #14 on: 24 April 2010, 21:09:28 » |
|
что с tokenize()? Ее можно использовать? Как? Если твоя версия sslc достаточно свежая, то вполне можно. Старые просто не будут компилировать скрипты, вызывающие, tokenize. Пример, как именно использовать, есть в архиве, ссылку на который ты же сам и процитировал. -- Upd -- Тьфу, ссылку цитировал Jordan. Короче вот пример, содержащийся в том самом архиве. Выбирает из строки word, разделённой на элементы символами delimer, элемент номер cell. Define в конце для совместимости с исходникаим Mr. FixIt. //16.03.2009 //KLIMaka mailto beast780@yandex.ru //Обновленная версия ф-ии вырезания подстроки, реализованная через tokenize //Аргумент 1 - исходная строка, состоящая из подстрок, между которыми стоят разделители //Аргумент 2 - номер подстроки (целое), начиная с 0 //Аргумент 3 - разделитель (целое)
procedure wordar_t(variable word, variable cell, variable delimer) begin variable str:=""; variable c_cell:=0; str := tokenize(word,0, delimer); while c_cell<cell do begin str := tokenize( word, str, delimer); if str == 0 then return ""; c_cell := c_cell + 1; end return str; end
//Добавлено для совместимости с FixIt #define wordar( w, c ) wordar_t( w, c, '|')
|
|
« Last Edit: 24 April 2010, 21:18:42 by Alchemist »
|
|
//Это добром не кончится...
|
|
|
|