Class: BELParser::Language::ExpressionValidator::NestedStatementResult
- Inherits:
-
Object
- Object
- BELParser::Language::ExpressionValidator::NestedStatementResult
show all
- Includes:
- Result
- Defined in:
- lib/bel_parser/language/expression_validator.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Result
#invalid_signature_mappings, #valid_signature_mappings
Constructor Details
#initialize(subject_result, object_result, syntax, semantics) ⇒ NestedStatementResult
Returns a new instance of NestedStatementResult.
345
346
347
348
349
350
351
352
353
354
|
# File 'lib/bel_parser/language/expression_validator.rb', line 345
def initialize(subject_result, object_result, syntax, semantics)
@subject_result = subject_result
@object_result = object_result
@syntax_results = syntax
@semantics_results =
semantics.reject! do |res|
res.is_a?(Semantics::SignatureMappingWarning) ||
res.is_a?(Semantics::SignatureMappingSuccess)
end
end
|
Instance Attribute Details
#semantics_results ⇒ Object
Returns the value of attribute semantics_results.
342
343
344
|
# File 'lib/bel_parser/language/expression_validator.rb', line 342
def semantics_results
@semantics_results
end
|
#syntax_results ⇒ Object
Returns the value of attribute syntax_results.
342
343
344
|
# File 'lib/bel_parser/language/expression_validator.rb', line 342
def syntax_results
@syntax_results
end
|
Instance Method Details
#detail ⇒ Object
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
|
# File 'lib/bel_parser/language/expression_validator.rb', line 418
def detail
report = "Subject term - Valid signatures\n"
@subject_result.valid_signature_mappings.each do |mapping|
report += " #{mapping.signature}\n"
mapping.results.each do |reason|
report += " #{reason}\n"
end
end
report += "\n"
report += "Subject term - Invalid signatures\n"
@subject_result.invalid_signature_mappings.each do |mapping|
report += " #{mapping.signature}\n"
mapping.results.each do |reason|
report += " #{reason}\n"
end
end
report += "\n"
report += @object_result.detail
report
end
|
#invalid_object_signatures ⇒ Object
401
402
403
404
405
406
|
# File 'lib/bel_parser/language/expression_validator.rb', line 401
def invalid_object_signatures
@object_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingWarning)
end
end
|
#invalid_subject_signatures ⇒ Object
387
388
389
390
391
392
|
# File 'lib/bel_parser/language/expression_validator.rb', line 387
def invalid_subject_signatures
@subject_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingWarning)
end
end
|
#object_valid? ⇒ Boolean
376
377
378
|
# File 'lib/bel_parser/language/expression_validator.rb', line 376
def object_valid?
@object_result.valid?
end
|
#subject_valid? ⇒ Boolean
372
373
374
|
# File 'lib/bel_parser/language/expression_validator.rb', line 372
def subject_valid?
@subject_result.valid?
end
|
#to_s ⇒ Object
408
409
410
411
412
413
414
415
416
|
# File 'lib/bel_parser/language/expression_validator.rb', line 408
def to_s
report = @object_result.to_s
<<-HEADER.gsub(/^ {12}/, '')
Syntax: #{valid_syntax? ? 'Valid' : 'Invalid'}
Semantics: #{valid_semantics? ? 'Valid' : 'Invalid'}
#{syntax_errors_s}#{semantics_errors_s}#{detail}
HEADER
end
|
#valid? ⇒ Boolean
356
357
358
|
# File 'lib/bel_parser/language/expression_validator.rb', line 356
def valid?
valid_syntax? && valid_semantics?
end
|
#valid_object_signatures ⇒ Object
394
395
396
397
398
399
|
# File 'lib/bel_parser/language/expression_validator.rb', line 394
def valid_object_signatures
@object_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingSuccess)
end.uniq
end
|
#valid_semantics? ⇒ Boolean
366
367
368
369
370
|
# File 'lib/bel_parser/language/expression_validator.rb', line 366
def valid_semantics?
@subject_result.valid_semantics? &&
@object_result.valid_semantics? &&
@semantics_results.empty?
end
|
#valid_subject_signatures ⇒ Object
380
381
382
383
384
385
|
# File 'lib/bel_parser/language/expression_validator.rb', line 380
def valid_subject_signatures
@subject_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingSuccess)
end.uniq
end
|
#valid_syntax? ⇒ Boolean
360
361
362
363
364
|
# File 'lib/bel_parser/language/expression_validator.rb', line 360
def valid_syntax?
@subject_result.valid_syntax? &&
@object_result.valid_syntax? &&
@syntax_results.empty?
end
|