begin code _span _str _len = do pushLexState code; lexToken
pop :: Action
-pop _span _buf _len = do popLexState; lexToken
+pop _span _buf _len = do _ <- popLexState
+ lexToken
pop_and :: Action -> Action
-pop_and act span buf len = do popLexState; act span buf len
+pop_and act span buf len = do _ <- popLexState
+ act span buf len
{-# INLINE nextCharIs #-}
nextCharIs :: StringBuffer -> (Char -> Bool) -> Bool
return (L span ITvccurly)
EQ -> do
--trace "layout: inserting ';'" $ do
- popLexState
+ _ <- popLexState
return (L span ITsemi)
GT -> do
- popLexState
+ _ <- popLexState
lexToken
-- certain keywords put us in the "layout" state, where we might
--
new_layout_context :: Bool -> Action
new_layout_context strict span _buf _len = do
- popLexState
+ _ <- popLexState
(AI _ offset _) <- getInput
ctx <- getContext
case ctx of
do_layout_left :: Action
do_layout_left span _buf _len = do
- popLexState
+ _ <- popLexState
pushLexState bol -- we must be at the start of a line
return (L span ITvccurly)
let line = parseUnsignedInteger buf len 10 octDecDigit
setSrcLoc (mkSrcLoc (srcSpanFile span) (fromIntegral line - 1) 0)
-- subtract one: the line number refers to the *following* line
- popLexState
+ _ <- popLexState
pushLexState code
lexToken
setFile code span buf len = do
let file = lexemeToFastString (stepOn buf) (len-2)
setSrcLoc (mkSrcLoc file (srcSpanEndLine span) (srcSpanEndCol span))
- popLexState
+ _ <- popLexState
pushLexState code
lexToken
"noinline" -> "notinline"
"specialise" -> "specialize"
"constructorlike" -> "conlike"
- otherwise -> prag'
+ _ -> prag'
canon_ws s = unwords (map canonical (words s))
}