Example #1
0
 public function examineStateChange(&$sToken, ParseState $aParseState)
 {
     if ($sToken !== 'TABLE' and $sToken !== 'TABLES') {
         return false;
     }
     $aParseState->arrTree[] = $sToken;
     $sOriToken = $sToken;
     // IF NOT EXISTS
     $arrTokenList = array('IF', 'NOT', 'EXISTS');
     while (1) {
         $sToken = next($aParseState->arrTokenList);
         if (empty($arrTokenList) or array_shift($arrTokenList) !== $sToken) {
             break;
         }
         $aParseState->arrTree[] = $sToken;
     }
     // 到头了, table/tables 后面没有内容
     if ($sToken === false) {
         prev($aParseState->arrTokenList);
         array_pop($aParseState->arrTree);
         $sToken = $sOriToken;
         return false;
     } else {
         if (strtolower($sToken) === 'status') {
             $aParseState->arrTree[] = $sToken;
             $sToken = next($aParseState->arrTokenList);
         }
     }
     // 遇到 TABLE ,检查下一个token 是否是有效的表名
     // $sToken = next($aParseState->arrTokenList) ;
     return parent::examineStateChange($sToken, $aParseState);
 }
Example #2
0
 public function read()
 {
     parent::read();
     $this->cleanUp();
     return $this->result;
 }