所以我试图通过制作一个简单的词法分析器来深入学习PHP中的OOP。但我遇到了OOP问题,我似乎无法解决。我在这里使用数组而不是Enumerations。
<?php
class Lexer {
private static $type = [
"none" => 0,
"int" => 1
];
private static $tokens = [
TokenData("WHITESPACE", "\s+", $type['none']),
TokenData("NUMBER", "[0-9]+", $type['int'])
];
public function __construct($source) {
return $this->Tokenize($source);
}
private function Tokenize($source) {
return self::$tokens;
}
public function TokenData($name, $pattern, $type) {
return array("name" => $name, "pattern" => $pattern, "type" => self::$type[$type]);
}
private function Token($return) {
return self::$tokens[$return];
}
}
?>
解析错误:语法错误,意外'。',期待']'... 第9行
我已经尝试了$this->TokenData(...)
和self::$type[...]
,但这些都没有奏效。还有什么我想念的吗?
我期待结果是这样的:
$tokens = array(
0 => array("WHITESPACE", "\s+", $type['none']),
1 => array("NUMBER", "[0-9]+", $type['int'])
)