Есть ли модуль CPAN для синтаксического анализа вложенных скобок?

голоса
6

Есть ли модуль CPAN, который можно прочитать строку, как это:

[[<asdf>, <foo>], (abc, def, ghi), ({'jkl'})]

... и разобрать его в какую-то структуру дерева, который легко ходить и довольно-печать?

Задан 09/12/2008 в 22:15
источник пользователем
На других языках...                            


5 ответов

голоса
9

Я думаю , что вы могли бы построить на вершине Text :: Balanced , который будет делать много тяжелой работы для вас. Вы все еще нужно построить древовидную структуру, хотя.

Ответил 09/12/2008 в 23:23
источник пользователем

голоса
4

Perl 5.10 в регулярные выражения могут обрабатывать сбалансированные структуры , как это. Смотрите (?PARNO) (?-PARNO) (?+PARNO) (?R) (?0)раздел perlre .

Ответил 10/12/2008 в 02:20
источник пользователем

голоса
2

Perl 6 будет иметь встроенные средства , чтобы поддержать это. В промежутке времени, Text :: Balanced (как было упомянуто Dave Rolsky), вероятно , модуль выбора. Обратите внимание , что она тоже была написана Damian Conway (как оценила Билл Karwin).

Ответил 09/12/2008 в 23:37
источник пользователем

голоса
1

Дамиана Конвея Анализировать :: RecDescent

Я не использовал это, но это хорошая ставка, что модуль Perl написанный Damian Conway стоит использовать.

Ответил 09/12/2008 в 22:28
источник пользователем

голоса
0

Если строка идентична Dumper данных формата, то он может быть eval-ed обратно в исходную структуру.

Ответил 09/12/2008 в 22:58
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more