packages feed

cakyrespa 0.0.6 → 0.0.7

raw patch · 3 files changed

+96/−4 lines, 3 filesdep +yjsvgdep ~gluturtle

Dependencies added: yjsvg

Dependency ranges changed: gluturtle

Files

cakyrespa.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.6  name:		cakyrespa-version:	0.0.6+version:	0.0.7 stability:	Alpha license:	BSD3 license-file:	LICENSE@@ -17,10 +17,14 @@ 	. 	This is alpha version. +source-repository	head+    type:	git+    location:	git://github.com/YoshikuniJujo/cakyrespa.git+ executable	cakyrespa     hs-source-dirs:	src     main-is:		cakyrespa.hs     other-modules:	Language.Lojban.Read     build-depends:	base >3 && <5, lojbanParser >= 0.1.5,-        gluturtle >= 0.0.9, GLUT+        gluturtle >= 0.0.10, GLUT, yjsvg     ghc-options:	-Wall
src/Language/Lojban/Read.hs view
@@ -10,7 +10,7 @@  import Language.Lojban.Parser hiding ( 	Tag, Sumti, Selbri, KOhA, FA, Brivla, BAI, Number, LI, RelativeClause,-	Time, KU, Linkargs, FIhO, NU)+	Time, KU, Linkargs, FIhO, NU, NA, LA, ZOI, ME) import qualified Language.Lojban.Parser as P import Data.Maybe import Data.Char@@ -29,6 +29,8 @@ 	| Linkargs Selbri Sumti 	| NU Lojban 	| NotImplementedSelbri String+	| NA Selbri+	| ME Sumti 	deriving (Show, Eq)  data Sumti@@ -39,6 +41,7 @@ 	| LI Mex 	| KU 	| SFIhO Selbri Sumti+	| ZOI String 	| NotImplementedSumti String 	deriving (Show, Eq) @@ -92,6 +95,8 @@ 		(process $ t) 		(process $ u) process (P.Selbri selbri) = Bridi (readSelbri selbri) []+process (P.SelbriTailTerms selbri ts _ _) =+	Bridi (readSelbri selbri) $ processTagSumti [] ts process t = NotImplemented $ "process: " ++ show t  processTagSumti :: [P.Sumti] -> [P.Sumti] -> [(Tag, Sumti)]@@ -113,6 +118,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.Time _ [((_, t, _), Nothing, Nothing)] _ _) =+	(Nothing, Time [t]) readTag (P.Time _ _ _ ts) = (Nothing, Time $ map readTime ts) readTag t = (Nothing, NotImplementedTag $ "readTag: " ++ show t) @@ -133,12 +140,20 @@ readSumti (P.KOhA (_, k, _) _) = KOhA k readSumti (LALE (_, "lo", _) _ st _ _) = LO selbri relative 	where (selbri, relative) = readSumtiTail st+readSumti (LALE (_, "la", _) _ st _ _) = LA $ Right selbri+	where (selbri, _relative) = readSumtiTail st+readSumti (P.LA (_, "la", _) _ _ [(_, n, _)] _) = LA $ Left n readSumti (P.LI _ _ m _ _) = LI $ readMex m readSumti (P.KU _ _) = KU readSumti (TagSumti (P.FIhO (_, "fi'o", _) _ selbri _ _) sumti) = 	SFIhO (readSelbri selbri) (readSumti sumti)+readSumti (P.ZOI _ "zoi" ws _ _) = ZOI $ processZOI $ concat ws readSumti s = NotImplementedSumti $ "readSumti: " ++ show s +processZOI :: String -> String+processZOI ('.' : str) = let ('.' : s) = reverse str in+	dropWhile isSpace $ reverse $ dropWhile isSpace s+ readMex :: Operand -> Mex readMex (P.Number n _ _) = readNumber n readMex o = NotImplementedMex $ "readMex: " ++ show o@@ -198,6 +213,8 @@ readSelbri (P.Linkargs selbri (BE (_, "be", _) _ sumti _ _ _)) = 	Linkargs (readSelbri selbri) (readSumti sumti) 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 s = NotImplementedSelbri $ "readSelbri: " ++ show s 	 next :: Int -> [Int] -> Int
src/cakyrespa.hs view
@@ -2,6 +2,7 @@  import Graphics.UI.GLUT hiding (R, Repeat) import Graphics.UI.GLUT.Turtle+import Text.XML.YJSVG  import Language.Lojban.Read @@ -28,15 +29,57 @@ pcmd p = case p of 	(Vocative "co'o") -> COhO 	(TenseGI "ba" b c) -> Commands (pcmd b) (pcmd c)+	b@(Bridi (Brivla "tcidu") s) -> fromMaybe (Unknown b) $ readTcidu s+	b@(Bridi (Brivla "rejgau") s) -> fromMaybe (Unknown b) $ readRejgau s+	b@(Bridi (Brivla "viska") s) -> fromMaybe (Unknown b) $ readViska s+	b@(Bridi (NA (Brivla "viska")) s) -> fromMaybe (Unknown b) $ readNAViska s+	b@(Bridi (Brivla "cisni") s) -> fromMaybe (Unknown b) $ readCisni s 	b@(Bridi (Brivla "xruti") s) -> fromMaybe (Unknown b) $ readXruti s 	b@(Bridi (Brivla "rapli") s) -> fromMaybe (Unknown b) $ readRapli s 	b@(Bridi (Brivla "carna") s) -> fromMaybe (Unknown b) $ readCarna s 	b@(Bridi (Brivla "crakla") s) -> fromMaybe (Unknown b) $ readCrakla s 	b@(Bridi (Brivla "rixykla") s) -> fromMaybe (Unknown b) $ readRixykla s-	b@(Bridi (Brivla "pilno") s) -> fromMaybe (Unknown b) $ readPilno s+	b@(Bridi (Brivla "pilno") s) ->+		fromMaybe (Unknown b) $ readBAPilno s+	b@(Bridi (NA (Brivla "pilno")) s) -> fromMaybe (Unknown b) $ readNAPilno s 	b@(Bridi (Brivla "clugau") s) -> fromMaybe (Unknown b) $ readClugau s 	r -> Unknown r +readTcidu s = do+	KOhA "ko" <- lookup (FA 1) s+	LA (Right (ME (ZOI fp))) <- lookup (FA 3) s+	return $ READFILE fp++readRejgau s = do+	KOhA "ko" <- lookup (FA 1) s+	ZOI fp <- lookup (BAI "me'e") s+	tai <- lookup (BAI "tai") s+	case tai of+		LA (Right (Brivla "cakyrespa")) -> return $ SAVEASCAK fp+		LA (Left "syvygyd") -> return $ SAVEASSVG fp+		s -> error $ show s++readViska :: [(Tag, Sumti)] -> Maybe Command+readViska s = do+	KOhA "ko" <- lookup (FA 2) s+	return VISKA++readNAViska :: [(Tag, Sumti)] -> Maybe Command+readNAViska s = do+	KOhA "ko" <- lookup (FA 2) s+	return NAVISKA++readNAPilno :: [(Tag, Sumti)] -> Maybe Command+readNAPilno s = do+	KOhA "ko" <- lookup (FA 1) s+	return NAPILNOLOPENBI++readCisni :: [(Tag, Sumti)] -> Maybe Command+readCisni s = do+	LI (Number n) <- lookup (FA 1) s+	KOhA "ko" <- lookup (FA 2) s+	return $ CISNI n+ readXruti :: [(Tag, Sumti)] -> Maybe Command readXruti s = do 	KOhA "ko" <- lookup (FA 1) s@@ -56,6 +99,12 @@ 		(False, True) -> return COhUCLUGAU 		_ -> fail "bad" +readBAPilno :: [(Tag, Sumti)] -> Maybe Command+readBAPilno s = do+	cm <- readPilno s+	if (Time ["ba"], KU) `elem` s then return cm+		else return $ Commands cm PILNOLOPENBI+ readPilno :: [(Tag, Sumti)] -> Maybe Command readPilno s = do 	KOhA "ko" <- lookup (FA 1) s@@ -78,6 +127,7 @@ 			(Brivla skari) _))) _ -> do 			(r, g, b) <- lookup skari skaste 			return $ BURSKA r g b+		LO (Brivla "penbi") Nothing -> return PILNOLOPENBI 		_ -> return $ UnknownSelpli selpli  skaste :: [(String, (Int, Int, Int))]@@ -147,6 +197,14 @@ 	| Commands Command Command 	| Repeat Int Command 	| XRUTI+	| CISNI Double+	| NAPILNOLOPENBI+	| PILNOLOPENBI+	| NAVISKA+	| VISKA+	| SAVEASSVG FilePath+	| SAVEASCAK FilePath+	| READFILE FilePath 	| COhO | Unknown Lojban | ParseErrorC 	| UnknownSelpli Sumti 	deriving Show@@ -164,10 +222,23 @@ processInput _ t COhACLUGAU = beginfill t >> return True processInput _ t COhUCLUGAU = endfill t >> return True processInput _ t XRUTI = undo t >> return True+processInput _ t (CISNI s) = shapesize t s s >> return True+processInput _ t NAPILNOLOPENBI = penup t >> return True+processInput _ t PILNOLOPENBI = pendown t >> return True+processInput _ t NAVISKA = hideturtle t >> return True+processInput _ t VISKA = showturtle t >> return True processInput _ _ COhO = return False processInput f t (Commands c d) = processInput f t c >> processInput f t d processInput f t (Repeat n c) = sequence_ (replicate n (processInput f t c)) >> 	return True+processInput _ t (SAVEASSVG fp) = do+	w <- windowWidth t+	h <- windowHeight t+	svg <- getSVG t+	writeFile fp $ showSVG w h svg+	return True+processInput _ t (SAVEASCAK fp) = inputs t >>= writeFile fp . show >> return True+processInput _ t (READFILE fp) = readFile fp >>= runInputs t . read >> return True processInput f _ u@(Unknown _) = do 	outputString f ".i mi na jimpe" 	print u