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