Open
Description
We had a case where protoc
allowed a package
declaration that had newlines in it but other tooling based on the spec failed to parse the file. I believe this should have failed to parse inside protoc
as well.
Relevant parts of the spec:
package = "package" fullIdent ";"
fullIdent = ident { "." ident }
ident = letter { letter | decimalDigit | "_" }
letter = "A" … "Z" | "a" … "z"
decimalDigit = "0" … "9"
Example showing protoc
allowing newlines:
$ echo "package example.
foo
;
message Foo {}" > test.proto
$ protoc --version
libprotoc 3.0.0
$ protoc --java_out=. test.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:547] No syntax specified for the proto file: test.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
$ tree
.
├── example
│ └── foo
│ └── Test.java
└── test.proto