我正在建立一个网站来学习基本编程,我将使用一种伪语言,用户可以在其中提交他们的代码,我需要对其进行解释。然而,我不知道如何在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。