Class: Jamespath::Tokenizer

Inherits:
Object
  • Object
show all
Defined in:
lib/jamespath/tokenizer.rb

Constant Summary collapse

TOKENS =
{
  lbracket: /\[/,
  rbracket: /\]/,
  lbrace: /\{/,
  rbrace: /\}/,
  comma: /,/,
  dot: /\./,
  colon: /:/,
  double_pipe: /\|\|/,
  asterisk: /\*/,
  number: /-?[0-9]+/,
  quoted_identifier: /"([^"\\]|\\"|\\\\|\\[^"])*"/,
  identifier: /[a-zA-Z0-9_\u007E-\uFFFF]+/
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#tokensObject (readonly)

Returns the value of attribute tokens.



10
11
12
# File 'lib/jamespath/tokenizer.rb', line 10

def tokens
  @tokens
end

Instance Method Details

#tokenize(source) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/jamespath/tokenizer.rb', line 27

def tokenize(source)
  @pos = 0
  @source = source
  @scanner = StringScanner.new(source)
  @tokens = []
  until @scanner.eos?
    @tokens << next_token
  end
  @tokens
end