Существуют ли какие-либо библиотеки или технологии (на любом языке), которые предоставляют инструмент, похожий на регулярные выражения, для любых типов данных, подобных потоку или списка (в отличие от только строк символов)?Обобщенный анализ потока?
Например, предположим, что вы пишете парсер для вашего языка программирования домашних животных. Вы уже ввели его в список объектов Common Lisp, представляющих токены.
Вы можете использовать шаблон, как это для синтаксического анализа вызовов функций (с использованием синтаксиса C-стиль):
(pattern (:var (:class ident)) (:class left-paren) (:optional (:var object)) (:star (:class comma) (:var :object)) (:class right-paren))
Что бы связывать переменные для имени функции и каждый из аргументов функции (на самом деле, вероятно, будет реализован таким образом, что этот шаблон, вероятно, свяжет переменную для имени функции, одну для первого аргумента и список остальных, но это не очень важная деталь).
Возможно, что-то подобное будет полезно?
Я думаю, что Perl6 сделает это, когда будет дальше. –