From 2d5a8ece55d53decbe06f8520a0b2d3671d18f44 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sun, 13 Dec 2020 21:04:15 +0000 Subject: [PATCH] Display lists --- src/Propa/Prolog/Display.hs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Propa/Prolog/Display.hs b/src/Propa/Prolog/Display.hs index 46d84f2..436784a 100644 --- a/src/Propa/Prolog/Display.hs +++ b/src/Propa/Prolog/Display.hs @@ -17,9 +17,15 @@ displayStat :: T.Text -> [Term T.Text] -> T.Text displayStat name [] = name displayStat name args = name <> "(" <> T.intercalate ", " (map displayTerm args) <> ")" +displayList :: Term T.Text -> T.Text +displayList (Stat "[|]" [a, b]) = "," <> displayTerm a <> displayList b +displayList (Stat "[]" []) = "]" +displayList t = "|" <> displayTerm t <> "]" + displayTerm :: Term T.Text -> T.Text -displayTerm (Var v) = v -displayTerm (Stat name args) = displayStat name args +displayTerm (Var v) = v +displayTerm (Stat "[|]" [a, b]) = "[" <> displayTerm a <> displayList b +displayTerm (Stat name args) = displayStat name args displayTerms :: [Term T.Text] -> T.Text displayTerms terms = T.intercalate ",\n" (map displayTerm terms) <> "."