case builder starting to work

This commit is contained in:
2024-08-30 21:40:14 -07:00
parent 7f47029efe
commit 987ab18b94
13 changed files with 340 additions and 65 deletions

35
test/src/Main.idr Normal file
View File

@@ -0,0 +1,35 @@
module Main
import Control.Monad.Error.Either
import Control.Monad.Error.Interface
import Lib.Types
import Lib.ProcessDecl
import Lib.TopContext
import Lib.Syntax
import Lib.CaseTree
testCase : M ()
testCase = do
-- need to get some defs in here
top <- get
let ctx = mkCtx top.metas
let e = emptyFC
-- maybe easier to parse out this data.
processDecl (Data e "Foo" (RU e) [])
tree <- buildTree ctx (MkProb [] (VU emptyFC))
--ty <- check (mkCtx top.metas) tm (VU fc)
pure ()
main : IO ()
main = do
-- TODO move the tests elsewhere
-- We'll need a new top, start an M, maybe push a few things in there
-- run buildTree and see what we get back
ctx <- empty
Right _ <- runEitherT $ runStateT ctx $ testCase
| Left (E fc msg) => putStrLn "Error: \{msg}"
putStrLn "done"
pure ()
-- A telescope is a list of binders, right? I've been leaving things as pi types to be explicit