class Tml::RulesEngine::Parser
Attributes
expression[R]
tokens[R]
Public Class Methods
new(expression)
click to toggle source
# File lib/tml/rules_engine/parser.rb, line 39 def initialize(expression) @expression = expression if expression =~ /^\(/ @tokens = expression.scan(/[()]|\w+|@\w+|[\+\-\!\|\=>&<\*\/%]+|".*?"|'.*?'/) end end
Public Instance Methods
parse()
click to toggle source
# File lib/tml/rules_engine/parser.rb, line 46 def parse return @expression unless tokens token = tokens.shift return nil if token.nil? return parse_list if (token) == '(' return token[1..-2].to_s if token =~ /^['"].*/ return token.to_i if token =~ /\d+/ token.to_s end
parse_list()
click to toggle source
# File lib/tml/rules_engine/parser.rb, line 56 def parse_list list = [] list << parse until tokens.empty? or tokens.first == ')' tokens.shift list end