On Wed, Oct 31, 2018 at 1:17 PM Adam Cozzette <[email protected]> wrote:
>
> I think that specification has suffered a little bit of neglect (sorry about 
> that), because in practice our C++ parser is really the de facto standard and 
> we have not recently made an effort to go through and make sure the official 
> spec matches it perfectly. My reading of that string (/[^\0\n\\]/) is that 
> it's a regular expression saying "any character other than null, newline, or 
> backslash." But in general I would say the best bet is to resolve ambiguities 
> by looking at what the C++ parser does.

Thanks for that bit of clarification.

> By the way, have you considered just reusing the C++ parser that's included 
> in protoc? You can call protoc with the --descriptor_set_out flag to have it 
> parse your .proto file and produce a serialized FileDescriptorSet proto as 
> output. Then at that point it's easy to parse the descriptors using just 
> about any language we support, and that should give you all the information 
> you need, without the need for a new .proto file parser.

Good point, it's a possibility? Does it protoc to C#? It would be less
difficult, I think, for me to Reflect through that and generate the
boilerplate that I want, probably, than spinning up a full on parser
replete with its AST.

> On Wed, Oct 31, 2018 at 9:23 AM Michael Powell <[email protected]> wrote:
>>
>> On Wed, Oct 31, 2018 at 12:22 PM Michael Powell <[email protected]> 
>> wrote:
>> >
>> > Concerning Constant, literally from the v2 spec:
>>
>> Rather, Syntax section, excuse me...
>>
>> > syntax = "syntax" "=" quote "proto2" quote ";"
>> >
>> > Do I read that correctly you can expect either 'proto2' or "proto2",
>> > but never 'proto2" nor "proto2' ?
>> >
>> > If accurate, that just seems to me to be lazy spec authorship...
>> >
>> > Thanks!
>> > On Wed, Oct 31, 2018 at 12:07 PM Michael Powell <[email protected]> 
>> > wrote:
>> > >
>> > > Hello,
>> > >
>> > > I am writing a parser for the Proto language specification starting
>> > > with v2. I need a little help interpreting one of the lines if you
>> > > please:
>> > >
>> > > In the "String literals" section, what does this mean:
>> > >
>> > > charValue = hexEscape | octEscape | charEscape | /[^\0\n\\]/
>> > >
>> > > Specifically, the trailing list of character soup? I want to say that
>> > > there are escaped characters in the sequence? Or am I to take that
>> > > string literally? Or notwithstanding the enclosing forward slashes?
>> > >
>> > > Thanks much in advance!
>> > >
>> > > Best regards,
>> > >
>> > > Michael Powell
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to