Hi Ben, I'll take a look at your grammar. Many thanks!
I'd suggest to move any conversations regarding the new Eclipse plug-in to its own mailing list: http://groups.google.com/group/protobuf-dt . This way we don't spam non-Eclipse users :) Cheers, -Alex On Wed, Aug 3, 2011 at 4:15 PM, Benjamin Wright <compuware...@gmail.com> wrote: > Alex: > > Thanks for pointing me to the right place on import paths, next time I'll > RTFM ;-) > > Enum Values are supported, but Enum Value Options are not... at least as far > as i can tell. (I'll have to check more closely tomorrow) > > As far as supporting custom options goes, I have some experience in that > front as I had to support them for what I was doing. They were by far the > hardest part to build into the grammar and I never quite got it working > right. The best I managed was to have five separate sets of rules, one for > each type of custom option (field, enum, enum value, message, file)... > > I've attached what I came up with for an XText grammar in case it gives you > any ideas on how to better handle it. The two things I never quite settled > were: > > 1) How to handle enumation namespaces between enum value declarations and > usage of those values in custom options. The namespace in proto is global, > but XText grammar expects the ID to be qualified when used in another scope > (while the compiler does not)... I suspect I just don't have a good enough > grasp of XText to solve that problem. To support enumeration values i ended > up putting the enum values at the top level by not having them be part of > the the enum production. > > 2) How to validate the values of custom options... I left this as simply > either a "MessageOption" or a "DirectOption", where the Message option is > constrained to the structure (but not valid contents) of a TextFormat > protocol buffer, and the Direct option is any of int, float, ID, etc... > > This could be taken further to handle each unique syntax type separately but > it seems very inelegant and I was hoping to figure out something better > before releasing anything (which I won't with now anyway as this is clearly > the project that should move forward). > > One possibility that i was leaning towards that could solve both of these > problems was to allow validation of option fields to fall on the compiler > itself... > The XText API allows for secondary validation to occur, and the compiler > provides line and character numbers in it's output... presumably you could > just run the exe through java and capture & parse the System.out stream to > determine any syntax errors not caught directly by the grammar. I did not > have the compiler integrated but these plugins do - so it would seem this > might not be that difficult to pull in. > The downside of this option being that it will not provide auto-complete or > other built in features of XText automatically - although to some extent > that could be made up for with more custom code. > > -Ben Wright > > -- > You received this message because you are subscribed to the Google Groups > "Protocol Buffers" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/protobuf/-/xApESYTqNVoJ. > To post to this group, send email to protobuf@googlegroups.com. > To unsubscribe from this group, send email to > protobuf+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/protobuf?hl=en. > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.