expressir 2.1.6 → 2.1.7
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/lib/expressir/express/formatter.rb +11 -6
- data/lib/expressir/express/parser.rb +10 -4
- data/lib/expressir/express/visitor.rb +3 -1
- data/lib/expressir/liquid/expressions/function_call_drop.rb +1 -1
- data/lib/expressir/model/expressions/function_call.rb +1 -1
- data/lib/expressir/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a6581a76699cdae03a6f241de18d11d2e203b05217cde67c11b3c8eff2a46471
|
|
4
|
+
data.tar.gz: eb4f57c1ca685146d1df2c6cc38ef8564399f95bd90b90d42a00a4577b1bc283
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a5ab59cc6adf7a3062cb862641bdbd31e3540892c7ddc07b495edc082a2cba09e2a20701d7699e01971bb49dc333ec9905b74a43ee1e6d8a583b5a3215728cc7
|
|
7
|
+
data.tar.gz: df94efe4eacc86b5fea8d313737031dcb022552c748aca9b57ee5574305e68e560a4561f32293302afa528cfb7c7e4c52de2e820d375886c77459bc8b917cded
|
|
@@ -873,12 +873,17 @@ module Expressir
|
|
|
873
873
|
end
|
|
874
874
|
|
|
875
875
|
def format_expressions_function_call(node)
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
876
|
+
params = if node.parameters.nil?
|
|
877
|
+
[]
|
|
878
|
+
else
|
|
879
|
+
[
|
|
880
|
+
"(",
|
|
881
|
+
node.parameters.map { |x| format(x) }.join(", "),
|
|
882
|
+
")",
|
|
883
|
+
]
|
|
884
|
+
end
|
|
885
|
+
|
|
886
|
+
[format(node.function), params].flatten.join("")
|
|
882
887
|
end
|
|
883
888
|
|
|
884
889
|
def format_expressions_interval(node)
|
|
@@ -50,7 +50,7 @@ module Expressir
|
|
|
50
50
|
end
|
|
51
51
|
rule(:abstractSupertype) { (tABSTRACT >> tSUPERTYPE >> op_delim).as(:abstractSupertype) }
|
|
52
52
|
rule(:actualParameterList) do
|
|
53
|
-
(op_leftparen >> (parameter >> (op_comma >> parameter).repeat).as(:listOf_parameter) >> op_rightparen)
|
|
53
|
+
(op_leftparen >> (parameter >> (op_comma >> parameter).repeat).as(:listOf_parameter).maybe >> op_rightparen)
|
|
54
54
|
.as(:actualParameterList)
|
|
55
55
|
end
|
|
56
56
|
rule(:addLikeOp) { (op_plus | op_minus | tOR | tXOR).as(:addLikeOp) }
|
|
@@ -340,7 +340,7 @@ module Expressir
|
|
|
340
340
|
rule(:simpleExpression) { (term >> (addLikeOp.as(:operator) >> term).as(:item).repeat.as(:rhs)).as(:simpleExpression) }
|
|
341
341
|
rule(:simpleFactor) do
|
|
342
342
|
(
|
|
343
|
-
simpleFactorExpression | aggregateInitializer | entityConstructor | interval | queryExpression |
|
|
343
|
+
simpleFactorExpression | aggregateInitializer | entityConstructor | interval | queryExpression | stringLiteral |
|
|
344
344
|
simpleFactorUnaryExpression | enumerationReference
|
|
345
345
|
).as(:simpleFactor)
|
|
346
346
|
end
|
|
@@ -424,9 +424,15 @@ module Expressir
|
|
|
424
424
|
# @param [Boolean] skip_references skip resolving references
|
|
425
425
|
# @param [Boolean] include_source attach original source code to model elements
|
|
426
426
|
# @return [Model::Repository]
|
|
427
|
-
def self.from_file(file, skip_references: nil, include_source: nil)
|
|
427
|
+
def self.from_file(file, skip_references: nil, include_source: nil) # rubocop:disable Metrics/AbcSize
|
|
428
428
|
source = File.read file
|
|
429
|
-
|
|
429
|
+
|
|
430
|
+
begin
|
|
431
|
+
ast = Parser.new.parse source
|
|
432
|
+
rescue Parslet::ParseFailed => e
|
|
433
|
+
puts "Parslet::ParseFailed:"
|
|
434
|
+
puts e.parse_failure_cause.ascii_tree
|
|
435
|
+
end
|
|
430
436
|
|
|
431
437
|
visitor = Expressir::Express::Visitor.new(source, include_source: include_source)
|
|
432
438
|
transformed = visitor.visit_ast ast, :top
|
|
@@ -204,6 +204,8 @@ module Expressir
|
|
|
204
204
|
end
|
|
205
205
|
|
|
206
206
|
def node_find(node, path)
|
|
207
|
+
return nil if node.is_a?(String)
|
|
208
|
+
|
|
207
209
|
if node.is_a?(Enumerable)
|
|
208
210
|
node.find { |item| item.find(path) }
|
|
209
211
|
else
|
|
@@ -1062,7 +1064,7 @@ module Expressir
|
|
|
1062
1064
|
ctx__actual_parameter_list = ctx.actual_parameter_list
|
|
1063
1065
|
|
|
1064
1066
|
function = visit_if(ctx__built_in_function || ctx__function_ref)
|
|
1065
|
-
parameters = visit_if(ctx__actual_parameter_list,
|
|
1067
|
+
parameters = visit_if(ctx__actual_parameter_list, nil)
|
|
1066
1068
|
|
|
1067
1069
|
Model::Expressions::FunctionCall.new(
|
|
1068
1070
|
function: function,
|
data/lib/expressir/version.rb
CHANGED
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.1.
|
|
4
|
+
version: 2.1.7
|
|
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: 2025-01-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: liquid
|
|
@@ -261,7 +261,7 @@ metadata:
|
|
|
261
261
|
source_code_uri: https://github.com/lutaml/expressir
|
|
262
262
|
changelog_uri: https://github.com/lutaml/expressir/releases
|
|
263
263
|
rubygems_mfa_required: 'true'
|
|
264
|
-
post_install_message:
|
|
264
|
+
post_install_message:
|
|
265
265
|
rdoc_options: []
|
|
266
266
|
require_paths:
|
|
267
267
|
- lib
|
|
@@ -277,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
277
277
|
version: '0'
|
|
278
278
|
requirements: []
|
|
279
279
|
rubygems_version: 3.3.27
|
|
280
|
-
signing_key:
|
|
280
|
+
signing_key:
|
|
281
281
|
specification_version: 4
|
|
282
282
|
summary: EXPRESS parser and toolkit for Ruby
|
|
283
283
|
test_files: []
|