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.
1485 1486 1487 |
# File 'lib/intermine/query.rb', line 1485 def initialize(query) @query = query end |
Class Attribute Details
.ops ⇒ Object
Returns the value of attribute ops.
1466 1467 1468 |
# File 'lib/intermine/query.rb', line 1466 def ops @ops end |
.precedence ⇒ Object
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 |