syntax-example 0.1.0.0 → 0.2.0.0
raw patch · 2 files changed
+12/−7 lines, 2 filesdep ~semi-isodep ~syntax
Dependency ranges changed: semi-iso, syntax
Files
- Main.hs +9/−4
- syntax-example.cabal +3/−3
Main.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE OverloadedStrings #-} import Control.Applicative+import Control.Lens.SemiIso import Control.Lens.TH import qualified Data.Attoparsec.Text as AP import Data.Char@@ -11,6 +12,7 @@ import qualified Data.Syntax as S import qualified Data.Syntax.Attoparsec.Text as S import qualified Data.Syntax.Char as S+import qualified Data.Syntax.Combinator as S import qualified Data.Syntax.Pretty as S import Data.Text (Text) import qualified Data.Text.IO as T@@ -37,14 +39,17 @@ atom = _Var /$/ name /|/ parens expr +-- | Parsers a list of applications.+apps :: Syntax syn Text => syn AST+apps = bifoldl1 (attemptAp_ _App) /$/ S.sepBy1 atom S.spaces1+ -- | An expression of our lambda calculus. expr :: Syntax syn Text => syn AST-expr = _App /$/ atom /* S.spaces1 /*/ atom- /|/ _Abs /$/ S.char '\\' /* S.spaces_+expr = _Abs /$/ S.char '\\' /* S.spaces_ */ name /* S.spaces /* S.string "->" /* S.spaces- /*/ expr - /|/ atom+ /*/ expr+ /|/ apps main :: IO () main = do
syntax-example.cabal view
@@ -1,5 +1,5 @@ name: syntax-example-version: 0.1.0.0+version: 0.2.0.0 synopsis: Example application using syntax, a library for abstract syntax descriptions. license: MIT license-file: LICENSE@@ -16,7 +16,7 @@ executable syntax-example main-is: Main.hs- build-depends: base >= 4 && < 5, lens, semi-iso,- syntax, syntax-attoparsec, syntax-pretty,+ build-depends: base >= 4 && < 5, lens, semi-iso >= 0.3,+ syntax >= 0.1.1, syntax-attoparsec, syntax-pretty, attoparsec, pretty, text default-language: Haskell2010