a wrapper around StringScanner
# File lib/maruku/input/charsource.rb, line 208 def initialize(s, parent=nil) @s = StringScanner.new(s) @parent = parent end
# File lib/maruku/input/charsource.rb, line 264 def consume_whitespace @s.scan(%r\s+/) nil end
Return current char as a FixNum (or nil).
# File lib/maruku/input/charsource.rb, line 214 def cur_char @s.peek(1)[0] end
Return the next n chars as a String.
# File lib/maruku/input/charsource.rb, line 219 def cur_chars(n); @s.peek(n) end
# File lib/maruku/input/charsource.rb, line 246 def cur_chars_are(string) cur_chars(string.size) == string end
# File lib/maruku/input/charsource.rb, line 242 def current_remaining_buffer @s.rest #nil #@buffer[@buffer_index, @buffer.size-@buffer_index] end
# File lib/maruku/input/charsource.rb, line 269 def describe describe_pos(@s.string, @s.pos) end
# File lib/maruku/input/charsource.rb, line 232 def ignore_char @s.get_byte nil end
# File lib/maruku/input/charsource.rb, line 237 def ignore_chars(n) n.times do @s.get_byte end nil end
Return the char after current char as a FixNum (or nil).
# File lib/maruku/input/charsource.rb, line 224 def next_char; @s.peek(2)[1] end
# File lib/maruku/input/charsource.rb, line 250 def next_matches(r) len = @s.match?(r) return !!len end
# File lib/maruku/input/charsource.rb, line 255 def read_regexp(r) string = @s.scan(r) if string return r.match(string) else return nil end end
# File lib/maruku/input/charsource.rb, line 228 def shift_char (@s.get_byte)[0] end