Comments (7)
There is actually an alternate syntax without the ':' after 'foo' that is also valid in Protobuf:
syntax = "proto3";
package baz;
option (foo.bar) = {
woot: 100
foo {
hello: 200
}
};
See https://github.com/googleapis/googleapis/blob/master/google/privacy/dlp/v2beta2/dlp.proto#L96
Here's a diff on service_test.go
that breaks:
$ git diff
diff --git a/service_test.go b/service_test.go
index 058c885..0a4fc5d 100644
--- a/service_test.go
+++ b/service_test.go
@@ -86,6 +86,10 @@ func TestRPCWithOptionAggregateSyntax(t *testing.T) {
option (test_ident) = {
test: "test"
test2:"test2"
+ addtional_bindings {
+ hello: "value"
+ hello2: "value2"
+ }
}; // inline test_ident
}
}`
This results in found "{" but expected [option aggregate key colon :]
from proto.
ATM aggregations are stored in AggregatedConstants. With this recursive example, this is no longer valid. Need to think about this a bit more
from proto.
in the PR, Issue #60 , the constants are flattened.
in your example given, there will be a constant called foo.hello
from proto.
This won't work for other arbitrary cases. For example, what if I have a repeated field in the message? so foo.hello
is a repeated string
? What if it has a oneof, etc?
This might be fine to start, but just of note :-)
from proto.
This is still broken, will write a test.
from proto.
See the PR I just wrote, two things need to be handled:
- Having a
:
after the key before a complex option - Having the value be on a separate line
from proto.
closing this as #60 is merged
from proto.
Related Issues (20)
- Package name with "." causes issues when parsing HOT 1
- Issue with double-quoted options HOT 1
- Quote dropped in option parsing
- Missing semicolon at end silently ignored. HOT 1
- Quoted string constant
- Multi-line fields not parseable
- QuoteRune is a breaking change HOT 4
- Write proto struct to file? HOT 1
- Comments inside field options break parser HOT 2
- Nested enum with inline comments break parser HOT 5
- Infinite loop in Parser.Parse() HOT 2
- Sir, if I get the package field? HOT 3
- support proto3 presence HOT 1
- Field type with keyword is not correctly parsed HOT 3
- Option string values parsed as numbers HOT 8
- embedded comment parse fail HOT 7
- Parse failure on negative reserved enums HOT 4
- Boolean variable to test if a field is deprecated HOT 11
- Parsing comments inside an array in an Option HOT 4
- EnumField does not implement elementContainer and so its Elements are missed in Walk HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from proto.