packages feed

ihaskell-parsec (empty) → 0.2.0.0

raw patch · 4 files changed

+148/−0 lines, 4 filesdep +aesondep +basedep +classy-preludesetup-changed

Dependencies added: aeson, base, classy-prelude, here, ihaskell, parsec, random, unordered-containers

Files

+ IHaskell/Display/Parsec.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, QuasiQuotes, FlexibleInstances, OverloadedStrings #-}+module IHaskell.Display.Parsec () where++import ClassyPrelude hiding (fromList)+import System.Random+import Data.String.Here+import Data.HashMap.Strict as Map++import Text.Parsec (parse, sourceLine, sourceColumn)+--import Text.Parsec.Prim (Parser)+import Text.Parsec.String (Parser)+import Text.Parsec.Error (errorPos, ParseError)++import Data.Aeson++import IHaskell.Display++instance Show a => IHaskellDisplay (Parser a) where+  display renderable = return $ many [Display [javascript js], Display [html dom]]+    where +      dom = [hereFile|widget.html|]+      js = [hereFile|widget.js|]++-- | Text to parse.+data ParseText = ParseText String++instance FromJSON ParseText where+  parseJSON (Object v) = ParseText <$> v .: "text"+  parseJSON _          = fail "Expecting object"++-- | Output of parsing.+instance Show a => ToJSON (Either ParseError a) where+  toJSON (Left err) = object [+                        "status" .= ("error" :: String),+                        "line" .= sourceLine (errorPos err),+                        "col" .= sourceColumn (errorPos err),+                        "msg" .= show err+                      ]+  toJSON (Right result) = object [+                               "status" .= ("success" :: String),+                               "result" .= show result+                            ]++instance Show a => IHaskellWidget (Parser a) where+  -- Name for this widget.+  targetName _ = "parsec"++  -- When we rece+  comm widget (Object dict) publisher = do+    let key = "text" :: Text+        Just (String text) = Map.lookup key dict+        result = parse widget "<interactive>" $ unpack text+    publisher $ toJSON result
+ LICENSE view
@@ -0,0 +1,20 @@+The MIT License (MIT)++Copyright (c) 2013 Andrew Gibiansky++Permission is hereby granted, free of charge, to any person obtaining a copy of+this software and associated documentation files (the "Software"), to deal in+the Software without restriction, including without limitation the rights to+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of+the Software, and to permit persons to whom the Software is furnished to do so,+subject to the following conditions:++The above copyright notice and this permission notice shall be included in all+copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ ihaskell-parsec.cabal view
@@ -0,0 +1,73 @@+-- The name of the package.+name:                ihaskell-parsec++-- The package version.  See the Haskell package versioning policy (PVP) +-- for standards guiding when and how versions should be incremented.+-- http://www.haskell.org/haskellwiki/Package_versioning_policy+-- PVP summary:      +-+------- breaking API changes+--                   | | +----- non-breaking API additions+--                   | | | +--- code changes with no API change+version:             0.2.0.0++-- A short (one-line) description of the package.+synopsis:            IHaskell display instances for Parsec++-- A longer description of the package.+-- description:         ++-- URL for the project homepage or repository.+homepage:            http://www.github.com/gibiansky/ihaskell++-- The license under which the package is released.+license:             MIT++-- The file containing the license text.+license-file:        LICENSE++-- The package author(s).+author:              Andrew Gibiansky++-- An email address to which users can send suggestions, bug reports, and +-- patches.+maintainer:          andrew.gibiansky@gmail.com++-- A copyright notice.+-- copyright:           ++category:            Development++build-type:          Simple++-- Extra files to be distributed with the package, such as examples or a +-- README.+-- extra-source-files:  ++-- Constraint on the version of Cabal needed to build this package.+cabal-version:       >=1.16++library+  -- Modules exported by the library.+  exposed-modules:     IHaskell.Display.Parsec+  +  -- Modules included in this library but not exported.+  -- other-modules:       +  +  -- Language extensions.+  default-extensions: DoAndIfThenElse+              OverloadedStrings+             +  -- Other library packages from which modules are imported.+  build-depends:       base ==4.6.* || ==4.7.*,+                       aeson >=0.7 && <0.9,+                       unordered-containers,+                       classy-prelude,+                       random >= 1,+                       parsec,+                       here,+                       ihaskell >= 0.5+  +  -- Directories containing source files.+  -- hs-source-dirs:      +  +  -- Base language which the package is written in.+  default-language:    Haskell2010