packages feed

ministg 0.2 → 0.3

raw patch · 7 files changed

+24/−19 lines, 7 filesdep −haskell98

Dependencies removed: haskell98

Files

ministg.cabal view
@@ -1,5 +1,5 @@ name:                ministg-version:             0.2+version:             0.3 cabal-version:       >= 1.6 synopsis:            an interpreter for an operational semantics for the STG machine.  description:         ministg is an interpreter for a simple high-level operational semantics for the STG machine. The@@ -11,19 +11,23 @@ category:            Language license:             BSD3 license-file:        LICENSE-copyright:           (c) 2009 Bernard James Pope+copyright:           (c) 2009, 2010, 2011 Bernard James Pope author:              Bernard James Pope -maintainer:          bjpop@csse.unimelb.edu.au+maintainer:          florbitous@gmail.com homepage:            http://www.haskell.org/haskellwiki/Ministg  build-type:          Simple stability:           experimental tested-with:         GHC==6.10.4 extra-source-files:  README.txt test/*.stg  +source-repository head+  type:     git+  location: https://github.com/bjpop/ministg.git + Executable ministg    main-is:         Main.hs   hs-source-dirs:  src-  build-depends:   base >= 3 && < 5, monads-tf, transformers, containers, parsec >= 3, pretty, haskell98, xhtml, directory, filepath+  build-depends:   base >= 3 && < 5, monads-tf, transformers, containers, parsec >= 3, pretty, xhtml, directory, filepath   other-modules:       Ministg.AST       Ministg.Lexer
src/Main.hs view
@@ -14,12 +14,12 @@  module Main where -import System (exitFailure)+import System.Exit (exitFailure) import Ministg.AST (Program (Program)) import Ministg.Parser (parser) import Ministg.Lexer (lexer, Token) import Control.Monad (when, unless)-import System (getArgs, exitFailure)+import System.Environment (getArgs) import System.Directory (doesDirectoryExist, createDirectory) import Ministg.Utils (safeReadFile) import Ministg.Arity (runArity)
src/Ministg/Arity.hs view
@@ -15,7 +15,8 @@  module Ministg.Arity (runArity, Arity) where -import Data.Map as Map+import qualified Data.Map as Map+import Data.Map (Map) import Control.Monad.Reader import Control.Applicative import Ministg.AST
src/Ministg/Eval.hs view
@@ -16,7 +16,8 @@  import Control.Monad.State (evalStateT, gets) import Control.Monad.Trans (liftIO)-import Data.Map as Map hiding (map)+import qualified Data.Map as Map+import Data.Map (Map) import Data.List (foldl') import Ministg.AST import Ministg.CallStack (CallStack, push, showCallStack)@@ -85,6 +86,9 @@    let newExp = subs (mkSub var (Variable newVar)) exp     return $ Just (newExp, stack, newHeap) -- CASECON+-- We don't catch pattern match errors here because we assume+-- that the compiler will insert a default clause which will+-- fire if no previous pattern matches. smallStep _anyStyle (Case (Atom (Variable v)) alts) stack heap    | Con constructor args <- lookupHeap v heap,       Just (vars, exp) <- exactPatternMatch constructor alts = do
src/Ministg/Options.hs view
@@ -31,8 +31,8 @@ import Data.Maybe (fromMaybe) import Data.Char (toLower, isDigit) import Data.Maybe (catMaybes)-import IO (stderr, hPutStrLn)-import System+import System.IO (stderr, hPutStrLn)+import System.Exit  programName :: String programName = "ministg"
− test/fac_stack.stg
@@ -1,9 +0,0 @@-fac = FUN (x -> stack "fac"-         case eqInt x zero of {-            True -> one;-            False -> let { s = THUNK(subInt x one);-                           rec = THUNK(fac s) }-                     in multInt x rec-         });--main = THUNK (stack "main" fac seven) 
+ test/non_exhaustive_pattern.stg view
@@ -0,0 +1,5 @@+foo = CON(Foo);+end = CON(End);+main = THUNK(+   case foo of { Bar -> end; x -> error; }+);