MediaWiki  master
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 
65  protected function error( $message ) {
66  throw new HeaderParserError( "$message at {$this->pos}" );
67  }
68 
76  protected function consumeFixedDigits( $numDigits ) {
77  $digits = substr( $this->input, $this->pos, $numDigits );
78  if ( strlen( $digits ) !== $numDigits || !preg_match( '/^[0-9]*$/', $digits ) ) {
79  $this->error( "expected $numDigits digits" );
80  }
81  $this->pos += $numDigits;
82  return $digits;
83  }
84 
91  protected function assertEnd() {
92  if ( $this->pos !== $this->inputLength ) {
93  $this->error( "trailing characters" );
94  }
95  }
96 }
MediaWiki\Rest\HeaderParser\HeaderParserError
Definition: HeaderParserError.php:5
MediaWiki\Rest\HeaderParser\HeaderParserBase\setInput
setInput( $input)
Set the input, and derived convenience properties.
Definition: HeaderParserBase.php:29
MediaWiki\Rest\HeaderParser\HeaderParserBase\assertEnd
assertEnd()
If the position is not at the end of the input string, raise an error, complaining of trailing charac...
Definition: HeaderParserBase.php:91
MediaWiki\Rest\HeaderParser\HeaderParserBase\skipWhitespace
skipWhitespace()
Skip whitespace at the input position (OWS)
Definition: HeaderParserBase.php:55
MediaWiki\Rest\HeaderParser\HeaderParserBase
Definition: HeaderParserBase.php:8
$s
$s
Definition: mergeMessageFileList.php:185
MediaWiki\Rest\HeaderParser\HeaderParserBase\$inputLength
int $inputLength
The length of $input.
Definition: HeaderParserBase.php:22
MediaWiki\Rest\HeaderParser\HeaderParserBase\consumeFixedDigits
consumeFixedDigits( $numDigits)
Consume a specified number of digits, or throw an exception.
Definition: HeaderParserBase.php:76
MediaWiki\Rest\HeaderParser\HeaderParserBase\$input
string $input
The input string being processed.
Definition: HeaderParserBase.php:12
MediaWiki\Rest\HeaderParser\HeaderParserBase\error
error( $message)
Throw an exception to indicate a parse error.
Definition: HeaderParserBase.php:65
MediaWiki\Rest\HeaderParser\HeaderParserBase\$pos
int $pos
The position within $input.
Definition: HeaderParserBase.php:17
MediaWiki\Rest\HeaderParser\HeaderParserBase\consumeString
consumeString( $s)
Consume a specified string, or throw an exception.
Definition: HeaderParserBase.php:41
MediaWiki\Rest\HeaderParser
Definition: HeaderParserBase.php:3