Ticket #4849: IsaParse.hs

File IsaParse.hs, 710 bytes (added by igloo, 8 years ago)
Line 
1
2module Isabelle.IsaParse (
3          theoryBody
4       ) where
5
6import Control.Monad
7import Parsec (Parser, (<|>), skipMany, space, string)
8
9isaSkip :: Parser ()
10isaSkip = skipMany space
11
12lexS :: String -> Parser String
13lexS str = (<< isaSkip) (string str)
14
15theoryBody :: Parser String
16theoryBody = lexS "wibble1"
17         <|> lexS "wibble2"
18         <|> lexS "wibble3"
19         <|> lexS "wibble4"
20         <|> lexS "wibble4"
21         <|> lexS "wibble5"
22         <|> lexS "wibble6"
23         <|> lexS "wibble7"
24         <|> lexS "wibble8"
25         <|> lexS "wibbleA"
26         <|> lexS "wibbleB"
27         <|> lexS "wibbleC"
28         <|> lexS "wibbleD"
29
30(<<) :: Monad m => m a -> m b -> m a
31(<<) = liftM2 const
32