1

对于个人项目,我正在构建一个简单的 HTML 编译器。编译器读入一个模板文件,逐行解析它,将每一行作为一个单独的节点添加到语法树中。子节点由制表符缩进表示,类似于 Python。这是一个示例模板文件:

$doctype
    html {lang: $lang}
        head
            meta {charset: $encoding}
            title Hello World!
        body
            h1 {class: $test-class, foo: $bar} Hello world!
            p {class: $bar} How are you today? Is [span {class: $test-class} this] class total foobar?

对于这个例子,doctype标签是树的根,html是它唯一的孩子。html依次有两个孩子,head并且body,每个孩子都有自己的孩子列表。

如果您查看p底部的标签,您会看到 line [span {class: $test-class} this],使用方括号表示内联 HTML 元素。该跨度将在树中表示为 的子节点p

稍后在程序执行中,我将根据构建的语法树输出一个 HTML 文件。但是,如果存在内联 HTML 元素,则在构造该 HTML 文件时,我遇到了一个心理障碍。

我的问题是:父节点引用其子节点的简单方法是什么,特别是在输出编译文件时块元素可以从其子内联元素中提取数据的方式?

4

0 回答 0