函数名称: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 扩展,并加载扩展模块。