词法分析器混淆

Lexer Parser confusion

我正在开发一个新工具。此工具采用 XML 文件并创建多个用户界面。

我真的需要组织我的代码。为此,我使用名称空间。输入文件创建的命名空间之间的路径如下所示。

XML >> Parser(or Lexer) >> Token tree >> generator >> User Interface

问题是我不明白 Lexer 和 Parser 之间的区别。

protected function __construct(\SimpleXMLElement $xml, string $xmlFileName,
                               AbstractContainer $container) {

    // Link the container with its child
    $this->container = $container;

    // Initialize the class attributes
    $this->name = $xml->attributes()["name"];
    //...
}

这段代码代表了我的构造函数的一小部分。但是词法分析器的部分在哪里,解析器的部分在哪里??

对不起我的英语,我正在学习...

并不是说我理解你的大部分问题,但词法分析器是一个将 字符 序列转换为标记的过程。这显然已经由您正在使用的 xml api 完成了。

所以你的代码中不会没有词法分析器;如果您想将 xml 格式的解释分成几层,您可以按照您认为最合适的方式自由进行。