cimple 0.0.10 → 0.0.11
raw patch · 3 files changed
+15/−5 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Language.Cimple: type AstActions a = IdentityActions (State a) Text
+ Language.Cimple: removeSloc :: Node (Lexeme Text) -> Node (Lexeme Text)
+ Language.Cimple: type DefaultActions a = IdentityActions (State a) Text
+ Language.Cimple.Pretty: showNode :: Node (Lexeme Text) -> Text
- Language.Cimple: defaultActions :: AstActions state
+ Language.Cimple: defaultActions :: DefaultActions state
Files
- cimple.cabal +1/−1
- src/Language/Cimple.hs +10/−3
- src/Language/Cimple/Pretty.hs +4/−1
cimple.cabal view
@@ -1,5 +1,5 @@ name: cimple-version: 0.0.10+version: 0.0.11 synopsis: Simple C-like programming language homepage: https://toktok.github.io/ license: GPL-3
src/Language/Cimple.hs view
@@ -1,10 +1,12 @@ module Language.Cimple ( module X- , AstActions+ , DefaultActions , defaultActions+ , removeSloc ) where import Control.Monad.State.Strict (State)+import qualified Control.Monad.State.Strict as State import Data.Text (Text) import Language.Cimple.Annot as X@@ -14,7 +16,12 @@ import Language.Cimple.Tokens as X import Language.Cimple.TraverseAst as X -type AstActions a = X.IdentityActions (State a) Text+type DefaultActions a = X.IdentityActions (State a) Text -defaultActions :: AstActions state+defaultActions :: DefaultActions state defaultActions = X.identityActions++removeSloc :: Node (Lexeme Text) -> Node (Lexeme Text)+removeSloc =+ flip State.evalState () . traverseAst defaultActions+ { doLexeme = \_ (L _ c t) _ -> pure $ L (AlexPn 0 0 0) c t }
src/Language/Cimple/Pretty.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TupleSections #-}-module Language.Cimple.Pretty (ppTranslationUnit) where+module Language.Cimple.Pretty (ppTranslationUnit, showNode) where import Data.Fix (foldFix) import qualified Data.List as List@@ -449,3 +449,6 @@ ppTranslationUnit :: [Node (Lexeme Text)] -> Doc ppTranslationUnit decls = ppSemiSep (map ppNode decls) <> linebreak++showNode :: Node (Lexeme Text) -> Text+showNode = Text.pack . show . fst . ppNode