Class: Antlr4::Runtime::CodePointCharStream
Constant Summary
Constants inherited
from IntStream
IntStream::EOF, IntStream::UNKNOWN_SOURCE_NAME
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(position, remaining, name, byte_array) ⇒ CodePointCharStream
Returns a new instance of CodePointCharStream.
6
7
8
9
10
11
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 6
def initialize(position, remaining, name, byte_array)
@size = remaining
@name = name
@position = position
@byte_array = byte_array
end
|
Instance Attribute Details
#size ⇒ Object
Returns the value of attribute size.
63
64
65
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 63
def size
@size
end
|
Instance Method Details
#consume ⇒ Object
53
54
55
56
57
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 53
def consume
raise IllegalStateException, 'cannot consume EOF' if (@size - @position).zero?
@position += 1
end
|
#index ⇒ Object
59
60
61
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 59
def index
@position
end
|
#internal_storage ⇒ Object
49
50
51
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 49
def internal_storage
@byte_array
end
|
#la(i) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 28
def la(i)
case Integer.signum(i)
when -1
offset = @position + i
return IntStream::EOF if offset < 0
return @byte_array[offset] & 0xFF
when 0
return 0
when 1
offset = @position + i - 1
return IntStream::EOF if offset >= @size
return @byte_array[offset] & 0xFF
else
end
raise UnsupportedOperationException, 'Not reached'
end
|
#mark ⇒ Object
65
66
67
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 65
def mark
-1
end
|
#release(marker) ⇒ Object
69
70
71
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 69
def release(marker)
;
end
|
#seek(index) ⇒ Object
73
74
75
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 73
def seek(index)
@position = index
end
|
#source_name ⇒ Object
77
78
79
80
81
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 77
def source_name
return UNKNOWN_SOURCE_NAME if @name.nil? || @name.empty?
@name
end
|
#text(interval) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/antlr4/runtime/code_point_char_stream.rb', line 13
def text(interval)
start_idx = [interval.a, @size].min
len = [interval.b - interval.a + 1, @size - start_idx].min
chars = @byte_array.slice(start_idx, len)
result = ''
chars.each do |c|
result << c
end
result
end
|