summaryrefslogtreecommitdiff
path: root/app/Frontend.hs
diff options
context:
space:
mode:
authorMirek Kratochvil <exa.exa@gmail.com>2022-11-12 18:45:13 +0100
committerMirek Kratochvil <exa.exa@gmail.com>2022-11-12 18:45:13 +0100
commita736c1e7b727876b0b05f0b413e2c914437df13a (patch)
treef625bc8f0b5f25b5c88057f8681b495aaabc0f46 /app/Frontend.hs
parentb9633a33182f5b381e912366273709e59f469bb9 (diff)
downloadprlg-a736c1e7b727876b0b05f0b413e2c914437df13a.tar.gz
prlg-a736c1e7b727876b0b05f0b413e2c914437df13a.tar.bz2
compiled vars carry ids
Diffstat (limited to 'app/Frontend.hs')
-rw-r--r--app/Frontend.hs14
1 files changed, 8 insertions, 6 deletions
diff --git a/app/Frontend.hs b/app/Frontend.hs
index a17a85c..1adf39b 100644
--- a/app/Frontend.hs
+++ b/app/Frontend.hs
@@ -45,13 +45,15 @@ interpret = (>> return True) . lex
Left err -> liftIO $ putStrLn $ "expression parsing: " ++ err
Right prlg -> intern prlg
intern prlgs = do
- prlgi <- withStrTable $ \st -> C.internPrlg (C.varnames prlgs) st prlgs
- compile prlgi
- compile prlgi
- {- TODO: switch between prove goal/compile clause here -}
- = do
+ prlgi <- withStrTable $ \st -> C.internPrlg st prlgs
+ underscore <- findAtom "_"
+ prlgv <-
+ withStrTable $ \st ->
+ (st, C.variablizePrlg underscore (C.varIds st prlgi) prlgi)
+ compile prlgv
+ compile prlgv = do
commaId <- findStruct "," 2
- let code = C.seqGoals $ C.compileGoals commaId prlgi
+ let code = C.seqGoals $ C.compileGoals commaId prlgv
execute code
execute code = do
ds <- gets defs