-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
精读《syntax-parser 源码》 #133
Comments
请问一下如何贡献文章? |
@ascoders 好的,谢谢 |
这里是指匹配失败时的回溯吗? |
@muzea 指的是回溯,具体原因文章在 重做 JS 执行引擎 有举例介绍。 没有啥资料,因为 JS 没有 fork 堆栈功能,因此只能自己模拟啦。 |
这个地方不明白为什么回溯要做这么多事情,是因为 |
@muzea 如果保存了 ast 与剩余 tokenIndex 是可以恢复执行,这个逻辑和我写的基本一致。 我想说明的是,不能用 JS 堆栈直接执行 Match,因为这样错误后无法恢复,必须先转成节点一块一块执行。其实用 fp 风格和链表都可以进行回溯,但在遇到解析稍大一点的字符串内存可能就爆了。 |
syntax-parser 是笔者写的 JS 版语法分析器生成工具,最近其上层封装的 SQL 智能编辑器 因为有所应用,所以写一篇底层库的源码分析文章,供合作者参考。
精读《syntax-parser 源码》
The text was updated successfully, but these errors were encountered: