首页 > 后端开发 > Golang > 正文

构建解析器:递归下降还是自上而下?

Barbara Streisand
发布: 2024-11-07 04:45:03
原创
419 人浏览过

Building a Parser: Recursive Descent or Top-Down?

应对构建解析器的挑战

问题:

开始解析器构建工作时,我遇到理解困难的方法。考虑示例字符串:

{key1 = value1 | key2 = {key3 = value3} | key4 = {key5 = { key6 = value6 }}}
登录后复制

理想的输出类似于嵌套映射结构:

map[key1] = value1
map[key2] = (map[key3] = value3)
map[key4] = (map[key5] = (map[key6] = value6))
登录后复制

这是一种可行的方法还是我正在探索错误的路径?

答案:

创建解析器是一项多方面的工作,需要广泛的响应。

指导:

  1. 递归下降解析:考虑研究这种方法,在 http://www.cs.binghamton.edu/~zdu/parsdemo/recintro.html 等资源中进行了阐述。
  2. 自顶向下解析: 探索这种方法,在 http://javascript.crockford.com/tdop/tdop.html 和 http://effbot.org/zone/simple-top-down-parsing 等资源中进行了讨论。 htm.
  3. Go 标准库解析器代码: 检查 Go 标准库中现有的解析器代码 (http://golang.org/src/pkg/go/parser/parser.go)获取实际示例。
  4. Rob Pike 关于词法分析器写作的讲座: 该视频 (http://www.youtube.com/watch?v=HxaD_trXwRE) 提供了构建词法分析器的宝贵见解,解析器的一个组成部分。
  5. 在线资源:可以在线获取许多有关解析的文章和教程。虽然语法可能因所选语言而异,但基本概念仍然可以转移到 Go。

以上是构建解析器:递归下降还是自上而下?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!