решение или обходные пути для модулей синтаксического анализа haskell-src-exts при сбое CPP - PullRequest
1 голос
/ 11 февраля 2012

Я пытаюсь сделать несколько разборов исходных файлов haskell, используя haskell-src-exts, но столкнулся с проблемой в первом файле, на котором я тестировал.Вот первый бит:

{-# LANGUAGE CPP, MultiParamTypeClasses, ScopedTypeVariables #-}
{-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
----------------------------------------------------------------------
-- |
-- Module      :  FRP.Reactive.Fun
-- Copyright   :  (c) Conal Elliott 2007
-- License     :  GNU AGPLv3 (see COPYING)
-- 
-- Maintainer  :  conal@conal.net
-- Stability   :  experimental
-- 
-- Functions, with constant functions optimized, with instances for many
-- standard classes.
----------------------------------------------------------------------

module FRP.Reactive.Fun (Fun, fun, apply, batch) where

import Prelude hiding
  ( zip, zipWith
#if __GLASGOW_HASKELL__ >= 609
                , (.), id
#endif
  )
#if __GLASGOW_HASKELL__ >= 609
import Control.Category
#endif

И код, который я использую для проверки:

*Search> f <- parseFile "/tmp/file.hs"
*Search> f
ParseFailed (SrcLoc {srcFilename = "/tmp/file.hs", srcLine = 19, srcColumn = 1}) "Parse error: ;"

Кажется, проблема в условных разделах CPP, но кажется, что CPP поддерживаемое расширение .Я использую haskell-src-exts-1.11.1 с ghc 7.0.4

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

1 Ответ

1 голос
/ 11 февраля 2012

Возможно использовать cpphs , чтобы сначала "оценить" операторы препроцессора?

Кроме того, это список известных расширений, скопированный (и расширенный) из Cabal ; haskell-src-exts не поддерживает CPP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...