Changeset 2645 for src/Pugs/Junc.hs
- Timestamp:
- 05/03/05 13:26:16 (4 years ago)
- svk:copy_cache_prev:
- 4152
- Files:
-
- 1 modified
-
src/Pugs/Junc.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Junc.hs
r2617 r2645 30 30 -- Handled differently! 31 31 opJuncOne :: [Val] -> Val 32 opJuncOne args = VJunc ( Junc JOne dups vals)32 opJuncOne args = VJunc (MkJunc JOne dups vals) 33 33 where 34 34 vals = Set.fromList [ v | [v] <- groups ] … … 39 39 -- values in the list. 40 40 opJunc :: JuncType -> [Val] -> Val 41 opJunc t vals = VJunc $ Junc t Set.empty (joined `Set.union` Set.fromList vs)41 opJunc t vals = VJunc $ MkJunc t Set.empty (joined `Set.union` Set.fromList vs) 42 42 where 43 43 joined = Set.unions $ map (\(VJunc s) -> juncSet s) js 44 44 (js, vs) = partition sameType vals 45 sameType (VJunc ( Junc t' _ _)) = t == t'45 sameType (VJunc (MkJunc t' _ _)) = t == t' 46 46 sameType _ = False 47 47 … … 60 60 mergeJunc j ds vs 61 61 = case j of 62 JAny -> Junc j (Set.fromList ds) (Set.fromList vs)63 JOne -> Junc j dups vals62 JAny -> MkJunc j (Set.fromList ds) (Set.fromList vs) 63 JOne -> MkJunc j dups vals 64 64 x -> internalError $ "mergeJunc pattern failure: " ++ (show x) 65 65 where … … 70 70 juncApply f args 71 71 | this@(_, (pivot:_)) <- break isTotalJunc args 72 , VJunc ( Junc j dups vals) <- argValue pivot72 , VJunc (MkJunc j dups vals) <- argValue pivot 73 73 = do 74 74 vals' <- appSet this vals 75 return $ VJunc ( Junc j dups vals')75 return $ VJunc (MkJunc j dups vals') 76 76 | this@(_, (pivot:_)) <- break isPartialJunc args 77 , VJunc ( Junc j dups vals) <- argValue pivot77 , VJunc (MkJunc j dups vals) <- argValue pivot 78 78 = do 79 79 dups' <- appList this dups
