@@ -143,29 +143,30 @@ makeSrcMaps = (\case (_, Fe, _) -> Nothing; x -> Just (done x))
143143 . Text. foldl' (\ x y -> go y x) (mempty , F1 [] 1 , SM 0 0 0 JumpRegular 0 )
144144 where
145145 done (xs, s, p) = let (xs', _, _) = go ' ;' (xs, s, p) in xs'
146+ readR = read . reverse
146147
147148 go :: Char -> (Seq SrcMap , SrcMapParseState , SrcMap ) -> (Seq SrcMap , SrcMapParseState , SrcMap )
148149 go ' :' (xs, F1 [] _, p@ (SM a _ _ _ _)) = (xs, F2 a [] 1 , p)
149- go ' :' (xs, F1 ds k, p) = (xs, F2 (k * (read ds)) [] 1 , p)
150+ go ' :' (xs, F1 ds k, p) = (xs, F2 (k * (readR ds)) [] 1 , p)
150151 go ' -' (xs, F1 [] _, p) = (xs, F1 [] (- 1 ), p)
151152 go d (xs, F1 ds k, p) | isDigit d = (xs, F1 (d : ds) k, p)
152153 go ' ;' (xs, F1 [] k, p) = (xs |> p, F1 [] k, p)
153- go ' ;' (xs, F1 ds k, SM _ b c d e) = let p' = SM (k * (read ds)) b c d e in (xs |> p', F1 [] 1 , p')
154+ go ' ;' (xs, F1 ds k, SM _ b c d e) = let p' = SM (k * (readR ds)) b c d e in (xs |> p', F1 [] 1 , p')
154155
155156 go ' -' (xs, F2 a [] _, p) = (xs, F2 a [] (- 1 ), p)
156157 go d (xs, F2 a ds k, p) | isDigit d = (xs, F2 a (d : ds) k, p)
157158 go ' :' (xs, F2 a [] _, p@ (SM _ b _ _ _)) = (xs, F3 a b [] 1 , p)
158- go ' :' (xs, F2 a ds k, p) = (xs, F3 a (k * (read ds)) [] 1 , p)
159+ go ' :' (xs, F2 a ds k, p) = (xs, F3 a (k * (readR ds)) [] 1 , p)
159160 go ' ;' (xs, F2 a [] _, SM _ b c d e) = let p' = SM a b c d e in (xs |> p', F1 [] 1 , p')
160- go ' ;' (xs, F2 a ds k, SM _ _ c d e) = let p' = SM a (k * (read ds)) c d e in
161+ go ' ;' (xs, F2 a ds k, SM _ _ c d e) = let p' = SM a (k * (readR ds)) c d e in
161162 (xs |> p', F1 [] 1 , p')
162163
163164 go d (xs, F3 a b ds k, p) | isDigit d = (xs, F3 a b (d : ds) k, p)
164165 go ' -' (xs, F3 a b [] _, p) = (xs, F3 a b [] (- 1 ), p)
165166 go ' :' (xs, F3 a b [] _, p@ (SM _ _ c _ _)) = (xs, F4 a b c Nothing , p)
166- go ' :' (xs, F3 a b ds k, p) = (xs, F4 a b (k * (read ds)) Nothing , p)
167+ go ' :' (xs, F3 a b ds k, p) = (xs, F4 a b (k * (readR ds)) Nothing , p)
167168 go ' ;' (xs, F3 a b [] _, SM _ _ c d e) = let p' = SM a b c d e in (xs |> p', F1 [] 1 , p')
168- go ' ;' (xs, F3 a b ds k, SM _ _ _ d e) = let p' = SM a b (k * (read ds)) d e in
169+ go ' ;' (xs, F3 a b ds k, SM _ _ _ d e) = let p' = SM a b (k * (readR ds)) d e in
169170 (xs |> p', F1 [] 1 , p')
170171
171172 go ' i' (xs, F4 a b c Nothing , p) = (xs, F4 a b c (Just JumpInto ), p)
@@ -179,7 +180,7 @@ makeSrcMaps = (\case (_, Fe, _) -> Nothing; x -> Just (done x))
179180 go d (xs, F5 a b c j ds, p) | isDigit d = (xs, F5 a b c j (d : ds), p)
180181 go ' ;' (xs, F5 a b c j [] , _) = let p' = SM a b c j (- 1 ) in -- solc <0.6
181182 (xs |> p', F1 [] 1 , p')
182- go ' ;' (xs, F5 a b c j ds, _) = let p' = SM a b c j (read ds) in -- solc >=0.6
183+ go ' ;' (xs, F5 a b c j ds, _) = let p' = SM a b c j (readR ds) in -- solc >=0.6
183184 (xs |> p', F1 [] 1 , p')
184185
185186 go c (xs, state, p) = (xs, error (" srcmap: y u " ++ show c ++ " in state" ++ show state ++ " ?!?" ), p)
0 commit comments