Задать вопрос

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

Нужен пример реализации если это возможно, я никак не могу придумать как это реализовать. Разбил адрес на следующие нетерминалы <локальное часть> | <доменная часть> |<часть после точки>
Далее терминалы "a-z", "0-9", "@", "." "-", "_".
Как это всё вместе соединить ума не приложу.
  • Вопрос задан
  • 348 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Решения вопроса 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/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы