Как известно, DFA можно использовать для проверки строк на обычном языке.Можем ли мы использовать DFA для анализа регулярного языка, заданного с помощью Context-Free Grammar, и генерации дерева синтаксического анализа?
Пример 1. L = ac (b) * bcb | ad (b) * bb. Строка «acbbbcb» может быть подтверждена DFA как правильная.
Также, иногда, регулярный язык может быть выражен CFG.
Пример 2.
- S -> "а" А "б"
- А -> "с" В "с" | "d" B
- B -> "b" B | «Б»
язык, порожденный выше CFG просто регулярное выражение в примере 1.
Это значит, мы можем использовать DFA для проверки (обычные) строки, генерируемые этой CFG. Однако как мы можем сгенерировать соответствующее дерево разбора?
Это не ответ на ваш вопрос, но некоторое время назад я нашел «онлайн-визуализатор регулярных выражений»: http://regexvisualizer.apphb.com/ –