JSON PHP 完全注釋(一)

2021-04-13 06:07:16 字數 2483 閱讀 3301

function _getnexttoken()             //返回的是規定的幾種預定義字元  ,[,],;,:,datum,eof

if ($this->_offset >= $this->_sourcelength)  //到頭了

$str        = $this->_source;                //原始字串

$str_length = $this->_sourcelength;             //原始字串長度

//偏移量,注意,i的位置位於正規表示式結束的地方!對decode乙個buddylist而言,i==0

$i          = $this->_offset;               

$start      = $i;                             //開始位置

switch ($str[$i])                            //現在的位置,得到現在的token,並賦值給token ,此處僅檢驗乙個字元

//注意:在swtich語句中使用的是i,this->_offset並未改變

':$this->_token = rbrace;

break;

case '[':

$this->_token = lbracket;

break;

case ']':

$this->_token = rbracket;

break;

case ',':

$this->_token = comma;

break;

case ':':

$this->_token = colon;

break;

case  '"':   //雙引號哦!

$result = '';                  //空

do                                    //將遍歷結果存在result中

$chr = $str[$i];           //得到當前字元

if ($chr == '//')                 //如果當前字元為反斜槓/,注意下乙個字元為轉義字元

// result 加上改轉義字元

$chr = $str[$i];          //得到字元

switch ($chr)

}else if ($chr == '"')            // 不跟在反斜槓後的雙引號,字串匹配結束,case語句終止

else                            //既不是轉義字元,也不是雙引號

}while ($i < $str_length);            //直到字串結束

$this->_token = datum;                //常規字元

//$this->_tokenvalue = substr($str, $start + 1, $i - $start - 1);

$this->_tokenvalue = $result;       //注意!result是個字串

break;

case 't':                                //tab

if (($i + 3) < $str_length && substr($str, $start, 4) == 'true')

$this->_tokenvalue = true;

$i += 3;

break;

case 'f':

if (($i + 4) < $str_length && substr($str, $start, 5) == 'false')

$this->_tokenvalue = false;

$i += 4;

break;

case 'n':

if (($i + 3) < $str_length && substr($str, $start, 4) == 'null')

$this->_tokenvalue = null;

$i += 3;

break;

}if ($this->_token != eof)                    //switch語句中的case得到匹配

// 未得到匹配

$chr = $str[$i];   //當前字元          

// this->_token==eof,switch語句都沒有執行,表明該字元非token,注意,_getnexttoke()一開始就this->_token==eof

if (preg_match('/-?([0-9]*)(/.[0-9]*)?(([ee])[-+]?[0-9]+)?/s', $str, $matches, preg_offset_capture, $start) && $matches[0][1] == $start)

return($this->_token);}}

讀核日記 《Linux核心完全注釋》

linux核心完全注釋 v1.9.5版說明 linux 核心 6.程序間通訊機制 linux 核心 4.記憶體管理 linux 核心 5.linux程序 linux 核心 3.軟體基礎 linux 核心 2.硬體基礎 linux 核心 1.前言 讀核日記 八 linux的記憶體管理機制 2 讀核日記...

Linux核心完全注釋(0 11版)DAY2

fs目錄是檔案系統實現程式的目錄,包含17個c語言程式。這些程式可分為四個部分 高速緩衝區管理 底層檔案操作 檔案資料訪問和檔案高層函式。核心檔案buffer.c是高速緩衝區程式,因為檔案系統資料訪問都需要首先讀取到高速緩衝區。圖為fs目錄中各程式函式之間引用關係 標頭檔案主目錄include 頭檔...

專案實戰一(注釋轉換)

1單行注釋轉換 int a 0 int a 0 2 塊注釋轉換 int a 0 int b 0 轉換後 int a 0 int b 0 3c語言型別注釋型別大全 int a 10 1.一般情況 int num 0 int i 0 2.換行問題 int i 0 int j 0 int i 0 int ...