{-# LANGUAGE Rank2Types, DeriveDataTypeable #-}

module Language.Astview.Parser where

import Data.Generics (Data,Typeable)
import Data.Tree

data ParseError = ParseError
                deriving (Show,Data,Typeable)

-- | consists of a unique name, a list of extensions and the parse 
-- function.
data Parser = Parser 
  { name :: String -- ^unique name
  , exts  :: [String] -- ^file extensions assotiated with 
  , tree :: String -> Tree String
  } deriving (Typeable)

instance Eq Parser where
  Parser n1 _ _ == Parser n2 _ _ = n1 ==n2