expressir 1.2.8-arm64-darwin → 1.2.10-arm64-darwin
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 +4 -4
- data/.cross_rubies +5 -0
- data/.github/workflows/rake.yml +15 -17
- data/.github/workflows/release.yml +6 -15
- data/.rubocop.yml +1 -0
- data/bin/rspec +1 -1
- data/expressir.gemspec +3 -3
- data/lib/expressir/express/2.7/express_parser.bundle +0 -0
- data/lib/expressir/express/3.0/express_parser.bundle +0 -0
- data/lib/expressir/express/3.1/express_parser.bundle +0 -0
- data/lib/expressir/express/3.2/express_parser.bundle +0 -0
- data/lib/expressir/express/parser.rb +2 -1
- data/lib/expressir/express/visitor.rb +28 -18
- data/lib/expressir/version.rb +1 -1
- data/lib/expressir.rb +4 -0
- data/rakelib/cross-ruby.rake +7 -6
- data/spec/expressir/express/cache_spec.rb +7 -0
- data/spec/expressir/express/parser_spec.rb +7 -0
- data/spec/syntax/remark.exp +4 -2
- data/spec/syntax/remark.yaml +5 -0
- data/spec/syntax/remark_formatted.exp +1 -0
- metadata +14 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74d150eb10f581d1c0d8c3a1c92d82d1f4d79cdbc0ebd6142ef43b23b791aadd
|
4
|
+
data.tar.gz: 0ec5650b19a8a7af56eb6422c664f3fcc30075bede4c036f82a31cf2058e9ed5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b20b92f3d249c2cc915c21cad5639b8b4a0374a6618428d0969b2aac182bdea31b577368394098543abcc8364b8dd7e48f208322c6fa285b0bea08494a458e52
|
7
|
+
data.tar.gz: cbb3d633a2e5bf4a3028fd9c60cbd9219ef7db5ab49ae487b8bce4f41641d1e5deb5ccfae530a581bece835c2c1634e875286b2596dd7d02e2b2002d87a4c0ca
|
data/.cross_rubies
CHANGED
data/.github/workflows/rake.yml
CHANGED
@@ -10,7 +10,7 @@ concurrency:
|
|
10
10
|
cancel-in-progress: true
|
11
11
|
|
12
12
|
env:
|
13
|
-
BUNDLER_VER: 2.
|
13
|
+
BUNDLER_VER: 2.4.22
|
14
14
|
# Forcing bundler version to ensure that it is consistent everywhere and
|
15
15
|
# does not cause bundler gem reinstalls
|
16
16
|
# bundler/rubygems 2.3.22 is a minimal requirement to support gnu/musl differentiation
|
@@ -21,14 +21,14 @@ jobs:
|
|
21
21
|
runs-on: ubuntu-latest
|
22
22
|
steps:
|
23
23
|
- name: Checkout
|
24
|
-
uses: actions/checkout@
|
24
|
+
uses: actions/checkout@v4
|
25
25
|
with:
|
26
26
|
submodules: recursive
|
27
27
|
|
28
28
|
- name: Install Ruby
|
29
29
|
uses: ruby/setup-ruby@master
|
30
30
|
with:
|
31
|
-
ruby-version: 3.
|
31
|
+
ruby-version: 3.1
|
32
32
|
bundler: ${{ env.BUNDLER_VER }}
|
33
33
|
bundler-cache: true
|
34
34
|
|
@@ -44,12 +44,12 @@ jobs:
|
|
44
44
|
strategy:
|
45
45
|
fail-fast: false
|
46
46
|
matrix:
|
47
|
-
ruby: [ '3.1', '3.0', '2.7' ]
|
47
|
+
ruby: [ '3.2', '3.1', '3.0', '2.7' ]
|
48
48
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
49
49
|
|
50
50
|
steps:
|
51
51
|
- name: Checkout
|
52
|
-
uses: actions/checkout@
|
52
|
+
uses: actions/checkout@v4
|
53
53
|
with:
|
54
54
|
submodules: recursive
|
55
55
|
|
@@ -83,11 +83,9 @@ jobs:
|
|
83
83
|
# test release workflow
|
84
84
|
pack-ruby:
|
85
85
|
runs-on: ubuntu-latest
|
86
|
-
strategy:
|
87
|
-
fail-fast: false
|
88
86
|
steps:
|
89
87
|
- name: Checkout
|
90
|
-
uses: actions/checkout@
|
88
|
+
uses: actions/checkout@v4
|
91
89
|
with:
|
92
90
|
submodules: recursive
|
93
91
|
|
@@ -119,7 +117,7 @@ jobs:
|
|
119
117
|
host: [ linux, windows, darwin ]
|
120
118
|
steps:
|
121
119
|
- name: Checkout
|
122
|
-
uses: actions/checkout@
|
120
|
+
uses: actions/checkout@v4
|
123
121
|
with:
|
124
122
|
submodules: recursive
|
125
123
|
|
@@ -158,7 +156,7 @@ jobs:
|
|
158
156
|
strategy:
|
159
157
|
fail-fast: false
|
160
158
|
matrix:
|
161
|
-
ruby: [ '3.1', '3.0', '2.7' ]
|
159
|
+
ruby: [ '3.2', '3.1', '3.0', '2.7' ]
|
162
160
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
163
161
|
steps:
|
164
162
|
- name: Install Ruby
|
@@ -169,7 +167,7 @@ jobs:
|
|
169
167
|
bundler: ${{ env.BUNDLER_VER }}
|
170
168
|
|
171
169
|
- name: Checkout
|
172
|
-
uses: actions/checkout@
|
170
|
+
uses: actions/checkout@v4
|
173
171
|
with:
|
174
172
|
submodules: recursive
|
175
173
|
|
@@ -198,7 +196,7 @@ jobs:
|
|
198
196
|
strategy:
|
199
197
|
fail-fast: false
|
200
198
|
matrix:
|
201
|
-
ruby: [ '3.1', '3.0', '2.7' ]
|
199
|
+
ruby: [ '3.2', '3.1', '3.0', '2.7' ]
|
202
200
|
steps:
|
203
201
|
- name: Install Ruby
|
204
202
|
uses: ruby/setup-ruby@master
|
@@ -208,7 +206,7 @@ jobs:
|
|
208
206
|
bundler: ${{ env.BUNDLER_VER }}
|
209
207
|
|
210
208
|
- name: Checkout
|
211
|
-
uses: actions/checkout@
|
209
|
+
uses: actions/checkout@v4
|
212
210
|
|
213
211
|
- name: Bundle
|
214
212
|
run: bundle install --jobs 4 --retry 3
|
@@ -236,7 +234,7 @@ jobs:
|
|
236
234
|
strategy:
|
237
235
|
fail-fast: false
|
238
236
|
matrix:
|
239
|
-
ruby: [ '3.1', '3.0', '2.7' ]
|
237
|
+
ruby: [ '3.2', '3.1', '3.0', '2.7' ]
|
240
238
|
steps:
|
241
239
|
- name: Install Ruby
|
242
240
|
uses: ruby/setup-ruby@master
|
@@ -246,7 +244,7 @@ jobs:
|
|
246
244
|
bundler: ${{ env.BUNDLER_VER }}
|
247
245
|
|
248
246
|
- name: Checkout
|
249
|
-
uses: actions/checkout@
|
247
|
+
uses: actions/checkout@v4
|
250
248
|
|
251
249
|
- name: Bundle
|
252
250
|
run: bundle install --jobs 4 --retry 3
|
@@ -276,7 +274,7 @@ jobs:
|
|
276
274
|
# Ruby 3.1 fails
|
277
275
|
# https://github.com/lutaml/expressir/issues/103
|
278
276
|
matrix:
|
279
|
-
ruby: [ '3.1', '3.0', '2.7' ]
|
277
|
+
ruby: [ '3.2', '3.1', '3.0', '2.7' ]
|
280
278
|
steps:
|
281
279
|
- name: Install Ruby
|
282
280
|
uses: ruby/setup-ruby@master
|
@@ -286,7 +284,7 @@ jobs:
|
|
286
284
|
bundler: ${{ env.BUNDLER_VER }}
|
287
285
|
|
288
286
|
- name: Checkout
|
289
|
-
uses: actions/checkout@
|
287
|
+
uses: actions/checkout@v4
|
290
288
|
|
291
289
|
- name: Bundle
|
292
290
|
run: bundle install --jobs 4 --retry 3
|
@@ -15,24 +15,17 @@ concurrency:
|
|
15
15
|
group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
|
16
16
|
cancel-in-progress: true
|
17
17
|
|
18
|
-
env:
|
19
|
-
BUNDLER_VER: 2.3.24
|
20
|
-
# Forcing bundler version to ensure that it is consistent everywhere and
|
21
|
-
# does not cause bundler gem reinstalls
|
22
|
-
# bundler/rubygems 2.3.22 is a minimal requirement to support gnu/musl differentiation
|
23
|
-
# https://github.com/rubygems/rubygems/pull/4488
|
24
|
-
|
25
18
|
jobs:
|
26
19
|
bump:
|
27
20
|
runs-on: ubuntu-latest
|
28
21
|
steps:
|
29
|
-
- uses: actions/checkout@
|
22
|
+
- uses: actions/checkout@v4
|
30
23
|
with:
|
31
24
|
submodules: recursive
|
32
25
|
|
33
26
|
- uses: ruby/setup-ruby@master
|
34
27
|
with:
|
35
|
-
ruby-version: '3.
|
28
|
+
ruby-version: '3.1'
|
36
29
|
bundler: ${{ env.BUNDLER_VER }}
|
37
30
|
|
38
31
|
- if: ${{ github.event_name == 'workflow_dispatch' }} # unfortunatelly cannot keep this condition on job level
|
@@ -50,17 +43,16 @@ jobs:
|
|
50
43
|
matrix:
|
51
44
|
host: [ linux, windows, darwin ]
|
52
45
|
steps:
|
53
|
-
- uses: actions/checkout@
|
46
|
+
- uses: actions/checkout@v4
|
54
47
|
with:
|
55
48
|
submodules: recursive
|
56
49
|
ref: main # https://github.com/actions/checkout/issues/439#issuecomment-830862188
|
57
50
|
|
58
51
|
- uses: ruby/setup-ruby@master
|
59
52
|
with:
|
60
|
-
ruby-version: '3.
|
53
|
+
ruby-version: '3.1'
|
61
54
|
# bundler-cache: true important to not use cache because it leads to "cannot find -lrice"
|
62
55
|
# more info https://github.com/lutaml/expressir/runs/2097658383?check_suite_focus=true#step:7:2126
|
63
|
-
bundler: ${{ env.BUNDLER_VER }}
|
64
56
|
|
65
57
|
- run: bundle install --jobs 4 --retry 3
|
66
58
|
|
@@ -90,7 +82,7 @@ jobs:
|
|
90
82
|
path: pkg/*.gem
|
91
83
|
|
92
84
|
publish:
|
93
|
-
runs-on: ubuntu-
|
85
|
+
runs-on: ubuntu-latest
|
94
86
|
needs: pack
|
95
87
|
steps:
|
96
88
|
- uses: actions/download-artifact@v3
|
@@ -115,8 +107,7 @@ jobs:
|
|
115
107
|
|
116
108
|
- uses: ruby/setup-ruby@master
|
117
109
|
with:
|
118
|
-
ruby-version: '3.
|
119
|
-
bundler: ${{ env.BUNDLER_VER }}
|
110
|
+
ruby-version: '3.1'
|
120
111
|
|
121
112
|
- run: ls -l pkg/
|
122
113
|
|
data/.rubocop.yml
CHANGED
data/bin/rspec
CHANGED
@@ -15,7 +15,7 @@ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
15
15
|
bundle_binstub = File.expand_path("bundle", __dir__)
|
16
16
|
|
17
17
|
if File.file?(bundle_binstub)
|
18
|
-
if
|
18
|
+
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
19
19
|
load(bundle_binstub)
|
20
20
|
else
|
21
21
|
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
data/expressir.gemspec
CHANGED
@@ -39,10 +39,10 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency "pry", "~> 0.12.2"
|
40
40
|
spec.add_development_dependency "rake", "~> 13.0"
|
41
41
|
spec.add_development_dependency "rake-compiler", "~> 1.2"
|
42
|
-
spec.add_development_dependency "rake-compiler-dock", "~> 1.
|
42
|
+
spec.add_development_dependency "rake-compiler-dock", "~> 1.3"
|
43
43
|
spec.add_development_dependency "rspec", "~> 3.11"
|
44
|
-
spec.add_development_dependency "rubocop", "1.
|
45
|
-
spec.add_development_dependency "rubocop-performance", "~> 1.
|
44
|
+
spec.add_development_dependency "rubocop", "1.58"
|
45
|
+
spec.add_development_dependency "rubocop-performance", "~> 1.19"
|
46
46
|
spec.add_development_dependency "webrick", "~> 1.7.0"
|
47
47
|
spec.add_development_dependency "yard", "~> 0.9.26"
|
48
48
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -31,11 +31,12 @@ module Expressir
|
|
31
31
|
# @param [Boolean] include_source attach original source code to model elements
|
32
32
|
# @return [Model::Repository]
|
33
33
|
def self.from_file(file, skip_references: nil, include_source: nil)
|
34
|
+
raise Errno::ENOENT, "File not found: #{file}" unless File.exist?(file)
|
34
35
|
|
35
36
|
# An important note re memory management
|
36
37
|
# parse, syntax, visitor methods return complex tree structures created in native (C++) extension
|
37
38
|
# visit method references nodes and leaves of this structures but it is totally untransparent for Ruby GarbageCllector
|
38
|
-
# so in this class we keep those C++ structure marked for GC so they are not freed
|
39
|
+
# so in this class we keep those C++ structure marked for GC so they are not freed
|
39
40
|
@parser = ::ExpressParser::ParserExt.new(file.to_s)
|
40
41
|
@parse_tree = @parser.syntax()
|
41
42
|
|
@@ -17,7 +17,7 @@ require "set"
|
|
17
17
|
# - such multi-pass parsing is not implemented yet
|
18
18
|
# - xxxRef - merged to SimpleReference
|
19
19
|
# - entityConstructor, functionCall - merged to FunctionCall
|
20
|
-
#
|
20
|
+
#
|
21
21
|
# difference between generalized and instantiable types is not recognized
|
22
22
|
# see note in 8.6.2 Parameter data types
|
23
23
|
# > A syntactic construct such as ARRAY[1:3] OF REAL satisfies two syntactic productions —
|
@@ -69,7 +69,7 @@ module Expressir
|
|
69
69
|
default
|
70
70
|
end
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def visit_if_map(ctx)
|
74
74
|
if ctx
|
75
75
|
ctx.map{|ctx2| visit(ctx2)}
|
@@ -77,7 +77,7 @@ module Expressir
|
|
77
77
|
[]
|
78
78
|
end
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
def visit_if_map_flatten(ctx)
|
82
82
|
if ctx
|
83
83
|
ctx.map{|ctx2| visit(ctx2)}.flatten
|
@@ -111,15 +111,25 @@ module Expressir
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
+
def node_find(node, path)
|
115
|
+
if node.is_a?(Enumerable)
|
116
|
+
target_node = node.find { |item| item.find(path) }
|
117
|
+
else
|
118
|
+
target_node = node.find(path)
|
119
|
+
end
|
120
|
+
target_node
|
121
|
+
end
|
122
|
+
|
114
123
|
def find_remark_target(node, path)
|
115
|
-
target_node = node
|
124
|
+
target_node = node_find(node, path)
|
125
|
+
|
116
126
|
return target_node if target_node
|
117
127
|
|
118
128
|
# check if path can create implicit remark item
|
119
129
|
# see https://github.com/lutaml/expressir/issues/78
|
120
130
|
rest, _, current_path = path.rpartition(".") # get last path part
|
121
131
|
_, _, current_path = current_path.rpartition(":") # ignore prefix
|
122
|
-
parent_node = node
|
132
|
+
parent_node = node_find(node, rest)
|
123
133
|
if parent_node and parent_node.class.method_defined? :remark_items
|
124
134
|
remark_item = Model::Declarations::RemarkItem.new(
|
125
135
|
id: current_path
|
@@ -134,7 +144,7 @@ module Expressir
|
|
134
144
|
parent_node.remark_items << remark_item
|
135
145
|
end
|
136
146
|
parent_node.reset_children_by_id
|
137
|
-
|
147
|
+
|
138
148
|
remark_item
|
139
149
|
end
|
140
150
|
end
|
@@ -427,7 +437,7 @@ module Expressir
|
|
427
437
|
optional = ctx__OPTIONAL && true
|
428
438
|
unique = ctx__UNIQUE && true
|
429
439
|
base_type = visit_if(ctx__instantiable_type)
|
430
|
-
|
440
|
+
|
431
441
|
Model::DataTypes::Array.new(
|
432
442
|
bound1: bound1,
|
433
443
|
bound2: bound2,
|
@@ -495,7 +505,7 @@ module Expressir
|
|
495
505
|
bound1 = visit_if(ctx__bound_spec__bound1)
|
496
506
|
bound2 = visit_if(ctx__bound_spec__bound2)
|
497
507
|
base_type = visit_if(ctx__instantiable_type)
|
498
|
-
|
508
|
+
|
499
509
|
Model::DataTypes::Bag.new(
|
500
510
|
bound1: bound1,
|
501
511
|
bound2: bound2,
|
@@ -830,7 +840,7 @@ module Expressir
|
|
830
840
|
if ctx__type_ref
|
831
841
|
ref = visit_if(ctx__type_ref)
|
832
842
|
attribute = visit_if(ctx__enumeration_ref)
|
833
|
-
|
843
|
+
|
834
844
|
Model::References::AttributeReference.new(
|
835
845
|
ref: ref,
|
836
846
|
attribute: attribute
|
@@ -1030,7 +1040,7 @@ module Expressir
|
|
1030
1040
|
optional = ctx__OPTIONAL && true
|
1031
1041
|
unique = ctx__UNIQUE && true
|
1032
1042
|
base_type = visit_if(ctx__parameter_type)
|
1033
|
-
|
1043
|
+
|
1034
1044
|
Model::DataTypes::Array.new(
|
1035
1045
|
bound1: bound1,
|
1036
1046
|
bound2: bound2,
|
@@ -1049,7 +1059,7 @@ module Expressir
|
|
1049
1059
|
bound1 = visit_if(ctx__bound_spec__bound1)
|
1050
1060
|
bound2 = visit_if(ctx__bound_spec__bound2)
|
1051
1061
|
base_type = visit_if(ctx__parameter_type)
|
1052
|
-
|
1062
|
+
|
1053
1063
|
Model::DataTypes::Bag.new(
|
1054
1064
|
bound1: bound1,
|
1055
1065
|
bound2: bound2,
|
@@ -1068,7 +1078,7 @@ module Expressir
|
|
1068
1078
|
bound2 = visit_if(ctx__bound_spec__bound2)
|
1069
1079
|
unique = ctx__UNIQUE && true
|
1070
1080
|
base_type = visit_if(ctx__parameter_type)
|
1071
|
-
|
1081
|
+
|
1072
1082
|
Model::DataTypes::List.new(
|
1073
1083
|
bound1: bound1,
|
1074
1084
|
bound2: bound2,
|
@@ -1093,7 +1103,7 @@ module Expressir
|
|
1093
1103
|
bound1 = visit_if(ctx__bound_spec__bound1)
|
1094
1104
|
bound2 = visit_if(ctx__bound_spec__bound2)
|
1095
1105
|
base_type = visit_if(ctx__parameter_type)
|
1096
|
-
|
1106
|
+
|
1097
1107
|
Model::DataTypes::Set.new(
|
1098
1108
|
bound1: bound1,
|
1099
1109
|
bound2: bound2,
|
@@ -1358,7 +1368,7 @@ module Expressir
|
|
1358
1368
|
bound2 = visit_if(ctx__bound_spec__bound2)
|
1359
1369
|
unique = ctx__UNIQUE && true
|
1360
1370
|
base_type = visit_if(ctx__instantiable_type)
|
1361
|
-
|
1371
|
+
|
1362
1372
|
Model::DataTypes::List.new(
|
1363
1373
|
bound1: bound1,
|
1364
1374
|
bound2: bound2,
|
@@ -1989,7 +1999,7 @@ module Expressir
|
|
1989
1999
|
end
|
1990
2000
|
end
|
1991
2001
|
end
|
1992
|
-
|
2002
|
+
|
1993
2003
|
Model::Declarations::SchemaVersion.new(
|
1994
2004
|
value: value,
|
1995
2005
|
items: items
|
@@ -2042,7 +2052,7 @@ module Expressir
|
|
2042
2052
|
bound1 = visit_if(ctx__bound_spec__bound1)
|
2043
2053
|
bound2 = visit_if(ctx__bound_spec__bound2)
|
2044
2054
|
base_type = visit_if(ctx__instantiable_type)
|
2045
|
-
|
2055
|
+
|
2046
2056
|
Model::DataTypes::Set.new(
|
2047
2057
|
bound1: bound1,
|
2048
2058
|
bound2: bound2,
|
@@ -2087,7 +2097,7 @@ module Expressir
|
|
2087
2097
|
def visit_simple_factor_expression(ctx)
|
2088
2098
|
ctx__expression = ctx.expression
|
2089
2099
|
ctx__primary = ctx.primary
|
2090
|
-
|
2100
|
+
|
2091
2101
|
visit_if(ctx__expression || ctx__primary)
|
2092
2102
|
end
|
2093
2103
|
|
@@ -2575,4 +2585,4 @@ module Expressir
|
|
2575
2585
|
end
|
2576
2586
|
end
|
2577
2587
|
end
|
2578
|
-
end
|
2588
|
+
end
|
data/lib/expressir/version.rb
CHANGED
data/lib/expressir.rb
CHANGED
data/rakelib/cross-ruby.rake
CHANGED
@@ -126,7 +126,7 @@ CrossRuby = Struct.new(:version, :host) do
|
|
126
126
|
|
127
127
|
def verify_entry_linux(dll)
|
128
128
|
nm = `#{["env", "LANG=C", tool("nm"), "-D", dll].shelljoin}`
|
129
|
-
unless
|
129
|
+
unless nm.include?(" T Init_express_parser")
|
130
130
|
raise "Export function Init_express_parser not in dll #{dll}"
|
131
131
|
end
|
132
132
|
end
|
@@ -166,7 +166,7 @@ CrossRuby = Struct.new(:version, :host) do
|
|
166
166
|
"api-ms-win-crt-filesystem-l1-1-0.dll",
|
167
167
|
"api-ms-win-crt-math-l1-1-0.dll",
|
168
168
|
"libwinpthread-1.dll",
|
169
|
-
"x64-ucrt-
|
169
|
+
"x64-ucrt-ruby#{api_ver_suffix}.dll"]
|
170
170
|
end
|
171
171
|
# rubocop:enable Metrics/MethodLength
|
172
172
|
|
@@ -195,6 +195,7 @@ CrossRuby = Struct.new(:version, :host) do
|
|
195
195
|
"libm.so",
|
196
196
|
"libstdc++.so",
|
197
197
|
"libgcc_s.so",
|
198
|
+
"libpthread.so",
|
198
199
|
]
|
199
200
|
end
|
200
201
|
|
@@ -223,7 +224,7 @@ CrossRuby = Struct.new(:version, :host) do
|
|
223
224
|
end
|
224
225
|
|
225
226
|
def actual_dlls_windows(dump)
|
226
|
-
dump.scan(/DLL Name: (.*)$/).map
|
227
|
+
dump.scan(/DLL Name: (.*)$/).map { |x| x.first.downcase }.uniq
|
227
228
|
end
|
228
229
|
|
229
230
|
def actual_dlls_darwin(dll)
|
@@ -272,12 +273,12 @@ CrossRuby = Struct.new(:version, :host) do
|
|
272
273
|
end
|
273
274
|
end
|
274
275
|
|
275
|
-
CROSS_RUBIES = File.read(".cross_rubies").split("\n").
|
276
|
+
CROSS_RUBIES = File.read(".cross_rubies").split("\n").filter_map do |line|
|
276
277
|
case line
|
277
278
|
when /\A([^#]+):([^#]+)/
|
278
279
|
CrossRuby.new($1, $2)
|
279
280
|
end
|
280
|
-
end
|
281
|
+
end
|
281
282
|
|
282
283
|
ENV["RUBY_CC_VERSION"] = CROSS_RUBIES.map(&:ver).uniq.join(":")
|
283
284
|
|
@@ -329,7 +330,7 @@ namespace "gem" do
|
|
329
330
|
#{pre_req(plat)} &&
|
330
331
|
gem install bundler --no-document &&
|
331
332
|
bundle &&
|
332
|
-
bundle exec rake gem:#{plat}:builder MAKE=
|
333
|
+
bundle exec rake gem:#{plat}:builder MAKE="nice make -j`nproc`"
|
333
334
|
RCD
|
334
335
|
end
|
335
336
|
|
@@ -33,6 +33,13 @@ RSpec.describe Expressir::Express::Cache do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
describe ".from_file" do
|
36
|
+
it "throws an exception if the cache file does not exist" do |example|
|
37
|
+
print "\n[#{example.description}] "
|
38
|
+
expect do
|
39
|
+
Expressir::Express::Cache.from_file("non-existing-file", test_overwrite_version: TEST_VERSION)
|
40
|
+
end.to raise_error(Errno::ENOENT)
|
41
|
+
end
|
42
|
+
|
36
43
|
it "parses a file" do |example|
|
37
44
|
print "\n[#{example.description}] "
|
38
45
|
temp_file = Tempfile.new
|
@@ -4,6 +4,13 @@ require "expressir/express/parser"
|
|
4
4
|
|
5
5
|
RSpec.describe Expressir::Express::Parser do
|
6
6
|
describe ".from_file" do
|
7
|
+
it "throws an exception if the file to parse does not exist" do |example|
|
8
|
+
print "\n[#{example.description}] "
|
9
|
+
expect do
|
10
|
+
Expressir::Express::Parser.from_file("non-existing-file")
|
11
|
+
end.to raise_error(Errno::ENOENT)
|
12
|
+
end
|
13
|
+
|
7
14
|
it "parses a file (single.exp)" do |example|
|
8
15
|
print "\n[#{example.description}] "
|
9
16
|
exp_file = Expressir.root_path.join("spec", "syntax", "single.exp")
|
data/spec/syntax/remark.exp
CHANGED
@@ -23,7 +23,9 @@ ENTITY remark_entity;
|
|
23
23
|
DERIVE remark_derived_attribute : STRING := 'xxx';
|
24
24
|
INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
|
25
25
|
UNIQUE UR1: remark_attribute;
|
26
|
-
WHERE WR1:
|
26
|
+
WHERE WR1:
|
27
|
+
--"unusual_placement" placed inside WHERE clauses (or other enumerable context)
|
28
|
+
TRUE;
|
27
29
|
--"remark_attribute" entity scope - entity attribute
|
28
30
|
--"remark_derived_attribute" entity scope - entity derived attribute
|
29
31
|
--"remark_inverse_attribute" entity scope - entity inverse attribute
|
@@ -188,4 +190,4 @@ END_SCHEMA;
|
|
188
190
|
--"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
|
189
191
|
--"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
|
190
192
|
--"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
|
191
|
-
--"remark_schema.remark_item" universal scope - schema remark item
|
193
|
+
--"remark_schema.remark_item" universal scope - schema remark item
|
data/spec/syntax/remark.yaml
CHANGED
@@ -133,6 +133,11 @@ schemas:
|
|
133
133
|
- schema scope - entity where, with prefix
|
134
134
|
- universal scope - entity where
|
135
135
|
- universal scope - entity where, with prefix
|
136
|
+
remark_items:
|
137
|
+
- _class: Expressir::Model::Declarations::RemarkItem
|
138
|
+
id: unusual_placement
|
139
|
+
remarks:
|
140
|
+
- placed inside WHERE clauses (or other enumerable context)
|
136
141
|
expression:
|
137
142
|
_class: Expressir::Model::Literals::Logical
|
138
143
|
value: :TRUE
|
@@ -146,6 +146,7 @@ several physical lines.
|
|
146
146
|
--"remark_schema.remark_entity.WR1" schema scope - entity where, with prefix
|
147
147
|
--"remark_schema.remark_entity.WR1" universal scope - entity where
|
148
148
|
--"remark_schema.remark_entity.WR1" universal scope - entity where, with prefix
|
149
|
+
--"remark_schema.remark_entity.WR1.unusual_placement" placed inside WHERE clauses (or other enumerable context)
|
149
150
|
--"remark_schema.remark_entity.IP1" entity scope - entity informal proposition
|
150
151
|
--"remark_schema.remark_entity.IP1" entity scope - entity informal proposition, with prefix
|
151
152
|
--"remark_schema.remark_entity.IP1" schema scope - entity informal proposition
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: expressir
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.10
|
5
5
|
platform: arm64-darwin
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
131
|
+
version: '1.3'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
138
|
+
version: '1.3'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rspec
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,28 +156,28 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - '='
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.
|
159
|
+
version: '1.58'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - '='
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 1.
|
166
|
+
version: '1.58'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: rubocop-performance
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '1.
|
173
|
+
version: '1.19'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '1.
|
180
|
+
version: '1.19'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: webrick
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -243,6 +243,7 @@ files:
|
|
243
243
|
- lib/expressir/express/2.7/express_parser.bundle
|
244
244
|
- lib/expressir/express/3.0/express_parser.bundle
|
245
245
|
- lib/expressir/express/3.1/express_parser.bundle
|
246
|
+
- lib/expressir/express/3.2/express_parser.bundle
|
246
247
|
- lib/expressir/express/cache.rb
|
247
248
|
- lib/expressir/express/formatter.rb
|
248
249
|
- lib/expressir/express/hyperlink_formatter.rb
|
@@ -364,7 +365,7 @@ metadata:
|
|
364
365
|
homepage_uri: https://github.com/lutaml/expressir
|
365
366
|
source_code_uri: https://github.com/lutaml/expressir
|
366
367
|
changelog_uri: https://github.com/lutaml/expressir/releases
|
367
|
-
post_install_message:
|
368
|
+
post_install_message:
|
368
369
|
rdoc_options: []
|
369
370
|
require_paths:
|
370
371
|
- lib
|
@@ -375,15 +376,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
375
376
|
version: '2.7'
|
376
377
|
- - "<"
|
377
378
|
- !ruby/object:Gem::Version
|
378
|
-
version: 3.
|
379
|
+
version: 3.3.dev
|
379
380
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
380
381
|
requirements:
|
381
382
|
- - ">="
|
382
383
|
- !ruby/object:Gem::Version
|
383
384
|
version: '0'
|
384
385
|
requirements: []
|
385
|
-
rubygems_version: 3.3.
|
386
|
-
signing_key:
|
386
|
+
rubygems_version: 3.3.26
|
387
|
+
signing_key:
|
387
388
|
specification_version: 4
|
388
389
|
summary: ISO EXPRESS parser and tools in Ruby.
|
389
390
|
test_files: []
|