metaclass: (Default)
[personal profile] metaclass
Таки дорвался использовать Monadic Parser Combinators. Достаточно удобно, можно думать категориями Parsec-а, но ошибки компилятора или стеки вызовов при рунтайм-ошибках выглядят ужасающе.
Кстати, по моему, там TValue[] в Rep и Rep1 надо на IEnumerable заменить

Пришлось таки сделать иммутабельный список (как обычный хаскелевый) для входных токенов, а то по ссылке автор там хитро обошел - каждый раз при получении символа из строки создает новую подстроку-хвост. Как-то нехорошо это выглядит. А с обычными мутабельными итераторами дотнета это вообще работать по определению не будет.

Теперь думаю, куда бы это контекст со списком парсеров(которые изменяются по ходу разбора) засунуть. Тут подсказали стрелки, но как оные стрелки впихнуть в дотнет и LINQ это отдельный вопрос. Наверно, имеет смысл список парсеров (вернее map идентификатор -> парсер) поселить вместе со входным списком токенов и наколбасить хитрых парсеров, которые кроме того, что потребляют токены, еще и меняют список.

Ну и еще совсем непонятно, как это все будет работать в отсутствие ленивости и оптимизации хвостовых вызовов.

Date: 2010-01-10 11:07 am (UTC)
From: [identity profile] permea-kra.livejournal.com
Можно ткнуть пальцем в статью про парсинг на стрелках?

Date: 2010-01-10 11:38 am (UTC)
From: [identity profile] metaclass.livejournal.com
По ссылкам вчера добрался до статьи про нотацию для стрелок: http://www.soi.city.ac.uk/~ross/papers/notation.html

Короче, с 17 страниц меня сморил сон с кошмарами про парсеры, стрелки и дотнет, а сегодня я продолжил читать дальше, дошел до нотации c -> -< и понял, что если я чего-нибудь такое привнесу в продакшен, это будет плач, скрежет зубовный и вакансии для хаскелистов, когда я в дурку таки слягу :)

Date: 2010-01-10 11:52 am (UTC)
From: [identity profile] lionet.livejournal.com
Это дерьмовая статья такая. Не унывай. Забей лучше.

Date: 2010-01-10 11:56 am (UTC)
From: [identity profile] metaclass.livejournal.com
Не, статья вроде нормальная, т.е. все понятно.
Но мысль "объяснить стрелки свежепринятому на работу студенту" у меня вызывает приступы необъяснимого злорадства.
Очень хочется посмотреть на лицо руководства, когда оно поймет, что из-за экономии на закупку пару десятков обезъянокодеров оно оказалось с проектом, на который придется выписывать гуру из академической среды и мирится с тем, что у него в головах зловещие мертвецы и змеи :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 6th, 2025 08:39 pm
Powered by Dreamwidth Studios