module Parser.ReplaceP where
replaceP :: String -> String
replaceP :: String -> String
replaceP (Char
x:Char
y:Char
z:Char
u:Char
v:String
xs)
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'[' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\"' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'[' Bool -> Bool -> Bool
&& Char
u Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' Bool -> Bool -> Bool
&& Char
v Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' = String
"[\"\\" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP String
xs
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
',' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' = String
"\",\"\\" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP (Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:Char
vChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
']' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\"' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
']' = String
"\"]" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP (Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:Char
vChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
| Bool
otherwise = Char
xChar -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP (Char
yChar -> String -> String
forall a. a -> [a] -> [a]
:Char
zChar -> String -> String
forall a. a -> [a] -> [a]
:Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:Char
vChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
replaceP (Char
x:Char
y:Char
z:Char
u:String
xs)
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
',' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' = String
"\",\"\\" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP (Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
']' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\"' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
']' = String
"\"]" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP (Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
| Bool
otherwise = Char
xChar -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP (Char
yChar -> String -> String
forall a. a -> [a] -> [a]
:Char
zChar -> String -> String
forall a. a -> [a] -> [a]
:Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
replaceP (Char
x:Char
y:Char
z:String
xs)
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
',' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\\' = String
"\",\"\\" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP String
xs
| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
']' Bool -> Bool -> Bool
&& Char
y Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\"' Bool -> Bool -> Bool
&& Char
z Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
']' = String
"\"]" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String -> String
replaceP String
xs
| Bool
otherwise = Char
xChar -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP (Char
yChar -> String -> String
forall a. a -> [a] -> [a]
:Char
zChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
replaceP String
xs = String
xs
replaceP4 :: String -> String
replaceP4 :: String -> String
replaceP4 (Char
t:Char
x:Char
y:Char
z:Char
u:Char
v:String
xs)
| [Char
t,Char
x,Char
y,Char
z,Char
u,Char
v] String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"\\\\1078" = Char
'\1078'Char -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP4 String
xs
| [Char
t,Char
x,Char
y,Char
z,Char
u,Char
v] String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"\\\\1079" = Char
'\1079'Char -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP4 String
xs
| [Char
t,Char
x,Char
y,Char
z,Char
u,Char
v] String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"\\\\1100" = Char
'\1100'Char -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP4 String
xs
| Bool
otherwise = Char
tChar -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP4 (Char
xChar -> String -> String
forall a. a -> [a] -> [a]
:Char
yChar -> String -> String
forall a. a -> [a] -> [a]
:Char
zChar -> String -> String
forall a. a -> [a] -> [a]
:Char
uChar -> String -> String
forall a. a -> [a] -> [a]
:Char
vChar -> String -> String
forall a. a -> [a] -> [a]
:String
xs)
replaceP4 (Char
x:String
xs) = Char
xChar -> String -> String
forall a. a -> [a] -> [a]
:String -> String
replaceP4 String
xs
replaceP4 [] = []