File: HappyDoAction.hs

package info (click to toggle)
haskell-src-exts 1.23.1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,852 kB
  • sloc: haskell: 13,707; makefile: 12
file content (30 lines) | stat: -rw-r--r-- 968 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{-# LANGUAGE MagicHash #-}
module HappyDoAction where

foo :: Int#

happyDoAction i tk st
    = {- nothing -}


      case action of
        0#        -> {- nothing -}
                     happyFail i tk st
        -1#       -> {- nothing -}
                     happyAccept i tk st
        n | (n <# (0# :: Int#)) -> {- nothing -}

                     (happyReduceArr ! rule) i tk st
                     where rule = (I# ((negateInt# ((n +# (1# :: Int#))))))
        n         -> {- nothing -}


                     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