murder 1.3.3 → 1.3.4
raw patch · 3 files changed
+19/−5 lines, 3 filesdep ~HList
Dependency ranges changed: HList
Files
- examples/LangExt.hs +5/−3
- murder.cabal +2/−2
- src/Language/Grammars/Murder.hs +12/−0
examples/LangExt.hs view
@@ -24,6 +24,8 @@ import Data.HList.Label4 import Data.HList.TypeEqGeneric1++ import Data.HList.TypeCastGeneric1 import Language.AbstractSyntax.TTTAS (match, Equal(..))@@ -190,7 +192,7 @@ addProds -< (factor, ( iI semPar "(" exp ")" Ii ) ) exportNTs -< imported-+{- mapNTProds :: Symbol b TNonT env -> Symbol b TNonT env -> PreProductions TL env a -> PreProductions TL env a mapNTProds s1 s2 (PP prds) = PP $ map (mapNTProd s1 s2) prds @@ -199,9 +201,9 @@ mapNTProd r1 r2 (Star f g) = Star (mapNTProd r1 r2 f) (mapNTProd r1 r2 g) mapNTProd (Nont r1) (Nont r2) (Sym (Nont r)) = case match r1 r of (Just Eq) -> Sym (Nont r2)- _Nothing -> Sym (Nont r)+ Nothing -> Sym (Nont r) mapNTProd _ _ p = p-+-} --gramOpts' gramOpts = gramOpts `extKeywordsTxt` [ "square", "pyth" ] `extSpecChars` "()[|]"
murder.cabal view
@@ -1,5 +1,5 @@ name: murder -version: 1.3.3+version: 1.3.4 cabal-version: >= 1.2.3 license: LGPL license-file: COPYRIGHT@@ -14,7 +14,7 @@ extra-source-files: README, LICENSE-LGPL library build-depends: base>=4 && <5, template-haskell>=2.4.0.1, TTTAS>=0.4.1, AspectAG>=0.3.6.1,- uulib>=0.9.12, uu-parsinglib >= 2.7.3.4, ListLike >= 3.1.0, containers>=0.3, HList>=0.2+ uulib>=0.9.12, uu-parsinglib >= 2.7.3.4, ListLike >= 3.1.0, containers>=0.3, HList>=0.2 && <0.3 exposed-modules: Language.Grammars.Grammar, Language.Grammars.Grammar.AspectAG, Language.Grammars.Grammar.AG,
src/Language/Grammars/Murder.hs view
@@ -53,6 +53,18 @@ updateFinalEnv -< updateEnv (\_ -> PS $ (unPP prds)) (getRefNT nont) +-- map references into the given productions+mapNTProds :: Symbol b TNonT env -> Symbol b TNonT env -> PreProductions TL env a -> PreProductions TL env a+mapNTProds s1 s2 (PP prds) = PP $ map (mapNTProd s1 s2) prds+++mapNTProd :: Symbol b TNonT env -> Symbol b TNonT env -> Prod TL a env -> Prod TL a env+mapNTProd r1 r2 (Star f g) = Star (mapNTProd r1 r2 f) (mapNTProd r1 r2 g)+mapNTProd (Nont r1) (Nont r2) (Sym (Nont r)) = case match r1 r of + (Just Eq) -> Sym (Nont r2)+ Nothing -> Sym (Nont r)+mapNTProd _ _ p = p+ -- close the grammar closeGram :: (forall env. ExtGram env a nts)