diff --git a/lib/frontend/src/Happy/Frontend/AttrGrammar/Mangler.lhs b/lib/frontend/src/Happy/Frontend/AttrGrammar/Mangler.lhs index 01406b20..c223cc1e 100644 --- a/lib/frontend/src/Happy/Frontend/AttrGrammar/Mangler.lhs +++ b/lib/frontend/src/Happy/Frontend/AttrGrammar/Mangler.lhs @@ -60,11 +60,8 @@ manipulation and let binding goop > where arity = length lhs > partitionRules a b c [] = (a,b,c) -> partitionRules a b c (RightmostAssign attr toks : xs) = partitionRules -> a -> (MkAgSubAssign (arity,attr) toks : b) -> c -> xs +> partitionRules a b c (RightmostAssign attr toks : xs) = partitionRules a (x:b) c xs +> where x = MkAgSubAssign (arity,attr) toks > partitionRules a b c (SelfAssign x : xs) = partitionRules (x:a) b c xs > partitionRules a b c (SubAssign x : xs) = partitionRules a (x:b) c xs > partitionRules a b c (Conditional x : xs) = partitionRules a b (x:c) xs diff --git a/lib/frontend/src/Happy/Frontend/Mangler.lhs b/lib/frontend/src/Happy/Frontend/Mangler.lhs index f5fd59e3..16b705b7 100644 --- a/lib/frontend/src/Happy/Frontend/Mangler.lhs +++ b/lib/frontend/src/Happy/Frontend/Mangler.lhs @@ -285,7 +285,7 @@ So is this. -- go do special processing. If not, pass on to the regular processing routine > checkCode :: [Name] -> [Name] -> String -> [(String,String)] -> M (String,[Int]) -> checkCode lhs _ code [] = doCheckCode (length lhs) code +> checkCode lhs _ code [] = doCheckCode (length lhs) code > checkCode lhs nonterm_names code attrs = rewriteAttributeGrammar lhs nonterm_names code attrs -----------------------------------------------------------------------------