Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let buildClass moduleBuilder assemblyBuilder name methods =
- let meta = { currentEnv = Env.empty
- methodInfoMap = Map.empty}
- let newClass = createClass moduleBuilder name
- let rec buildMethods meta methods =
- match methods with
- | Method (name, args, _)::rest -> buildMethods (defineMethod newClass meta name args) rest
- | EntryMethod (name, args, _)::rest -> buildMethods (defineMainMethod assemblyBuilder newClass meta name args) rest
- let rec populateMethods meta methods =
- match methods with
- | Method (name, args, intrs)::rest -> populateMethod meta name args intrs
- populateMethods meta rest
- | EntryMethod (name, args, intrs)::rest -> populateMethod meta name args intrs
- populateMethods meta rest
- let (updatedMeta : Meta) = buildMethods meta methods
- populateMethods meta methods
- newClass.CreateType()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement