Simplify again.
Chris Pressey
1 year, 8 months ago
34 | 34 | |
35 | 35 | expr1 = do |
36 | 36 | es <- many1 term |
37 | return $ Seq $ flattenseq es | |
38 | ||
39 | flattenseq [] = [] | |
40 | flattenseq (s:ss) = case s of | |
41 | -- Note that xs will always be flat already | |
42 | Seq xs -> xs ++ (flattenseq ss) | |
43 | _ -> (s:flattenseq ss) | |
37 | return $ Seq $ flattenseq es where | |
38 | flattenseq [] = [] | |
39 | flattenseq (s:ss) = case s of | |
40 | -- Note that xs will always be flat already | |
41 | Seq xs -> xs ++ (flattenseq ss) | |
42 | _ -> (s:flattenseq ss) | |
44 | 43 | |
45 | 44 | term = (try parenExpr) <|> (try loopExpr) <|> (try constraintExpr) <|> (try terminal) <|> nonterminal |
46 | 45 |