Темыч, Зенитчик и все остальные Help!!!

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение tyomitch » 23.02.2009 (Пн) 15:07

Хакер писал(а):Если я пишу не просто текстовый редактор, а среду разработки с компилятором, то я подвергну токенизированные данные следующей обработке с помощью DFA-автомата. Сначала последовательность символов превратилась в последовательность токенов, а в этот раз последовательность токенов превратится в какую-то другую последовательность. Сколько будет таких этапов и что в конечном счёте получится зависит от меня, от моей фантазии и моей задачи.

Ну так будет мне дерево из твоего DFA? ;)
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 23.02.2009 (Пн) 15:09

tyomitch, ага, понял.

Ты в конечном итоге что получить хочешь, exe-шник, который просто будет работать, или же исходник, или же функцию, которую можно будет погонять-потестировать на скорость?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение tyomitch » 23.02.2009 (Пн) 15:37

Исходник, работающий с твоей библой как с чёрным ящиком.
На самом деле, словесного описания "как написал бы" хватило бы. Хотя живой код ещё лучше :)
Изображение

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 23.02.2009 (Пн) 16:43

Хакер писал(а):Вообще говоря, нельзя так громко кричать "нужно". "Нужно" у каждого своё. Мне, например, может оказаться, что дерево разбора и не нужно.

То, что действительно нужно, это данные одного вида (который менее удобен для оперирования ими), перевести в данные другого вида (более удобного).

Каким будет этот "другой вид" — будет ли это дерево, связанный список или массив зависит от тебя и твоей задачи. Так что заявлять, что какой-то там анализатор должен код превратить всенепременно в дерево, — неправильно.

Здесь я согласен. Никто и не говорит что нужно обязательно дерево разбора. Это более абстрактное понятие. Нужно по сути получить ответ "Эта строка принадлежит заданной грамматике?". Если да, то какая зависимость (косой косой и т.д.), если нет, то что именно не так и где...
У каждого своя задача, но задача синтаксического анализа сводится к выяснению этого вопроса

Хакер писал(а):Чем хорошо программирование — здесь можно крутиться и придумывать свои методы. Я изначально отвернулся от методов, придуманных учёными и с тех пор ни разу не пожалел.

Не отрицаю...кто-то может принимать такие методы, кто-то может придумать свои. Я склоняюсь к тому что чтобы придумать свои нужно знать чужие. И тем более, та же студия, тот же VB - они строятся на каких-либо научных методах (я о синтаксических анализаторах). Никто не придумывал свои методы, ибо теория синтаксического анализа идет еще с незапамятных времен...у меня на столе книга 1975 года выпуска, выпускали русские, когда особого распространения ПК и не было, только в научных целях...

Хакер писал(а):Это глупость. Т.е. это невозможная в принципе вещь, даже если реализующий будет неимоверно умён. Что же касается естественных языков: "косил косой косой косой". Последнии три слова одинаковые, но тем не менее, одно из них обозначает зайца, другое инструмент, а третье является прилагальнрым. Которое — какое, не ответишь даже ты, не то что программа.

Так никто и не говорит что это не глупость. И более того я считаю что это не возможно на данном этапе.
По естесственным языкам
Ну вот знаменитая фраза "казнить, нельзя помиловать"\\\"казнить нельзя, помиловать"
Эта та самая неоднозначность, которую можно описать, исключить и удалить.
Вот здесь и выступит в полном объеме грамматика. В зависмости от того, как мы зададим грамматику, предложение примет смысл...Это называется семантика. Синтаксический анализ с семантическим дает идеальную структуру, которая снабжает предложение правильностью написания и смысловой нагрузкой...но вот для естественных языком это очень сложно, но опять таки программисты не пишут (по крайней мере я не видел в у рядовых программистов) синтаксические анализаторы для естественного языка.
Вот например грамматика для фразу "казнить нельзя, помиловать"
S-->stmt_K stmt_N op stmt_P
stmt_K-->Казнить
stmt_N-->нельзя
stmt_P-->помиловать
op-->,


Это очень грубо и неэффективно, в реальности все намного сложнее.
Тем не менее стоит поменять S--> ..... и фраза "казнить, нельзя помиловать" уже не станет являться принадлежащей данной грамматике, она будет принадлежать иной грамматике. Совокупность грамматик по сути даст язык. Если собрать эти две грамматики вместе, то сможем обрабатывать обе фразы...
Хакер писал(а): Понятие токен без грамматики то же самое что и атом - самостоятельно они бесполезны.


Здравсьте.

Вот теперь можно ответить и на это.
Что будет если я не знаю что S-->stmt_K stmt_N op stmt_P а знаю только что есть stmt_K, stmt_N,...?
Ну обработаю я строку начиная с первого слова. Получу сначала "казнить", потом получу "нельзя".....токенизация не даст мне смысловой нагрузки. Поэтому предложение нужно воспринимать как единое целое, т.е. систему

А вообще по сабжу...ИМХО надо взять какую-нибудь грамматику....ну не знаю, пусть тупо это будет инструкция знакомая всем
if stmt then expr else expr
И обработать. Я например попробую описать все с помощью грамматики, а ты своим способом. Проанализируем, подумаем...пусть даже это будет готовая программа, не важно. Просто сравним

Ибо не найти тут истины никому, каждый будет считать что он прав, потому что вложил в это свой труд, время и мозг
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 23.02.2009 (Пн) 17:03

И ты смотришь на всё через призму классики... эх :(

Нужно по сути получить ответ "Эта строка принадлежит заданной грамматике?".

Нет! Ну тебе может и да. А в общем случае не нужно.

И тем более, та же студия, тот же VB - они строятся на каких-либо научных методах (я о синтаксических анализаторах).

А мне вот так не кажется. Вот gcc наверняка строится, а насчёт VB я очень сомневаюсь.

Ну обработаю я строку начиная с первого слова. Получу сначала "казнить", потом получу "нельзя".....токенизация не даст мне смысловой нагрузки.

Для посветки ключевых слов, комментариев, строк и идентификаторов разным цветом смысловую нагрузку особо знать и не нужно. А вот рисовать цветные строчечки по готовому дереву разбора замучаешься.

if stmt then expr else expr

Что такое stmt и что такое expr?

надо взять какую-нибудь грамматику....ну не знаю, пусть тупо это будет инструкция знакомая всем
if stmt then expr else expr
И обработать. Я например попробую описать все с помощью грамматики, а ты своим способом. Проанализируем, подумаем...пусть даже это будет готовая программа, не важно. Просто сравним

Если уж и сравнивать что-то, то надо брать не инструкцию, а большой кусок кода, и чем больше и разнообразнее (чем больше экзотических конструкций в нём будет) он будет, тем объективнее.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 23.02.2009 (Пн) 17:17

Хакер писал(а):И ты смотришь на всё через призму классики... эх :(

Не согласен? Чем мой взгляд не во всем разбирающегося не направлен на классику?
Хакер писал(а):Нет! Ну тебе может и да. А в общем случае не нужно.

Ну и какой может быть общий случай? Приведи пример кроме раскрашивания слов в тексте...
Хакер писал(а):А мне вот так не кажется. Вот gcc наверняка строится, а насчёт VB я очень сомневаюсь.

Ну здесь я спорить вообще не буду, ибо совсем не знаю
Хакер писал(а):Для посветки ключевых слов, комментариев, строк и идентификаторов разным цветом смысловую нагрузку особо знать и не нужно. А вот рисовать цветные строчечки по готовому дереву разбора замучаешься.

Для подсветки синтаксиса вообще не нужен пасер. Нужен супербыстрый словарь например. Зачем синтаксически анализ если
"если слово = if тогда закрасить синим". Да, можно использовать не такой тривиальный пример, он конечно же будет отличаться от классики и в этом твой плюс, но это не синтаксический анализ, ибо наплевать, что после if не может идии next, зато не наплевать как они будут отображаться
Хакер писал(а):Что такое stmt и что такое expr?

это абстрактно. Вместо stmt может стоять любое например условие...а вместо expr может стоять например полностью if stmt then expr else expr
и там и там. Тогда можно получить рекурсивную грамматику, но вот как твой способ будет с этим справляться я так и не понял.
Тем не менее я могу задать грамматику на это выражение, которая опишет все ситуации сразу, т.е.
if stmt then
if stmt then
expr
else expr
else expr

и разобрать любое ветвление, задав для этого небольшое колличество правил вывода строк
Пишите жизнь на чистовик.....переписать не удастся.....

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Zenitchik » 23.02.2009 (Пн) 19:11

Хакер, ты альтернативщик - тебе и доказывать, что твоё решение не является частным случаем одной из классических теорий.
А потом можно и дискутировать.
Знание английского языка - затрудняет понимание кода

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 23.02.2009 (Пн) 19:31

<поганый интернет. пропал мой ответ слиму>

ты альтернативщик

Я альтернативщик? Я? й... да я вас как забаню щас :lol:

Доказывать я никому ничего не буду. Моё решение возможно и является частью чьей-то теорией, но главное не то, является или нет, а то, что я призываю не зацикливаться на созданных кем-то методах, не стараться подражать им, не стремиться к тому, чтобы в вашем разборщике были те же этапы, что и в чужом.

Это очень гибкий момент. Вот есть, скажем, норматив по разбору/сбору автомата Калашникова. Там есть какие-то требования по поводу того в каком порядке и как его нужно разбирать (в частности, что первым снимать: пенал или шомпол). Я против слепого соблюдения этих требований. Задача: разобрать автомат быстро, а не сделать это определённым образом.

Естественно, что разбирая автомат как-то по-своему, я частично повторяю чью-то другую методику разборки автомата, поскольку не повторить её невозможно.

Так и в данном случае моя технология в каком-то плане возможно совпадёт с какой-то другой.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 23.02.2009 (Пн) 20:26

Хакер писал(а):Доказывать я никому ничего не буду. Моё решение возможно и является частью чьей-то теорией, но главное не то, является или нет, а то, что я призываю не зацикливаться на созданных кем-то методах, не стараться подражать им, не стремиться к тому, чтобы в вашем разборщике были те же этапы, что и в чужом.

Ну так и не доказывай, ты просто покажи как ты это делаешь и все.
Тут никто не хочет сказать что кто-то умнее или тупее. Просто мы выясняем истину. Может быть я, темыч и все остальные будем применять именно твою методику. Ну так нужно же знать из чего она состоит

А по поводу чужих методик я говорил уже. Кто-то и впрямь может придумать свое. Я вот допустим и думать не думал что есть какие-либо грамматики. Представил сам что есть какие-либо правила, подумал как их лучше выстроить. Только потом мне кто-то сказал попробовать почитать, и я увидел что мои мысли уже высказаны, проверены и работают. Просто сам бы я долго все это одумывал, а тут за меня подумали

UPD:
Так можешь ответ и повторить :lol:
Пишите жизнь на чистовик.....переписать не удастся.....

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение tyomitch » 24.02.2009 (Вт) 0:08

SLIM писал(а):Ну так и не доказывай, ты просто покажи как ты это делаешь и все.
Тут никто не хочет сказать что кто-то умнее или тупее. Просто мы выясняем истину. Может быть я, темыч и все остальные будем применять именно твою методику. Ну так нужно же знать из чего она состоит

И гораздо интереснее, где и насколько она применима.
Поэтому я и хочу пример её приложения.
Будет пример?
Изображение

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 24.02.2009 (Вт) 0:43

tyomitch писал(а):И гораздо интереснее, где и насколько она применима.
Поэтому я и хочу пример её приложения.
Будет пример?

ИМХО если решение нельзя заточить под любую подобную задачу, то решение не претендует на универсальное.
А мне что-то подсказывает что решение Хакера хоть и имеет неоспоримые приемущества, но касаемо вопроса может где-то не пройти.
Ну пример я думаю все равно будет. По крайней мере я надеюсь.
Только пример должен быть общеприменимым,а не узконаправленным. Т.е. не только направленный на нужду Хакера
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 24.02.2009 (Вт) 8:33

Тфу ё-моё.

О каком решении Хакера идёт речь? О Dfa или о Tkn? Или о dfa-автомате, который потенциально может быть создан для обработки последовательности токенов?

tyomitch, будет тебе твой пример. Только учти, что DFA смотрится громоздко по сравнению с тем примитивным языком, который ты предложил, всё равно что картина размером 1x1 см в раскошной рамке, и токенизация выглядит лишней, потому что токенов мало и все односимвольные.

Но ты просил построение дерева с помощью DFA --- ты его получишь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение tyomitch » 24.02.2009 (Вт) 10:01

Хакер писал(а):и токенизация выглядит лишней, потому что токенов мало и все односимвольные.

Это нарочно: мне интересен только второй этап.
Изображение

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 24.02.2009 (Вт) 11:02

Хакер писал(а):Тфу ё-моё.

О каком решении Хакера идёт речь? О Dfa или о Tkn? Или о dfa-автомате, который потенциально может быть создан для обработки последовательности токенов?

Последовательность токенов не есть синтаксис.
Я ведь предлогал взять какой-либо пример, пример в области синтаксического анализа.
Ты сказал что зачем я полез туда-то, если твой способ задания лучше. Так вот какой он на практике?
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 24.02.2009 (Вт) 11:42

Давай так.

Тебе надо сделать синтаксический анализ (чтобы потом гордо заявлять об этом) или же тебе нужно данные в одном виде (последовательность символов) перевести в данные другого вида (которые тебе будут обрабатывать удобнее, чем текст)?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 24.02.2009 (Вт) 16:02

Хакер писал(а):Давай так.

Тебе надо сделать синтаксический анализ (чтобы потом гордо заявлять об этом) или же тебе нужно данные в одном виде (последовательность символов) перевести в данные другого вида (которые тебе будут обрабатывать удобнее, чем текст)?

Я не хочу гордо о чем-то заявлять, а всего лишь хочу что-то понять, и ты об этом знаешь
Преобразование строки в другой вид...что мне даст, какой другой вид может быть?
Если просто разбить на строку на слова, то это не то (да и глупо для этого целые библиотеки писать). Если любая преобразованная последовательность символов даст мне ответ, правильно ли составлена первоначальная строка, то мне именно это и нужно.

Мне нужно чтобы я на входе дал поток символов, на выходе
1. Правильна ли она составлена
2. Если не правильно, то где эта "неправильность"
3. Показать варианты как было бы правильно

Вот это все что мне нужно. Какими способами и средствами всеравно
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 24.02.2009 (Вт) 16:14

Так ты валидатор пишешь что-ли?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 24.02.2009 (Вт) 17:19

Хакер писал(а):Так ты валидатор пишешь что-ли?

С чего ты взял. Хотя можно по всякому назвать. Такие же задачи по сути решает анализатор
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 24.02.2009 (Вт) 17:33

Взял с того, что ты постоянно говоришь странное: Дескать, мне (тебе т.е.) важно узнать, подходит ли входная строка под такую-то грамматику или нет.

Другим людям (и мне в том числе) важно, к примеру если они обрабатывают Ini-файл, получить из однородного массива символов массив пар {ключ;значение}.

Тебе же, судя по многократным высказываниям, главное узнать, является ли то, что подсунули, правильным ini-файлом, и если нет --- то в чём "неправильность".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение tyomitch » 24.02.2009 (Вт) 17:45

Выкинь ini-файл, он слишком простой для разбора.
Возьми вместо него, для мысленных экспериментов, xml
Как только нужно дерево, дка обламываются. Они только массивы умеют делать.
Так по теории.
Изображение

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 24.02.2009 (Вт) 18:06

Хакер писал(а):Другим людям (и мне в том числе) важно, к примеру если они обрабатывают Ini-файл, получить из однородного массива символов массив пар {ключ;значение}.

Так это действительно только ini.
Что например тебе будет нужно если ты будешь обрабатывать синтаксис VB? Получить массив токенов?
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 24.02.2009 (Вт) 18:20

tyomitch, я когда сказал "ini", ни коим образом не рассматривал его как кандидат к мысленным экспериментам. Это был просто пример, чтобы показать тов. SLIM'у, что он хочет странного: в то время как все хотят перевести массив символов в массив чего-то (или в дерево какое-нибудь), ему нужно не более чем определить, что something match some-format.

Ок, у меня прошла голова и я сяду за твой скобочный пример. После него, если ничего не случится, я не против предоставить пример XML-парсера на базе моей технологии.

Что например тебе будет нужно если ты будешь обрабатывать синтаксис VB? Получить массив токенов?

Да, первым проходом я получу TokenSequence.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение SLIM » 24.02.2009 (Вт) 21:29

Хакер писал(а):Это был просто пример, чтобы показать тов. SLIM'у, что он хочет странного: в то время как все хотят перевести массив символов в массив чего-то (или в дерево какое-нибудь), ему нужно не более чем определить, что something match some-format.

Нет нет нет и нет.
Что касается ini там нужно другое. Там нужно получить значения секций, ключей и т.д.
Но вот ты берешь строку содержания "[section_1]anykey_1=1 anykey_2=2 [section_2] anykey_1=1 anykey_2=2..."
И так далее. Нужно получить значения ключей, которые имеют имя и принадлежат секции.
Как мыслю я. Если строка имеет правильную структуру, то я с легкостью узнаю какие значения имеют ключи, какие их имена и т.д., ибо я буду анализировать строку по определенной грамматике, в которой будет указано, что имя секции заключено между "[]", а значит это ее имя... что имя ключа обязательно до знака "=", а значит это его имя, а то что справа - это значение. Все это будет указано в моей грамматике. А вот если в синтаксисе будет ошибка,то я выберу вариант: либо я откину этот кусок текста и продолжу разбор в правильном направлении, либо я крикну пользователю о том что там после применяется например недопустимый знак, или комментарии указаны в ненужном месте и прекращу разбор, или спрошу, продолжить или нет...
Все это я могу делать, но только если буду иметь грамматику, т.е. если я буду сравнивать входные данные с каким либо шаблоном. И так, каким образом и как я буду сравнивать и будет показываться скорость парсера...

А все совсем не так как ты говоришь, не переворачивай в нужное русло :lol:
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 24.02.2009 (Вт) 22:12

Это я переворачиваю? :mad:

Это ты сказал, что тебе нужно только узнать соответствует ли строка грамматике или нет, и ничего более.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Zenitchik » 24.02.2009 (Вт) 23:38

Немного теории для Хакера: Анализатор имеет ОДНУ задачу - определить принадлежность входной строки к данному языку (true или false). И точка. Все остальное делают семантические процедуры встроенные в него.

Кстати, я разбираю строки одним проходом. Нахрена мне в явном виде последовательнсоть токенов, если в каждый момент времени нужен только один из них? Нахрена мне дерево, если оно и так неявно обходится в процессе построения стека?
Поэтому мне нравятся LR-языки - тогда нетерминалы можно сделать объектами и все промежуточные данные хранить в них, а в стек помещать сылки.

Грубо говоря, синтаксический анализатор у меня - это процедура от очередной лексемы, с рядом статических переменных, вызываемая из семантических процедур лексического анализатора.
Знание английского языка - затрудняет понимание кода

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 25.02.2009 (Ср) 0:04

Но я не об анализаторе. Я о нём не слова ни говорил. Я изначально о разборе. То что SLIM постоянно говорит "синтаксический анализатор" "синтаксический анализатор" --- ну так это его дело. Я его спрашивал: ему что главное: сам факт того, что "синтаксический анализатор" или же преобразование? Вам шашечки или ехать, иными словами.

Нахрена тебе последовательность токенов, я не знаю. Я уже приводил тример с IDE: там код токенизируется для двух целей: для дальнейшего семантического анализа конструкций и для подсветки синтаксиса. Ты, очевидно, для компиляции и для IDE будешь код разбирать каждый раз по новоый и разными методами. Фи.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Zenitchik » 25.02.2009 (Ср) 0:12

Когда мне придется разрабатывать IDE - тогда я об этом и задумаюсь. Но этого не произойдет в обозримом будущем.
До сих пор мне не требовалось разбирать код, преследуя более чем одну цель.
Знание английского языка - затрудняет понимание кода

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 25.02.2009 (Ср) 0:21

Разве это не показывает ещё раз, что монолитный подход (был входящий текст, стал конечный результат) хуже, чем мой поэтапный (здесь важно, что "поэтапный" --- не просто противовес монолитности, а что этапы ты придумываешь и задаёшь сам, сколько нужно и какие именно тебе нужны)?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение Хакер » 25.02.2009 (Ср) 0:53

tyomitch, я всё забываю сказать: пример тебе (скобочный) готов, но я не знаю, как быть с заголовками. Тебя устроит пример без библиотечных заголовков?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Темыч, Зенитчик и все остальные Help!!!

Сообщение tyomitch » 25.02.2009 (Ср) 12:21

Думаю, устроит. Если нет -- пожалуюсь :-)
Изображение

Пред.След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 65

    TopList