2024年PHP开发者大会(日本)

Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push添加词法规则

描述

public Parle\RLexer::push(string $regex, int $id): void
public Parle\RLexer::push(
    string $state,
    string $regex,
    int $id,
    string $newState
): void
public Parle\RLexer::push(string $state, string $regex, string $newState): void

压入用于词法单元识别的模式。

可以通过使用合适的签名来指定“起始状态”和“退出状态”。

参数

regex

用于标记匹配的正则表达式。

id

标记ID。如果词法分析器实例旨在独立使用,则它可以是任意数字。如果词法分析器实例将传递给解析器,则它必须是Parle\RParser::tokenid()返回的ID。

state

状态名称。如果使用 '*' 作为起始状态,则该规则将应用于所有词法分析器状态。

newState

应用规则后的新状态名称。

如果将 '.' 指定为退出状态,则该规则匹配时词法分析器状态保持不变。退出状态名前的“>”表示压入。当需要继续或递归时,对于继续或开始匹配,请使用不包含 id 的签名。

如果将“<”指定为退出状态,则表示弹出。在这种情况下,包含 id 的签名可用于标识匹配。请注意,即使指定了 id,当所有先前的压入都被弹出时,规则也将首先完成。

返回值

不返回任何值。

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top