Форум TeamX
   Home   Members  
Pages: [1] 2 |   Go Down
 
Author Topic: tokenize  (Read 2614 times)
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

476228895
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 »

Quote
Осталось обновить программу на сайте.
И декомпилятор, вероятно, тоже.

//Это добром не кончится...
Jordan
Пользователь
Posts: 416

476228895
Re: tokenize
« Reply #4 on: 17 March 2009, 21:23:43 »

Обновил.

http://jordan631.narod.ru/programs/int2ssl_sfall/int2ssl.7z

В архиве программа и исходнки.


Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
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

476228895
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 »

2KLIMaka:
Quote
Бинарник компилятора можно с моекго первого поста взять
У компилятора ДВА бинарника. Потому что-то официально выкладывать, пока не готовы оба -- бессмысленно и даже вредно. Более того, следуя стандарту, заданному Anchorite, в архивы обязательно нужно вложить и исходники. Чтобы всё было как в пердыдущих версиях.

Quote
декомпилятор обновлять не нужно
На самом деле -- надо. Но не из-за tokenize. Там ещё куча изменений подоспела.

2Jordan:
Quote
Вот здесь компилятор в который Таймслип внес изменения.
Но 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

476228895
Re: tokenize
« Reply #12 on: 30 September 2009, 14:52:36 »

KLIMaka

Quote
Ковыряясь в документации по внутренностям скриптов я обнаружил интересную ф-ю - 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 »

Quote
что с tokenize()? Ее можно использовать? Как?
Если твоя версия sslc достаточно свежая, то вполне можно. Старые просто не будут компилировать скрипты, вызывающие, tokenize. Пример, как именно использовать, есть в архиве, ссылку на который ты же сам и процитировал.

 -- Upd --

Тьфу, ссылку цитировал Jordan. Обеспокоенный Короче вот пример, содержащийся в том самом архиве. Выбирает из строки word, разделённой на элементы символами delimer, элемент номер cell. Define в конце для совместимости с исходникаим Mr. FixIt.
Code:
//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 »

//Это добром не кончится...
Pages: [1] 2 |   Go Up