simplified aToSlices

This commit is contained in:
Johannes Winklehner 2016-08-29 09:54:30 +02:00
parent c82c4dc85d
commit 9dbe6c7a79

View file

@ -199,12 +199,12 @@ invAcc a accumStr i (c:t) = let writeAcc = getWrite i accumStr
in if isNothing writeAcc
then invAcc a (accumStr ++ [c]) i t -- no assignment in accumStr, don't advance offset
else invAcc (a ++ [fromJust writeAcc]) [c] (i+(length accumStr)) t -- assignment in accumStr, advance offset to end
invAcc a _ _ _ = aToSlices a []
where aToSlices (a:as) slices = let a2 = (\(v,s,b) -> (s,b)) a
invAcc a _ _ _ = map (\(_,s,_) -> s) a
{-where aToSlices (a:as) slices = let a2 = (\(v,s,b) -> (s,b)) a
in if snd a2
then aToSlices as slices
else aToSlices as ((fst a2):slices)
aToSlices _ slices = slices
aToSlices _ slices = slices-}
getWrite :: Int -> String -> Maybe (String, Slice, Bool)
getWrite offset accumStr = ((Tdfa.matchOnceText §~ "(\\**[[:word:]]+)[[:blank:]]*=") accumStr) >>= matchToA