Skip to content

Commit

Permalink
WIP Remove parseTm.
Browse files Browse the repository at this point in the history
  • Loading branch information
thealmarty committed Jan 18, 2022
1 parent 7c8a51a commit e3f86d2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
8 changes: 4 additions & 4 deletions plutus-core/plutus-core/src/PlutusCore/Parser.hs
Expand Up @@ -84,13 +84,13 @@ program = whitespace >> do
-- | Parse a PLC term. The resulting program will have fresh names. The underlying monad must be capable
-- of handling any parse errors.
parseTerm ::
String -> T.Text ->
ByteString ->
Either (ParseErrorBundle T.Text ParseError) (Term TyName Name DefaultUni DefaultFun SourcePos)
parseTerm = parse term
parseTerm = parseGen term

-- | Parse a PLC type. The resulting program will have fresh names. The underlying monad must be capable
-- of handling any parse errors.
parseType ::
String -> T.Text ->
ByteString ->
Either (ParseErrorBundle T.Text ParseError) (Type TyName DefaultUni SourcePos)
parseType = parse pType
parseType = parseGen pType
11 changes: 6 additions & 5 deletions plutus-core/plutus-core/test/Spec.hs
Expand Up @@ -28,6 +28,7 @@ import PlutusCore.Pretty

import Control.Monad.Except
import Data.ByteString.Lazy qualified as BSL
import Data.ByteString.Lazy.Char8 (unpack)
import Data.Text qualified as T
import Data.Text.Encoding (encodeUtf8)
import Flat (flat)
Expand Down Expand Up @@ -101,8 +102,8 @@ propFlat = property $ do
type DefaultTerm a = Term TyName Name DefaultUni DefaultFun a
type DefaultError a = Error DefaultUni DefaultFun a

-- parseTm :: BSL.ByteString -> Either (DefaultError SourcePos) (DefaultTerm SourcePos)
parseTm = runQuote . runExceptT . parseTerm -- . encodeUtf8 . T.pack
-- parseTerm :: BSL.ByteString -> Either (DefaultError SourcePos) (DefaultTerm SourcePos)
-- parseTerm = parseTerm -- . encodeUtf8 . T.pack

reprint :: PrettyPlc a => a -> BSL.ByteString
reprint = BSL.fromStrict . encodeUtf8 . displayPlcDef
Expand All @@ -112,7 +113,7 @@ reprint = BSL.fromStrict . encodeUtf8 . displayPlcDef
because there are only three possibilities (@()@, @false@, and @true@). -}
testLexConstant :: Assertion
testLexConstant =
mapM_ (\t -> (fmap void . parseTm . reprint $ t) @?= Right t) smallConsts
mapM_ (\t -> (fmap void . parseTerm . reprint $ t) @?= Right t) smallConsts
where
smallConsts :: [DefaultTerm ()]
smallConsts =
Expand Down Expand Up @@ -155,15 +156,15 @@ genConstantForTest = Gen.frequency
propLexConstant :: Property
propLexConstant = withTests (1000 :: Hedgehog.TestLimit) . property $ do
term <- forAllPretty $ Constant () <$> runAstGen genConstantForTest
Hedgehog.tripping term reprint (fmap void . parseTm)
Hedgehog.tripping term reprint (fmap void . parseTerm)

-- | Generate a random 'Program', pretty-print it, and parse the pretty-printed
-- text, hopefully returning the same thing.
propParser :: Property
propParser = property $ do
prog <- TextualProgram <$> forAllPretty (runAstGen genProgram)
Hedgehog.tripping prog (reprint . unTextualProgram)
(\p -> fmap (TextualProgram . void) $ runQuote $ runExceptT $ parseProgram p)
(\p -> fmap (TextualProgram . void) $ parseProgram p)

type TestFunction a = BSL.ByteString -> Either (DefaultError a) T.Text

Expand Down

0 comments on commit e3f86d2

Please sign in to comment.