From d164d47156b3c35ec32fb55f482d1074cd785288 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Fri, 22 Jul 2022 23:28:23 -0700 Subject: [PATCH 1/9] Correct the ABNF example. --- examples/abnf/doc/parser.html | 2 +- examples/abnf/parser.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/abnf/doc/parser.html b/examples/abnf/doc/parser.html index 2aa0d98..137ecf5 100644 --- a/examples/abnf/doc/parser.html +++ b/examples/abnf/doc/parser.html @@ -466,7 +466,7 @@
-

EBNF Parser for EBNF.

+

EBNF Parser for ABNF.

Produces an Abstract Synatx Tree in S-Expression form for the input grammar file

diff --git a/examples/abnf/parser.rb b/examples/abnf/parser.rb index 3122bd1..60b2000 100644 --- a/examples/abnf/parser.rb +++ b/examples/abnf/parser.rb @@ -1,4 +1,4 @@ -# # EBNF Parser for EBNF. +# # EBNF Parser for ABNF. # # Produces an Abstract Synatx Tree in S-Expression form for the input grammar file require 'ebnf' From b516f6ec92b56174fe17a4419427b6bd3fc47002 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 4 Jan 2023 12:44:39 -0800 Subject: [PATCH 2/9] CI on 3.2. --- .github/workflows/ci.yml | 10 ++-------- .github/workflows/generate-docs.yml | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1da320a..05345dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,16 +19,10 @@ jobs: strategy: fail-fast: false matrix: - ruby: - - 2.6 - - 2.7 - - "3.0" - - 3.1 - - ruby-head - - jruby + ruby: [2.6, 2.7, '3.0', 3.1, 3.2, ruby-head, jruby] steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml index e3bafa0..13dc3d6 100644 --- a/.github/workflows/generate-docs.yml +++ b/.github/workflows/generate-docs.yml @@ -10,7 +10,7 @@ jobs: name: Update gh-pages with docs steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: From 94014b108b5b8bd878c7f0e2852d821d6a449ae7 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 14:36:38 -0800 Subject: [PATCH 3/9] Fix bug writting ABNF to HTML. --- lib/ebnf/writer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebnf/writer.rb b/lib/ebnf/writer.rb index df83056..cc7acf0 100644 --- a/lib/ebnf/writer.rb +++ b/lib/ebnf/writer.rb @@ -407,7 +407,7 @@ def format_abnf(expr, sep: nil, embedded: false, sensitive: true) seq.unshift(:seq) return format_abnf(seq, sep: nil, embedded: false) else - return (@options[:html] ? %("#{'%s' if sensitive}#{@coder.encode expr}") : %(#{'%s' if sensitive}"#{expr}")) + return (@options[:html] ? %("#{@coder.encode expr}") : %("#{expr}")) end end parts = { From a324691ee67eb265dba3654734cb9f18ff80a678 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 14:58:51 -0800 Subject: [PATCH 4/9] ABNF HEX representation is upper case. --- lib/ebnf/writer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ebnf/writer.rb b/lib/ebnf/writer.rb index cc7acf0..65fa984 100644 --- a/lib/ebnf/writer.rb +++ b/lib/ebnf/writer.rb @@ -503,6 +503,7 @@ def format_abnf_range(string) # Append any decimal values alt << "%d" + deces.join(".") unless deces.empty? deces = [] + hex = hex.upcase if in_range # Add "." sequences for any previous hexes @@ -552,7 +553,7 @@ def escape_abnf_hex(u) when 0x0100..0xffff then "%04X" else "%08X" end - char = "%x" + (fmt % u.ord) + char = "%x" + (fmt % u.ord).upcase if @options[:html] if u.ord <= 0x20 char = %(#{@coder.encode char}) From a0e4ea633c49e9b2abf4c5942e5f2f1a4bfa71b1 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 15:04:44 -0800 Subject: [PATCH 5/9] Rept spacing --- lib/ebnf/writer.rb | 10 ++++++---- spec/writer_spec.rb | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/ebnf/writer.rb b/lib/ebnf/writer.rb index 65fa984..b83e29a 100644 --- a/lib/ebnf/writer.rb +++ b/lib/ebnf/writer.rb @@ -411,10 +411,10 @@ def format_abnf(expr, sep: nil, embedded: false, sensitive: true) end end parts = { - alt: (@options[:html] ? "/ " : "/ "), - star: (@options[:html] ? "* " : "*"), - plus: (@options[:html] ? "+ " : "1*"), - opt: (@options[:html] ? "? " : "?") + alt: (@options[:html] ? "/" : "/ "), + star: (@options[:html] ? "*" : "*"), + plus: (@options[:html] ? "+" : "1*"), + opt: (@options[:html] ? "?" : "?") } lbrac = (@options[:html] ? "[ " : "[") rbrac = (@options[:html] ? "] " : "]") @@ -464,6 +464,8 @@ def format_abnf(expr, sep: nil, embedded: false, sensitive: true) "#{parts[:star]}#{r}" elsif min > 0 && max == '*' "#{min}#{parts[:star]}#{r}" + elsif min == 0 + "#{parts[:star]}#{max}#{r}" else "#{min}#{parts[:star]}#{max}#{r}" end diff --git a/spec/writer_spec.rb b/spec/writer_spec.rb index e5891f4..dd76b64 100644 --- a/spec/writer_spec.rb +++ b/spec/writer_spec.rb @@ -319,7 +319,7 @@ ], "rept 0 1": [ [:rept, 0, 1, :A], - "0*1A" + "*1A" ], "rept 0 *": [ [:rept, 0, '*', :A], From 191223c577194491ca1754c510da83832ad55783 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 15:58:05 -0800 Subject: [PATCH 6/9] Fix problem loading Nokogiri in writer when validating. --- lib/ebnf/writer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ebnf/writer.rb b/lib/ebnf/writer.rb index b83e29a..5de5d91 100644 --- a/lib/ebnf/writer.rb +++ b/lib/ebnf/writer.rb @@ -181,8 +181,9 @@ def initialize(rules, out: $stdout, html: false, format: :ebnf, validate: false, if validate begin + require 'nokogiri' # Validate the output HTML - doc = Nokogiri::HTML5("" + html_result, max_errors: 10) + doc = ::Nokogiri::HTML5("" + html_result, max_errors: 10) raise EncodingError, "Errors found in generated HTML:\n " + doc.errors.map(&:to_s).join("\n ") unless doc.errors.empty? rescue LoadError, NoMethodError From 50183dc6b74a347586fee79999fa632be03edc0a Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 16:02:20 -0800 Subject: [PATCH 7/9] Update dependencies. --- ebnf.gemspec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ebnf.gemspec b/ebnf.gemspec index ad10e61..cbb1026 100755 --- a/ebnf.gemspec +++ b/ebnf.gemspec @@ -34,13 +34,13 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency 'scanf', '~> 1.0' gem.add_runtime_dependency 'rdf', '~> 3.2' # Required by sxp gem.add_runtime_dependency 'htmlentities', '~> 4.3' - gem.add_runtime_dependency 'unicode-types', '~> 1.7' - gem.add_runtime_dependency 'amazing_print', '~> 1.4' + gem.add_runtime_dependency 'unicode-types', '~> 1.8' + gem.add_development_dependency 'amazing_print', '~> 1.4' gem.add_development_dependency 'rdf-spec', '~> 3.2' gem.add_development_dependency 'rdf-turtle', '~> 3.2' - gem.add_development_dependency 'nokogiri', '~> 1.13', '>= 1.13.4' + gem.add_development_dependency 'nokogiri', '~> 1.14' gem.add_development_dependency 'erubis', '~> 2.7' - gem.add_development_dependency 'rspec', '~> 3.10' + gem.add_development_dependency 'rspec', '~> 3.12' gem.add_development_dependency 'rspec-its', '~> 1.3' gem.add_development_dependency 'yard', '~> 0.9' gem.add_development_dependency 'rake', '~> 13.0' From 68b744bc6cbd6f31004a248484961f8188693298 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 16:09:03 -0800 Subject: [PATCH 8/9] Continue using nokogiri 1.13 until minimum ruby version updated in dependencies to 2.7. --- ebnf.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebnf.gemspec b/ebnf.gemspec index cbb1026..afdc9f1 100755 --- a/ebnf.gemspec +++ b/ebnf.gemspec @@ -38,7 +38,7 @@ Gem::Specification.new do |gem| gem.add_development_dependency 'amazing_print', '~> 1.4' gem.add_development_dependency 'rdf-spec', '~> 3.2' gem.add_development_dependency 'rdf-turtle', '~> 3.2' - gem.add_development_dependency 'nokogiri', '~> 1.14' + gem.add_development_dependency 'nokogiri', '~> 1.13', '>= 1.13.4' gem.add_development_dependency 'erubis', '~> 2.7' gem.add_development_dependency 'rspec', '~> 3.12' gem.add_development_dependency 'rspec-its', '~> 1.3' From 5904d0bf05fe3c0f60aa8583a4948791cb219455 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 20 Feb 2023 16:12:46 -0800 Subject: [PATCH 9/9] Version 3.2.2. --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 2bf1c1c..f90b1af 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.1 +2.3.2