在crates.io找到了rust-analyzer发布的账号,但里面只找到了ast的定义,好像说是通过一个grammar::parse函数生成的ast,但这个函数在哪个库下面却找不到了。
应该有rust官方的生成ast的方法吧?用其他语言的不算的啊。
以下是我找到的发布账号,应该没错吧: https://crates.io/teams/github:rust-lang:wg-rls-2
1
共 4 条评论, 1 页
在crates.io找到了rust-analyzer发布的账号,但里面只找到了ast的定义,好像说是通过一个grammar::parse函数生成的ast,但这个函数在哪个库下面却找不到了。
应该有rust官方的生成ast的方法吧?用其他语言的不算的啊。
以下是我找到的发布账号,应该没错吧: https://crates.io/teams/github:rust-lang:wg-rls-2
评论区
写评论cargo项目里应该有对应的实现代码吧?不过没找到在哪。
我不确定“官方的”指的是啥,我理解起码也应该是rustc的parser,而不是ra; syn和rustc的parser就我所知不是同一个,rust句法也是在演进中的,原则上肯定是会出现不一致的,不过只要syn保持更新,这应该不是问题;
--
👇
lithbitren: 谢谢大佬指点,我先试试看。 写宏的时候都是当模板来引入syn的,理应想到其应该有解析ast的功能。
不过这个库和官方编译器的语法解析有什么关系啊,会出现两边语法判定不一致的情况吗?
--
👇
aj3n: https://github.com/dtolnay/syn/issues/374#issuecomment-373808976
用syn. dtolnay给的例子.
谢谢大佬指点,我先试试看。 写宏的时候都是当模板来引入syn的,理应想到其应该有解析ast的功能。
不过这个库和官方编译器的语法解析有什么关系啊,会出现两边语法判定不一致的情况吗?
--
👇
aj3n: https://github.com/dtolnay/syn/issues/374#issuecomment-373808976
用syn. dtolnay给的例子.
https://github.com/dtolnay/syn/issues/374#issuecomment-373808976
用syn. dtolnay给的例子.