Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- gr :: AST -> Gr
- gr ast =
- let (start, rules, nonT) = (gr' ast)
- in (start, rules)
- gr' :: AST -> (String, [(String, String)], [String])
- gr' (Star x) =
- let (start, rules, nonT) = gr' (x)
- in (start, [(a, "") | a <- nonT] ++ rules, nonT)
- gr' (C x) =
- ("A", [("A", x)], ["A"])
- gr' (Seq x y) =
- (xstart, , xnonT ++ ynonT)
- where (xstart, xrules, xnonT) = gr' x
- (ystart, yrules, ynonT) = gr' y
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement