fix import list

This commit is contained in:
Patrick Aldis 2026-03-06 18:11:43 +00:00
parent 3a05d154d9
commit 27eb944b07

View File

@ -1,5 +1,6 @@
{-# LANGUAGE BlockArguments #-} {-# LANGUAGE BlockArguments #-}
{-# LANGUAGE MultilineStrings #-} {-# LANGUAGE MultilineStrings #-}
{- HLINT ignore "Use void" -}
module Datalog.Parser ( module Datalog.Parser (
parseTerm, parseTerm,
@ -12,12 +13,11 @@ where
import Data.Text (Text) import Data.Text (Text)
import Data.Text qualified as T import Data.Text qualified as T
import Data.Void (Void) import Data.Void (Void)
import Datalog.Syntax (Atom' (..), Program' (..), Rule' (..), Term' (..)) import Datalog.Syntax (Atom' (..), Program' (..), Rule' (..))
import Datalog.Syntax hiding (Atom, Program, Rule, Term) import Datalog.Syntax hiding (Atom, Program, Rule, Term)
import Text.Megaparsec import Text.Megaparsec
import Text.Megaparsec.Char import Text.Megaparsec.Char
import Text.Megaparsec.Char.Lexer qualified as L import Text.Megaparsec.Char.Lexer qualified as L
import Text.Pretty.Simple
type Parser = Parsec Void Text type Parser = Parsec Void Text
@ -96,22 +96,3 @@ parseThingWithSub f parseSub = do
c <- parseSub c <- parseSub
SourcePos _ el ec <- getSourcePos SourcePos _ el ec <- getSourcePos
pure $ f (SrcLoc (unPos sl) (unPos sc) (unPos el) (unPos ec)) c pure $ f (SrcLoc (unPos sl) (unPos sc) (unPos el) (unPos ec)) c
test = do
let r = runParser parseProgram "???" prog
pPrint @IO r
prog =
"""
odd(X,Y) :- r(X,Y).
odd(X,Y) :- even(X,Z), r(Z,Y).
even(X,Y) :- odd(X,Z), r(Z,Y).
r(0,1).
r(1,2).
r(2,3).
r(3,4).
r(4,5).
r(X,Y) :- r(Y,X).
"""