packages feed

egison 1.0.2 → 1.0.3

raw patch · 2 files changed

+22/−3 lines, 2 files

Files

Egison.hs view
@@ -8,6 +8,7 @@ import qualified Text.Parsec.Token as P import Text.Parsec.Language (haskellDef) import IO hiding (try)+import Paths_egison  welcomeMsg :: String welcomeMsg = "Egison, version 1.0.2 : http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/\nWelcome to Egison Interpreter!\n"@@ -122,7 +123,8 @@   val <- eval [topFrame] expr   ret <- liftIO (showValue val)   return (ret ++ "\n")-executeTopExpression defs (Load filename) = do+executeTopExpression defs (Load libname) = do+  filename <- liftIO (getDataFileName libname)   mStr <- liftIO (readEgisonFile filename)   case mStr of     Nothing -> throwError (Default "load error")@@ -132,6 +134,16 @@                                           topExpr:rest -> do executeTopExpression defs topExpr                                                              loop rest                      in loop topExprs+executeTopExpression defs (LoadFile filename) = do+  mStr <- liftIO (readEgisonFile filename)+  case mStr of+    Nothing -> throwError (Default "load-file error")+    Just str -> do topExprs <- readTopExpressionList str+                   let loop topExprs2 = case topExprs2 of+                                          [] -> return (filename ++ " loaded\n")+                                          topExpr:rest -> do executeTopExpression defs topExpr+                                                             loop rest+                     in loop topExprs executeTopExpression defs Execute = do   topFrame <- makeTopFrame defs   mainFn <- eval [topFrame] (VariableExp "main" [])@@ -173,6 +185,7 @@ data TopExpression = Define String Expression                    | Test Expression                    | Load String+                   | LoadFile String                    | Execute  data Expression = CharacterExp Char@@ -551,6 +564,11 @@                                    filename <- stringLiteral                                    spaces                                    return (Load filename)+                            <|> do try (string "load-file")+                                   spaces+                                   filename <- stringLiteral+                                   spaces+                                   return (LoadFile filename)                                    ) <?> "top expression"  parseExpression :: Parser Expression@@ -786,6 +804,7 @@ showTopExpression (Define name expr) = "(define $" ++ name ++ " " ++ show expr ++ ")" showTopExpression (Test expr) = "(test " ++ show expr ++ ")" showTopExpression (Load expr) = "(load " ++ show expr ++ ")"+showTopExpression (LoadFile expr) = "(load-file " ++ show expr ++ ")" showTopExpression Execute = "(execute)"  instance Show TopExpression where show = showTopExpression
egison.cabal view
@@ -7,7 +7,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version:             1.0.2+Version:             1.0.3  -- A short (one-line) description of the package. Synopsis:            An Interpreter for the Programming Language Egison@@ -63,7 +63,7 @@   Build-depends:       base >= 4.0 && < 5, haskell98, mtl, parsec >= 3.0      -- Modules not exported by this package.-  -- Other-modules:       +  Other-modules:       Paths_egison      -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.   -- Build-tools: