uulib 0.9.14 → 0.9.15
raw patch · 2 files changed
+3/−2 lines, 2 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- UU.Parsing.Offside: pClose, pOpen :: (OutputState o, InputState i s p, Position p, Symbol s, Ord s) => OffsideParser i o s p ()
- UU.Pretty.Basic: (>>|<<, >>//<<, >>-<<) :: PP_Exp -> PP_Exp -> PP_Exp
- UU.Pretty.Basic: fpar, spar :: PP_Exp
- UU.Pretty.Basic: render, renderAll :: PP_Doc -> Int -> IO ()
- UU.Pretty.Ext: (>>^<<, >>#<<) :: PP_Exp -> PP_Exp -> PP_Exp
- UU.Pretty.Ext: (>>|<, >>-<) :: PP a => PP_Exp -> a -> PP_Exp
- UU.Pretty.Ext: (>^<, >#<) :: (PP a, PP b) => a -> b -> PP_Doc
- UU.Pretty.Ext: (>|<<, >-<<) :: PP a => a -> PP_Exp -> PP_Exp
- UU.Pretty.Ext: hlist, hlist_sp, vlist :: PP a => [a] -> PP_Doc
- UU.Scanner.TokenParser: pComma, pCCurly, pOCurly, pCBrack, pOBrack, pCParen, pOParen, pSemi :: IsParser p Token => p String
- UU.Scanner.TokenParser: pCommaPos, pCCurlyPos, pOCurlyPos, pCBrackPos, pOBrackPos, pCParenPos, pOParenPos, pSemiPos :: IsParser p Token => p Pos
- UU.Scanner.TokenParser: pString, pConsym, pVarsym, pInteger, pTextln, pTextnm, pConid, pVarid, pFraction, pInteger16, pInteger10, pInteger8, pChar :: IsParser p Token => p String
- UU.Scanner.TokenParser: pStringPos, pConsymPos, pVarsymPos, pIntegerPos, pTextlnPos, pTextnmPos, pConidPos, pVaridPos, pFractionPos, pInteger16Pos, pInteger10Pos, pInteger8Pos, pCharPos :: IsParser p Token => p (String, Pos)
+ UU.Parsing.Interface: handleEof :: (Symbol s, InputState a s pos) => a -> Steps (Pair a ()) s pos
+ UU.Parsing.Machine: addToMessage :: Ord sym => Message sym pos -> Expecting sym -> Message sym pos
+ UU.Parsing.Machine: addexpecting :: Ord s => Expecting s -> Steps val s p -> Steps val s p
+ UU.Parsing.Machine: anaCostRange :: (Ord d, Symbol d, OutputState a, InputState b d p) => Int# -> d -> SymbolR d -> AnaParser b a d p d
+ UU.Parsing.Machine: anaDynE :: ParsRec state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: anaDynL :: ParsRec state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: anaGetFirsts :: AnaParser state result s p a -> Expecting s
+ UU.Parsing.Machine: anaLow :: OutputState result => a -> AnaParser state result s p a
+ UU.Parsing.Machine: anaOr :: (Ord s, Symbol s, OutputState result, InputState state s p) => AnaParser state result s p a -> AnaParser state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: anaSeq :: (Ord s, Symbol s, OutputState t1, OutputState result, InputState state s p) => (t7 -> ParsRec t t1 s t2 t3 -> ParsRec state result s p a) -> (ParsRec t4 t5 s t6 t7 -> ParsRec t t1 s t2 t3 -> ParsRec state result s p a) -> (t7 -> t3 -> a) -> AnaParser t4 t5 s t6 t7 -> AnaParser t t1 s t2 t3 -> AnaParser state result s p a
+ UU.Parsing.Machine: anaSetFirsts :: (Ord s, Symbol s, OutputState result, InputState state s p) => Expecting s -> AnaParser state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: anaSucceed :: OutputState result => a -> AnaParser state result s p a
+ UU.Parsing.Machine: getStart :: Message t t1 -> Expecting t
+ UU.Parsing.Machine: libDollar :: OutputState result => (t4 -> t5) -> ParsRec t t1 t2 t3 t4 -> ParsRec t result t2 t3 t5
+ UU.Parsing.Machine: libDollarL :: OutputState result => t5 -> ParsRec t t1 t2 t3 t4 -> ParsRec t result t2 t3 t5
+ UU.Parsing.Machine: libDollarR :: OutputState result => t -> ParsRec t1 t2 t3 t4 t5 -> ParsRec t1 result t3 t4 t5
+ UU.Parsing.Machine: libInsert :: (OutputState result, InputState t t1 t2) => Int# -> t1 -> Expecting t1 -> ParsRec t result t1 t2 t1
+ UU.Parsing.Machine: libOr :: (Ord t1, OutputState result) => ParsRec t5 t t1 t2 t4 -> ParsRec t5 t3 t1 t2 t4 -> ParsRec t5 result t1 t2 t4
+ UU.Parsing.Machine: libSeq :: (OutputState result, OutputState t4) => ParsRec t3 t t1 t2 (t5 -> t6) -> ParsRec t3 t4 t1 t2 t5 -> ParsRec t3 result t1 t2 t6
+ UU.Parsing.Machine: libSeqL :: OutputState result => ParsRec t3 t t1 t2 t6 -> ParsRec t3 t4 t1 t2 t5 -> ParsRec t3 result t1 t2 t6
+ UU.Parsing.Machine: libSeqR :: OutputState result => ParsRec t4 t t1 t2 t3 -> ParsRec t4 t5 t1 t2 t6 -> ParsRec t4 result t1 t2 t6
+ UU.Parsing.Machine: libSucceed :: OutputState result => t -> ParsRec t1 result t2 t3 t
+ UU.Parsing.Machine: mapOnePars :: (ParsRec t t1 s t2 t3 -> ParsRec state result s p a) -> OneDescr t t1 s t2 t3 -> OneDescr state result s p a
+ UU.Parsing.Machine: mergeTables :: (Ord t1, Ord a, Symbol a, OutputState t) => [(SymbolR a, ParsRec t4 t t1 t2 t3)] -> [(SymbolR a, ParsRec t4 t t1 t2 t3)] -> [(SymbolR a, ParsRec t4 t t1 t2 t3)]
+ UU.Parsing.Machine: mkPR :: OutputState result => (RealParser t1 t2 t3 t, RealRecogn t1 t2 t3) -> ParsRec t1 result t2 t3 t
+ UU.Parsing.Machine: mkParser :: (InputState state s p, Symbol s, Ord s, OutputState result) => Nat -> Maybe (Bool, Either a (ParsRec state result s p a)) -> OneDescr state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: nat_add :: Nat -> Nat -> Nat
+ UU.Parsing.Machine: nat_le :: Nat -> Nat -> Bool
+ UU.Parsing.Machine: nat_min :: Nat -> Nat -> (Nat, (b -> b -> c) -> b -> b -> c)
+ UU.Parsing.Machine: noOneParser :: OneDescr state result s p a
+ UU.Parsing.Machine: orOneOneDescr :: Ord s => OneDescr state result s p a -> OneDescr state result s p a -> Bool -> OneDescr state result s p a
+ UU.Parsing.Machine: pDynE :: ParsRec state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: pDynL :: ParsRec state result s p a -> AnaParser state result s p a
+ UU.Parsing.Machine: pEmpty :: ParsRec state result s p a -> (Bool, Either a (ParsRec state result s p a)) -> AnaParser state result s p a
+ UU.Parsing.Machine: seqZeroZero :: OutputState result => Maybe (Bool, Either t t1) -> Maybe (Bool, Either t2 (ParsRec t3 result t4 t5 t2)) -> (t -> ParsRec t3 result t4 t5 t2 -> b) -> (t1 -> ParsRec t3 result t4 t5 t2 -> b) -> (t -> t2 -> a) -> Maybe (Bool, Either a b)
+ UU.Parsing.Machine: unP :: RealParser t t1 t2 t3 -> (t3 -> r'' -> r') -> (t -> Steps r'' t1 t2) -> t -> Steps r' t1 t2
+ UU.Parsing.Machine: unR :: RealRecogn t t1 t2 -> (t -> Steps r t1 t2) -> t -> Steps r t1 t2
+ UU.Parsing.MachineInterface: except :: (Ord a, Symbol a) => SymbolR a -> [a] -> [SymbolR a]
+ UU.Parsing.MachineInterface: mk_range :: Ord s => s -> s -> SymbolR s
+ UU.Parsing.MachineInterface: symInRange :: Ord a => SymbolR a -> a -> Bool
+ UU.Parsing.MachineInterface: symRS :: Ord a => SymbolR a -> a -> Ordering
+ UU.Parsing.MachineInterface: systemerror :: [Char] -> [Char] -> t
+ UU.Parsing.MachineInterface: usererror :: [Char] -> t
+ UU.Parsing.Offside: pClose :: (OutputState o, InputState i s p, Position p, Symbol s, Ord s) => OffsideParser i o s p ()
+ UU.Parsing.Offside: pOpen :: (OutputState o, InputState i s p, Position p, Symbol s, Ord s) => OffsideParser i o s p ()
+ UU.Pretty.Basic: (>>-<<) :: PP_Exp -> PP_Exp -> PP_Exp
+ UU.Pretty.Basic: (>>//<<) :: PP_Exp -> PP_Exp -> PP_Exp
+ UU.Pretty.Basic: (>>|<<) :: PP_Exp -> PP_Exp -> PP_Exp
+ UU.Pretty.Basic: fpar :: PP_Exp
+ UU.Pretty.Basic: render :: PP_Doc -> Int -> IO ()
+ UU.Pretty.Basic: renderAll :: PP_Doc -> Int -> IO ()
+ UU.Pretty.Basic: spar :: PP_Exp
+ UU.Pretty.Ext: (>#<) :: (PP a, PP b) => a -> b -> PP_Doc
+ UU.Pretty.Ext: (>-<<) :: PP a => a -> PP_Exp -> PP_Exp
+ UU.Pretty.Ext: (>>#<<) :: PP_Exp -> PP_Exp -> PP_Exp
+ UU.Pretty.Ext: (>>-<) :: PP a => PP_Exp -> a -> PP_Exp
+ UU.Pretty.Ext: (>>^<<) :: PP_Exp -> PP_Exp -> PP_Exp
+ UU.Pretty.Ext: (>>|<) :: PP a => PP_Exp -> a -> PP_Exp
+ UU.Pretty.Ext: (>^<) :: (PP a, PP b) => a -> b -> PP_Doc
+ UU.Pretty.Ext: (>|<<) :: PP a => a -> PP_Exp -> PP_Exp
+ UU.Pretty.Ext: hlist :: PP a => [a] -> PP_Doc
+ UU.Pretty.Ext: hlist_sp :: PP a => [a] -> PP_Doc
+ UU.Pretty.Ext: vlist :: PP a => [a] -> PP_Doc
+ UU.Scanner.TokenParser: pCBrack :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pCBrackPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pCCurly :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pCCurlyPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pCParen :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pCParenPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pChar :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pCharPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pComma :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pCommaPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pConid :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pConidPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pConsym :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pConsymPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pFraction :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pFractionPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pInteger :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pInteger10 :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pInteger10Pos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pInteger16 :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pInteger16Pos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pInteger8 :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pInteger8Pos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pIntegerPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pOBrack :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pOBrackPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pOCurly :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pOCurlyPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pOParen :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pOParenPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pSemi :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pSemiPos :: IsParser p Token => p Pos
+ UU.Scanner.TokenParser: pString :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pStringPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pTextln :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pTextlnPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pTextnm :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pTextnmPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pVarid :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pVaridPos :: IsParser p Token => p (String, Pos)
+ UU.Scanner.TokenParser: pVarsym :: IsParser p Token => p String
+ UU.Scanner.TokenParser: pVarsymPos :: IsParser p Token => p (String, Pos)
- UU.PPrint: class Pretty a
+ UU.PPrint: class Pretty a where prettyList = list . map pretty
- UU.Parsing.Interface: class IsParser p s | p -> s
+ UU.Parsing.Interface: class IsParser p s | p -> s where f <$> p = pSucceed f <*> p f <$ q = pSucceed f <* q p <* q = pSucceed const <*> p <*> q p *> q = pSucceed (flip const) <*> p <*> q pSym a = pCostSym 5# a a pRange = pCostRange 5#
- UU.Parsing.MachineInterface: StRepair :: Int# -> !Message s p -> Steps val s p -> Steps val s p
+ UU.Parsing.MachineInterface: StRepair :: Int# -> !(Message s p) -> Steps val s p -> Steps val s p
- UU.Parsing.MachineInterface: class InputState state s pos | state -> s, state -> pos
+ UU.Parsing.MachineInterface: class InputState state s pos | state -> s, state -> pos where reportError _ = id insertSymbol _ = id deleteSymbol _ = id
- UU.Parsing.MachineInterface: class Symbol s
+ UU.Parsing.MachineInterface: class Symbol s where deleteCost b = 5# symBefore = error "You should have made your token type an instance of the Class Symbol. eg by defining symBefore = pred" symAfter = error "You should have made your token type an instance of the Class Symbol. eg by defining symAfter = succ"
- UU.Parsing.MachineInterface: m :: Steps val s p -> !Message s p
+ UU.Parsing.MachineInterface: m :: Steps val s p -> !(Message s p)
- UU.Parsing.Offside: scanLiftTokensToOffside :: InputState state s p => state -> OffsideInput inp s p -> OffsideInput inp s p
+ UU.Parsing.Offside: scanLiftTokensToOffside :: InputState state s pos => state -> OffsideInput inp s pos -> OffsideInput inp s pos
- UU.Parsing.StateParser: class StateParser p st | p -> st
+ UU.Parsing.StateParser: class StateParser p st | p -> st where set x = change (const x) get = change id
- UU.Pretty.Basic: class Show a => PP a
+ UU.Pretty.Basic: class Show a => PP a where pp = text . show ppList as = if null as then empty else foldr (>|<) empty . map pp $ as
Files
- src/UU/Parsing/Machine.hs +2/−0
- uulib.cabal +1/−2
src/UU/Parsing/Machine.hs view
@@ -307,6 +307,8 @@ -- ======================================================================================= -- ===== MKPARSER ======================================================================== -- =======================================================================================+mkParser :: (InputState state s p, Symbol s, Ord s, OutputState result) =>+ Nat -> Maybe (Bool, Either a (ParsRec state result s p a)) -> OneDescr state result s p a -> AnaParser state result s p a mkParser length zd ~descr@(OneDescr firsts tab) -- pattern matching should be lazy for lazy computation of length for empty parsers = let parstab = foldr1 mergeTables [[(k, p)]| (k, TableEntry p _) <- tab] mkactualparser getp
uulib.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.6 build-type: Simple name: uulib-version: 0.9.14+version: 0.9.15 license: BSD3 license-file: COPYRIGHT maintainer: S. Doaitse Swierstra@@ -32,5 +32,4 @@ UU.Scanner UU.Util.BinaryTrees UU.Util.PermTree UU.Util.Utils UU.Pretty.Basic UU.Parsing.Machine extensions: RankNTypes FunctionalDependencies TypeSynonymInstances UndecidableInstances FlexibleInstances MultiParamTypeClasses FlexibleContexts CPP ExistentialQuantification- ghc-options: -O0 hs-source-dirs: src