Parse_AS.hs revision d183a4514d8a5b6a5d48d15a8dff52d0c96691ea
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder{-
4b0a4c7dea0f67a233dcc42ce9bb18d36de109aeChristian MaederModule : $Header$
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens ElknerCopyright : (c) Till Mossakowski, Wiebke Herding, C. Maeder, Uni Bremen 2004
5ba323da9f037264b4a356085e844889aedeac23Christian MaederLicence : All rights reserved.
c58a94c44b76b072ace930f2126c889c0b64cb2aChristian Maeder
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuMaintainer : hets@tzi.de
ea03c5d09694b4a966fbd19d46cfa5772648d95fChristian MaederStability : provisional
3f69b6948966979163bdfe8331c38833d5d90ecdChristian MaederPortability : portable
4b0a4c7dea0f67a233dcc42ce9bb18d36de109aeChristian Maeder
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder Parser for modal logic extension of CASL
4b0a4c7dea0f67a233dcc42ce9bb18d36de109aeChristian Maeder-}
f3a94a197960e548ecd6520bb768cb0d547457bbChristian Maeder
ea03c5d09694b4a966fbd19d46cfa5772648d95fChristian Maedermodule Modal.Parse_AS where
ea03c5d09694b4a966fbd19d46cfa5772648d95fChristian Maeder
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maederimport Common.AnnoState
502ed7ed7fecd10b6d0c83cdd48a244ec45e840aChristian Maederimport Common.Id
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maederimport Common.Keywords
950e053ba55ac9c7d9c26a1ab48bd00202b29511Christian Maederimport Common.Lexer
81946e2b3f6dde6167f48769bd02c7a634736856Christian Maederimport Common.Token
964d1dce6aa88a14e240a4f2fb81c539d2f834fcChristian Maederimport Modal.AS_Modal
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maederimport Common.Lib.Parsec
afa6848d579d235c9677e1ab477916df8e5ae11aChristian Maederimport CASL.Formula
dc6b48bb46df8e56da3491c98476e6da0d1d5d1dChristian Maederimport CASL.OpItem
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder
b603f34b79bc0992e5d74f484e5bdc9f9c2346c6Christian MaedermodalFormula :: AParser M_FORMULA
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian MaedermodalFormula =
c00adad2e9459b422dee09e3a2bddba66b433bb7Christian Maeder do o <- oBracketT
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder m <- modality []
964d1dce6aa88a14e240a4f2fb81c539d2f834fcChristian Maeder c <- cBracketT
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder f <- formula modal_reserved_words
964d1dce6aa88a14e240a4f2fb81c539d2f834fcChristian Maeder return (Box m f $ toPos o [] c)
964d1dce6aa88a14e240a4f2fb81c539d2f834fcChristian Maeder <|>
9348e8460498ddfcd9da11cd8b5794c06023e004Christian Maeder do o <- asSeparator "<"
fd5d3885a092ac0727fa2436cdfc3b248318ebd8Christian Maeder m <- modality [">"] -- do not consume matching ">"!
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder c <- asSeparator ">"
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder f <- formula modal_reserved_words
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder return (Diamond m f $ toPos o [] c)
f26a1fc3851297e6483cf3fb56e9c0967b8f8b13Christian Maeder
1a38107941725211e7c3f051f7a8f5e12199f03acmaedermodality :: [String] -> AParser MODALITY
502ed7ed7fecd10b6d0c83cdd48a244ec45e840aChristian Maedermodality ks =
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder do t <- term (ks ++ modal_reserved_words)
7de39d39bc1700cc8a9bb9df90b920aad9e18d4aChristian Maeder return $ Term_mod t
c00adad2e9459b422dee09e3a2bddba66b433bb7Christian Maeder <|> return (Simple_mod $ mkSimpleId emptyS)
9348e8460498ddfcd9da11cd8b5794c06023e004Christian Maeder
502ed7ed7fecd10b6d0c83cdd48a244ec45e840aChristian Maederinstance AParsable M_FORMULA where
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder aparser = modalFormula
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder
fd5d3885a092ac0727fa2436cdfc3b248318ebd8Christian Maederrigor :: AParser RIGOR
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maederrigor = (asKey rigidS >> return Rigid)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder <|> (asKey flexibleS >> return Flexible)
7de39d39bc1700cc8a9bb9df90b920aad9e18d4aChristian Maeder
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian MaederrigidSigItems :: AParser M_SIG_ITEM
1a38107941725211e7c3f051f7a8f5e12199f03acmaederrigidSigItems =
23f8d286586ff38a9e73052b2c7c04c62c5c638fChristian Maeder do r <- rigor
9348e8460498ddfcd9da11cd8b5794c06023e004Christian Maeder do itemList modal_reserved_words opS opItem (Rigid_op_items r)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder <|> itemList modal_reserved_words predS predItem (Rigid_pred_items r)
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maederinstance AParsable M_SIG_ITEM where
23f8d286586ff38a9e73052b2c7c04c62c5c638fChristian Maeder aparser = rigidSigItems
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder
7de39d39bc1700cc8a9bb9df90b920aad9e18d4aChristian MaedermKey :: AParser Token
aff01ee50b66032469c232e00c945d1fd4f57d1bChristian MaedermKey = asKey modalityS <|> asKey modalityS
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maeder
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian MaedermBasic :: AParser M_BASIC_ITEM
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian MaedermBasic =
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maeder do c <- mKey
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maeder auxItemList (modal_reserved_words ++ startKeyword)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder [c] simpleId Simple_mod_decl
f454c20b6c126bea7d31d400cc8824b9ee8cc6eaChristian Maeder <|>
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder do t <- asKey termS
e1839fb37a3a2ccd457464cb0dcc5efd466dbe22Christian Maeder c <- mKey
9348e8460498ddfcd9da11cd8b5794c06023e004Christian Maeder auxItemList (modal_reserved_words ++ startKeyword)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder [t, c] (sortId modal_reserved_words) Term_mod_decl
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maederinstance AParsable M_BASIC_ITEM where
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder aparser = mBasic
27912d626bf179b82fcb337077e5cd9653bb71cfChristian Maeder