Module: Fop::Tokenizer

Defined in:
lib/fop/tokenizer.rb

Defined Under Namespace

Classes: Char

Constant Summary collapse

Error =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.tokenize!(src) ⇒ Object

Raises:



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/fop/tokenizer.rb', line 6

def self.tokenize!(src)
  tokens = []
  escape = false
  src.each_char { |char|
    if escape
      tokens << Char.new(char)
      escape = false
      next
    end

    case char
    when "\\".freeze
      escape = true
    when "{".freeze
      tokens << :match_open
    when "}".freeze
      tokens << :match_close
    when "*".freeze
      tokens << :wildcard
    else
      tokens << Char.new(char)
    end
  }

  raise Error, "Trailing escape" if escape
  tokens
end