查詢

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

「 從詞法分析器中獲取下一個標記(token) 」


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

適用版本:Parle 0.8.1 及以上版本

用法: Parle\Lexer::getToken() 方法用於從詞法分析器中獲取下一個標記(token)。它返回一個陣列,包含標記的型別和值。

語法:

public Parle\Lexer::getToken(): array

示例:

// 建立詞法分析器例項
$lexer = new Parle\Lexer();

// 新增詞法規則
$lexer->addSymbol('NUMBER', '[0-9]+');
$lexer->addSymbol('PLUS', '\+');
$lexer->addSymbol('MINUS', '-');
$lexer->addSymbol('MULTIPLY', '\*');
$lexer->addSymbol('DIVIDE', '/');

// 設定輸入字串
$input = '42 + 7 - 3 * 2 / 4';

// 設定輸入字串作為詞法分析器的輸入
$lexer->setInput($input);

// 迴圈獲取下一個標記
while (($token = $lexer->getToken()) !== null) {
    $type = $token[0];
    $value = $token[1];

    echo "Token Type: $type, Value: $value" . PHP_EOL;
}

輸出:

Token Type: NUMBER, Value: 42
Token Type: PLUS, Value: +
Token Type: NUMBER, Value: 7
Token Type: MINUS, Value: -
Token Type: NUMBER, Value: 3
Token Type: MULTIPLY, Value: *
Token Type: NUMBER, Value: 2
Token Type: DIVIDE, Value: /
Token Type: NUMBER, Value: 4

上述示例中,我們使用 Parle\Lexer 類建立一個詞法分析器,並新增了一些詞法規則。然後,我們將輸入字串設定為詞法分析器的輸入,並使用 while 迴圈來獲取下一個標記。每個標記都是一個包含型別和值的陣列。最後,我們列印出每個標記的型別和值。

請注意,此示例僅用於演示 Parle\Lexer::getToken() 方法的用法,實際使用時需要根據具體需求設定適當的詞法規則和處理邏輯。

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