serialize statements
This commit is contained in:
parent
4fd2571d55
commit
1a2c2fb50f
1 changed files with 27 additions and 0 deletions
27
Main.hs
27
Main.hs
|
@ -178,3 +178,30 @@ Tautology
|
||||||
ghci> bucket $ fromJust $ fst <$> runParser stmt "(!(a|b)<->(!a&!b))"
|
ghci> bucket $ fromJust $ fst <$> runParser stmt "(!(a|b)<->(!a&!b))"
|
||||||
Tautology
|
Tautology
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
data SerializeFormat
|
||||||
|
= Ascii
|
||||||
|
| Latex
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
serialize :: SerializeFormat -> Statement -> String
|
||||||
|
serialize = aux
|
||||||
|
where
|
||||||
|
aux Ascii = ascii
|
||||||
|
aux Latex = latex
|
||||||
|
|
||||||
|
ascii (Atom string) = string
|
||||||
|
ascii (Not s) = "!" <> ascii s
|
||||||
|
ascii (And s1 s2) = connective "&" (ascii s1) (ascii s2)
|
||||||
|
ascii (Or s1 s2) = connective "|" (ascii s1) (ascii s2)
|
||||||
|
ascii (Implies s1 s2) = connective "->" (ascii s1) (ascii s2)
|
||||||
|
ascii (Iff s1 s2) = connective "<->" (ascii s1) (ascii s2)
|
||||||
|
|
||||||
|
latex (Atom string) = string
|
||||||
|
latex (Not s) = "\\neg " <> latex s
|
||||||
|
latex (And s1 s2) = connective "\\cap " (latex s1) (latex s2)
|
||||||
|
latex (Or s1 s2) = connective "\\cup " (latex s1) (latex s2)
|
||||||
|
latex (Implies s1 s2) = connective "\\to " (latex s1) (latex s2)
|
||||||
|
latex (Iff s1 s2) = connective "\\leftrightarrow " (latex s1) (latex s2)
|
||||||
|
|
||||||
|
connective token s1 s2 = "(" <> s1 <> token <> s2 <> ")"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue