class MCollective::Matcher::Scanner - mcollective version 2.12.5

# 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