2015-08-08 3 views
2

Я строю лексер и парсер с Алексом и Счастливым. Код, который они генерируют, генерирует огромное количество предупреждений с ghc-options: -Wall включен в файл .cabal моего проекта.Как я могу подавить предупреждения в сгенерированном коде?

Это затрудняет поиск реальных предупреждений. Как отключить предупреждения только внутри сгенерированных файлов? Я знаю, что это может быть сделано с помощью прагмы:

{#- GHC_OPTIONS -w -#} 

Но я не могу думать о простом способе придерживаться этого прагмы в верхней части каждого сгенерированного файла, каждый раз, когда они перестроены.

Каков правильный способ сделать это?

+0

Как насчет организации вашего файла cabal, чтобы модули alex и happy были в их собственном компоненте библиотеки и использовали 'ghc-options: -w' для этого компонента? – ErikR

ответ

5

Типичный Алекс файл начинается с некоторым материалом в верхней части - обычно декларация модуля, который будет получать скопированную в созданном файл:

{ 
module Main where 
} 
%wrapper "basic" 
... 

Так просто добавить GHC_OPTIONS прагмы до module Main ... линии, например:

{ 
{-# GHC_OPTIONS -w #-} 
module Main where 
} 
%wrapper "basic" 

и он будет присутствовать в вашем созданном файле. То же самое можно сделать со счастливыми файлами.

 Смежные вопросы

  • Нет связанных вопросов^_^