fix import list
This commit is contained in:
parent
3a05d154d9
commit
27eb944b07
@ -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).
|
|
||||||
"""
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user