Форум: "Начинающим";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
ВнизПарсер текста со скобками (круглыми, фигурными и проч.) Найти похожие ветки
← →
Mihelson (2010-10-02 13:02) [0]Посоветуйте, пожалуйста, парсер для Delphi текста со скобками (круглыми, фигурными и проч.), числами, знаками препинания. Могут быть вложения.
← →
Юрий Зотов © (2010-10-02 13:08) [1]А что такое "Delphi текст"?
← →
Mihelson (2010-10-02 13:14) [2]парсер для Delphi. Парсер текста.
← →
Юрий Зотов © (2010-10-02 13:34) [3]То есть, парсер исходного кода на языке Delphi?
← →
Mihelson (2010-10-02 13:38) [4]Да, парсер, написанный для среды Delphi и способный разбирать текст, состоящий из скобок (круглых, фигурных), чисел, знаков препинания, ASCII-символов. Возможно вложение скобок.
← →
Юрий Зотов © (2010-10-02 13:41) [5]Возможно, Dream Scripter?
http://www.sourcecodeonline.com/details/dream_controls__freeware_part_.html
Непонятно, почему особо оговариваются скобки, числа, знаки препинания, вложенность и пр. Язык есть язык, и это - его принадлежности.
← →
Mihelson (2010-10-02 13:43) [6]Сорри, наверное, неправильно выразился. Не исходного кода, а произвольного текста, состоящего из скобок и т.д.
← →
Юрий Зотов © (2010-10-02 13:49) [7]
> Mihelson (02.10.10 13:43) [6]
Рискну предположить, что парсеров ПРОИЗВОЛЬНОГО текста не существует. Парсер - это преобразователь входного текста на ОПРЕДЕЛЕННОМ языке в последовательность токенов. Вот этот ОПРЕДЕЛЕННЫЙ входной язык и надо сначала задать. С помощью БНФ, синтаксических диаграмм, или еще как-то - но он должен быть ЗАДАН.
← →
Mihelson (2010-10-02 13:52) [8]Да, я тоже так думаю. Уверен, что придется найденный парсер адаптировать для своих целей. Но мне хотя бы что-то для начала иметь, скелет, так сказать. А дальше я с ним сам буду работать.
← →
Юрий Зотов © (2010-10-02 13:58) [9]Погуглите на тему Lex & Yacc
← →
Andy BitOff © (2010-10-02 14:00) [10]> Mihelson (02.10.10 13:43) [6]
> произвольного текста, состоящего из скобок
Странный какой-то текст получится - "(()))[[](])[[((((][))([][}{"
← →
Юрий Зотов © (2010-10-02 14:00) [11]Но думаю, что начинать в любом случае придется с определения входного языка. В общем-то, это обычно и есть самая сложная часть, и если она выполнена правильно, то сделать парсер уже несложно, даже с нуля.
← →
Mihelson (2010-10-02 14:45) [12]
> Andy BitOff © (02.10.10 14:00) [10]
>
> > Mihelson (02.10.10 13:43) [6]
> > произвольного текста, состоящего из скобок
>
> Странный какой-то текст получится - "(()))[[](])[[((((][))([][}{"
текст, состоящий из скобок (круглых, фигурных), чисел, знаков препинания, ASCII-символов.
← →
Юрий Зотов © (2010-10-02 18:52) [13]
> Mihelson (02.10.10 14:45) [12]
Текст "(()))[[](])[[((((][))([][}{" вполне удовлетворяет Вашему определению входного алфавита, поскольку он включает в себя только те символы, которые в этот алфавит входят. То есть, синтаксически он правилен, но вряд ли имеет какой-то смысл.
Возьмите другой текст: "A(,) {} 2"#5
Он под Ваше определение попадает абсолютно, так как состоит именно из "скобок (круглых, фигурных), чисел, знаков препинания, ASCII-символов". Но смысла тоже не имеет.
Теперь Вы понимаете, что начинать все же надо с ТОЧНОГО определения входного языка? Пока его нет, ничего получиться не может - потому что пока его нет, просто не о чем даже и говорить.
← →
Petr V. Abramov © (2010-10-04 16:58) [14]
> Теперь Вы понимаете, что начинать все же надо с ТОЧНОГО
> определения входного языка?
не, нужно сначала понять, что такое входной язык :)
> Mihelson (02.10.10 14:45) [12]
>
> текст, состоящий из скобок (круглых, фигурных), чисел, знаков
> препинания, ASCII-символов.
если на текст никаких дригих огрничений не наложено, парсер тривиален: идем по тексту до символа, который не скобка никакого сорта, не число (кстати, что такое число? A12AEF - это число или строчка?), не знак препинания и не ASCII-символ, и говорим, что в этой позиции ошибка. елси дошли до конца файла, говорим: да, классный файл, могу еще такой распарсить. больше сказать нечего, потому что структуры у текста нет.
но скорее всего, структура все-таки есть, и не все файлы "правильные" т.е. ей соответствуют. простейший пример: наверняка подразумевается, что открывающейся фигурной скобке соответсвует закрывающаяся, тоже самое с обычными. если где-то скобка не закрыта, файл признается неверным, плохим, негодным, имеющим неправильную структуру и работа с ним прекращается, пока пользватель не разберется со скобками.
в общем-то всего лишь набор пободных требований к структуре файла и называется входным языком. как его формально описать? да есть куча способов, опиши пока неформально.
а уж по ходу выяснения, является заданный текст ттекстом на входном языке в простейшем случае сами по себе решаются прикладные задачи, превращение его в структуру данных. как это может ни показаться странным.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c