interscript 2.4.5 → 3.0.0
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/README.md +15 -0
- data/docs/demo/20191118-interscript-demo-cast.gif +0 -0
- data/exe/codemod-imp-to-isc +5 -0
- data/exe/diagnose_parse_failures +47 -0
- data/exe/interscript +2 -1
- data/exe/verify_isc_deep +211 -0
- data/exe/verify_isc_equivalence +128 -0
- data/interscript.gemspec +27 -20
- data/lib/interscript/command.rb +21 -12
- data/lib/interscript/compiler/javascript.rb +34 -35
- data/lib/interscript/compiler/json_ir.rb +214 -0
- data/lib/interscript/compiler/python.rb +354 -0
- data/lib/interscript/compiler/ruby.rb +23 -22
- data/lib/interscript/compiler.rb +20 -3
- data/lib/interscript/detector.rb +14 -7
- data/lib/interscript/dsl/aliases.rb +1 -1
- data/lib/interscript/dsl/document.rb +6 -3
- data/lib/interscript/dsl/group/parallel.rb +1 -1
- data/lib/interscript/dsl/group.rb +18 -9
- data/lib/interscript/dsl/items.rb +28 -16
- data/lib/interscript/dsl/metadata.rb +19 -18
- data/lib/interscript/dsl/stage.rb +1 -1
- data/lib/interscript/dsl/symbol_mm.rb +4 -2
- data/lib/interscript/dsl/tests.rb +1 -1
- data/lib/interscript/dsl.rb +21 -13
- data/lib/interscript/interpreter.rb +32 -21
- data/lib/interscript/isc/codemod.rb +791 -0
- data/lib/interscript/isc/document_builder.rb +354 -0
- data/lib/interscript/isc/generator.rb +191 -0
- data/lib/interscript/isc/grammar/concerns/aliases.rb +29 -0
- data/lib/interscript/isc/grammar/concerns/dependencies.rb +23 -0
- data/lib/interscript/isc/grammar/concerns/items.rb +176 -0
- data/lib/interscript/isc/grammar/concerns/metadata.rb +142 -0
- data/lib/interscript/isc/grammar/concerns/primitives.rb +112 -0
- data/lib/interscript/isc/grammar/concerns/stages.rb +129 -0
- data/lib/interscript/isc/grammar/concerns/system.rb +37 -0
- data/lib/interscript/isc/grammar/concerns/tests.rb +31 -0
- data/lib/interscript/isc/grammar/concerns.rb +18 -0
- data/lib/interscript/isc/grammar/core.rb +23 -0
- data/lib/interscript/isc/grammar/isc.artifact.json +1 -0
- data/lib/interscript/isc/grammar/isc.parg +196 -0
- data/lib/interscript/isc/grammar.rb +12 -0
- data/lib/interscript/isc/items.rb +185 -0
- data/lib/interscript/isc/model/alias.rb +20 -0
- data/lib/interscript/isc/model/constraint.rb +20 -0
- data/lib/interscript/isc/model/dependency.rb +19 -0
- data/lib/interscript/isc/model/document.rb +31 -0
- data/lib/interscript/isc/model/item.rb +50 -0
- data/lib/interscript/isc/model/rule.rb +23 -0
- data/lib/interscript/isc/model/stage.rb +20 -0
- data/lib/interscript/isc/model/stage_item.rb +33 -0
- data/lib/interscript/isc/model/test.rb +21 -0
- data/lib/interscript/isc/model.rb +19 -0
- data/lib/interscript/isc/node_adapter.rb +310 -0
- data/lib/interscript/isc/normalizer.rb +127 -0
- data/lib/interscript/isc/parser.rb +78 -0
- data/lib/interscript/isc/serializer.rb +248 -0
- data/lib/interscript/isc/transform.rb +138 -0
- data/lib/interscript/isc/yaml_bridge.rb +236 -0
- data/lib/interscript/isc.rb +30 -0
- data/lib/interscript/ml/byt5_onnx.rb +102 -0
- data/lib/interscript/ml/imf.rb +182 -0
- data/lib/interscript/ml/model.rb +52 -0
- data/lib/interscript/ml/provisioning.rb +189 -0
- data/lib/interscript/ml/translator.rb +38 -0
- data/lib/interscript/ml/vocab.rb +48 -0
- data/lib/interscript/ml.rb +25 -0
- data/lib/interscript/node/alias_def.rb +5 -5
- data/lib/interscript/node/dependency.rb +7 -7
- data/lib/interscript/node/document.rb +10 -10
- data/lib/interscript/node/group.rb +11 -9
- data/lib/interscript/node/item/alias.rb +14 -10
- data/lib/interscript/node/item/any.rb +14 -7
- data/lib/interscript/node/item/capture.rb +14 -9
- data/lib/interscript/node/item/group.rb +22 -17
- data/lib/interscript/node/item/repeat.rb +3 -3
- data/lib/interscript/node/item/stage.rb +4 -5
- data/lib/interscript/node/item/string.rb +18 -13
- data/lib/interscript/node/item.rb +27 -17
- data/lib/interscript/node/metadata.rb +6 -5
- data/lib/interscript/node/rule/funcall.rb +4 -5
- data/lib/interscript/node/rule/run.rb +4 -5
- data/lib/interscript/node/rule/sub.rb +55 -55
- data/lib/interscript/node/rule.rb +6 -5
- data/lib/interscript/node/stage.rb +11 -14
- data/lib/interscript/node/tests.rb +6 -6
- data/lib/interscript/node.rb +14 -17
- data/lib/interscript/stdlib/functions/rababa_adapter.rb +56 -0
- data/lib/interscript/stdlib/functions/secryst_adapter.rb +37 -0
- data/lib/interscript/stdlib/functions.rb +49 -0
- data/lib/interscript/stdlib.rb +25 -95
- data/lib/interscript/utils/helpers.rb +8 -5
- data/lib/interscript/utils/regexp_converter.rb +143 -144
- data/lib/interscript/version.rb +1 -1
- data/lib/interscript/visualize/json.rb +12 -13
- data/lib/interscript/visualize/nodes.rb +13 -13
- data/lib/interscript/visualize.rb +18 -18
- data/lib/interscript.rb +59 -45
- metadata +88 -31
- data/.github/workflows/assets.yml +0 -91
- data/.github/workflows/rake.yml +0 -52
- data/.github/workflows/release.yml +0 -68
- data/.gitignore +0 -79
- data/.rspec +0 -3
- data/Gemfile +0 -38
- data/Rakefile +0 -139
- data/bin/console +0 -10
- data/bin/interscript +0 -5
- data/bin/maps_analyze_staging +0 -168
- data/bin/maps_debug_compilers +0 -58
- data/bin/maps_debug_ordering +0 -88
- data/bin/maps_debug_ruby_compile +0 -24
- data/bin/maps_debug_step_by_step +0 -44
- data/bin/maps_optimize_order +0 -112
- data/bin/maps_v1_analyze_regexps +0 -45
- data/bin/maps_v1_to_v2 +0 -426
- data/bin/set_version +0 -16
- data/bin/setup +0 -8
- data/requirements.txt +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
require
|
|
2
|
-
require 'interscript/visualize/nodes'
|
|
3
|
-
require 'interscript/visualize/json'
|
|
4
|
-
|
|
5
|
-
def h(str)
|
|
6
|
-
str.to_s.gsub("&", "&").gsub("<", "<").gsub(">", ">").gsub('"', """)
|
|
7
|
-
end
|
|
1
|
+
require "erb"
|
|
8
2
|
|
|
9
3
|
class Interscript::Visualize
|
|
4
|
+
autoload :Nodes, "interscript/visualize/nodes"
|
|
5
|
+
autoload :JSON, "interscript/visualize/json"
|
|
6
|
+
|
|
10
7
|
def self.def_template(template)
|
|
11
|
-
@template = ERB.new(File.read(__dir__+"/visualize/#{template}.html.erb"))
|
|
8
|
+
@template = ERB.new(File.read(__dir__ + "/visualize/#{template}.html.erb"))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def get_binding
|
|
12
|
+
binding
|
|
12
13
|
end
|
|
13
|
-
def get_binding; binding; end
|
|
14
14
|
|
|
15
15
|
def self.call(*args)
|
|
16
|
-
return Map.(*args) if self == Interscript::Visualize
|
|
16
|
+
return Map.call(*args) if self == Interscript::Visualize
|
|
17
17
|
|
|
18
|
-
tplctx =
|
|
18
|
+
tplctx = new(*args)
|
|
19
19
|
@template.result(tplctx.get_binding)
|
|
20
20
|
end
|
|
21
21
|
|
|
@@ -29,14 +29,14 @@ class Interscript::Visualize
|
|
|
29
29
|
attr_reader :map
|
|
30
30
|
|
|
31
31
|
def render_stage(map_name, stage)
|
|
32
|
-
Stage.(map_name, stage)
|
|
32
|
+
Stage.call(map_name, stage)
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
class Group < self
|
|
37
37
|
def_template :group
|
|
38
38
|
|
|
39
|
-
def initialize(map, group, style=nil)
|
|
39
|
+
def initialize(map, group, style = nil)
|
|
40
40
|
@map = map
|
|
41
41
|
@group = group
|
|
42
42
|
@style = style
|
|
@@ -44,18 +44,18 @@ class Interscript::Visualize
|
|
|
44
44
|
|
|
45
45
|
attr_reader :map, :group
|
|
46
46
|
|
|
47
|
-
def render_group(map, group, style=nil)
|
|
48
|
-
Group.(map, group, style)
|
|
47
|
+
def render_group(map, group, style = nil)
|
|
48
|
+
Group.call(map, group, style)
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
class Stage < Group
|
|
53
53
|
def_template :group
|
|
54
54
|
|
|
55
|
-
def initialize(map_name, stage_name, style=nil)
|
|
55
|
+
def initialize(map_name, stage_name, style = nil)
|
|
56
56
|
@map = Interscript.parse(map_name)
|
|
57
57
|
@group = map.stages[stage_name]
|
|
58
58
|
@style = style
|
|
59
59
|
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
60
|
+
end
|
|
61
|
+
end
|
data/lib/interscript.rb
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
|
-
require "interscript/version"
|
|
2
1
|
require "yaml"
|
|
3
2
|
|
|
4
3
|
module Interscript
|
|
4
|
+
# Autoload all internal library code. No require_relative or internal
|
|
5
|
+
# require calls — everything loads lazily via autoload (OCP: adding a
|
|
6
|
+
# new child module = adding one autoload line here).
|
|
7
|
+
autoload :VERSION, "interscript/version"
|
|
8
|
+
autoload :Stdlib, "interscript/stdlib"
|
|
9
|
+
autoload :Compiler, "interscript/compiler"
|
|
10
|
+
autoload :Interpreter, "interscript/interpreter"
|
|
11
|
+
autoload :DSL, "interscript/dsl"
|
|
12
|
+
autoload :Node, "interscript/node"
|
|
13
|
+
autoload :Detector, "interscript/detector"
|
|
14
|
+
autoload :Isc, "interscript/isc"
|
|
15
|
+
autoload :ML, "interscript/ml"
|
|
16
|
+
|
|
5
17
|
# An error caused by a lack of some map
|
|
6
18
|
class MapNotFoundError < StandardError; end
|
|
7
19
|
# An error caused by a missing dependency
|
|
@@ -13,15 +25,15 @@ module Interscript
|
|
|
13
25
|
|
|
14
26
|
class << self
|
|
15
27
|
def load_path
|
|
16
|
-
@load_path ||= [
|
|
28
|
+
@load_path ||= [".", *Interscript.map_locations]
|
|
17
29
|
end
|
|
18
30
|
|
|
19
31
|
def locate map_name
|
|
20
32
|
map_name = map_aliases[map_name] if map_aliases.include? map_name
|
|
21
33
|
|
|
22
34
|
load_path.each do |i|
|
|
23
|
-
#
|
|
24
|
-
["iml", "imp"].each do |ext|
|
|
35
|
+
# isc: new ISC format, iml: library, imp: legacy Ruby DSL
|
|
36
|
+
["isc", "iml", "imp"].each do |ext|
|
|
25
37
|
f = File.expand_path("#{map_name}.#{ext}", i)
|
|
26
38
|
return f if File.exist?(f)
|
|
27
39
|
end
|
|
@@ -33,26 +45,26 @@ module Interscript
|
|
|
33
45
|
Interscript::DSL.parse(map_name)
|
|
34
46
|
end
|
|
35
47
|
|
|
36
|
-
def load(system_code, maps={}, compiler: Interscript::Interpreter)
|
|
37
|
-
maps[[system_code, compiler.name]] ||= compiler.(system_code)
|
|
48
|
+
def load(system_code, maps = {}, compiler: Interscript::Interpreter)
|
|
49
|
+
maps[[system_code, compiler.name]] ||= compiler.call(system_code)
|
|
38
50
|
end
|
|
39
51
|
|
|
40
52
|
# Transliterates the string.
|
|
41
|
-
def transliterate(system_code, string, maps={}, compiler: Interscript::Interpreter)
|
|
53
|
+
def transliterate(system_code, string, maps = {}, compiler: Interscript::Interpreter)
|
|
42
54
|
# The current best implementation is Interpreter
|
|
43
|
-
load(system_code, maps, compiler: compiler).(string)
|
|
55
|
+
load(system_code, maps, compiler: compiler).call(string)
|
|
44
56
|
end
|
|
45
57
|
|
|
46
58
|
# Gives each possible value of the transliteration.
|
|
47
|
-
def transliterate_each(system_code, string, maps={}, &block)
|
|
48
|
-
load(system_code, maps).(string, each: true, &block)
|
|
59
|
+
def transliterate_each(system_code, string, maps = {}, &block)
|
|
60
|
+
load(system_code, maps).call(string, each: true, &block)
|
|
49
61
|
end
|
|
50
62
|
|
|
51
|
-
def transliterate_file(system_code, input_file, output_file, maps={})
|
|
63
|
+
def transliterate_file(system_code, input_file, output_file, maps = {}, compiler: Interscript::Interpreter)
|
|
52
64
|
input = File.read(input_file)
|
|
53
|
-
output = transliterate(system_code, input, maps)
|
|
65
|
+
output = transliterate(system_code, input, maps, compiler: compiler)
|
|
54
66
|
|
|
55
|
-
File.open(output_file,
|
|
67
|
+
File.open(output_file, "w") do |f|
|
|
56
68
|
f.puts(output)
|
|
57
69
|
end
|
|
58
70
|
|
|
@@ -67,17 +79,17 @@ module Interscript
|
|
|
67
79
|
def detect(source, destination, **kwargs)
|
|
68
80
|
detector = Detector.new
|
|
69
81
|
detector.set_from_kwargs(**kwargs)
|
|
70
|
-
detector.(source, destination)
|
|
82
|
+
detector.call(source, destination)
|
|
71
83
|
end
|
|
72
84
|
|
|
73
85
|
def map_gems
|
|
74
|
-
@map_gems ||= Gem.find_latest_files(
|
|
86
|
+
@map_gems ||= Gem.find_latest_files("interscript-maps.yaml").map do |i|
|
|
75
87
|
[i, YAML.load_file(i)]
|
|
76
88
|
end.to_h
|
|
77
89
|
end
|
|
78
90
|
|
|
79
91
|
def map_locations
|
|
80
|
-
@map_locations ||= map_gems.map do |i,v|
|
|
92
|
+
@map_locations ||= map_gems.map do |i, v|
|
|
81
93
|
paths = v["paths"].dup
|
|
82
94
|
paths += v["staging"] if ENV["INTERSCRIPT_STAGING"] && v["staging"]
|
|
83
95
|
|
|
@@ -88,15 +100,15 @@ module Interscript
|
|
|
88
100
|
end
|
|
89
101
|
|
|
90
102
|
def secryst_index_locations
|
|
91
|
-
@secryst_index_locations ||= map_gems.map do |i,v|
|
|
103
|
+
@secryst_index_locations ||= map_gems.map do |i, v|
|
|
92
104
|
v["secryst-models"]
|
|
93
105
|
end.compact.flatten
|
|
94
106
|
end
|
|
95
107
|
|
|
96
108
|
def rababa_configs
|
|
97
|
-
@rababa_configs ||= map_gems.map do |i,v|
|
|
109
|
+
@rababa_configs ||= map_gems.map do |i, v|
|
|
98
110
|
v["rababa-configs"]
|
|
99
|
-
end.compact.inject({}) do |a,b|
|
|
111
|
+
end.compact.inject({}) do |a, b|
|
|
100
112
|
a.merge(b)
|
|
101
113
|
end
|
|
102
114
|
end
|
|
@@ -104,8 +116,8 @@ module Interscript
|
|
|
104
116
|
# This code is borrowed from Secryst and should end up in Rababa, but for now,
|
|
105
117
|
# let's keep it here.
|
|
106
118
|
def rababa_provision(model_name, model_uri)
|
|
107
|
-
require
|
|
108
|
-
require
|
|
119
|
+
require "fileutils"
|
|
120
|
+
require "open-uri"
|
|
109
121
|
|
|
110
122
|
# We provision the environment in the following way:
|
|
111
123
|
# First, we try the RABABA_DATA environment variable. If that's available,
|
|
@@ -125,29 +137,30 @@ module Interscript
|
|
|
125
137
|
|
|
126
138
|
([ENV["RABABA_DATA"]] + possible_paths).compact.each do |path|
|
|
127
139
|
FileUtils.mkdir_p(path)
|
|
128
|
-
write_path = path
|
|
140
|
+
write_path = path
|
|
141
|
+
break
|
|
129
142
|
rescue
|
|
130
143
|
end
|
|
131
|
-
|
|
144
|
+
|
|
132
145
|
raise ExternalUtilError, "Can't find a writable path for Rababa. Consider setting a RABABA_DATA environment variable" unless write_path
|
|
133
146
|
|
|
134
147
|
model_path = "#{write_path}/model-#{model_name}.onnx"
|
|
135
148
|
|
|
136
149
|
# Redownload every hour
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
File.
|
|
142
|
-
return model_path
|
|
150
|
+
unless File.exist?(model_path) && File.mtime(model_path) + 3600 >= Time.now
|
|
151
|
+
# standard:disable Security/Open (fetches a fixed interscript-hosted model URI, not user input)
|
|
152
|
+
data = URI.open(model_uri, encoding: "BINARY").read
|
|
153
|
+
# standard:enable Security/Open
|
|
154
|
+
File.binwrite(model_path, data)
|
|
143
155
|
end
|
|
156
|
+
model_path
|
|
144
157
|
end
|
|
145
158
|
|
|
146
159
|
def map_aliases
|
|
147
160
|
return @map_aliases if @map_aliases
|
|
148
161
|
|
|
149
162
|
@map_aliases = {}
|
|
150
|
-
map_gems.each do |i,v|
|
|
163
|
+
map_gems.each do |i, v|
|
|
151
164
|
(v["aliases"] || {}).each do |code, value|
|
|
152
165
|
value.each do |al, map|
|
|
153
166
|
@map_aliases[al] = map["alias_to"]
|
|
@@ -160,20 +173,31 @@ module Interscript
|
|
|
160
173
|
# List all possible maps to use
|
|
161
174
|
def maps(basename: true, load_path: false, select: "*", libraries: false)
|
|
162
175
|
paths = load_path ? Interscript.load_path : Interscript.map_locations
|
|
163
|
-
|
|
176
|
+
# isc: the ISC corpus (systems and libraries), imp: legacy Ruby
|
|
177
|
+
# DSL systems, iml: legacy library format. ISC wins when a name
|
|
178
|
+
# exists in both.
|
|
179
|
+
exts = libraries ? %w[isc iml] : %w[isc imp]
|
|
164
180
|
|
|
165
|
-
|
|
181
|
+
files = paths.flat_map { |i| exts.flat_map { |ext| Dir["#{i}/#{select}.#{ext}"] } }
|
|
182
|
+
# The maps corpus keeps dependency libraries in a libs/ directory;
|
|
183
|
+
# only the libraries: query sees them.
|
|
184
|
+
libs, systems = files.partition { |j| j.include?("/libs/") }
|
|
185
|
+
picked = (libraries ? libs : systems)
|
|
186
|
+
.group_by { |j| File.basename(j, ".*") }
|
|
187
|
+
.values
|
|
188
|
+
.map(&:first)
|
|
189
|
+
.sort
|
|
166
190
|
|
|
167
|
-
basename ?
|
|
191
|
+
basename ? picked.map { |j| File.basename(j, ".*") } : picked
|
|
168
192
|
end
|
|
169
193
|
|
|
170
194
|
# Removes the excluded maps for a given compiler and RUBY_PLATFORM.
|
|
171
195
|
# To be used by tests
|
|
172
196
|
# and builders. It uses the `skip` directive in interscript-maps.yaml
|
|
173
197
|
def exclude_maps(maps, compiler:, platform: true)
|
|
174
|
-
map_gems.each do |i,v|
|
|
198
|
+
map_gems.each do |i, v|
|
|
175
199
|
[compiler.name, (Gem::Platform.local.os if platform)].compact.each do |name|
|
|
176
|
-
skips = v.dig(
|
|
200
|
+
skips = v.dig("skip", name) || []
|
|
177
201
|
skips.each do |skip|
|
|
178
202
|
skip_re = /#{Regexp.escape(skip).gsub("\\*", ".*?")}/
|
|
179
203
|
maps = maps.grep_v(skip_re)
|
|
@@ -184,13 +208,3 @@ module Interscript
|
|
|
184
208
|
end
|
|
185
209
|
end
|
|
186
210
|
end
|
|
187
|
-
|
|
188
|
-
require 'interscript/stdlib'
|
|
189
|
-
|
|
190
|
-
require "interscript/compiler"
|
|
191
|
-
require "interscript/interpreter"
|
|
192
|
-
|
|
193
|
-
require 'interscript/dsl'
|
|
194
|
-
require 'interscript/node'
|
|
195
|
-
|
|
196
|
-
require 'interscript/detector'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: interscript
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-10-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 2.
|
|
33
|
+
version: '2.5'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 2.
|
|
40
|
+
version: '2.5'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: text
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -52,35 +52,40 @@ dependencies:
|
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
|
-
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: parsanol
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 1.3.61
|
|
62
|
+
- - "<"
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
version: '2'
|
|
65
|
+
type: :runtime
|
|
66
|
+
prerelease: false
|
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
68
|
+
requirements:
|
|
69
|
+
- - ">="
|
|
70
|
+
- !ruby/object:Gem::Version
|
|
71
|
+
version: 1.3.61
|
|
72
|
+
- - "<"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '2'
|
|
75
|
+
description: Interoperable script conversion systems.
|
|
56
76
|
email:
|
|
57
77
|
- open.source@ribose.com
|
|
58
78
|
executables:
|
|
79
|
+
- codemod-imp-to-isc
|
|
80
|
+
- diagnose_parse_failures
|
|
59
81
|
- interscript
|
|
82
|
+
- verify_isc_deep
|
|
83
|
+
- verify_isc_equivalence
|
|
60
84
|
extensions: []
|
|
61
85
|
extra_rdoc_files: []
|
|
62
86
|
files:
|
|
63
|
-
- ".github/workflows/assets.yml"
|
|
64
|
-
- ".github/workflows/rake.yml"
|
|
65
|
-
- ".github/workflows/release.yml"
|
|
66
|
-
- ".gitignore"
|
|
67
|
-
- ".rspec"
|
|
68
|
-
- Gemfile
|
|
69
87
|
- LICENSE.adoc
|
|
70
88
|
- README.md
|
|
71
|
-
- Rakefile
|
|
72
|
-
- bin/console
|
|
73
|
-
- bin/interscript
|
|
74
|
-
- bin/maps_analyze_staging
|
|
75
|
-
- bin/maps_debug_compilers
|
|
76
|
-
- bin/maps_debug_ordering
|
|
77
|
-
- bin/maps_debug_ruby_compile
|
|
78
|
-
- bin/maps_debug_step_by_step
|
|
79
|
-
- bin/maps_optimize_order
|
|
80
|
-
- bin/maps_v1_analyze_regexps
|
|
81
|
-
- bin/maps_v1_to_v2
|
|
82
|
-
- bin/set_version
|
|
83
|
-
- bin/setup
|
|
84
89
|
- docs/demo/20191118-interscript-demo-cast.gif
|
|
85
90
|
- docs/samples/ara-Arab.txt
|
|
86
91
|
- docs/samples/chn-Hant.txt
|
|
@@ -95,12 +100,18 @@ files:
|
|
|
95
100
|
- docs/samples/rus-Cyrl.txt
|
|
96
101
|
- docs/samples/thai.txt
|
|
97
102
|
- docs/utils/regexp_examples.txt
|
|
103
|
+
- exe/codemod-imp-to-isc
|
|
104
|
+
- exe/diagnose_parse_failures
|
|
98
105
|
- exe/interscript
|
|
106
|
+
- exe/verify_isc_deep
|
|
107
|
+
- exe/verify_isc_equivalence
|
|
99
108
|
- interscript.gemspec
|
|
100
109
|
- lib/interscript.rb
|
|
101
110
|
- lib/interscript/command.rb
|
|
102
111
|
- lib/interscript/compiler.rb
|
|
103
112
|
- lib/interscript/compiler/javascript.rb
|
|
113
|
+
- lib/interscript/compiler/json_ir.rb
|
|
114
|
+
- lib/interscript/compiler/python.rb
|
|
104
115
|
- lib/interscript/compiler/ruby.rb
|
|
105
116
|
- lib/interscript/detector.rb
|
|
106
117
|
- lib/interscript/dsl.rb
|
|
@@ -114,6 +125,47 @@ files:
|
|
|
114
125
|
- lib/interscript/dsl/symbol_mm.rb
|
|
115
126
|
- lib/interscript/dsl/tests.rb
|
|
116
127
|
- lib/interscript/interpreter.rb
|
|
128
|
+
- lib/interscript/isc.rb
|
|
129
|
+
- lib/interscript/isc/codemod.rb
|
|
130
|
+
- lib/interscript/isc/document_builder.rb
|
|
131
|
+
- lib/interscript/isc/generator.rb
|
|
132
|
+
- lib/interscript/isc/grammar.rb
|
|
133
|
+
- lib/interscript/isc/grammar/concerns.rb
|
|
134
|
+
- lib/interscript/isc/grammar/concerns/aliases.rb
|
|
135
|
+
- lib/interscript/isc/grammar/concerns/dependencies.rb
|
|
136
|
+
- lib/interscript/isc/grammar/concerns/items.rb
|
|
137
|
+
- lib/interscript/isc/grammar/concerns/metadata.rb
|
|
138
|
+
- lib/interscript/isc/grammar/concerns/primitives.rb
|
|
139
|
+
- lib/interscript/isc/grammar/concerns/stages.rb
|
|
140
|
+
- lib/interscript/isc/grammar/concerns/system.rb
|
|
141
|
+
- lib/interscript/isc/grammar/concerns/tests.rb
|
|
142
|
+
- lib/interscript/isc/grammar/core.rb
|
|
143
|
+
- lib/interscript/isc/grammar/isc.artifact.json
|
|
144
|
+
- lib/interscript/isc/grammar/isc.parg
|
|
145
|
+
- lib/interscript/isc/items.rb
|
|
146
|
+
- lib/interscript/isc/model.rb
|
|
147
|
+
- lib/interscript/isc/model/alias.rb
|
|
148
|
+
- lib/interscript/isc/model/constraint.rb
|
|
149
|
+
- lib/interscript/isc/model/dependency.rb
|
|
150
|
+
- lib/interscript/isc/model/document.rb
|
|
151
|
+
- lib/interscript/isc/model/item.rb
|
|
152
|
+
- lib/interscript/isc/model/rule.rb
|
|
153
|
+
- lib/interscript/isc/model/stage.rb
|
|
154
|
+
- lib/interscript/isc/model/stage_item.rb
|
|
155
|
+
- lib/interscript/isc/model/test.rb
|
|
156
|
+
- lib/interscript/isc/node_adapter.rb
|
|
157
|
+
- lib/interscript/isc/normalizer.rb
|
|
158
|
+
- lib/interscript/isc/parser.rb
|
|
159
|
+
- lib/interscript/isc/serializer.rb
|
|
160
|
+
- lib/interscript/isc/transform.rb
|
|
161
|
+
- lib/interscript/isc/yaml_bridge.rb
|
|
162
|
+
- lib/interscript/ml.rb
|
|
163
|
+
- lib/interscript/ml/byt5_onnx.rb
|
|
164
|
+
- lib/interscript/ml/imf.rb
|
|
165
|
+
- lib/interscript/ml/model.rb
|
|
166
|
+
- lib/interscript/ml/provisioning.rb
|
|
167
|
+
- lib/interscript/ml/translator.rb
|
|
168
|
+
- lib/interscript/ml/vocab.rb
|
|
117
169
|
- lib/interscript/node.rb
|
|
118
170
|
- lib/interscript/node/alias_def.rb
|
|
119
171
|
- lib/interscript/node/dependency.rb
|
|
@@ -137,6 +189,9 @@ files:
|
|
|
137
189
|
- lib/interscript/node/stage.rb
|
|
138
190
|
- lib/interscript/node/tests.rb
|
|
139
191
|
- lib/interscript/stdlib.rb
|
|
192
|
+
- lib/interscript/stdlib/functions.rb
|
|
193
|
+
- lib/interscript/stdlib/functions/rababa_adapter.rb
|
|
194
|
+
- lib/interscript/stdlib/functions/secryst_adapter.rb
|
|
140
195
|
- lib/interscript/utils/helpers.rb
|
|
141
196
|
- lib/interscript/utils/regexp_converter.rb
|
|
142
197
|
- lib/interscript/version.rb
|
|
@@ -145,14 +200,16 @@ files:
|
|
|
145
200
|
- lib/interscript/visualize/json.rb
|
|
146
201
|
- lib/interscript/visualize/map.html.erb
|
|
147
202
|
- lib/interscript/visualize/nodes.rb
|
|
148
|
-
- requirements.txt
|
|
149
203
|
homepage: https://www.interscript.com
|
|
150
204
|
licenses:
|
|
151
205
|
- BSD-2-Clause
|
|
152
206
|
metadata:
|
|
153
207
|
homepage_uri: https://www.interscript.com
|
|
154
|
-
source_code_uri: https://github.com/interscript/interscript
|
|
155
|
-
|
|
208
|
+
source_code_uri: https://github.com/interscript/interscript-ruby
|
|
209
|
+
changelog_uri: https://github.com/interscript/interscript-ruby/releases
|
|
210
|
+
bug_tracker_uri: https://github.com/interscript/interscript-ruby/issues
|
|
211
|
+
rubygems_mfa_required: 'true'
|
|
212
|
+
post_install_message:
|
|
156
213
|
rdoc_options: []
|
|
157
214
|
require_paths:
|
|
158
215
|
- lib
|
|
@@ -160,15 +217,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
160
217
|
requirements:
|
|
161
218
|
- - ">="
|
|
162
219
|
- !ruby/object:Gem::Version
|
|
163
|
-
version:
|
|
220
|
+
version: 3.3.0
|
|
164
221
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
222
|
requirements:
|
|
166
223
|
- - ">="
|
|
167
224
|
- !ruby/object:Gem::Version
|
|
168
225
|
version: '0'
|
|
169
226
|
requirements: []
|
|
170
|
-
rubygems_version: 3.
|
|
171
|
-
signing_key:
|
|
227
|
+
rubygems_version: 3.5.22
|
|
228
|
+
signing_key:
|
|
172
229
|
specification_version: 4
|
|
173
230
|
summary: Interoperable script conversion systems
|
|
174
231
|
test_files: []
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
name: release-assets
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v*'
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
assets:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
env:
|
|
13
|
-
BUNDLE_WITHOUT: "secryst:jsexec"
|
|
14
|
-
SKIP_JS: "1"
|
|
15
|
-
steps:
|
|
16
|
-
- name: Checkout repository
|
|
17
|
-
uses: actions/checkout@v2
|
|
18
|
-
with:
|
|
19
|
-
repository: interscript/interscript
|
|
20
|
-
|
|
21
|
-
- name: Run bootstrap script
|
|
22
|
-
run: ruby bootstrap.rb
|
|
23
|
-
|
|
24
|
-
- name: Use Ruby
|
|
25
|
-
uses: ruby/setup-ruby@v1
|
|
26
|
-
with:
|
|
27
|
-
ruby-version: "3.0"
|
|
28
|
-
bundler-cache: true
|
|
29
|
-
|
|
30
|
-
- name: Install bundle
|
|
31
|
-
working-directory: ./ruby
|
|
32
|
-
run: bundle install --jobs 4 --retry 3 --with jsexec --without secryst
|
|
33
|
-
|
|
34
|
-
- name: Generate visualization json
|
|
35
|
-
working-directory: ./ruby
|
|
36
|
-
run: bundle exec rake generate_visualization_json
|
|
37
|
-
|
|
38
|
-
- name: Archive json files from the previous step
|
|
39
|
-
uses: thedoctor0/zip-release@master
|
|
40
|
-
with:
|
|
41
|
-
filename: 'vis_json.zip'
|
|
42
|
-
path: ./vis_json/*.json
|
|
43
|
-
directory: ./ruby/
|
|
44
|
-
exclusions: '*.git*'
|
|
45
|
-
type: zip
|
|
46
|
-
|
|
47
|
-
- name: Upload artifacts
|
|
48
|
-
id: upload_vis_json
|
|
49
|
-
uses: svenstaro/upload-release-action@2.2.1
|
|
50
|
-
with:
|
|
51
|
-
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
52
|
-
file: ruby/vis_json.zip
|
|
53
|
-
file_glob: true
|
|
54
|
-
tag: ${{ github.ref }}
|
|
55
|
-
overwrite: true
|
|
56
|
-
|
|
57
|
-
- name: Generate metadata
|
|
58
|
-
working-directory: ./ruby
|
|
59
|
-
run: bundle exec rake generate_metadata_json
|
|
60
|
-
|
|
61
|
-
- name: Archive metadata from the previous step
|
|
62
|
-
uses: thedoctor0/zip-release@master
|
|
63
|
-
with:
|
|
64
|
-
filename: 'metadata.zip'
|
|
65
|
-
path: ./metadata.json
|
|
66
|
-
directory: ./ruby/
|
|
67
|
-
exclusions: '*.git*'
|
|
68
|
-
type: zip
|
|
69
|
-
|
|
70
|
-
- name: Upload metadata
|
|
71
|
-
id: upload_metadata
|
|
72
|
-
uses: svenstaro/upload-release-action@2.2.1
|
|
73
|
-
with:
|
|
74
|
-
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
75
|
-
file: ruby/metadata.zip
|
|
76
|
-
asset_name: metadata.json.zip
|
|
77
|
-
tag: ${{ github.ref }}
|
|
78
|
-
overwrite: true
|
|
79
|
-
|
|
80
|
-
- name: Output link
|
|
81
|
-
run: |
|
|
82
|
-
echo ${{ steps.upload_vis_json.outputs.browser_download_url }}
|
|
83
|
-
echo ${{ steps.upload_metadata.outputs.browser_download_url }}
|
|
84
|
-
|
|
85
|
-
# - name: Trigger deploy at interscript.org
|
|
86
|
-
# uses: peter-evans/repository-dispatch@v1
|
|
87
|
-
# with:
|
|
88
|
-
# token: ${{ secrets.INTERSCRIPT_CI_TOKEN }}
|
|
89
|
-
# repository: interscript/interscript.org
|
|
90
|
-
# event-type: ${{ github.repository }}
|
|
91
|
-
# client-payload: '{ "ref": "${{ github.ref }}" }'
|
data/.github/workflows/rake.yml
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
name: rake
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main, v*, ci-check ]
|
|
6
|
-
tags: [ v* ]
|
|
7
|
-
pull_request:
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
rspec:
|
|
11
|
-
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
|
12
|
-
runs-on: ${{ matrix.os }}
|
|
13
|
-
continue-on-error: true
|
|
14
|
-
strategy:
|
|
15
|
-
fail-fast: false
|
|
16
|
-
matrix:
|
|
17
|
-
ruby: [ "3.0", 2.7, 2.6 ]
|
|
18
|
-
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
|
19
|
-
include:
|
|
20
|
-
- ruby: "3.1"
|
|
21
|
-
os: 'ubuntu-latest'
|
|
22
|
-
- ruby: "3.2"
|
|
23
|
-
os: 'ubuntu-latest'
|
|
24
|
-
- ruby: "3.1"
|
|
25
|
-
os: 'macos-latest'
|
|
26
|
-
- ruby: "3.2"
|
|
27
|
-
os: 'macos-latest'
|
|
28
|
-
|
|
29
|
-
env:
|
|
30
|
-
BUNDLE_WITHOUT: "secryst"
|
|
31
|
-
SKIP_JS: "1"
|
|
32
|
-
|
|
33
|
-
steps:
|
|
34
|
-
- name: Checkout repository
|
|
35
|
-
uses: actions/checkout@v2
|
|
36
|
-
with:
|
|
37
|
-
repository: interscript/interscript
|
|
38
|
-
|
|
39
|
-
- name: Run bootstrap script
|
|
40
|
-
run: ruby bootstrap.rb
|
|
41
|
-
|
|
42
|
-
- name: Use Ruby
|
|
43
|
-
uses: ruby/setup-ruby@v1
|
|
44
|
-
with:
|
|
45
|
-
ruby-version: ${{ matrix.ruby }}
|
|
46
|
-
bundler-cache: true
|
|
47
|
-
|
|
48
|
-
- name: Run RSpecs
|
|
49
|
-
working-directory: ./ruby
|
|
50
|
-
run: |
|
|
51
|
-
bundle install --with=jsexec
|
|
52
|
-
bundle exec rspec -f f
|