diff options
| author | Mirek Kratochvil <exa.exa@gmail.com> | 2022-11-12 18:45:13 +0100 |
|---|---|---|
| committer | Mirek Kratochvil <exa.exa@gmail.com> | 2022-11-12 18:45:13 +0100 |
| commit | a736c1e7b727876b0b05f0b413e2c914437df13a (patch) | |
| tree | f625bc8f0b5f25b5c88057f8681b495aaabc0f46 /app/Frontend.hs | |
| parent | b9633a33182f5b381e912366273709e59f469bb9 (diff) | |
| download | prlg-a736c1e7b727876b0b05f0b413e2c914437df13a.tar.gz prlg-a736c1e7b727876b0b05f0b413e2c914437df13a.tar.bz2 | |
compiled vars carry ids
Diffstat (limited to 'app/Frontend.hs')
| -rw-r--r-- | app/Frontend.hs | 14 |
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 |
