packages feed

BNFC-meta 0.4.0.3 → 0.5

raw patch · 8 files changed

+22/−11 lines, 8 filesdep ~template-haskellPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: template-haskell

API changes (from Hackage documentation)

- Language.LBNF.Compiletime: instance Eq Posn
- Language.LBNF.Compiletime: instance IsChar Char
- Language.LBNF.Compiletime: instance IsChar a => Literal [a]
- Language.LBNF.Compiletime: instance Literal Char
- Language.LBNF.Compiletime: instance Literal Double
- Language.LBNF.Compiletime: instance Literal Integer
- Language.LBNF.Compiletime: instance Ord Posn
- Language.LBNF.Compiletime: instance Show Posn
- Language.LBNF.Grammar: instance Eq Arg
- Language.LBNF.Grammar: instance Eq Cat
- Language.LBNF.Grammar: instance Eq Def
- Language.LBNF.Grammar: instance Eq Exp
- Language.LBNF.Grammar: instance Eq Grammar
- Language.LBNF.Grammar: instance Eq HsTyp
- Language.LBNF.Grammar: instance Eq Ident
- Language.LBNF.Grammar: instance Eq Item
- Language.LBNF.Grammar: instance Eq Label
- Language.LBNF.Grammar: instance Eq MIdent
- Language.LBNF.Grammar: instance Eq MinimumSize
- Language.LBNF.Grammar: instance Eq RHS
- Language.LBNF.Grammar: instance Eq Reg
- Language.LBNF.Grammar: instance Eq Tok
- Language.LBNF.Grammar: instance Eq Token
- Language.LBNF.Grammar: instance Functor AlexLastAcc
- Language.LBNF.Grammar: instance Ord Arg
- Language.LBNF.Grammar: instance Ord Cat
- Language.LBNF.Grammar: instance Ord Def
- Language.LBNF.Grammar: instance Ord Exp
- Language.LBNF.Grammar: instance Ord Grammar
- Language.LBNF.Grammar: instance Ord HsTyp
- Language.LBNF.Grammar: instance Ord Ident
- Language.LBNF.Grammar: instance Ord Item
- Language.LBNF.Grammar: instance Ord Label
- Language.LBNF.Grammar: instance Ord MIdent
- Language.LBNF.Grammar: instance Ord MinimumSize
- Language.LBNF.Grammar: instance Ord RHS
- Language.LBNF.Grammar: instance Ord Reg
- Language.LBNF.Grammar: instance Ord Tok
- Language.LBNF.Grammar: instance Ord Token
- Language.LBNF.Grammar: instance Print Arg
- Language.LBNF.Grammar: instance Print Cat
- Language.LBNF.Grammar: instance Print Def
- Language.LBNF.Grammar: instance Print Exp
- Language.LBNF.Grammar: instance Print Grammar
- Language.LBNF.Grammar: instance Print HsTyp
- Language.LBNF.Grammar: instance Print Ident
- Language.LBNF.Grammar: instance Print Item
- Language.LBNF.Grammar: instance Print Label
- Language.LBNF.Grammar: instance Print MIdent
- Language.LBNF.Grammar: instance Print MinimumSize
- Language.LBNF.Grammar: instance Print RHS
- Language.LBNF.Grammar: instance Print Reg
- Language.LBNF.Grammar: instance Show Arg
- Language.LBNF.Grammar: instance Show BTree
- Language.LBNF.Grammar: instance Show Cat
- Language.LBNF.Grammar: instance Show Def
- Language.LBNF.Grammar: instance Show Exp
- Language.LBNF.Grammar: instance Show Grammar
- Language.LBNF.Grammar: instance Show HsTyp
- Language.LBNF.Grammar: instance Show Ident
- Language.LBNF.Grammar: instance Show Item
- Language.LBNF.Grammar: instance Show Label
- Language.LBNF.Grammar: instance Show MIdent
- Language.LBNF.Grammar: instance Show MinimumSize
- Language.LBNF.Grammar: instance Show RHS
- Language.LBNF.Grammar: instance Show Reg
- Language.LBNF.Grammar: instance Show Tok
- Language.LBNF.Grammar: instance Show Token
- Language.LBNF.Runtime: instance Applicative ParseMonad
- Language.LBNF.Runtime: instance Eq a => Eq (ParseMonad a)
- Language.LBNF.Runtime: instance Functor ParseMonad
- Language.LBNF.Runtime: instance Monad ParseMonad
- Language.LBNF.Runtime: instance Ord a => Ord (ParseMonad a)
- Language.LBNF.Runtime: instance Print Char
- Language.LBNF.Runtime: instance Print Double
- Language.LBNF.Runtime: instance Print Integer
- Language.LBNF.Runtime: instance Print PrintPlain
- Language.LBNF.Runtime: instance Print a => Print [a]
- Language.LBNF.Runtime: instance Read a => Read (ParseMonad a)
- Language.LBNF.Runtime: instance Show a => Show (ParseMonad a)
+ Language.LBNF.Compiletime: infixl 9 !
+ Language.LBNF.Compiletime: instance GHC.Classes.Eq Language.LBNF.Compiletime.Posn
+ Language.LBNF.Compiletime: instance GHC.Classes.Ord Language.LBNF.Compiletime.Posn
+ Language.LBNF.Compiletime: instance GHC.Show.Show Language.LBNF.Compiletime.Posn
+ Language.LBNF.Compiletime: instance Language.LBNF.Compiletime.IsChar GHC.Types.Char
+ Language.LBNF.Compiletime: instance Language.LBNF.Compiletime.IsChar a => Language.LBNF.Compiletime.Literal [a]
+ Language.LBNF.Compiletime: instance Language.LBNF.Compiletime.Literal GHC.Integer.Type.Integer
+ Language.LBNF.Compiletime: instance Language.LBNF.Compiletime.Literal GHC.Types.Char
+ Language.LBNF.Compiletime: instance Language.LBNF.Compiletime.Literal GHC.Types.Double
+ Language.LBNF.Grammar: instance GHC.Base.Functor Language.LBNF.Grammar.AlexLastAcc
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Arg
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Cat
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Def
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Exp
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Grammar
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.HsTyp
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Ident
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Item
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Label
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.MIdent
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.MinimumSize
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.RHS
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Reg
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Tok
+ Language.LBNF.Grammar: instance GHC.Classes.Eq Language.LBNF.Grammar.Token
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Arg
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Cat
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Def
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Exp
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Grammar
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.HsTyp
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Ident
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Item
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Label
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.MIdent
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.MinimumSize
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.RHS
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Reg
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Tok
+ Language.LBNF.Grammar: instance GHC.Classes.Ord Language.LBNF.Grammar.Token
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Arg
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.BTree
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Cat
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Def
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Exp
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Grammar
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.HsTyp
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Ident
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Item
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Label
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.MIdent
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.MinimumSize
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.RHS
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Reg
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Tok
+ Language.LBNF.Grammar: instance GHC.Show.Show Language.LBNF.Grammar.Token
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Arg
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Cat
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Def
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Exp
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Grammar
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.HsTyp
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Ident
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Item
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Label
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.MIdent
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.MinimumSize
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.RHS
+ Language.LBNF.Grammar: instance Language.LBNF.Runtime.Print Language.LBNF.Grammar.Reg
+ Language.LBNF.Runtime: instance GHC.Base.Applicative Language.LBNF.Runtime.ParseMonad
+ Language.LBNF.Runtime: instance GHC.Base.Functor Language.LBNF.Runtime.ParseMonad
+ Language.LBNF.Runtime: instance GHC.Base.Monad Language.LBNF.Runtime.ParseMonad
+ Language.LBNF.Runtime: instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.LBNF.Runtime.ParseMonad a)
+ Language.LBNF.Runtime: instance GHC.Classes.Ord a => GHC.Classes.Ord (Language.LBNF.Runtime.ParseMonad a)
+ Language.LBNF.Runtime: instance GHC.Read.Read a => GHC.Read.Read (Language.LBNF.Runtime.ParseMonad a)
+ Language.LBNF.Runtime: instance GHC.Show.Show a => GHC.Show.Show (Language.LBNF.Runtime.ParseMonad a)
+ Language.LBNF.Runtime: instance Language.LBNF.Runtime.Print GHC.Integer.Type.Integer
+ Language.LBNF.Runtime: instance Language.LBNF.Runtime.Print GHC.Types.Char
+ Language.LBNF.Runtime: instance Language.LBNF.Runtime.Print GHC.Types.Double
+ Language.LBNF.Runtime: instance Language.LBNF.Runtime.Print Language.LBNF.Runtime.PrintPlain
+ Language.LBNF.Runtime: instance Language.LBNF.Runtime.Print a => Language.LBNF.Runtime.Print [a]

Files

BNFC-meta.cabal view
@@ -1,5 +1,5 @@ Name:	        BNFC-meta-version:        0.4.0.3+version:        0.5 cabal-Version:  >= 1.6 build-type:     Simple license:        GPL-2@@ -37,11 +37,16 @@   examples/typesafe/Typesafe.hs   Bootstrap/Bootstrap.hs +source-repository head+  type:      git+  location:  https://github.com/JonasDuregard/BNFC-meta++ Library   Build-Depends:      base>=4.2&&<5     , array>=0.4&&<0.6-    , template-haskell >=2.4&&<2.11+    , template-haskell >=2.11&&<2.12     , haskell-src-meta >= 0.5 && < 1.0     , happy-meta >= 0.2.0.4 && < 0.3     , alex-meta >= 0.3.0.5 && < 0.4
Bootstrap/Bootstrap.hs view
@@ -25,6 +25,7 @@  import System.FilePath +-- This was required for some reason but I don't recall why /Jonas package = "BNFC-meta-0.2.1"  nfile = file ++ ".new.bak"@@ -32,6 +33,8 @@ bfile = file ++ ".bak" bbfile = bfile ++ ".bak" +-- Running this code will generate a new LBNF quasi-quoter file using +-- an existing installation of BNFC-meta. It's all very meta.  main = do   c <- getCode ("Language.LBNF.Grammar") g   doesFileExist bfile >>= \b -> when b $ copyFile bfile bbfile
Language/Haskell/TH/Hide.hs view
@@ -2,6 +2,7 @@ import Data.List(partition) import Language.Haskell.TH +-- Takes a list of declaration and puts them all in a where-clause, exporting only some of them by pattern-matching on a tuple.  export :: [Name] -> [Dec] -> Q [Dec] export el = buildClause el . partition whereable where   whereable :: Dec -> Bool@@ -19,7 +20,7 @@     (map return wh)   return $ v : tl -  +-- GHC has a limit on tuple size... splitTup :: ([a] -> a) -> [a] -> a  splitTup tup ls = case splitAt 60 ls of   (_,[])       -> tup ls
Language/LBNF/CFtoAbstract.hs view
@@ -43,19 +43,21 @@    prData :: [Name] -> Data -> Q Dec prData deriv (cat,rules) = -  dataD (return []) (mkName cat) [] (map cons rules) deriv where+  dataD (return []) (mkName cat) [] Nothing (map cons rules) deriv' where     cons (fun,cats) = normalC (mkName fun) $ either (map typ) (const str) cats     typ = strictType notStrict . fixname     str = [typ "String"]+    deriv' = mapM conT deriv + -- deriv = [''Eq,''Ord,''Show]  prSpecialData :: [Name] -> CF -> Cat -> Q Dec prSpecialData deriv cf cat =-  newtypeD (return []) (mkName cat) [] con deriv where+  newtypeD (return []) (mkName cat) [] Nothing con deriv' where     con = normalC (mkName cat) $ [typ]     typ = strictType notStrict $ contentSpec cf cat-+    deriv' = mapM conT deriv  contentSpec :: CF -> Cat -> Q Type contentSpec cf cat = if isPositionCat cf cat 
Language/LBNF/CFtoLayout.hs view
@@ -67,8 +67,8 @@       (id         [''Token, 'Err,  ''Posn, 'PT,  ''Tok, 'TS,  'Pn, ''Block, 'Implicit, 'Explicit])       (map mkName ["Token", "Err", "Posn", "PT", "Tok", "TS", "Pn", "Block", "Implicit","Explicit"])  in fmap mkRename $  -     fmap (DataD [] (mkName "Block") [] [NormalC (mkName "Implicit") [(NotStrict,ConT ''Int)],-       NormalC (mkName "Explicit") []] [''Show]:)+     fmap (DataD [] (mkName "Block") [] Nothing [NormalC (mkName "Implicit") [(Bang NoSourceUnpackedness NoSourceStrictness,ConT ''Int)],+       NormalC (mkName "Explicit") []] [ConT ''Show]:)        (makedecs top lay stop (sort (reservedWords cf ++ symbols cf)))         -- Hack to make haddock work
examples/jll/JavaletteLight.hs view
@@ -5,7 +5,7 @@ import Language.LBNF.Compiletime  import Language.LBNF(lbnf, dumpCode, bnfc)-bnfc [lbnf|+dumpCode [lbnf|  Fun.      Prog     ::= Typ Ident "(" ")" "{" [Stm] "}" ; 
examples/typesafe/Example.hs view
@@ -7,7 +7,7 @@ -- All variables are meta-variables.  -- Variables must be declared in the function parameters -- Boolean and numeric variables are type checked by Haskell.-prg n tmp x = [$prog|+prg n tmp x = [prog| f() {   n = 0;   x := True ;
examples/typesafe/Typesafe.hs view
@@ -7,7 +7,7 @@ import Language.LBNF    -bnfc [$lbnf|+bnfc [lbnf|  antiquote "[" ":" ":]" ;