packages feed

colorless 0.0.2 → 0.1.0

raw patch · 6 files changed

+5/−40 lines, 6 files

Files

README.md view
@@ -1,1 +1,4 @@ # colorless-haskell++This is the Haskell colorless library which includes the server-side runtime.+It's meant to be used in conjunction with the command line [code generator](github.com/jxv/colorless).
colorless.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           colorless-version:        0.0.2+version:        0.1.0 synopsis:       Colorless description:    Colorless category:       Web
library/Colorless/Runtime/Ast.hs view
@@ -3,7 +3,6 @@   ( Ast(..)   , Ref(..)   , If(..)-  , Set(..)   , Get(..)   , Define(..)   , Lambda(..)@@ -34,7 +33,6 @@ data Ast   = Ast'Ref Ref   | Ast'If If-  | Ast'Set Set   | Ast'Get Get   | Ast'Define Define   | Ast'Lambda Lambda@@ -55,7 +53,6 @@   parseJSON v     =   (Ast'Ref <$> parseJSON v)     <|> (Ast'If <$> parseJSON v)-    <|> (Ast'Set <$> parseJSON v)     <|> (Ast'Get <$> parseJSON v)     <|> (Ast'Define <$> parseJSON v)     <|> (Ast'Lambda <$> parseJSON v)@@ -88,17 +85,6 @@ instance FromJSON If where   parseJSON (Array arr) = case V.toList arr of     ["if", cond, true, false] -> If <$> parseJSON cond <*> parseJSON true <*> parseJSON false-    _ -> mzero-  parseJSON _ = mzero--data Set = Set-  { var :: Symbol-  , expr :: Ast-  } deriving (Show, Eq)--instance FromJSON Set where-  parseJSON (Array arr) = case V.toList arr of-    ["set", var, expr] -> Set <$> parseJSON var <*> parseJSON expr     _ -> mzero   parseJSON _ = mzero 
library/Colorless/Runtime/Expr.hs view
@@ -9,7 +9,6 @@   , UnWrap(..)   , UnStruct(..)   , If(..)-  , Set(..)   , Get(..)   , Define(..)   , Lambda(..)@@ -88,7 +87,6 @@   | Expr'UnVal (UnVal m)   | Expr'Val Val   | Expr'If (If m)-  | Expr'Set (Set m)   | Expr'Get (Get m)   | Expr'Define (Define m)   | Expr'Lambda (Lambda m)@@ -129,11 +127,6 @@   , false :: Expr m   } deriving (Show, Eq) -data Set m = Set-  { var :: Symbol-  , expr :: Expr m-  } deriving (Show, Eq)- data Get m = Get   { path :: [Text]   , expr :: Expr m@@ -216,7 +209,6 @@ fromAst = \case   Ast'Ref Ast.Ref{symbol} -> Expr'Ref $ Ref symbol   Ast'If Ast.If{cond,true,false} -> Expr'If $ If (fromAst cond) (fromAst true) (fromAst false)-  Ast'Set Ast.Set{var,expr} -> Expr'Set $ Set var (fromAst expr)   Ast'Get Ast.Get{path,val} -> Expr'Get $ Get path (fromAst val)   Ast'Define Ast.Define{var,expr} -> Expr'Define $ Define var (fromAst expr)   Ast'Lambda Ast.Lambda{args,expr} -> Expr'Lambda $ Lambda args (fromAst expr)@@ -264,7 +256,6 @@   Expr'If if' -> evalIf if' envRef   Expr'UnVal unVal -> evalUnVal unVal envRef   Expr'Val val -> return $ Expr'Val val-  Expr'Set set -> evalSet set envRef   Expr'Get get -> evalGet get envRef   Expr'Define define -> evalDefine define envRef   Expr'Lambda lambda -> evalLambda lambda envRef@@ -313,16 +304,6 @@       envRef'' <- liftIO $ newIORef =<< readIORef envRef       eval (if cond' then true else false) envRef''     _ -> runtimeThrow RuntimeError'IncompatibleType--evalSet :: (MonadIO m, RuntimeThrower m) => Set m -> IORef (Env m) -> Eval m (Expr m)-evalSet Set{var = var@(Symbol var'), expr} envRef = do-  expr' <- eval expr envRef-  env <- liftIO $ readIORef envRef-  case Map.lookup var env of-    Nothing -> runtimeThrow $ RuntimeError'UnknownVariable var'-    Just v -> do-      liftIO $ writeIORef v expr'-      return expr'  evalGet :: (MonadIO m, RuntimeThrower m) => Get m -> IORef (Env m) -> Eval m (Expr m) evalGet Get{path,expr} envRef = getter path =<< eval expr envRef
package.yaml view
@@ -1,5 +1,5 @@ name: colorless-version: '0.0.2'+version: '0.1.0' category: Web synopsis: Colorless description: Colorless
tests/AstSpec.hs view
@@ -49,11 +49,6 @@           (Ast'Const $ Const'String "true")           (Ast'Const $ Const'String "false")) -    context "Set" $ do-      it "simple" $ shouldBe-        (parseAst $ Array $ V.fromList ["set", "myVar", Bool False])-        (Just $ Ast'Set $ Set "myVar" (Ast'Const $ Const'Bool False))-     context "Get" $ do       it "simple yet not semantically correct" $ shouldBe         (parseAst $ Array $ V.fromList ["get", Array $ V.fromList ["a","b","c"], Bool False])