{-# LANGUAGE MagicHash #-} module HappyDoAction where foo :: Int# happyDoAction i tk st = case action of 0# -> happyFail i tk st - 1# -> happyAccept i tk st n | (n <# (0# :: Int#)) -> (happyReduceArr ! rule) i tk st where rule = (I# ((negateInt# ((n +# (1# :: Int#)))))) n -> happyShift new_state i tk st where new_state = (n -# (1# :: Int#)) where off = indexShortOffAddr happyActOffsets st off_i = (off +# i) check = if (off_i >=# (0# :: Int#)) then (indexShortOffAddr happyCheck off_i ==# i) else False action | check = indexShortOffAddr happyTable off_i | otherwise = indexShortOffAddr happyDefActions st