Описание тега happy
Happy - генератор синтаксического анализа в стиле YACC для Haskell
1
ответ
Уменьшить / уменьшить конфликт при введении указателей в мою грамматику
Я работаю над небольшим компилятором, чтобы лучше понять трудности создания собственного языка. Прямо сейчас я нахожусь на стадии добавления функциональности указателя к моей грамматике, но я получил конфликт уменьшения / уменьшения, делая это. Вот …
06 янв '13 в 05:21
1
ответ
Парсинг операторов switch с Happy
Итак, я пытаюсь разобрать код, связывающий операторы переключателя, как это function (a : Boolean) equals (b : Boolean) : Boolean { switch (a) { case true: switch (b) { case true: return (true); case false: return (false); } case false: switch (b) {…
29 апр '11 в 22:14
5
ответов
Как построить Абстрактные деревья синтаксиса из спецификации грамматики в Haskell?
Я работаю над проектом, который включает в себя оптимизацию определенных конструкций в очень небольшом подмножестве Java, формализованном в BNF. Если бы я делал это на Java, я бы использовал комбинацию JTB и JavaCC, которая создает AST. Затем посети…
10 сен '13 в 11:27
1
ответ
Ссылочная переменная в кавычках LLVM
Как вы передаете переменную в квазицитированный раздел? Я использую llvm-quote-general и хотел бы пройти Type в инструкции, которую я строю с помощью квазиквотера. Я могу построить инструкцию только из текста: alloci64 :: Instruction alloci64 = [lli…
11 янв '15 в 09:37
1
ответ
Разрешить конфликт в грамматике бизонов с помощью разделенных пробелами списков выражений + if/then/else
У меня есть следующая грамматика yacc/bison/happy: %token if TokenIf then TokenThen else TokenElse true TokenTrue false TokenFalse %left APP %right IF %% Hungry : NoHungry | Hungry NoHungry %prec APP | if Hungry then Hungry else Hungry %prec IF NoHu…
29 май '18 в 15:40
4
ответа
Есть ли уроки по созданию простого интерпретатора с использованием Alex + Happy?
Я работаю над школьным проектом, где мне нужно создать переводчика для простого языка, используя Alex + Happy в Haskell. Просматривая документацию, я понимаю большую ее часть, но хотел бы увидеть полный пример использования инструментов.
24 июн '10 в 19:18
0
ответов
Счастливое определение функции приоритета и переменная
Я изо всех сил пытался удалить все конфликты s/r из моего парсера сегодня. Мне удалось удалить их всех, кроме одного. Синтаксис моего языка должен быть похож на haskell. И вместо mainУ меня есть выражение верхнего уровня, которое является записью. П…
23 апр '16 в 21:21
2
ответа
Как переписать грамматику для устранения конфликта сдвига-уменьшения (в анализаторе Haskell Happy)
Я пытаюсь определить грамматику для методов (как Java) с помощью генератора парсера Happy LALR 1. MD ::= some_prefix { list(VD) list(S) } 2. VD ::= T I 3. S ::= I = E | I [ E ] = E | etc... 4. T ::= I | byte | int | etc... 5. E ::= INT | E + E | etc…
23 апр '15 в 19:41
2
ответа
Haskell 'let' реализация
Чтение документации на Haskell.Happy и реализация оператора let Exp : let var '=' Exp in Exp { \p -> $6 (($2,$4 p):p) } в документах говорится, что это "функция, которая принимает окружение значений переменных и возвращает вычисленное значение вы…
19 июн '14 в 02:58
1
ответ
Haskell, FreeBSD, Stack, happy: Что можно сделать, если инструмент сборки (в моем случае `happy-1.19.5`) не проходит установку?
Вот ошибки компоновщика, которые я получаю: happy-1.19.5: configure cpphs-1.20.2: download th-reify-many-0.1.6: download time-qq-0.0.1.0: download th-reify-many-0.1.6: configure th-reify-many-0.1.6: build time-qq-0.0.1.0: configure time-qq-0.0.1.0: …
22 июн '17 в 11:49
1
ответ
Haskell - Счастливая ошибка парсера
Я работаю над проектом, который использует генератор счастливого парсера. Вот что я сделал до сих пор: Exp : Exp1 { $1 } Exp1 : Exp1 '+' Term { \p -> $1 p + $3 p } | Exp1 '-' Term { \p -> $1 p - $3 p } | Term { $1 } Term : Term '*' Factor { \p…
27 май '13 в 22:51
1
ответ
Разбор с круглыми скобками и различными типами выражений
Я сейчас пользуюсь happy для синтаксического анализа языка, но я не думаю, что синтаксический анализатор уместен, за исключением того, что я говорю, что это анализатор LALR. Вот небольшой отрывок из грамматики: ArithExpr -> ArithExpr + ArithExpr …
08 май '17 в 06:55
1
ответ
Нуб хочет сделать парсер для маленького языка
Я хочу сделать синтаксический анализатор порадованным языком впускаемых выражений. Например, я хочу разобрать следующую строку: let x = 4 in x*x В университете мы изучаем грамматики атрибутов, и я хочу использовать эти приемы для непосредственного в…
07 дек '13 в 16:56
2
ответа
Как сохранить несколько семантических значений при разборе с Happy/Haskell
Я пытаюсь создать простой лексер / парсер с Alex/Happy в Haskell, и я хотел бы сохранить некоторую информацию о локализации из текстового файла в моем окончательном AST. Мне удалось построить лексер, используя Alex, который строит список токенов с л…
24 июл '10 в 10:55
1
ответ
Как сделать так, чтобы Stack Call Happy, Alex и другие инструменты сборки?
Как часть моего компилятора, мне нужно alex а также happy работать как часть моего процесса сборки. Как Stack поддерживает этот сценарий? Бонус: как я могу зарегистрироваться alex а также happy как зависимости времени компиляции?
02 окт '15 в 00:58
2
ответа
Как мне сопоставить регулярное выражение в парсере Happy?
Я пишу синтаксический анализатор JavaScript с Happy, и мне нужно соответствовать регулярному выражению. Я не хочу полностью анализировать регулярное выражение, просто сохранить его как строку. Соответствующая часть моего AST выглядит так: data Prima…
14 фев '12 в 02:07
0
ответов
Обход и сопоставление с образцом абстрактного синтаксического дерева
Я создал парсер и лексер с Alex и Happy, который создает и абстрагирует синтаксическое дерево синтаксического языка (Solidity). Моя проблема сейчас в том, как я правильно прохожу и сопоставляю определенные аспекты языка. Цель состоит в том, чтобы со…
17 мар '18 в 23:39
1
ответ
Happy & Alex - Предотвращение негативного влияния на общение анализатора и лексера
В настоящее время я пишу парсер для компилятора игрушечного языка, используя Happy & Alex. Так как требуется некоторая форма необязательного макета, я должен изменить состояние Алекса перед соответствием block не-терминал. К сожалению, похоже, что т…
25 мар '17 в 09:57
1
ответ
Как определить ассоциацию по правилу без токенов?
У меня есть следующая минимизированная грамматика Exp : let var '=' Exp in Exp end { App (Fn $2 $6) $4 } | Exp Exp { App $1 $2 } | Exp OpCode Exp { Op $1 Add $3 } | '(' Exp ')' { $2 } | num { Num $1 } | var { Ident $1 } | '\\' var '.' Exp { Fn $2 $4…
19 май '15 в 04:03
1
ответ
Счастлив: уменьшить / уменьшить конфликт
Почему это вызывает предупреждение о сокращении / уменьшении конфликта root : set1 'X' | set2 'X' 'X' set1 : 'A' | 'B' set2 : 'B' | 'C' но следующий в порядке? root : 'A' 'X' | 'B' 'X' | 'B' 'X' 'X' | 'C' 'X' 'X'
26 май '12 в 10:05