packages feed

cakyrespa 0.0.11 → 0.0.12

raw patch · 3 files changed

+30/−8 lines, 3 files

Files

cakyrespa.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.6  name:		cakyrespa-version:	0.0.11+version:	0.0.12 stability:	Alpha license:	BSD3 license-file:	LICENSE
src/Language/Lojban/Read.hs view
@@ -10,10 +10,11 @@  import Language.Lojban.Parser hiding ( 	Tag, Sumti, Selbri, KOhA, FA, Brivla, BAI, Number, LI, RelativeClause,-	Time, KU, Linkargs, FIhO, NU, NA, LA, ZOI, ME, JOhI)+	Time, KU, Linkargs, FIhO, NU, NA, LA, ZOI, ME, JOhI, SE) import qualified Language.Lojban.Parser as P import Data.Maybe import Data.Char+import Control.Arrow  data Lojban 	= Bridi Selbri [(Tag, Sumti)]@@ -31,6 +32,7 @@ 	| NotImplementedSelbri String 	| NA Selbri 	| ME Sumti+	| SE Int Selbri 	deriving (Show, Eq)  data Sumti@@ -61,14 +63,25 @@ data Tag 	= FA Int 	| FIhO Selbri-	| BAI String+	| BAI (Maybe String) String 	| Time [String] 	| NotImplementedTag String 	deriving (Show, Eq)  readLojban :: String -> Lojban-readLojban = either (ParseError . show) process . parse+readLojban = processSE . either (ParseError . show) process . parse +processSE :: Lojban -> Lojban+processSE (Bridi (SE n selbri) ss) = processSE $+	Bridi selbri $ map (first $ flipTag n) ss+processSE l = l++flipTag :: Int -> Tag -> Tag+flipTag n (FA f)+	| f == 1 = FA n+	| f == n = FA 1+flipTag _ t = t+ process :: Text -> Lojban process (TopText _ _ [VocativeSumti [(_, v, _)] _ _] Nothing Nothing Nothing) = 	Vocative v@@ -119,7 +132,8 @@  readTag :: P.Tag -> (Maybe Int, Tag) readTag (P.FA (_, f, _) _) = let n = fromJust $ lookup f faList in (Just n, FA n)-readTag (P.BAI _ _ (_, b, _) _ _) = (Nothing, BAI b)+readTag (P.BAI _ Nothing (_, b, _) _ _) = (Nothing, BAI Nothing b)+readTag (P.BAI _ (Just (_, s, _)) (_, b, _) _ _) = (Nothing, BAI (Just s) b) readTag (P.Time _ [((_, t, _), Nothing, Nothing)] _ _) = 	(Nothing, Time [t]) readTag (P.Time _ _ _ ts) = (Nothing, Time $ map readTime ts)@@ -219,7 +233,15 @@ readSelbri (P.NU (_, "nu", _) _ _ _ bridi _ _) = NU $ process bridi readSelbri (P.NA (_, "na", _) _ s) = NA $ readSelbri s readSelbri (P.ME (_, "me", _) _ s _ _ _ _) = ME $ readSumti s+readSelbri (P.SE (_, se, _) _ s) = SE (fromJust $ lookup se seList) $ readSelbri s readSelbri s = NotImplementedSelbri $ "readSelbri: " ++ show s++seList = [+	("se", 2),+	("te", 3),+	("ve", 4),+	("xe", 5)+ ] 	 next :: Int -> [Int] -> Int next n e
src/cakyrespa.hs view
@@ -67,8 +67,8 @@  readRejgau s = do 	KOhA "ko" <- lookup (FA 1) s-	ZOI fp <- lookup (BAI "me'e") s-	tai <- lookup (BAI "tai") s+	ZOI fp <- lookup (BAI Nothing "me'e") s+	tai <- lookup (BAI (Just "se") "tai") s 	case tai of 		LA (Right (Brivla "cakyrespa")) -> return $ SAVEASCAK fp 		LA (Left "syvygyd") -> return $ SAVEASSVG fp@@ -177,7 +177,7 @@  readLAhU2 :: [(Tag, Sumti)] -> Maybe Double readLAhU2 s = do-	LI (Number d) <- lookup (BAI "la'u") s+	LI (Number d) <- lookup (BAI Nothing "la'u") s 	return d  readCrakla :: [(Tag, Sumti)] -> Maybe Command