skeem 0.2.17 → 0.2.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec02d8c62bd2fa45f27d50caa7a63edb88ad8629f8e627538d0119fe1950a8d4
4
- data.tar.gz: 9e69db52280935a6d2548350df11744776755201030ed892d1c675717afc0411
3
+ metadata.gz: 8031a69d8a362bbe17e4dabe5fb6ced12ff4ca70f2d6577f5ec13ff81b8bd3ad
4
+ data.tar.gz: 17f74953cc15cd97d84ede36c17f9d4e97873710d8c94ecfdb50e76019cf3bd2
5
5
  SHA512:
6
- metadata.gz: 5f5bf56b406239eb4231dd5368fd26ee024f88d8809c777df381db9de65a5b1cf89c3fc138d8cd896fbad8d5407be165d124de08713bce9b9ff926140d123a1b
7
- data.tar.gz: 0ae82878f00bb53b82679a9d6d838bace130e8a4b1f218fbb25d64c0d9fc67b302f5de1b90ca1e451ca4e406c48db7a6080d8d2f8785e9bae86c544f0643839e
6
+ metadata.gz: 65521fe50624af6e01bacb890ae3b1ddf9f6acb5a1a3a31fd5cfb1b20143101c0aad531a1f3773b50585a6bed8a18380897f47786ecfdc3c53140e7686e17876
7
+ data.tar.gz: 3a5d8cac363099882da772135498df5c24449eedc6831a2fe09f840764afd12d22ad4fa74589dd92309875407cf77a334fc704d6914a93988debfd65b31a2d35
data/.rubocop.yml CHANGED
@@ -2,6 +2,16 @@ AllCops:
2
2
  Exclude:
3
3
  - 'exp/**/*'
4
4
 
5
+ Gemspec/DateAssignment:
6
+ Enabled: true
7
+
8
+ Layout/ArgumentAlignment:
9
+ Enabled: false
10
+
11
+ Layout/ArrayAlignment:
12
+ Enabled: true
13
+ EnforcedStyle: with_fixed_indentation
14
+
5
15
  Layout/CaseIndentation:
6
16
  Enabled: false
7
17
 
@@ -24,6 +34,12 @@ Layout/EndOfLine:
24
34
  Enabled: true
25
35
  EnforcedStyle: lf
26
36
 
37
+ Layout/FirstArgumentIndentation:
38
+ Enabled: false
39
+
40
+ Layout/HashAlignment:
41
+ Enabled: false
42
+
27
43
  Layout/IndentationWidth:
28
44
  Enabled: false
29
45
 
@@ -33,18 +49,28 @@ Layout/IndentationConsistency:
33
49
  Layout/HeredocIndentation:
34
50
  Enabled: false
35
51
 
52
+ Layout/LineEndStringConcatenationIndentation:
53
+ Enabled: true
54
+
36
55
  Layout/MultilineHashBraceLayout:
37
56
  Enabled: true
38
57
 
58
+ Layout/MultilineMethodCallBraceLayout:
59
+ Enabled: true
60
+ EnforcedStyle: same_line
61
+
39
62
  Layout/SpaceAroundOperators:
40
63
  Enabled: true
41
64
 
65
+ Layout/SpaceBeforeBrackets:
66
+ Enabled: true
67
+
42
68
  Layout/SpaceInsideParens:
43
69
  Enabled: true
44
70
 
45
71
  Layout/IndentationStyle:
46
72
  Enabled: true
47
-
73
+
48
74
  Layout/SpaceAroundMethodCallOperator:
49
75
  Enabled: true
50
76
 
@@ -54,18 +80,72 @@ Layout/TrailingEmptyLines:
54
80
  Layout/TrailingWhitespace:
55
81
  Enabled: true
56
82
 
83
+ Lint/AmbiguousAssignment:
84
+ Enabled: true
85
+
86
+ Lint/AmbiguousRange:
87
+ Enabled: true
88
+
89
+ Lint/DeprecatedConstants:
90
+ Enabled: true
91
+
92
+ Lint/DuplicateBranch:
93
+ Enabled: true
94
+
95
+ Lint/DuplicateRegexpCharacterClassElement:
96
+ Enabled: true
97
+
98
+ Lint/EmptyBlock:
99
+ Enabled: true
100
+
101
+ Lint/EmptyClass:
102
+ Enabled: false
103
+
104
+ Lint/EmptyInPattern:
105
+ Enabled: true
106
+
107
+ Lint/LambdaWithoutLiteralBlock:
108
+ Enabled: true
109
+
57
110
  Lint/Loop:
58
111
  Enabled: true
59
-
112
+
113
+ Lint/NoReturnInBeginEndBlocks:
114
+ Enabled: true
115
+
116
+ Lint/NumberedParameterAssignment:
117
+ Enabled: true
118
+
119
+ Lint/OrAssignmentToConstant:
120
+ Enabled: true
121
+
60
122
  Lint/RaiseException:
61
123
  Enabled: true
62
124
 
125
+ Lint/RedundantDirGlobSort:
126
+ Enabled: true
127
+
63
128
  Lint/RescueException:
64
129
  Enabled: true
65
-
130
+
66
131
  Lint/StructNewOverride:
67
132
  Enabled: true
68
133
 
134
+ Lint/SymbolConversion:
135
+ Enabled: true
136
+
137
+ Lint/ToEnumArguments:
138
+ Enabled: true
139
+
140
+ Lint/TripleQuotes:
141
+ Enabled: true
142
+
143
+ Lint/UnexpectedBlockArity:
144
+ Enabled: true
145
+
146
+ Lint/UnmodifiedReduceAccumulator:
147
+ Enabled: true
148
+
69
149
  Lint/UnusedMethodArgument:
70
150
  Enabled: true
71
151
 
@@ -85,9 +165,13 @@ Metrics/BlockLength:
85
165
  Enabled: true
86
166
  Max: 350
87
167
 
168
+ Metrics/BlockNesting:
169
+ Enabled: true
170
+ Max: 5
171
+
88
172
  Metrics/ClassLength:
89
173
  Enabled: true
90
- Max: 350
174
+ Max: 450
91
175
 
92
176
  Metrics/CyclomaticComplexity:
93
177
  Enabled: false
@@ -98,7 +182,7 @@ Layout/LineLength:
98
182
 
99
183
  Metrics/MethodLength:
100
184
  Enabled: true
101
- Max: 45
185
+ Max: 60
102
186
 
103
187
  Metrics/ModuleLength:
104
188
  Enabled: true
@@ -116,17 +200,26 @@ Naming/ClassAndModuleCamelCase:
116
200
  Naming/BlockParameterName:
117
201
  Enabled: true
118
202
 
203
+ Naming/InclusiveLanguage:
204
+ Enabled: true
205
+
119
206
  Naming/MethodParameterName:
120
207
  Enabled: false
121
208
 
209
+ Naming/MethodName:
210
+ Enabled: false
211
+
122
212
  Naming/VariableName:
123
213
  Enabled: false
124
214
 
215
+ Style/AccessorGrouping:
216
+ Enabled: false
217
+
125
218
  Style/Alias:
126
219
  Enabled: true
127
220
 
128
- Layout/HashAlignment:
129
- Enabled: false
221
+ Style/ArgumentsForwarding:
222
+ Enabled: true
130
223
 
131
224
  Style/AsciiComments:
132
225
  Enabled: false
@@ -146,6 +239,9 @@ Style/ClassCheck:
146
239
  Style/ClassVars:
147
240
  Enabled: false
148
241
 
242
+ Style/CollectionCompact:
243
+ Enabled: true
244
+
149
245
  Style/ColonMethodCall:
150
246
  Enabled: false
151
247
 
@@ -164,46 +260,75 @@ Style/DefWithParentheses:
164
260
  Style/Documentation:
165
261
  Enabled: false
166
262
 
263
+ Style/DocumentDynamicEvalDefinition:
264
+ Enabled: false
265
+
167
266
  Style/ExpandPathArguments:
168
267
  Enabled: false
169
-
268
+
170
269
  Style/ExponentialNotation:
171
270
  Enabled: true
172
271
 
173
272
  Style/GuardClause:
174
273
  Enabled: false
175
-
274
+
176
275
  Style/HashEachMethods:
177
276
  Enabled: true
178
-
277
+
278
+ Style/HashExcept:
279
+ Enabled: true
280
+
179
281
  Style/HashTransformKeys:
180
282
  Enabled: true
181
-
283
+
182
284
  Style/HashTransformValues:
183
285
  Enabled: true
184
286
 
185
-
186
287
  Style/IfUnlessModifier:
187
288
  Enabled: false
188
289
 
290
+ Style/InPatternThen:
291
+ Enabled: true
292
+
189
293
  Style/InverseMethods:
294
+ Enabled: false
295
+
296
+ Style/MissingRespondToMissing:
297
+ Enabled: false
298
+
299
+ Style/MultilineInPatternThen:
300
+ Enabled: true
301
+
302
+ Style/NegatedIfElseCondition:
190
303
  Enabled: true
191
304
 
192
305
  Style/Next:
193
306
  Enabled: false
194
307
 
308
+ Style/NilLambda:
309
+ Enabled: true
310
+
195
311
  Style/NumericLiterals:
196
312
  Enabled: false
197
313
 
314
+ Style/QuotedSymbols:
315
+ Enabled: true
316
+
198
317
  Style/RaiseArgs:
199
318
  Enabled: true
200
319
 
320
+ Style/RedundantArgument:
321
+ Enabled: true
322
+
201
323
  Style/RedundantReturn:
202
324
  Enabled: false
203
325
 
204
326
  Style/RedundantSelf:
205
327
  Enabled: true
206
328
 
329
+ Style/RedundantSelfAssignmentBranch:
330
+ Enabled: true
331
+
207
332
  Style/RegexpLiteral:
208
333
  Enabled: false
209
334
 
@@ -216,8 +341,111 @@ Style/StderrPuts:
216
341
  Style/StringLiterals:
217
342
  Enabled: true
218
343
 
344
+ Style/SwapValues:
345
+ Enabled: true
346
+
219
347
  Style/TernaryParentheses:
220
348
  Enabled: false
221
349
 
222
350
  Style/UnlessElse:
223
- Enabled: false
351
+ Enabled: false
352
+
353
+ # Rubocop complains when it doesn't find an explicit setting for the following cops:
354
+ Layout/EmptyLinesAroundAttributeAccessor:
355
+ Enabled: true
356
+
357
+ Lint/BinaryOperatorWithIdenticalOperands:
358
+ Enabled: true
359
+
360
+ Lint/DeprecatedOpenSSLConstant:
361
+ Enabled: true
362
+
363
+ Lint/DuplicateElsifCondition:
364
+ Enabled: true
365
+
366
+ Lint/DuplicateRescueException:
367
+ Enabled: true
368
+
369
+ Lint/EmptyConditionalBody:
370
+ Enabled: true
371
+
372
+ Lint/FloatComparison:
373
+ Enabled: true
374
+
375
+ Lint/MissingSuper:
376
+ Enabled: true
377
+
378
+ Lint/MixedRegexpCaptureTypes:
379
+ Enabled: true
380
+
381
+ Lint/OutOfRangeRegexpRef:
382
+ Enabled: true
383
+
384
+ Lint/SelfAssignment:
385
+ Enabled: true
386
+
387
+ Lint/TopLevelReturnWithArgument:
388
+ Enabled: true
389
+
390
+ Lint/UnreachableLoop:
391
+ Enabled: true
392
+
393
+ Style/ArrayCoercion:
394
+ Enabled: true
395
+
396
+ Style/BisectedAttrAccessor:
397
+ Enabled: true
398
+
399
+ Style/CaseLikeIf:
400
+ Enabled: true
401
+
402
+ Style/EndlessMethod:
403
+ Enabled: true
404
+
405
+ Style/ExplicitBlockArgument:
406
+ Enabled: true
407
+
408
+ Style/GlobalStdStream:
409
+ Enabled: true
410
+
411
+ Style/HashAsLastArrayItem:
412
+ Enabled: true
413
+
414
+ Style/HashConversion:
415
+ Enabled: true
416
+
417
+ Style/HashLikeCase:
418
+ Enabled: true
419
+
420
+ Style/IfWithBooleanLiteralBranches:
421
+ Enabled: true
422
+
423
+ Style/OptionalBooleanParameter:
424
+ Enabled: true
425
+
426
+ Style/RedundantAssignment:
427
+ Enabled: true
428
+
429
+ Style/RedundantFetchBlock:
430
+ Enabled: true
431
+
432
+ Style/RedundantFileExtensionInRequire:
433
+ Enabled: true
434
+
435
+ Style/RedundantRegexpCharacterClass:
436
+ Enabled: true
437
+
438
+ Style/RedundantRegexpEscape:
439
+ Enabled: true
440
+
441
+ Style/SingleArgumentDig:
442
+ Enabled: true
443
+
444
+ Style/SlicingWithRange:
445
+ Enabled: true
446
+
447
+ Style/StringChars:
448
+ Enabled: true
449
+
450
+ Style/StringConcatenation:
451
+ Enabled: true
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [0.2.18] - 2021-08-29
2
+ - Minor refactoring for Rley 0.8.03
3
+ - Code restyling to please rubocop 1.19.1.
4
+
5
+ ### Changed
6
+ - File `.rubocop.yml` updated with newer Rubocop cops
7
+ - File `grammar.rb`: Calling `Rley::grammar_builder`, replace `LET*` token by `LET_STAR`
8
+ - Other files changed to get rid of Rubocop offences
9
+
1
10
  ## [0.2.17] - 2020-05-09
2
11
  - Updated `.rubocop.yml` file.
3
12
  - Code restyling to please rubocop 0.8.0.
data/bin/skeem CHANGED
@@ -25,10 +25,10 @@ class SkeemREPL
25
25
  if File.exist?(aFilename)
26
26
  valid_fname = aFilename
27
27
  elsif File.extname(aFilename).empty? # Retry by adding extension...
28
- if File.exist?(aFilename + '.skm')
29
- valid_fname = aFilename + '.skm'
30
- elsif File.exist?(aFilename + '.scm')
31
- valid_fname = aFilename + '.scm'
28
+ if File.exist?("#{aFilename}.skm")
29
+ valid_fname = "#{aFilename}.skm"
30
+ elsif File.exist?("#{aFilename}.scm")
31
+ valid_fname = "#{aFilename}.scm"
32
32
  else
33
33
  valid_fname = nil
34
34
  end
@@ -11,7 +11,7 @@ module Skeem
11
11
  def boolean(aBoolean)
12
12
  return aBoolean if aBoolean.kind_of?(SkmBoolean)
13
13
 
14
- result = case aBoolean
14
+ case aBoolean
15
15
  when TrueClass, FalseClass
16
16
  SkmBoolean.create(aBoolean)
17
17
  when /^#t(?:rue)?|true$/
@@ -21,13 +21,12 @@ module Skeem
21
21
  else
22
22
  raise StandardError, aBoolean.inspect
23
23
  end
24
- result
25
24
  end
26
25
 
27
26
  def integer(aLiteral)
28
27
  return aLiteral if aLiteral.kind_of?(SkmInteger)
29
28
 
30
- result = case aLiteral
29
+ case aLiteral
31
30
  when Integer
32
31
  SkmInteger.create(aLiteral)
33
32
  when /^[+-]?\d+$/
@@ -35,13 +34,12 @@ module Skeem
35
34
  else
36
35
  raise StandardError, aLiteral.inspect
37
36
  end
38
- result
39
37
  end
40
38
 
41
39
  def rational(aLiteral)
42
40
  return aLiteral if aLiteral.kind_of?(SkmRational)
43
41
 
44
- result = case aLiteral
42
+ case aLiteral
45
43
  when Rational
46
44
  SkmRational.create(aLiteral)
47
45
  when /^[+-]?\d+\/\d+$/
@@ -49,13 +47,12 @@ module Skeem
49
47
  else
50
48
  raise StandardError, aLiteral.inspect
51
49
  end
52
- result
53
50
  end
54
51
 
55
52
  def real(aLiteral)
56
53
  return aLiteral if aLiteral.kind_of?(SkmReal)
57
54
 
58
- result = case aLiteral
55
+ case aLiteral
59
56
  when Numeric
60
57
  SkmReal.create(aLiteral)
61
58
  when /^[+-]?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?$/
@@ -63,13 +60,12 @@ module Skeem
63
60
  else
64
61
  raise StandardError, aLiteral.inspect
65
62
  end
66
- result
67
63
  end
68
64
 
69
65
  def char(aLiteral)
70
66
  return aLiteral if aLiteral.kind_of?(SkmChar)
71
67
 
72
- result = case aLiteral
68
+ case aLiteral
73
69
  when Numeric
74
70
  SkmChar.create_from_int(aLiteral)
75
71
  when String
@@ -81,13 +77,12 @@ module Skeem
81
77
  else
82
78
  raise StandardError, aLiteral.inspect
83
79
  end
84
- result
85
80
  end
86
81
 
87
82
  def string(aLiteral)
88
83
  return aLiteral if aLiteral.kind_of?(SkmString)
89
84
 
90
- result = case aLiteral
85
+ case aLiteral
91
86
  when String
92
87
  SkmString.create(aLiteral)
93
88
  when SkmIdentifier
@@ -95,13 +90,12 @@ module Skeem
95
90
  else
96
91
  SkmString.create(aLiteral.to_s)
97
92
  end
98
- result
99
93
  end
100
94
 
101
95
  def identifier(aLiteral)
102
96
  return aLiteral if aLiteral.kind_of?(SkmIdentifier)
103
97
 
104
- result = case aLiteral
98
+ case aLiteral
105
99
  when String
106
100
  SkmIdentifier.create(aLiteral)
107
101
  when SkmString
@@ -109,13 +103,12 @@ module Skeem
109
103
  else
110
104
  raise StandardError, aLiteral.inspect
111
105
  end
112
- result
113
106
  end
114
107
 
115
108
  alias symbol identifier
116
109
 
117
110
  def list(aLiteral)
118
- result = case aLiteral
111
+ case aLiteral
119
112
  when Array
120
113
  SkmPair.create_from_a(to_datum(aLiteral))
121
114
  when SkmPair
@@ -123,12 +116,10 @@ module Skeem
123
116
  else
124
117
  SkmPair.new(to_datum(aLiteral), SkmEmptyList.instance)
125
118
  end
126
-
127
- result
128
119
  end
129
120
 
130
121
  def vector(aLiteral)
131
- result = case aLiteral
122
+ case aLiteral
132
123
  when Array
133
124
  SkmVector.new(to_datum(aLiteral))
134
125
  when SkmVector
@@ -136,8 +127,6 @@ module Skeem
136
127
  else
137
128
  SkmVector.new([to_datum(aLiteral)])
138
129
  end
139
-
140
- result
141
130
  end
142
131
 
143
132
  # Conversion from Ruby object value to Skeem datum
@@ -146,7 +135,7 @@ module Skeem
146
135
  return vector(aLiteral.members) if aLiteral.kind_of?(SkmVector)
147
136
  return aLiteral if aLiteral.kind_of?(Primitive::PrimitiveProcedure)
148
137
 
149
- result = case aLiteral
138
+ case aLiteral
150
139
  when Array
151
140
  aLiteral.map { |elem| to_datum(elem) }
152
141
  when Integer
@@ -166,25 +155,37 @@ module Skeem
166
155
  aLiteral
167
156
  else
168
157
  raise StandardError, aLiteral.inspect
169
- end
170
- result
158
+ end
171
159
  end
172
160
 
173
161
  private
174
162
 
175
163
  def parse_literal(aLiteral)
176
- if aLiteral =~ /^#t(?:rue)?|true$/
177
- boolean(aLiteral)
178
- elsif aLiteral =~ /^#f(?:alse)?|false$/
179
- boolean(aLiteral)
180
- elsif aLiteral =~ /^[+-]?\d+\/\d+$/
181
- rational(aLiteral)
182
- elsif aLiteral =~ /^[+-]?\d+$/
183
- integer(aLiteral)
184
- elsif aLiteral =~ /^[+-]?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?$/
185
- real(aLiteral)
186
- else
187
- string(aLiteral)
164
+ # if aLiteral =~ /^#t(?:rue)?|true$/
165
+ # boolean(aLiteral)
166
+ # elsif aLiteral =~ /^#f(?:alse)?|false$/
167
+ # boolean(aLiteral)
168
+ # elsif aLiteral =~ /^[+-]?\d+\/\d+$/
169
+ # rational(aLiteral)
170
+ # elsif aLiteral =~ /^[+-]?\d+$/
171
+ # integer(aLiteral)
172
+ # elsif aLiteral =~ /^[+-]?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?$/
173
+ # real(aLiteral)
174
+ # else
175
+ # string(aLiteral)
176
+ # end
177
+
178
+ case aLiteral
179
+ when /^#t(?:rue)?|true$/, /^#f(?:alse)?|false$/
180
+ boolean(aLiteral)
181
+ when /^[+-]?\d+\/\d+$/
182
+ rational(aLiteral)
183
+ when /^[+-]?\d+$/
184
+ integer(aLiteral)
185
+ when /^[+-]?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?$/
186
+ real(aLiteral)
187
+ else
188
+ string(aLiteral)
188
189
  end
189
190
  end
190
191
  end # module