Комментарии 7
Ragel?
Какой ужасный пример.
>> ^name^+~\w*~+^name^+~\([\^name\^\w*\^name\^\w*\,?]*\)\w*~
Как вы лихо всю грамматику декларатора описали таким простым выражением.
Может стоит для поиска по AST C++ использовать подходящие инструменты, например, Clang? www.youtube.com/watch?v=mVbDzTM21BQ
>> ^name^+~\w*~+^name^+~\([\^name\^\w*\^name\^\w*\,?]*\)\w*~
Как вы лихо всю грамматику декларатора описали таким простым выражением.
Может стоит для поиска по AST C++ использовать подходящие инструменты, например, Clang? www.youtube.com/watch?v=mVbDzTM21BQ
Reinventing SNOBOL?
У меня сложилось впечатление, что вы не пытались это реализовать или тем более пользоваться.
У вас масса ключевых слов/фич, которые сложно осознать и запомнить; хуже того — за всем этим не видно никакой логики, которая бы помогла облечить понимание/запоминание.
Вы уж определитесь с решаемой задачей. Если вы хотите императивный язык с регулярными выражениями — так может лучше воспользоваться существующим языком с хорошей поддержкой регекспов, а не придумывать еще один? Хотите заняться оптимизацией (объединение нескольких регекспов в одно и тп)? Так напишите оптимизатор для подмножества языка Scheme с регулярками. S-выражения легко анализировать.
Ну и пример вы выбрали явно неудачный. Парсеры ЯП это большая и интересная тема, вот только проблемы там совсем другие.
У вас масса ключевых слов/фич, которые сложно осознать и запомнить; хуже того — за всем этим не видно никакой логики, которая бы помогла облечить понимание/запоминание.
Вы уж определитесь с решаемой задачей. Если вы хотите императивный язык с регулярными выражениями — так может лучше воспользоваться существующим языком с хорошей поддержкой регекспов, а не придумывать еще один? Хотите заняться оптимизацией (объединение нескольких регекспов в одно и тп)? Так напишите оптимизатор для подмножества языка Scheme с регулярками. S-выражения легко анализировать.
Ну и пример вы выбрали явно неудачный. Парсеры ЯП это большая и интересная тема, вот только проблемы там совсем другие.
вам стоит попробовать Perl
сорри, начало здесь xn--b1apz8a.xn--p1ai/forum/philosophy/4101577.1.aspx
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Императивный RegExp. Нотация