Sha256: ba2752e9ccc1ce5b9dd835f5ebb6c32a6bd4490bf56d8fd4154e6fc608526526
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
# finished module Antlr4ruby # @abstract class CodePointCharStream def initialize(data, name = UNKNOWN_SOURCE_NAME) @data, @name, @position = data, name, 0 end protected attr_reader :name, :data attr_accessor :position private def get_internal_storage @data end public def self.from_buffer(code_point_buffer, name = UNKNOWN_SOURCE_NAME) # todo end def self.from_string(input, name = UNKNOWN_SOURCE_NAME) buffer = input.unpack('U*') # input.each_char do |c| # buffer.push(c.ord) # end # 这里会有一个警告,但是不好处理 CodePointCharStream.new(buffer, name) end def consume raise "can not consume eof." if @position == @data.length @position += 1 end def index @position end def size @data.length end def mark -1 end def release(marker) end def seek(index) @position = index end def la(i) if i < 0 offset = position + i offset < 0 ? IntStream.EOF : data[offset] elsif i > 0 offset = position + i - 1 offset > data.length ? IntStream.EOF : data[offset] else 0 end end def get_text(interval) hold = data[interval] return hold.pack('U*') if hold 'error in method get_text' end def get_source_name UNKNOWN_SOURCE_NAME if !@name || name.empty? @name end def to_s data.pack('U*') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
antlr4ruby-0.1.0 | lib/antlr4ruby/code_point_char_stream.rb |