Возможно ли создать парсер адреса электронной почты рекурсивным путем (ll-граматика)?

Нужен пример реализации если это возможно, я никак не могу придумать как это реализовать. Разбил адрес на следующие нетерминалы <локальное часть> | <доменная часть> |<часть после точки>
Далее терминалы "a-z", "0-9", "@", "." "-", "_".
Как это всё вместе соединить ума не приложу.
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy
Android developer at Yandex
email ::= mailbox "@" hostname
mailbox ::= mailbox_symbol {mailbox}
mailbox_symbol ::= "a-z0-9..."
hostname ::= ...

В самом банальном виде всё ок, никакой левой рекурсии, руками можно парсер написать за 10-15 минут (рекурсивный спуск).
Другое дело, что емейл это не example@example.com, бывают и всякие другие сложные вещи.

Советую почитать https://habrahabr.ru/post/224623/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы