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.



1376
1377
1378
# File 'lib/intermine/query.rb', line 1376

def initialize(query)
    @query = query
end

Class Attribute Details

.opsObject

Returns the value of attribute ops.



1357
1358
1359
# File 'lib/intermine/query.rb', line 1357

def ops
  @ops
end

.precedenceObject

Returns the value of attribute precedence.



1357
1358
1359
# File 'lib/intermine/query.rb', line 1357

def precedence
  @precedence
end

Instance Method Details

#parse_logic(str) ⇒ Object



1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
# File 'lib/intermine/query.rb', line 1380

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