packages feed

ptera-th 0.6.0.0 → 0.6.1.0

raw patch · 3 files changed

+24/−20 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Language.Parser.Ptera.TH.ParserLib: type PteraTHArray = Array
- Language.Parser.Ptera.TH.ParserLib: pteraTHArrayFromList :: Int -> [e] -> Array Int e
+ Language.Parser.Ptera.TH.ParserLib: pteraTHArrayFromList :: Int -> [e] -> PteraTHArray Int e
- Language.Parser.Ptera.TH.ParserLib: pteraTHArrayIndex :: Array Int e -> Int -> e
+ Language.Parser.Ptera.TH.ParserLib: pteraTHArrayIndex :: PteraTHArray Int e -> Int -> e

Files

ptera-th.cabal view
@@ -2,7 +2,7 @@ build-type:          Custom  name:                ptera-th-version:             0.6.0.0+version:             0.6.1.0 license:             Apache-2.0 OR MPL-2.0 license-file:        LICENSE copyright:           (c) 2021 Mizunashi Mana
src/Language/Parser/Ptera/TH/ParserLib.hs view
@@ -2,6 +2,7 @@     module Language.Parser.Ptera.Runner.Parser,     module Data.Proxy,     Parser,+    PteraTHArray,     pteraTHTokenToTerminal,     pteraTHArrayIndex,     pteraTHArrayFromList,@@ -36,13 +37,15 @@  type Parser = Runner.T +type PteraTHArray = Array.Array+ pteraTHTokenToTerminal :: GrammarToken tokens elem => Proxy tokens -> elem -> Int pteraTHTokenToTerminal p t = HEnum.unsafeHEnum do tokenToTerminal p t -pteraTHArrayIndex :: Array.Array Int e -> Int -> e+pteraTHArrayIndex :: PteraTHArray Int e -> Int -> e pteraTHArrayIndex arr i = arr Array.! i -pteraTHArrayFromList :: Int -> [e] -> Array.Array Int e+pteraTHArrayFromList :: Int -> [e] -> PteraTHArray Int e pteraTHArrayFromList b l = Array.listArray (0, b) l  pteraTHLookupTable8 :: Int -> Prim.Addr# -> Int -> Int -> Int
src/Language/Parser/Ptera/TH/Pipeline/SRB2ParserDec.hs view
@@ -109,6 +109,7 @@                     else Nothing             |]             <*> [d|+                table :: PteraTHArray Int (Maybe Int)                 table = pteraTHArrayFromList $(TH.lift ub) $(TH.ListE <$> qes)             |]     where@@ -121,7 +122,7 @@                 Nothing ->                     [e|Nothing|]                 Just (SRB.StateNum s) ->-                    [e|Just $(TH.lift s)|]+                    [e|Just $(TH.lift s) :: Maybe Int|]             [0..ub]  outputParserTransFn :: TH.Name@@ -302,12 +303,12 @@     -> TH.Q TH.Dec outputParserAltKindFn parserAltKindFnName alts = TH.ValD     do TH.VarP parserAltKindFnName-    <$> fmap TH.NormalB [e|-        let arr = pteraTHArrayFromList $(TH.lift do length alts - 1)-                $(TH.ListE <$> traverse altKindExp do toList alts)-        in \i -> pteraTHArrayIndex arr i+    <$> fmap TH.NormalB [e|\i -> pteraTHArrayIndex table i|]+    <*> [d|+        table :: PteraTHArray Int AltKind+        table = pteraTHArrayFromList $(TH.lift do length alts - 1)+            $(TH.ListE <$> traverse altKindExp do toList alts)     |]-    <*> pure []     where         altKindExp alt = case LAPEG.altKind alt of             AltSeq -> [e|AltSeq|]@@ -320,19 +321,19 @@     -> TH.Q TH.Dec outputParserStateHelpFn fnName states = TH.ValD     do TH.VarP fnName-    <$> fmap TH.NormalB [e|-        let arr = pteraTHArrayFromList $(TH.lift do length states - 1)-                $(TH.ListE <$> traverse stateHelpExp do toList states)-        in \i -> pteraTHArrayIndex arr i+    <$> fmap TH.NormalB [e|\i -> pteraTHArrayIndex table i|]+    <*> [d|+        table :: PteraTHArray Int [(Int, Int)]+        table = pteraTHArrayFromList $(TH.lift do length states - 1)+            $(TH.ListE <$> traverse stateHelpExp do toList states)     |]-    <*> pure []     where         stateHelpExp st =             let altItems = SRB.stateAltItems st             in TH.ListE <$> forM altItems \altItem -> do                 let altNum :: Int = coerce do SRB.altItemAltNum altItem                     pos :: Int = coerce do SRB.altItemCurPos altItem-                [e|($(TH.lift altNum), $(TH.lift pos))|]+                [e|($(TH.lift altNum) :: Int, $(TH.lift pos) :: Int)|]  outputParserAltHelpFn     :: TH.Name@@ -341,12 +342,12 @@     -> TH.Q TH.Dec outputParserAltHelpFn parserAltHelpFnName alts vars = TH.ValD     do TH.VarP parserAltHelpFnName-    <$> fmap TH.NormalB [e|-        let arr = pteraTHArrayFromList $(TH.lift do length alts - 1)-                $(TH.ListE <$> traverse altHelpExp do toList alts)-        in \i -> pteraTHArrayIndex arr i+    <$> fmap TH.NormalB [e|\i -> pteraTHArrayIndex table i|]+    <*> [d|+        table :: PteraTHArray Int (StringLit, Maybe ())+        table = pteraTHArrayFromList $(TH.lift do length alts - 1)+            $(TH.ListE <$> traverse altHelpExp do toList alts)     |]-    <*> pure []     where         altHelpExp alt =             let v = AlignableArray.forceIndex vars do LAPEG.altVar alt