| 1 | |
|---|
| 2 | module Isabelle.IsaParse ( |
|---|
| 3 | theoryBody |
|---|
| 4 | ) where |
|---|
| 5 | |
|---|
| 6 | import Control.Monad |
|---|
| 7 | import Parsec (Parser, (<|>), skipMany, space, string) |
|---|
| 8 | |
|---|
| 9 | isaSkip :: Parser () |
|---|
| 10 | isaSkip = skipMany space |
|---|
| 11 | |
|---|
| 12 | lexS :: String -> Parser String |
|---|
| 13 | lexS str = (<< isaSkip) (string str) |
|---|
| 14 | |
|---|
| 15 | theoryBody :: Parser String |
|---|
| 16 | theoryBody = 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 |
|---|