微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

antlr4 / python3:漂亮的打印解析树到控制台

如何解决antlr4 / python3:漂亮的打印解析树到控制台

如何将解析树的版本打印到stdout?

input_stream = FileStream(argv[1])
lexer = PrystLexer(input_stream)
stream = CommonTokenStream(lexer)
parser = PrystParser(stream)
tree = parser.start_rule()
print(Trees.toStringTree(tree,None,parser))

这会将整个树打印在用括号定界的一行上。

(start_rule (block (stmt (simple_stmt (small_stmt (import_stmt from (nameaccess system) import (nameaccess io))) ;)) <EOF>))  

我想要类似HTML的代码

<start_rule>
  <block>
    <stmt>
      <simple_stmt>
        <import_stmt>
          "from"
          <nameaccess "system">
          "import"
          <nameaccess "io">
          ";"
        </import_stmt>
      </simple_stmt>
    </stmt>
  </block>
</start_rule>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。