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 
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.
foreach( $mmfl['setupFiles'] as $fileName) if( $queue) if(empty( $mmfl['quiet'])) $s