ace 0.0 → 0.1
raw patch · 4 files changed
+39/−4 lines, 4 filesdep −semigroups
Dependencies removed: semigroups
Files
- ace.cabal +2/−3
- src/ACE/Pretty.hs +14/−0
- src/ACE/Types/Pretty.hs +22/−0
- src/ACE/Types/Syntax.hs +1/−1
ace.cabal view
@@ -1,5 +1,5 @@ name: ace-version: 0.0+version: 0.1 synopsis: Attempto Controlled English parser and printer description: Attempto Controlled English is a formally defined unambiguous language which is a subset of the English language. This package provides a tokenizer,@@ -21,11 +21,10 @@ library hs-source-dirs: src/ ghc-options: -Wall -O2- exposed-modules: ACE, ACE.Types.Syntax, ACE.Parsers, ACE.Tokenizer, ACE.Types.Tokens, ACE.Combinators+ exposed-modules: ACE, ACE.Types.Syntax, ACE.Parsers, ACE.Tokenizer, ACE.Types.Tokens, ACE.Combinators, ACE.Types.Pretty, ACE.Pretty build-depends: attoparsec >= 0.11.1.0, parsec >= 3.1.5, data-default >= 0.5.3,- semigroups >= 0.12.2, text >= 0.11.2.0, base >= 4 && <5, bifunctors
+ src/ACE/Pretty.hs view
@@ -0,0 +1,14 @@+-- |++module ACE.Pretty+ (module ACE.Types.Pretty+ ,human)+ where++import ACE.Types.Pretty++import Data.Default++-- | Human-readable pretty printing settings.+human :: PrettySettings+human = def { prettyShowPrecedence = False }
+ src/ACE/Types/Pretty.hs view
@@ -0,0 +1,22 @@+-- | Pretty printing types and classes.++module ACE.Types.Pretty where++import Data.Default++-- | Pretty print a syntax tree node to a string.+class Pretty p where+ pretty :: PrettySettings -> p -> String++-- | Prints no string if nothing.+instance Pretty a => Pretty (Maybe a) where+ pretty s = maybe "" (pretty s)++-- | Settings used for pretty printing.+data PrettySettings = PrettySettings+ { prettyShowPrecedence :: Bool -- ^ Show precedence?+ }++-- | Precedence showing enabled by default.+instance Default PrettySettings where+ def = PrettySettings { prettyShowPrecedence = True }
src/ACE/Types/Syntax.hs view
@@ -9,7 +9,7 @@ import ACE.Pretty -import Data.Semigroup+import Data.Monoid import Data.Text (Text) import Prelude hiding (String)