class BELParser::Script::Syntax::ExpressionValidation

Constants

EXP_VALIDATOR

ExpressionValidator validates the syntax and semantics of BEL expressions when supplied a {BELParser::Language::Specification} and Hash of namespaces.

TARGET_NODES

Public Class Methods

expression_validator(script_context) click to toggle source
# File lib/bel_parser/script/syntax/expression_validation.rb, line 29
def self.expression_validator(script_context)
  unless defined? @expression_validator
    spec, namespaces, uri_reader, url_reader =
      script_context.values_at(
        :specification,
        :namespace_definitions,
        :uri_reader,
        :url_reader)
    @expression_validator = EXP_VALIDATOR.new(
      spec, namespaces, uri_reader, url_reader)
  end
  @expression_validator
end
map(ast_node, script_context) click to toggle source
# File lib/bel_parser/script/syntax/expression_validation.rb, line 21
def self.map(ast_node, script_context)
  return nil unless TARGET_NODES.include?(ast_node.class)
  return nil unless script_context.key?(:specification)

  validator = expression_validator(script_context)
  validator.validate(ast_node)
end