Модераторы: 2man

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тестирование скрипта подцветки 
:(
    Опции темы
S.A.P.
Дата 15.3.2005, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Mal Hack в случае с одним регом, если литерал будет в комментарии, то ты найдешь комментарий, а не литерал, в том то вся и фишка smile .
PM MAIL   Вверх
Mal Hack
Дата 15.3.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Perchilla
Хорошо. Вот такой случай:
Код
                 //-----------------------------------------
                 // Is this a guest? If so, get 'em to log in.
                 //-----------------------------------------

                 if ( ! $ibforums->member['id'] )


PM ICQ   Вверх
S.A.P.
Дата 15.3.2005, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



А что здесь мудренного? кавычка поле слова GET? Она и не будет найдена. preg поймает комментраий от // до конца строки и заменит его.
Добавлено @ 18:46
Кстати, вот еще
Код

$a = aaa(1,2,3,4);

PM MAIL   Вверх
Mal Hack
Дата 15.3.2005, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Хорошо:
Код
$a = " askldjsld // sdkjfhsdkhf";

В общем... Как сделать с помощью одной регулярки я не могу понять (сообразить) технически.
ЗЫ: Аплодил новую версию. Вроде исправил все глюки, которые я сам видел раньше.
Добавлено @ 18:51
Цитата(Perchilla @ 15.3.2005, 18:36)
$a = aaa(1,2,3,4);

Исправил.
PM ICQ   Вверх
S.A.P.
Дата 15.3.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Цитата(Mal @ 15.3.2005, 18:49)
Цитата (Perchilla @ 15.3.2005, 18:36)
$a = aaa(1,2,3,4);

Исправил.


ну аналогичная фигня
Код

if (aaa) bbb() 
else return

(return не горит, скорее всего else съедает пробел, а следующий оператор не может его найти).

Цитата(Mal @ 15.3.2005, 18:49)
В общем... Как сделать с помощью одной регулярки я не могу понять (сообразить) технически.
ну вот на твоем примере часть регулярного выражения
((".*?")|(\/\/.*?\n)) примерно так, проверять времени нет. Все это дело меняешь на функцию, в которой находишь, к какому из имеющихся шаблонов односиться найденная подстрока. То же самое я делал на JavaScript, сам алгоритм всего на 30 строчек был, не считая шаблонов, а шаблоны туда можно было подставлять любые, хоть для CSS, потому что там нету разделения на операторы, комментарии, литералы и т.д. Все шабломы группируются в цикле smile .

Это сообщение отредактировал(а) Perchilla - 15.3.2005, 19:05
PM MAIL   Вверх
Mal Hack
Дата 15.3.2005, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Я понять не могу, по какому принципу он вынимать должен?
PM ICQ   Вверх
S.A.P.
Дата 15.3.2005, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



вот шаблон ((".*?")|(\/\/.*?\n)) он свормировался у нас из 2-х шаблонов: строк и комментариев, находящихся в одном массиве. По нему винимается либо строка, заключенная в кавычки, либо комментарий до конца строки, что первее попадется. Если строка в комментарии, что программа ее даже не увидет, потому что заменит комментарий и пойдет себе дальше.

Все, часть строки вынули, передали ее в функцию, а там уже смотрим: у нас есть массив шаблонов и стилей, перебираем их, пока не найдем тот шаблон, что соответствует найденной подстроке и возвращаем ее со стилем, соответствуюшим шаблону.
PM MAIL   Вверх
Mal Hack
Дата 15.3.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Хорошо... Но..
Код
$a = "khf\" //sdfsdf ";

При таком правиле будет как строка "khf\" и комментарий //sdfsdf ";
PM ICQ   Вверх
S.A.P.
Дата 15.3.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Ну можно же такой шаблон туда залепить
Код

(".*?[^\\]")

PM MAIL   Вверх
Mal Hack
Дата 15.3.2005, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Так, хорошо, а как потом это дело внутри функции распознавать?
Как ты потом подцвкчивал переменные и зарезервированные слова?
PM ICQ   Вверх
S.A.P.
Дата 15.3.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Цитата(Mal @ 15.3.2005, 20:19)
Так, хорошо, а как потом это дело внутри функции распознавать?
в цикле перебирал массив с шаблоном и проверял.
PM MAIL   Вверх
Guest
Дата 15.3.2005, 21:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Зачем интересно изобретать что-то, когда уже есть специальная функция для подцветки..?

Mal Hack лишний раз подтвердилось, знания есть, а применить не можешь.
  Вверх
Guest
Дата 15.3.2005, 21:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не баг, но небольшой недочет. Русские буквы в именах функций использовать можно=) т.е. пока твой скрипт function Вася() не подсветит
  Вверх
Mal Hack
Дата 15.3.2005, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Цитата(Guest @ 15.3.2005, 21:30)
Зачем интересно изобретать что-то, когда уже есть специальная функция для подцветки..?

А меня она не устраивает

Цитата(Guest @ 15.3.2005, 21:30)
Mal Hack лишний раз подтвердилось, знания есть, а применить не можешь.

А че анонимно-то?

Цитата(Guest @ 15.3.2005, 21:30)
Не баг, но небольшой недочет. Русские буквы в именах функций использовать можно=) т.е. пока твой скрипт function Вася() не подсветит

Буду думать...
PM ICQ   Вверх
IZ@TOP
Дата 16.3.2005, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 3
Всего: 73



Цитата(Guest @ 15.3.2005, 22:30)
Mal Hack лишний раз подтвердилось, знания есть, а применить не можешь.

mx, Можешь похвастаться большим опытом разработки веб систем? От тебя тут всего пять мессаг (во всяком случае под этим IP), а толку в них ноль.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие движки / фрейморки | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.