_string = $string;
$this->_pos = 0;
}
function get_context_before($how_many = 1) {
return substr($this->_string,
max(0, $this->_pos - $how_many),
min($this->_pos, $how_many));
}
function get_context_after($how_many = 1) {
return substr($this->_string,
$this->_pos,
$how_many);
}
function next($how_many = 1) {
$this->_pos += $how_many;
}
function peek($how_many = 1) {
return substr($this->_string, $this->_pos, $how_many);
}
function read_expected($string, &$buffer) {
for ($i = 0, $size = strlen($string); $i < $size; $i++) {
$char = $this->peek();
if ($char !== $string[$i]) {
return false;
};
$this->next();
$buffer .= $char;
};
return true;
}
}
?>