函式名稱:Parle\Lexer::callout()
適用版本:Parle 0.7.1 及以上版本
函式描述:callout() 方法用於在語法分析期間定義一個呼叫點。當語法分析器執行到這個呼叫點時,會觸發使用者定義的回撥函式。
用法示例:
<?php
$lexer = new Parle\Lexer();
$lexer->push("int", "T_INT");
// 定義回撥函式
$calloutCallback = function ($lexer, $value, $symbol) {
echo "Callout triggered: value=$value, symbol=$symbol\n";
};
// 定義呼叫點
$lexer->callout(2, $calloutCallback);
// 分析輸入字串
$input = "123 int";
$lexer->consume($input);
?>
上述示例程式碼中,我們建立了一個 Parle\Lexer 物件,並向其新增了一個規則,用於匹配字串 "int",並將其標記為 "T_INT"。然後,我們使用 callout() 方法在位置 2 定義了一個呼叫點,並傳遞了一個回撥函式作為引數。
當呼叫 consume() 方法分析輸入字串時,如果匹配到了 "int",則會觸發 callout() 方法定義的呼叫點,並執行回撥函式。在回撥函式中,我們列印出了傳遞給回撥函式的引數值。
注意:在使用 Parle\Lexer 類之前,需要先安裝 Parle 擴充套件,並載入擴充套件模組。