Вопросы по теме 'parsec'
Разбор синтаксиса на основе отступов в Haskell Parsec
Я пытаюсь разобрать язык на основе отступов (например, Python, сам Haskell, Boo, YAML) в Haskell с использованием Parsec. Я видел библиотеку IndentParser, и похоже, что это идеальное совпадение, но я не могу понять, как превратить мой TokenParser в...
2594 просмотров
schedule
15.07.2022
Функция парсинга в haskell
Я новичок в Haskell и пытаюсь разбирать выражения. Я узнал о Parsec, а также нашел несколько статей, но, похоже, не понимаю, что мне нужно делать. Моя проблема в том, что я хочу дать выражение типа «x ^ 2 + 2 * x + 3», а результатом будет функция,...
2683 просмотров
schedule
03.02.2023
Parsec против Yacc / Bison / Antlr: зачем и когда использовать Parsec?
Я новичок в Haskell и Parsec. После прочтения главы 16 Использование Parsec of Real World Haskell у меня в голове возник вопрос : Почему и когда Parsec лучше других генераторов парсеров, таких как Yacc / Bison / Antlr?
Насколько я понимаю,...
10692 просмотров
schedule
30.11.2022
Ошибка синтаксического анализа при вводе '‹-' внутри блока do?
Я пытаюсь выполнить синтаксический анализ в Haskell, используя Parsec. У меня есть несколько парсеров в моем коде, но я получаю сообщение об ошибке на одном из них:
expression2 =
do (operator lexer "|"
a <- alternate
as...
1348 просмотров
schedule
09.10.2022
Parsec - комбинатор ошибок 'many' применяется к синтаксическому анализатору, который принимает пустую строку
Я пытаюсь написать синтаксический анализатор с использованием Parsec, который будет анализировать грамотные файлы Haskell, например следующие:
The classic 'Hello, world' program.
\begin{code}
main = putStrLn "Hello, world"
\end{code}
More...
2602 просмотров
schedule
09.06.2023
Parsec соответствует одному символу Юникода
Я пытаюсь создать синтаксический анализатор (с помощью parsec), который анализирует токены, разделенные символами новой строки, запятыми, точками с запятой и тире Unicode (ndash и mdash):
authorParser = do
name <- many1 (noneOf [',', ':',...
997 просмотров
schedule
26.06.2023
Отладка парсека
Я работаю с parsec, и у меня проблемы с отладкой кода. Например, я могу установить точку останова в ghci, но я не уверен, как увидеть, сколько входных данных было использовано, или что-то в этом роде.
Существуют ли инструменты/рекомендации,...
2422 просмотров
schedule
16.01.2023
Parsec: предиктивный анализ
У меня есть только несколько навыков работы с haskell, и мне нужна помощь, как реализовать прогнозирующий синтаксический анализ (LL*) с помощью parsec.
У меня есть контекстно-свободная грамматика:
<a> ::= identifier | identifier '('...
334 просмотров
schedule
28.05.2023
Является ли парсек альтернативой ANTLR?
Я планирую создать небольшой язык программирования для моей конкретной цели. Я читал, что ANTLR3 хорош для такой цели. Позвольте мне спросить, является ли Parsec возможной альтернативой ANTLR3 или относится к другой категории.
Большое Вам спасибо.
408 просмотров
schedule
17.12.2023
Есть ли в F# новый тип Haskell?
Новая библиотека: XParsec .
Этот вопрос привел к независимой от типа потока реализации parsec в F# 3.0, вдохновленной FParsec, освобожденной от CharStreams и упрощенной: http://corsis.github.com/XParsec/
В вдохновленной FParsec простой...
1263 просмотров
schedule
19.09.2022
Это идиоматическое использование Text.Parsec?
Мое использование Text.Parsec немного заржавело. Если я просто хочу вернуть совпадающую строку, это идиоматично?
category :: Stream s m Char => ParsecT s u m [Char]
category = concat <$> (many1 $ (:) <$>...
588 просмотров
schedule
18.01.2023
Разбирать рекурсивные данные с помощью parsec
import Data.Attoparsec.Text.Lazy
import Data.Text.Lazy.Internal (Text)
import Data.Text.Lazy (pack)
data List a = Nil | Cons a (List a)
list :: Text
list = pack $ unlines
[ "0"
, "1"
, "2"
, "5"
]
Как можно реализовать парсер List...
1731 просмотров
schedule
03.11.2022
Проблемы с пустым списком при использовании parsec
Вот часть кода, который вызывает очень странные ошибки в зависимости от того, что анализируется после маркера emptyList в целевом файле.
data Express = Seq [Express]
| ID String
| Num Integer
| BoolConst...
113 просмотров
schedule
11.06.2023
Неожиданный символ Parsec после вызова функции
Вот мой код: http://hpaste.org/86353 . Я строю с GHC на Windows.
Приведенный выше код производит следующий вывод в моем тестовом файле:
parse error at (line 3, column 5):
unexpected " "
expecting "{", "if" or identifier
Вот мой тестовый...
177 просмотров
schedule
01.06.2022
Ошибки синтаксического анализа пространства парсека Haskell
у меня есть
stringparse = mstring
<$> char '"'
<*> (many alphaNum <|> many space)
<*> char '"'
where mstring a b c = [a] ++ b ++ [c]
Когда я делаю,
parse stringparse "" "\"hello\"...
231 просмотров
schedule
28.04.2023
аттопарсек или парсек в haskell
Мне нужно проанализировать некоторые файлы и преобразовать их в некоторые предопределенные типы данных.
Haskell, похоже, предоставляет для этого два пакета:
attoparsec
парсек
В чем разница между ними и какой из них лучше подходит...
10214 просмотров
schedule
13.04.2022
Как лучше всего использовать WriterT с Parsec?
Вопрос нуба по Haskell.
Я весело провел время, написав несколько парсеров как с Parsec, так и с AttoParsec. Теперь я хочу собрать информацию в процессе синтаксического анализа (по сути, построить таблицу символов), и использование преобразователя...
325 просмотров
schedule
18.12.2023
Комбинаторы parsec и Text/ByteString
Парсер/комбинатор Haskell Parsec поддерживает входные потоки от Data.ByteString и Data.Text . Есть ли планы по добавлению дополнительной поддержки этих типов в будущих выпусках? Комбинаторы (many, sepby, string...), кажется, разработаны для...
329 просмотров
schedule
18.10.2022
Используйте Parsec для анализа нескольких разных типов полей.
У меня есть небольшой синтаксический анализатор, который может анализировать значения, разделенные табуляцией (TSV), в строки. Я хочу переключиться на проверку чисел и логических значений (указанных как «Y» или «N») в исходном файле.
Вот старая...
99 просмотров
schedule
23.06.2023
Перевод производства грамматики в Parsec
Я пытаюсь преобразовать следующую грамматическую продукцию
callExpr:
primaryExpr
| callExpr primaryExpr
к выражению Parsec в Haskell.
Очевидно, проблема в том, что он леворекурсивный, поэтому я пытаюсь разобрать его в стиле...
171 просмотров
schedule
02.07.2022