Advertisement
Guest User

Untitled

a guest
Oct 9th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. gr :: AST -> Gr
  2. gr ast =
  3.     let (start, rules, nonT) = (gr' ast)
  4.    in (start, rules)
  5.  
  6. gr' :: AST -> (String, [(String, String)], [String])
  7. gr' (Star x) =
  8.    let (start, rules, nonT) = gr' (x)
  9.     in (start,
  10.         [(a, b ++ "A") | (a, b) <- rules, b == "" || isLower (head (b))]
  11.         ++ [(start, "")] ++ rules, nonT)
  12. gr' (C x) =
  13.    ("A", [("A", x)], ["A"])
  14. {-gr' (Seq x y) =
  15.     (xstart, , xnonT ++ ynonT)
  16.         where (xstart, xrules, xnonT) = gr' x
  17.              (ystart, yrules, ynonT) = gr' y-}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement