On Tue, Apr 21, 2015 at 7:12 PM, <kate.stew...@att.net> wrote: > Here is the revised syntax for ABNF, please let us know > if there are any concerns. > > license-id = <short form license identifier in Appendix I.1> > license-exception-id = <short form license exception identifier in Appendix > I.2> > license-ref = "LicenseRef-"1*(ALPHA / DIGIT / "-" / "." ) > simple-expression = license-id / license-id"+" / license-ref > compound-expression = 1*(simple-expression / > simple-expression "WITH" license-exception-id / > compound-expression "AND" compound-expression / > compound-expression "OR" compound-expression ) / > "(" compound-expression ")" ) > > license-expression = 1*1(simple-expression / compound-expression)
May I suggest this alternative and slightly different grammar: expression = license / and-expression / or-expression / "(" expression ")" and-expression = expression "AND" expression or-expression = expression "OR" expression license = license-id / license-ref / license-with-exception license-id = identifier["+"] ; short form SPDX license identifier with optional + for "or later" license-ref = "LicenseRef-"identifier exception-id = identifier ; short form SPDX license exception identifier license-with-exception = (license-id / license-ref) "WITH" exception-id identifier = alphanum[*(aphanum / punct)] alphanum = ALPHA / DIGIT punct = "-" / "." The difference is that an identifier is defined as starting with a letter or digit and this is specified for refs, id and an exception ids. -- Cordially Philippe Ombredanne _______________________________________________ Spdx-tech mailing list Spdx-tech@lists.spdx.org https://lists.spdx.org/mailman/listinfo/spdx-tech