Advertisement
Guest User

Untitled

a guest
Jan 27th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.85 KB | None | 0 0
  1.     let parser = new Yard.Frontends.YardFrontend.YardFrontend()
  2.     let il = parser.ParseGrammar(grammarPath)
  3.     let grammar = new FinalGrammar(il.grammar.[0].rules, true)
  4.     // Convert productions from FinalGrammar to Productions type
  5.     let convertProductions =
  6.         let mutable productions : Productions = Map.empty
  7.         for i = 0 to grammar.rules.rulesCount-1 do
  8.             let leftSide = grammar.rules.leftSide i
  9.             let list = productions.TryFind leftSide
  10.             match list with
  11.             | None -> productions <- productions.Add(leftSide, [grammar.rules.rightSide i])
  12.             | Some x ->
  13.                 productions <- productions.Remove(leftSide)
  14.                 productions <- productions.Add(leftSide, (grammar.rules.rightSide i) :: x)
  15.         productions
  16.     let productions : Productions = convertProductions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement