1module JSAN 2 class Context 3 WHITE_SPACES = [" ", "\t", "\r", "\n"] 4 NUMBER_LETTERS = '0123456789+-.eE' 5 HEX_LETTERS = '0123456789abcdef' 6 def initialize(s) 7 @buf = s 8 @index = 0 9 @length = s.size 10 end 11 def skip_white 12 while WHITE_SPACES.include?(@buf[@index]) do 13 @index += 1 14 end 15 end 16 def has_next? 17 @index < @length 18 end 19 def next 20 b = @buf[@index] 21 @index += 1 22