content: {- |
  Module      :  $Id$
  Description :  testing mere CASL basic specs
  Copyright   :  (c) Christian Maeder, Uni Bremen 2002-2004
  License     :  GPLv2 or higher, see LICENSE.txt
  
  Maintainer  :  Christian.Maeder@dfki.de
  Stability   :  experimental
  Portability :  portable
  
  test some parsers (and printers)
  -}
  
  module Main where
  
  import CASL.Formula
  import CASL.AS_Basic_CASL
  import CASL.ToDoc ()
  import CASL.Parse_AS_Basic
  import Common.AnnoState
  import Common.RunParsers
  import CASL.RunMixfixParser
  import CASL.RunStaticAna
  
  main :: IO ()
  main = exec lineParser fileParser
  
  lineParser, fileParser :: [(String, StringParser)]
  lineParser = [
   ("Terms", fromAParser (term [] :: AParser () (TERM ()))),
   ("Formula", fromAParser (formula [] :: AParser () (FORMULA ()))),
   ("SortItem", fromAParser (sortItems [] :: AParser () (SIG_ITEMS () ()))),
   ("OpItem", fromAParser (opItems [] :: AParser () (SIG_ITEMS () ()))),
   ("PredItem", fromAParser (predItems [] :: AParser () (SIG_ITEMS () ()))),
   ("MixfixTerms", toStringParser resolveTerm),
   ("MixfixFormula", toStringParser resolveForm),
   ("ShowTerms", fromAParser testTerm),
   ("ShowTermsMix", toStringParser testTermMix),
   ("ShowForm", fromAParser testFormula),
   ("ShowFormMix", toStringParser testFormulaMix)]
  
  fileParser = [("BasicSpec", fromAParser (plainBasicSpec
                                           :: AParser () (BASIC_SPEC () () ())))
                , ("analysis", toStringParser runAna)
                , ("signature", toStringParser getSign)
                , ("sentences", toStringParser getProps)
               ]
  