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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: baecd11fc9e03ed51685a06825e68a232f3caae95fd26bbffa8f77ce48ffdc03
|
|
4
|
+
data.tar.gz: 04b02ab33defbc571c9a1d36284c53f04b847acecb7e54b67537983ebbf2a74e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
(
|
|
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)
|
data/lib/expressir/version.rb
CHANGED