From 5d7bcac1e5c59c83c81ee51be416fbd907989507 Mon Sep 17 00:00:00 2001 From: bringert Date: Mon, 28 Nov 2005 21:45:58 +0000 Subject: [PATCH] Changed precedence of projection to be higher than application. --- src/Transfer/Syntax/Abs.hs | 18 ++++++++--------- src/Transfer/Syntax/Doc.tex | 6 +++--- src/Transfer/Syntax/Par.hs | 38 +++++++++++++++++------------------ src/Transfer/Syntax/Par.y | 6 +++--- src/Transfer/Syntax/Print.hs | 6 +++--- src/Transfer/Syntax/Skel.hs | 4 ++-- src/Transfer/Syntax/Syntax.cf | 6 +++--- 7 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/Transfer/Syntax/Abs.hs b/src/Transfer/Syntax/Abs.hs index 6de70f3cc..fb9b9adbe 100644 --- a/src/Transfer/Syntax/Abs.hs +++ b/src/Transfer/Syntax/Abs.hs @@ -69,9 +69,9 @@ data Tree :: * -> * where EMul :: Exp -> Exp -> Tree Exp_ EDiv :: Exp -> Exp -> Tree Exp_ EMod :: Exp -> Exp -> Tree Exp_ - EProj :: Exp -> Ident -> Tree Exp_ ENeg :: Exp -> Tree Exp_ EApp :: Exp -> Exp -> Tree Exp_ + EProj :: Exp -> Ident -> Tree Exp_ EEmptyRec :: Tree Exp_ ERecType :: [FieldType] -> Tree Exp_ ERec :: [FieldValue] -> Tree Exp_ @@ -132,9 +132,9 @@ composOpM f t = case t of EMul exp0 exp1 -> return EMul `ap` f exp0 `ap` f exp1 EDiv exp0 exp1 -> return EDiv `ap` f exp0 `ap` f exp1 EMod exp0 exp1 -> return EMod `ap` f exp0 `ap` f exp1 - EProj exp i -> return EProj `ap` f exp `ap` f i ENeg exp -> return ENeg `ap` f exp EApp exp0 exp1 -> return EApp `ap` f exp0 `ap` f exp1 + EProj exp i -> return EProj `ap` f exp `ap` f i ERecType fieldtypes -> return ERecType `ap` mapM f fieldtypes ERec fieldvalues -> return ERec `ap` mapM f fieldvalues EVar i -> return EVar `ap` f i @@ -178,9 +178,9 @@ composOpFold zero combine f t = case t of EMul exp0 exp1 -> f exp0 `combine` f exp1 EDiv exp0 exp1 -> f exp0 `combine` f exp1 EMod exp0 exp1 -> f exp0 `combine` f exp1 - EProj exp i -> f exp `combine` f i ENeg exp -> f exp EApp exp0 exp1 -> f exp0 `combine` f exp1 + EProj exp i -> f exp `combine` f i ERecType fieldtypes -> foldr combine zero (map f fieldtypes) ERec fieldvalues -> foldr combine zero (map f fieldvalues) EVar i -> f i @@ -228,9 +228,9 @@ instance Show (Tree c) where EMul exp0 exp1 -> opar n . showString "EMul" . showChar ' ' . showsPrec 1 exp0 . showChar ' ' . showsPrec 1 exp1 . cpar n EDiv exp0 exp1 -> opar n . showString "EDiv" . showChar ' ' . showsPrec 1 exp0 . showChar ' ' . showsPrec 1 exp1 . cpar n EMod exp0 exp1 -> opar n . showString "EMod" . showChar ' ' . showsPrec 1 exp0 . showChar ' ' . showsPrec 1 exp1 . cpar n - EProj exp i -> opar n . showString "EProj" . showChar ' ' . showsPrec 1 exp . showChar ' ' . showsPrec 1 i . cpar n ENeg exp -> opar n . showString "ENeg" . showChar ' ' . showsPrec 1 exp . cpar n EApp exp0 exp1 -> opar n . showString "EApp" . showChar ' ' . showsPrec 1 exp0 . showChar ' ' . showsPrec 1 exp1 . cpar n + EProj exp i -> opar n . showString "EProj" . showChar ' ' . showsPrec 1 exp . showChar ' ' . showsPrec 1 i . cpar n EEmptyRec -> showString "EEmptyRec" ERecType fieldtypes -> opar n . showString "ERecType" . showChar ' ' . showsPrec 1 fieldtypes . cpar n ERec fieldvalues -> opar n . showString "ERec" . showChar ' ' . showsPrec 1 fieldvalues . cpar n @@ -286,9 +286,9 @@ johnMajorEq (ESub exp0 exp1) (ESub exp0_ exp1_) = exp0 == exp0_ && exp1 == exp1_ johnMajorEq (EMul exp0 exp1) (EMul exp0_ exp1_) = exp0 == exp0_ && exp1 == exp1_ johnMajorEq (EDiv exp0 exp1) (EDiv exp0_ exp1_) = exp0 == exp0_ && exp1 == exp1_ johnMajorEq (EMod exp0 exp1) (EMod exp0_ exp1_) = exp0 == exp0_ && exp1 == exp1_ -johnMajorEq (EProj exp i) (EProj exp_ i_) = exp == exp_ && i == i_ johnMajorEq (ENeg exp) (ENeg exp_) = exp == exp_ johnMajorEq (EApp exp0 exp1) (EApp exp0_ exp1_) = exp0 == exp0_ && exp1 == exp1_ +johnMajorEq (EProj exp i) (EProj exp_ i_) = exp == exp_ && i == i_ johnMajorEq EEmptyRec EEmptyRec = True johnMajorEq (ERecType fieldtypes) (ERecType fieldtypes_) = fieldtypes == fieldtypes_ johnMajorEq (ERec fieldvalues) (ERec fieldvalues_) = fieldvalues == fieldvalues_ @@ -343,9 +343,9 @@ instance Ord (Tree c) where index (EMul _ _) = 32 index (EDiv _ _) = 33 index (EMod _ _) = 34 - index (EProj _ _) = 35 - index (ENeg _) = 36 - index (EApp _ _) = 37 + index (ENeg _) = 35 + index (EApp _ _) = 36 + index (EProj _ _) = 37 index (EEmptyRec ) = 38 index (ERecType _) = 39 index (ERec _) = 40 @@ -395,9 +395,9 @@ instance Ord (Tree c) where compareSame (EMul exp0 exp1) (EMul exp0_ exp1_) = mappend (compare exp0 exp0_) (compare exp1 exp1_) compareSame (EDiv exp0 exp1) (EDiv exp0_ exp1_) = mappend (compare exp0 exp0_) (compare exp1 exp1_) compareSame (EMod exp0 exp1) (EMod exp0_ exp1_) = mappend (compare exp0 exp0_) (compare exp1 exp1_) - compareSame (EProj exp i) (EProj exp_ i_) = mappend (compare exp exp_) (compare i i_) compareSame (ENeg exp) (ENeg exp_) = compare exp exp_ compareSame (EApp exp0 exp1) (EApp exp0_ exp1_) = mappend (compare exp0 exp0_) (compare exp1 exp1_) + compareSame (EProj exp i) (EProj exp_ i_) = mappend (compare exp exp_) (compare i i_) compareSame EEmptyRec EEmptyRec = EQ compareSame (ERecType fieldtypes) (ERecType fieldtypes_) = compare fieldtypes fieldtypes_ compareSame (ERec fieldvalues) (ERec fieldvalues_) = compare fieldvalues fieldvalues_ diff --git a/src/Transfer/Syntax/Doc.tex b/src/Transfer/Syntax/Doc.tex index 613753b92..d49729f19 100644 --- a/src/Transfer/Syntax/Doc.tex +++ b/src/Transfer/Syntax/Doc.tex @@ -213,17 +213,17 @@ All other symbols are terminals.\\ \end{tabular}\\ \begin{tabular}{lll} -{\nonterminal{Exp8}} & {\arrow} &{\nonterminal{Exp8}} {\terminal{.}} {\nonterminal{Ident}} \\ +{\nonterminal{Exp8}} & {\arrow} &{\terminal{{$-$}}} {\nonterminal{Exp8}} \\ & {\delimit} &{\nonterminal{Exp9}} \\ \end{tabular}\\ \begin{tabular}{lll} -{\nonterminal{Exp9}} & {\arrow} &{\terminal{{$-$}}} {\nonterminal{Exp9}} \\ +{\nonterminal{Exp9}} & {\arrow} &{\nonterminal{Exp9}} {\nonterminal{Exp10}} \\ & {\delimit} &{\nonterminal{Exp10}} \\ \end{tabular}\\ \begin{tabular}{lll} -{\nonterminal{Exp10}} & {\arrow} &{\nonterminal{Exp10}} {\nonterminal{Exp11}} \\ +{\nonterminal{Exp10}} & {\arrow} &{\nonterminal{Exp10}} {\terminal{.}} {\nonterminal{Ident}} \\ & {\delimit} &{\nonterminal{Exp11}} \\ \end{tabular}\\ diff --git a/src/Transfer/Syntax/Par.hs b/src/Transfer/Syntax/Par.hs index 96028538d..e007741d7 100644 --- a/src/Transfer/Syntax/Par.hs +++ b/src/Transfer/Syntax/Par.hs @@ -237,19 +237,19 @@ happyOutTok x = unsafeCoerce# x {-# INLINE happyOutTok #-} happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\x8b\x02\x2a\x00\x84\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x02\x00\x00\x9a\x02\x97\x02\x95\x02\x89\x02\xf8\x01\x75\x02\x00\x00\x58\x00\x00\x00\x00\x00\x1a\x00\x15\x00\xfb\xff\x53\x00\x00\x00\x2a\x00\x2a\x00\x9c\x02\x00\x00\x00\x00\x67\x02\x8e\x02\x64\x02\x66\x02\x00\x00\x7a\x02\x73\x02\x00\x00\x49\x02\x49\x02\x39\x02\x32\x02\x33\x02\x23\x02\x00\x00\x2a\x00\x00\x00\x38\x02\x00\x00\xfe\xff\x30\x02\x01\x02\x6e\x00\xd0\x01\xbd\x01\xb0\x01\x9d\x01\x00\x00\x00\x00\x0e\x02\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xf8\x01\xf8\x01\x52\x00\x52\x00\x52\x00\x52\x00\x52\x00\x52\x00\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x0d\x02\x00\x00\x0d\x02\x2a\x00\x2a\x00\x2a\x00\x00\x00\x2a\x00\x7e\x01\x2a\x00\x6f\x01\x60\x01\x4d\x01\x00\x00\xfd\x01\x3f\x01\x64\x02\x44\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x01\x2a\x00\xda\x01\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x11\x01\xbb\x01\x2a\x00\x04\x01\x4f\x00\x00\x00\x0a\x01\x00\x00\x00\x00\xff\x00\x00\x00\xec\x01\x00\x00\xe8\x00\x4f\x00\xd8\x00\x00\x00\xd0\x00\xbd\x00\x2a\x00\xdc\x01\x00\x00\x2a\x00\x8d\x00\x00\x00\x00\x00\x9a\x00\x99\x00\x95\x00\x00\x00\x70\x00\x4f\x00\x3a\x00\x59\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x4f\x00\x2a\x00\x00\x00\x2a\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x79\x00\x57\x00\x73\x00\x00\x00\x05\x00\x2a\x00\x00\x00\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\x91\x02\x2a\x00\x85\x02\x00\x00\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\xa2\x02\x87\x02\x99\x02\x8b\x02\xe8\x01\x00\x00\x58\x00\x90\x02\x00\x00\x00\x00\x1a\x00\x15\x00\xfb\xff\x53\x00\x00\x00\x2a\x00\x2a\x00\xa1\x02\x00\x00\x00\x00\x66\x02\x8f\x02\x70\x02\x5b\x02\x00\x00\x81\x02\x7e\x02\x00\x00\x45\x02\x45\x02\x47\x02\x40\x02\x1e\x02\x23\x02\x00\x00\x2a\x00\x00\x00\x2e\x02\x00\x00\xfe\xff\x2c\x02\x30\x02\x6e\x00\x0c\x02\xcd\x01\xc0\x01\xad\x01\x00\x00\xfd\x01\x89\x01\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x53\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xe8\x01\xe8\x01\x86\x00\x86\x00\x86\x00\x86\x00\x86\x00\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x01\x00\x00\xea\x01\x2a\x00\x2a\x00\x2a\x00\x00\x00\x2a\x00\x8e\x01\x2a\x00\x7f\x01\x70\x01\x5d\x01\x00\x00\xe9\x01\x4f\x01\x70\x02\x44\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x01\x2a\x00\xcb\x01\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x21\x01\xbb\x01\x2a\x00\x14\x01\x4f\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x0f\x01\x00\x00\xfe\x01\x00\x00\xf8\x00\x4f\x00\xe8\x00\x00\x00\xe0\x00\xcd\x00\x2a\x00\xec\x01\x00\x00\x2a\x00\x9d\x00\x00\x00\x00\x00\xd9\x01\xb0\x00\x9b\x00\x00\x00\x6a\x00\x4f\x00\x3a\x00\x92\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x4f\x00\x2a\x00\x00\x00\x2a\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x79\x00\x57\x00\x73\x00\x00\x00\x05\x00\x2a\x00\x00\x00\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x62\x02\xbc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x72\x00\x6d\x00\x1c\x00\x53\x02\x00\x00\xac\x01\x9c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x02\x5a\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x54\x00\x37\x00\x49\x00\xde\x01\x00\x00\x00\x00\x00\x00\x8c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x46\x02\x42\x02\x3e\x02\x1f\x02\x10\x02\x0a\x02\x00\x02\xfa\x01\xeb\x01\x34\x02\x2f\x02\xdb\x01\xcc\x01\x7c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x6c\x01\x5c\x01\x4c\x01\x00\x00\x3c\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x9e\x02\x86\x02\x1c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x01\x0c\x01\x26\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x35\x00\xec\x00\x00\x00\x6b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x02\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x77\x02\x96\x00\x00\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x68\x02\xac\x00\xfc\xff\x9c\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x8c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x02\x8c\x00\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x9e\x02\xbc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x02\x00\x00\x00\x00\x00\x00\x72\x00\x6d\x00\x1c\x00\x53\x02\x00\x00\xac\x01\x9c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x02\x66\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x5c\x00\x37\x00\x49\x00\x54\x00\x00\x00\x00\x00\x00\x00\x8c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x46\x02\x42\x02\x3e\x02\x1f\x02\x10\x02\x0a\x02\x00\x02\xfa\x01\xeb\x01\x34\x02\x2f\x02\xdb\x01\xcc\x01\x7c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x6c\x01\x5c\x01\x4c\x01\x00\x00\x3c\x01\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x8d\x02\x86\x02\x1c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x01\x0c\x01\x26\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x35\x00\xec\x00\x00\x00\x77\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x02\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7a\x02\x96\x00\x00\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x6b\x02\xac\x00\xfc\xff\x9c\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x8e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x00\x8c\x00\x00\x00\x00\x00\x00\x00"# happyDefActions :: HappyAddr -happyDefActions = HappyA# "\xf8\xff\x00\x00\x00\x00\xfd\xff\xae\xff\xac\xff\xab\xff\x00\x00\xa3\xff\xcc\xff\xc8\xff\xc6\xff\xbf\xff\xbc\xff\xb8\xff\xb6\xff\xb4\xff\xb2\xff\xd8\xff\x00\x00\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\x00\x00\x00\x00\xfc\xff\xfb\xff\x00\x00\xf7\xff\xf1\xff\x00\x00\xf9\xff\xe1\xff\xf0\xff\xfa\xff\x00\x00\x00\x00\xf8\xff\xd6\xff\x00\x00\x00\x00\xb5\xff\x00\x00\xcb\xff\x00\x00\xca\xff\xcb\xff\x00\x00\x00\x00\x00\x00\xa8\xff\x00\x00\xa5\xff\x00\x00\xb1\xff\xb3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xff\xc9\xff\xc7\xff\xbd\xff\xbe\xff\xc0\xff\xc1\xff\xc2\xff\xc3\xff\xc4\xff\xc5\xff\xb9\xff\xba\xff\xbb\xff\xb7\xff\xaf\xff\x00\x00\xb0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd5\xff\x00\x00\xf6\xff\x00\x00\x00\x00\xf1\xff\x00\x00\x00\x00\xf4\xff\xe3\xff\xe5\xff\xe4\xff\xe0\xff\xde\xff\x00\x00\x00\x00\xe2\xff\xe6\xff\xef\xff\x00\x00\xf2\xff\x00\x00\xd6\xff\x00\x00\x00\x00\xd2\xff\xcf\xff\x00\x00\xa6\xff\xa9\xff\x00\x00\xa7\xff\x00\x00\xa4\xff\x00\x00\xe3\xff\x00\x00\xe9\xff\xd1\xff\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\x00\x00\xe1\xff\xf3\xff\x00\x00\xdd\xff\x00\x00\xe7\xff\xde\xff\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xd9\xff\xda\xff\xd2\xff\x00\x00\xe1\xff\x00\x00\xce\xff\xea\xff\xd3\xff\xd0\xff\xd7\xff\xed\xff\xe8\xff\xdf\xff\xdc\xff\x00\x00\xec\xff\x00\x00\xf5\xff\xed\xff\x00\x00\xee\xff\xeb\xff"# +happyDefActions = HappyA# "\xf8\xff\x00\x00\x00\x00\xfd\xff\xae\xff\xac\xff\xab\xff\x00\x00\xa3\xff\xcc\xff\xc8\xff\xc6\xff\xbf\xff\xbc\xff\xb8\xff\xb6\xff\xb4\xff\xb2\xff\xd8\xff\x00\x00\x00\x00\x00\x00\x00\x00\xad\xff\x00\x00\x00\x00\x00\x00\xfc\xff\xfb\xff\x00\x00\xf7\xff\xf1\xff\x00\x00\xf9\xff\xe1\xff\xf0\xff\xfa\xff\x00\x00\x00\x00\xf8\xff\xd6\xff\x00\x00\x00\x00\xb7\xff\x00\x00\xcb\xff\x00\x00\xca\xff\xcb\xff\x00\x00\x00\x00\x00\x00\xa8\xff\x00\x00\xa5\xff\x00\x00\xb1\xff\x00\x00\xb5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xff\xc9\xff\xc7\xff\xbd\xff\xbe\xff\xc0\xff\xc1\xff\xc2\xff\xc3\xff\xc4\xff\xc5\xff\xb9\xff\xba\xff\xbb\xff\xb3\xff\xaf\xff\x00\x00\xb0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd5\xff\x00\x00\xf6\xff\x00\x00\x00\x00\xf1\xff\x00\x00\x00\x00\xf4\xff\xe3\xff\xe5\xff\xe4\xff\xe0\xff\xde\xff\x00\x00\x00\x00\xe2\xff\xe6\xff\xef\xff\x00\x00\xf2\xff\x00\x00\xd6\xff\x00\x00\x00\x00\xd2\xff\xcf\xff\x00\x00\xa6\xff\xa9\xff\x00\x00\xa7\xff\x00\x00\xa4\xff\x00\x00\xe3\xff\x00\x00\xe9\xff\xd1\xff\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\x00\x00\xe1\xff\xf3\xff\x00\x00\xdd\xff\x00\x00\xe7\xff\xde\xff\x00\x00\x00\x00\x00\x00\xdb\xff\x00\x00\xd9\xff\xda\xff\xd2\xff\x00\x00\xe1\xff\x00\x00\xce\xff\xea\xff\xd3\xff\xd0\xff\xd7\xff\xed\xff\xe8\xff\xdf\xff\xdc\xff\x00\x00\xec\xff\x00\x00\xf5\xff\xed\xff\x00\x00\xee\xff\xeb\xff"# happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x03\x00\x00\x00\x08\x00\x06\x00\x07\x00\x00\x00\x09\x00\x0c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x03\x00\x0c\x00\x0c\x00\x06\x00\x00\x00\x08\x00\x04\x00\x0a\x00\x25\x00\x1f\x00\x20\x00\x25\x00\x26\x00\x27\x00\x00\x00\x21\x00\x22\x00\x14\x00\x25\x00\x00\x00\x00\x00\x03\x00\x19\x00\x1a\x00\x06\x00\x15\x00\x00\x00\x1e\x00\x0a\x00\x00\x00\x21\x00\x00\x00\x0d\x00\x0e\x00\x25\x00\x26\x00\x27\x00\x03\x00\x14\x00\x25\x00\x06\x00\x07\x00\x08\x00\x19\x00\x1a\x00\x10\x00\x11\x00\x03\x00\x1e\x00\x05\x00\x06\x00\x21\x00\x08\x00\x04\x00\x05\x00\x25\x00\x26\x00\x27\x00\x03\x00\x19\x00\x00\x00\x06\x00\x03\x00\x08\x00\x01\x00\x06\x00\x00\x00\x03\x00\x03\x00\x19\x00\x06\x00\x25\x00\x26\x00\x27\x00\x00\x00\x01\x00\x02\x00\x13\x00\x14\x00\x14\x00\x19\x00\x25\x00\x26\x00\x27\x00\x19\x00\x00\x00\x01\x00\x02\x00\x02\x00\x19\x00\x00\x00\x05\x00\x25\x00\x26\x00\x27\x00\x04\x00\x25\x00\x26\x00\x27\x00\x02\x00\x0f\x00\x25\x00\x26\x00\x27\x00\x1e\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x25\x00\x23\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x25\x00\x00\x00\x01\x00\x02\x00\x04\x00\x01\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x05\x00\x14\x00\x0b\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x24\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x09\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x09\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x02\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x07\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x1d\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x20\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x02\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x02\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x03\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x18\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x00\x00\x23\x00\x25\x00\x05\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x10\x00\x11\x00\x00\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x0d\x00\x0e\x00\x25\x00\x00\x00\x01\x00\x02\x00\x02\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x15\x00\x16\x00\x17\x00\x00\x00\x01\x00\x02\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x25\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x25\x00\x25\x00\x00\x00\x01\x00\x02\x00\x07\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x09\x00\x00\x00\x01\x00\x02\x00\x22\x00\x00\x00\x01\x00\x02\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x23\x00\x25\x00\x1f\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x03\x00\x04\x00\x05\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x25\x00\x1c\x00\x1d\x00\x1e\x00\x0a\x00\x0b\x00\x01\x00\x0a\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x12\x00\x13\x00\x02\x00\x12\x00\x13\x00\x1b\x00\x1c\x00\x0a\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x25\x00\x00\x00\x25\x00\x00\x00\x18\x00\x0b\x00\x01\x00\x29\x00\x0b\x00\x08\x00\x09\x00\x08\x00\x09\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x03\x00\x00\x00\x0c\x00\x0b\x00\x09\x00\x06\x00\x07\x00\x06\x00\x07\x00\x29\x00\x25\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# +happyCheck = HappyA# "\xff\xff\x03\x00\x00\x00\x08\x00\x06\x00\x07\x00\x00\x00\x09\x00\x0c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x03\x00\x0c\x00\x0c\x00\x06\x00\x00\x00\x08\x00\x04\x00\x0a\x00\x25\x00\x1f\x00\x20\x00\x25\x00\x26\x00\x27\x00\x00\x00\x21\x00\x22\x00\x14\x00\x25\x00\x00\x00\x00\x00\x03\x00\x19\x00\x1a\x00\x06\x00\x15\x00\x00\x00\x1e\x00\x0a\x00\x00\x00\x21\x00\x00\x00\x0d\x00\x0e\x00\x25\x00\x26\x00\x27\x00\x03\x00\x14\x00\x25\x00\x06\x00\x07\x00\x08\x00\x19\x00\x1a\x00\x10\x00\x11\x00\x03\x00\x1e\x00\x05\x00\x06\x00\x21\x00\x08\x00\x04\x00\x05\x00\x25\x00\x26\x00\x27\x00\x03\x00\x19\x00\x00\x00\x06\x00\x03\x00\x08\x00\x01\x00\x06\x00\x00\x00\x03\x00\x00\x00\x19\x00\x06\x00\x25\x00\x26\x00\x27\x00\x08\x00\x09\x00\x10\x00\x11\x00\x00\x00\x14\x00\x19\x00\x25\x00\x26\x00\x27\x00\x19\x00\x00\x00\x01\x00\x02\x00\x02\x00\x19\x00\x00\x00\x05\x00\x25\x00\x26\x00\x27\x00\x04\x00\x25\x00\x26\x00\x27\x00\x02\x00\x0f\x00\x25\x00\x26\x00\x27\x00\x25\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x25\x00\x23\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x03\x00\x00\x00\x01\x00\x02\x00\x13\x00\x14\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x04\x00\x14\x00\x0b\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x24\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x09\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x09\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x02\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x07\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x1d\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x20\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x02\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x02\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x03\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x18\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x01\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x23\x00\x14\x00\x04\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x05\x00\x23\x00\x25\x00\x00\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x0d\x00\x0e\x00\x25\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x15\x00\x16\x00\x17\x00\x00\x00\x01\x00\x02\x00\x05\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x01\x00\x25\x00\x25\x00\x00\x00\x01\x00\x02\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x25\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x02\x00\x07\x00\x00\x00\x01\x00\x02\x00\x09\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x23\x00\x00\x00\x01\x00\x02\x00\x22\x00\x00\x00\x01\x00\x02\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x25\x00\x1f\x00\x00\x00\x01\x00\x02\x00\x25\x00\x00\x00\x01\x00\x02\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x0b\x00\x1d\x00\x1e\x00\x0a\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x00\x00\x01\x00\x02\x00\x12\x00\x13\x00\x01\x00\x25\x00\x0a\x00\x0b\x00\x02\x00\x0a\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x12\x00\x13\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x29\x00\x01\x00\x0b\x00\x0b\x00\x06\x00\x07\x00\x25\x00\x08\x00\x09\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x00\x00\x03\x00\x04\x00\x05\x00\x03\x00\x0c\x00\x06\x00\x07\x00\x18\x00\x29\x00\x25\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# happyTable :: HappyAddr -happyTable = HappyA# "\x00\x00\xae\xff\x82\x00\x30\x00\xae\xff\xae\xff\x84\x00\xae\xff\xa4\x00\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\x14\x00\x99\x00\x6a\x00\x15\x00\x2d\x00\x30\x00\x39\x00\x16\x00\x04\x00\x34\x00\x83\x00\xae\xff\xae\xff\xae\xff\x91\x00\x36\x00\x85\x00\x17\x00\x04\x00\x93\x00\x78\x00\x14\x00\x18\x00\x19\x00\x15\x00\x2e\x00\x57\x00\x1a\x00\x16\x00\x63\x00\x1b\x00\x67\x00\x94\x00\xab\x00\x04\x00\x1c\x00\x1d\x00\x72\x00\x17\x00\x04\x00\x74\x00\xaa\x00\x75\x00\x18\x00\x19\x00\x64\x00\x8e\x00\x72\x00\x1a\x00\x73\x00\x74\x00\x1b\x00\x75\x00\x1e\x00\x66\x00\x04\x00\x1c\x00\x1d\x00\x72\x00\x76\x00\x68\x00\x74\x00\x14\x00\x75\x00\xb1\x00\x2d\x00\x21\x00\x14\x00\xa9\x00\x76\x00\x2d\x00\x04\x00\x1c\x00\x1d\x00\x04\x00\x05\x00\x06\x00\x45\x00\x46\x00\x17\x00\x76\x00\x04\x00\x1c\x00\x1d\x00\x18\x00\x30\x00\x05\x00\x06\x00\x5d\x00\x18\x00\x33\x00\x5e\x00\x04\x00\x1c\x00\x1d\x00\xb0\x00\x04\x00\x1c\x00\x1d\x00\xb2\x00\x31\x00\x04\x00\x1c\x00\x1d\x00\x39\x00\x08\x00\x32\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x04\x00\x12\x00\x34\x00\x35\x00\x36\x00\x37\x00\x04\x00\x6d\x00\x6e\x00\x6f\x00\x97\x00\x98\x00\xb2\x00\x04\x00\x05\x00\x06\x00\x99\x00\x08\x00\x70\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xa3\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x9b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xa5\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x9f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xa7\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\xa0\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x9b\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\xa1\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x9d\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\xa3\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x8d\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x90\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x87\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x92\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x8d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x6c\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x90\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x7c\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x78\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x7e\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x7f\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x80\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7c\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x81\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x49\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x3b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x31\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x59\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x29\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x2a\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x07\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5c\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x63\x00\x12\x00\x04\x00\x9d\x00\x4a\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x64\x00\x65\x00\x93\x00\x5e\x00\x4b\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x94\x00\x95\x00\x04\x00\x04\x00\x05\x00\x06\x00\x5f\x00\x4e\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x3c\x00\x3d\x00\x3e\x00\x04\x00\x05\x00\x06\x00\x4f\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x50\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x04\x00\x51\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x52\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x04\x00\x04\x00\x04\x00\x05\x00\x06\x00\x60\x00\x53\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x61\x00\x04\x00\x05\x00\x06\x00\x62\x00\x04\x00\x05\x00\x06\x00\x4c\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x4d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x63\x00\x04\x00\x21\x00\x54\x00\x0f\x00\x10\x00\x11\x00\x55\x00\x0f\x00\x10\x00\x11\x00\x56\x00\x0f\x00\x10\x00\x11\x00\x1d\x00\x1e\x00\x1f\x00\x87\x00\x6e\x00\x6f\x00\x87\x00\x6e\x00\x6f\x00\x04\x00\x2b\x00\x10\x00\x11\x00\x88\x00\x89\x00\x6a\x00\x88\x00\x89\x00\x87\x00\x6e\x00\x6f\x00\x8a\x00\xa6\x00\x6c\x00\x8a\x00\x8b\x00\x26\x00\x27\x00\xaa\x00\x89\x00\x6d\x00\x6e\x00\x6f\x00\x6d\x00\x6e\x00\x6f\x00\x04\x00\xac\x00\x04\x00\xac\x00\x3b\x00\xa1\x00\x28\x00\xff\xff\x70\x00\xad\x00\xb3\x00\xad\x00\xae\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x22\x00\x29\x00\x22\x00\x47\x00\x48\x00\x49\x00\x23\x00\x76\x00\x23\x00\x24\x00\xff\xff\x04\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyTable = HappyA# "\x00\x00\xae\xff\x82\x00\x30\x00\xae\xff\xae\xff\x84\x00\xae\xff\xa4\x00\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\xae\xff\x14\x00\x99\x00\x6a\x00\x15\x00\x2d\x00\x30\x00\x39\x00\x16\x00\x04\x00\x34\x00\x83\x00\xae\xff\xae\xff\xae\xff\x91\x00\x36\x00\x85\x00\x17\x00\x04\x00\x93\x00\x78\x00\x14\x00\x18\x00\x19\x00\x15\x00\x2e\x00\x57\x00\x1a\x00\x16\x00\x63\x00\x1b\x00\x67\x00\x94\x00\xab\x00\x04\x00\x1c\x00\x1d\x00\x72\x00\x17\x00\x04\x00\x74\x00\xaa\x00\x75\x00\x18\x00\x19\x00\x64\x00\x8e\x00\x72\x00\x1a\x00\x73\x00\x74\x00\x1b\x00\x75\x00\x1e\x00\x66\x00\x04\x00\x1c\x00\x1d\x00\x72\x00\x76\x00\x63\x00\x74\x00\x14\x00\x75\x00\xb1\x00\x2d\x00\xac\x00\x14\x00\x68\x00\x76\x00\x2d\x00\x04\x00\x1c\x00\x1d\x00\xad\x00\xb3\x00\x64\x00\x65\x00\x21\x00\x17\x00\x76\x00\x04\x00\x1c\x00\x1d\x00\x18\x00\x30\x00\x05\x00\x06\x00\x5d\x00\x18\x00\x33\x00\x5e\x00\x04\x00\x1c\x00\x1d\x00\xb0\x00\x04\x00\x1c\x00\x1d\x00\xb2\x00\x31\x00\x04\x00\x1c\x00\x1d\x00\x04\x00\x08\x00\x32\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x04\x00\x12\x00\x34\x00\x35\x00\x36\x00\x37\x00\xa9\x00\x6d\x00\x6e\x00\x6f\x00\x45\x00\x46\x00\xb2\x00\x04\x00\x05\x00\x06\x00\x97\x00\x08\x00\x70\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xa3\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x98\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xa5\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x9b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xa7\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x9f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x9b\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\xa0\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x9d\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\xa1\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x8d\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\xa3\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x90\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x92\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x87\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x6c\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x8d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x7c\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x90\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x7e\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x78\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x7f\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x80\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x81\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7c\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x49\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x7e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x31\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x3a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x29\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x59\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x2a\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x07\x00\x04\x00\x05\x00\x06\x00\x12\x00\x08\x00\x5b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x99\x00\x12\x00\x04\x00\x93\x00\x4a\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x94\x00\x95\x00\x04\x00\x9d\x00\x4b\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x3c\x00\x3d\x00\x3e\x00\x04\x00\x05\x00\x06\x00\x5e\x00\x4e\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x5c\x00\x04\x00\x04\x00\x04\x00\x05\x00\x06\x00\x4f\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x50\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x04\x00\x51\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x52\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x5f\x00\x60\x00\x04\x00\x05\x00\x06\x00\x61\x00\x53\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x63\x00\x04\x00\x05\x00\x06\x00\x62\x00\x04\x00\x05\x00\x06\x00\x4c\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x4d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x05\x00\x06\x00\x04\x00\x05\x00\x06\x00\x54\x00\x0f\x00\x10\x00\x11\x00\x55\x00\x0f\x00\x10\x00\x11\x00\x56\x00\x0f\x00\x10\x00\x11\x00\x04\x00\x21\x00\x6d\x00\x6e\x00\x6f\x00\x04\x00\x87\x00\x6e\x00\x6f\x00\x2b\x00\x0f\x00\x10\x00\x11\x00\xa1\x00\x3a\x00\x11\x00\x88\x00\x89\x00\x87\x00\x6e\x00\x6f\x00\x87\x00\x6e\x00\x6f\x00\x8a\x00\xa6\x00\x6a\x00\x04\x00\x88\x00\x89\x00\x6c\x00\xaa\x00\x89\x00\x6d\x00\x6e\x00\x6f\x00\x8a\x00\x8b\x00\x26\x00\x27\x00\x22\x00\xac\x00\xff\xff\x28\x00\x70\x00\x48\x00\x23\x00\x76\x00\x04\x00\xad\x00\xae\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x22\x00\x1d\x00\x1e\x00\x1f\x00\x29\x00\x47\x00\x23\x00\x24\x00\x3a\x00\xff\xff\x04\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# happyReduceArr = array (2, 92) [ (2 , happyReduce_2), @@ -971,15 +971,13 @@ happyReduction_71 happy_x_1 (happy_var_1 )} -happyReduce_72 = happySpecReduce_3 27# happyReduction_72 -happyReduction_72 happy_x_3 - happy_x_2 +happyReduce_72 = happySpecReduce_2 27# happyReduction_72 +happyReduction_72 happy_x_2 happy_x_1 - = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut5 happy_x_3 of { happy_var_3 -> + = case happyOut32 happy_x_2 of { happy_var_2 -> happyIn32 - (EProj happy_var_1 happy_var_3 - )}} + (ENeg happy_var_2 + )} happyReduce_73 = happySpecReduce_1 27# happyReduction_73 happyReduction_73 happy_x_1 @@ -991,10 +989,11 @@ happyReduction_73 happy_x_1 happyReduce_74 = happySpecReduce_2 28# happyReduction_74 happyReduction_74 happy_x_2 happy_x_1 - = case happyOut33 happy_x_2 of { happy_var_2 -> + = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut34 happy_x_2 of { happy_var_2 -> happyIn33 - (ENeg happy_var_2 - )} + (EApp happy_var_1 happy_var_2 + )}} happyReduce_75 = happySpecReduce_1 28# happyReduction_75 happyReduction_75 happy_x_1 @@ -1003,13 +1002,14 @@ happyReduction_75 happy_x_1 (happy_var_1 )} -happyReduce_76 = happySpecReduce_2 29# happyReduction_76 -happyReduction_76 happy_x_2 +happyReduce_76 = happySpecReduce_3 29# happyReduction_76 +happyReduction_76 happy_x_3 + happy_x_2 happy_x_1 = case happyOut34 happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_2 of { happy_var_2 -> + case happyOut5 happy_x_3 of { happy_var_3 -> happyIn34 - (EApp happy_var_1 happy_var_2 + (EProj happy_var_1 happy_var_3 )}} happyReduce_77 = happySpecReduce_1 29# happyReduction_77 diff --git a/src/Transfer/Syntax/Par.y b/src/Transfer/Syntax/Par.y index 8453a3c61..d9bb771f6 100644 --- a/src/Transfer/Syntax/Par.y +++ b/src/Transfer/Syntax/Par.y @@ -203,17 +203,17 @@ Exp7 : Exp7 '*' Exp8 { EMul $1 $3 } Exp8 :: { Exp } -Exp8 : Exp8 '.' Ident { EProj $1 $3 } +Exp8 : '-' Exp8 { ENeg $2 } | Exp9 { $1 } Exp9 :: { Exp } -Exp9 : '-' Exp9 { ENeg $2 } +Exp9 : Exp9 Exp10 { EApp $1 $2 } | Exp10 { $1 } Exp10 :: { Exp } -Exp10 : Exp10 Exp11 { EApp $1 $2 } +Exp10 : Exp10 '.' Ident { EProj $1 $3 } | Exp11 { $1 } diff --git a/src/Transfer/Syntax/Print.hs b/src/Transfer/Syntax/Print.hs index e14684ea7..ceaffa218 100644 --- a/src/Transfer/Syntax/Print.hs +++ b/src/Transfer/Syntax/Print.hs @@ -115,9 +115,9 @@ instance Print (Tree c) where EMul exp0 exp1 -> prPrec _i 7 (concatD [prt 7 exp0 , doc (showString "*") , prt 8 exp1]) EDiv exp0 exp1 -> prPrec _i 7 (concatD [prt 7 exp0 , doc (showString "/") , prt 8 exp1]) EMod exp0 exp1 -> prPrec _i 7 (concatD [prt 7 exp0 , doc (showString "%") , prt 8 exp1]) - EProj exp i -> prPrec _i 8 (concatD [prt 8 exp , doc (showString ".") , prt 0 i]) - ENeg exp -> prPrec _i 9 (concatD [doc (showString "-") , prt 9 exp]) - EApp exp0 exp1 -> prPrec _i 10 (concatD [prt 10 exp0 , prt 11 exp1]) + ENeg exp -> prPrec _i 8 (concatD [doc (showString "-") , prt 8 exp]) + EApp exp0 exp1 -> prPrec _i 9 (concatD [prt 9 exp0 , prt 10 exp1]) + EProj exp i -> prPrec _i 10 (concatD [prt 10 exp , doc (showString ".") , prt 0 i]) EEmptyRec -> prPrec _i 11 (concatD [doc (showString "{") , doc (showString "}")]) ERecType fieldtypes -> prPrec _i 11 (concatD [doc (showString "{") , prt 0 fieldtypes , doc (showString "}")]) ERec fieldvalues -> prPrec _i 11 (concatD [doc (showString "{") , prt 0 fieldvalues , doc (showString "}")]) diff --git a/src/Transfer/Syntax/Skel.hs b/src/Transfer/Syntax/Skel.hs index 7cba91e4e..40152c998 100644 --- a/src/Transfer/Syntax/Skel.hs +++ b/src/Transfer/Syntax/Skel.hs @@ -46,9 +46,9 @@ transTree t = case t of EMul exp0 exp1 -> failure t EDiv exp0 exp1 -> failure t EMod exp0 exp1 -> failure t - EProj exp i -> failure t ENeg exp -> failure t EApp exp0 exp1 -> failure t + EProj exp i -> failure t EEmptyRec -> failure t ERecType fieldtypes -> failure t ERec fieldvalues -> failure t @@ -119,9 +119,9 @@ transExp t = case t of EMul exp0 exp1 -> failure t EDiv exp0 exp1 -> failure t EMod exp0 exp1 -> failure t - EProj exp i -> failure t ENeg exp -> failure t EApp exp0 exp1 -> failure t + EProj exp i -> failure t EEmptyRec -> failure t ERecType fieldtypes -> failure t ERec fieldvalues -> failure t diff --git a/src/Transfer/Syntax/Syntax.cf b/src/Transfer/Syntax/Syntax.cf index 5b2e9157e..54866508b 100644 --- a/src/Transfer/Syntax/Syntax.cf +++ b/src/Transfer/Syntax/Syntax.cf @@ -79,11 +79,11 @@ EMul. Exp7 ::= Exp7 "*" Exp8 ; EDiv. Exp7 ::= Exp7 "/" Exp8 ; EMod. Exp7 ::= Exp7 "%" Exp8 ; -EProj. Exp8 ::= Exp8 "." Ident ; +ENeg. Exp8 ::= "-" Exp8 ; -ENeg. Exp9 ::= "-" Exp9 ; +EApp. Exp9 ::= Exp9 Exp10 ; -EApp. Exp10 ::= Exp10 Exp11 ; +EProj. Exp10 ::= Exp10 "." Ident ; EEmptyRec. Exp11 ::= "{" "}" ;