“Ruby Under a Microscope”的版本间的差异
来自Dennis的知识库
Dennis zhuang(讨论 | 贡献) |
Dennis zhuang(讨论 | 贡献) |
||
第3行: | 第3行: | ||
== 分词与语法解析 == | == 分词与语法解析 == | ||
− | * 使用 Ripper | + | * 使用 Ripper 输出 lex 结果。 |
<pre> | <pre> | ||
第20行: | 第20行: | ||
</code> | </code> | ||
</pre> | </pre> | ||
+ | |||
+ | * Ripper.sexp 输出 parse 结果,也可以使用命令行 ruby --dump parsetree xxxx.rb 得到。 |
2016年12月9日 (五) 00:00的版本
分词与语法解析
- 使用 Ripper 输出 lex 结果。
<code> require 'ripper' require 'pp' #ripper is not parser, it can't find error. code = <<STR 10.times do |n| puts n end STR puts code pp Ripper.lex(code) </code>
- Ripper.sexp 输出 parse 结果,也可以使用命令行 ruby --dump parsetree xxxx.rb 得到。