expressir 2.4.22 → 2.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d13825e04d0b4e04a06303c22a070f3ee27400563d8f10f1cf91b99ca3b1ab09
4
- data.tar.gz: cb5330b94c1241d01d94987c04cabfce27345dca190a28719ff19993c2925261
3
+ metadata.gz: baecd11fc9e03ed51685a06825e68a232f3caae95fd26bbffa8f77ce48ffdc03
4
+ data.tar.gz: 04b02ab33defbc571c9a1d36284c53f04b847acecb7e54b67537983ebbf2a74e
5
5
  SHA512:
6
- metadata.gz: b2b8d32dfd5c887dcd12dc6cf6ab1f10bdce4c23b2dbaa5ba902d205d3c3e072194722d5314acf41468b8655b10ea9eebdf5b4649dcbcc18f028cc2be6db2d53
7
- data.tar.gz: 85fdae871deba71911bd661a7a4665f6d9344aea3c79ceeda2bb80091e745b4d0d469b6e787e814b0d82b4f18122efbd87ebc57b59c3e322156f2cd7c66eea4d
6
+ metadata.gz: 98ea8c39e0f462b7c6ecb7a2d24281cf3d159a79544b0b98feb89721011a066ff391343b0285816576f0007f9ede00d684629734fb5d29fefe2ef8af1f3c516f
7
+ data.tar.gz: c1bc94e1b7a73a79d93c7a1ae67b3f945f12ae7e3bcdcd161a6ea9f1d736ef74b0c2e39289301b31c558090c5f5fa7708b10d503c92b691ca5f1f90ff9ba0728
@@ -13,7 +13,7 @@ magnus = { version = "0.9" }
13
13
  # Pinned core release (M1, TODO.parity-ee/19): the ext never floats
14
14
  # main — bump the tag per expressir release, alongside the validation
15
15
  # run that pins it.
16
- expressir-rs = { git = "https://github.com/lutaml/expressir-rs", tag = "v0.1.4" }
16
+ expressir-rs = { git = "https://github.com/lutaml/expressir-rs", tag = "v0.1.6" }
17
17
  serde_json = "1.0"
18
18
 
19
19
  # Standalone workspace: the repo root workspace owns crates/, the ext
@@ -2,10 +2,21 @@
2
2
 
3
3
  require "mkmf"
4
4
 
5
+ # mkmf's dummy_makefile emits no targets, which rubygems' `make` run
6
+ # rejects ("No targets. Stop.") and fails the install; a real no-op
7
+ # makefile keeps every fallback path installing cleanly.
8
+ def write_noop_makefile
9
+ File.write("Makefile", <<~MK)
10
+ all:
11
+ install:
12
+ clean:
13
+ MK
14
+ end
15
+
5
16
  # The Rust extension only builds against MRI's C API. Other engines
6
17
  # fall back to the pure-Ruby parser path and must install cleanly.
7
18
  if RUBY_ENGINE != "ruby" || ENV["EXPRESSIR_CORE"] == "0"
8
- File.write("Makefile", dummy_makefile("").to_s)
19
+ write_noop_makefile
9
20
  warn "expressir: skipping the Rust core extension on #{RUBY_ENGINE}"
10
21
  exit 0
11
22
  end
@@ -14,7 +25,7 @@ end
14
25
  # toolchain; rb-sys cannot bridge the two, so skip there too (windows
15
26
  # installs fall back to the pure-Ruby parser).
16
27
  if RUBY_PLATFORM.include?("mingw")
17
- File.write("Makefile", dummy_makefile("").to_s)
28
+ write_noop_makefile
18
29
  warn "expressir: skipping the Rust core extension on mingw (msvc " \
19
30
  "toolchain mismatch)"
20
31
  exit 0
@@ -25,7 +36,7 @@ end
25
36
  # (Expressir::Core::NATIVE_AVAILABLE stays false). Prebuilt platform
26
37
  # gems are the follow-up so cargo-less MRI installs get binaries too.
27
38
  unless find_executable("cargo")
28
- File.write("Makefile", dummy_makefile("").to_s)
39
+ write_noop_makefile
29
40
  warn "expressir: cargo not found — skipping the Rust core extension " \
30
41
  "(Expressir::Core falls back to the Ruby parser)"
31
42
  exit 0
@@ -632,11 +632,11 @@ module Expressir
632
632
  format(node.applies_to),
633
633
  ";",
634
634
  ].join,
635
+ # ISO 10303-11: abstract_supertype_constraint = ABSTRACT ';' —
636
+ # the ABSTRACT SUPERTYPE form is entity-header syntax.
635
637
  *if node.abstract
636
638
  indent([
637
639
  "ABSTRACT",
638
- " ",
639
- "SUPERTYPE",
640
640
  ";",
641
641
  ].join)
642
642
  end,
@@ -146,8 +146,15 @@ module Expressir
146
146
  rule(:abstractSupertypeDeclaration) do
147
147
  (tABSTRACT >> tSUPERTYPE >> subtypeConstraint.maybe).as(:abstractSupertypeDeclaration)
148
148
  end
149
+ # ISO 10303-11 abstract_supertype_constraint = ABSTRACT ';' —
150
+ # tolerated nonstandard variant: ABSTRACT SUPERTYPE ';' (real
151
+ # corpora ship it; longest-first so PEG stays deterministic).
152
+ # The entity-header forms live in abstractSupertypeDeclaration.
149
153
  rule(:abstractSupertype) do
150
- (tABSTRACT >> tSUPERTYPE >> op_delim).as(:abstractSupertype)
154
+ (
155
+ (tABSTRACT >> tSUPERTYPE >> op_delim) |
156
+ (tABSTRACT >> op_delim)
157
+ ).as(:abstractSupertype)
151
158
  end
152
159
  rule(:actualParameterList) do
153
160
  (op_leftparen >> (parameter >> (op_comma >> parameter).repeat).as(:listOf_parameter).maybe >> op_rightparen)
@@ -3,6 +3,6 @@ module Expressir
3
3
  # autoload it (Ruby autoload only works for module/class constants, not
4
4
  # for string constants like `Expressir::VERSION`).
5
5
  module Version
6
- VERSION = "2.4.22".freeze
6
+ VERSION = "2.4.24".freeze
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.22
4
+ version: 2.4.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.