Skip to content

Commit 9120f8f

Browse files
authored
Merge pull request #618 from smucclaw/fix/nlgenv
Fix build errors introduced by PR merges
2 parents e77def0 + 2af3590 commit 9120f8f

File tree

3 files changed

+38
-29
lines changed

3 files changed

+38
-29
lines changed

lib/haskell/natural4/app/Main.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ purescriptTranspiler =
802802
strLangs <- unsafeInterleaveIO $ printLangs allLangs
803803
let (psResult, psErrors) = xpLog do
804804
mutter "* main calling translate2PS"
805-
fmapE (<> ("\n\n" <> "allLang = [\"" <> strLangs <> "\"]")) (translate2PS nlgd.allEnv nlgd.env ds.interpreted ds.parsed)
805+
fmapE (<> ("\n\n" <> "allLang = [\"" <> strLangs <> "\"]")) (translate2PS nlgd.allEnv nlgd.env ds.interpreted)
806806
pure (Success (commentIfError "-- ! -- " psResult) (Just psErrors))
807807
)
808808

lib/haskell/natural4/src/LS/XPile/Purescript.hs

+3-2
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,9 @@ asPurescript env l4i rl = do
279279
-- )
280280
-- )
281281

282-
translate2PS :: [NLGEnv] -> NLGEnv -> Interpreted -> [Rule] -> XPileLogE String
283-
translate2PS nlgEnvs eng l4i rules = do
282+
translate2PS :: [NLGEnv] -> NLGEnv -> Interpreted -> XPileLogE String
283+
translate2PS nlgEnvs eng l4i = do
284+
let rules = origrules l4i
284285
traverse_
285286
mutter
286287
[ [__i|** translate2PS: running against #{length rules} rules|],

lib/haskell/natural4/test/LS/XPile/PurescriptSpec.hs

+34-26
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,49 @@
99
module LS.XPile.PurescriptSpec (spec) where
1010

1111
import Control.Monad (unless)
12+
import Control.Monad.Trans.Except (runExceptT)
1213
import Data.Either (lefts, rights)
14+
import Data.Text (Text)
15+
import qualified Data.Text as Text
1316
import Data.Text.Lazy qualified as TL
1417
import Data.Text.Lazy.IO qualified as TL
15-
import LS qualified as SFL4
16-
import LS.NLP.NLG (NLGEnv, allLangs, langEng, myNLGEnv, printLangs)
17-
import LS.XPile.Logging (fmapE, xpLog)
18-
import LS.XPile.Purescript (translate2PS)
1918
import System.FilePath
20-
import Test.Hspec (Spec, describe, it, runIO)
19+
import System.IO.Unsafe (unsafeInterleaveIO)
20+
import Test.Hspec (Spec, describe, it)
2121
import Test.Hspec.Golden ( Golden(..) )
2222
import Prelude hiding (exp, seq)
2323
import LS.Interpreter (l4interpret)
2424
import PGF (Language)
25-
import LS (Interpreted)
25+
26+
import LS qualified as SFL4
27+
import LS.Log
28+
import LS.NLP.NLG (NLGEnv, allLangs, langEng, myNLGEnv, NlgLog, printLangs)
29+
import LS.XPile.Logging (xpLog, fmapE)
30+
import LS.XPile.Purescript (translate2PS)
31+
2632
data NLGData
2733
= MkNLGData
2834
{ env :: NLGEnv,
2935
allEnv :: [NLGEnv]
3036
}
3137

32-
loadNLGEnv :: Either [String] Language -> Interpreted -> IO NLGData
33-
loadNLGEnv engE l4i =
38+
loadNLGEnv :: IOTracer NlgLog -> Either [Text] Language -> IO NLGData
39+
loadNLGEnv tracer engE =
3440
case engE of
3541
Left err -> do
36-
error $ unlines $ "natural4: encountered error when obtaining langEng" : err
42+
fail $ Text.unpack $ Text.unlines $ "natural4: encountered error when obtaining langEng" : err
3743
Right eng -> do
38-
(nlgEnv, _nlgEnvErr) <- xpLog <$> myNLGEnv l4i eng -- Only load the NLG environment if we need it.
39-
(allNLGEnv, _) <- do
44+
nlgEnv <- runExceptT $ myNLGEnv tracer eng
45+
allNLGEnv <- do
4046
nlgLangs <- allLangs
41-
xps <- traverse (myNLGEnv l4i) nlgLangs
42-
return (xpLog $ sequenceA xps)
47+
traverse (runExceptT . myNLGEnv tracer) nlgLangs
4348
case nlgEnv of
4449
Left err -> do
45-
error $ unlines $ "natural4: encountered error while obtaining myNLGEnv" : err
50+
fail $ Text.unpack $ Text.unlines $ "natural4: encountered error while obtaining myNLGEnv" : err
4651
Right nlgEnvR -> do
4752
let allNLGEnvErrors = mconcat $ lefts allNLGEnv
4853
unless (null allNLGEnvErrors) do
49-
error $ unlines $ "natural4: encountered error while obtaining allNLGEnv" : allNLGEnvErrors
54+
fail $ Text.unpack $ Text.unlines $ "natural4: encountered error while obtaining allNLGEnv" : allNLGEnvErrors
5055

5156
let allNLGEnvR = rights allNLGEnv
5257

@@ -59,23 +64,26 @@ loadNLGEnv engE l4i =
5964

6065
transpileFile :: String -> IO TL.Text
6166
transpileFile filename = do
67+
let tracer =
68+
-- Use the 'prettyTracer' if you need logs for debugging
69+
-- prettyTracer
70+
mempty
6271
let testPath = "test" </> "testdata" </> "golden" </> "PurescriptSpec" </> filename <.> "csv"
6372
opts = SFL4.defaultOptions {SFL4.file = [testPath]}
64-
strLangs <- printLangs allLangs
6573
rules <- SFL4.dumpRules opts
6674
l4i <- l4interpret rules
67-
(engE, _) <- xpLog <$> langEng
68-
nlgData <- loadNLGEnv engE l4i
69-
75+
engE <- runExceptT $ langEng tracer
76+
nlgData <- loadNLGEnv tracer engE
77+
strLangs <- unsafeInterleaveIO $ printLangs allLangs
7078
let justNLGDate = nlgData
7179
nlgEnvs = justNLGDate.allEnv
7280
eng = justNLGDate.env
7381
(psResult, _) = xpLog do
74-
fmapE (<> ("\n\n" <> "allLang = [\"" <> strLangs <> "\"]")) (translate2PS nlgEnvs eng rules)
75-
82+
fmapE (<> ("\n\n" <> "allLang = [\"" <> strLangs <> "\"]")) (translate2PS nlgEnvs eng l4i)
83+
7684
case psResult of
7785
Left err -> do
78-
error $ unlines $ "natural4: encountered error while obtaining myNLGEnv" : err
86+
fail $ unlines $ "natural4: encountered error while obtaining myNLGEnv" : err
7987
Right goodResult -> do
8088
pure $ TL.pack goodResult
8189

@@ -100,11 +108,11 @@ spec :: Spec
100108
spec = do
101109
describe "Purescript transpiler" do
102110
describe "must_sing" do
103-
must_sing_purs <- runIO $ transpileFile "must_sing"
104111
it "convert must sing to Purescript" do
105-
goldenGeneric "must_sing" must_sing_purs
112+
must_sing_purs <- transpileFile "must_sing"
113+
pure $ goldenGeneric "must_sing" must_sing_purs
106114

107115
describe "rodents" do
108-
rodents_purs <- runIO $ transpileFile "rodents"
109116
it "convert must sing to Purescript" do
110-
goldenGeneric "rodents" rodents_purs
117+
rodents_purs <- transpileFile "rodents"
118+
pure $ goldenGeneric "rodents" rodents_purs

0 commit comments

Comments
 (0)