如何在PHP中构建一个标记化器


How to build a tokenizer in PHP?

我正在建立一个网站来学习基本编程,我将使用一种伪语言,用户可以在其中提交他们的代码,我需要对其进行解释。然而,我不知道如何在PHP中建立一个标记化器。

有这样一个片段:

a = 1
b = 2
c = a - b
if(a > b) {
    buy(a)
    } else {
    buy(b)
    }

如何将此代码分离为令牌?

--

这就是我现在正在尝试的:

$tokens = array();
// First token (define string)
$token  = strtok($botCode, '=');
$tokens[] = $token;
// Loop
while($token) {
    $token  = strtok('=');
    $tokens[] = $token;
}

然而,我还没能弄清楚如何将strtok与正则表达式列表一起使用。。。我可以做一些类似于strtok的事情,但它接受数组作为带有substr和strrpos的指针,但在我看来,应该可以用strtok来做这件事,因为它正是为此而设计的。任何信息或指向正确的方向都将感谢

不要等待strtok的魔力。它类似于preg_split。

我认为你想建立自己的lexer。所以您可以使用文章用PHP或其他语言编写一个简单的lexer。