From fe6666d204c0728b4556574ddc184bc46013b193 Mon Sep 17 00:00:00 2001 From: Mirek Kratochvil Date: Fri, 11 Nov 2022 22:10:26 +0100 Subject: looks like vars work --- app/Frontend.hs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'app/Frontend.hs') diff --git a/app/Frontend.hs b/app/Frontend.hs index 2be4f68..2c92e1f 100644 --- a/app/Frontend.hs +++ b/app/Frontend.hs @@ -66,7 +66,8 @@ interpret = (>> return True) . lex Left err -> liftIO $ putStrLn $ "expression parsing: " ++ err Right prlg -> intern prlg intern prlgs = do - prlgi <- withStrTable $ flip C.strtablizePrlg prlgs + prlgi <- + withStrTable $ \st -> C.strtablizePrlg (C.varnames prlgs) st prlgs compile prlgi compile prlgi {- TODO: switch between prove goal/compile clause here -} @@ -93,18 +94,23 @@ addBuiltins = do c <- findAtom "c" b0 <- findStruct "b" 0 any <- findStruct "any" 1 + eq <- findStruct "=" 2 modify $ \s -> s { defs = M.fromList - [ (a1, [[I.U (I.Atom a), I.NoGoal], [I.U (I.Atom b), I.NoGoal]]) + [ (eq, [[I.U (I.LocalRef 0),I.U (I.LocalRef 0), I.NoGoal]]) + , (a1, [[I.U (I.Atom a), I.NoGoal], [I.U (I.Atom b), I.NoGoal]]) , ( b0 , [ [I.Goal, I.U (I.Struct a1), I.U (I.Atom c), I.LastCall] , [I.Goal, I.U (I.Struct a1), I.U (I.Atom b), I.LastCall] ]) - , (any, [[I.U I.VoidVar, I.NoGoal]]) + , (any, [[I.U I.VoidRef, I.NoGoal]]) ] - , ops = [(",", P.Op 1000 $ P.Infix P.X P.Y)] + , ops = + [ (",", P.Op 1000 $ P.Infix P.X P.Y) + , ("=", P.Op 700 $ P.Infix P.X P.X) + ] } interpreterStart :: PrlgEnv () -- cgit v1.2.3