Lexer Parser混乱

时间:2017-08-03 16:14:57

标签: design-patterns naming-conventions

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

我真的需要有机体我的代码。为此,我使用命名空间。输入文件生成的命名空间之间的路径就是这样。

  

XML>>解析器(或Lexer)>>令牌树>>发电机>>用户界面

问题在于我不理解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"];
    //...
}

此代码代表我的构造函数的一小部分。但是lexer的一部分在哪里?解析器的一部分在哪里?

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

1 个答案:

答案 0 :(得分:1)

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

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