Parse_AS.hs revision d183a4514d8a5b6a5d48d15a8dff52d0c96691ea
4b0a4c7dea0f67a233dcc42ce9bb18d36de109aeChristian MaederModule : $Header$
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens ElknerCopyright : (c) Till Mossakowski, Wiebke Herding, C. Maeder, Uni Bremen 2004
5ba323da9f037264b4a356085e844889aedeac23Christian MaederLicence : All rights reserved.
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuMaintainer : hets@tzi.de
ea03c5d09694b4a966fbd19d46cfa5772648d95fChristian MaederStability : provisional
3f69b6948966979163bdfe8331c38833d5d90ecdChristian MaederPortability : portable
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder Parser for modal logic extension of CASL
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)
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)
1a38107941725211e7c3f051f7a8f5e12199f03acmaedermodality :: [String] -> AParser MODALITY
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder do t <- term (ks ++ modal_reserved_words)
7de39d39bc1700cc8a9bb9df90b920aad9e18d4aChristian Maeder return $ Term_mod t
c00adad2e9459b422dee09e3a2bddba66b433bb7Christian Maeder <|> return (Simple_mod $ mkSimpleId emptyS)
502ed7ed7fecd10b6d0c83cdd48a244ec45e840aChristian Maederinstance AParsable M_FORMULA where
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maeder aparser = modalFormula
fd5d3885a092ac0727fa2436cdfc3b248318ebd8Christian Maederrigor :: AParser RIGOR
4561227a776bdf0ab679b19fb92f1eaaed8786f7Christian Maederrigor = (asKey rigidS >> return Rigid)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder <|> (asKey flexibleS >> return Flexible)
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)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maederinstance AParsable M_SIG_ITEM where
23f8d286586ff38a9e73052b2c7c04c62c5c638fChristian Maeder aparser = rigidSigItems
7de39d39bc1700cc8a9bb9df90b920aad9e18d4aChristian MaedermKey :: AParser Token
aff01ee50b66032469c232e00c945d1fd4f57d1bChristian MaedermKey = asKey modalityS <|> asKey modalityS
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian MaedermBasic :: AParser M_BASIC_ITEM
54ff63bb3b23ef18efbdc51b053a2ca6f348329aChristian Maeder auxItemList (modal_reserved_words ++ startKeyword)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder [c] simpleId Simple_mod_decl
1a38107941725211e7c3f051f7a8f5e12199f03acmaeder do t <- asKey termS
9348e8460498ddfcd9da11cd8b5794c06023e004Christian Maeder auxItemList (modal_reserved_words ++ startKeyword)
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder [t, c] (sortId modal_reserved_words) Term_mod_decl
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maederinstance AParsable M_BASIC_ITEM where
0be2d0cfd911d313e7e941edbc77f95052c8c19bChristian Maeder aparser = mBasic