查詢

Parle\Lexer::reset()函式—用法及示例

「 重置詞法分析器的狀態 」


函式名:Parle\Lexer::reset()

函式描述:該函式用於重置詞法分析器的狀態。

函式適用版本:Parle\Lexer 類從 Parle 4.4.0 版本開始引入。

用法示例:

// 建立一個詞法分析器物件
$lexer = new Parle\Lexer();

// 新增一些詞法規則
$lexer->push('[0-9]+', 'NUMBER');
$lexer->push('[a-zA-Z]+', 'WORD');

// 執行詞法分析
$tokens = $lexer->lex('Hello 123 World');

// 輸出分析結果
foreach ($tokens as $token) {
    echo $token['type'] . ': ' . $token['value'] . PHP_EOL;
}

// 重置詞法分析器
$lexer->reset();

// 再次執行詞法分析
$tokens = $lexer->lex('Foo Bar');

// 輸出分析結果
foreach ($tokens as $token) {
    echo $token['type'] . ': ' . $token['value'] . PHP_EOL;
}

在上面的示例中,我們首先建立了一個 Parle\Lexer 物件,並新增了兩個詞法規則。然後,我們使用 lex() 方法對輸入字串進行詞法分析,並將結果儲存在 $tokens 陣列中。接下來,我們遍歷 $tokens 陣列,並輸出每個詞法單元的型別和值。

然後,我們呼叫 reset() 方法來重置詞法分析器的狀態。最後,我們再次執行詞法分析,並輸出分析結果。

請注意,reset() 方法將清除詞法分析器的內部狀態,使其回到初始狀態,以便重新進行詞法分析。

補充糾錯
上一個函式: Parle\Parser::advance()函式
下一個函式: Parle\Lexer::push()函式
熱門PHP函式
分享連結