Code Monkey home page Code Monkey logo

Comments (7)

nilslice avatar nilslice commented on August 26, 2024

Do you know if single-quoted reserved field names are valid syntax?

It is a bug to fill proto.lock with empty reserved names, and I have a fix to PR upstream to the proto parser lib that protolock depends on. However, that parser doesn't handle or recognize these single-quoted reserved names at all.

Can you verify that those files successfully compile?

from protolock.

nilslice avatar nilslice commented on August 26, 2024

It appears that it is valid:

String literals

strLit = ( "'" { charValue } "'" ) | ( '"' { charValue } '"' )
charValue = hexEscape | octEscape | charEscape | /[^\0\n\\]/
hexEscape = '' ( "x" | "X" ) hexDigit hexDigit
octEscape = '' octalDigit octalDigit octalDigit
charEscape = '' ( "a" | "b" | "f" | "n" | "r" | "t" | "v" | '' | "'" | '"' )
quote = "'" | '"'

from: https://developers.google.com/protocol-buffers/docs/reference/proto3-spec

I did not read far enough. It seems that single-quoted reserved names are not valid syntax:
Reserved
Reserved statements declare a range of field numbers or field names that cannot be used in this message.

reserved = "reserved" ( ranges | fieldNames ) ";"
ranges = range { "," range }
range = intLit [ "to" ( intLit | "max" ) ]
~~fieldNames = fieldName { "," fieldName }~

from: https://developers.google.com/protocol-buffers/docs/reference/proto3-spec

I ran some tests on protos using this single-quote syntax, and protoc had no issues with it.. the docs are a bit hard to interpret :)

So, it does appear valid, and since protoc has no issues, this does appear to be a bug. I will look into the proto parser code to see if I can see where this originates.

Thanks for reporting!

from protolock.

noel-yap avatar noel-yap commented on August 26, 2024

Hmm, according to that grammar, there shouldn't be any quotes unless I'm missing something.

from protolock.

nilslice avatar nilslice commented on August 26, 2024

@november-yankee - sorry, you beat me to the punch while updating..

I ran some tests on protos using this single-quote syntax, and protoc had no issues with it.. the docs are a bit hard to interpret :)

So, it does appear valid, and since protoc has no issues, this does appear to be a bug. I will look into the proto parser code to see if I can see where this originates.

Thanks for reporting!

from protolock.

nilslice avatar nilslice commented on August 26, 2024

@november-yankee I have opened up an issue with the parser lib and will keep you updated. Feel free to follow along here: emicklei/proto#94

from protolock.

nilslice avatar nilslice commented on August 26, 2024

Updates have moved to this PR, emicklei/proto#96.

from protolock.

nilslice avatar nilslice commented on August 26, 2024

Fixed in #66. Thanks for reporting, @november-yankee!

from protolock.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.