169 похожих чатов

Здравствуйте, вопрос про FParsec, такой комбинатор уйдёт в бесконечную рекурсию

да? как это можно исправить?

10 ответов

18 просмотров

в целом для операций там есть готовое решение, пробовал его или тебя интересует теоретическая сторона вопроса?

Sasha Kryukov
вы про chainl1?

http://www.quanttec.com/fparsec/reference/operatorprecedenceparser.html#

Рекомендую переделать из E ::= E + A в E ::= A + E а развернуть потом руками

TOV_MULTIMASSO
Рекомендую переделать из E ::= E + A в E ::= A + E...

Disregard that, встроенные средства фпарсека лучше

Sasha-Kryukov Автор вопроса
Ayrat Hudaygulov
http://www.quanttec.com/fparsec/reference/operator...

при парсинге оператор он должен возвращать (a->a->a), а мне нужно ещё изменять состояние парсера на основе операндов

Sasha Kryukov
при парсинге оператор он должен возвращать (a->a->...

рекурсия может быть взаимная между N функциями

https://github.com/habib-sadullaev/Equal/blob/master/src/Equal/LogicalChain.fs#L32 вот пример, как можно сделать нечто подобное. если я правильно понял. вся суть createParserForwardedToRef()

habib sadullaev
https://github.com/habib-sadullaev/Equal/blob/mast...

дак прям в родном примере (тот самый жсон парсер) https://github.com/stephan-tolksdorf/fparsec/blob/156cbd751fac67ca7cc04cf661710f1f90a216a5/Samples/JSON/parser.fs#L61

Ayrat Hudaygulov
дак прям в родном примере (тот самый жсон парсер) ...

о, точно. уже и забыл. откуда-то же я взял это. видимо, отсюда и брал :)

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта