class MCollective::Matcher::Scanner
Attributes
arguments[RW]
token_index[RW]
Public Class Methods
new(arguments)
click to toggle source
# File lib/mcollective/matcher/scanner.rb 6 def initialize(arguments) 7 @token_index = 0 8 @arguments = arguments.split("") 9 @seperation_counter = 0 10 @white_spaces = 0 11 end
Public Instance Methods
get_token()
click to toggle source
Scans the input string and identifies single language tokens
# File lib/mcollective/matcher/scanner.rb 14 def get_token 15 if @token_index >= @arguments.size 16 return nil 17 end 18 19 case @arguments[@token_index] 20 when "(" 21 return "(", "(" 22 23 when ")" 24 return ")", ")" 25 26 when "n" 27 if (@arguments[@token_index + 1] == "o") && (@arguments[@token_index + 2] == "t") && ((@arguments[@token_index + 3] == " ") || (@arguments[@token_index + 3] == "(")) 28 @token_index += 2 29 return "not", "not" 30 else 31 gen_statement 32 end 33 34 when "!" 35 return "not", "not" 36 37 when "a" 38 if (@arguments[@token_index + 1] == "n") && (@arguments[@token_index + 2] == "d") && ((@arguments[@token_index + 3] == " ") || (@arguments[@token_index + 3] == "(")) 39 @token_index += 2 40 return "and", "and" 41 else 42 gen_statement 43 end 44 45 when "o" 46 if (@arguments[@token_index + 1] == "r") && ((@arguments[@token_index + 2] == " ") || (@arguments[@token_index + 2] == "(")) 47 @token_index += 1 48 return "or", "or" 49 else 50 gen_statement 51 end 52 53 when " " 54 return " ", " " 55 56 else 57 gen_statement 58 end 59 end