levelworm

levelworm

V2EX 第 401678 号会员,加入于 2019-04-14 22:20:59 +08:00
今日活跃度排名 2335
根据 levelworm 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
levelworm 最近回复了
6 小时 59 分钟前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
@ch2 明白了,看来我硬着头皮看下去就行了。我之前看过另外一本书,好像就不是用这个办法,用的是状态机好像。
7 小时 7 分钟前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
接楼上。我现在又看了一下,是看懂了,但是你让我自己推出来这个,我就有些困难了,不是完全做不到,而是想不到这么做。
7 小时 14 分钟前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
@namelosw 多谢,我是这里没明白:
https://craftinginterpreters.com/parsing-expressions.html
(上面半页基本的 CFG 还是很简单的)

引用开始:
Each rule here only matches expressions at its precedence level or higher. For example, unary matches a unary expression like !negated or a primary expression like 1234. And term can match 1 + 2 but also 3 * 4 / 5. The final primary rule covers the highest-precedence forms—literals and parenthesized expressions.
引用结束

他说的 precedence rule 我明白,就是优先度的问题,比如说加减乘除,乘除高于加减。但是什么叫做 each rule here only matches expressions at its precedence level or higher?

这是他最后的结果,能够看到每一行实际上都引用了下一行的东西:

expression → equality ;
equality → comparison ( ( "!=" | "==" ) comparison )* ;
comparison → term ( ( ">" | ">=" | "<" | "<=" ) term )* ;
term → factor ( ( "-" | "+" ) factor )* ;
factor → unary ( ( "/" | "*" ) unary )* ;
unary → ( "!" | "-" ) unary
| primary ;
primary → NUMBER | STRING | "true" | "false" | "nil"
| "(" expression ")" ;

我感觉他这里很巧妙的就把之前比较复杂的东西,比如说 expression 简化成 equality 了,但是对于我这个看的人来说,似乎就需要一个个调用下去,才能真正知道这行到底对应的是什么东西。
8 小时 43 分钟前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
@DianQK 惭愧,我之前看 craftintepreter 也是卡在 CFG 那里了。他说什么要按照顺序来排我就一直没想明白这个。
10 小时 5 分钟前
回复了 yurong333333 创建的主题 问与答 咨询贴:组装小型主机
第一反应是 mini computer!
10 小时 5 分钟前
回复了 amanohaneizz 创建的主题 问与答 工作写 c++的都用什么 IDE?
VS 啊,老大
11 小时 26 分钟前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
还有一本书,game scripting mastery,手把手教你写一个脚本语言加虚拟机。
1 天前
回复了 jonathanchoo 创建的主题 MacBook Pro 关于新的 MBP 的刘海
@AJiangYa 不会吧好烦这个。。。哎还有好希望老早笔记本那种更有触感的键盘。
还是需要更多信息,不然重名的人太多。可以人肉人肉嘛~~境外人肉就好了,管不到的。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2486 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
♥ Do have faith in what you're doing.