父节点在语法树中引用子节点的简单方法是什么?

时间:2012-12-06 19:32:18

标签: python abstract-syntax-tree

对于个人项目,我正在构建一个简单的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又有两个孩子,headbody,每个孩子都有自己的孩子列表。

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

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

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

0 个答案:

没有答案