# 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, line 6
    def initialize(arguments)
      @token_index = 0
      @arguments = arguments.split("")
      @seperation_counter = 0
      @white_spaces = 0
    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, line 14
    def get_token
      if @token_index >= @arguments.size
        return nil
      end

      case @arguments[@token_index]
      when "("
        return "(", "("

      when ")"
        return ")", ")"

      when "n"
        if (@arguments[@token_index + 1] == "o") && (@arguments[@token_index + 2] == "t") && ((@arguments[@token_index + 3] == " ") || (@arguments[@token_index + 3] == "("))
          @token_index += 2
          return "not", "not"
        else
          gen_statement
        end

      when "!"
        return "not", "not"

      when "a"
        if (@arguments[@token_index + 1] == "n") && (@arguments[@token_index + 2] == "d") && ((@arguments[@token_index + 3] == " ") || (@arguments[@token_index + 3] == "("))
          @token_index += 2
          return "and", "and"
        else
          gen_statement
        end

      when "o"
        if (@arguments[@token_index + 1] == "r") && ((@arguments[@token_index + 2] == " ") || (@arguments[@token_index + 2] == "("))
          @token_index += 1
          return "or", "or"
        else
          gen_statement
        end

      when " "
        return " ", " "

      else
        gen_statement
      end
    end