函式名稱:Parle\RLexer::build()
適用版本:Parle 0.7.2及以上版本
用法:Parle\RLexer::build()方法用於構建一個新的詞法分析器物件。
示例:
<?php
$lexer = Parle\RLexer::build();
// 新增詞法規則
$lexer->push('identifier', '/[a-zA-Z_][a-zA-Z0-9_]*/');
$lexer->push('number', '/\d+/');
$lexer->push('operator', '/\+|\-|\*|\//');
// 設定忽略的詞法規則
$lexer->skip('whitespace', '/\s+/');
// 設定詞法分析器的輸入
$lexer->setInput('foo + 42 - bar');
// 逐個獲取詞法單元
while ($token = $lexer->next()) {
echo $token['name'] . ': ' . $token['value'] . PHP_EOL;
}
?>
在上面的示例中,我們首先使用Parle\RLexer::build()
建立了一個新的詞法分析器物件。然後,我們使用push()
方法新增了三個詞法規則,分別是identifier
、number
和operator
,並透過正規表示式指定了它們的匹配規則。接下來,我們使用skip()
方法設定了一個忽略的詞法規則whitespace
,用於忽略掉空白字元。最後,我們使用setInput()
方法設定了詞法分析器的輸入字串。在迴圈中,我們使用next()
方法逐個獲取詞法單元,並列印出每個詞法單元的名稱和值。
注意:以上示例僅展示了Parle\RLexer::build()
方法的基本用法,實際使用中可以根據需求新增更多的詞法規則和處理邏輯。