3 /* private */ var $mText, $mPos, $mTextLength;
4 /* private */ var $mCount, $mM, $mMPos; # What is M meant to stand for?
6 /* private */ function Tokenizer()
12 function newFromString( $s )
17 $t->mTextLength
= strlen( $s );
23 $this->mCount
= preg_match_all( "/(\[\[|\]\]|\'\'\'\'\'|\'\'\'|\'\')/",
24 $this->mText
, $this->mM
,
25 PREG_PATTERN_ORDER|PREG_OFFSET_CAPTURE
);
31 $token = $this->previewToken();
33 if ( $token["type"] == "text" ) {
34 $this->mPos
= $token["mPos"];
36 $this->mMPos
= $token["mMPos"];
37 $this->mPos
= $token["mPos"];
44 function previewToken()
46 if ( $this->mMPos
<= $this->mCount
) {
47 $token["pos"] = $this->mPos
;
48 if ( $this->mPos
< $this->mM
[0][$this->mMPos
][1] ) {
49 $token["type"] = "text";
50 $token["text"] = substr( $this->mText
, $this->mPos
,
51 $this->mM
[0][$this->mMPos
][1] - $this->mPos
);
52 $token["mPos"] = $this->mM
[0][$this->mMPos
][1];
54 $token["type"] = $this->mM
[0][$this->mMPos
][0];
55 $token["mPos"] = $this->mPos +
strlen($token["type"]);
56 $token["mMPos"] = $this->mMPos +
1;
58 } elseif ( $this->mPos
< $this->mTextLength
) {
59 $token["type"] = "text";
60 $token["text"] = substr( $this->mText
, $this->mPos
);
61 $token["mPos"] = $this->mTextLength
;