MediaWiki REL1_41
HeaderParserBase.php
Go to the documentation of this file.
1<?php
2
4
12 protected $input;
13
17 protected $pos;
18
22 protected $inputLength;
23
29 protected function setInput( $input ) {
30 $this->input = $input;
31 $this->pos = 0;
32 $this->inputLength = strlen( $input );
33 }
34
41 protected function consumeString( $s ) {
42 if ( $this->pos >= $this->inputLength ) {
43 $this->error( "Expected \"$s\" but got end of string" );
44 }
45 if ( substr_compare( $this->input, $s, $this->pos, strlen( $s ) ) === 0 ) {
46 $this->pos += strlen( $s );
47 } else {
48 $this->error( "Expected \"$s\"" );
49 }
50 }
51
55 protected function skipWhitespace() {
56 $this->pos += strspn( $this->input, " \t", $this->pos );
57 }
58
66 protected function error( $message ) {
67 throw new HeaderParserError( "$message at {$this->pos}" );
68 }
69
77 protected function consumeFixedDigits( $numDigits ) {
78 $digits = substr( $this->input, $this->pos, $numDigits );
79 if ( strlen( $digits ) !== $numDigits || !preg_match( '/^[0-9]*$/', $digits ) ) {
80 $this->error( "expected $numDigits digits" );
81 }
82 $this->pos += $numDigits;
83 return $digits;
84 }
85
92 protected function assertEnd() {
93 if ( $this->pos !== $this->inputLength ) {
94 $this->error( "trailing characters" );
95 }
96 }
97}
string $input
The input string being processed.
setInput( $input)
Set the input, and derived convenience properties.
assertEnd()
If the position is not at the end of the input string, raise an error, complaining of trailing charac...
consumeFixedDigits( $numDigits)
Consume a specified number of digits, or throw an exception.
consumeString( $s)
Consume a specified string, or throw an exception.
skipWhitespace()
Skip whitespace at the input position (OWS)
error( $message)
Throw an exception to indicate a parse error.