[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2-resend 08/30] libxl: ocaml: support for KeyedUnion in the bindings generator.
On Tue, 2013-08-27 at 16:20 +0100, Ian Jackson wrote: > Ian Campbell writes ("Re: [Xen-devel] [PATCH v2-resend 08/30] libxl: ocaml: > support for KeyedUnion in the bindings generator."): > > On Tue, 2013-08-27 at 16:09 +0100, Ian Jackson wrote: > > > I think you have some confusion betwwen bar,baz and foo,bar ? At > > > least, I hope so, as otherwise I haven't understood at all. > > > > I don't think so, foo is an enumeration with possible values of "bar" > > and "baz". > > > > The keyed union has a discriminator (called blargle in this example) > > which is of type "enum foo". There is then an anonymous union with two > > members, "bar" and "baz" corresponding to the possible values of > > blargle. > > That's what I thought. So this part is wrong then ? You didn't quote this part ;-) > ] We generate C: > ] > ] enum { FOO, BAR } foo; I meant "enum foo { BAR, BAZ };" here. > > > > These type names are OK because they are already within the namespace > > > > associated with the struct "s". > > > > > > > > If the struct associated with bar is empty then we don't bother with > > > > blargle_bar of "of blargle_bar". > > > > > > I'm not sure I follow this observation. > > > > In the type blargle__union we don't bother with the "of blargle_bar" > > case of the corresponding struct is empty. > > So we generate > type blargle__union = Bar of blargle_bar | Baz; > ? If this is legal ocaml syntax, then fine, I guess. Not just legal but idiomatic too, I think. > (I can't remember what "of" does here.) I'm not sure what the proper name would be (a KeyedUnion maybe ;-)) it means you can unpick it with: match a_blargle with | Bar of thing -> do stuff with the content of thing | Baz -> do other stuff, not with thing (modulo me not remembering the real syntax, but it's close) Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |