packages feed

hjs-0.1: src/HJS/Parser/JavaScriptParser.hs

{-# OPTIONS -cpp #-}
module HJS.Parser.JavaScriptParser where

import Data.Char
import Control.Monad.State
import Control.Monad.Error

import HJS.Parser.Lexer
import HJS.Parser.LexerM
import HJS.Parser.JavaScript
import HJS.Parser.ParserMonad
#if __GLASGOW_HASKELL__ >= 503
import Data.Array
#else
import Array
#endif

-- parser produced by Happy Version 1.16

data HappyAbsSyn t5 t6 t7 t8 t9 t11 t12 t13 t14 t15 t16 t18 t19 t20 t21 t22 t23 t24 t25 t26 t27 t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62 t63 t64 t65 t66
	= HappyTerminal Token
	| HappyErrorToken Int
	| HappyAbsSyn5 t5
	| HappyAbsSyn6 t6
	| HappyAbsSyn7 t7
	| HappyAbsSyn8 t8
	| HappyAbsSyn9 t9
	| HappyAbsSyn10 (PrimExpr)
	| HappyAbsSyn11 t11
	| HappyAbsSyn12 t12
	| HappyAbsSyn13 t13
	| HappyAbsSyn14 t14
	| HappyAbsSyn15 t15
	| HappyAbsSyn16 t16
	| HappyAbsSyn17 (MemberExpr)
	| HappyAbsSyn18 t18
	| HappyAbsSyn19 t19
	| HappyAbsSyn20 t20
	| HappyAbsSyn21 t21
	| HappyAbsSyn22 t22
	| HappyAbsSyn23 t23
	| HappyAbsSyn24 t24
	| HappyAbsSyn25 t25
	| HappyAbsSyn26 t26
	| HappyAbsSyn27 t27
	| HappyAbsSyn28 t28
	| HappyAbsSyn29 t29
	| HappyAbsSyn30 t30
	| HappyAbsSyn31 t31
	| HappyAbsSyn32 t32
	| HappyAbsSyn33 t33
	| HappyAbsSyn34 t34
	| HappyAbsSyn35 t35
	| HappyAbsSyn36 t36
	| HappyAbsSyn37 t37
	| HappyAbsSyn38 t38
	| HappyAbsSyn39 t39
	| HappyAbsSyn40 t40
	| HappyAbsSyn41 t41
	| HappyAbsSyn42 t42
	| HappyAbsSyn43 t43
	| HappyAbsSyn44 t44
	| HappyAbsSyn45 t45
	| HappyAbsSyn46 t46
	| HappyAbsSyn47 t47
	| HappyAbsSyn48 t48
	| HappyAbsSyn49 t49
	| HappyAbsSyn50 t50
	| HappyAbsSyn51 t51
	| HappyAbsSyn52 t52
	| HappyAbsSyn53 t53
	| HappyAbsSyn54 t54
	| HappyAbsSyn55 t55
	| HappyAbsSyn56 t56
	| HappyAbsSyn57 t57
	| HappyAbsSyn58 t58
	| HappyAbsSyn59 t59
	| HappyAbsSyn60 t60
	| HappyAbsSyn61 t61
	| HappyAbsSyn62 t62
	| HappyAbsSyn63 t63
	| HappyAbsSyn64 t64
	| HappyAbsSyn65 t65
	| HappyAbsSyn66 t66

happyActOffsets :: Array Int Int
happyActOffsets = listArray (0,331) ([137,655,137,0,417,0,0,0,0,121,0,79,46,0,0,76,313,156,127,160,447,468,464,449,14,0,0,0,0,0,0,0,409,0,0,0,0,408,0,137,0,0,445,0,641,641,0,592,641,641,641,641,592,68,641,641,641,448,0,137,444,438,0,440,440,17,652,402,26,20,592,579,429,428,372,0,8,372,5,0,422,0,433,0,0,592,592,393,0,0,391,389,0,378,0,253,137,77,0,0,420,426,414,0,416,394,519,592,350,592,280,0,0,0,0,-1,386,4,385,74,0,0,0,0,0,388,0,0,137,0,0,592,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,592,0,0,0,0,0,0,0,0,0,507,384,592,0,383,592,0,347,0,345,0,296,0,0,0,0,0,0,76,76,277,277,277,156,156,156,156,156,156,127,127,127,127,160,377,363,375,364,362,0,0,592,0,0,0,0,369,368,365,0,322,23,9,367,367,0,592,266,0,366,0,200,0,0,358,326,0,0,0,0,349,334,592,146,0,0,0,305,137,0,337,0,0,242,300,335,0,0,10,592,592,592,137,592,137,0,592,0,592,0,0,0,0,284,321,0,274,314,271,592,592,0,137,283,-7,0,0,250,-25,0,592,270,592,137,239,137,293,246,592,137,592,222,137,0,0,260,0,237,592,137,0,226,232,0,223,0,143,0,203,137,-22,137,136,0,0,199,137,137,0,0,137,0,137,0,137,0,0
	])

happyGotoOffsets :: Array Int Int
happyGotoOffsets = listArray (0,331) ([390,158,329,0,0,0,0,0,0,186,0,174,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,451,0,0,0,0,3443,3424,0,2465,3405,3386,3367,3348,2426,713,3329,3310,3291,0,0,1545,0,0,0,213,211,109,695,126,0,0,1918,1879,0,0,0,0,88,0,0,0,0,0,100,0,0,2387,2348,0,0,0,0,0,0,0,0,-15,869,130,0,0,0,94,0,0,83,0,1597,2309,0,2270,0,0,0,0,0,1493,0,86,0,0,0,0,0,0,0,0,0,0,1441,0,0,2738,2777,2805,2832,2858,2883,2976,2953,2930,2907,3109,3087,3065,3043,3021,2999,3173,3152,3131,3214,3194,3272,3253,3234,2699,0,0,0,0,0,0,0,0,0,2231,0,2191,0,0,2152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2660,0,0,0,0,0,0,0,0,0,0,57,208,56,0,2621,0,0,33,0,206,0,0,0,53,0,0,0,0,0,0,2582,212,0,0,0,-8,1389,0,0,0,0,0,0,0,0,0,0,1840,2113,1801,1337,2074,1285,0,2543,0,2504,0,0,0,0,0,0,0,0,0,0,1762,2035,0,268,0,0,0,0,164,114,0,1996,2,1957,207,0,451,0,0,1723,1233,1684,0,1181,0,0,0,0,0,1645,1129,0,0,0,0,0,0,65,0,0,817,-40,765,-19,0,0,0,1077,1025,0,0,973,0,921,0,921,0,0
	])

happyDefActions :: Array Int Int
happyDefActions = listArray (0,331) ([0,0,0,-11,0,-12,-29,-13,-14,-33,-43,-44,-45,-48,-58,-62,-65,-69,-76,-81,-83,-85,-87,-89,-91,-100,-102,-134,-170,-103,-104,-119,0,-106,-107,-108,-117,-171,0,-167,-168,-4,-10,-5,0,0,-6,0,0,0,0,0,-17,0,0,0,0,0,-105,0,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,-10,0,0,0,-22,0,-28,-26,-27,-20,0,0,0,-101,-114,0,0,-112,0,-110,0,-121,-33,-34,-160,0,-163,-125,-147,-150,-124,-145,0,0,0,-45,-51,-50,-49,-122,0,-4,-10,-5,0,-18,-53,-52,-57,-56,0,-55,-54,0,-169,-135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-98,-46,-47,-93,-94,-95,-96,-97,-36,0,0,0,-35,0,0,-8,0,-31,0,-38,0,-41,-39,-99,-61,-60,-59,-64,-63,-68,-67,-66,-75,-74,-71,-73,-72,-70,-80,-79,-78,-77,-82,-84,-86,-88,-90,0,-116,-15,0,-16,-25,-123,-120,0,0,0,-146,0,0,-10,0,0,-149,0,0,-164,-163,-32,-126,-129,-127,0,0,-109,-111,-118,-113,0,0,0,0,-21,-23,-24,0,0,-133,0,-130,-128,0,0,0,-151,-148,0,-145,0,-145,0,0,0,-19,0,-40,0,-37,-30,-42,-92,-137,0,-139,0,0,0,-145,0,-165,0,0,0,-115,-152,-155,0,-156,0,0,0,0,0,-166,0,0,-145,0,-145,0,0,-136,-138,0,-144,0,-145,0,-161,0,0,-131,0,-157,-155,-153,0,-121,0,-121,0,-162,-143,0,0,0,-140,-142,0,-132,-158,-154,-159,-141
	])

happyCheck :: Array Int Int
happyCheck = listArray (0,3518) ([-1,2,3,4,11,6,7,3,9,10,2,3,4,53,5,40,35,12,40,15,3,12,12,3,39,40,41,10,14,3,16,32,33,34,35,12,37,35,39,40,41,42,43,51,51,40,71,72,40,71,51,5,53,54,55,56,57,58,59,60,61,62,53,53,65,66,67,68,69,70,2,3,4,53,6,7,53,9,10,53,34,35,73,73,8,9,12,10,35,10,57,45,46,47,48,49,73,9,10,11,32,33,34,35,48,37,49,39,40,41,42,43,38,36,37,36,37,52,53,51,44,53,54,55,56,57,58,59,60,61,62,10,49,65,66,67,68,69,70,2,3,4,56,6,7,15,9,10,2,3,4,57,25,26,27,28,56,36,37,1,2,35,4,5,6,56,8,53,54,32,33,34,35,31,37,39,39,50,41,42,43,21,22,23,24,29,30,31,51,15,53,54,55,56,57,58,59,60,61,62,73,15,65,66,67,68,69,70,1,2,11,4,5,6,71,8,52,53,15,12,13,14,10,11,17,18,19,20,21,22,23,24,25,26,27,28,29,30,15,32,33,34,35,11,37,38,40,41,11,42,43,44,45,11,12,47,48,50,47,48,47,48,55,63,64,58,40,60,61,1,2,11,4,5,6,53,8,11,12,40,12,13,14,6,7,17,18,19,20,21,22,23,24,25,26,27,28,29,30,53,32,33,34,35,11,37,38,11,12,39,42,43,44,45,34,35,63,64,50,6,7,71,39,55,53,11,58,53,60,61,1,2,11,4,5,6,52,8,3,39,3,12,13,14,39,11,17,18,19,20,21,22,23,24,25,26,27,28,29,30,11,32,33,34,35,39,37,38,10,3,3,42,43,44,45,53,11,15,10,50,11,17,19,38,55,38,3,3,59,60,61,1,2,18,4,5,6,20,8,11,15,15,12,13,14,55,12,17,18,19,20,21,22,23,24,25,26,27,28,29,30,5,32,33,34,35,12,37,38,3,10,53,42,43,44,45,3,15,10,10,50,39,53,3,53,55,53,75,10,59,60,61,1,2,10,4,5,6,10,8,15,53,53,12,13,14,17,20,17,18,19,20,21,22,23,24,25,26,27,28,29,30,18,32,33,34,35,19,37,38,-1,74,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,-1,-1,55,-1,-1,2,3,4,61,6,7,-1,9,10,11,-1,-1,2,3,4,-1,6,7,-1,9,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,33,34,35,-1,37,-1,39,-1,41,42,43,32,33,34,35,-1,37,-1,39,-1,41,42,43,-1,57,-1,-1,60,61,-1,-1,-1,-1,-1,-1,-1,57,58,-1,60,61,2,3,4,-1,6,7,-1,9,10,-1,-1,-1,-1,2,3,4,-1,6,7,-1,9,10,-1,-1,-1,-1,-1,-1,-1,-1,32,33,34,35,-1,37,-1,39,-1,41,42,43,-1,32,33,34,35,-1,37,-1,39,53,41,42,43,57,-1,-1,60,61,-1,-1,2,3,4,-1,6,7,57,9,10,60,61,2,3,4,2,3,4,-1,9,10,-1,9,10,-1,-1,-1,-1,-1,-1,-1,32,33,34,35,-1,37,-1,39,-1,41,42,43,-1,-1,-1,-1,37,-1,39,37,-1,39,-1,1,2,57,4,5,6,61,8,-1,-1,-1,12,13,57,-1,-1,57,61,1,2,-1,4,5,6,-1,8,9,10,11,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,36,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,36,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,36,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,36,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,34,35,-1,37,38,-1,-1,-1,42,43,44,45,-1,-1,-1,-1,50,-1,-1,1,2,55,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,47,48,1,2,-1,4,5,6,55,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,46,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,46,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,46,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,46,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,46,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,46,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,42,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,42,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,55,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,7,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,33,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-1,32,-1,-1,-1,-1,-1,-1,-1,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,55,17,18,19,20,21,22,23,24,25,26,27,28,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,27,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,26,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,25,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,24,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,23,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,22,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,21,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,20,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,1,2,-1,4,5,6,-1,8,-1,-1,-1,12,13,14,-1,-1,17,18,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
	])

happyTable :: Array Int Int
happyTable = listArray (0,3518) ([0,42,43,44,287,45,46,101,47,48,82,83,84,310,222,313,326,239,329,129,101,-150,220,92,226,227,228,102,132,94,133,49,50,51,52,220,53,308,54,211,55,56,57,281,288,240,286,314,85,286,58,157,59,60,61,62,63,64,65,66,67,68,-150,275,69,70,71,72,73,74,117,118,119,93,45,46,255,47,48,95,158,159,-150,276,153,154,207,166,244,166,248,160,161,162,163,164,256,78,79,80,49,50,51,52,252,53,220,54,85,55,56,57,208,170,171,167,168,315,284,58,155,59,60,61,62,63,64,65,66,67,68,166,220,69,70,71,72,73,74,42,43,44,208,45,46,225,47,48,82,83,84,222,142,143,144,145,208,170,171,3,4,95,5,74,7,99,8,310,311,49,50,51,52,155,53,97,54,146,55,56,57,138,139,140,141,148,149,150,58,164,59,60,61,62,63,64,65,66,67,68,147,168,69,70,71,72,73,74,3,4,326,5,6,7,286,8,283,284,315,9,10,11,240,80,12,13,14,15,16,17,18,19,20,21,22,23,24,25,317,26,27,28,29,318,30,31,246,247,322,32,33,34,35,279,251,253,103,36,102,103,105,103,37,230,231,306,319,290,40,3,4,323,5,6,7,300,8,250,251,306,9,10,11,151,152,12,13,14,15,16,17,18,19,20,21,22,23,24,25,304,26,27,28,29,305,30,31,263,264,97,32,33,34,35,158,159,230,231,36,151,152,286,289,37,294,295,289,296,290,40,3,4,297,5,6,7,298,8,277,278,280,9,10,11,283,243,12,13,14,15,16,17,18,19,20,21,22,23,24,25,244,26,27,28,29,97,30,31,246,224,105,32,33,34,35,257,258,262,259,36,260,134,136,265,37,266,174,176,38,39,40,3,4,135,5,6,7,137,8,206,-27,-28,9,10,11,213,220,12,13,14,15,16,17,18,19,20,21,22,23,24,25,222,26,27,28,29,220,30,31,224,225,232,32,33,34,35,101,238,86,87,36,97,233,105,234,37,235,-1,107,77,39,40,3,4,108,5,6,7,110,8,129,-171,131,9,10,11,134,137,12,13,14,15,16,17,18,19,20,21,22,23,24,25,135,26,27,28,29,136,30,31,0,172,0,32,33,34,35,0,0,0,0,36,0,0,0,0,37,0,0,42,76,44,129,45,46,0,47,48,179,0,0,42,218,44,0,45,46,0,47,48,0,0,0,0,0,0,0,0,0,49,50,51,52,0,53,0,77,0,55,56,57,49,50,51,52,0,53,0,77,0,55,56,57,0,63,0,0,66,67,0,0,0,0,0,0,0,63,219,0,66,67,42,76,44,0,45,46,0,47,48,0,0,0,0,42,76,44,0,45,46,0,47,48,0,0,0,0,0,0,0,0,49,50,51,52,0,53,0,77,0,55,56,57,0,49,50,51,52,0,53,0,77,90,55,56,57,63,0,0,66,67,0,0,42,76,44,0,45,46,63,47,48,66,67,42,76,44,42,76,44,0,47,48,0,47,48,0,0,0,0,0,0,0,49,50,51,52,0,53,0,77,0,55,56,57,0,0,0,0,53,0,77,53,0,77,0,3,4,63,5,6,7,67,8,0,0,0,97,98,63,0,0,63,67,3,4,0,5,6,7,0,8,78,79,80,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,114,29,115,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,114,29,327,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,114,29,329,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,114,29,115,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,209,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,330,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,323,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,324,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,319,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,298,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,301,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,268,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,270,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,280,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,204,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,209,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,108,29,0,30,31,0,0,0,32,33,34,35,0,0,0,0,36,0,0,3,4,88,5,6,7,0,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,0,0,0,0,0,0,215,216,103,3,4,0,5,6,7,88,8,0,0,0,9,10,11,0,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,3,4,0,5,6,7,320,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,3,4,0,5,6,7,300,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,3,4,0,5,6,7,302,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,3,4,0,5,6,7,292,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,3,4,0,5,6,7,271,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,214,0,0,0,0,0,0,3,4,0,5,6,7,273,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,0,0,0,0,0,0,3,4,87,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,27,0,0,0,0,0,0,3,4,90,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,307,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,309,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,291,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,269,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,272,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,172,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,174,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,88,176,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,177,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,211,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,213,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,235,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,236,0,0,0,0,0,0,3,4,0,5,6,7,119,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,120,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,26,125,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,266,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,267,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,241,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,251,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,260,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,179,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,203,0,0,0,0,0,0,0,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,88,110,13,14,15,16,17,18,19,20,21,22,202,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,18,19,20,21,201,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,18,19,20,200,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,18,19,199,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,18,198,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,194,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,195,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,196,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,17,197,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,188,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,189,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,190,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,191,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,192,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,16,193,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,185,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,186,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,15,187,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,183,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,14,184,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,180,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,181,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,182,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,111,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,112,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,113,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,121,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,122,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,123,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,124,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,126,3,4,0,5,6,7,0,8,0,0,0,9,10,11,0,0,110,13,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	])

happyReduceArr = array (2, 170) [
	(2 , happyReduce_2),
	(3 , happyReduce_3),
	(4 , happyReduce_4),
	(5 , happyReduce_5),
	(6 , happyReduce_6),
	(7 , happyReduce_7),
	(8 , happyReduce_8),
	(9 , happyReduce_9),
	(10 , happyReduce_10),
	(11 , happyReduce_11),
	(12 , happyReduce_12),
	(13 , happyReduce_13),
	(14 , happyReduce_14),
	(15 , happyReduce_15),
	(16 , happyReduce_16),
	(17 , happyReduce_17),
	(18 , happyReduce_18),
	(19 , happyReduce_19),
	(20 , happyReduce_20),
	(21 , happyReduce_21),
	(22 , happyReduce_22),
	(23 , happyReduce_23),
	(24 , happyReduce_24),
	(25 , happyReduce_25),
	(26 , happyReduce_26),
	(27 , happyReduce_27),
	(28 , happyReduce_28),
	(29 , happyReduce_29),
	(30 , happyReduce_30),
	(31 , happyReduce_31),
	(32 , happyReduce_32),
	(33 , happyReduce_33),
	(34 , happyReduce_34),
	(35 , happyReduce_35),
	(36 , happyReduce_36),
	(37 , happyReduce_37),
	(38 , happyReduce_38),
	(39 , happyReduce_39),
	(40 , happyReduce_40),
	(41 , happyReduce_41),
	(42 , happyReduce_42),
	(43 , happyReduce_43),
	(44 , happyReduce_44),
	(45 , happyReduce_45),
	(46 , happyReduce_46),
	(47 , happyReduce_47),
	(48 , happyReduce_48),
	(49 , happyReduce_49),
	(50 , happyReduce_50),
	(51 , happyReduce_51),
	(52 , happyReduce_52),
	(53 , happyReduce_53),
	(54 , happyReduce_54),
	(55 , happyReduce_55),
	(56 , happyReduce_56),
	(57 , happyReduce_57),
	(58 , happyReduce_58),
	(59 , happyReduce_59),
	(60 , happyReduce_60),
	(61 , happyReduce_61),
	(62 , happyReduce_62),
	(63 , happyReduce_63),
	(64 , happyReduce_64),
	(65 , happyReduce_65),
	(66 , happyReduce_66),
	(67 , happyReduce_67),
	(68 , happyReduce_68),
	(69 , happyReduce_69),
	(70 , happyReduce_70),
	(71 , happyReduce_71),
	(72 , happyReduce_72),
	(73 , happyReduce_73),
	(74 , happyReduce_74),
	(75 , happyReduce_75),
	(76 , happyReduce_76),
	(77 , happyReduce_77),
	(78 , happyReduce_78),
	(79 , happyReduce_79),
	(80 , happyReduce_80),
	(81 , happyReduce_81),
	(82 , happyReduce_82),
	(83 , happyReduce_83),
	(84 , happyReduce_84),
	(85 , happyReduce_85),
	(86 , happyReduce_86),
	(87 , happyReduce_87),
	(88 , happyReduce_88),
	(89 , happyReduce_89),
	(90 , happyReduce_90),
	(91 , happyReduce_91),
	(92 , happyReduce_92),
	(93 , happyReduce_93),
	(94 , happyReduce_94),
	(95 , happyReduce_95),
	(96 , happyReduce_96),
	(97 , happyReduce_97),
	(98 , happyReduce_98),
	(99 , happyReduce_99),
	(100 , happyReduce_100),
	(101 , happyReduce_101),
	(102 , happyReduce_102),
	(103 , happyReduce_103),
	(104 , happyReduce_104),
	(105 , happyReduce_105),
	(106 , happyReduce_106),
	(107 , happyReduce_107),
	(108 , happyReduce_108),
	(109 , happyReduce_109),
	(110 , happyReduce_110),
	(111 , happyReduce_111),
	(112 , happyReduce_112),
	(113 , happyReduce_113),
	(114 , happyReduce_114),
	(115 , happyReduce_115),
	(116 , happyReduce_116),
	(117 , happyReduce_117),
	(118 , happyReduce_118),
	(119 , happyReduce_119),
	(120 , happyReduce_120),
	(121 , happyReduce_121),
	(122 , happyReduce_122),
	(123 , happyReduce_123),
	(124 , happyReduce_124),
	(125 , happyReduce_125),
	(126 , happyReduce_126),
	(127 , happyReduce_127),
	(128 , happyReduce_128),
	(129 , happyReduce_129),
	(130 , happyReduce_130),
	(131 , happyReduce_131),
	(132 , happyReduce_132),
	(133 , happyReduce_133),
	(134 , happyReduce_134),
	(135 , happyReduce_135),
	(136 , happyReduce_136),
	(137 , happyReduce_137),
	(138 , happyReduce_138),
	(139 , happyReduce_139),
	(140 , happyReduce_140),
	(141 , happyReduce_141),
	(142 , happyReduce_142),
	(143 , happyReduce_143),
	(144 , happyReduce_144),
	(145 , happyReduce_145),
	(146 , happyReduce_146),
	(147 , happyReduce_147),
	(148 , happyReduce_148),
	(149 , happyReduce_149),
	(150 , happyReduce_150),
	(151 , happyReduce_151),
	(152 , happyReduce_152),
	(153 , happyReduce_153),
	(154 , happyReduce_154),
	(155 , happyReduce_155),
	(156 , happyReduce_156),
	(157 , happyReduce_157),
	(158 , happyReduce_158),
	(159 , happyReduce_159),
	(160 , happyReduce_160),
	(161 , happyReduce_161),
	(162 , happyReduce_162),
	(163 , happyReduce_163),
	(164 , happyReduce_164),
	(165 , happyReduce_165),
	(166 , happyReduce_166),
	(167 , happyReduce_167),
	(168 , happyReduce_168),
	(169 , happyReduce_169),
	(170 , happyReduce_170)
	]

happy_n_terms = 76 :: Int
happy_n_nonterms = 62 :: Int

happyReduce_2 = happySpecReduce_1  0 happyReduction_2
happyReduction_2 (HappyAbsSyn64  happy_var_1)
	 =  HappyAbsSyn5
		 (happy_var_1
	)
happyReduction_2 _  = notHappyAtAll 

happyReduce_3 = happySpecReduce_1  1 happyReduction_3
happyReduction_3 (HappyTerminal (TokenInt happy_var_1))
	 =  HappyAbsSyn6
		 (LitInt happy_var_1
	)
happyReduction_3 _  = notHappyAtAll 

happyReduce_4 = happySpecReduce_1  1 happyReduction_4
happyReduction_4 (HappyTerminal (TokenStringLit happy_var_1))
	 =  HappyAbsSyn6
		 (LitString happy_var_1
	)
happyReduction_4 _  = notHappyAtAll 

happyReduce_5 = happySpecReduce_1  2 happyReduction_5
happyReduction_5 _
	 =  HappyAbsSyn7
		 (
	)

happyReduce_6 = happySpecReduce_1  3 happyReduction_6
happyReduction_6 _
	 =  HappyAbsSyn8
		 (
	)

happyReduce_7 = happySpecReduce_2  4 happyReduction_7
happyReduction_7 (HappyTerminal (TokenRegex happy_var_2))
	_
	 =  HappyAbsSyn9
		 (happy_var_2
	)
happyReduction_7 _ _  = notHappyAtAll 

happyReduce_8 = happySpecReduce_1  5 happyReduction_8
happyReduction_8 _
	 =  HappyAbsSyn10
		 (This
	)

happyReduce_9 = happySpecReduce_1  5 happyReduction_9
happyReduction_9 (HappyTerminal (TokenIdent happy_var_1))
	 =  HappyAbsSyn10
		 (Ident happy_var_1
	)
happyReduction_9 _  = notHappyAtAll 

happyReduce_10 = happySpecReduce_1  5 happyReduction_10
happyReduction_10 (HappyAbsSyn6  happy_var_1)
	 =  HappyAbsSyn10
		 (Literal happy_var_1
	)
happyReduction_10 _  = notHappyAtAll 

happyReduce_11 = happySpecReduce_1  5 happyReduction_11
happyReduction_11 (HappyAbsSyn9  happy_var_1)
	 =  HappyAbsSyn10
		 (Regex happy_var_1
	)
happyReduction_11 _  = notHappyAtAll 

happyReduce_12 = happySpecReduce_1  5 happyReduction_12
happyReduction_12 (HappyAbsSyn11  happy_var_1)
	 =  HappyAbsSyn10
		 (Array happy_var_1
	)
happyReduction_12 _  = notHappyAtAll 

happyReduce_13 = happySpecReduce_1  5 happyReduction_13
happyReduction_13 (HappyAbsSyn13  happy_var_1)
	 =  HappyAbsSyn10
		 (Object happy_var_1
	)
happyReduction_13 _  = notHappyAtAll 

happyReduce_14 = happySpecReduce_3  5 happyReduction_14
happyReduction_14 _
	(HappyAbsSyn38  happy_var_2)
	_
	 =  HappyAbsSyn10
		 (Brack happy_var_2
	)
happyReduction_14 _ _ _  = notHappyAtAll 

happyReduce_15 = happySpecReduce_3  6 happyReduction_15
happyReduction_15 _
	(HappyAbsSyn12  happy_var_2)
	_
	 =  HappyAbsSyn11
		 (ArrSimple happy_var_2
	)
happyReduction_15 _ _ _  = notHappyAtAll 

happyReduce_16 = happySpecReduce_0  7 happyReduction_16
happyReduction_16  =  HappyAbsSyn12
		 ([]
	)

happyReduce_17 = happySpecReduce_1  7 happyReduction_17
happyReduction_17 (HappyAbsSyn37  happy_var_1)
	 =  HappyAbsSyn12
		 ([happy_var_1]
	)
happyReduction_17 _  = notHappyAtAll 

happyReduce_18 = happySpecReduce_3  7 happyReduction_18
happyReduction_18 (HappyAbsSyn37  happy_var_3)
	_
	(HappyAbsSyn12  happy_var_1)
	 =  HappyAbsSyn12
		 (happy_var_1 ++ [happy_var_3]
	)
happyReduction_18 _ _ _  = notHappyAtAll 

happyReduce_19 = happySpecReduce_2  8 happyReduction_19
happyReduction_19 _
	_
	 =  HappyAbsSyn13
		 ([]
	)

happyReduce_20 = happySpecReduce_3  8 happyReduction_20
happyReduction_20 _
	(HappyAbsSyn14  happy_var_2)
	_
	 =  HappyAbsSyn13
		 (happy_var_2
	)
happyReduction_20 _ _ _  = notHappyAtAll 

happyReduce_21 = happySpecReduce_1  9 happyReduction_21
happyReduction_21 (HappyAbsSyn15  happy_var_1)
	 =  HappyAbsSyn14
		 ([happy_var_1 ]
	)
happyReduction_21 _  = notHappyAtAll 

happyReduce_22 = happySpecReduce_3  9 happyReduction_22
happyReduction_22 (HappyAbsSyn15  happy_var_3)
	_
	(HappyAbsSyn14  happy_var_1)
	 =  HappyAbsSyn14
		 (happy_var_1 ++ [happy_var_3]
	)
happyReduction_22 _ _ _  = notHappyAtAll 

happyReduce_23 = happySpecReduce_3  10 happyReduction_23
happyReduction_23 (HappyAbsSyn37  happy_var_3)
	_
	(HappyAbsSyn16  happy_var_1)
	 =  HappyAbsSyn15
		 (Left (happy_var_1, happy_var_3 )
	)
happyReduction_23 _ _ _  = notHappyAtAll 

happyReduce_24 = happySpecReduce_2  10 happyReduction_24
happyReduction_24 (HappyAbsSyn61  happy_var_2)
	(HappyTerminal (TokenIdent happy_var_1))
	 =  HappyAbsSyn15
		 (Right $ GetterPutter happy_var_1 happy_var_2
	)
happyReduction_24 _ _  = notHappyAtAll 

happyReduce_25 = happySpecReduce_1  11 happyReduction_25
happyReduction_25 (HappyTerminal (TokenIdent happy_var_1))
	 =  HappyAbsSyn16
		 (PropNameId happy_var_1
	)
happyReduction_25 _  = notHappyAtAll 

happyReduce_26 = happySpecReduce_1  11 happyReduction_26
happyReduction_26 (HappyTerminal (TokenStringLit happy_var_1))
	 =  HappyAbsSyn16
		 (PropNameStr happy_var_1
	)
happyReduction_26 _  = notHappyAtAll 

happyReduce_27 = happySpecReduce_1  11 happyReduction_27
happyReduction_27 (HappyTerminal (TokenInt happy_var_1))
	 =  HappyAbsSyn16
		 (PropNameInt happy_var_1
	)
happyReduction_27 _  = notHappyAtAll 

happyReduce_28 = happySpecReduce_1  12 happyReduction_28
happyReduction_28 (HappyAbsSyn10  happy_var_1)
	 =  HappyAbsSyn17
		 (MemPrimExpr happy_var_1
	)
happyReduction_28 _  = notHappyAtAll 

happyReduce_29 = happyReduce 4 12 happyReduction_29
happyReduction_29 (_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn17  happy_var_1) `HappyStk`
	happyRest)
	 = HappyAbsSyn17
		 (ArrayExpr happy_var_1 happy_var_3
	) `HappyStk` happyRest

happyReduce_30 = happySpecReduce_3  12 happyReduction_30
happyReduction_30 (HappyTerminal (TokenIdent happy_var_3))
	_
	(HappyAbsSyn17  happy_var_1)
	 =  HappyAbsSyn17
		 (MemberCall happy_var_1 happy_var_3
	)
happyReduction_30 _ _ _  = notHappyAtAll 

happyReduce_31 = happySpecReduce_3  12 happyReduction_31
happyReduction_31 (HappyAbsSyn20  happy_var_3)
	(HappyAbsSyn17  happy_var_2)
	_
	 =  HappyAbsSyn17
		 (MemberNew happy_var_2 happy_var_3
	)
happyReduction_31 _ _ _  = notHappyAtAll 

happyReduce_32 = happySpecReduce_1  13 happyReduction_32
happyReduction_32 (HappyAbsSyn17  happy_var_1)
	 =  HappyAbsSyn18
		 (MemberExpr happy_var_1
	)
happyReduction_32 _  = notHappyAtAll 

happyReduce_33 = happySpecReduce_2  13 happyReduction_33
happyReduction_33 (HappyAbsSyn18  happy_var_2)
	_
	 =  HappyAbsSyn18
		 (NewNewExpr happy_var_2
	)
happyReduction_33 _ _  = notHappyAtAll 

happyReduce_34 = happySpecReduce_2  14 happyReduction_34
happyReduction_34 (HappyAbsSyn20  happy_var_2)
	(HappyAbsSyn17  happy_var_1)
	 =  HappyAbsSyn19
		 (CallMember happy_var_1 happy_var_2
	)
happyReduction_34 _ _  = notHappyAtAll 

happyReduce_35 = happySpecReduce_2  14 happyReduction_35
happyReduction_35 (HappyAbsSyn20  happy_var_2)
	(HappyAbsSyn19  happy_var_1)
	 =  HappyAbsSyn19
		 (CallCall happy_var_1 happy_var_2
	)
happyReduction_35 _ _  = notHappyAtAll 

happyReduce_36 = happyReduce 4 14 happyReduction_36
happyReduction_36 (_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn19  happy_var_1) `HappyStk`
	happyRest)
	 = HappyAbsSyn19
		 (CallSquare happy_var_1 happy_var_3
	) `HappyStk` happyRest

happyReduce_37 = happySpecReduce_3  14 happyReduction_37
happyReduction_37 (HappyTerminal (TokenIdent happy_var_3))
	_
	(HappyAbsSyn19  happy_var_1)
	 =  HappyAbsSyn19
		 (CallDot happy_var_1 happy_var_3
	)
happyReduction_37 _ _ _  = notHappyAtAll 

happyReduce_38 = happySpecReduce_2  15 happyReduction_38
happyReduction_38 _
	_
	 =  HappyAbsSyn20
		 ([]
	)

happyReduce_39 = happySpecReduce_3  15 happyReduction_39
happyReduction_39 _
	(HappyAbsSyn21  happy_var_2)
	_
	 =  HappyAbsSyn20
		 (happy_var_2
	)
happyReduction_39 _ _ _  = notHappyAtAll 

happyReduce_40 = happySpecReduce_1  16 happyReduction_40
happyReduction_40 (HappyAbsSyn37  happy_var_1)
	 =  HappyAbsSyn21
		 ([happy_var_1]
	)
happyReduction_40 _  = notHappyAtAll 

happyReduce_41 = happySpecReduce_3  16 happyReduction_41
happyReduction_41 (HappyAbsSyn37  happy_var_3)
	_
	(HappyAbsSyn21  happy_var_1)
	 =  HappyAbsSyn21
		 (happy_var_1 ++ [happy_var_3]
	)
happyReduction_41 _ _ _  = notHappyAtAll 

happyReduce_42 = happySpecReduce_1  17 happyReduction_42
happyReduction_42 (HappyAbsSyn18  happy_var_1)
	 =  HappyAbsSyn22
		 (NewExpr happy_var_1
	)
happyReduction_42 _  = notHappyAtAll 

happyReduce_43 = happySpecReduce_1  17 happyReduction_43
happyReduction_43 (HappyAbsSyn19  happy_var_1)
	 =  HappyAbsSyn22
		 (CallExpr happy_var_1
	)
happyReduction_43 _  = notHappyAtAll 

happyReduce_44 = happySpecReduce_1  18 happyReduction_44
happyReduction_44 (HappyAbsSyn22  happy_var_1)
	 =  HappyAbsSyn23
		 (LeftExpr happy_var_1
	)
happyReduction_44 _  = notHappyAtAll 

happyReduce_45 = happySpecReduce_2  18 happyReduction_45
happyReduction_45 _
	(HappyAbsSyn22  happy_var_1)
	 =  HappyAbsSyn23
		 (PostInc happy_var_1
	)
happyReduction_45 _ _  = notHappyAtAll 

happyReduce_46 = happySpecReduce_2  18 happyReduction_46
happyReduction_46 _
	(HappyAbsSyn22  happy_var_1)
	 =  HappyAbsSyn23
		 (PostDec happy_var_1
	)
happyReduction_46 _ _  = notHappyAtAll 

happyReduce_47 = happySpecReduce_1  19 happyReduction_47
happyReduction_47 (HappyAbsSyn23  happy_var_1)
	 =  HappyAbsSyn24
		 (PostFix happy_var_1
	)
happyReduction_47 _  = notHappyAtAll 

happyReduce_48 = happySpecReduce_2  19 happyReduction_48
happyReduction_48 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (Delete happy_var_2
	)
happyReduction_48 _ _  = notHappyAtAll 

happyReduce_49 = happySpecReduce_2  19 happyReduction_49
happyReduction_49 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (Void   happy_var_2
	)
happyReduction_49 _ _  = notHappyAtAll 

happyReduce_50 = happySpecReduce_2  19 happyReduction_50
happyReduction_50 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (TypeOf happy_var_2
	)
happyReduction_50 _ _  = notHappyAtAll 

happyReduce_51 = happySpecReduce_2  19 happyReduction_51
happyReduction_51 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (DoublePlus happy_var_2
	)
happyReduction_51 _ _  = notHappyAtAll 

happyReduce_52 = happySpecReduce_2  19 happyReduction_52
happyReduction_52 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (DoubleMinus happy_var_2
	)
happyReduction_52 _ _  = notHappyAtAll 

happyReduce_53 = happySpecReduce_2  19 happyReduction_53
happyReduction_53 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (UnaryPlus happy_var_2
	)
happyReduction_53 _ _  = notHappyAtAll 

happyReduce_54 = happySpecReduce_2  19 happyReduction_54
happyReduction_54 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (UnaryMinus happy_var_2
	)
happyReduction_54 _ _  = notHappyAtAll 

happyReduce_55 = happySpecReduce_2  19 happyReduction_55
happyReduction_55 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (Not happy_var_2
	)
happyReduction_55 _ _  = notHappyAtAll 

happyReduce_56 = happySpecReduce_2  19 happyReduction_56
happyReduction_56 (HappyAbsSyn24  happy_var_2)
	_
	 =  HappyAbsSyn24
		 (BitNot happy_var_2
	)
happyReduction_56 _ _  = notHappyAtAll 

happyReduce_57 = happySpecReduce_1  20 happyReduction_57
happyReduction_57 (HappyAbsSyn24  happy_var_1)
	 =  HappyAbsSyn25
		 (UExpr happy_var_1
	)
happyReduction_57 _  = notHappyAtAll 

happyReduce_58 = happySpecReduce_3  20 happyReduction_58
happyReduction_58 (HappyAbsSyn24  happy_var_3)
	_
	(HappyAbsSyn25  happy_var_1)
	 =  HappyAbsSyn25
		 (Times happy_var_1 happy_var_3
	)
happyReduction_58 _ _ _  = notHappyAtAll 

happyReduce_59 = happySpecReduce_3  20 happyReduction_59
happyReduction_59 (HappyAbsSyn24  happy_var_3)
	_
	(HappyAbsSyn25  happy_var_1)
	 =  HappyAbsSyn25
		 (Div happy_var_1 happy_var_3
	)
happyReduction_59 _ _ _  = notHappyAtAll 

happyReduce_60 = happySpecReduce_3  20 happyReduction_60
happyReduction_60 (HappyAbsSyn24  happy_var_3)
	_
	(HappyAbsSyn25  happy_var_1)
	 =  HappyAbsSyn25
		 (Mod happy_var_1 happy_var_3
	)
happyReduction_60 _ _ _  = notHappyAtAll 

happyReduce_61 = happySpecReduce_1  21 happyReduction_61
happyReduction_61 (HappyAbsSyn25  happy_var_1)
	 =  HappyAbsSyn26
		 (MultExpr happy_var_1
	)
happyReduction_61 _  = notHappyAtAll 

happyReduce_62 = happySpecReduce_3  21 happyReduction_62
happyReduction_62 (HappyAbsSyn25  happy_var_3)
	_
	(HappyAbsSyn26  happy_var_1)
	 =  HappyAbsSyn26
		 (Plus happy_var_1 happy_var_3
	)
happyReduction_62 _ _ _  = notHappyAtAll 

happyReduce_63 = happySpecReduce_3  21 happyReduction_63
happyReduction_63 (HappyAbsSyn25  happy_var_3)
	_
	(HappyAbsSyn26  happy_var_1)
	 =  HappyAbsSyn26
		 (Minus happy_var_1 happy_var_3
	)
happyReduction_63 _ _ _  = notHappyAtAll 

happyReduce_64 = happySpecReduce_1  22 happyReduction_64
happyReduction_64 (HappyAbsSyn26  happy_var_1)
	 =  HappyAbsSyn27
		 (AddExpr happy_var_1
	)
happyReduction_64 _  = notHappyAtAll 

happyReduce_65 = happySpecReduce_3  22 happyReduction_65
happyReduction_65 (HappyAbsSyn26  happy_var_3)
	_
	(HappyAbsSyn27  happy_var_1)
	 =  HappyAbsSyn27
		 (ShiftLeft happy_var_1 happy_var_3
	)
happyReduction_65 _ _ _  = notHappyAtAll 

happyReduce_66 = happySpecReduce_3  22 happyReduction_66
happyReduction_66 (HappyAbsSyn26  happy_var_3)
	_
	(HappyAbsSyn27  happy_var_1)
	 =  HappyAbsSyn27
		 (ShiftRight happy_var_1 happy_var_3
	)
happyReduction_66 _ _ _  = notHappyAtAll 

happyReduce_67 = happySpecReduce_3  22 happyReduction_67
happyReduction_67 (HappyAbsSyn26  happy_var_3)
	_
	(HappyAbsSyn27  happy_var_1)
	 =  HappyAbsSyn27
		 (ShiftRight2 happy_var_1 happy_var_3
	)
happyReduction_67 _ _ _  = notHappyAtAll 

happyReduce_68 = happySpecReduce_1  23 happyReduction_68
happyReduction_68 (HappyAbsSyn27  happy_var_1)
	 =  HappyAbsSyn28
		 (ShiftE happy_var_1
	)
happyReduction_68 _  = notHappyAtAll 

happyReduce_69 = happySpecReduce_3  23 happyReduction_69
happyReduction_69 (HappyAbsSyn27  happy_var_3)
	_
	(HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn28
		 (LessThan happy_var_1 happy_var_3
	)
happyReduction_69 _ _ _  = notHappyAtAll 

happyReduce_70 = happySpecReduce_3  23 happyReduction_70
happyReduction_70 (HappyAbsSyn27  happy_var_3)
	_
	(HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn28
		 (GreaterThan happy_var_1 happy_var_3
	)
happyReduction_70 _ _ _  = notHappyAtAll 

happyReduce_71 = happySpecReduce_3  23 happyReduction_71
happyReduction_71 (HappyAbsSyn27  happy_var_3)
	_
	(HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn28
		 (LessEqual happy_var_1 happy_var_3
	)
happyReduction_71 _ _ _  = notHappyAtAll 

happyReduce_72 = happySpecReduce_3  23 happyReduction_72
happyReduction_72 (HappyAbsSyn27  happy_var_3)
	_
	(HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn28
		 (GreaterEqual happy_var_1 happy_var_3
	)
happyReduction_72 _ _ _  = notHappyAtAll 

happyReduce_73 = happySpecReduce_3  23 happyReduction_73
happyReduction_73 (HappyAbsSyn27  happy_var_3)
	_
	(HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn28
		 (InstanceOf happy_var_1 happy_var_3
	)
happyReduction_73 _ _ _  = notHappyAtAll 

happyReduce_74 = happySpecReduce_3  23 happyReduction_74
happyReduction_74 (HappyAbsSyn27  happy_var_3)
	_
	(HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn28
		 (InObject happy_var_1 happy_var_3
	)
happyReduction_74 _ _ _  = notHappyAtAll 

happyReduce_75 = happySpecReduce_1  24 happyReduction_75
happyReduction_75 (HappyAbsSyn28  happy_var_1)
	 =  HappyAbsSyn29
		 (RelE happy_var_1
	)
happyReduction_75 _  = notHappyAtAll 

happyReduce_76 = happySpecReduce_3  24 happyReduction_76
happyReduction_76 (HappyAbsSyn28  happy_var_3)
	_
	(HappyAbsSyn29  happy_var_1)
	 =  HappyAbsSyn29
		 (Equal happy_var_1 happy_var_3
	)
happyReduction_76 _ _ _  = notHappyAtAll 

happyReduce_77 = happySpecReduce_3  24 happyReduction_77
happyReduction_77 (HappyAbsSyn28  happy_var_3)
	_
	(HappyAbsSyn29  happy_var_1)
	 =  HappyAbsSyn29
		 (NotEqual happy_var_1 happy_var_3
	)
happyReduction_77 _ _ _  = notHappyAtAll 

happyReduce_78 = happySpecReduce_3  24 happyReduction_78
happyReduction_78 (HappyAbsSyn28  happy_var_3)
	_
	(HappyAbsSyn29  happy_var_1)
	 =  HappyAbsSyn29
		 (Equal2 happy_var_1 happy_var_3
	)
happyReduction_78 _ _ _  = notHappyAtAll 

happyReduce_79 = happySpecReduce_3  24 happyReduction_79
happyReduction_79 (HappyAbsSyn28  happy_var_3)
	_
	(HappyAbsSyn29  happy_var_1)
	 =  HappyAbsSyn29
		 (NotEqual happy_var_1 happy_var_3
	)
happyReduction_79 _ _ _  = notHappyAtAll 

happyReduce_80 = happySpecReduce_1  25 happyReduction_80
happyReduction_80 (HappyAbsSyn29  happy_var_1)
	 =  HappyAbsSyn30
		 (EqualE happy_var_1
	)
happyReduction_80 _  = notHappyAtAll 

happyReduce_81 = happySpecReduce_3  25 happyReduction_81
happyReduction_81 (HappyAbsSyn29  happy_var_3)
	_
	(HappyAbsSyn30  happy_var_1)
	 =  HappyAbsSyn30
		 (BABitAnd happy_var_1 happy_var_3
	)
happyReduction_81 _ _ _  = notHappyAtAll 

happyReduce_82 = happySpecReduce_1  26 happyReduction_82
happyReduction_82 (HappyAbsSyn30  happy_var_1)
	 =  HappyAbsSyn31
		 (BitAnd happy_var_1
	)
happyReduction_82 _  = notHappyAtAll 

happyReduce_83 = happySpecReduce_3  26 happyReduction_83
happyReduction_83 (HappyAbsSyn30  happy_var_3)
	_
	(HappyAbsSyn31  happy_var_1)
	 =  HappyAbsSyn31
		 (BXBitXOR happy_var_1 happy_var_3
	)
happyReduction_83 _ _ _  = notHappyAtAll 

happyReduce_84 = happySpecReduce_1  27 happyReduction_84
happyReduction_84 (HappyAbsSyn31  happy_var_1)
	 =  HappyAbsSyn32
		 (BitXOR happy_var_1
	)
happyReduction_84 _  = notHappyAtAll 

happyReduce_85 = happySpecReduce_3  27 happyReduction_85
happyReduction_85 (HappyAbsSyn31  happy_var_3)
	_
	(HappyAbsSyn32  happy_var_1)
	 =  HappyAbsSyn32
		 (BOBitOR happy_var_1 happy_var_3
	)
happyReduction_85 _ _ _  = notHappyAtAll 

happyReduce_86 = happySpecReduce_1  28 happyReduction_86
happyReduction_86 (HappyAbsSyn32  happy_var_1)
	 =  HappyAbsSyn33
		 (BitOR happy_var_1
	)
happyReduction_86 _  = notHappyAtAll 

happyReduce_87 = happySpecReduce_3  28 happyReduction_87
happyReduction_87 (HappyAbsSyn32  happy_var_3)
	_
	(HappyAbsSyn33  happy_var_1)
	 =  HappyAbsSyn33
		 (LALogAnd happy_var_1 happy_var_3
	)
happyReduction_87 _ _ _  = notHappyAtAll 

happyReduce_88 = happySpecReduce_1  29 happyReduction_88
happyReduction_88 (HappyAbsSyn33  happy_var_1)
	 =  HappyAbsSyn34
		 (LogAnd happy_var_1
	)
happyReduction_88 _  = notHappyAtAll 

happyReduce_89 = happySpecReduce_3  29 happyReduction_89
happyReduction_89 (HappyAbsSyn33  happy_var_3)
	_
	(HappyAbsSyn34  happy_var_1)
	 =  HappyAbsSyn34
		 (LOLogOr happy_var_1 happy_var_3
	)
happyReduction_89 _ _ _  = notHappyAtAll 

happyReduce_90 = happySpecReduce_1  30 happyReduction_90
happyReduction_90 (HappyAbsSyn34  happy_var_1)
	 =  HappyAbsSyn35
		 (LogOr happy_var_1
	)
happyReduction_90 _  = notHappyAtAll 

happyReduce_91 = happyReduce 5 30 happyReduction_91
happyReduction_91 ((HappyAbsSyn37  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn37  happy_var_3) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn34  happy_var_1) `HappyStk`
	happyRest)
	 = HappyAbsSyn35
		 (CondIf happy_var_1 happy_var_3 happy_var_5
	) `HappyStk` happyRest

happyReduce_92 = happySpecReduce_1  31 happyReduction_92
happyReduction_92 _
	 =  HappyAbsSyn36
		 (AssignOpMult
	)

happyReduce_93 = happySpecReduce_1  31 happyReduction_93
happyReduction_93 _
	 =  HappyAbsSyn36
		 (AssignOpDiv
	)

happyReduce_94 = happySpecReduce_1  31 happyReduction_94
happyReduction_94 _
	 =  HappyAbsSyn36
		 (AssignOpMod
	)

happyReduce_95 = happySpecReduce_1  31 happyReduction_95
happyReduction_95 _
	 =  HappyAbsSyn36
		 (AssignOpPlus
	)

happyReduce_96 = happySpecReduce_1  31 happyReduction_96
happyReduction_96 _
	 =  HappyAbsSyn36
		 (AssignOpMinus
	)

happyReduce_97 = happySpecReduce_1  31 happyReduction_97
happyReduction_97 _
	 =  HappyAbsSyn36
		 (AssignNormal
	)

happyReduce_98 = happySpecReduce_3  32 happyReduction_98
happyReduction_98 (HappyAbsSyn37  happy_var_3)
	(HappyAbsSyn36  happy_var_2)
	(HappyAbsSyn22  happy_var_1)
	 =  HappyAbsSyn37
		 (Assign happy_var_1 happy_var_2 happy_var_3
	)
happyReduction_98 _ _ _  = notHappyAtAll 

happyReduce_99 = happySpecReduce_1  32 happyReduction_99
happyReduction_99 (HappyAbsSyn35  happy_var_1)
	 =  HappyAbsSyn37
		 (CondE  happy_var_1
	)
happyReduction_99 _  = notHappyAtAll 

happyReduce_100 = happySpecReduce_1  32 happyReduction_100
happyReduction_100 (HappyAbsSyn60  happy_var_1)
	 =  HappyAbsSyn37
		 (AEFuncDecl happy_var_1
	)
happyReduction_100 _  = notHappyAtAll 

happyReduce_101 = happySpecReduce_1  33 happyReduction_101
happyReduction_101 (HappyAbsSyn37  happy_var_1)
	 =  HappyAbsSyn38
		 (AssignE happy_var_1
	)
happyReduction_101 _  = notHappyAtAll 

happyReduce_102 = happySpecReduce_1  34 happyReduction_102
happyReduction_102 (HappyAbsSyn40  happy_var_1)
	 =  HappyAbsSyn39
		 (Block happy_var_1
	)
happyReduction_102 _  = notHappyAtAll 

happyReduce_103 = happySpecReduce_1  34 happyReduction_103
happyReduction_103 (HappyAbsSyn42  happy_var_1)
	 =  HappyAbsSyn39
		 (VarStmt happy_var_1
	)
happyReduction_103 _  = notHappyAtAll 

happyReduce_104 = happySpecReduce_1  34 happyReduction_104
happyReduction_104 _
	 =  HappyAbsSyn39
		 (EmptyStmt
	)

happyReduce_105 = happySpecReduce_1  34 happyReduction_105
happyReduction_105 (HappyAbsSyn48  happy_var_1)
	 =  HappyAbsSyn39
		 (ExprStmt happy_var_1
	)
happyReduction_105 _  = notHappyAtAll 

happyReduce_106 = happySpecReduce_1  34 happyReduction_106
happyReduction_106 (HappyAbsSyn49  happy_var_1)
	 =  HappyAbsSyn39
		 (IfStmt happy_var_1
	)
happyReduction_106 _  = notHappyAtAll 

happyReduce_107 = happySpecReduce_1  34 happyReduction_107
happyReduction_107 (HappyAbsSyn50  happy_var_1)
	 =  HappyAbsSyn39
		 (ItStmt happy_var_1
	)
happyReduction_107 _  = notHappyAtAll 

happyReduce_108 = happySpecReduce_3  34 happyReduction_108
happyReduction_108 _
	(HappyTerminal (TokenIdent happy_var_2))
	_
	 =  HappyAbsSyn39
		 (ContStmt $ Just happy_var_2
	)
happyReduction_108 _ _ _  = notHappyAtAll 

happyReduce_109 = happySpecReduce_2  34 happyReduction_109
happyReduction_109 _
	_
	 =  HappyAbsSyn39
		 (ContStmt Nothing
	)

happyReduce_110 = happySpecReduce_3  34 happyReduction_110
happyReduction_110 _
	(HappyTerminal (TokenIdent happy_var_2))
	_
	 =  HappyAbsSyn39
		 (BreakStmt $ Just happy_var_2
	)
happyReduction_110 _ _ _  = notHappyAtAll 

happyReduce_111 = happySpecReduce_2  34 happyReduction_111
happyReduction_111 _
	_
	 =  HappyAbsSyn39
		 (BreakStmt Nothing
	)

happyReduce_112 = happySpecReduce_3  34 happyReduction_112
happyReduction_112 _
	(HappyAbsSyn47  happy_var_2)
	_
	 =  HappyAbsSyn39
		 (ReturnStmt $ Just happy_var_2
	)
happyReduction_112 _ _ _  = notHappyAtAll 

happyReduce_113 = happySpecReduce_2  34 happyReduction_113
happyReduction_113 _
	_
	 =  HappyAbsSyn39
		 (ReturnStmt Nothing
	)

happyReduce_114 = happyReduce 5 34 happyReduction_114
happyReduction_114 ((HappyAbsSyn39  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn39
		 (WithStmt happy_var_3 happy_var_5
	) `HappyStk` happyRest

happyReduce_115 = happySpecReduce_3  34 happyReduction_115
happyReduction_115 (HappyAbsSyn39  happy_var_3)
	_
	(HappyTerminal (TokenIdent happy_var_1))
	 =  HappyAbsSyn39
		 (LabelledStmt happy_var_1 happy_var_3
	)
happyReduction_115 _ _ _  = notHappyAtAll 

happyReduce_116 = happySpecReduce_1  34 happyReduction_116
happyReduction_116 (HappyAbsSyn55  happy_var_1)
	 =  HappyAbsSyn39
		 (Switch happy_var_1
	)
happyReduction_116 _  = notHappyAtAll 

happyReduce_117 = happySpecReduce_3  34 happyReduction_117
happyReduction_117 _
	(HappyAbsSyn47  happy_var_2)
	_
	 =  HappyAbsSyn39
		 (ThrowExpr happy_var_2
	)
happyReduction_117 _ _ _  = notHappyAtAll 

happyReduce_118 = happySpecReduce_1  34 happyReduction_118
happyReduction_118 (HappyAbsSyn43  happy_var_1)
	 =  HappyAbsSyn39
		 (TryStmt happy_var_1
	)
happyReduction_118 _  = notHappyAtAll 

happyReduce_119 = happySpecReduce_3  35 happyReduction_119
happyReduction_119 _
	(HappyAbsSyn41  happy_var_2)
	_
	 =  HappyAbsSyn40
		 (happy_var_2
	)
happyReduction_119 _ _ _  = notHappyAtAll 

happyReduce_120 = happySpecReduce_0  36 happyReduction_120
happyReduction_120  =  HappyAbsSyn41
		 ([]
	)

happyReduce_121 = happySpecReduce_1  36 happyReduction_121
happyReduction_121 (HappyAbsSyn39  happy_var_1)
	 =  HappyAbsSyn41
		 ([happy_var_1]
	)
happyReduction_121 _  = notHappyAtAll 

happyReduce_122 = happySpecReduce_2  36 happyReduction_122
happyReduction_122 (HappyAbsSyn39  happy_var_2)
	(HappyAbsSyn41  happy_var_1)
	 =  HappyAbsSyn41
		 (happy_var_1 ++ [happy_var_2]
	)
happyReduction_122 _ _  = notHappyAtAll 

happyReduce_123 = happySpecReduce_2  37 happyReduction_123
happyReduction_123 (HappyAbsSyn52  happy_var_2)
	_
	 =  HappyAbsSyn42
		 (happy_var_2
	)
happyReduction_123 _ _  = notHappyAtAll 

happyReduce_124 = happySpecReduce_2  37 happyReduction_124
happyReduction_124 (HappyAbsSyn52  happy_var_2)
	_
	 =  HappyAbsSyn42
		 (happy_var_2
	)
happyReduction_124 _ _  = notHappyAtAll 

happyReduce_125 = happySpecReduce_3  38 happyReduction_125
happyReduction_125 (HappyAbsSyn44  happy_var_3)
	(HappyAbsSyn40  happy_var_2)
	_
	 =  HappyAbsSyn43
		 (TryBC happy_var_2 happy_var_3
	)
happyReduction_125 _ _ _  = notHappyAtAll 

happyReduce_126 = happySpecReduce_3  38 happyReduction_126
happyReduction_126 (HappyAbsSyn46  happy_var_3)
	(HappyAbsSyn40  happy_var_2)
	_
	 =  HappyAbsSyn43
		 (TryBF happy_var_2 happy_var_3
	)
happyReduction_126 _ _ _  = notHappyAtAll 

happyReduce_127 = happyReduce 4 38 happyReduction_127
happyReduction_127 ((HappyAbsSyn46  happy_var_4) `HappyStk`
	(HappyAbsSyn44  happy_var_3) `HappyStk`
	(HappyAbsSyn40  happy_var_2) `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn43
		 (TryBCF happy_var_2 happy_var_3 happy_var_4
	) `HappyStk` happyRest

happyReduce_128 = happySpecReduce_1  39 happyReduction_128
happyReduction_128 (HappyAbsSyn45  happy_var_1)
	 =  HappyAbsSyn44
		 ([happy_var_1]
	)
happyReduction_128 _  = notHappyAtAll 

happyReduce_129 = happySpecReduce_2  39 happyReduction_129
happyReduction_129 (HappyAbsSyn45  happy_var_2)
	(HappyAbsSyn44  happy_var_1)
	 =  HappyAbsSyn44
		 (happy_var_1 ++ [happy_var_2 ]
	)
happyReduction_129 _ _  = notHappyAtAll 

happyReduce_130 = happyReduce 5 40 happyReduction_130
happyReduction_130 ((HappyAbsSyn40  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyTerminal (TokenIdent happy_var_3)) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn45
		 (Catch happy_var_3 happy_var_5
	) `HappyStk` happyRest

happyReduce_131 = happyReduce 7 40 happyReduction_131
happyReduction_131 ((HappyAbsSyn40  happy_var_7) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyTerminal (TokenIdent happy_var_3)) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn45
		 (CatchIf happy_var_3 happy_var_7 happy_var_5
	) `HappyStk` happyRest

happyReduce_132 = happySpecReduce_2  41 happyReduction_132
happyReduction_132 (HappyAbsSyn40  happy_var_2)
	_
	 =  HappyAbsSyn46
		 (happy_var_2
	)
happyReduction_132 _ _  = notHappyAtAll 

happyReduce_133 = happyMonad2Reduce 1 42 happyReduction_133
happyReduction_133 ((HappyAbsSyn38  happy_var_1) `HappyStk`
	happyRest) tk
	 = happyThen (( \t -> autoSemiInsert t happy_var_1) tk
	) (\r -> happyReturn (HappyAbsSyn47 r))

happyReduce_134 = happySpecReduce_2  43 happyReduction_134
happyReduction_134 _
	(HappyAbsSyn47  happy_var_1)
	 =  HappyAbsSyn48
		 (happy_var_1
	)
happyReduction_134 _ _  = notHappyAtAll 

happyReduce_135 = happyReduce 7 44 happyReduction_135
happyReduction_135 ((HappyAbsSyn39  happy_var_7) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn39  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn49
		 (IfElse happy_var_3 happy_var_5 happy_var_7
	) `HappyStk` happyRest

happyReduce_136 = happyReduce 5 44 happyReduction_136
happyReduction_136 ((HappyAbsSyn39  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn49
		 (IfOnly happy_var_3 happy_var_5
	) `HappyStk` happyRest

happyReduce_137 = happyReduce 7 45 happyReduction_137
happyReduction_137 (_ `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_5) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn39  happy_var_2) `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (DoWhile happy_var_2 happy_var_5
	) `HappyStk` happyRest

happyReduce_138 = happyReduce 5 45 happyReduction_138
happyReduction_138 ((HappyAbsSyn39  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (While happy_var_3 happy_var_5
	) `HappyStk` happyRest

happyReduce_139 = happyReduce 9 45 happyReduction_139
happyReduction_139 ((HappyAbsSyn39  happy_var_9) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_7) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (For happy_var_3 happy_var_5 happy_var_7 happy_var_9
	) `HappyStk` happyRest

happyReduce_140 = happyReduce 10 45 happyReduction_140
happyReduction_140 ((HappyAbsSyn39  happy_var_10) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_8) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_6) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn52  happy_var_4) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (ForVar happy_var_4 happy_var_6 happy_var_8 happy_var_10
	) `HappyStk` happyRest

happyReduce_141 = happyReduce 9 45 happyReduction_141
happyReduction_141 ((HappyAbsSyn39  happy_var_9) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_7) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn51  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn52  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (ForVar happy_var_3 happy_var_5 happy_var_7 happy_var_9
	) `HappyStk` happyRest

happyReduce_142 = happyReduce 8 45 happyReduction_142
happyReduction_142 ((HappyAbsSyn39  happy_var_8) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_6) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn52  happy_var_4) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (ForIn happy_var_4 happy_var_6 happy_var_8
	) `HappyStk` happyRest

happyReduce_143 = happyReduce 7 45 happyReduction_143
happyReduction_143 ((HappyAbsSyn39  happy_var_7) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn52  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn50
		 (ForIn happy_var_3 happy_var_5 happy_var_7
	) `HappyStk` happyRest

happyReduce_144 = happySpecReduce_0  46 happyReduction_144
happyReduction_144  =  HappyAbsSyn51
		 (Nothing
	)

happyReduce_145 = happySpecReduce_1  46 happyReduction_145
happyReduction_145 (HappyAbsSyn38  happy_var_1)
	 =  HappyAbsSyn51
		 (Just happy_var_1
	)
happyReduction_145 _  = notHappyAtAll 

happyReduce_146 = happySpecReduce_1  47 happyReduction_146
happyReduction_146 (HappyAbsSyn53  happy_var_1)
	 =  HappyAbsSyn52
		 ([happy_var_1]
	)
happyReduction_146 _  = notHappyAtAll 

happyReduce_147 = happySpecReduce_3  47 happyReduction_147
happyReduction_147 (HappyAbsSyn53  happy_var_3)
	_
	(HappyAbsSyn52  happy_var_1)
	 =  HappyAbsSyn52
		 (happy_var_1 ++ [happy_var_3]
	)
happyReduction_147 _ _ _  = notHappyAtAll 

happyReduce_148 = happySpecReduce_2  48 happyReduction_148
happyReduction_148 (HappyAbsSyn54  happy_var_2)
	(HappyTerminal (TokenIdent happy_var_1))
	 =  HappyAbsSyn53
		 (VarDecl happy_var_1 happy_var_2
	)
happyReduction_148 _ _  = notHappyAtAll 

happyReduce_149 = happySpecReduce_0  49 happyReduction_149
happyReduction_149  =  HappyAbsSyn54
		 (Nothing
	)

happyReduce_150 = happySpecReduce_2  49 happyReduction_150
happyReduction_150 (HappyAbsSyn37  happy_var_2)
	_
	 =  HappyAbsSyn54
		 (Just happy_var_2
	)
happyReduction_150 _ _  = notHappyAtAll 

happyReduce_151 = happyReduce 5 50 happyReduction_151
happyReduction_151 ((HappyAbsSyn56  happy_var_5) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn55
		 (SSwitch happy_var_3 happy_var_5
	) `HappyStk` happyRest

happyReduce_152 = happySpecReduce_3  51 happyReduction_152
happyReduction_152 _
	(HappyAbsSyn57  happy_var_2)
	_
	 =  HappyAbsSyn56
		 (CaseBlock happy_var_2 [] []
	)
happyReduction_152 _ _ _  = notHappyAtAll 

happyReduce_153 = happyReduce 5 51 happyReduction_153
happyReduction_153 (_ `HappyStk`
	(HappyAbsSyn57  happy_var_4) `HappyStk`
	(HappyAbsSyn59  happy_var_3) `HappyStk`
	(HappyAbsSyn57  happy_var_2) `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn56
		 (CaseBlock happy_var_2 [happy_var_3] happy_var_4
	) `HappyStk` happyRest

happyReduce_154 = happySpecReduce_0  52 happyReduction_154
happyReduction_154  =  HappyAbsSyn57
		 ([]
	)

happyReduce_155 = happySpecReduce_1  52 happyReduction_155
happyReduction_155 (HappyAbsSyn58  happy_var_1)
	 =  HappyAbsSyn57
		 ([happy_var_1]
	)
happyReduction_155 _  = notHappyAtAll 

happyReduce_156 = happySpecReduce_2  52 happyReduction_156
happyReduction_156 (HappyAbsSyn58  happy_var_2)
	(HappyAbsSyn57  happy_var_1)
	 =  HappyAbsSyn57
		 (happy_var_1 ++ [happy_var_2]
	)
happyReduction_156 _ _  = notHappyAtAll 

happyReduce_157 = happyReduce 4 53 happyReduction_157
happyReduction_157 ((HappyAbsSyn41  happy_var_4) `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn38  happy_var_2) `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn58
		 (CaseClause happy_var_2 happy_var_4
	) `HappyStk` happyRest

happyReduce_158 = happySpecReduce_3  54 happyReduction_158
happyReduction_158 (HappyAbsSyn41  happy_var_3)
	_
	_
	 =  HappyAbsSyn59
		 (DefaultClause happy_var_3
	)
happyReduction_158 _ _ _  = notHappyAtAll 

happyReduce_159 = happySpecReduce_2  55 happyReduction_159
happyReduction_159 (HappyAbsSyn61  happy_var_2)
	_
	 =  HappyAbsSyn60
		 (happy_var_2
	)
happyReduction_159 _ _  = notHappyAtAll 

happyReduce_160 = happyReduce 7 55 happyReduction_160
happyReduction_160 (_ `HappyStk`
	(HappyAbsSyn63  happy_var_6) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn62  happy_var_3) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	happyRest)
	 = HappyAbsSyn60
		 (FuncDecl Nothing happy_var_3 happy_var_6
	) `HappyStk` happyRest

happyReduce_161 = happyReduce 7 56 happyReduction_161
happyReduction_161 (_ `HappyStk`
	(HappyAbsSyn63  happy_var_6) `HappyStk`
	_ `HappyStk`
	_ `HappyStk`
	(HappyAbsSyn62  happy_var_3) `HappyStk`
	_ `HappyStk`
	(HappyTerminal (TokenIdent happy_var_1)) `HappyStk`
	happyRest)
	 = HappyAbsSyn61
		 (FuncDecl (Just happy_var_1) happy_var_3 happy_var_6
	) `HappyStk` happyRest

happyReduce_162 = happySpecReduce_0  57 happyReduction_162
happyReduction_162  =  HappyAbsSyn62
		 ([]
	)

happyReduce_163 = happySpecReduce_1  57 happyReduction_163
happyReduction_163 (HappyTerminal (TokenIdent happy_var_1))
	 =  HappyAbsSyn62
		 ([ happy_var_1 ]
	)
happyReduction_163 _  = notHappyAtAll 

happyReduce_164 = happySpecReduce_3  57 happyReduction_164
happyReduction_164 (HappyTerminal (TokenIdent happy_var_3))
	_
	(HappyAbsSyn62  happy_var_1)
	 =  HappyAbsSyn62
		 (happy_var_1 ++ [happy_var_3]
	)
happyReduction_164 _ _ _  = notHappyAtAll 

happyReduce_165 = happySpecReduce_1  58 happyReduction_165
happyReduction_165 (HappyAbsSyn65  happy_var_1)
	 =  HappyAbsSyn63
		 (happy_var_1
	)
happyReduction_165 _  = notHappyAtAll 

happyReduce_166 = happySpecReduce_1  59 happyReduction_166
happyReduction_166 (HappyAbsSyn65  happy_var_1)
	 =  HappyAbsSyn64
		 (JSProgram happy_var_1
	)
happyReduction_166 _  = notHappyAtAll 

happyReduce_167 = happySpecReduce_1  60 happyReduction_167
happyReduction_167 (HappyAbsSyn66  happy_var_1)
	 =  HappyAbsSyn65
		 ([happy_var_1]
	)
happyReduction_167 _  = notHappyAtAll 

happyReduce_168 = happySpecReduce_2  60 happyReduction_168
happyReduction_168 (HappyAbsSyn66  happy_var_2)
	(HappyAbsSyn65  happy_var_1)
	 =  HappyAbsSyn65
		 (happy_var_1 ++ [happy_var_2]
	)
happyReduction_168 _ _  = notHappyAtAll 

happyReduce_169 = happySpecReduce_1  61 happyReduction_169
happyReduction_169 (HappyAbsSyn39  happy_var_1)
	 =  HappyAbsSyn66
		 (Stmt happy_var_1
	)
happyReduction_169 _  = notHappyAtAll 

happyReduce_170 = happySpecReduce_1  61 happyReduction_170
happyReduction_170 (HappyAbsSyn60  happy_var_1)
	 =  HappyAbsSyn66
		 (SEFuncDecl happy_var_1
	)
happyReduction_170 _  = notHappyAtAll 

happyNewToken action sts stk
	= lexerM action (\tk -> 
	let cont i = happyDoAction i tk action sts stk in
	case tk of {
	TokenEof -> happyDoAction 75 tk action sts stk;
	TokenEof -> cont 1;
	TokenInt happy_dollar_dollar -> cont 2;
	TokenIdent happy_dollar_dollar -> cont 3;
	TokenStringLit happy_dollar_dollar -> cont 4;
	TokenROP "=" -> cont 5;
	TokenROP "+" -> cont 6;
	TokenROP "-" -> cont 7;
	TokenROP "*" -> cont 8;
	TokenROP "/" -> cont 9;
	TokenROP "(" -> cont 10;
	TokenROP ")" -> cont 11;
	TokenROP "," -> cont 12;
	TokenNL -> cont 13;
	TokenROP "?" -> cont 14;
	TokenROP ":" -> cont 15;
	TokenROP "||" -> cont 16;
	TokenROP "&&" -> cont 17;
	TokenROP "|" -> cont 18;
	TokenROP "^" -> cont 19;
	TokenROP "&" -> cont 20;
	TokenROP "==" -> cont 21;
	TokenROP "!=" -> cont 22;
	TokenROP "===" -> cont 23;
	TokenROP "!==" -> cont 24;
	TokenROP "<" -> cont 25;
	TokenROP "<=" -> cont 26;
	TokenROP ">=" -> cont 27;
	TokenROP ">" -> cont 28;
	TokenROP "<<" -> cont 29;
	TokenROP ">>" -> cont 30;
	TokenROP ">>>" -> cont 31;
	TokenROP "!" -> cont 32;
	TokenROP "~" -> cont 33;
	TokenROP "++" -> cont 34;
	TokenROP "--" -> cont 35;
	TokenROP "." -> cont 36;
	TokenROP "[" -> cont 37;
	TokenROP "]" -> cont 38;
	TokenROP "{" -> cont 39;
	TokenROP "}" -> cont 40;
	TokenRID "delete" -> cont 41;
	TokenRID "void" -> cont 42;
	TokenRID "typeof" -> cont 43;
	TokenROP "%" -> cont 44;
	TokenROP "*=" -> cont 45;
	TokenROP "/=" -> cont 46;
	TokenROP "%=" -> cont 47;
	TokenROP "+=" -> cont 48;
	TokenROP "-=" -> cont 49;
	TokenRID "instanceof" -> cont 50;
	TokenRID "if" -> cont 51;
	TokenRID "else" -> cont 52;
	TokenROP ";" -> cont 53;
	TokenRID "do" -> cont 54;
	TokenRID "while" -> cont 55;
	TokenRID "for" -> cont 56;
	TokenRID "this" -> cont 57;
	TokenRID "var" -> cont 58;
	TokenRID "const" -> cont 59;
	TokenRID "function" -> cont 60;
	TokenRID "new" -> cont 61;
	TokenRID "try" -> cont 62;
	TokenRID "catch" -> cont 63;
	TokenRID "finally" -> cont 64;
	TokenRID "continue" -> cont 65;
	TokenRID "break" -> cont 66;
	TokenRID "throw" -> cont 67;
	TokenRID "return" -> cont 68;
	TokenRID "with" -> cont 69;
	TokenRID "switch" -> cont 70;
	TokenRID "case" -> cont 71;
	TokenRID "default" -> cont 72;
	TokenRID "in" -> cont 73;
	TokenRegex happy_dollar_dollar -> cont 74;
	_ -> happyError' tk
	})

happyError_ tk = happyError' tk

happyThen :: () => P a -> (a -> P b) -> P b
happyThen = (>>=)
happyReturn :: () => a -> P a
happyReturn = (return)
happyThen1 = happyThen
happyReturn1 :: () => a -> P a
happyReturn1 = happyReturn
happyError' :: () => Token -> P a
happyError' tk = parseError tk

jsprogram = happySomeParser where
  happySomeParser = happyThen (happyParse 0) (\x -> case x of {HappyAbsSyn64 z -> happyReturn z; _other -> notHappyAtAll })

primexpr = happySomeParser where
  happySomeParser = happyThen (happyParse 1) (\x -> case x of {HappyAbsSyn10 z -> happyReturn z; _other -> notHappyAtAll })

happySeq = happyDontSeq


parseError :: Token -> P a
parseError tok = do 
                  s <- get
   	          throwError ("parse error" ++ " tok = " ++ show tok ++ " rest=<" ++ (rest s) ++ "> lnum = " ++ show (lineno s) ++ " mode= " ++ show (mode s) ++ show (tr s))
{-# LINE 1 "GenericTemplate.hs" #-}
{-# LINE 1 "<built-in>" #-}
{-# LINE 1 "<command line>" #-}
{-# LINE 1 "GenericTemplate.hs" #-}
-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 

{-# LINE 28 "GenericTemplate.hs" #-}


data Happy_IntList = HappyCons Int Happy_IntList





{-# LINE 49 "GenericTemplate.hs" #-}

{-# LINE 59 "GenericTemplate.hs" #-}

{-# LINE 68 "GenericTemplate.hs" #-}

infixr 9 `HappyStk`
data HappyStk a = HappyStk a (HappyStk a)

-----------------------------------------------------------------------------
-- starting the parse

happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll

-----------------------------------------------------------------------------
-- Accepting the parse

-- If the current token is (0), it means we've just accepted a partial
-- parse (a %partial parser).  We must ignore the saved token on the top of
-- the stack in this case.
happyAccept (0) tk st sts (_ `HappyStk` ans `HappyStk` _) =
	happyReturn1 ans
happyAccept j tk st sts (HappyStk ans _) = 
	 (happyReturn1 ans)

-----------------------------------------------------------------------------
-- Arrays only: do the next action



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 = ((negate ((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

{-# LINE 127 "GenericTemplate.hs" #-}

{-# LINE 147 "GenericTemplate.hs" #-}
indexShortOffAddr arr off = arr ! off








-----------------------------------------------------------------------------
-- HappyState data type (not arrays)

{-# LINE 170 "GenericTemplate.hs" #-}

-----------------------------------------------------------------------------
-- Shifting a token

happyShift new_state (0) tk st sts stk@(x `HappyStk` _) =
     let i = (case x of { HappyErrorToken (i) -> i }) in
--     trace "shifting the error token" $
     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)

happyShift new_state i tk st sts stk =
     happyNewToken new_state (HappyCons (st) (sts)) ((HappyTerminal (tk))`HappyStk`stk)

-- happyReduce is specialised for the common cases.

happySpecReduce_0 i fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happySpecReduce_0 nt fn j tk st@((action)) sts stk
     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)

happySpecReduce_1 i fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')
     = let r = fn v1 in
       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))

happySpecReduce_2 i fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')
     = let r = fn v1 v2 in
       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))

happySpecReduce_3 i fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
     = let r = fn v1 v2 v3 in
       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))

happyReduce k i fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happyReduce k nt fn j tk st sts stk
     = case happyDrop (k - ((1) :: Int)) sts of
	 sts1@((HappyCons (st1@(action)) (_))) ->
        	let r = fn stk in  -- it doesn't hurt to always seq here...
       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)

happyMonadReduce k nt fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happyMonadReduce k nt fn j tk st sts stk =
        happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
             drop_stk = happyDropStk k stk

happyMonad2Reduce k nt fn (0) tk st sts stk
     = happyFail (0) tk st sts stk
happyMonad2Reduce k nt fn j tk st sts stk =
       happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
             drop_stk = happyDropStk k stk

             off    = indexShortOffAddr happyGotoOffsets st1
             off_i  = (off + nt)
             new_state = indexShortOffAddr happyTable off_i




happyDrop (0) l = l
happyDrop n (HappyCons (_) (t)) = happyDrop (n - ((1) :: Int)) t

happyDropStk (0) l = l
happyDropStk n (x `HappyStk` xs) = happyDropStk (n - ((1)::Int)) xs

-----------------------------------------------------------------------------
-- Moving to a new state after a reduction


happyGoto nt j tk st = 
   {- nothing -}
   happyDoAction j tk new_state
   where off    = indexShortOffAddr happyGotoOffsets st
	 off_i  = (off + nt)
 	 new_state = indexShortOffAddr happyTable off_i




-----------------------------------------------------------------------------
-- Error recovery ((0) is the error token)

-- parse error if we are in recovery and we fail again
happyFail  (0) tk old_st _ stk =
--	trace "failing" $ 
    	happyError_ tk

{-  We don't need state discarding for our restricted implementation of
    "error".  In fact, it can cause some bogus parses, so I've disabled it
    for now --SDM

-- discard a state
happyFail  (0) tk old_st (HappyCons ((action)) (sts)) 
						(saved_tok `HappyStk` _ `HappyStk` stk) =
--	trace ("discarding state, depth " ++ show (length stk))  $
	happyDoAction (0) tk action sts ((saved_tok`HappyStk`stk))
-}

-- Enter error recovery: generate an error token,
--                       save the old token and carry on.
happyFail  i tk (action) sts stk =
--      trace "entering error recovery" $
	happyDoAction (0) tk action sts ( (HappyErrorToken (i)) `HappyStk` stk)

-- Internal happy errors:

notHappyAtAll = error "Internal Happy error\n"

-----------------------------------------------------------------------------
-- Hack to get the typechecker to accept our action functions







-----------------------------------------------------------------------------
-- Seq-ing.  If the --strict flag is given, then Happy emits 
--	happySeq = happyDoSeq
-- otherwise it emits
-- 	happySeq = happyDontSeq

happyDoSeq, happyDontSeq :: a -> b -> b
happyDoSeq   a b = a `seq` b
happyDontSeq a b = b

-----------------------------------------------------------------------------
-- Don't inline any functions from the template.  GHC has a nasty habit
-- of deciding to inline happyGoto everywhere, which increases the size of
-- the generated parser quite a bit.


{-# NOINLINE happyDoAction #-}
{-# NOINLINE happyTable #-}
{-# NOINLINE happyCheck #-}
{-# NOINLINE happyActOffsets #-}
{-# NOINLINE happyGotoOffsets #-}
{-# NOINLINE happyDefActions #-}

{-# NOINLINE happyShift #-}
{-# NOINLINE happySpecReduce_0 #-}
{-# NOINLINE happySpecReduce_1 #-}
{-# NOINLINE happySpecReduce_2 #-}
{-# NOINLINE happySpecReduce_3 #-}
{-# NOINLINE happyReduce #-}
{-# NOINLINE happyMonadReduce #-}
{-# NOINLINE happyGoto #-}
{-# NOINLINE happyFail #-}

-- end of Happy Template.