Advertisement
Guest User

Untitled

a guest
Apr 30th, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.00 KB | None | 0 0
  1. let buildClass moduleBuilder assemblyBuilder name methods =
  2.     let meta = { currentEnv = Env.empty
  3.                  methodInfoMap = Map.empty}
  4.     let newClass = createClass moduleBuilder name
  5.     let rec buildMethods meta methods =
  6.         match methods with
  7.         | Method (name, args, _)::rest       ->  buildMethods (defineMethod newClass meta name args) rest
  8.         | EntryMethod (name, args, _)::rest  ->  buildMethods (defineMainMethod assemblyBuilder newClass meta name args) rest
  9.     let rec populateMethods meta methods =
  10.         match methods with
  11.         | Method (name, args, intrs)::rest      -> populateMethod meta name args intrs
  12.                                                    populateMethods meta rest
  13.         | EntryMethod (name, args, intrs)::rest -> populateMethod meta name args intrs
  14.                                                    populateMethods meta rest
  15.     let (updatedMeta : Meta) = buildMethods meta methods
  16.     populateMethods meta methods
  17.     newClass.CreateType()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement