Alexander Kuklev (akuklev) wrote,
Alexander Kuklev
akuklev

Category:
  • Music:
По надобности пишу конвертер текста в викиформате в HTML.
Впервые в жизни приходится писать не просто парсер, а pragmatic парсер.
Простой парсер — он исходит из того, что файл, который он обрабатывает, отформатирован верно, вложенность тегов правильная, нужные символы поэскейпены. А pragmatic рассчитан на то, что юзер — раздолбай, и пытается несмотря на криворукость юзера разобрать, что же тот имел ввиду.

Маааааааать пионерия, хоспидябожимой.. Какой это ужас! Оказалось, что писать pragmatic-парсеры в несколько раз сложнее, чем обычные, которые исходят из well-formedness.
К счастью, языком написания оказался Perl, на котором я относительно быстро (пара часов работы) накидал инфраструктуру простеньких таблиц парсинга, которые уменьшают объём работы в несколько раз и повышают прозрачность на порядок.

Лучше бы, конечно, использовать что-нибудь, что поддерживает PEG — то есть, рекурсивные регэкспы. Но их поддерживают, к сожалению, всего две софтины — одна под жабу, другая под хаскел. Ни то, ни другое не пойдёт ввиду специфики задачи.

Спать. Всем доброй ночи.
Subscribe

  • (no subject)

    Встретил фотографию толпы футбольных фанатов, и она меня скорее напугала, у меня уж точно нет желания быть там среди них. Но внезапно я понял, что…

  • Прогресс

    Десять дней назад, вторая ступень SpaceX'овского корабля Starship своим ходом слетала своим ходом на десять километров вверх, и усмепшно приземлилась…

  • О водосбережении

    Как известно, питьевая вода во многих странах дефицитный ресурс. И даже в дождливой Германии летом иногда случаются засухи, в результате которых она…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments