Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let parser = new Yard.Frontends.YardFrontend.YardFrontend()
- let il = parser.ParseGrammar(grammarPath)
- let grammar = new FinalGrammar(il.grammar.[0].rules, true)
- // Convert productions from FinalGrammar to Productions type
- let convertProductions =
- let mutable productions : Productions = Map.empty
- for i = 0 to grammar.rules.rulesCount-1 do
- let leftSide = grammar.rules.leftSide i
- let list = productions.TryFind leftSide
- match list with
- | None -> productions <- productions.Add(leftSide, [grammar.rules.rightSide i])
- | Some x ->
- productions <- productions.Remove(leftSide)
- productions <- productions.Add(leftSide, (grammar.rules.rightSide i) :: x)
- productions
- let productions : Productions = convertProductions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement