packages feed

cakyrespa 0.0.3 → 0.0.4

raw patch · 3 files changed

+32/−4 lines, 3 files

Files

cakyrespa.cabal view
@@ -2,13 +2,14 @@ cabal-version:	>= 1.6  name:		cakyrespa-version:	0.0.3+version:	0.0.4 stability:	Alpha license:	BSD3 license-file:	LICENSE  author:		iocikun juj <PAF01143@nifty.ne.jp> maintainer:	iocikun juj <PAF01143@nifty.ne.jp>+homepage:	http://homepage3.nifty.com/salamander/myblog/cakyrespa.html  category:	Teaching synopsis:	run turtle like LOGO with lojban
src/Language/Lojban/Read.hs view
@@ -10,13 +10,14 @@  import Language.Lojban.Parser hiding ( 	Tag, Sumti, Selbri, KOhA, FA, Brivla, BAI, Number, LI, RelativeClause,-	Time, KU, Linkargs, FIhO)+	Time, KU, Linkargs, FIhO, NU) import qualified Language.Lojban.Parser as P import Data.Maybe import Data.Char  data Lojban 	= Bridi Selbri [(Tag, Sumti)]+	| TenseGI String Lojban Lojban 	| Vocative String 	| Free [Free] 	| ParseError String@@ -26,6 +27,7 @@ data Selbri 	= Brivla String 	| Linkargs Selbri Sumti+	| NU Lojban 	| NotImplementedSelbri String 	deriving (Show, Eq) @@ -72,6 +74,15 @@ 	Bridi (readSelbri selbri) $ processTagSumti ss ts process (TermsBridiTail ss _ _ (P.Selbri selbri)) = 	Bridi (readSelbri selbri) $ processTagSumti ss []+process (TermsBridiTail ss _ _+	(GekSentence+		(STagGik+			(P.Time _ [((_, tense, _), _, _)] _ _)+			((_, "gi", _), _, _))+		t ((_, "gi", _), _, _) u _ _ _)) =+	TenseGI tense+		(process $ TermsBridiTail ss undefined undefined t)+		(process $ TermsBridiTail ss undefined undefined u) process (P.Selbri selbri) = Bridi (readSelbri selbri) [] process t = NotImplemented $ "process: " ++ show t @@ -178,6 +189,7 @@ readSelbri (P.Brivla (_, b, _) _) = Brivla $ map toLower b readSelbri (P.Linkargs selbri (BE (_, "be", _) _ sumti _ _ _)) = 	Linkargs (readSelbri selbri) (readSumti sumti)+readSelbri (P.NU (_, "nu", _) _ _ _ bridi _ _) = NU $ process bridi readSelbri s = NotImplementedSelbri $ "readSelbri: " ++ show s 	 next :: Int -> [Int] -> Int
src/cakyrespa.hs view
@@ -1,6 +1,6 @@ module Main where -import Graphics.UI.GLUT hiding (R)+import Graphics.UI.GLUT hiding (R, Repeat) import Graphics.UI.GLUT.Turtle  import Language.Lojban.Read@@ -23,8 +23,12 @@ 	mainLoop  cmd :: String -> Command-cmd str = case readLojban str of+cmd = pcmd . readLojban++pcmd p = case p of 	(Vocative "co'o") -> COhO+	(TenseGI "ba" b c) -> Commands (pcmd b) (pcmd c)+	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@@ -32,6 +36,12 @@ 	b@(Bridi (Brivla "clugau") s) -> fromMaybe (Unknown b) $ readClugau s 	r -> Unknown r +readRapli :: [(Tag, Sumti)] -> Maybe Command+readRapli s = do+	LO (NU p) _ <- lookup (FA 1) s+	LI (Number n) <- lookup (FA 2) s+	return $ Repeat (round n) (pcmd p)+ readClugau :: [(Tag, Sumti)] -> Maybe Command readClugau s = do 	KOhA "ko" <- lookup (FA 1) s@@ -128,6 +138,8 @@ 	| BURSKA Int Int Int 	| COhACLUGAU 	| COhUCLUGAU+	| Commands Command Command+	| Repeat Int Command 	| COhO | Unknown Lojban | ParseErrorC 	| UnknownSelpli Sumti 	deriving Show@@ -145,6 +157,9 @@ processInput _ t COhACLUGAU = beginfill t >> return True processInput _ t COhUCLUGAU = endfill 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 f _ u@(Unknown _) = do 	outputString f ".i mi na jimpe" 	print u