packages feed

peggy 0.3.0 → 0.3.1

raw patch · 4 files changed

+59/−54 lines, 4 filesdep +peggydep ~monad-controldep ~template-haskellnew-component:exe:peggy-example

Dependencies added: peggy

Dependency ranges changed: monad-control, template-haskell

Files

− Main.hs
@@ -1,31 +0,0 @@-{-# LANGUAGE TemplateHaskell, QuasiQuotes, FlexibleContexts #-}--module Main (main) where--import Text.Peggy--genParser [] [peggy|--- Simple Arithmetic Expression Parser--top :: Double = expr--expr :: Double-  = expr "+" fact { $1 + $2 }-  / expr "-" fact { $1 - $2 }-  / fact--fact :: Double-  = fact "*" term { $1 * $2 }-  / fact "/" term { $1 / $2 }-  / term--term :: Double-  = "(" expr ")"-  / number--number ::: Double-  = [1-9] [0-9]* { read ($1 : $2) }-|]--main :: IO ()-main = print . parseString top "<stdin>" =<< getContents
Text/Peggy/CodeGen/TH.hs view
@@ -111,6 +111,7 @@           typ      -- Generate Parser+  genP :: Bool -> Expr -> ExpQ   genP isE e = case (isE, e) of     (False, Terminals False False str) ->       [| string str |]@@ -243,9 +244,12 @@           noBindS (genP isE f) :           genBinds ix fs +  genRanges :: [CharRange] -> ExpQ   genRanges rs =     let c = mkName "c" in     lamE [varP c] $ foldl1 (\a b -> [| $a || $b |]) $ map (genRange c) rs++  genRange :: Name -> CharRange -> ExpQ   genRange c (CharRange l h) =     [| l <= $(varE c) && $(varE c) <= h |]   genRange c (CharOne v) =@@ -297,9 +301,11 @@   case parseType typ of     Left err -> error $ "type parse error :" ++ typ ++ ", " ++ err     Right t -> case t of-      -- GHC.Unit.() is not a type name. Is it a bug of haskell-src-meta?+      -- GHC.Unit.()/GHC.Tuple.() is not a type name. Is it a bug of haskell-src-meta?       -- Use (TupleT 0) insted.       ConT con | show con == "GHC.Unit.()" ->+        return $ TupleT 0+      ConT con | show con == "GHC.Tuple.()" ->         return $ TupleT 0       _ ->         return t
+ example/Main.hs view
@@ -0,0 +1,31 @@+{-# LANGUAGE TemplateHaskell, QuasiQuotes, FlexibleContexts #-}++module Main (main) where++import Text.Peggy++genParser [] [peggy|+-- Simple Arithmetic Expression Parser++top :: Double = expr++expr :: Double+  = expr "+" fact { $1 + $2 }+  / expr "-" fact { $1 - $2 }+  / fact++fact :: Double+  = fact "*" term { $1 * $2 }+  / fact "/" term { $1 / $2 }+  / term++term :: Double+  = "(" expr ")"+  / number++number ::: Double+  = [1-9] [0-9]* { read ($1 : $2) }+|]++main :: IO ()+main = print . parseString top "<stdin>" =<< getContents
peggy.cabal view
@@ -1,5 +1,5 @@ Name:                peggy-Version:             0.3.0+Version:             0.3.1 Synopsis:            The Parser Generator for Haskell  Description:@@ -16,6 +16,7 @@ Copyright:           Copyright (c)2011, Hideyuki Tanaka Category:            Language Build-type:          Simple+Cabal-version:       >=1.8  Extra-source-files:  README.md                      bootstrap/README.md@@ -24,8 +25,13 @@                      bootstrap/Bootstrap.hs                      bootstrap/peggy.peggy -Cabal-version:       >=1.8+flag build-example+  default:           False +Source-repository head+  Type:              git+  Location:          git://github.com/tanakh/Peggy.git+ Library   Exposed-modules:     Text.Peggy                      , Text.Peggy.CodeGen.TH@@ -37,27 +43,20 @@                      , Text.Peggy.SrcLoc                      , Text.Peggy.Syntax   -  Build-depends:       base >= 4 && < 5-                     , mtl >= 2.0 && < 2.1-                     , ListLike >= 3.1 && < 3.2-                     , hashtables >= 1.0 && < 1.1-                     , monad-control >= 0.2 && < 0.3-                     , template-haskell >= 2.5 && < 2.7-                     , haskell-src-meta >= 0.5 && < 0.6-  -  -- Other-modules:       +  Build-depends:       base             == 4.*+                     , mtl              == 2.0.*+                     , ListLike         == 3.1.*+                     , hashtables       == 1.0.*+                     , monad-control    == 0.3.*+                     , template-haskell >= 2.5 && < 2.8+                     , haskell-src-meta == 0.5.*   -Executable peggy+Executable peggy-example+  Hs-source-dirs:      example   Main-is:             Main.hs -  Build-depends:       base >= 4 && < 5-                     , mtl >= 2.0 && < 2.1-                     , ListLike >= 3.1 && < 3.2-                     , hashtables >= 1.0 && < 1.1-                     , monad-control >= 0.2 && < 0.3-                     , template-haskell >= 2.5 && < 2.7-                     , haskell-src-meta >= 0.5 && < 0.6+  Build-depends:       base  == 4.*+                     , peggy -Source-repository head-  Type:              git-  Location:          git://github.com/tanakh/Peggy.git+  if !flag(build-example)+    Buildable:         False