expressir 2.4.35-arm-linux → 2.4.37-arm-linux
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/.github/workflows/conformance.yml +34 -0
- data/.gitignore +3 -0
- data/Gemfile +1 -1
- data/TODO.sota/00-overview.md +57 -0
- data/TODO.sota/01-type-checking.md +115 -0
- data/TODO.sota/02-evaluator.md +86 -0
- data/TODO.sota/03-conformance.md +53 -0
- data/TODO.sota/04-lsp.md +70 -0
- data/TODO.sota/05-interop.md +55 -0
- data/TODO.sota/06-dialects.md +57 -0
- data/TODO.sota/07-reference-artifacts.md +55 -0
- data/docs/_guides/interop/index.adoc +25 -0
- data/docs/_guides/interop/json-schema.adoc +88 -0
- data/docs/_guides/interop/owl-rdf.adoc +87 -0
- data/docs/_guides/reference/checker-notes.adoc +55 -0
- data/docs/_guides/reference/checker.adoc +36 -0
- data/docs/_guides/reference/evaluator.adoc +40 -0
- data/docs/_guides/reference/grammar-crosswalk.adoc +299 -0
- data/docs/_guides/reference/index.adoc +22 -0
- data/docs/_guides/reference/lsp.adoc +41 -0
- data/docs/_guides/reference/p21.adoc +30 -0
- data/docs/_guides/reference/shtolo.adoc +36 -0
- data/exe/expressir-lsp +6 -0
- data/expressir.gemspec +2 -2
- data/lib/expressir/3.2/expressir_core.so +0 -0
- data/lib/expressir/3.3/expressir_core.so +0 -0
- data/lib/expressir/3.4/expressir_core.so +0 -0
- data/lib/expressir/4.0/expressir_core.so +0 -0
- data/lib/expressir/cli.rb +18 -0
- data/lib/expressir/commands/check.rb +3 -1
- data/lib/expressir/commands/export_json_schema.rb +29 -0
- data/lib/expressir/commands/export_owl.rb +26 -0
- data/lib/expressir/commands/validate.rb +3 -0
- data/lib/expressir/commands.rb +2 -0
- data/lib/expressir/conformance/trend.rb +100 -0
- data/lib/expressir/conformance.rb +8 -0
- data/lib/expressir/eval/environment.rb +83 -0
- data/lib/expressir/eval/expression.rb +610 -0
- data/lib/expressir/eval/interpreter.rb +316 -0
- data/lib/expressir/eval/rules.rb +88 -0
- data/lib/expressir/eval/values.rb +74 -0
- data/lib/expressir/eval.rb +17 -0
- data/lib/expressir/express/builders/expression_builder.rb +9 -1
- data/lib/expressir/express/checker.rb +779 -2
- data/lib/expressir/express/dialect.rb +44 -0
- data/lib/expressir/express/formatters/expressions_formatter.rb +4 -1
- data/lib/expressir/express/parser.rb +9 -4
- data/lib/expressir/express.rb +1 -0
- data/lib/expressir/interop/json_schema.rb +195 -0
- data/lib/expressir/interop/owl.rb +216 -0
- data/lib/expressir/interop.rb +13 -0
- data/lib/expressir/lsp/document.rb +226 -0
- data/lib/expressir/lsp/server.rb +184 -0
- data/lib/expressir/lsp/workspace.rb +402 -0
- data/lib/expressir/lsp.rb +11 -0
- data/lib/expressir/mapping/refpath.rb +65 -4
- data/lib/expressir/reference/grammar_crosswalk.rb +122 -0
- data/lib/expressir/reference/grammar_crosswalk.yml +800 -0
- data/lib/expressir/reference/note_catalog.rb +54 -0
- data/lib/expressir/reference.rb +10 -0
- data/lib/expressir/version.rb +1 -1
- data/lib/expressir.rb +4 -0
- data/lib/tasks/conformance.rake +27 -0
- data/lib/tasks/reference.rake +25 -0
- metadata +50 -4
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Expressir
|
|
4
|
+
module Reference
|
|
5
|
+
# Catalog of Checker note ids, generated from the checker source so
|
|
6
|
+
# the published guide cannot drift from the implementation.
|
|
7
|
+
class NoteCatalog
|
|
8
|
+
CHECKER_PATH = File.expand_path("../express/checker.rb", __dir__)
|
|
9
|
+
NOTE_CALL = /note!\(:([a-z0-9_]+)/
|
|
10
|
+
|
|
11
|
+
class << self
|
|
12
|
+
def checker_path
|
|
13
|
+
CHECKER_PATH
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def entries
|
|
17
|
+
File.read(CHECKER_PATH).scan(NOTE_CALL).flatten.tally.sort.to_h
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def ids
|
|
21
|
+
entries.keys
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def render_adoc
|
|
25
|
+
lines = [
|
|
26
|
+
"= Checker note-id catalog",
|
|
27
|
+
"",
|
|
28
|
+
"// Generated from lib/expressir/express/checker.rb by",
|
|
29
|
+
"// `rake reference:notes`. Do not edit by hand; the reference",
|
|
30
|
+
"// spec fails when this file is stale.",
|
|
31
|
+
"",
|
|
32
|
+
"== Purpose",
|
|
33
|
+
"",
|
|
34
|
+
"Every note id the Checker can raise, with the number of call",
|
|
35
|
+
"sites in the implementation. New checks use `:check_*` ids;",
|
|
36
|
+
"the conformance-derived ids (`:check_expr_*`, `:check_dialect_*`)",
|
|
37
|
+
"cite their clause in the note message.",
|
|
38
|
+
"",
|
|
39
|
+
'[cols="3,1", options="header"]',
|
|
40
|
+
"|===",
|
|
41
|
+
"| Note id | Call sites",
|
|
42
|
+
"",
|
|
43
|
+
*entries.map { |id, count| "| `#{id}` | #{count}" },
|
|
44
|
+
"|===",
|
|
45
|
+
"",
|
|
46
|
+
"The catalog covers #{ids.size} note ids.",
|
|
47
|
+
"",
|
|
48
|
+
]
|
|
49
|
+
lines.join("\n")
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Expressir
|
|
4
|
+
# Citable reference artifacts generated from the implementation:
|
|
5
|
+
# the grammar cross-walk and the checker note-id catalog.
|
|
6
|
+
module Reference
|
|
7
|
+
autoload :GrammarCrosswalk, "#{__dir__}/reference/grammar_crosswalk"
|
|
8
|
+
autoload :NoteCatalog, "#{__dir__}/reference/note_catalog"
|
|
9
|
+
end
|
|
10
|
+
end
|
data/lib/expressir/version.rb
CHANGED
data/lib/expressir.rb
CHANGED
|
@@ -31,6 +31,7 @@ module Expressir
|
|
|
31
31
|
autoload :Version, "#{__dir__}/expressir/version"
|
|
32
32
|
autoload :Mapping, "#{__dir__}/expressir/mapping"
|
|
33
33
|
autoload :P21, "#{__dir__}/expressir/p21"
|
|
34
|
+
autoload :Reference, "#{__dir__}/expressir/reference"
|
|
34
35
|
|
|
35
36
|
# Error classes — autoload the same errors.rb file from each name.
|
|
36
37
|
# The first reference triggers the load; the file defines all 21 classes.
|
|
@@ -75,9 +76,12 @@ module Expressir
|
|
|
75
76
|
autoload :Model, "#{__dir__}/expressir/model"
|
|
76
77
|
autoload :Commands, "#{__dir__}/expressir/commands"
|
|
77
78
|
autoload :Changes, "#{__dir__}/expressir/changes"
|
|
79
|
+
autoload :Conformance, "#{__dir__}/expressir/conformance"
|
|
78
80
|
autoload :Package, "#{__dir__}/expressir/package"
|
|
79
81
|
autoload :Manifest, "#{__dir__}/expressir/manifest"
|
|
80
82
|
autoload :Eengine, "#{__dir__}/expressir/eengine"
|
|
83
|
+
autoload :Interop, "#{__dir__}/expressir/interop"
|
|
84
|
+
autoload :Lsp, "#{__dir__}/expressir/lsp"
|
|
81
85
|
autoload :SchemaManifest, "#{__dir__}/expressir/schema_manifest"
|
|
82
86
|
autoload :SchemaManifestEntry, "#{__dir__}/expressir/schema_manifest_entry"
|
|
83
87
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
desc "Property-based conformance harness over the full corpus " \
|
|
4
|
+
"(parse → format → parse idempotence)"
|
|
5
|
+
task :conformance do
|
|
6
|
+
ENV["EXPRESSIR_CONFORMANCE"] = "1"
|
|
7
|
+
sh "bundle exec rspec spec/expressir/express/formatter_roundtrip_conformance_spec.rb"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
namespace :conformance do
|
|
11
|
+
desc "Measure parse, diagnostic and idempotence rates over the corpus " \
|
|
12
|
+
"and write a JSON trend artifact"
|
|
13
|
+
task :trend do
|
|
14
|
+
require "expressir"
|
|
15
|
+
|
|
16
|
+
stepmod = ENV["STEPMOD_DIR"] ||
|
|
17
|
+
File.expand_path("~/src/mn/iso-10303-stepmod")
|
|
18
|
+
corpus = File.join(stepmod, "data/resources")
|
|
19
|
+
files = Dir[File.join(corpus, "**/*.exp")]
|
|
20
|
+
.select { |file| File.size(file) < 250_000 }
|
|
21
|
+
output = ENV["CONFORMANCE_TREND_OUT"] || "conformance-trend.json"
|
|
22
|
+
report = Expressir::Conformance::Trend.run(files, output: output)
|
|
23
|
+
puts "wrote #{output} " \
|
|
24
|
+
"(parse #{report['parse_rate']}, idempotence " \
|
|
25
|
+
"#{report['idempotence_rate']}, diagnostics #{report['diagnostic_rate']})"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
namespace :reference do
|
|
4
|
+
desc "Regenerate the grammar cross-walk guide"
|
|
5
|
+
task :crosswalk do
|
|
6
|
+
require "expressir"
|
|
7
|
+
|
|
8
|
+
path = Expressir.root_path.join(
|
|
9
|
+
"docs/_guides/reference/grammar-crosswalk.adoc",
|
|
10
|
+
)
|
|
11
|
+
File.write(path, Expressir::Reference::GrammarCrosswalk.render_adoc)
|
|
12
|
+
puts "wrote #{path}"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
desc "Regenerate the checker note-id catalog"
|
|
16
|
+
task :notes do
|
|
17
|
+
require "expressir"
|
|
18
|
+
|
|
19
|
+
path = Expressir.root_path.join(
|
|
20
|
+
"docs/_guides/reference/checker-notes.adoc",
|
|
21
|
+
)
|
|
22
|
+
File.write(path, Expressir::Reference::NoteCatalog.render_adoc)
|
|
23
|
+
puts "wrote #{path}"
|
|
24
|
+
end
|
|
25
|
+
end
|
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: 2.4.
|
|
4
|
+
version: 2.4.37
|
|
5
5
|
platform: arm-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -86,14 +86,14 @@ dependencies:
|
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.8.
|
|
89
|
+
version: 0.8.114
|
|
90
90
|
type: :runtime
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.8.
|
|
96
|
+
version: 0.8.114
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: moxml
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -232,12 +232,14 @@ email:
|
|
|
232
232
|
- open.source@ribose.com
|
|
233
233
|
executables:
|
|
234
234
|
- expressir
|
|
235
|
+
- expressir-lsp
|
|
235
236
|
extensions: []
|
|
236
237
|
extra_rdoc_files: []
|
|
237
238
|
files:
|
|
238
239
|
- ".cargo/config.toml"
|
|
239
240
|
- ".github/scripts/test_installed_gem.rb"
|
|
240
241
|
- ".github/workflows/codeql.yml"
|
|
242
|
+
- ".github/workflows/conformance.yml"
|
|
241
243
|
- ".github/workflows/docs.yml"
|
|
242
244
|
- ".github/workflows/links.yml"
|
|
243
245
|
- ".github/workflows/native-gems.yml"
|
|
@@ -333,6 +335,14 @@ files:
|
|
|
333
335
|
- TODO.parity-ee/19-architecture.md
|
|
334
336
|
- TODO.parity-ee/parity-matrix.md
|
|
335
337
|
- TODO.refpath-v2/00-overview.md
|
|
338
|
+
- TODO.sota/00-overview.md
|
|
339
|
+
- TODO.sota/01-type-checking.md
|
|
340
|
+
- TODO.sota/02-evaluator.md
|
|
341
|
+
- TODO.sota/03-conformance.md
|
|
342
|
+
- TODO.sota/04-lsp.md
|
|
343
|
+
- TODO.sota/05-interop.md
|
|
344
|
+
- TODO.sota/06-dialects.md
|
|
345
|
+
- TODO.sota/07-reference-artifacts.md
|
|
336
346
|
- TODO.suma-improvements/00-overview.md
|
|
337
347
|
- TODO.suma-improvements/01-prebuilt-platform-gems.md
|
|
338
348
|
- TODO.suma-improvements/02-suma-e2e.md
|
|
@@ -366,6 +376,9 @@ files:
|
|
|
366
376
|
- docs/_guides/cli/validate-schemas.adoc
|
|
367
377
|
- docs/_guides/formatter/formatter-architecture.adoc
|
|
368
378
|
- docs/_guides/index.adoc
|
|
379
|
+
- docs/_guides/interop/index.adoc
|
|
380
|
+
- docs/_guides/interop/json-schema.adoc
|
|
381
|
+
- docs/_guides/interop/owl-rdf.adoc
|
|
369
382
|
- docs/_guides/ler/creating-packages.adoc
|
|
370
383
|
- docs/_guides/ler/index.adoc
|
|
371
384
|
- docs/_guides/ler/loading-packages.adoc
|
|
@@ -382,6 +395,14 @@ files:
|
|
|
382
395
|
- docs/_guides/manifests/index.adoc
|
|
383
396
|
- docs/_guides/manifests/resolving-manifests.adoc
|
|
384
397
|
- docs/_guides/manifests/validating-manifests.adoc
|
|
398
|
+
- docs/_guides/reference/checker-notes.adoc
|
|
399
|
+
- docs/_guides/reference/checker.adoc
|
|
400
|
+
- docs/_guides/reference/evaluator.adoc
|
|
401
|
+
- docs/_guides/reference/grammar-crosswalk.adoc
|
|
402
|
+
- docs/_guides/reference/index.adoc
|
|
403
|
+
- docs/_guides/reference/lsp.adoc
|
|
404
|
+
- docs/_guides/reference/p21.adoc
|
|
405
|
+
- docs/_guides/reference/shtolo.adoc
|
|
385
406
|
- docs/_guides/ruby-api/formatting-schemas.adoc
|
|
386
407
|
- docs/_guides/ruby-api/index.adoc
|
|
387
408
|
- docs/_guides/ruby-api/parsing-files.adoc
|
|
@@ -421,6 +442,7 @@ files:
|
|
|
421
442
|
- exe/expressir
|
|
422
443
|
- exe/expressir-format
|
|
423
444
|
- exe/expressir-format-test
|
|
445
|
+
- exe/expressir-lsp
|
|
424
446
|
- expressir.gemspec
|
|
425
447
|
- lib/expressir.rb
|
|
426
448
|
- lib/expressir/3.2/expressir_core.so
|
|
@@ -445,6 +467,8 @@ files:
|
|
|
445
467
|
- lib/expressir/commands/clean.rb
|
|
446
468
|
- lib/expressir/commands/coverage.rb
|
|
447
469
|
- lib/expressir/commands/expand.rb
|
|
470
|
+
- lib/expressir/commands/export_json_schema.rb
|
|
471
|
+
- lib/expressir/commands/export_owl.rb
|
|
448
472
|
- lib/expressir/commands/file_violations.rb
|
|
449
473
|
- lib/expressir/commands/fix.rb
|
|
450
474
|
- lib/expressir/commands/flatten.rb
|
|
@@ -462,6 +486,8 @@ files:
|
|
|
462
486
|
- lib/expressir/commands/version_command.rb
|
|
463
487
|
- lib/expressir/commands/xsd.rb
|
|
464
488
|
- lib/expressir/config.rb
|
|
489
|
+
- lib/expressir/conformance.rb
|
|
490
|
+
- lib/expressir/conformance/trend.rb
|
|
465
491
|
- lib/expressir/coverage.rb
|
|
466
492
|
- lib/expressir/eengine.rb
|
|
467
493
|
- lib/expressir/eengine/arm_compare_report.rb
|
|
@@ -470,6 +496,12 @@ files:
|
|
|
470
496
|
- lib/expressir/eengine/mim_compare_report.rb
|
|
471
497
|
- lib/expressir/eengine/modified_object.rb
|
|
472
498
|
- lib/expressir/errors.rb
|
|
499
|
+
- lib/expressir/eval.rb
|
|
500
|
+
- lib/expressir/eval/environment.rb
|
|
501
|
+
- lib/expressir/eval/expression.rb
|
|
502
|
+
- lib/expressir/eval/interpreter.rb
|
|
503
|
+
- lib/expressir/eval/rules.rb
|
|
504
|
+
- lib/expressir/eval/values.rb
|
|
473
505
|
- lib/expressir/express.rb
|
|
474
506
|
- lib/expressir/express/adoc_hyperlink_formatter.rb
|
|
475
507
|
- lib/expressir/express/adoc_source_formatter.rb
|
|
@@ -515,6 +547,7 @@ files:
|
|
|
515
547
|
- lib/expressir/express/checker.rb
|
|
516
548
|
- lib/expressir/express/concatenator.rb
|
|
517
549
|
- lib/expressir/express/core.rb
|
|
550
|
+
- lib/expressir/express/dialect.rb
|
|
518
551
|
- lib/expressir/express/error.rb
|
|
519
552
|
- lib/expressir/express/formatter.rb
|
|
520
553
|
- lib/expressir/express/formatters.rb
|
|
@@ -558,7 +591,14 @@ files:
|
|
|
558
591
|
- lib/expressir/express/source_formatter.rb
|
|
559
592
|
- lib/expressir/express/streaming_builder.rb
|
|
560
593
|
- lib/expressir/express/xsd.rb
|
|
594
|
+
- lib/expressir/interop.rb
|
|
595
|
+
- lib/expressir/interop/json_schema.rb
|
|
596
|
+
- lib/expressir/interop/owl.rb
|
|
561
597
|
- lib/expressir/liquid.rb
|
|
598
|
+
- lib/expressir/lsp.rb
|
|
599
|
+
- lib/expressir/lsp/document.rb
|
|
600
|
+
- lib/expressir/lsp/server.rb
|
|
601
|
+
- lib/expressir/lsp/workspace.rb
|
|
562
602
|
- lib/expressir/manifest.rb
|
|
563
603
|
- lib/expressir/manifest/resolver.rb
|
|
564
604
|
- lib/expressir/manifest/validator.rb
|
|
@@ -670,9 +710,15 @@ files:
|
|
|
670
710
|
- lib/expressir/package/builder.rb
|
|
671
711
|
- lib/expressir/package/metadata.rb
|
|
672
712
|
- lib/expressir/package/reader.rb
|
|
713
|
+
- lib/expressir/reference.rb
|
|
714
|
+
- lib/expressir/reference/grammar_crosswalk.rb
|
|
715
|
+
- lib/expressir/reference/grammar_crosswalk.yml
|
|
716
|
+
- lib/expressir/reference/note_catalog.rb
|
|
673
717
|
- lib/expressir/schema_manifest.rb
|
|
674
718
|
- lib/expressir/schema_manifest_entry.rb
|
|
675
719
|
- lib/expressir/version.rb
|
|
720
|
+
- lib/tasks/conformance.rake
|
|
721
|
+
- lib/tasks/reference.rake
|
|
676
722
|
- lib/tasks/verify_remarks.rake
|
|
677
723
|
- rakelib/native.rake
|
|
678
724
|
- rakelib/oracle.rake
|