Class: BELParser::Language::ExpressionValidator::TermResult

Inherits:
Object
  • Object
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, #to_s, #valid?, #valid_signature_mappings, #valid_syntax?

Constructor Details

#initialize(expression_node, syntax_results, semantics_results) ⇒ TermResult

Returns a new instance of TermResult.



182
183
184
185
186
# File 'lib/bel_parser/language/expression_validator.rb', line 182

def initialize(expression_node, syntax_results, semantics_results)
  @expression_node   = expression_node
  @syntax_results    = syntax_results
  @semantics_results = semantics_results
end

Instance Attribute Details

#semantics_resultsObject (readonly)

Returns the value of attribute semantics_results.



179
180
181
# File 'lib/bel_parser/language/expression_validator.rb', line 179

def semantics_results
  @semantics_results
end

#syntax_resultsObject (readonly)

Returns the value of attribute syntax_results.



179
180
181
# File 'lib/bel_parser/language/expression_validator.rb', line 179

def syntax_results
  @syntax_results
end

Instance Method Details

#detailObject



194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
# File 'lib/bel_parser/language/expression_validator.rb', line 194

def detail
  report = "Valid signatures\n"
  valid_signature_mappings.each do |mapping|
    report += "  #{mapping.signature}\n"
    mapping.results.each do |reason|
      report += "    #{reason}\n"
    end
  end
  report += "\n"

  report += "Invalid signatures\n"
  invalid_signature_mappings.each do |mapping|
    report += "  #{mapping.signature}\n"
    mapping.results.each do |reason|
      report += "    #{reason}\n"
    end
  end
  report
end

#valid_semantics?Boolean

Returns:

  • (Boolean)


188
189
190
191
192
# File 'lib/bel_parser/language/expression_validator.rb', line 188

def valid_semantics?
  @semantics_results.any? do |res|
    res.is_a?(Semantics::SignatureMappingSuccess) && res.expression_node == @expression_node
  end
end