Skip to content

Commit 1ed8183

Browse files
committed
Factor out lists of child nodes.
1 parent 82e00e4 commit 1ed8183

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

semantic-analysis/src/Analysis/Syntax.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,10 @@ parseNode o = do
162162
"false" -> pure (const (bool False))
163163
"throw" -> fmap throw <$> resolve (head edges)
164164
"if" -> liftA3 iff <$> findEdgeNamed "condition" <*> findEdgeNamed "consequence" <*> findEdgeNamed "alternative" <|> pure (const noop)
165-
"block" -> fmap (foldr (\ (i, v) r -> let_ (nameI i) v (const r)) noop . zip [0..]) . sequenceA <$> traverse resolve edges
166-
"module" -> fmap (foldr (\ (i, v) r -> let_ (nameI i) v (const r)) noop . zip [0..]) . sequenceA <$> traverse resolve edges
165+
"block" -> children
166+
"module" -> children
167167
t -> A.parseFail ("unrecognized type: " <> t)
168+
children = fmap (foldr (\ (i, v) r -> let_ (nameI i) v (const r)) noop . zip [0..]) . sequenceA <$> traverse resolve edges
168169
resolve = resolveWith (const (pure ()))
169170
resolveWith :: (A.Object -> A.Parser ()) -> A.Value -> A.Parser (IntMap.IntMap rep -> rep)
170171
resolveWith f = A.withObject "edge" (\ edge -> do

0 commit comments

Comments
 (0)