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.



1485
1486
1487
# File 'lib/intermine/query.rb', line 1485

def initialize(query)
    @query = query
end

Class Attribute Details

.opsObject

Returns the value of attribute ops.



1466
1467
1468
# File 'lib/intermine/query.rb', line 1466

def ops
  @ops
end

.precedenceObject

Returns the value of attribute precedence.



1466
1467
1468
# File 'lib/intermine/query.rb', line 1466

def precedence
  @precedence
end

Instance Method Details

#parse_logic(str) ⇒ Object



1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
# File 'lib/intermine/query.rb', line 1489

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