Class: InterMine::PathQuery::LogicParser

Inherits:
Object
  • Object
show all
Defined in:
lib/intermine/query.rb

Class Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query) ⇒ LogicParser

Returns a new instance of LogicParser.


1489
1490
1491
# File 'lib/intermine/query.rb', line 1489

def initialize(query)
    @query = query
end

Class Attribute Details

.opsObject

Returns the value of attribute ops


1470
1471
1472
# File 'lib/intermine/query.rb', line 1470

def ops
  @ops
end

.precedenceObject

Returns the value of attribute precedence


1470
1471
1472
# File 'lib/intermine/query.rb', line 1470

def precedence
  @precedence
end

Instance Method Details

#parse_logic(str) ⇒ Object


1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
# File 'lib/intermine/query.rb', line 1493

def parse_logic(str)
    tokens = str.upcase.split(/(?:\s+|\b)/).map do |x| 
        LogicParser.ops.fetch(x, x.split(//))
    end
    tokens.flatten!

    check_syntax(tokens)
    postfix_tokens = infix_to_postfix(tokens)
    ast = postfix_to_tree(postfix_tokens)
    return ast
end