0
ответов

Каковы преимущества аппликативного синтаксического анализа над монадическим?

Похоже, существует консенсус, что вы должны использовать Parsec как аппликатив, а не как монаду . Каковы преимущества аппликативного анализа над монадическим? стиль производительность абстракция ...
вопрос задан: 22 October 2011 19:01
0
ответов

Parsec - ошибка «комбинатор 'many' применен к синтаксическому анализатору, который принимает пустую строку»

Я пытаюсь написать синтаксический анализатор с использованием Parsec, который будет анализировать грамотный Haskell файлы, например следующие: Классическая программа Hello, world. \ begin {code} main = putStrLn "Hello, world" \ end {code} ...
вопрос задан: 13 October 2011 12:16
0
ответов

Есть ли haskell EDSL для написания лексеров?

Смешивание фаз лексера и синтаксического анализа в одной фазе иногда делает синтаксические анализаторы Parsec менее удобочитаемыми, но также замедляет их. Одно из решений - использовать Alex в качестве токенизатора, а затем Parsec в качестве парсера ...
вопрос задан: 13 October 2011 09:41
0
ответов

Можно ли выразить chainl1, используя аппликатив?

Можно ли выразить комбинатор chainl1 из Parsec, не используя экземпляр Monad, определенный parsec? chainl1 p op = do x <- p rest x где rest x = do f <- op ...
вопрос задан: 10 October 2011 23:00
0
ответов

Каковы преимущество использования генератора парсеров, как счастливого В отличие от использования комбинаторов парсеров?

Чтобы узнать, как писать и анализировать контекстную грамматику, которую я хочу выбрать инструмент. Для Haskell есть два больших варианта: happy, который генерирует анализатор из описания грамматики и * Parsec, который ...
вопрос задан: 1 September 2011 16:10
0
ответов

Как использовать Control.Monad.State с Parsec?

Я удивлен, что не смог найти никакой информации по этому поводу. Я, должно быть, единственный человек, у которого с этим проблемы. Итак, допустим, у меня есть счетчик тире. Я хочу, чтобы он подсчитал количество тире в ...
вопрос задан: 29 July 2011 20:22
0
ответов

Тривиальный пример parsec приводит к ошибке типа

Я пытаюсь получить этот простой код parsec для компиляции import Text.Parsec simple = letter, но я продолжаю получать эту ошибку Нет экземпляра для (Stream s0 m0 Char), возникающего из-за использования `letter ' Возможно ...
вопрос задан: 17 July 2011 10:24
0
ответов

Состояние пользователя в Parsec

Я анализирую выражение с помощью Parsec и хочу отслеживать переменные в этих выражениях, используя состояние пользователя в парсеке. К сожалению, я не совсем понимаю, как это сделать. Учитывая следующее ...
вопрос задан: 25 June 2011 11:50
0
ответов

Векторы схемы синтаксического анализа в haskell с использованием массивов

Я пытаюсь написать себе схему за 48 часов, и как кто-то новичок в haskell это довольно сложно. В настоящее время я работаю над проблемой, в которой я должен добавить возможность синтаксического анализа ...
вопрос задан: 23 June 2011 19:33
0
ответов

Сигнатура типа функции Parsec "parse" и класса "Stream"

Что означает ограничение (Stream s Identity t) означает в следующем объявлении типа? parse :: (Stream s Identity t) => Parsec s () a -> SourceName -> s -> Either ParseError a What is ...
вопрос задан: 17 June 2011 02:38
0
ответов

Неожиданный конец ввода в парсеке

Я хочу проанализировать файл следующим образом: 66: 3 3: 4 329: 2 101: 3 495: 4 55: 5 268: 5 267: 2 242: 4 262: 1 861: 1 Мой код выглядит следующим образом: getTestData :: String -> IO [[(Int, Int)]] getTestData ...
вопрос задан: 4 June 2011 07:31
0
ответов

Рекурсивные грамматики в FParsec

Я решил проверить FParsec и попытался написать синтаксический анализатор для λ выражения. Как оказалось, рвение затрудняет рекурсивный синтаксический анализ. Как я могу это решить? Код: открытый тип FParsec λExpr = ...
вопрос задан: 31 May 2011 10:29
0
ответов

Есть ли способ предотвратить использование новой строки лексемой в Parsec?

Все парсеры в Text.Parsec .Token вежливо используйте лексему, чтобы съесть пробелы после токена. К сожалению для меня, пробелы включают новые строки, которые я хочу использовать как терминаторы выражений. Является ли ...
вопрос задан: 15 April 2011 03:50
0
ответов

Путаница в монадических типах

Я прохожу курс "Напиши себе схему на Haskell". Это отличный учебник, но я наткнулся на стену в одном из упражнений по разбору: parseNumber :: Parser LispVal parseNumber = liftM (Number . ...
вопрос задан: 16 March 2011 02:52
0
ответов

Анализ текста с дополнительными данными в конце

Обратите внимание, что после публикации этого вопроса мне удалось найти решение самостоятельно. Мой окончательный ответ смотрите в конце этого вопроса. В данный момент я работаю над небольшим парсером для организационного режима ...
вопрос задан: 16 February 2011 16:14
0
ответов

Может синтаксический анализатор комбинаторы должны быть эффективными?

Около 6 лет назад я протестировал свои собственные комбинаторы синтаксического анализатора в OCaml и обнаружил, что они были примерно в 5 раз медленнее, чем генераторы синтаксического анализатора, которые предлагались в то время. Я недавно вернулся к это
вопрос задан: 30 December 2010 17:27
0
ответов

Haskell Parsec и неупорядоченные свойства

Я пытаюсь использовать Parsec для анализа чего-то вроде этого: property :: CharParser SomeObject property = do name parameters value return SomeObjectInstance {заполните записи здесь} Я ...
вопрос задан: 14 September 2010 04:59