May. 23rd, 2005

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

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

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

Спать. Всем доброй ночи.
akuklev: (Default)
А у нас уже почти светло.
С улицы пахнет свежестью, весной и зелёными листьями.
Пью кофе, заедаю бутербродом, посыпанным сахаром.
Слушаю np, читаю френдленту. Хорошо тут. :-)

Надо вот только решить — идти всё-таки спать или размяться и пойти прогуляться по утреннему городу.

December 2016

S M T W T F S
    123
456789 10
11121314151617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2025 09:33 pm
Powered by Dreamwidth Studios