Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Вниз

Рисовалка.   Найти похожие ветки 

 
ferr ©   (2007-08-27 19:48) [0]

В чём можно симпатично и без лишних проблем нарисовать конечный автомат состояний? Нужно для документирования..


 
@!!ex ©   (2007-08-27 19:54) [1]

Хм. Ну у меня есть прога, построения графов конечных автоматов для парсеров....
Посмотри доки(с скринами) по ней. Если подойдет могу дать с сорсами.
afera-net.narod.ru/GraphHelpDOC.rar


 
vpbar ©   (2007-08-27 20:04) [2]

>>@!!ex ©   (27.08.07 19:54) [1]
Это типа генератор парсеров? Неплохо. Встречал такую идею, (на softcraft.ru) кажется, но вот реализаций еще не видел.
Не поделитесь исходниками?
>>ferr ©   (27.08.07 19:48) [0]
Visio не подойдет?


 
@!!ex ©   (2007-08-27 20:07) [3]

> [2] vpbar ©   (27.08.07 20:04)

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


 
ferr ©   (2007-08-27 20:10) [4]

> Это типа генератор парсеров? Неплохо. Встречал такую идею,
> (на softcraft.ru) кажется, но вот реализаций еще не видел.
>
> Не поделитесь исходниками?

Там вроде не генератор парсеров. Как раз хотел предложить автору сделать генератор кода на основе графа. Но мне такая утилита не нужна, мне просто картинку нарисовать..

Для интересующихся, в своё время долго искал аналоги yacc, так сказать интересовался темой, нашёл очень хороший генератор синтаксических анализаторов называющийся Gold Parser, очень дружелюбный интерфейс, возможность импорта из yacc файлов, генерация кода для многих языков, например для C#, Delphi.. дерзайте.

А какой тип диаграмм в визио? Я в нём кроме Uml ничего не пытался делать..


 
@!!ex ©   (2007-08-27 20:19) [5]

> Там вроде не генератор парсеров. Как раз хотел предложить
> автору сделать генератор кода на основе графа. Но мне такая
> утилита не нужна, мне просто картинку нарисовать..
>
> Для интересующихся, в своё время долго искал аналоги yacc,
> так сказать интересовался темой, нашёл очень хороший генератор
> синтаксических анализаторов называющийся Gold Parser, очень
> дружелюбный интерфейс, возможность импорта из yacc файлов,
> генерация кода для многих языков, например для C#, Delphi..
> дерзайте.

ИМХО глупо генерить код...
Так есть классик,к оторый загружает граф и по нему работает.
Надо имзенить что-то, чуть подредактировал граф и все ок. Нафиг код то трогать?


 
vpbar ©   (2007-08-27 20:25) [6]

>>@!!ex ©   (27.08.07 20:07) [3]
Читал.
"Список действий является специфическим для каждой конкретной реализации синтаксического анализатора, и соответственно для каждого графа." Вот это натолкнуло на мысль что это генератор парсеров.

ferr ©   (27.08.07 20:10) [4]
За Gold Parser спасибо, попробую на досуге. А то с yacc что-то я не очень разобрался, быстрее оказалось ручками сделать.
>>А какой тип диаграмм в визио?
А хз. Я его давно не пользовал. Просто помню, что там можно много разных диаграмм делать " без лишних проблем".


 
@!!ex ©   (2007-08-27 20:41) [7]

Кстати, а мне кто нить может объяснить, зачем нужно генерировать парсер?


 
ferr ©   (2007-08-27 20:48) [8]

> Кстати, а мне кто нить может объяснить, зачем нужно генерировать
> парсер?

Для написания компиляторов, интерпритаторов и других зверей. Это очень сильно упрощает написание оных..


 
@!!ex ©   (2007-08-27 20:53) [9]

> [8] ferr ©   (27.08.07 20:48)

Генерировать код зачем?
Просто я как раз использую автоматы для скриптового движка, и не понял в чем преимущество графа хранящегося в коде, от графа хранящегося отдельным файлом..


 
ferr ©   (2007-08-27 20:56) [10]

> Генерировать код зачем?
> Просто я как раз использую автоматы для скриптового движка,
> и не понял в чем преимущество графа хранящегося в коде,
> от графа хранящегося отдельным файлом..

В скорости обработки.


 
@!!ex ©   (2007-08-27 21:14) [11]

> В скорости обработки.

чето сомневаюсь.
Вот весь код обработки парсера у меня:
Function Update(Data:byte; var Return:string):boolean;
begin
if State^.Link[Data] then begin
 case State^.Links[Data]^.Action of
   ReturnAndClear:begin
                    Return:=Current;
                    Current:="";
                  end;
   Return:        begin
                    Return:=Current;
                  end;
   Clear:         begin
                    Return:=Current;
                  end;
 end;
 Result:=true;
 State:=State^.Links[Data]^.Child;
end
else
 Result:=false;
end;


Было бы интеерсно посмотреть на пример парсера зашитого в код, который бы работал быстрее.


 
ferr ©   (2007-08-27 21:43) [12]

> Было бы интеерсно посмотреть на пример парсера зашитого
> в код, который бы работал быстрее.


> Было бы интеерсно посмотреть на пример парсера зашитого
> в код, который бы работал быстрее.

Пример слишком простой..
Вообще вопрос реализации конечно.. Так что спорно всё это.. Недетерминированные автоматы я так понимаю проще сделать зашитыми в код(код проще)..



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.213 c
11-1171730658
Dy1
2007-02-17 19:44
2007.09.23
"много вопросов, мало ответов" (с)


2-1188456476
vasyl
2007-08-30 10:47
2007.09.23
ProgressBar


15-1188287010
infom
2007-08-28 11:43
2007.09.23
Не могу использовать на форме TWebBrowser в BDS 2006 !


2-1188305625
Shad
2007-08-28 16:53
2007.09.23
Работа с другими программами


15-1187867268
oldman
2007-08-23 15:07
2007.09.23
ННМП-2007





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский