/** * 复制一个函数的参数表token */ private function cloneFunctionArgvLst(TokenPool $aTokenPool, FunctionDefine $aOriFunctionDefine) { $aArgLstStart = $aOriFunctionDefine->argListToken(); $aArgLstEnd = $aArgLstStart->theOther(); $aIter = $aTokenPool->iterator(); $nPos = $aIter->search($aArgLstStart); if ($nPos === false) { return array(); } $aIter->seek($nPos); $aIter->next(); $arrNewTokens = array(); while ($aToken = $aIter->current() and $aToken !== $aArgLstEnd) { $aNewToken = new Token(0, '', 0); $aNewToken->cloneOf($aToken); $arrNewTokens[] = $aNewToken; $aIter->next(); } return $arrNewTokens; }