Class: InterMine::PathQuery::LogicParser
- Inherits:
-
Object
- Object
- InterMine::PathQuery::LogicParser
- Defined in:
- lib/intermine/query.rb
Class Attribute Summary collapse
-
.ops ⇒ Object
Returns the value of attribute ops.
-
.precedence ⇒ Object
Returns the value of attribute precedence.
Instance Method Summary collapse
-
#initialize(query) ⇒ LogicParser
constructor
A new instance of LogicParser.
- #parse_logic(str) ⇒ Object
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
.ops ⇒ Object
Returns the value of attribute ops.
1357 1358 1359 |
# File 'lib/intermine/query.rb', line 1357 def ops @ops end |
.precedence ⇒ Object
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 |