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(expression_node, subject_result, object_result, syntax, semantics) ⇒ NestedStatementResult
Returns a new instance of NestedStatementResult.
374
375
376
377
378
379
380
381
382
383
384
|
# File 'lib/bel_parser/language/expression_validator.rb', line 374
def initialize(expression_node, subject_result, object_result, syntax, semantics)
@expression_node = expression_node
@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.
371
372
373
|
# File 'lib/bel_parser/language/expression_validator.rb', line 371
def semantics_results
@semantics_results
end
|
#syntax_results ⇒ Object
Returns the value of attribute syntax_results.
371
372
373
|
# File 'lib/bel_parser/language/expression_validator.rb', line 371
def syntax_results
@syntax_results
end
|
Instance Method Details
#detail ⇒ Object
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
|
# File 'lib/bel_parser/language/expression_validator.rb', line 447
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
431
432
433
434
435
436
|
# File 'lib/bel_parser/language/expression_validator.rb', line 431
def invalid_object_signatures
@object_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingWarning)
end
end
|
#invalid_subject_signatures ⇒ Object
417
418
419
420
421
422
|
# File 'lib/bel_parser/language/expression_validator.rb', line 417
def invalid_subject_signatures
@subject_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingWarning)
end
end
|
#object_valid? ⇒ Boolean
406
407
408
|
# File 'lib/bel_parser/language/expression_validator.rb', line 406
def object_valid?
@object_result.valid?
end
|
#subject_valid? ⇒ Boolean
402
403
404
|
# File 'lib/bel_parser/language/expression_validator.rb', line 402
def subject_valid?
@subject_result.valid?
end
|
#to_s ⇒ Object
438
439
440
441
442
443
444
445
|
# File 'lib/bel_parser/language/expression_validator.rb', line 438
def to_s
"Syntax: \#{valid_syntax? ? 'Valid' : 'Invalid'}\nSemantics: \#{valid_semantics? ? 'Valid' : 'Invalid'}\n\n\#{syntax_errors_s}\#{semantics_errors_s}\#{detail}\n".gsub(/^ {12}/, '')
end
|
#valid? ⇒ Boolean
386
387
388
|
# File 'lib/bel_parser/language/expression_validator.rb', line 386
def valid?
valid_syntax? && valid_semantics?
end
|
#valid_object_signatures ⇒ Object
424
425
426
427
428
429
|
# File 'lib/bel_parser/language/expression_validator.rb', line 424
def valid_object_signatures
@object_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingSuccess)
end.uniq
end
|
#valid_semantics? ⇒ Boolean
396
397
398
399
400
|
# File 'lib/bel_parser/language/expression_validator.rb', line 396
def valid_semantics?
@subject_result.valid_semantics? &&
@object_result.valid_semantics? &&
@semantics_results.empty?
end
|
#valid_subject_signatures ⇒ Object
410
411
412
413
414
415
|
# File 'lib/bel_parser/language/expression_validator.rb', line 410
def valid_subject_signatures
@subject_result.semantics_results
.select do |res|
res.is_a?(Semantics::SignatureMappingSuccess)
end.uniq
end
|
#valid_syntax? ⇒ Boolean
390
391
392
393
394
|
# File 'lib/bel_parser/language/expression_validator.rb', line 390
def valid_syntax?
@subject_result.valid_syntax? &&
@object_result.valid_syntax? &&
@syntax_results.empty?
end
|