Class: BELParser::Expression::Validator

Inherits:
Object
  • Object
show all
Includes:
Parsers::Common, Parsers::Expression
Defined in:
lib/bel_parser/expression/validator.rb

Overview

Parser for BEL Expression.

Constant Summary collapse

TYPES =
[
  :parameter,
  :term,
  :simple_statement,
  :observed_term,
  :nested_statement
]

Instance Method Summary collapse

Constructor Details

#initialize(specification, namespaces, uri_reader, url_reader) ⇒ Validator

Returns a new instance of Validator.



23
24
25
26
27
# File 'lib/bel_parser/expression/validator.rb', line 23

def initialize(specification, namespaces, uri_reader, url_reader)
  @spec      = specification
  @validator = BELParser::Language::ExpressionValidator.new(
    @spec, namespaces, uri_reader, url_reader)
end

Instance Method Details

#each(io) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/bel_parser/expression/validator.rb', line 29

def each(io)
  if block_given?
    filter = BELParser::ASTFilter.new(
      BELParser::ASTGenerator.new(io),
      *TYPES)
    filter.each do |(num, line, results)|
      results.each do |ast|
        yield [num, line, ast, @validator.validate(ast)]
      end
    end
  else
    enum_for(:each, io)
  end
end