Module: Layo::Peekable

Included in:
Lexer, Tokenizer
Defined in:
lib/layo/peekable.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#peek_indexObject

Returns the value of attribute peek_index.



3
4
5
# File 'lib/layo/peekable.rb', line 3

def peek_index
  @peek_index
end

Instance Method Details

#nextObject



21
22
23
24
25
# File 'lib/layo/peekable.rb', line 21

def next
  @peek_index = -1
  @items << next_item if @items.empty?
  @items.shift
end

#peekObject



9
10
11
12
13
14
15
# File 'lib/layo/peekable.rb', line 9

def peek
  @peek_index += 1
  while @items.length <= @peek_index
    @items << next_item
  end
  @items[@peek_index]
end

#resetObject



5
6
7
# File 'lib/layo/peekable.rb', line 5

def reset
  @peek_index, @items = -1, []
end

#reset_peekObject



27
28
29
# File 'lib/layo/peekable.rb', line 27

def reset_peek
  @peek_index = -1
end

#unpeekObject



17
18
19
# File 'lib/layo/peekable.rb', line 17

def unpeek
  @peek_index -= 1 if @peek_index > -1
end